LAPACK 3.12.0
LAPACK: Linear Algebra PACKage
Loading...
Searching...
No Matches
cla_gbrpvgrw.f
Go to the documentation of this file.
1*> \brief \b CLA_GBRPVGRW computes the reciprocal pivot growth factor norm(A)/norm(U) for a general banded matrix.
2*
3* =========== DOCUMENTATION ===========
4*
5* Online html documentation available at
6* http://www.netlib.org/lapack/explore-html/
7*
8*> \htmlonly
9*> Download CLA_GBRPVGRW + dependencies
10*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/cla_gbrpvgrw.f">
11*> [TGZ]</a>
12*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/cla_gbrpvgrw.f">
13*> [ZIP]</a>
14*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cla_gbrpvgrw.f">
15*> [TXT]</a>
16*> \endhtmlonly
17*
18* Definition:
19* ===========
20*
21* REAL FUNCTION CLA_GBRPVGRW( N, KL, KU, NCOLS, AB, LDAB, AFB,
22* LDAFB )
23*
24* .. Scalar Arguments ..
25* INTEGER N, KL, KU, NCOLS, LDAB, LDAFB
26* ..
27* .. Array Arguments ..
28* COMPLEX AB( LDAB, * ), AFB( LDAFB, * )
29* ..
30*
31*
32*> \par Purpose:
33* =============
34*>
35*> \verbatim
36*>
37*> CLA_GBRPVGRW computes the reciprocal pivot growth factor
38*> norm(A)/norm(U). The "max absolute element" norm is used. If this is
39*> much less than 1, the stability of the LU factorization of the
40*> (equilibrated) matrix A could be poor. This also means that the
41*> solution X, estimated condition numbers, and error bounds could be
42*> unreliable.
43*> \endverbatim
44*
45* Arguments:
46* ==========
47*
48*> \param[in] N
49*> \verbatim
50*> N is INTEGER
51*> The number of linear equations, i.e., the order of the
52*> matrix A. N >= 0.
53*> \endverbatim
54*>
55*> \param[in] KL
56*> \verbatim
57*> KL is INTEGER
58*> The number of subdiagonals within the band of A. KL >= 0.
59*> \endverbatim
60*>
61*> \param[in] KU
62*> \verbatim
63*> KU is INTEGER
64*> The number of superdiagonals within the band of A. KU >= 0.
65*> \endverbatim
66*>
67*> \param[in] NCOLS
68*> \verbatim
69*> NCOLS is INTEGER
70*> The number of columns of the matrix A. NCOLS >= 0.
71*> \endverbatim
72*>
73*> \param[in] AB
74*> \verbatim
75*> AB is COMPLEX array, dimension (LDAB,N)
76*> On entry, the matrix A in band storage, in rows 1 to KL+KU+1.
77*> The j-th column of A is stored in the j-th column of the
78*> array AB as follows:
79*> AB(KU+1+i-j,j) = A(i,j) for max(1,j-KU)<=i<=min(N,j+kl)
80*> \endverbatim
81*>
82*> \param[in] LDAB
83*> \verbatim
84*> LDAB is INTEGER
85*> The leading dimension of the array AB. LDAB >= KL+KU+1.
86*> \endverbatim
87*>
88*> \param[in] AFB
89*> \verbatim
90*> AFB is COMPLEX array, dimension (LDAFB,N)
91*> Details of the LU factorization of the band matrix A, as
92*> computed by CGBTRF. U is stored as an upper triangular
93*> band matrix with KL+KU superdiagonals in rows 1 to KL+KU+1,
94*> and the multipliers used during the factorization are stored
95*> in rows KL+KU+2 to 2*KL+KU+1.
96*> \endverbatim
97*>
98*> \param[in] LDAFB
99*> \verbatim
100*> LDAFB is INTEGER
101*> The leading dimension of the array AFB. LDAFB >= 2*KL+KU+1.
102*> \endverbatim
103*
104* Authors:
105* ========
106*
107*> \author Univ. of Tennessee
108*> \author Univ. of California Berkeley
109*> \author Univ. of Colorado Denver
110*> \author NAG Ltd.
111*
112*> \ingroup la_gbrpvgrw
113*
114* =====================================================================
115 REAL function cla_gbrpvgrw( n, kl, ku, ncols, ab, ldab, afb,
116 $ ldafb )
117*
118* -- LAPACK computational routine --
119* -- LAPACK is a software package provided by Univ. of Tennessee, --
120* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
121*
122* .. Scalar Arguments ..
123 INTEGER n, kl, ku, ncols, ldab, ldafb
124* ..
125* .. Array Arguments ..
126 COMPLEX ab( ldab, * ), afb( ldafb, * )
127* ..
128*
129* =====================================================================
130*
131* .. Local Scalars ..
132 INTEGER i, j, kd
133 REAL amax, umax, rpvgrw
134 COMPLEX zdum
135* ..
136* .. Intrinsic Functions ..
137 INTRINSIC abs, max, min, real, aimag
138* ..
139* .. Statement Functions ..
140 REAL cabs1
141* ..
142* .. Statement Function Definitions ..
143 cabs1( zdum ) = abs( real( zdum ) ) + abs( aimag( zdum ) )
144* ..
145* .. Executable Statements ..
146*
147 rpvgrw = 1.0
148
149 kd = ku + 1
150 DO j = 1, ncols
151 amax = 0.0
152 umax = 0.0
153 DO i = max( j-ku, 1 ), min( j+kl, n )
154 amax = max( cabs1( ab( kd+i-j, j ) ), amax )
155 END DO
156 DO i = max( j-ku, 1 ), j
157 umax = max( cabs1( afb( kd+i-j, j ) ), umax )
158 END DO
159 IF ( umax /= 0.0 ) THEN
160 rpvgrw = min( amax / umax, rpvgrw )
161 END IF
162 END DO
163 cla_gbrpvgrw = rpvgrw
164*
165* End of CLA_GBRPVGRW
166*
167 END
real function cla_gbrpvgrw(n, kl, ku, ncols, ab, ldab, afb, ldafb)
CLA_GBRPVGRW computes the reciprocal pivot growth factor norm(A)/norm(U) for a general banded matrix.