git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@9989 f3b2605a-c512-4ea7-a41b-209d697bcdaa
This commit is contained in:
@ -1,12 +1,133 @@
|
||||
*> \brief \b DGECON
|
||||
*
|
||||
* =========== DOCUMENTATION ===========
|
||||
*
|
||||
* Online html documentation available at
|
||||
* http://www.netlib.org/lapack/explore-html/
|
||||
*
|
||||
*> \htmlonly
|
||||
*> Download DGECON + dependencies
|
||||
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/dgecon.f">
|
||||
*> [TGZ]</a>
|
||||
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/dgecon.f">
|
||||
*> [ZIP]</a>
|
||||
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgecon.f">
|
||||
*> [TXT]</a>
|
||||
*> \endhtmlonly
|
||||
*
|
||||
* Definition:
|
||||
* ===========
|
||||
*
|
||||
* SUBROUTINE DGECON( NORM, N, A, LDA, ANORM, RCOND, WORK, IWORK,
|
||||
* INFO )
|
||||
*
|
||||
* .. Scalar Arguments ..
|
||||
* CHARACTER NORM
|
||||
* INTEGER INFO, LDA, N
|
||||
* DOUBLE PRECISION ANORM, RCOND
|
||||
* ..
|
||||
* .. Array Arguments ..
|
||||
* INTEGER IWORK( * )
|
||||
* DOUBLE PRECISION A( LDA, * ), WORK( * )
|
||||
* ..
|
||||
*
|
||||
*
|
||||
*> \par Purpose:
|
||||
* =============
|
||||
*>
|
||||
*> \verbatim
|
||||
*>
|
||||
*> DGECON estimates the reciprocal of the condition number of a general
|
||||
*> real matrix A, in either the 1-norm or the infinity-norm, using
|
||||
*> the LU factorization computed by DGETRF.
|
||||
*>
|
||||
*> An estimate is obtained for norm(inv(A)), and the reciprocal of the
|
||||
*> condition number is computed as
|
||||
*> RCOND = 1 / ( norm(A) * norm(inv(A)) ).
|
||||
*> \endverbatim
|
||||
*
|
||||
* Arguments:
|
||||
* ==========
|
||||
*
|
||||
*> \param[in] NORM
|
||||
*> \verbatim
|
||||
*> NORM is CHARACTER*1
|
||||
*> Specifies whether the 1-norm condition number or the
|
||||
*> infinity-norm condition number is required:
|
||||
*> = '1' or 'O': 1-norm;
|
||||
*> = 'I': Infinity-norm.
|
||||
*> \endverbatim
|
||||
*>
|
||||
*> \param[in] N
|
||||
*> \verbatim
|
||||
*> N is INTEGER
|
||||
*> The order of the matrix A. N >= 0.
|
||||
*> \endverbatim
|
||||
*>
|
||||
*> \param[in] A
|
||||
*> \verbatim
|
||||
*> A is DOUBLE PRECISION array, dimension (LDA,N)
|
||||
*> The factors L and U from the factorization A = P*L*U
|
||||
*> as computed by DGETRF.
|
||||
*> \endverbatim
|
||||
*>
|
||||
*> \param[in] LDA
|
||||
*> \verbatim
|
||||
*> LDA is INTEGER
|
||||
*> The leading dimension of the array A. LDA >= max(1,N).
|
||||
*> \endverbatim
|
||||
*>
|
||||
*> \param[in] ANORM
|
||||
*> \verbatim
|
||||
*> ANORM is DOUBLE PRECISION
|
||||
*> If NORM = '1' or 'O', the 1-norm of the original matrix A.
|
||||
*> If NORM = 'I', the infinity-norm of the original matrix A.
|
||||
*> \endverbatim
|
||||
*>
|
||||
*> \param[out] RCOND
|
||||
*> \verbatim
|
||||
*> RCOND is DOUBLE PRECISION
|
||||
*> The reciprocal of the condition number of the matrix A,
|
||||
*> computed as RCOND = 1/(norm(A) * norm(inv(A))).
|
||||
*> \endverbatim
|
||||
*>
|
||||
*> \param[out] WORK
|
||||
*> \verbatim
|
||||
*> WORK is DOUBLE PRECISION array, dimension (4*N)
|
||||
*> \endverbatim
|
||||
*>
|
||||
*> \param[out] IWORK
|
||||
*> \verbatim
|
||||
*> IWORK is INTEGER array, dimension (N)
|
||||
*> \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 doubleGEcomputational
|
||||
*
|
||||
* =====================================================================
|
||||
SUBROUTINE DGECON( NORM, N, A, LDA, ANORM, RCOND, WORK, IWORK,
|
||||
$ INFO )
|
||||
*
|
||||
* -- LAPACK routine (version 3.2) --
|
||||
* -- LAPACK computational routine (version 3.4.0) --
|
||||
* -- LAPACK is a software package provided by Univ. of Tennessee, --
|
||||
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
|
||||
* November 2006
|
||||
*
|
||||
* Modified to call DLACN2 in place of DLACON, 5 Feb 03, SJH.
|
||||
* November 2011
|
||||
*
|
||||
* .. Scalar Arguments ..
|
||||
CHARACTER NORM
|
||||
@ -18,52 +139,6 @@
|
||||
DOUBLE PRECISION A( LDA, * ), WORK( * )
|
||||
* ..
|
||||
*
|
||||
* Purpose
|
||||
* =======
|
||||
*
|
||||
* DGECON estimates the reciprocal of the condition number of a general
|
||||
* real matrix A, in either the 1-norm or the infinity-norm, using
|
||||
* the LU factorization computed by DGETRF.
|
||||
*
|
||||
* An estimate is obtained for norm(inv(A)), and the reciprocal of the
|
||||
* condition number is computed as
|
||||
* RCOND = 1 / ( norm(A) * norm(inv(A)) ).
|
||||
*
|
||||
* Arguments
|
||||
* =========
|
||||
*
|
||||
* NORM (input) CHARACTER*1
|
||||
* Specifies whether the 1-norm condition number or the
|
||||
* infinity-norm condition number is required:
|
||||
* = '1' or 'O': 1-norm;
|
||||
* = 'I': Infinity-norm.
|
||||
*
|
||||
* N (input) INTEGER
|
||||
* The order of the matrix A. N >= 0.
|
||||
*
|
||||
* A (input) DOUBLE PRECISION array, dimension (LDA,N)
|
||||
* The factors L and U from the factorization A = P*L*U
|
||||
* as computed by DGETRF.
|
||||
*
|
||||
* LDA (input) INTEGER
|
||||
* The leading dimension of the array A. LDA >= max(1,N).
|
||||
*
|
||||
* ANORM (input) DOUBLE PRECISION
|
||||
* If NORM = '1' or 'O', the 1-norm of the original matrix A.
|
||||
* If NORM = 'I', the infinity-norm of the original matrix A.
|
||||
*
|
||||
* RCOND (output) DOUBLE PRECISION
|
||||
* The reciprocal of the condition number of the matrix A,
|
||||
* computed as RCOND = 1/(norm(A) * norm(inv(A))).
|
||||
*
|
||||
* WORK (workspace) DOUBLE PRECISION array, dimension (4*N)
|
||||
*
|
||||
* IWORK (workspace) INTEGER array, dimension (N)
|
||||
*
|
||||
* INFO (output) INTEGER
|
||||
* = 0: successful exit
|
||||
* < 0: if INFO = -i, the i-th argument had an illegal value
|
||||
*
|
||||
* =====================================================================
|
||||
*
|
||||
* .. Parameters ..
|
||||
@ -149,12 +224,12 @@
|
||||
$ A, LDA, WORK, SU, WORK( 3*N+1 ), INFO )
|
||||
ELSE
|
||||
*
|
||||
* Multiply by inv(U').
|
||||
* Multiply by inv(U**T).
|
||||
*
|
||||
CALL DLATRS( 'Upper', 'Transpose', 'Non-unit', NORMIN, N, A,
|
||||
$ LDA, WORK, SU, WORK( 3*N+1 ), INFO )
|
||||
*
|
||||
* Multiply by inv(L').
|
||||
* Multiply by inv(L**T).
|
||||
*
|
||||
CALL DLATRS( 'Lower', 'Transpose', 'Unit', NORMIN, N, A,
|
||||
$ LDA, WORK, SL, WORK( 2*N+1 ), INFO )
|
||||
|
||||
Reference in New Issue
Block a user