VectorVectorMult
org.ejml.alg.dense.mult

Class VectorVectorMult



  • public class VectorVectorMultextends Object
    Operations that involve multiplication of two vectors.
    • Constructor Detail

      • VectorVectorMult

        public VectorVectorMult()
    • Method Detail

      • innerProd

        public static double innerProd(D1Matrix64F x,               D1Matrix64F 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(D1Matrix64F x,                D1Matrix64F A,                D1Matrix64F y)

        xTAy

        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(D1Matrix64F x,                    D1Matrix64F A,                    D1Matrix64F 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(D1Matrix64F x,             D1Matrix64F y,             RowD1Matrix64F 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,                D1Matrix64F x,                D1Matrix64F y,                RowD1Matrix64F 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,               D1Matrix64F u,               D1Matrix64F x,               D1Matrix64F 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,               DenseMatrix64F A,               DenseMatrix64F u,               DenseMatrix64F w,               DenseMatrix64F 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,               DenseMatrix64F A,               DenseMatrix64F u,               DenseMatrix64F 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.

SCaVis 1.8 © jWork.org