Advanced Analysis Library Only
AnalysisLibErrType CxLU (void *matrix, int matrixSize, int permutationVector[], int *sign);
Performs an LU decomposition on the complex, square matrix A:
PA = LU
| where | L is a matrixSize-by-matrixSize lower triangular matrix with all diagonal elements equal to one |
| U is an upper triangular matrix | |
| P is an identity matrix with some rows exchanged based on the information in the permutation vector |
On output, the U matrix occupies the upper triangular part of the input matrix, including the diagonal elements, and the L matrix occupies the lower part.
| Input | ||
| Name | Type | Description |
| matrixSize | integer | The number of rows and columns in the square input matrix and the number of elements in the permutation vector. |
| Output | ||
| Name | Type | Description |
| matrix | numeric array | On input, the square matrix to factorize. On output, the LU factorized matrix. matrix must be an array of ComplexNum. The following C typedef statement defines the ComplexNum structure: typedef struct { double real; double imaginary; } ComplexNum; |
| permutationVector | integer array | Permutation vector. |
| sign | integer | Row exchange indicator. sign = 0 indicates that there is no such exchange or that there is an even number of such exchanges. sign = 1 indicates that there is an odd number of such exchanges. |
| Name | Type | Description |
| status | AnalysisLibErrType | A value that specifies the type of error that occurred. Refer to analysis.h for definitions of these constants. |