Advanced Analysis Library Only
AnalysisLibErrType CxMatrixBalance (void *inputMatrix, int matrixSize, int method, int *indexLow, int *indexHigh, double scale[], void *balancedMatrix);
Balances a general complex matrix so that its eigenvectors can be computed more accurately. If you want more accurate eigenvectors for an unsymmetric complex matrix, complete the following steps:
Input | ||
Name | Type | Description |
inputMatrix | numeric array | The matrix to balance. |
matrixSize | integer | The order of inputMatrix. |
method | integer | Specifies how to balance inputMatrix. method must be one of the following values:
|
Output | ||
Name | Type | Description |
indexLow | integer | The lower index that records the permutation information. The values indexLow and indexHigh are such that on output, balancedMatrix[i,j] is 0 if i > j and (i <= j < indexLow or indexHigh < i <= matrixSize - 1). |
indexHigh | integer | The upper index that records the permutation information. |
scale | double-precision array | The scale information, whose size is matrixSize. |
balancedMatrix | numeric array | The balanced matrix. In place operation is supported. That is, you can call the function with balancedMatrix = NULL or balancedMatrix = inputMatrix so that the balanced matrix overwrites inputMatrix directly. |
Name | Type | Description |
status | AnalysisLibErrType | A value that specifies the type of error that occurred. Refer to analysis.h for definitions of these constants. |