124 SUBROUTINE cgbt01( M, N, KL, KU, A, LDA, AFAC, LDAFAC, IPIV, WORK,
132 INTEGER KL, KU, LDA, LDAFAC, M, N
137 COMPLEX A( LDA, * ), AFAC( LDAFAC, * ), WORK( * )
144 parameter( zero = 0.0e+0, one = 1.0e+0 )
147 INTEGER I, I1, I2, IL, IP, IW, J, JL, JU, JUA, KD, LENJ
153 EXTERNAL scasum, slamch
159 INTRINSIC cmplx, max, min, real
166 IF( m.LE.0 .OR. n.LE.0 )
171 eps = slamch(
'Epsilon' )
175 i1 = max( kd+1-j, 1 )
176 i2 = min( kd+m-j, kl+kd )
178 $ anorm = max( anorm, scasum( i2-i1+1, a( i1, j ), 1 ) )
188 ju = min( kl+ku, j-1 )
190 lenj = min( m, j ) - j + ju + 1
192 CALL ccopy( lenj, afac( kd-ju, j ), 1, work, 1 )
193 DO 20 i = lenj + 1, ju + jl + 1
200 DO 30 i = min( m-1, j ), j - ju, -1
205 CALL caxpy( il, t, afac( kd+1, i ), 1, work( iw+1 ),
210 work( iw ) = work( ip )
220 $
CALL caxpy( jua+jl+1, -cmplx( one ), a( ku+1-jua, j ), 1,
221 $ work( ju+1-jua ), 1 )
225 resid = max( resid, scasum( ju+jl+1, work, 1 ) )
231 IF( anorm.LE.zero )
THEN
235 resid = ( ( resid / real( n ) ) / anorm ) / eps
subroutine cgbt01(m, n, kl, ku, a, lda, afac, ldafac, ipiv, work, resid)
CGBT01
subroutine caxpy(n, ca, cx, incx, cy, incy)
CAXPY
subroutine ccopy(n, cx, incx, cy, incy)
CCOPY