Class VectorVectorMult_FDRM


  • public class VectorVectorMult_FDRM
    extends java.lang.Object
    Operations that involve multiplication of two vectors.
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static void addOuterProd​(float gamma, org.ejml.data.FMatrixD1 x, org.ejml.data.FMatrixD1 y, org.ejml.data.FMatrix1Row A)
      Adds to A ∈ ℜ m × n the results of an outer product multiplication of the two vectors.
      static void householder​(float gamma, org.ejml.data.FMatrixD1 u, org.ejml.data.FMatrixD1 x, org.ejml.data.FMatrixD1 y)
      Multiplies a householder reflection against a vector:

      y = (I + γ u uT)x
      static float innerProd​(org.ejml.data.FMatrixD1 x, org.ejml.data.FMatrixD1 y)
      Computes the inner product of the two vectors.
      static float innerProdA​(org.ejml.data.FMatrixD1 x, org.ejml.data.FMatrixD1 A, org.ejml.data.FMatrixD1 y)
      return = xT*A*y
      static float innerProdTranA​(org.ejml.data.FMatrixD1 x, org.ejml.data.FMatrixD1 A, org.ejml.data.FMatrixD1 y)
      xTATy
      static void outerProd​(org.ejml.data.FMatrixD1 x, org.ejml.data.FMatrixD1 y, org.ejml.data.FMatrix1Row A)
      Sets A ∈ ℜ m × n equal to an outer product multiplication of the two vectors.
      static void rank1Update​(float gamma, org.ejml.data.FMatrixRMaj A, org.ejml.data.FMatrixRMaj u, org.ejml.data.FMatrixRMaj w)
      Performs a rank one update on matrix A using vectors u and w.
      static void rank1Update​(float gamma, org.ejml.data.FMatrixRMaj A, org.ejml.data.FMatrixRMaj u, org.ejml.data.FMatrixRMaj w, org.ejml.data.FMatrixRMaj B)
      Performs a rank one update on matrix A using vectors u and w.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • VectorVectorMult_FDRM

        public VectorVectorMult_FDRM()
    • Method Detail

      • innerProd

        public static float innerProd​(org.ejml.data.FMatrixD1 x,
                                      org.ejml.data.FMatrixD1 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 float innerProdA​(org.ejml.data.FMatrixD1 x,
                                       org.ejml.data.FMatrixD1 A,
                                       org.ejml.data.FMatrixD1 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 float innerProdTranA​(org.ejml.data.FMatrixD1 x,
                                           org.ejml.data.FMatrixD1 A,
                                           org.ejml.data.FMatrixD1 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​(org.ejml.data.FMatrixD1 x,
                                     org.ejml.data.FMatrixD1 y,
                                     org.ejml.data.FMatrix1Row 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​(float gamma,
                                        org.ejml.data.FMatrixD1 x,
                                        org.ejml.data.FMatrixD1 y,
                                        org.ejml.data.FMatrix1Row 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​(float gamma,
                                       org.ejml.data.FMatrixD1 u,
                                       org.ejml.data.FMatrixD1 x,
                                       org.ejml.data.FMatrixD1 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​(float gamma,
                                       org.ejml.data.FMatrixRMaj A,
                                       org.ejml.data.FMatrixRMaj u,
                                       org.ejml.data.FMatrixRMaj w,
                                       org.ejml.data.FMatrixRMaj 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​(float gamma,
                                       org.ejml.data.FMatrixRMaj A,
                                       org.ejml.data.FMatrixRMaj u,
                                       org.ejml.data.FMatrixRMaj 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.