ILNumerics Ultimate VSILMatheigGen Method (InArraycomplex, InArraycomplex, OutArraycomplex, GenEigenType, Boolean)ILNumerics Ultimate VS Documentation
ILNumerics - Technical Application Development
Computes eigenvalues and eigenvectors (optional) of symmetric/hermitian inputs A and B: A*V=lamda*B*V.

[ILNumerics Computing Engine]

Namespace: ILNumerics
Assembly: ILNumerics.Computing (in ILNumerics.Computing.dll) Version: 5.3.0.0 (5.3.7131.2749)
Syntax

public static RetArray<double> eigGen(
	InArray<complex> A,
	InArray<complex> B,
	OutArray<complex> V = null,
	GenEigenType type = GenEigenType.Ax_eq_lambBx,
	bool skipSymmCheck = false
)

Parameters

A
Type: ILNumericsInArraycomplex
Square, symmetric/hermitian input matrix, size [n x n].
B
Type: ILNumericsInArraycomplex
Square, symmetric/hermitian and positive definite matrix, size [n x n].
V (Optional)
Type: ILNumericsOutArraycomplex
[Output, optional] Returns the eigenvectors in columns (size [n x n]). Default: (null) eigenvectors are not returned.
type (Optional)
Type: ILNumericsGenEigenType
[Optional] Determines the eigen problem type. Default: (null) Ax_eq_lambBx: A*V = r*B*V.
skipSymmCheck (Optional)
Type: SystemBoolean
[Optional] true: skip tests for A and B being hermitian. Default: false.

Return Value

Type: RetArrayDouble
Vector [n] of eigenvalues or a diagonal matrix [n,n] with the eigenvalues on the main diagonal if V is not null.
Exceptions

ExceptionCondition
ArgumentExceptionif B was not positive definite, if A and B was not of the same size, if either A and/or B was found not to be symmetric/hermitian, or if the algorithm did not converge. All exceptions will give additional error details in their exception message.
Remarks

This function solves the generalized eigenproblem A*V=lamda*B*V or the problem as specified by type.

Eigenvectors in V are not normalized! See details about the normalization performed by the underlying Lapack routines.

Internally, the generalized eigenproblem A*V = r*B*V will be reduced to B-1*A*V = r*V using cholesky factorization. The computations are handled by LAPACK functions DSYGV,SSYGV,CHEGV and ZHEGV respectively.

[ILNumerics Computing Engine]

See Also

Reference

MathInternal.eigSymm(InArraycomplex)
MathInternal.eig(InArraycomplex, OutArraycomplex, MatrixProperties, Boolean)
MathInternal.chol(InArraycomplex, Boolean)