SymEigenValueVector

Advanced Analysis Library Only

AnalysisLibErrType SymEigenValueVector (void *inputMatrix, int matrixSize, int outputChoice, double eigenValues[], void *eigenVectors);

Purpose

Calculates the eigenvalues λ and the corresponding eigenvectors x of a real, symmetric square input matrix A. The following formula defines the eigenvalues and the corresponding eigenvectors:

Ax = λx

The eigenvalues and the eigenvectors are all real-valued.

The outputChoice parameter determines what to calculate. Depending on your application, you can choose to calculate just the eigenvalues or to calculate both the eigenvalues and the eigenvectors.

The eigenValues output parameter is a 1D, real array of matrixSize elements.

The eigenVectors output parameter is a matrixSize-by-matrixSize real matrix (2D array). Each column of this matrix is the eigenvector that corresponds to the component of the eigenValues. Each eigenvector is normalized so that its largest component equals one.

Parameters

Input
Name Type Description
inputMatrix numeric array Input symmetric square matrix. This matrix must be an array of doubles.
matrixSize integer Number of elements in one dimension of the input matrix.
outputChoice integer Pass 0 for eigenvalues only; 1 for both eigenvalues and eigenvectors.
Output
Name Type Description
eigenValues double-precision array Resulting eigenvalues of the input matrix.
eigenVectors numeric array Resulting eigenvectors of the input matrix, as an array of doubles.

If outputChoice is eigenvalues only, you can pass NULL for this parameter.

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.