--- rpl/lapack/lapack/zpoequb.f 2010/08/07 13:22:42 1.2
+++ rpl/lapack/lapack/zpoequb.f 2018/05/29 07:18:32 1.14
@@ -1,15 +1,129 @@
- SUBROUTINE ZPOEQUB( N, A, LDA, S, SCOND, AMAX, INFO )
+*> \brief \b ZPOEQUB
*
-* -- LAPACK routine (version 3.2) --
-* -- Contributed by James Demmel, Deaglan Halligan, Yozo Hida and --
-* -- Jason Riedy of Univ. of California Berkeley. --
-* -- November 2008 --
+* =========== DOCUMENTATION ===========
*
-* -- LAPACK is a software package provided by Univ. of Tennessee, --
-* -- Univ. of California Berkeley and NAG Ltd. --
+* Online html documentation available at
+* http://www.netlib.org/lapack/explore-html/
+*
+*> \htmlonly
+*> Download ZPOEQUB + dependencies
+*>
+*> [TGZ]
+*>
+*> [ZIP]
+*>
+*> [TXT]
+*> \endhtmlonly
+*
+* Definition:
+* ===========
+*
+* SUBROUTINE ZPOEQUB( N, A, LDA, S, SCOND, AMAX, INFO )
+*
+* .. Scalar Arguments ..
+* INTEGER INFO, LDA, N
+* DOUBLE PRECISION AMAX, SCOND
+* ..
+* .. Array Arguments ..
+* COMPLEX*16 A( LDA, * )
+* DOUBLE PRECISION S( * )
+* ..
+*
+*
+*> \par Purpose:
+* =============
+*>
+*> \verbatim
+*>
+*> ZPOEQUB computes row and column scalings intended to equilibrate a
+*> Hermitian positive definite matrix A and reduce its condition number
+*> (with respect to the two-norm). S contains the scale factors,
+*> S(i) = 1/sqrt(A(i,i)), chosen so that the scaled matrix B with
+*> elements B(i,j) = S(i)*A(i,j)*S(j) has ones on the diagonal. This
+*> choice of S puts the condition number of B within a factor N of the
+*> smallest possible condition number over all possible diagonal
+*> scalings.
+*>
+*> This routine differs from ZPOEQU by restricting the scaling factors
+*> to a power of the radix. Barring over- and underflow, scaling by
+*> these factors introduces no additional rounding errors. However, the
+*> scaled diagonal entries are no longer approximately 1 but lie
+*> between sqrt(radix) and 1/sqrt(radix).
+*> \endverbatim
+*
+* Arguments:
+* ==========
+*
+*> \param[in] N
+*> \verbatim
+*> N is INTEGER
+*> The order of the matrix A. N >= 0.
+*> \endverbatim
+*>
+*> \param[in] A
+*> \verbatim
+*> A is COMPLEX*16 array, dimension (LDA,N)
+*> The N-by-N Hermitian positive definite matrix whose scaling
+*> factors are to be computed. Only the diagonal elements of A
+*> are referenced.
+*> \endverbatim
+*>
+*> \param[in] LDA
+*> \verbatim
+*> LDA is INTEGER
+*> The leading dimension of the array A. LDA >= max(1,N).
+*> \endverbatim
+*>
+*> \param[out] S
+*> \verbatim
+*> S is DOUBLE PRECISION array, dimension (N)
+*> If INFO = 0, S contains the scale factors for A.
+*> \endverbatim
+*>
+*> \param[out] SCOND
+*> \verbatim
+*> SCOND is DOUBLE PRECISION
+*> If INFO = 0, S contains the ratio of the smallest S(i) to
+*> the largest S(i). If SCOND >= 0.1 and AMAX is neither too
+*> large nor too small, it is not worth scaling by S.
+*> \endverbatim
+*>
+*> \param[out] AMAX
+*> \verbatim
+*> AMAX is DOUBLE PRECISION
+*> Absolute value of largest matrix element. If AMAX is very
+*> close to overflow or very close to underflow, the matrix
+*> should be scaled.
+*> \endverbatim
+*>
+*> \param[out] INFO
+*> \verbatim
+*> INFO is INTEGER
+*> = 0: successful exit
+*> < 0: if INFO = -i, the i-th argument had an illegal value
+*> > 0: if INFO = i, the i-th diagonal element is nonpositive.
+*> \endverbatim
+*
+* Authors:
+* ========
+*
+*> \author Univ. of Tennessee
+*> \author Univ. of California Berkeley
+*> \author Univ. of Colorado Denver
+*> \author NAG Ltd.
+*
+*> \date December 2016
+*
+*> \ingroup complex16POcomputational
+*
+* =====================================================================
+ SUBROUTINE ZPOEQUB( N, A, LDA, S, SCOND, AMAX, INFO )
+*
+* -- LAPACK computational routine (version 3.7.0) --
+* -- LAPACK is a software package provided by Univ. of Tennessee, --
+* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
+* December 2016
*
- IMPLICIT NONE
-* ..
* .. Scalar Arguments ..
INTEGER INFO, LDA, N
DOUBLE PRECISION AMAX, SCOND
@@ -19,50 +133,6 @@
DOUBLE PRECISION S( * )
* ..
*
-* Purpose
-* =======
-*
-* ZPOEQUB computes row and column scalings intended to equilibrate a
-* symmetric positive definite matrix A and reduce its condition number
-* (with respect to the two-norm). S contains the scale factors,
-* S(i) = 1/sqrt(A(i,i)), chosen so that the scaled matrix B with
-* elements B(i,j) = S(i)*A(i,j)*S(j) has ones on the diagonal. This
-* choice of S puts the condition number of B within a factor N of the
-* smallest possible condition number over all possible diagonal
-* scalings.
-*
-* Arguments
-* =========
-*
-* N (input) INTEGER
-* The order of the matrix A. N >= 0.
-*
-* A (input) COMPLEX*16 array, dimension (LDA,N)
-* The N-by-N symmetric positive definite matrix whose scaling
-* factors are to be computed. Only the diagonal elements of A
-* are referenced.
-*
-* LDA (input) INTEGER
-* The leading dimension of the array A. LDA >= max(1,N).
-*
-* S (output) DOUBLE PRECISION array, dimension (N)
-* If INFO = 0, S contains the scale factors for A.
-*
-* SCOND (output) DOUBLE PRECISION
-* If INFO = 0, S contains the ratio of the smallest S(i) to
-* the largest S(i). If SCOND >= 0.1 and AMAX is neither too
-* large nor too small, it is not worth scaling by S.
-*
-* AMAX (output) DOUBLE PRECISION
-* Absolute value of largest matrix element. If AMAX is very
-* close to overflow or very close to underflow, the matrix
-* should be scaled.
-*
-* INFO (output) INTEGER
-* = 0: successful exit
-* < 0: if INFO = -i, the i-th argument had an illegal value
-* > 0: if INFO = i, the i-th diagonal element is nonpositive.
-*
* =====================================================================
*
* .. Parameters ..
@@ -72,7 +142,6 @@
* .. Local Scalars ..
INTEGER I
DOUBLE PRECISION SMIN, BASE, TMP
- COMPLEX*16 ZDUM
* ..
* .. External Functions ..
DOUBLE PRECISION DLAMCH
@@ -84,12 +153,6 @@
* .. Intrinsic Functions ..
INTRINSIC MAX, MIN, SQRT, LOG, INT, REAL, DIMAG
* ..
-* .. Statement Functions ..
- DOUBLE PRECISION CABS1
-* ..
-* .. Statement Function Definitions ..
- CABS1( ZDUM ) = ABS( DBLE( ZDUM ) ) + ABS( DIMAG( ZDUM ) )
-* ..
* .. Executable Statements ..
*
* Test the input parameters.