Admin Production ni-theme
Current Publication

QREx

LabWindows/CVI

QREx

Advanced Analysis Library Only

AnalysisLibErrType QREx (void *inputMatrix, ssize_t numberOfRows, ssize_t numberOfColumns, int pivot, int sizeOption, void *pivotInfo, void *qMatrix, void *rMatrix);

Purpose

Calculates the QR factorization for a real matrix. QREx factorizes A as AP = QR, where P is a permutation matrix, Q is an orthogonal matrix, and R is an upper triangular matrix. If numberOfRows > numberOfColumns, sizeOption is ECONOMY_SIZE and rMatrix is NULL or inputMatrix. On output, the leading numberOfColumns rows in inputMatrix are the upper triangular matrix R.

National Instruments recommends you use this function instead of QR.

Parameters

Input
Name Type Description
inputMatrix void * The input matrix.
numberOfRows ssize_t The number of rows of inputMatrix.
numberOfColumns ssize_t The number of columns of inputMatrix.
pivot int Specifies how to pivot inputMatrix. pivot must be one of the following values:
  • NOT_PIVOT (0): Do not pivot inputMatrix. That is, factorize inputMatrix as inputMatrix = QR. In this case, pivotInfo is not referenced.
  • PIVOT_VECTOR (1): Pivot inputMatrix and record the pivoting information as a vector in pivotInfo. That is, factorize inputMatrix as AP = QR. The size of pivotInfo must be numberOfColumns.
  • PIVOT_MATRIX (2): Pivot inputMatrix and record the pivoting information as a matrix in pivotInfo. That is, factorize inputMatrix as AP = QR. The size of pivotInfo must be numberOfColumns * numberOfColumns.
With pivoting, inputMatrix is pivoted so that abs(diag(rMatrix)) are in descending order.
sizeOption int The size option for qMatrix and rMatrix. sizeOption must one of the following values:
  • FULL_SIZE (0): The size of qMatrix is numberOfRows * numberOfRows. The size of rMatrix is numberOfRows * numberOfColumns.
  • ECONOMY_SIZE (1): The size of qMatrix is numberOfRows * min(numberOfRows, numberOfColumns). The size of rMatrix is min(numberOfRows, numberOfColumns) * numberOfColumns.
Output
Name Type Description
pivotInfo void * The pivoting information if pivot is PIVOT_VECTOR or PIVOT_MATRIX.
  • If pivot = PIVOT_VECTOR, pivotInfo is a numberOfColumns element vector. The columns of AP are the columns of A in the following order: pivotInfo[0], pivotInfo[1], pivotInfo[2], . . . , pivotInfo[colA-1].
  • If pivot = PIVOT_MATRIX, pivotInfo is directly the permutation matrix P in AP = QR.
If pivot is NOT_PIVOT, pass NULL for this parameter.
qMatrix void * The orthogonal matrix Q. If qMatrix = NULL, qMatrix is not generated.
rMatrix void * The upper triangular matrix R. Set rMatrix to NULL or inputMatrix to perform in place operation.

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.

Additional Information

Library: Advanced Analysis Library

Include file: analysis.h

LabWindows/CVI compatibility: LabWindows/CVI 8.0 and later