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: *> \date December 2016
96: *
97: *> \ingroup doubleGEcomputational
98: *
99: * =====================================================================
100: DOUBLE PRECISION FUNCTION DLA_GERPVGRW( N, NCOLS, A, LDA, AF,
101: $ LDAF )
102: *
103: * -- LAPACK computational routine (version 3.7.0) --
104: * -- LAPACK is a software package provided by Univ. of Tennessee, --
105: * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
106: * December 2016
107: *
108: * .. Scalar Arguments ..
109: INTEGER N, NCOLS, LDA, LDAF
110: * ..
111: * .. Array Arguments ..
112: DOUBLE PRECISION A( LDA, * ), AF( LDAF, * )
113: * ..
114: *
115: * =====================================================================
116: *
117: * .. Local Scalars ..
118: INTEGER I, J
119: DOUBLE PRECISION AMAX, UMAX, RPVGRW
120: * ..
121: * .. Intrinsic Functions ..
122: INTRINSIC ABS, MAX, MIN
123: * ..
124: * .. Executable Statements ..
125: *
126: RPVGRW = 1.0D+0
127:
128: DO J = 1, NCOLS
129: AMAX = 0.0D+0
130: UMAX = 0.0D+0
131: DO I = 1, N
132: AMAX = MAX( ABS( A( I, J ) ), AMAX )
133: END DO
134: DO I = 1, J
135: UMAX = MAX( ABS( AF( I, J ) ), UMAX )
136: END DO
137: IF ( UMAX /= 0.0D+0 ) THEN
138: RPVGRW = MIN( AMAX / UMAX, RPVGRW )
139: END IF
140: END DO
141: DLA_GERPVGRW = RPVGRW
142: END
CVSweb interface <joel.bertrand@systella.fr>