130 REAL function
clanhb( norm, uplo, n, k, ab, ldab,
144 COMPLEX ab( ldab, * )
151 parameter( one = 1.0e+0, zero = 0.0e+0 )
155 REAL absa, sum, value
158 REAL ssq( 2 ), colssq( 2 )
168 INTRINSIC abs, max, min, real, sqrt
174 ELSE IF(
lsame( norm,
'M' ) )
THEN
179 IF(
lsame( uplo,
'U' ) )
THEN
181 DO 10 i = max( k+2-j, 1 ), k
182 sum = abs( ab( i, j ) )
183 IF(
VALUE .LT. sum .OR.
sisnan( sum ) )
VALUE = sum
185 sum = abs( real( ab( k+1, j ) ) )
186 IF(
VALUE .LT. sum .OR.
sisnan( sum ) )
VALUE = sum
190 sum = abs( real( ab( 1, j ) ) )
191 IF(
VALUE .LT. sum .OR.
sisnan( sum ) )
VALUE = sum
192 DO 30 i = 2, min( n+1-j, k+1 )
193 sum = abs( ab( i, j ) )
194 IF(
VALUE .LT. sum .OR.
sisnan( sum ) )
VALUE = sum
198 ELSE IF( (
lsame( norm,
'I' ) ) .OR. (
lsame( norm,
'O' ) ) .OR.
199 $ ( norm.EQ.
'1' ) )
THEN
204 IF(
lsame( uplo,
'U' ) )
THEN
208 DO 50 i = max( 1, j-k ), j - 1
209 absa = abs( ab( l+i, j ) )
211 work( i ) = work( i ) + absa
213 work( j ) = sum + abs( real( ab( k+1, j ) ) )
217 IF(
VALUE .LT. sum .OR.
sisnan( sum ) )
VALUE = sum
224 sum = work( j ) + abs( real( ab( 1, j ) ) )
226 DO 90 i = j + 1, min( n, j+k )
227 absa = abs( ab( l+i, j ) )
229 work( i ) = work( i ) + absa
231 IF(
VALUE .LT. sum .OR.
sisnan( sum ) )
VALUE = sum
234 ELSE IF( (
lsame( norm,
'F' ) ) .OR. (
lsame( norm,
'E' ) ) )
THEN
247 IF(
lsame( uplo,
'U' ) )
THEN
251 CALL classq( min( j-1, k ), ab( max( k+2-j, 1 ), j ),
252 $ 1, colssq( 1 ), colssq( 2 ) )
260 CALL classq( min( n-j, k ), ab( 2, j ), 1,
261 $ colssq( 1 ), colssq( 2 ) )
266 ssq( 2 ) = 2*ssq( 2 )
276 IF( real( ab( l, j ) ).NE.zero )
THEN
277 absa = abs( real( ab( l, j ) ) )
278 IF( colssq( 1 ).LT.absa )
THEN
279 colssq( 2 ) = one + colssq(2)*( colssq(1) / absa )**2
282 colssq( 2 ) = colssq( 2 ) + ( absa / colssq( 1 ) )**2
287 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 clanhb(NORM, UPLO, N, K, AB, LDAB, WORK)
CLANHB returns the value of the 1-norm, or the Frobenius norm, or the infinity norm,...