# DOUBLE PRECISION routines for diagonal matrix

## ddisna

USAGE:
sep, info = NumRu::Lapack.ddisna( job, n, d, [:usage => usage, :help => help])
FORTRAN MANUAL
SUBROUTINE DDISNA( JOB, M, N, D, SEP, INFO )
* 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.
*
* Arguments
* =========
*
* JOB (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 (input) INTEGER
* The number of rows of the matrix. M >= 0.
*
* N (input) INTEGER
* If JOB = 'L' or 'R', the number of columns of the matrix,
* in which case N >= 0. Ignored if JOB = 'E'.
*
* D (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.
*
* SEP (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.
*
* INFO (output) INTEGER
* = 0: successful exit.
* < 0: if INFO = -i, the i-th argument had an illegal value.
*
* =====================================================================
*

go to the page top

back to matrix types

back to data types