131 SUBROUTINE zpbequ( UPLO, N, KD, AB, LDAB, S, SCOND, AMAX, INFO )
140 INTEGER INFO, KD, LDAB, N
141 DOUBLE PRECISION AMAX, SCOND
144 DOUBLE PRECISION S( * )
145 COMPLEX*16 AB( ldab, * )
151 DOUBLE PRECISION ZERO, ONE
152 parameter ( zero = 0.0d+0, one = 1.0d+0 )
157 DOUBLE PRECISION SMIN
167 INTRINSIC dble, max, min, sqrt
174 upper = lsame( uplo,
'U' )
175 IF( .NOT.upper .AND. .NOT.lsame( uplo,
'L' ) )
THEN
177 ELSE IF( n.LT.0 )
THEN
179 ELSE IF( kd.LT.0 )
THEN
181 ELSE IF( ldab.LT.kd+1 )
THEN
185 CALL xerbla(
'ZPBEQU', -info )
205 s( 1 ) = dble( ab( j, 1 ) )
212 s( i ) = dble( ab( j, i ) )
213 smin = min( smin, s( i ) )
214 amax = max( amax, s( i ) )
217 IF( smin.LE.zero )
THEN
222 IF( s( i ).LE.zero )
THEN
233 s( i ) = one / sqrt( s( i ) )
238 scond = sqrt( smin ) / sqrt( amax )
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine zpbequ(UPLO, N, KD, AB, LDAB, S, SCOND, AMAX, INFO)
ZPBEQU