TSparseMtx.EigSymGen Method

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

Computes eigenvalues and eigenvectors for generalized symmetric (hermitian) sparse problem.

#NameDescription
1BThe symmetric positive definite matrix.
2DReturns the eigenvalues.
3RReturns the relative residual vector
4EpsOutReturns the contains the relative error on the trace: |trac[i] - trace[i-1]|/Max(|Maximum|, |sMinimum|)
5VReturns the eigenvectors in rows. Pass nil for this paramter, if you dont require eigen-vectors,
6MinimumStart of the search interval.
7MaximumStop of the search interval.
8EigCountContains estimated eigenvalue on input and actual count on return.
9fpmProcessing 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.

Matrix A is expected to be symmetric and B must be symmetric and positive definite (Hermitian). Both matrices are expected to store only lower triangular part. Size of A and B is expected to be equal and both matrices are to be quadratic.