PAL Matrix Operations: Decompositions, Eigenvalues, and Inverses

Cholesky, SVD, eigenvalue, inverse, pseudoinverse, and LU decomposition routines.

PAL Matrix Operations: Decompositions, Eigenvalues, and Inverses — 13 functions

KiratPalMatrixComplexInverse

Signature
T_INT KiratPalMatrixComplexInverse( T_COMPLEX** ppfToInvert, T_INT* piBufferPivotIndices, T_COMPLEX** ppcTemp, T_INT iSize);
Description
Computes the inverse of a matrix.
Mathematical operation
\(B=A^{-1}\), computed through the implementation\'s LU/inversion path.
Supported implementations
  • ANSI C - portable reference implementation

KiratPalMatrixComplexLuDecomp

Signature
T_INT KiratPalMatrixComplexLuDecomp( T_COMPLEX** ppcLUdcmp, T_INT* piBufferPivotIndices, T_INT iSize);
Description
Computes an LU decomposition for solving linear systems or matrix inversion.
Mathematical operation
\(PA=LU\) with pivoting.
Supported implementations
  • ANSI C - portable reference implementation
  • Intel/AMD processors - Intel MKL library support

KiratPalMatrixComplexLuInverse

Signature
T_INT KiratPalMatrixComplexLuInverse( T_COMPLEX** ppcLUdcmp, T_INT* piBufferPivotIndices, T_COMPLEX** ppcTemp, T_INT iSize);
Description
Computes a matrix inverse from a previously calculated LU decomposition.
Mathematical operation
\(B=A^{-1}\), computed through the implementation\'s LU/inversion path.
Supported implementations
  • ANSI C - portable reference implementation
  • Intel/AMD processors - Intel MKL library support

KiratPalMatrixFloatCholeskyDecomp

Signature
T_INT KiratPalMatrixFloatCholeskyDecomp(T_FLOAT** ppfSource, T_INT iSizeDim);
Description
Computes the Cholesky decomposition of a symmetric positive-definite matrix, A = L Lᵀ.
Mathematical operation
\(A=LL^T\) for a real symmetric positive-definite matrix.
Supported implementations
  • ANSI C - portable reference implementation

KiratPalMatrixFloatCholeskyInvert

Signature
T_INT KiratPalMatrixFloatCholeskyInvert(T_FLOAT** ppfSource, T_FLOAT** ppfCholdc, T_INT iSizeDim);
Description
Computes a matrix inverse based on a Cholesky decomposition.
Mathematical operation
\(A^{-1}=L^{-T}L^{-1}\) after \(A=LL^T\).
Supported implementations
  • ANSI C - portable reference implementation

KiratPalMatrixFloatEvd

Signature
void KiratPalMatrixFloatEvd( T_FLOAT** ppfSource, T_FLOAT** ppfV, T_FLOAT* pfD, T_FLOAT* pfTmp1, T_FLOAT* pfTmp2, T_INT iSizeDim);
Description
Computes the eigendecomposition of a symmetric matrix.
Mathematical operation
\(AV=V\Lambda\); the unsymmetric variant can return complex eigenvalues/eigenvectors.
Supported implementations
  • ANSI C - portable reference implementation

KiratPalMatrixFloatEvdUnsym

Signature
void KiratPalMatrixFloatEvdUnsym( T_DOUBLE** ppdSource, T_COMPLEX** ppcV, T_COMPLEX* pcD, T_INT iSizeDim, T_BOOL bVec, T_BOOL bHes, T_BOOL* bNoRootsFound, T_DOUBLE** ppdHelperMatrix, T_DOUBLE* pdHelperScale, T_INT* piHelperPerm);
Description
Computes the eigendecomposition of a non-symmetric real matrix; eigenvalues and, where applicable, eigenvectors may be complex.
Mathematical operation
\(AV=V\Lambda\); the unsymmetric variant can return complex eigenvalues/eigenvectors.
Supported implementations
  • ANSI C - portable reference implementation

KiratPalMatrixFloatInverse

Signature
T_INT KiratPalMatrixFloatInverse( T_FLOAT** ppfToInvert, T_FLOAT** ppfBufferCholeskyDecomp, T_FLOAT** ppfInverted, T_INT iSize);
Description
Computes the inverse of a matrix.
Mathematical operation
\(B=A^{-1}\), computed through the implementation\'s LU/inversion path.
Supported implementations
  • ANSI C - portable reference implementation

KiratPalMatrixFloatLuDecomp

Signature
void KiratPalMatrixFloatLuDecomp(T_FLOAT** ppfLUdcmp, T_FLOAT* pfScaleVec, T_INT* iD, T_INT iDim);
Description
Computes an LU decomposition for solving linear systems or matrix inversion.
Mathematical operation
\(PA=LU\) with pivoting.
Supported implementations
  • ANSI C - portable reference implementation

KiratPalMatrixFloatPseudoinverseAuto

Signature
void KiratPalMatrixFloatPseudoinverseAuto( T_FLOAT** ppfToInvert, T_FLOAT** ppfBuffer, T_FLOAT** ppfInverted, T_INT iDim1, T_INT iDim2);
Description
Computes a Moore-Penrose pseudoinverse. Left/Right selects the corresponding normal-equation form, while Auto chooses based on matrix shape.
Mathematical operation
\(A^+\) is selected from the left or right normal-equation form according to the matrix dimensions.
Supported implementations
  • ANSI C - portable reference implementation

KiratPalMatrixFloatPseudoinverseLeft

Signature
void KiratPalMatrixFloatPseudoinverseLeft( T_FLOAT** ppfToInvert, T_FLOAT** ppfBuffer, T_FLOAT** ppfInverted, T_INT iDim1, T_INT iDim2);
Description
Computes a Moore-Penrose pseudoinverse. Left/Right selects the corresponding normal-equation form, while Auto chooses based on matrix shape.
Mathematical operation
\(A^+=(A^TA)^{-1}A^T\).
Supported implementations
  • ANSI C - portable reference implementation

KiratPalMatrixFloatPseudoinverseRight

Signature
void KiratPalMatrixFloatPseudoinverseRight( T_FLOAT** ppfToInvert, T_FLOAT** ppfBuffer, T_FLOAT** ppfInverted, T_INT iDim1, T_INT iDim2);
Description
Computes a Moore-Penrose pseudoinverse. Left/Right selects the corresponding normal-equation form, while Auto chooses based on matrix shape.
Mathematical operation
\(A^+=A^T(AA^T)^{-1}\).
Supported implementations
  • ANSI C - portable reference implementation

KiratPalMatrixFloatSvd

Signature
void KiratPalMatrixFloatSvd( T_FLOAT** ppfSource, T_FLOAT* pfW, T_FLOAT** ppfV, T_FLOAT* pfTmp1, T_FLOAT* pfTmp2, T_INT iSizeDim1, T_INT iSizeDim2, T_INT iNumItsMax);
Description
Computes the singular value decomposition of a matrix, A = UΣVᵀ.
Mathematical operation
\(A=U\Sigma V^T\).
Supported implementations
  • ANSI C - portable reference implementation