128 REAL function
clansb( norm, uplo, n, k, ab, ldab,
142 COMPLEX ab( ldab, * )
149 parameter( one = 1.0e+0, zero = 0.0e+0 )
153 REAL absa, sum, value
156 REAL ssq( 2 ), colssq( 2 )
166 INTRINSIC abs, max, min, sqrt
172 ELSE IF(
lsame( norm,
'M' ) )
THEN
177 IF(
lsame( uplo,
'U' ) )
THEN
179 DO 10 i = max( k+2-j, 1 ), k + 1
180 sum = abs( ab( i, j ) )
181 IF(
VALUE .LT. sum .OR.
sisnan( sum ) )
VALUE = sum
186 DO 30 i = 1, min( n+1-j, k+1 )
187 sum = abs( ab( i, j ) )
188 IF(
VALUE .LT. sum .OR.
sisnan( sum ) )
VALUE = sum
192 ELSE IF( (
lsame( norm,
'I' ) ) .OR. (
lsame( norm,
'O' ) ) .OR.
193 $ ( norm.EQ.
'1' ) )
THEN
198 IF(
lsame( uplo,
'U' ) )
THEN
202 DO 50 i = max( 1, j-k ), j - 1
203 absa = abs( ab( l+i, j ) )
205 work( i ) = work( i ) + absa
207 work( j ) = sum + abs( ab( k+1, j ) )
211 IF(
VALUE .LT. sum .OR.
sisnan( sum ) )
VALUE = sum
218 sum = work( j ) + abs( ab( 1, j ) )
220 DO 90 i = j + 1, min( n, j+k )
221 absa = abs( ab( l+i, j ) )
223 work( i ) = work( i ) + absa
225 IF(
VALUE .LT. sum .OR.
sisnan( sum ) )
VALUE = sum
228 ELSE IF( (
lsame( norm,
'F' ) ) .OR. (
lsame( norm,
'E' ) ) )
THEN
241 IF(
lsame( uplo,
'U' ) )
THEN
245 CALL classq( min( j-1, k ), ab( max( k+2-j, 1 ), j ),
246 $ 1, colssq( 1 ), colssq( 2 ) )
254 CALL classq( min( n-j, k ), ab( 2, j ), 1,
255 $ colssq( 1 ), colssq( 2 ) )
260 ssq( 2 ) = 2*ssq( 2 )
269 CALL classq( n, ab( l, 1 ), ldab, colssq( 1 ), colssq( 2 ) )
271 VALUE = ssq( 1 )*sqrt( ssq( 2 ) )
subroutine scombssq(V1, V2)
SCOMBSSQ adds two scaled sum of squares quantities
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 clansb(NORM, UPLO, N, K, AB, LDAB, WORK)
CLANSB returns the value of the 1-norm, or the Frobenius norm, or the infinity norm,...