130 SUBROUTINE dpbequ( UPLO, N, KD, AB, LDAB, S, SCOND, AMAX, INFO )
139 INTEGER info, kd, ldab, n
140 DOUBLE PRECISION amax, scond
143 DOUBLE PRECISION ab( ldab, * ), s( * )
149 DOUBLE PRECISION zero, one
150 parameter( zero = 0.0d+0, one = 1.0d+0 )
155 DOUBLE PRECISION smin
165 INTRINSIC max, min, sqrt
172 upper =
lsame( uplo,
'U' )
173 IF( .NOT.upper .AND. .NOT.
lsame( uplo,
'L' ) )
THEN
175 ELSE IF( n.LT.0 )
THEN
177 ELSE IF( kd.LT.0 )
THEN
179 ELSE IF( ldab.LT.kd+1 )
THEN
183 CALL
xerbla(
'DPBEQU', -info )
211 smin = min( smin, s( i ) )
212 amax = max( amax, s( i ) )
215 IF( smin.LE.zero )
THEN
220 IF( s( i ).LE.zero )
THEN
231 s( i ) = one / sqrt( s( i ) )
236 scond = sqrt( smin ) / sqrt( amax )