Class VectorVectorMult
 java.lang.Object
 org.ejml.alg.dense.mult.VectorVectorMult
public class VectorVectorMultextends Object
Operations that involve multiplication of two vectors.
Constructor Summary
Constructors Constructor and Description VectorVectorMult()
Method Summary
Methods Modifier and Type Method and Description 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.static void
householder(double gamma, D1Matrix64F u, D1Matrix64F x, D1Matrix64F y)
Multiplies a householder reflection against a vector:
y = (I + γ u u^{T})xstatic double
innerProd(D1Matrix64F x, D1Matrix64F y)
Computes the inner product of the two vectors.static double
innerProdA(D1Matrix64F x, D1Matrix64F A, D1Matrix64F y)
x^{T}Aystatic double
innerProdTranA(D1Matrix64F x, D1Matrix64F A, D1Matrix64F y)
x^{T}A^{T}ystatic void
mult(DenseMatrix64F x, DenseMatrix64F y, DenseMatrix64F A)
static void
outerProd(D1Matrix64F x, D1Matrix64F y, RowD1Matrix64F A)
Sets A ∈ ℜ ^{m × n} equal to an outer product multiplication of the two vectors.static void
rank1Update(double gamma, DenseMatrix64F A, DenseMatrix64F u, DenseMatrix64F w)
Performs a rank one update on matrix A using vectors u and w.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.
Method Detail
mult
public static void mult(DenseMatrix64F x, DenseMatrix64F y, DenseMatrix64F A)
 Parameters:
x
y
A

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} x_{k} * y_{k}
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)
x^{T}Ay
 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)
x^{T}A^{T}y
 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 rank1 operation.
A = x * y' where x ∈ ℜ ^{m} and y ∈ ℜ ^{n} are vectors.Which is equivalent to: A_{ij} = x_{i}*y_{j}
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 * y^{T} where x ∈ ℜ ^{m} and y ∈ ℜ ^{n} are vectors.Which is equivalent to: A_{ij} = A_{ij} + γ x_{i}*y_{j}
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 u^{T})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 w^{T}
This is called a rank1 update because the matrix u w^{T} 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 w^{T}
This is called a rank1 update because the matrix u w^{T} 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.7 © jWork.org