LAPACK 3.12.0
LAPACK: Linear Algebra PACKage
Loading...
Searching...
No Matches
dla_gbrpvgrw.f
Go to the documentation of this file.
1*> \brief \b DLA_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 DLA_GBRPVGRW + dependencies
10*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/dla_gbrpvgrw.f">
11*> [TGZ]</a>
12*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/dla_gbrpvgrw.f">
13*> [ZIP]</a>
14*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dla_gbrpvgrw.f">
15*> [TXT]</a>
16*> \endhtmlonly
17*
18* Definition:
19* ===========
20*
21* DOUBLE PRECISION FUNCTION DLA_GBRPVGRW( N, KL, KU, NCOLS, AB,
22* LDAB, AFB, LDAFB )
23*
24* .. Scalar Arguments ..
25* INTEGER N, KL, KU, NCOLS, LDAB, LDAFB
26* ..
27* .. Array Arguments ..
28* DOUBLE PRECISION AB( LDAB, * ), AFB( LDAFB, * )
29* ..
30*
31*
32*> \par Purpose:
33* =============
34*>
35*> \verbatim
36*>
37*> DLA_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 DOUBLE PRECISION 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 DOUBLE PRECISION array, dimension (LDAFB,N)
91*> Details of the LU factorization of the band matrix A, as
92*> computed by DGBTRF. 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 DOUBLE PRECISION FUNCTION dla_gbrpvgrw( N, KL, KU, NCOLS, AB,
116 $ LDAB, AFB, 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 DOUBLE PRECISION ab( ldab, * ), afb( ldafb, * )
127* ..
128*
129* =====================================================================
130*
131* .. Local Scalars ..
132 INTEGER i, j, kd
133 DOUBLE PRECISION amax, umax, rpvgrw
134* ..
135* .. Intrinsic Functions ..
136 INTRINSIC abs, max, min
137* ..
138* .. Executable Statements ..
139*
140 rpvgrw = 1.0d+0
141
142 kd = ku + 1
143 DO j = 1, ncols
144 amax = 0.0d+0
145 umax = 0.0d+0
146 DO i = max( j-ku, 1 ), min( j+kl, n )
147 amax = max( abs( ab( kd+i-j, j)), amax )
148 END DO
149 DO i = max( j-ku, 1 ), j
150 umax = max( abs( afb( kd+i-j, j ) ), umax )
151 END DO
152 IF ( umax /= 0.0d+0 ) THEN
153 rpvgrw = min( amax / umax, rpvgrw )
154 END IF
155 END DO
156 dla_gbrpvgrw = rpvgrw
157*
158* End of DLA_GBRPVGRW
159*
160 END
double precision function dla_gbrpvgrw(n, kl, ku, ncols, ab, ldab, afb, ldafb)
DLA_GBRPVGRW computes the reciprocal pivot growth factor norm(A)/norm(U) for a general banded matrix.