Computes all eigenvalues and, optionally, eigenvectors of a
real symmetric matrix A.
Namespace: Extreme.Mathematics.LinearAlgebra.ImplementationAssembly: Extreme.Numerics.Net40 (in Extreme.Numerics.Net40.dll) Version: 6.0.16073.0 (6.0.16312.0)
public override void SymmetricEigenvalueDecompose(
char jobz,
MatrixTriangle storedTriangle,
int n,
Array2D<double> a,
Array1D<double> w,
out int info
)
Public Overrides Sub SymmetricEigenvalueDecompose (
jobz As Char,
storedTriangle As MatrixTriangle,
n As Integer,
a As Array2D(Of Double),
w As Array1D(Of Double),
<OutAttribute> ByRef info As Integer
)
public:
virtual void SymmetricEigenvalueDecompose(
wchar_t jobz,
MatrixTriangle storedTriangle,
int n,
Array2D<double> a,
Array1D<double> w,
[OutAttribute] int% info
) override
abstract SymmetricEigenvalueDecompose :
jobz : char *
storedTriangle : MatrixTriangle *
n : int *
a : Array2D<float> *
w : Array1D<float> *
info : int byref -> unit
override SymmetricEigenvalueDecompose :
jobz : char *
storedTriangle : MatrixTriangle *
n : int *
a : Array2D<float> *
w : Array1D<float> *
info : int byref -> unit
Parameters
- jobz
- Type: SystemChar
= 'N': Compute eigenvalues only;
= 'V': Compute eigenvalues and eigenvectors.
- storedTriangle
- Type: Extreme.MathematicsMatrixTriangle
= 'U': Upper triangle of A is stored;
= 'L': Lower triangle of A is stored.
- n
- Type: SystemInt32
The order of the matrix A. N >= 0.
- a
- Type: Extreme.CollectionsArray2DDouble
Dimension (LDA, N)
On entry, the symmetric matrix A. If UPLO = 'U', the
leading N-by-N upper triangular part of A contains the
upper triangular part of the matrix A. If UPLO = 'L',
the leading N-by-N lower triangular part of A contains
the lower triangular part of the matrix A.
On exit, if JOBZ = 'V', then if INFO = 0, A contains the
orthonormal eigenvectors of the matrix A.
If JOBZ = 'N', then on exit the lower triangle (if UPLO='L')
or the upper triangle (if UPLO='U') of A, including the
diagonal, is destroyed.
The leading dimension of the array A. LDA >= max(1,N).
- w
- Type: Extreme.CollectionsArray1DDouble
Dimension (N)
If INFO = 0, the eigenvalues in ascending order.
- info
- Type: SystemInt32
= 0: successful exit
< 0: if INFO = -i, the i-th argument had an illegal value
> 0: if INFO = i and JOBZ = 'N', then the algorithm failed
to converge; i off-diagonal elements of an intermediate
tridiagonal form did not converge to zero;
if INFO = i and JOBZ = 'V', then the algorithm failed
to compute an eigenvalue while working on the sub-matrix
lying in rows and columns INFO/(N+1) through
mod(INFO,N+1).
If eigenvectors are desired, it uses a
divide and conquer algorithm.
The divide and conquer algorithm makes very mild assumptions about
floating point arithmetic. It will work on machines with a guard
digit in add/subtract, or on those binary machines without guard
digits which subtract like the Cray X-MP, Cray Y-MP, Cray C-90, or
Cray-2. It could conceivably fail on hexadecimal or decimal machines
without guard digits, but we know of none.
Because of large use of BLAS of level 3, DSYEVD needs N**2 more
workspace than DSYEVX.
Contributors:
Jeff Rutter, Computer Science Division, University of California
at Berkeley, USA \n
Modified by Francoise Tisseur, University of Tennessee \n
Modified description of INFO. Sven, 16 Feb 05. \n
This method corresponds to the LAPACK routine DSYEVD.
Numerical Libraries
Supported in: 6.0, 5.x
Reference