122 REAL function
slangb( norm, n, kl, ku, ab, ldab,
132 INTEGER kl, ku, ldab, n
135 REAL ab( ldab, * ), work( * )
142 parameter( one = 1.0e+0, zero = 0.0e+0 )
146 REAL sum,
VALUE, temp
149 REAL ssq( 2 ), colssq( 2 )
159 INTRINSIC abs, max, min, sqrt
165 ELSE IF(
lsame( norm,
'M' ) )
THEN
171 DO 10 i = max( ku+2-j, 1 ), min( n+ku+1-j, kl+ku+1 )
172 temp = abs( ab( i, j ) )
173 IF(
VALUE.LT.temp .OR.
sisnan( temp ) )
VALUE = temp
176 ELSE IF( (
lsame( norm,
'O' ) ) .OR. ( norm.EQ.
'1' ) )
THEN
183 DO 30 i = max( ku+2-j, 1 ), min( n+ku+1-j, kl+ku+1 )
184 sum = sum + abs( ab( i, j ) )
186 IF(
VALUE.LT.sum .OR.
sisnan( sum ) )
VALUE = sum
188 ELSE IF(
lsame( norm,
'I' ) )
THEN
197 DO 60 i = max( 1, j-ku ), min( n, j+kl )
198 work( i ) = work( i ) + abs( ab( k+i, j ) )
204 IF(
VALUE.LT.temp .OR.
sisnan( temp ) )
VALUE = temp
206 ELSE IF( (
lsame( norm,
'F' ) ) .OR. (
lsame( norm,
'E' ) ) )
THEN
220 CALL slassq( min( n, j+kl )-l+1, ab( k, j ), 1,
221 $ colssq( 1 ), colssq( 2 ) )
224 VALUE = ssq( 1 )*sqrt( ssq( 2 ) )
subroutine slassq(n, x, incx, scl, sumsq)
SLASSQ updates a sum of squares represented in scaled form.
subroutine scombssq(V1, V2)
SCOMBSSQ adds two scaled sum of squares quantities
logical function sisnan(SIN)
SISNAN tests input for NaN.
logical function lsame(CA, CB)
LSAME
real function slangb(NORM, N, KL, KU, AB, LDAB, WORK)
SLANGB returns the value of the 1-norm, Frobenius norm, infinity-norm, or the largest absolute value ...