﻿ILMath.eigGen Method (InArray(Single), InArray(Single), OutArray(Single), 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.5.0.0 (5.5.7503.3146)
Syntax

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

#### Parameters

A
Type: ILNumericsInArraySingle
Square, symmetric/hermitian input matrix, size [n x n].
B
Type: ILNumericsInArraySingle
Square, symmetric/hermitian and positive definite matrix, size [n x n].
V (Optional)
Type: ILNumericsOutArraySingle
[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: RetArraySingle
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]