132 REAL FUNCTION CLANHB( NORM, UPLO, N, K, AB, LDAB,
147 COMPLEX ab( ldab, * )
154 parameter( one = 1.0e+0, zero = 0.0e+0 )
158 REAL absa, sum, value
161 REAL ssq( 2 ), colssq( 2 )
171 INTRINSIC abs, max, min, real, sqrt
177 ELSE IF(
lsame( norm,
'M' ) )
THEN
182 IF(
lsame( uplo,
'U' ) )
THEN
184 DO 10 i = max( k+2-j, 1 ), k
185 sum = abs( ab( i, j ) )
186 IF(
VALUE .LT. sum .OR.
sisnan( sum ) )
VALUE = sum
188 sum = abs( real( ab( k+1, j ) ) )
189 IF(
VALUE .LT. sum .OR.
sisnan( sum ) )
VALUE = sum
193 sum = abs( real( ab( 1, j ) ) )
194 IF(
VALUE .LT. sum .OR.
sisnan( sum ) )
VALUE = sum
195 DO 30 i = 2, min( n+1-j, k+1 )
196 sum = abs( ab( i, j ) )
197 IF(
VALUE .LT. sum .OR.
sisnan( sum ) )
VALUE = sum
201 ELSE IF( (
lsame( norm,
'I' ) ) .OR. (
lsame( norm,
'O' ) ) .OR.
202 $ ( norm.EQ.
'1' ) )
THEN
207 IF(
lsame( uplo,
'U' ) )
THEN
211 DO 50 i = max( 1, j-k ), j - 1
212 absa = abs( ab( l+i, j ) )
214 work( i ) = work( i ) + absa
216 work( j ) = sum + abs( real( ab( k+1, j ) ) )
220 IF(
VALUE .LT. sum .OR.
sisnan( sum ) )
VALUE = sum
227 sum = work( j ) + abs( real( ab( 1, j ) ) )
229 DO 90 i = j + 1, min( n, j+k )
230 absa = abs( ab( l+i, j ) )
232 work( i ) = work( i ) + absa
234 IF(
VALUE .LT. sum .OR.
sisnan( sum ) )
VALUE = sum
237 ELSE IF( (
lsame( norm,
'F' ) ) .OR. (
lsame( norm,
'E' ) ) )
THEN
250 IF(
lsame( uplo,
'U' ) )
THEN
254 CALL classq( min( j-1, k ), ab( max( k+2-j, 1 ), j ),
255 $ 1, colssq( 1 ), colssq( 2 ) )
263 CALL classq( min( n-j, k ), ab( 2, j ), 1,
264 $ colssq( 1 ), colssq( 2 ) )
269 ssq( 2 ) = 2*ssq( 2 )
279 IF( real( ab( l, j ) ).NE.zero )
THEN
280 absa = abs( real( ab( l, j ) ) )
281 IF( colssq( 1 ).LT.absa )
THEN
282 colssq( 2 ) = one + colssq(2)*( colssq(1) / absa )**2
285 colssq( 2 ) = colssq( 2 ) + ( absa / colssq( 1 ) )**2
290 VALUE = ssq( 1 )*sqrt( ssq( 2 ) )