CxQZ

Advanced Analysis Library Only

AnalysisLibErrType CxQZ (void *inputMatrixA, void *inputMatrixB, int matrixSize, int order, void *matrixAA, void *matrixBB, void *matrixQ, void *matrixZ, NIComplexNumber alpha[], NIComplexNumber beta[], void *leftEigenvectors, void *rightEigenvectors);

Purpose

Performs the QZ decomposition of a pair of complex matrices (A,B) as follows:

[AA, BB, Q, Z, alpha, beta, leftVec, rightVec] = QZ(A,B)

whereQHAZ = AA
QHBZ = BB
AA and BB are upper triangular matrices
Q and Z are orthogonal matrices
A * [rightVec] * diag(beta) = B * [rightVec] * diag(alpha)
diag(beta) * [leftVec]H * A = diag(alpha) * [leftVec]H * B
H denotes the conjugate transpose

Parameters

Input
Name Type Description
inputMatrixA numeric array The input matrix A.
inputMatrixB numeric array The input matrix B.
matrixSize integer The order of matrices inputMatrixA and inputMatrixB.
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 the eigenvalues and corresponding Schur vectors in real part ascending order.
  • REAL_DESCENDING: Reorders the eigenvalues and corresponding Schur vectors in real part descending order.
  • MAG_ASCENDING: Reorders the eigenvalues and corresponding Schur vectors in magnitude ascending order.
  • MAG_DESCENDING: Reorders the eigenvalues and corresponding Schur vectors in magnitude descending order.
Output
Name Type Description
matrixAA numeric array The upper triangular matrix such that QHAZ = matrixAA. If matrixAA = NULL, matrixAA is not computed.
matrixBB numeric array The upper triangular matrix such that QHBZ = matrixBB. If matrixBB = NULL, matrixBB is not computed.
matrixQ numeric array The unitary matrix Q.
matrixZ numeric array The unitary matrix Z.
alpha complex number array alpha and beta together define the generalized eigenvalues of (inputMatrixA, inputMatrixB) as alpha/beta.
beta complex number array alpha and beta together define the generalized eigenvalues of (inputMatrixA, inputMatrixB) as alpha/beta.
leftEigenvectors numeric array The left generalized eigenvectors of the matrix pair (A, B). If on input leftEigenvectors = NULL, the left eigenvectors are not computed.
rightEigenvectors numeric array The right generalized eigenvectors of the matrix pair (A, B). If on input rightEigenvectors = NULL, the right eigenvectors are not computed.

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.