Class VectorVectorMult_DDRM

java.lang.Object
org.ejml.dense.row.mult.VectorVectorMult_DDRM

public class VectorVectorMult_DDRM extends Object
Operations that involve multiplication of two vectors.
  • Constructor Details

    • VectorVectorMult_DDRM

      public VectorVectorMult_DDRM()
  • Method Details

    • innerProd

      public static double innerProd(DMatrixD1 x, DMatrixD1 y)

      Computes the inner product of the two vectors. In geometry this is known as the dot product.

      k=1:n xk * yk
      where x and y are vectors with n elements.

      These functions are often used inside of highly optimized code and therefor sanity checks are kept to a minimum. It is not recommended that any of these functions be used directly.

      Parameters:
      x - A vector with n elements. Not modified.
      y - A vector with n elements. Not modified.
      Returns:
      The inner product of the two vectors.
    • innerProdA

      public static double innerProdA(DMatrixD1 x, DMatrixD1 A, DMatrixD1 y)

      return = xT*A*y

      Parameters:
      x - A vector with n elements. Not modified.
      A - A matrix with n by m elements. Not modified.
      y - A vector with m elements. Not modified.
      Returns:
      The results.
    • innerProdTranA

      public static double innerProdTranA(DMatrixD1 x, DMatrixD1 A, DMatrixD1 y)

      xTATy

      Parameters:
      x - A vector with n elements. Not modified.
      A - A matrix with n by n elements. Not modified.
      y - A vector with n elements. Not modified.
      Returns:
      The results.
    • outerProd

      public static void outerProd(DMatrixD1 x, DMatrixD1 y, DMatrix1Row A)

      Sets A ∈ ℜ m × n equal to an outer product multiplication of the two vectors. This is also known as a rank-1 operation.

      A = x * y' where x ∈ ℜ m and y ∈ ℜ n are vectors.

      Which is equivalent to: Aij = xi*yj

      These functions are often used inside of highly optimized code and therefor sanity checks are kept to a minimum. It is not recommended that any of these functions be used directly.

      Parameters:
      x - A vector with m elements. Not modified.
      y - A vector with n elements. Not modified.
      A - A Matrix with m by n elements. Modified.
    • addOuterProd

      public static void addOuterProd(double gamma, DMatrixD1 x, DMatrixD1 y, DMatrix1Row A)

      Adds to A ∈ ℜ m × n the results of an outer product multiplication of the two vectors. This is also known as a rank 1 update.

      A = A + γ x * yT where x ∈ ℜ m and y ∈ ℜ n are vectors.

      Which is equivalent to: Aij = Aij + γ xi*yj

      These functions are often used inside of highly optimized code and therefor sanity checks are kept to a minimum. It is not recommended that any of these functions be used directly.

      Parameters:
      gamma - A multiplication factor for the outer product.
      x - A vector with m elements. Not modified.
      y - A vector with n elements. Not modified.
      A - A Matrix with m by n elements. Modified.
    • householder

      public static void householder(double gamma, DMatrixD1 u, DMatrixD1 x, DMatrixD1 y)

      Multiplies a householder reflection against a vector:

      y = (I + γ u uT)x

      The Householder reflection is used in some implementations of QR decomposition.

      Parameters:
      u - A vector. Not modified.
      x - a vector. Not modified.
      y - Vector where the result are written to.
    • rank1Update

      public static void rank1Update(double gamma, DMatrixRMaj A, DMatrixRMaj u, DMatrixRMaj w, DMatrixRMaj B)

      Performs a rank one update on matrix A using vectors u and w. The results are stored in B.

      B = A + γ u wT

      This is called a rank1 update because the matrix u wT has a rank of 1. Both A and B can be the same matrix instance, but there is a special rank1Update for that.

      Parameters:
      gamma - A scalar.
      A - A m by m matrix. Not modified.
      u - A vector with m elements. Not modified.
      w - A vector with m elements. Not modified.
      B - A m by m matrix where the results are stored. Modified.
    • rank1Update

      public static void rank1Update(double gamma, DMatrixRMaj A, DMatrixRMaj u, DMatrixRMaj w)

      Performs a rank one update on matrix A using vectors u and w. The results are stored in A.

      A = A + γ u wT

      This is called a rank1 update because the matrix u wT has a rank of 1.

      Parameters:
      gamma - A scalar.
      A - A m by m matrix. Modified.
      u - A vector with m elements. Not modified.