123 DOUBLE PRECISION FUNCTION zlangb( NORM, N, KL, KU, AB, LDAB,
133 INTEGER kl, ku, ldab, n
136 DOUBLE PRECISION work( * )
137 COMPLEX*16 ab( ldab, * )
143 DOUBLE PRECISION one, zero
144 parameter( one = 1.0d+0, zero = 0.0d+0 )
148 DOUBLE PRECISION sum,
VALUE, temp
151 DOUBLE PRECISION ssq( 2 ), colssq( 2 )
161 INTRINSIC abs, max, min, sqrt
167 ELSE IF(
lsame( norm,
'M' ) )
THEN
173 DO 10 i = max( ku+2-j, 1 ), min( n+ku+1-j, kl+ku+1 )
174 temp = abs( ab( i, j ) )
175 IF(
VALUE.LT.temp .OR.
disnan( temp ) )
VALUE = temp
178 ELSE IF( (
lsame( norm,
'O' ) ) .OR. ( norm.EQ.
'1' ) )
THEN
185 DO 30 i = max( ku+2-j, 1 ), min( n+ku+1-j, kl+ku+1 )
186 sum = sum + abs( ab( i, j ) )
188 IF(
VALUE.LT.sum .OR.
disnan( sum ) )
VALUE = sum
190 ELSE IF(
lsame( norm,
'I' ) )
THEN
199 DO 60 i = max( 1, j-ku ), min( n, j+kl )
200 work( i ) = work( i ) + abs( ab( k+i, j ) )
206 IF(
VALUE.LT.temp .OR.
disnan( temp ) )
VALUE = temp
208 ELSE IF( (
lsame( norm,
'F' ) ) .OR. (
lsame( norm,
'E' ) ) )
THEN
222 CALL zlassq( min( n, j+kl )-l+1, ab( k, j ), 1,
223 $ colssq( 1 ), colssq( 2 ) )
226 VALUE = ssq( 1 )*sqrt( ssq( 2 ) )
logical function disnan(DIN)
DISNAN tests input for NaN.
subroutine dcombssq(V1, V2)
DCOMBSSQ adds two scaled sum of squares quantities.
logical function lsame(CA, CB)
LSAME
double precision function zlangb(NORM, N, KL, KU, AB, LDAB, WORK)
ZLANGB returns the value of the 1-norm, Frobenius norm, infinity-norm, or the largest absolute value ...
subroutine zlassq(N, X, INCX, SCALE, SUMSQ)
ZLASSQ updates a sum of squares represented in scaled form.