127 REAL function
slansb( norm, uplo, n, k, ab, ldab,
140 REAL ab( ldab, * ), work( * )
147 parameter( one = 1.0e+0, zero = 0.0e+0 )
151 REAL absa, sum, value
154 REAL ssq( 2 ), colssq( 2 )
164 INTRINSIC abs, max, min, sqrt
170 ELSE IF(
lsame( norm,
'M' ) )
THEN
175 IF(
lsame( uplo,
'U' ) )
THEN
177 DO 10 i = max( k+2-j, 1 ), k + 1
178 sum = abs( ab( i, j ) )
179 IF(
VALUE .LT. sum .OR.
sisnan( sum ) )
VALUE = sum
184 DO 30 i = 1, min( n+1-j, k+1 )
185 sum = abs( ab( i, j ) )
186 IF(
VALUE .LT. sum .OR.
sisnan( sum ) )
VALUE = sum
190 ELSE IF( (
lsame( norm,
'I' ) ) .OR. (
lsame( norm,
'O' ) ) .OR.
191 $ ( norm.EQ.
'1' ) )
THEN
196 IF(
lsame( uplo,
'U' ) )
THEN
200 DO 50 i = max( 1, j-k ), j - 1
201 absa = abs( ab( l+i, j ) )
203 work( i ) = work( i ) + absa
205 work( j ) = sum + abs( ab( k+1, j ) )
209 IF(
VALUE .LT. sum .OR.
sisnan( sum ) )
VALUE = sum
216 sum = work( j ) + abs( ab( 1, j ) )
218 DO 90 i = j + 1, min( n, j+k )
219 absa = abs( ab( l+i, j ) )
221 work( i ) = work( i ) + absa
223 IF(
VALUE .LT. sum .OR.
sisnan( sum ) )
VALUE = sum
226 ELSE IF( (
lsame( norm,
'F' ) ) .OR. (
lsame( norm,
'E' ) ) )
THEN
239 IF(
lsame( uplo,
'U' ) )
THEN
243 CALL slassq( min( j-1, k ), ab( max( k+2-j, 1 ), j ),
244 $ 1, colssq( 1 ), colssq( 2 ) )
252 CALL slassq( min( n-j, k ), ab( 2, j ), 1,
253 $ colssq( 1 ), colssq( 2 ) )
258 ssq( 2 ) = 2*ssq( 2 )
267 CALL slassq( n, ab( l, 1 ), ldab, colssq( 1 ), colssq( 2 ) )
269 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 slansb(NORM, UPLO, N, K, AB, LDAB, WORK)
SLANSB returns the value of the 1-norm, or the Frobenius norm, or the infinity norm,...