File:
[local] /
rpl /
lapack /
lapack /
dla_gbrpvgrw.f
Revision
1.4:
download - view:
text,
annotated -
select for diffs -
revision graph
Tue Dec 21 13:53:28 2010 UTC (13 years, 6 months ago) by
bertrand
Branches:
MAIN
CVS tags:
rpl-4_1_3,
rpl-4_1_2,
rpl-4_1_1,
rpl-4_1_0,
rpl-4_0_24,
rpl-4_0_22,
rpl-4_0_21,
rpl-4_0_20,
rpl-4_0,
HEAD
Mise à jour de lapack vers la version 3.3.0.
1: DOUBLE PRECISION FUNCTION DLA_GBRPVGRW( N, KL, KU, NCOLS, AB,
2: $ LDAB, AFB, LDAFB )
3: *
4: * -- LAPACK routine (version 3.2.2) --
5: * -- Contributed by James Demmel, Deaglan Halligan, Yozo Hida and --
6: * -- Jason Riedy of Univ. of California Berkeley. --
7: * -- June 2010 --
8: *
9: * -- LAPACK is a software package provided by Univ. of Tennessee, --
10: * -- Univ. of California Berkeley and NAG Ltd. --
11: *
12: IMPLICIT NONE
13: * ..
14: * .. Scalar Arguments ..
15: INTEGER N, KL, KU, NCOLS, LDAB, LDAFB
16: * ..
17: * .. Array Arguments ..
18: DOUBLE PRECISION AB( LDAB, * ), AFB( LDAFB, * )
19: * ..
20: *
21: * Purpose
22: * =======
23: *
24: * DLA_GBRPVGRW computes the reciprocal pivot growth factor
25: * norm(A)/norm(U). The "max absolute element" norm is used. If this is
26: * much less than 1, the stability of the LU factorization of the
27: * (equilibrated) matrix A could be poor. This also means that the
28: * solution X, estimated condition numbers, and error bounds could be
29: * unreliable.
30: *
31: * Arguments
32: * =========
33: *
34: * N (input) INTEGER
35: * The number of linear equations, i.e., the order of the
36: * matrix A. N >= 0.
37: *
38: * KL (input) INTEGER
39: * The number of subdiagonals within the band of A. KL >= 0.
40: *
41: * KU (input) INTEGER
42: * The number of superdiagonals within the band of A. KU >= 0.
43: *
44: * NCOLS (input) INTEGER
45: * The number of columns of the matrix A. NCOLS >= 0.
46: *
47: * AB (input) DOUBLE PRECISION array, dimension (LDAB,N)
48: * On entry, the matrix A in band storage, in rows 1 to KL+KU+1.
49: * The j-th column of A is stored in the j-th column of the
50: * array AB as follows:
51: * AB(KU+1+i-j,j) = A(i,j) for max(1,j-KU)<=i<=min(N,j+kl)
52: *
53: * LDAB (input) INTEGER
54: * The leading dimension of the array AB. LDAB >= KL+KU+1.
55: *
56: * AFB (input) DOUBLE PRECISION array, dimension (LDAFB,N)
57: * Details of the LU factorization of the band matrix A, as
58: * computed by DGBTRF. U is stored as an upper triangular
59: * band matrix with KL+KU superdiagonals in rows 1 to KL+KU+1,
60: * and the multipliers used during the factorization are stored
61: * in rows KL+KU+2 to 2*KL+KU+1.
62: *
63: * LDAFB (input) INTEGER
64: * The leading dimension of the array AFB. LDAFB >= 2*KL+KU+1.
65: *
66: * =====================================================================
67: *
68: * .. Local Scalars ..
69: INTEGER I, J, KD
70: DOUBLE PRECISION AMAX, UMAX, RPVGRW
71: * ..
72: * .. Intrinsic Functions ..
73: INTRINSIC ABS, MAX, MIN
74: * ..
75: * .. Executable Statements ..
76: *
77: RPVGRW = 1.0D+0
78:
79: KD = KU + 1
80: DO J = 1, NCOLS
81: AMAX = 0.0D+0
82: UMAX = 0.0D+0
83: DO I = MAX( J-KU, 1 ), MIN( J+KL, N )
84: AMAX = MAX( ABS( AB( KD+I-J, J)), AMAX )
85: END DO
86: DO I = MAX( J-KU, 1 ), J
87: UMAX = MAX( ABS( AFB( KD+I-J, J ) ), UMAX )
88: END DO
89: IF ( UMAX /= 0.0D+0 ) THEN
90: RPVGRW = MIN( AMAX / UMAX, RPVGRW )
91: END IF
92: END DO
93: DLA_GBRPVGRW = RPVGRW
94: END
CVSweb interface <joel.bertrand@systella.fr>