CxSchur

Advanced Analysis Library Only

AnalysisLibErrType CxSchur (void *inputMatrix, int matrixSize, int order, void *orthogonalMatrix, void *schurMatrix, NIComplexNumber eigenvalues[]);

Purpose

Performs the Schur decomposition of a complex matrix A, as follows:

A = QSQH

whereQ is a unitary matrix composed of Schur vectors
S is a complex Schur form matrix, which is an upper triangular matrix
QH is the conjugate transpose of Q

Parameters

Input
Name Type Description
inputMatrix numeric array The input matrix.
matrixSize integer The order of inputMatrix.
order integer Specifies how to reorder the computed eigenvalues and corresponding Schur vectors. order must be one of the following values:
  • None: The computed eigenvalues are not reordered.
  • REAL_ASCENDING: Reorders eigenvalues and corresponding Schur vectors in real part ascending order.
  • REAL_DESCENDING: Reorders eigenvalues and corresponding Schur vectors in real part descending order.
  • MAG_ASCENDING: Reorders eigenvalues and corresponding Schur vectors in magnitude ascending order.
  • MAG_DESCENDING: Reorders eigenvalues and corresponding Schur vectors in magnitude descending order.
Output
Name Type Description
orthogonalMatrix numeric array The unitary matrix Q. On input, if orthogonalMatrix = NULL, Q is not computed.
schurMatrix numeric array The complex Schur form matrix S. That is, schurMatrix is an upper triangular matrix.
eigenvalues complex number array The eigenvalues of inputMatrix, in the same order that they appear on the diagonal of the output complex Schur form schurMatrix.

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.