1: *> \brief \b DLA_GERPVGRW
2: *
3: * =========== DOCUMENTATION ===========
4: *
5: * Online html documentation available at
6: * http://www.netlib.org/lapack/explore-html/
7: *
8: *> \htmlonly
9: *> Download DLA_GERPVGRW + dependencies
10: *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/dla_gerpvgrw.f">
11: *> [TGZ]</a>
12: *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/dla_gerpvgrw.f">
13: *> [ZIP]</a>
14: *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dla_gerpvgrw.f">
15: *> [TXT]</a>
16: *> \endhtmlonly
17: *
18: * Definition:
19: * ===========
20: *
21: * DOUBLE PRECISION FUNCTION DLA_GERPVGRW( N, NCOLS, A, LDA, AF,
22: * LDAF )
23: *
24: * .. Scalar Arguments ..
25: * INTEGER N, NCOLS, LDA, LDAF
26: * ..
27: * .. Array Arguments ..
28: * DOUBLE PRECISION A( LDA, * ), AF( LDAF, * )
29: * ..
30: *
31: *
32: *> \par Purpose:
33: * =============
34: *>
35: *> \verbatim
36: *>
37: *>
38: *> DLA_GERPVGRW computes the reciprocal pivot growth factor
39: *> norm(A)/norm(U). The "max absolute element" norm is used. If this is
40: *> much less than 1, the stability of the LU factorization of the
41: *> (equilibrated) matrix A could be poor. This also means that the
42: *> solution X, estimated condition numbers, and error bounds could be
43: *> unreliable.
44: *> \endverbatim
45: *
46: * Arguments:
47: * ==========
48: *
49: *> \param[in] N
50: *> \verbatim
51: *> N is INTEGER
52: *> The number of linear equations, i.e., the order of the
53: *> matrix A. N >= 0.
54: *> \endverbatim
55: *>
56: *> \param[in] NCOLS
57: *> \verbatim
58: *> NCOLS is INTEGER
59: *> The number of columns of the matrix A. NCOLS >= 0.
60: *> \endverbatim
61: *>
62: *> \param[in] A
63: *> \verbatim
64: *> A is DOUBLE PRECISION array, dimension (LDA,N)
65: *> On entry, the N-by-N matrix A.
66: *> \endverbatim
67: *>
68: *> \param[in] LDA
69: *> \verbatim
70: *> LDA is INTEGER
71: *> The leading dimension of the array A. LDA >= max(1,N).
72: *> \endverbatim
73: *>
74: *> \param[in] AF
75: *> \verbatim
76: *> AF is DOUBLE PRECISION array, dimension (LDAF,N)
77: *> The factors L and U from the factorization
78: *> A = P*L*U as computed by DGETRF.
79: *> \endverbatim
80: *>
81: *> \param[in] LDAF
82: *> \verbatim
83: *> LDAF is INTEGER
84: *> The leading dimension of the array AF. LDAF >= max(1,N).
85: *> \endverbatim
86: *
87: * Authors:
88: * ========
89: *
90: *> \author Univ. of Tennessee
91: *> \author Univ. of California Berkeley
92: *> \author Univ. of Colorado Denver
93: *> \author NAG Ltd.
94: *
95: *> \ingroup doubleGEcomputational
96: *
97: * =====================================================================
98: DOUBLE PRECISION FUNCTION DLA_GERPVGRW( N, NCOLS, A, LDA, AF,
99: $ LDAF )
100: *
101: * -- LAPACK computational routine --
102: * -- LAPACK is a software package provided by Univ. of Tennessee, --
103: * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
104: *
105: * .. Scalar Arguments ..
106: INTEGER N, NCOLS, LDA, LDAF
107: * ..
108: * .. Array Arguments ..
109: DOUBLE PRECISION A( LDA, * ), AF( LDAF, * )
110: * ..
111: *
112: * =====================================================================
113: *
114: * .. Local Scalars ..
115: INTEGER I, J
116: DOUBLE PRECISION AMAX, UMAX, RPVGRW
117: * ..
118: * .. Intrinsic Functions ..
119: INTRINSIC ABS, MAX, MIN
120: * ..
121: * .. Executable Statements ..
122: *
123: RPVGRW = 1.0D+0
124:
125: DO J = 1, NCOLS
126: AMAX = 0.0D+0
127: UMAX = 0.0D+0
128: DO I = 1, N
129: AMAX = MAX( ABS( A( I, J ) ), AMAX )
130: END DO
131: DO I = 1, J
132: UMAX = MAX( ABS( AF( I, J ) ), UMAX )
133: END DO
134: IF ( UMAX /= 0.0D+0 ) THEN
135: RPVGRW = MIN( AMAX / UMAX, RPVGRW )
136: END IF
137: END DO
138: DLA_GERPVGRW = RPVGRW
139: *
140: * End of DLA_GERPVGRW
141: *
142: END
CVSweb interface <joel.bertrand@systella.fr>