TSparseMtx.EigSym Method

Int32 EigSym(TVec D, TVec R, TMtx V, ref Int32 EigCount, ref Double EpsOut, Double Minimum, Double Maximum, ref Int32[] fpm)

Computes eigenvalues and eigenvectors for symmetric (hermitian) sparse matrix.

#NameDescription
1DReturns the eigenvalues.
2RReturns the relative residual vector
3EpsOutContains the relative error on the trace: |trac[i] - trace[i-1]|/Max(|Maximum|, |sMinimum|)
4VReturns the eigenvectors in rows. On Input, the matrix can contain estimate of eigenvectors, otherwise V.Length must be zero.
5MinimumStart of the search interval.
6MaximumStop of the search interval.
7EigCountContains estimated eigenvalue on input and actual count on return.
8fpmProcessing parameter list. Leave nil, to use default values.

Returns: Int32 - The function will return: * 0 on success. * 1 no eigenvalues found in search interval. Try to scale up/down the matrix: (A/t) x=(Lambda/t) x * 2 in case of no convergence (maximum iteration loops specified in fpm(4) exceeded) * 3 There are more eigenvalues present than have been estimated with EigCount

Remarks:

To compute all eigenvalues and eigenvectors would require storage equal to the size of the dense matrix. For this reason, the routine allows computation of eigenvectors and eigenvalues only within a specified range. The expected number of eigenvalues within the Interval [Minimum, Maximum] is specified with EigCount. If the function returns with a different EigCount, the initial estimate needs to be adjusted, because there was not enough storage to store the result.

The quadratic sparse matrix is expected to store only lower triangular part including the main diagonal.