version 1.3, 2010/08/06 15:28:35
|
version 1.11, 2012/12/14 14:22:27
|
Line 1
|
Line 1
|
|
*> \brief \b DDISNA |
|
* |
|
* =========== DOCUMENTATION =========== |
|
* |
|
* Online html documentation available at |
|
* http://www.netlib.org/lapack/explore-html/ |
|
* |
|
*> \htmlonly |
|
*> Download DDISNA + dependencies |
|
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/ddisna.f"> |
|
*> [TGZ]</a> |
|
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/ddisna.f"> |
|
*> [ZIP]</a> |
|
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ddisna.f"> |
|
*> [TXT]</a> |
|
*> \endhtmlonly |
|
* |
|
* Definition: |
|
* =========== |
|
* |
|
* SUBROUTINE DDISNA( JOB, M, N, D, SEP, INFO ) |
|
* |
|
* .. Scalar Arguments .. |
|
* CHARACTER JOB |
|
* INTEGER INFO, M, N |
|
* .. |
|
* .. Array Arguments .. |
|
* DOUBLE PRECISION D( * ), SEP( * ) |
|
* .. |
|
* |
|
* |
|
*> \par Purpose: |
|
* ============= |
|
*> |
|
*> \verbatim |
|
*> |
|
*> 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. |
|
*> \endverbatim |
|
* |
|
* Arguments: |
|
* ========== |
|
* |
|
*> \param[in] JOB |
|
*> \verbatim |
|
*> JOB is 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. |
|
*> \endverbatim |
|
*> |
|
*> \param[in] M |
|
*> \verbatim |
|
*> M is INTEGER |
|
*> The number of rows of the matrix. M >= 0. |
|
*> \endverbatim |
|
*> |
|
*> \param[in] N |
|
*> \verbatim |
|
*> N is INTEGER |
|
*> If JOB = 'L' or 'R', the number of columns of the matrix, |
|
*> in which case N >= 0. Ignored if JOB = 'E'. |
|
*> \endverbatim |
|
*> |
|
*> \param[in] D |
|
*> \verbatim |
|
*> D is 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. |
|
*> \endverbatim |
|
*> |
|
*> \param[out] SEP |
|
*> \verbatim |
|
*> SEP is DOUBLE PRECISION array, dimension (M) if JOB = 'E' |
|
*> dimension (min(M,N)) if JOB = 'L' or 'R' |
|
*> The reciprocal condition numbers of the vectors. |
|
*> \endverbatim |
|
*> |
|
*> \param[out] INFO |
|
*> \verbatim |
|
*> INFO is INTEGER |
|
*> = 0: successful exit. |
|
*> < 0: if INFO = -i, the i-th argument had an illegal value. |
|
*> \endverbatim |
|
* |
|
* Authors: |
|
* ======== |
|
* |
|
*> \author Univ. of Tennessee |
|
*> \author Univ. of California Berkeley |
|
*> \author Univ. of Colorado Denver |
|
*> \author NAG Ltd. |
|
* |
|
*> \date November 2011 |
|
* |
|
*> \ingroup auxOTHERcomputational |
|
* |
|
* ===================================================================== |
SUBROUTINE DDISNA( JOB, M, N, D, SEP, INFO ) |
SUBROUTINE DDISNA( JOB, M, N, D, SEP, INFO ) |
* |
* |
* -- LAPACK routine (version 3.2) -- |
* -- LAPACK computational routine (version 3.4.0) -- |
* -- LAPACK is a software package provided by Univ. of Tennessee, -- |
* -- LAPACK is a software package provided by Univ. of Tennessee, -- |
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- |
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- |
* November 2006 |
* November 2011 |
* |
* |
* .. Scalar Arguments .. |
* .. Scalar Arguments .. |
CHARACTER JOB |
CHARACTER JOB |
Line 13
|
Line 130
|
DOUBLE PRECISION D( * ), SEP( * ) |
DOUBLE PRECISION D( * ), SEP( * ) |
* .. |
* .. |
* |
* |
* 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. |
|
* |
|
* ===================================================================== |
* ===================================================================== |
* |
* |
* .. Parameters .. |
* .. Parameters .. |