Purpose
=======
DDISNA computes the reciprocal condition numbers for the eigenvectors
of a real symmetric or complex Hermitian matrix or for the left or
right singular vectors of a general m-by-n matrix. The reciprocal
condition number is the 'gap' between the corresponding eigenvalue or
singular value and the nearest other one.
The bound on the error, measured by angle in radians, in the I-th
computed vector is given by
DLAMCH( 'E' ) * ( ANORM / SEP( I ) )
where ANORM = 2-norm(A) = max( abs( D(j) ) ). SEP(I) is not allowed
to be smaller than DLAMCH( 'E' )*ANORM in order to limit the size of
the error bound.
DDISNA may also be used to compute error bounds for eigenvectors of
the generalized symmetric definite eigenproblem.
Namespace: DotNumerics.LinearAlgebra.CSLapackAssembly: DWSIM.MathOps.DotNumerics (in DWSIM.MathOps.DotNumerics.dll) Version: 1.0.0.0 (1.0.0.0)
Syntax public void Run(
string JOB,
int M,
int N,
double[] D,
int offset_d,
ref double[] SEP,
int offset_sep,
ref int INFO
)
Public Sub Run (
JOB As String,
M As Integer,
N As Integer,
D As Double(),
offset_d As Integer,
ByRef SEP As Double(),
offset_sep As Integer,
ByRef INFO As Integer
)
Request Example
View SourceParameters
- JOB String
-
(input) CHARACTER*1
Specifies for which problem the reciprocal condition numbers
should be computed:
= 'E': the eigenvectors of a symmetric/Hermitian matrix;
= 'L': the left singular vectors of a general matrix;
= 'R': the right singular vectors of a general matrix.
- M Int32
-
(input) INTEGER
The number of rows of the matrix. M .GE. 0.
- N Int32
-
(input) INTEGER
If JOB = 'L' or 'R', the number of columns of the matrix,
in which case N .GE. 0. Ignored if JOB = 'E'.
- D Double
-
(input) DOUBLE PRECISION array, dimension (M) if JOB = 'E'
dimension (min(M,N)) if JOB = 'L' or 'R'
The eigenvalues (if JOB = 'E') or singular values (if JOB =
'L' or 'R') of the matrix, in either increasing or decreasing
order. If singular values, they must be non-negative.
- offset_d Int32
-
- SEP Double
-
(output) DOUBLE PRECISION array, dimension (M) if JOB = 'E'
dimension (min(M,N)) if JOB = 'L' or 'R'
The reciprocal condition numbers of the vectors.
- offset_sep Int32
-
- INFO Int32
-
(output) INTEGER
= 0: successful exit.
.LT. 0: if INFO = -i, the i-th argument had an illegal value.
See Also