123 REAL function
clangb( norm, n, kl, ku, ab, ldab,
132 INTEGER kl, ku, ldab, n
136 COMPLEX ab( ldab, * )
143 parameter( one = 1.0e+0, zero = 0.0e+0 )
147 REAL scale, sum,
VALUE, temp
157 INTRINSIC abs, max, min, sqrt
163 ELSE IF(
lsame( norm,
'M' ) )
THEN
169 DO 10 i = max( ku+2-j, 1 ), min( n+ku+1-j, kl+ku+1 )
170 temp = abs( ab( i, j ) )
171 IF(
VALUE.LT.temp .OR.
sisnan( temp ) )
VALUE = temp
174 ELSE IF( (
lsame( norm,
'O' ) ) .OR. ( norm.EQ.
'1' ) )
THEN
181 DO 30 i = max( ku+2-j, 1 ), min( n+ku+1-j, kl+ku+1 )
182 sum = sum + abs( ab( i, j ) )
184 IF(
VALUE.LT.sum .OR.
sisnan( sum ) )
VALUE = sum
186 ELSE IF(
lsame( norm,
'I' ) )
THEN
195 DO 60 i = max( 1, j-ku ), min( n, j+kl )
196 work( i ) = work( i ) + abs( ab( k+i, j ) )
202 IF(
VALUE.LT.temp .OR.
sisnan( temp ) )
VALUE = temp
204 ELSE IF( (
lsame( norm,
'F' ) ) .OR. (
lsame( norm,
'E' ) ) )
THEN
213 CALL classq( min( n, j+kl )-l+1, ab( k, j ), 1, scale, sum )
215 VALUE = scale*sqrt( sum )
subroutine classq(n, x, incx, scl, sumsq)
CLASSQ updates a sum of squares represented in scaled form.
logical function sisnan(SIN)
SISNAN tests input for NaN.
logical function lsame(CA, CB)
LSAME
real function clangb(NORM, N, KL, KU, AB, LDAB, WORK)
CLANGB returns the value of the 1-norm, Frobenius norm, infinity-norm, or the largest absolute value ...