version 1.9, 2011/11/21 20:42:50
|
version 1.21, 2023/08/07 08:38:47
|
Line 2
|
Line 2
|
* |
* |
* =========== DOCUMENTATION =========== |
* =========== DOCUMENTATION =========== |
* |
* |
* Online html documentation available at |
* Online html documentation available at |
* http://www.netlib.org/lapack/explore-html/ |
* http://www.netlib.org/lapack/explore-html/ |
* |
* |
*> \htmlonly |
*> \htmlonly |
*> Download DGEBAL + dependencies |
*> Download DGEBAL + dependencies |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/dgebal.f"> |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/dgebal.f"> |
*> [TGZ]</a> |
*> [TGZ]</a> |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/dgebal.f"> |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/dgebal.f"> |
*> [ZIP]</a> |
*> [ZIP]</a> |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgebal.f"> |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgebal.f"> |
*> [TXT]</a> |
*> [TXT]</a> |
*> \endhtmlonly |
*> \endhtmlonly |
* |
* |
* Definition: |
* Definition: |
* =========== |
* =========== |
* |
* |
* SUBROUTINE DGEBAL( JOB, N, A, LDA, ILO, IHI, SCALE, INFO ) |
* SUBROUTINE DGEBAL( JOB, N, A, LDA, ILO, IHI, SCALE, INFO ) |
* |
* |
* .. Scalar Arguments .. |
* .. Scalar Arguments .. |
* CHARACTER JOB |
* CHARACTER JOB |
* INTEGER IHI, ILO, INFO, LDA, N |
* INTEGER IHI, ILO, INFO, LDA, N |
Line 27
|
Line 27
|
* .. Array Arguments .. |
* .. Array Arguments .. |
* DOUBLE PRECISION A( LDA, * ), SCALE( * ) |
* DOUBLE PRECISION A( LDA, * ), SCALE( * ) |
* .. |
* .. |
* |
* |
* |
* |
*> \par Purpose: |
*> \par Purpose: |
* ============= |
* ============= |
Line 67
|
Line 67
|
*> |
*> |
*> \param[in,out] A |
*> \param[in,out] A |
*> \verbatim |
*> \verbatim |
*> A is DOUBLE array, dimension (LDA,N) |
*> A is DOUBLE PRECISION array, dimension (LDA,N) |
*> On entry, the input matrix A. |
*> On entry, the input matrix A. |
*> On exit, A is overwritten by the balanced matrix. |
*> On exit, A is overwritten by the balanced matrix. |
*> If JOB = 'N', A is not referenced. |
*> If JOB = 'N', A is not referenced. |
Line 94
|
Line 94
|
*> |
*> |
*> \param[out] SCALE |
*> \param[out] SCALE |
*> \verbatim |
*> \verbatim |
*> SCALE is DOUBLE array, dimension (N) |
*> SCALE is DOUBLE PRECISION array, dimension (N) |
*> Details of the permutations and scaling factors applied to |
*> Details of the permutations and scaling factors applied to |
*> A. If P(j) is the index of the row and column interchanged |
*> A. If P(j) is the index of the row and column interchanged |
*> with row and column j and D(j) is the scaling factor |
*> with row and column j and D(j) is the scaling factor |
Line 116
|
Line 116
|
* Authors: |
* Authors: |
* ======== |
* ======== |
* |
* |
*> \author Univ. of Tennessee |
*> \author Univ. of Tennessee |
*> \author Univ. of California Berkeley |
*> \author Univ. of California Berkeley |
*> \author Univ. of Colorado Denver |
*> \author Univ. of Colorado Denver |
*> \author NAG Ltd. |
*> \author NAG Ltd. |
* |
|
*> \date November 2011 |
|
* |
* |
*> \ingroup doubleGEcomputational |
*> \ingroup doubleGEcomputational |
* |
* |
Line 160
|
Line 158
|
* ===================================================================== |
* ===================================================================== |
SUBROUTINE DGEBAL( JOB, N, A, LDA, ILO, IHI, SCALE, INFO ) |
SUBROUTINE DGEBAL( JOB, N, A, LDA, ILO, IHI, SCALE, INFO ) |
* |
* |
* -- LAPACK computational routine (version 3.4.0) -- |
* -- LAPACK computational routine -- |
* -- 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 2011 |
|
* |
* |
* .. Scalar Arguments .. |
* .. Scalar Arguments .. |
CHARACTER JOB |
CHARACTER JOB |
Line 192
|
Line 189
|
* .. External Functions .. |
* .. External Functions .. |
LOGICAL DISNAN, LSAME |
LOGICAL DISNAN, LSAME |
INTEGER IDAMAX |
INTEGER IDAMAX |
DOUBLE PRECISION DLAMCH |
DOUBLE PRECISION DLAMCH, DNRM2 |
EXTERNAL DISNAN, LSAME, IDAMAX, DLAMCH |
EXTERNAL DISNAN, LSAME, IDAMAX, DLAMCH, DNRM2 |
* .. |
* .. |
* .. External Subroutines .. |
* .. External Subroutines .. |
EXTERNAL DSCAL, DSWAP, XERBLA |
EXTERNAL DSCAL, DSWAP, XERBLA |
Line 201
|
Line 198
|
* .. Intrinsic Functions .. |
* .. Intrinsic Functions .. |
INTRINSIC ABS, MAX, MIN |
INTRINSIC ABS, MAX, MIN |
* .. |
* .. |
* .. Executable Statements .. |
|
* |
|
* Test the input parameters |
* Test the input parameters |
* |
* |
INFO = 0 |
INFO = 0 |
Line 312
|
Line 307
|
SFMAX1 = ONE / SFMIN1 |
SFMAX1 = ONE / SFMIN1 |
SFMIN2 = SFMIN1*SCLFAC |
SFMIN2 = SFMIN1*SCLFAC |
SFMAX2 = ONE / SFMIN2 |
SFMAX2 = ONE / SFMIN2 |
|
* |
140 CONTINUE |
140 CONTINUE |
NOCONV = .FALSE. |
NOCONV = .FALSE. |
* |
* |
DO 200 I = K, L |
DO 200 I = K, L |
C = ZERO |
|
R = ZERO |
|
* |
* |
DO 150 J = K, L |
C = DNRM2( L-K+1, A( K, I ), 1 ) |
IF( J.EQ.I ) |
R = DNRM2( L-K+1, A( I, K ), LDA ) |
$ GO TO 150 |
|
C = C + ABS( A( J, I ) ) |
|
R = R + ABS( A( I, J ) ) |
|
150 CONTINUE |
|
ICA = IDAMAX( L, A( 1, I ), 1 ) |
ICA = IDAMAX( L, A( 1, I ), 1 ) |
CA = ABS( A( ICA, I ) ) |
CA = ABS( A( ICA, I ) ) |
IRA = IDAMAX( N-K+1, A( I, K ), LDA ) |
IRA = IDAMAX( N-K+1, A( I, K ), LDA ) |