Overload List
| # | Signature | Description |
|---|---|---|
| 1 | TMtx EigSymRange(TVec D, TMtx V, Int32 LowRange, Int32 HighRange, Double Tolerance) | Computes eigenvalues and eigenvectors of a symmetric (Hermitian) matrix between min and max index. |
| 2 | TMtx EigSymRange(TVec D, Int32 LowRange, Int32 HighRange, Double Tolerance) | Computes eigenvalues of a symmetric (Hermitian) matrix between min and max index. |
Overload 1: TMtx EigSymRange(TVec D, TMtx V, Int32 LowRange, Int32 HighRange, Double Tolerance)
Computes eigenvalues and eigenvectors of a symmetric (Hermitian) matrix between min and max index.
| # | Name | Type | Description |
|---|---|---|---|
| 1 | D | TVec | source TVec |
| 2 | V | TMtx | source TMtx |
| 3 | LowRange | Int32 | |
| 4 | HighRange | Int32 | |
| 5 | Tolerance | Double | scalar |
Result: stored in self (calling object), returns self for chaining
The computation is based on Relatively Robust Representations.
Tolerance parameter specifies the absolute error tolerance for the eigenvalues. An approximate eigenvalue is accepted as converged when it is determined to lie in an interval [a,b] of width less than or equal to
Tolerance + EPS / max( |a|,|b| ) ,
where EPS is the machine precision. If Tolerance is less than or equal to zero, then EPS*|T| will be used in its place, where |T| is the 1-norm of the tridiagonal matrix obtained by reducing A to tridiagonal form.
Eigenvalues will be computed most accurately when Tolerance is set to twice the underflow threshold, not zero. If this routine returns fails , indicating that some eigenvectors did not converge, try setting Tolerance to UnderflowThreshold.
The first eigenvalue index is 1 and the last index is equal to row/column count. LowerRange and UpperRange need to be specified within this interval: 1 <= LowerRange <= UpperRange <= Rows
Overload 2: TMtx EigSymRange(TVec D, Int32 LowRange, Int32 HighRange, Double Tolerance)
Computes eigenvalues of a symmetric (Hermitian) matrix between min and max index.
| # | Name | Type | Description |
|---|---|---|---|
| 1 | D | TVec | source TVec |
| 2 | LowRange | Int32 | |
| 3 | HighRange | Int32 | |
| 4 | Tolerance | Double | scalar |
Result: stored in self (calling object), returns self for chaining
The computation is based on Relatively Robust Representations.
Tolerance parameter specifies the absolute error tolerance for the eigenvalues. An approximate eigenvalue is accepted as converged when it is determined to lie in an interval [a,b] of width less than or equal to
Tolerance + EPS / max( |a|,|b| ) ,
where EPS is the machine precision. If Tolerance is less than or equal to zero, then EPS*|T| will be used in its place, where |T| is the 1-norm of the tridiagonal matrix obtained by reducing A to tridiagonal form.
Eigenvalues will be computed most accurately when Tolerance is set to twice the underflow threshold, not zero. If this routine returns fails , indicating that some eigenvectors did not converge, try setting Tolerance to UnderflowThreshold.
The first eigenvalue index is 1 and the last index is equal to row/column count. LowerRange and UpperRange need to be specified within this interval: 1 <= LowerRange <= UpperRange <= Rows