PAL Matrix Operations: Matrix and Vector Products

Real and complex matrix-matrix, matrix-vector, vector-matrix, and outer-product style operations.

PAL Matrix Operations: Matrix and Vector Products — 13 functions

KiratPalIdentityMatrixFloat

Signature
void KiratPalIdentityMatrixFloat(T_FLOAT** ppfA, T_INT iDim);
Description
Sets a square matrix to the identity matrix.
Mathematical operation
\(A_{ij}=\delta_{ij}\).
Supported implementations
  • ANSI C - portable reference implementation

KiratPalMultMatrixComplexWithMatrixComplex

Signature
void KiratPalMultMatrixComplexWithMatrixComplex( T_COMPLEX** ppcMatA, T_COMPLEX** ppcMatB, T_COMPLEX** ppcDest, T_INT iDim1, T_INT iDim2, T_INT iDim3);
Description
Performs matrix/vector multiplication according to the dimensions in the signature; Transposed and Adj denote transpose and Hermitian transpose, respectively.
Mathematical operation
\(C_{ij}=\sum_k A_{ik}B_{kj}\).
Supported implementations
  • ANSI C - portable reference implementation
  • Intel/AMD processors - Intel MKL library support

KiratPalMultMatrixComplexWithVectorComplex

Signature
void KiratPalMultMatrixComplexWithVectorComplex( T_COMPLEX** ppcMat, T_COMPLEX* pcVec, T_COMPLEX* pcDest, T_INT iDim1, T_INT iDim2);
Description
Performs matrix/vector multiplication according to the dimensions in the signature; Transposed and Adj denote transpose and Hermitian transpose, respectively.
Mathematical operation
\(y_i=\sum_j A_{ij}x_j\).
Supported implementations
  • ANSI C - portable reference implementation
  • Intel/AMD processors - Intel MKL library support

KiratPalMultMatrixFloatTransposedWithMatrixFloatMxN

Signature
void KiratPalMultMatrixFloatTransposedWithMatrixFloatMxN( T_FLOAT** ppfMatA, T_FLOAT** ppfMatB, T_FLOAT** ppfDest, T_INT iDim1, T_INT iDim2, T_INT iDim3);
Description
Performs matrix/vector multiplication according to the dimensions in the signature; Transposed and Adj denote transpose and Hermitian transpose, respectively.
Mathematical operation
\(C=A^TB\), i.e. \(C_{ij}=\sum_k A_{ki}B_{kj}\).
Supported implementations
  • ANSI C - portable reference implementation

KiratPalMultMatrixFloatWithMatrixFloatMxN

Signature
void KiratPalMultMatrixFloatWithMatrixFloatMxN( T_FLOAT** ppfMatA, T_FLOAT** ppfMatB, T_FLOAT** ppfDest, T_INT iDim1, T_INT iDim2, T_INT iDim3);
Description
Performs matrix/vector multiplication according to the dimensions in the signature; Transposed and Adj denote transpose and Hermitian transpose, respectively.
Mathematical operation
\(C=AB\), i.e. \(C_{ij}=\sum_k A_{ik}B_{kj}\).
Supported implementations
  • ANSI C - portable reference implementation
  • Intel/AMD processors - Intel MKL library support

KiratPalMultMatrixFloatWithMatrixFloatNxNToDest

Signature
void KiratPalMultMatrixFloatWithMatrixFloatNxNToDest( T_FLOAT** ppfMatA, T_FLOAT** ppfMatB, T_FLOAT** ppfDest, T_INT iDim);
Description
Performs matrix/vector multiplication according to the dimensions in the signature; Transposed and Adj denote transpose and Hermitian transpose, respectively.
Mathematical operation
\(C=AB\), i.e. \(C_{ij}=\sum_k A_{ik}B_{kj}\).
Supported implementations
  • ANSI C - portable reference implementation
  • Intel/AMD processors - Intel MKL library support

KiratPalMultMatrixFloatWithMatrixFloatTransposedMxN

Signature
void KiratPalMultMatrixFloatWithMatrixFloatTransposedMxN( T_FLOAT** ppfMatA, T_FLOAT** ppfMatB, T_FLOAT** ppfDest, T_INT iDim1, T_INT iDim2, T_INT iDim3);
Description
Performs matrix/vector multiplication according to the dimensions in the signature; Transposed and Adj denote transpose and Hermitian transpose, respectively.
Mathematical operation
\(C=AB^T\), i.e. \(C_{ij}=\sum_k A_{ik}B_{jk}\).
Supported implementations
  • ANSI C - portable reference implementation

KiratPalMultMatrixFloatWithVectorComplexToDest

Signature
void KiratPalMultMatrixFloatWithVectorComplexToDest( T_FLOAT** ppfSource, T_COMPLEX* pcVec, T_COMPLEX* pcDest, T_INT iDim1, T_INT iDim2);
Description
Performs matrix/vector multiplication according to the dimensions in the signature; Transposed and Adj denote transpose and Hermitian transpose, respectively.
Mathematical operation
\(y_i=\sum_j A_{ij}x_j\).
Supported implementations
  • ANSI C - portable reference implementation

KiratPalMultMatrixFloatWithVectorFloatToDest

Signature
void KiratPalMultMatrixFloatWithVectorFloatToDest( T_FLOAT** ppfSource, T_FLOAT* pfVec, T_FLOAT* pfDest, T_INT iDim1, T_INT iDim2);
Description
Performs matrix/vector multiplication according to the dimensions in the signature; Transposed and Adj denote transpose and Hermitian transpose, respectively.
Mathematical operation
\(y_i=\sum_j A_{ij}x_j\).
Supported implementations
  • ANSI C - portable reference implementation
  • Intel/AMD processors - Intel MKL library support

KiratPalMultVectorComplexAdjWithMatrixComplex

Signature
void KiratPalMultVectorComplexAdjWithMatrixComplex( T_COMPLEX* pcVec, T_COMPLEX** ppcMat, T_COMPLEX* pcDest, T_INT iDim1, T_INT iDim2);
Description
Performs matrix/vector multiplication according to the dimensions in the signature; Transposed and Adj denote transpose and Hermitian transpose, respectively.
Mathematical operation
\(y_j=\sum_i x_i^*A_{ij}=x^H A\).
Supported implementations
  • ANSI C - portable reference implementation

KiratPalMultVectorComplexAdjWithVectorComplex

Signature
void KiratPalMultVectorComplexAdjWithVectorComplex( T_COMPLEX* pcVecAdj, T_COMPLEX* pcVec, T_COMPLEX* pcDest, T_INT iDim1);
Description
Multiplies scalar, vector, or array values element-wise; Acc variants add the product to the destination.
Mathematical operation
\(c=\sum_i x_i^*y_i=x^Hy\).
Supported implementations
  • ANSI C - portable reference implementation
  • Intel/AMD processors - Intel MKL library support

KiratPalMultVectorComplexWithVectorAdjComplex

Signature
void KiratPalMultVectorComplexWithVectorAdjComplex( T_COMPLEX* pcVec, T_COMPLEX* pcVecAdj, T_COMPLEX** ppcDest, T_INT iDim1, T_INT iDim2);
Description
Multiplies scalar, vector, or array values element-wise; Acc variants add the product to the destination.
Mathematical operation
\(C_{ij}=x_i y_j^*\).
Supported implementations
  • ANSI C - portable reference implementation
  • Intel/AMD processors - Intel MKL library support

KiratPalMultVectorFloatWithMatrixFloatToDest

Signature
void KiratPalMultVectorFloatWithMatrixFloatToDest( T_FLOAT* pfVec, T_FLOAT** ppfMat, T_FLOAT* pfDest, T_INT iDim1, T_INT iDim2);
Description
Performs matrix/vector multiplication according to the dimensions in the signature; Transposed and Adj denote transpose and Hermitian transpose, respectively.
Mathematical operation
\(y_j=\sum_i x_iA_{ij}\).
Supported implementations
  • ANSI C - portable reference implementation