CxEigenVBack

Advanced Analysis Library Only

AnalysisLibErrType CxEigenVBack (void *inputEigenvectors, int numberOfEigenvectors, int side, int method, int indexLow, int indexHigh, double scale[], void *outputEigenvectors);

Purpose

Transforms the complex eigenvectors of a balanced matrix to those of the original matrix. If you want more accurate eigenvectors for an unsymmetric matrix, complete the following steps:

  1. Balance the original matrix using MatrixBalance or CxMatrixBalance.
  2. Call GenEigenValueVector or CxEigenValueVector to get the eigenvectors of the balanced matrix.
  3. Call CxEigenVBack to back-transform the eigenvectors of the balanced matrix to the eigenvectors of the original matrix.

Parameters

Input
Name Type Description
inputEigenvectors numeric array The eigenvectors of the balanced matrix.
numberOfEigenvectors integer The order of inputEigenvectors.
side integer Specifies whether inputEigenvectors contains right side eigenvectors or left side eigenvectors. side must be one of the following values:
  • RIGHT_EIGEN (0): right side eigenvectors
  • LEFT_EIGEN (1): left side eigenvectors
method integer Specifies how the original matrix is balanced. method should be the same value as passed to CxMatrixBalance or MatrixBalance when the original matrix was balanced.
indexLow integer The permutation information from CxMatrixBalance or MatrixBalance.
indexHigh integer The permutation information from CxMatrixBalance or MatrixBalance.
scale double-precision array The scale information from CxMatrixBalance or MatrixBalance.
Output
Name Type Description
outputEigenvectors numeric array The eigenvectors of the original matrix. If outputEigenvectors = NULL or outputEigenvectors = inputEigenvectors, the back-transformed eigenvectors overwrite inputEigenvectors.

Return Value

Name Type Description
status AnalysisLibErrType A value that specifies the type of error that occurred. Refer to analysis.h for definitions of these constants.