SVDEx

Advanced Analysis Library Only

AnalysisLibErrType SVDEx (void *inputMatrix, int numberOfRows, int numberOfColumns, int sizeOption, void *uMatrix, double singularValuesVector[], void *vMatrix);

Purpose

Computes the singular value decomposition (SVD) of a real matrix, as follows: A = USVH. U is a column orthogonal matrix. That is, UHU = I, where I is the identity matrix and UH is the transpose of U. S is a diagonal matrix whose diagonal elements are the singular values of A. V is also a column orthogonal matrix. That is, VHV = I, where VH is the transpose of V.

National Instruments recommends you use SVDEx for SVD operation instead of SVD. SVDEx can do full-size decomposition.

Parameters

Input
Name Type Description
inputMatrix numeric array The matrix to decompose.
numberOfRows integer The number of rows of inputMatrix.
numberOfColumns integer The number of columns of inputMatrix.
sizeOption integer The size option of SVD. sizeOption must one of the following values:
  • FULL_SIZE (0): The size of U is numberOfRows * numberOfRows. The size of V is numberOfColumns * numberOfColumns.
  • ECONOMY_SIZE (1): The size of U is numberOfRows * min(numberOfRows, numberOfColumns). The size of V is numberOfColumns * min(numberOfRows, numberOfColumns).
Output
Name Type Description
uMatrix numeric array The orthogonal matrix U. If uMatrix = NULL, this function computes only singular values.
singularValuesVector double-precision array The singular values in descending order, whose size is min(numberOfRows, numberOfColumns). If you want to compute only singular values, call the function with either uMatrix = NULL or vMatrix = NULL. In this case, uMatrix and vMatrix are not referenced.
vMatrix numeric array The orthogonal matrix V. If vMatrix = NULL, only singular values are 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.