Functions
VCELPF3_MATRIX_ALGORITHMS

Functions

int_fast16_t VCELPF3_jacobiEVD (VCELPF3_ComplexTriangleMatrix *mat, uint16_t maxIter, float stopThreshold, VCELPF3_ComplexVector *result)
 VCE function to compute the Jacobi Eigen-Decomposition (EVD) of a triangular Hermitian Matrix. This results in a triangular, diagonal matrix of eigenvalues sorted in descending order replacing the original matrix, and a full matrix, where the eigenvectors are the columns. The eigenvector matrix can be placed anywhere in VCE memory except for where the input matrix is placed. When not using scratchpad mode, the eigenvector matrix will be placed next to the eigenvector matrix. More...
 
int_fast16_t VCELPF3_gaussJordanElim (VCELPF3_ComplexMatrix *mat, float zeroThreshold, VCELPF3_ComplexMatrix *result)
 Reduce the input matrix A[MxN] to reduced echelon form using Gauss-Jordan Elimination. More...
 

Detailed Description

Function Documentation

§ VCELPF3_jacobiEVD()

int_fast16_t VCELPF3_jacobiEVD ( VCELPF3_ComplexTriangleMatrix mat,
uint16_t  maxIter,
float  stopThreshold,
VCELPF3_ComplexVector result 
)

VCE function to compute the Jacobi Eigen-Decomposition (EVD) of a triangular Hermitian Matrix. This results in a triangular, diagonal matrix of eigenvalues sorted in descending order replacing the original matrix, and a full matrix, where the eigenvectors are the columns. The eigenvector matrix can be placed anywhere in VCE memory except for where the input matrix is placed. When not using scratchpad mode, the eigenvector matrix will be placed next to the eigenvector matrix.

Defined as:

(V, D) = eigen_decomposition(A), such that V' * A * V = D

in which A[NxN] is a triangular Hermitian matrix V[NxN] is a triangular, diagonal matrix of eigenvalues, D[NxN] is a full matrix of eigenvectors and V' signifies the conjugate transpose of V.

Note
Since A is the Hermitian matrix, eigenvalues are all real and positive numbers. In the VCE, the output eigenvalues are already sorted in descending order. To save memory, the input matrix A is updated by in-place rotation, resulting in the diagonal matrix D. If not in scratchpad mode, i.e one of the provided vectors/matrices have their data outside of VCE space, this function will return a Vector whose data contains the data of both the eigenvalue triangular matrix and the eigenvalue full matrix. The eigenvector data begins at an offset of (L*L + L)/2.
Precondition
VCELPF3_init() has to be called first.
Parameters
[in]matthe input matrix
[in]maxIterthe maximum number of iterations for the Jacobi algorithm (typically 3)
[in]stopThresholdthreshold for stopping early. Triggers if summation of the off-digonal values is smaller than this threshold.
[out]resulta pointer to a vector where the output will be placed. If not in scratchpad mode, this vector will contain both the eigenvalues and the eigenvectors. Otherwise it will contain only the eigenvectors.
Note
See ti_drivers_VCE_DataManagement for directions on efficient VCE memory management.
Returns
A status code indicating whether the VCE operation was a success.
Return values
VCELPF3_STATUS_SUCCESSThe call was successful.
VCELPF3_STATUS_ERRORThe input matrix was not square, and therefore not Hermitian.

§ VCELPF3_gaussJordanElim()

int_fast16_t VCELPF3_gaussJordanElim ( VCELPF3_ComplexMatrix mat,
float  zeroThreshold,
VCELPF3_ComplexMatrix result 
)

Reduce the input matrix A[MxN] to reduced echelon form using Gauss-Jordan Elimination.

Defined as:

C[MxN] = gauss_elimination(A[MxN])

in which, A[MxN] is the input matrix and C[MxN] is the output matrix in reduced echelon form (in other words, C[M,1:M] is the identity matrix).

Parameters
[in]matthe input matrix
[in]zeroThresholdmatrix values are considered zero if they are smaller than this value
[out]resulta pointer to a matrix where the output will be placed
Note
See ti_drivers_VCE_DataManagement for directions on efficient VCE memory management.
Returns
A status code indicating whether the VCE operation was a success.
Return values
VCELPF3_STATUS_SUCCESSThe call was successful.
© Copyright 1995-2024, Texas Instruments Incorporated. All rights reserved.
Trademarks | Privacy policy | Terms of use | Terms of sale