247 REAL FUNCTION clanhf( NORM, TRANSR, UPLO, N, A, WORK )
255 CHARACTER norm, transr, uplo
267 parameter( one = 1.0e+0, zero = 0.0e+0 )
270 INTEGER i, j, ifm, ilu, noe, n1, k, l, lda
271 REAL scale, s, value, aa
282 INTRINSIC abs,
REAL, max, sqrt
289 ELSE IF( n.EQ.1 )
THEN
297 IF( mod( n, 2 ).EQ.0 )
303 IF(
lsame( transr,
'C' ) )
309 IF(
lsame( uplo,
'U' ) )
328 IF(
lsame( norm,
'M' ) )
THEN
342 value = max( value, abs(
REAL( A( J+J*LDA ) ) ) )
344 value = max( value, abs( a( i+j*lda ) ) )
348 value = max( value, abs( a( i+j*lda ) ) )
352 value = max( value, abs(
REAL( A( I+J*LDA ) ) ) )
355 value = max( value, abs(
REAL( A( I+J*LDA ) ) ) )
357 value = max( value, abs( a( i+j*lda ) ) )
364 value = max( value, abs( a( i+j*lda ) ) )
368 value = max( value, abs(
REAL( A( I+J*LDA ) ) ) )
371 value = max( value, abs(
REAL( A( I+J*LDA ) ) ) )
372 DO i = k + j + 1, n - 1
373 value = max( value, abs( a( i+j*lda ) ) )
377 value = max( value, abs( a( i+j*lda ) ) )
381 value = max( value, abs(
REAL( A( I+J*LDA ) ) ) )
389 value = max( value, abs( a( i+j*lda ) ) )
393 value = max( value, abs(
REAL( A( I+J*LDA ) ) ) )
396 value = max( value, abs(
REAL( A( I+J*LDA ) ) ) )
398 value = max( value, abs( a( i+j*lda ) ) )
403 value = max( value, abs( a( i+j*lda ) ) )
407 value = max( value, abs(
REAL( A( I+J*LDA ) ) ) )
410 value = max( value, abs( a( i+j*lda ) ) )
417 value = max( value, abs( a( i+j*lda ) ) )
422 value = max( value, abs(
REAL( A( 0+J*LDA ) ) ) )
424 value = max( value, abs( a( i+j*lda ) ) )
428 value = max( value, abs( a( i+j*lda ) ) )
432 value = max( value, abs(
REAL( A( I+J*LDA ) ) ) )
435 value = max( value, abs(
REAL( A( I+J*LDA ) ) ) )
436 DO i = j - k + 2, k - 1
437 value = max( value, abs( a( i+j*lda ) ) )
450 value = max( value, abs(
REAL( A( J+J*LDA ) ) ) )
451 value = max( value, abs(
REAL( A( J+1+J*LDA ) ) ) )
453 value = max( value, abs( a( i+j*lda ) ) )
457 value = max( value, abs( a( i+j*lda ) ) )
461 value = max( value, abs(
REAL( A( I+J*LDA ) ) ) )
464 value = max( value, abs(
REAL( A( I+J*LDA ) ) ) )
466 value = max( value, abs( a( i+j*lda ) ) )
473 value = max( value, abs( a( i+j*lda ) ) )
477 value = max( value, abs(
REAL( A( I+J*LDA ) ) ) )
480 value = max( value, abs(
REAL( A( I+J*LDA ) ) ) )
482 value = max( value, abs( a( i+j*lda ) ) )
486 value = max( value, abs( a( i+j*lda ) ) )
490 value = max( value, abs(
REAL( A( I+J*LDA ) ) ) )
493 value = max( value, abs(
REAL( A( I+J*LDA ) ) ) )
501 value = max( value, abs(
REAL( A( J+J*LDA ) ) ) )
503 value = max( value, abs( a( i+j*lda ) ) )
507 value = max( value, abs( a( i+j*lda ) ) )
511 value = max( value, abs(
REAL( A( I+J*LDA ) ) ) )
514 value = max( value, abs(
REAL( A( I+J*LDA ) ) ) )
516 value = max( value, abs( a( i+j*lda ) ) )
521 value = max( value, abs( a( i+j*lda ) ) )
525 value = max( value, abs(
REAL( A( I+J*LDA ) ) ) )
528 value = max( value, abs( a( i+j*lda ) ) )
535 value = max( value, abs( a( i+j*lda ) ) )
540 value = max( value, abs(
REAL( A( 0+J*LDA ) ) ) )
542 value = max( value, abs( a( i+j*lda ) ) )
546 value = max( value, abs( a( i+j*lda ) ) )
550 value = max( value, abs(
REAL( A( I+J*LDA ) ) ) )
553 value = max( value, abs(
REAL( A( I+J*LDA ) ) ) )
554 DO i = j - k + 1, k - 1
555 value = max( value, abs( a( i+j*lda ) ) )
560 value = max( value, abs( a( i+j*lda ) ) )
564 value = max( value, abs(
REAL( A( I+J*LDA ) ) ) )
568 ELSE IF( (
lsame( norm,
'I' ) ) .OR. (
lsame( norm,
'O' ) ) .OR.
569 $ ( norm.EQ.
'1' ) )
THEN
586 aa = abs( a( i+j*lda ) )
589 work( i ) = work( i ) + aa
591 aa = abs(
REAL( A( I+J*LDA ) ) )
597 aa = abs(
REAL( A( I+J*LDA ) ) )
599 work( j ) = work( j ) + aa
603 aa = abs( a( i+j*lda ) )
606 work( l ) = work( l ) + aa
608 work( j ) = work( j ) + s
623 aa = abs( a( i+j*lda ) )
626 work( i+k ) = work( i+k ) + aa
629 aa = abs(
REAL( A( I+J*LDA ) ) )
632 work( i+k ) = work( i+k ) + s
636 aa = abs(
REAL( A( I+J*LDA ) ) )
642 aa = abs( a( i+j*lda ) )
645 work( l ) = work( l ) + aa
647 work( j ) = work( j ) + s
662 aa = abs( a( i+j*lda ) )
665 work( i ) = work( i ) + aa
667 aa = abs(
REAL( A( I+J*LDA ) ) )
671 aa = abs(
REAL( A( I+J*LDA ) ) )
673 work( j ) = work( j ) + aa
677 aa = abs( a( i+j*lda ) )
680 work( l ) = work( l ) + aa
682 work( j ) = work( j ) + s
694 aa = abs( a( i+j*lda ) )
697 work( i+k ) = work( i+k ) + aa
699 aa = abs(
REAL( A( I+J*LDA ) ) )
702 work( i+k ) = work( i+k ) + s
705 aa = abs(
REAL( A( I+J*LDA ) ) )
711 aa = abs( a( i+j*lda ) )
714 work( l ) = work( l ) + aa
716 work( j ) = work( j ) + s
739 aa = abs( a( i+j*lda ) )
741 work( i+n1 ) = work( i+n1 ) + aa
747 s = abs(
REAL( A( 0+J*LDA ) ) )
750 aa = abs( a( i+j*lda ) )
752 work( i+n1 ) = work( i+n1 ) + aa
755 work( j ) = work( j ) + s
759 aa = abs( a( i+j*lda ) )
761 work( i ) = work( i ) + aa
765 aa = abs(
REAL( A( I+J*LDA ) ) )
768 work( j-k ) = work( j-k ) + s
770 s = abs(
REAL( A( I+J*LDA ) ) )
774 aa = abs( a( i+j*lda ) )
776 work( l ) = work( l ) + aa
779 work( j ) = work( j ) + s
794 aa = abs( a( i+j*lda ) )
796 work( i ) = work( i ) + aa
799 aa = abs(
REAL( A( I+J*LDA ) ) )
806 aa = abs(
REAL( A( I+J*LDA ) ) )
808 DO l = k + j + 1, n - 1
810 aa = abs( a( i+j*lda ) )
813 work( l ) = work( l ) + aa
815 work( k+j ) = work( k+j ) + s
820 aa = abs( a( i+j*lda ) )
822 work( i ) = work( i ) + aa
826 aa = abs(
REAL( A( I+J*LDA ) ) )
835 aa = abs( a( i+j*lda ) )
837 work( i ) = work( i ) + aa
840 work( j ) = work( j ) + s
855 aa = abs( a( i+j*lda ) )
857 work( i+k ) = work( i+k ) + aa
863 aa = abs(
REAL( A( 0+J*LDA ) ) )
867 aa = abs( a( i+j*lda ) )
869 work( i+k ) = work( i+k ) + aa
872 work( j ) = work( j ) + s
876 aa = abs( a( i+j*lda ) )
878 work( i ) = work( i ) + aa
882 aa = abs(
REAL( A( I+J*LDA ) ) )
885 work( j-k-1 ) = work( j-k-1 ) + s
887 aa = abs(
REAL( A( I+J*LDA ) ) )
892 aa = abs( a( i+j*lda ) )
894 work( l ) = work( l ) + aa
897 work( j ) = work( j ) + s
902 aa = abs( a( i+j*lda ) )
904 work( i ) = work( i ) + aa
908 aa = abs(
REAL( A( I+J*LDA ) ) )
911 work( i ) = work( i ) + s
920 s = abs(
REAL( A( 0 ) ) )
925 work( i+k ) = work( i+k ) + aa
928 work( k ) = work( k ) + s
933 aa = abs( a( i+j*lda ) )
935 work( i ) = work( i ) + aa
938 aa = abs(
REAL( A( I+J*LDA ) ) )
945 aa = abs(
REAL( A( I+J*LDA ) ) )
947 DO l = k + j + 1, n - 1
949 aa = abs( a( i+j*lda ) )
952 work( l ) = work( l ) + aa
954 work( k+j ) = work( k+j ) + s
959 aa = abs( a( i+j*lda ) )
961 work( i ) = work( i ) + aa
966 aa = abs(
REAL( A( I+J*LDA ) ) )
976 aa = abs( a( i+j*lda ) )
978 work( i ) = work( i ) + aa
981 work( j-1 ) = work( j-1 ) + s
988 ELSE IF( (
lsame( norm,
'F' ) ) .OR. (
lsame( norm,
'E' ) ) )
THEN
1002 CALL
classq( k-j-2, a( k+j+1+j*lda ), 1, scale, s )
1006 CALL
classq( k+j-1, a( 0+j*lda ), 1, scale, s )
1016 IF( aa.NE.zero )
THEN
1017 IF( scale.LT.aa )
THEN
1018 s = one + s*( scale / aa )**2
1021 s = s + ( aa / scale )**2
1024 aa =
REAL( A( L+1 ) )
1026 IF( aa.NE.zero )
THEN
1027 IF( scale.LT.aa )
THEN
1028 s = one + s*( scale / aa )**2
1031 s = s + ( aa / scale )**2
1038 IF( aa.NE.zero )
THEN
1039 IF( scale.LT.aa )
THEN
1040 s = one + s*( scale / aa )**2
1043 s = s + ( aa / scale )**2
1049 CALL
classq( n-j-1, a( j+1+j*lda ), 1, scale, s )
1053 CALL
classq( j, a( 0+( 1+j )*lda ), 1, scale, s )
1060 IF( aa.NE.zero )
THEN
1061 IF( scale.LT.aa )
THEN
1062 s = one + s*( scale / aa )**2
1065 s = s + ( aa / scale )**2
1073 IF( aa.NE.zero )
THEN
1074 IF( scale.LT.aa )
THEN
1075 s = one + s*( scale / aa )**2
1078 s = s + ( aa / scale )**2
1081 aa =
REAL( A( L+1 ) )
1083 IF( aa.NE.zero )
THEN
1084 IF( scale.LT.aa )
THEN
1085 s = one + s*( scale / aa )**2
1088 s = s + ( aa / scale )**2
1099 CALL
classq( j, a( 0+( k+j )*lda ), 1, scale, s )
1103 CALL
classq( k, a( 0+j*lda ), 1, scale, s )
1107 CALL
classq( k-j-1, a( j+1+( j+k-1 )*lda ), 1,
1117 IF( aa.NE.zero )
THEN
1118 IF( scale.LT.aa )
THEN
1119 s = one + s*( scale / aa )**2
1122 s = s + ( aa / scale )**2
1130 IF( aa.NE.zero )
THEN
1131 IF( scale.LT.aa )
THEN
1132 s = one + s*( scale / aa )**2
1135 s = s + ( aa / scale )**2
1138 aa =
REAL( A( L+1 ) )
1140 IF( aa.NE.zero )
THEN
1141 IF( scale.LT.aa )
THEN
1142 s = one + s*( scale / aa )**2
1145 s = s + ( aa / scale )**2
1153 CALL
classq( j, a( 0+j*lda ), 1, scale, s )
1157 CALL
classq( k, a( 0+j*lda ), 1, scale, s )
1161 CALL
classq( k-j-2, a( j+2+j*lda ), 1, scale, s )
1171 IF( aa.NE.zero )
THEN
1172 IF( scale.LT.aa )
THEN
1173 s = one + s*( scale / aa )**2
1176 s = s + ( aa / scale )**2
1179 aa =
REAL( A( L+1 ) )
1181 IF( aa.NE.zero )
THEN
1182 IF( scale.LT.aa )
THEN
1183 s = one + s*( scale / aa )**2
1186 s = s + ( aa / scale )**2
1194 IF( aa.NE.zero )
THEN
1195 IF( scale.LT.aa )
THEN
1196 s = one + s*( scale / aa )**2
1199 s = s + ( aa / scale )**2
1211 CALL
classq( k-j-1, a( k+j+2+j*lda ), 1, scale, s )
1215 CALL
classq( k+j, a( 0+j*lda ), 1, scale, s )
1225 IF( aa.NE.zero )
THEN
1226 IF( scale.LT.aa )
THEN
1227 s = one + s*( scale / aa )**2
1230 s = s + ( aa / scale )**2
1233 aa =
REAL( A( L+1 ) )
1235 IF( aa.NE.zero )
THEN
1236 IF( scale.LT.aa )
THEN
1237 s = one + s*( scale / aa )**2
1240 s = s + ( aa / scale )**2
1248 CALL
classq( n-j-1, a( j+2+j*lda ), 1, scale, s )
1252 CALL
classq( j, a( 0+j*lda ), 1, scale, s )
1262 IF( aa.NE.zero )
THEN
1263 IF( scale.LT.aa )
THEN
1264 s = one + s*( scale / aa )**2
1267 s = s + ( aa / scale )**2
1270 aa =
REAL( A( L+1 ) )
1272 IF( aa.NE.zero )
THEN
1273 IF( scale.LT.aa )
THEN
1274 s = one + s*( scale / aa )**2
1277 s = s + ( aa / scale )**2
1288 CALL
classq( j, a( 0+( k+1+j )*lda ), 1, scale, s )
1292 CALL
classq( k, a( 0+j*lda ), 1, scale, s )
1296 CALL
classq( k-j-1, a( j+1+( j+k )*lda ), 1, scale,
1306 IF( aa.NE.zero )
THEN
1307 IF( scale.LT.aa )
THEN
1308 s = one + s*( scale / aa )**2
1311 s = s + ( aa / scale )**2
1319 IF( aa.NE.zero )
THEN
1320 IF( scale.LT.aa )
THEN
1321 s = one + s*( scale / aa )**2
1324 s = s + ( aa / scale )**2
1327 aa =
REAL( A( L+1 ) )
1329 IF( aa.NE.zero )
THEN
1330 IF( scale.LT.aa )
THEN
1331 s = one + s*( scale / aa )**2
1334 s = s + ( aa / scale )**2
1343 IF( aa.NE.zero )
THEN
1344 IF( scale.LT.aa )
THEN
1345 s = one + s*( scale / aa )**2
1348 s = s + ( aa / scale )**2
1354 CALL
classq( j, a( 0+( j+1 )*lda ), 1, scale, s )
1358 CALL
classq( k, a( 0+j*lda ), 1, scale, s )
1362 CALL
classq( k-j-1, a( j+1+j*lda ), 1, scale, s )
1371 IF( aa.NE.zero )
THEN
1372 IF( scale.LT.aa )
THEN
1373 s = one + s*( scale / aa )**2
1376 s = s + ( aa / scale )**2
1384 IF( aa.NE.zero )
THEN
1385 IF( scale.LT.aa )
THEN
1386 s = one + s*( scale / aa )**2
1389 s = s + ( aa / scale )**2
1392 aa =
REAL( A( L+1 ) )
1394 IF( aa.NE.zero )
THEN
1395 IF( scale.LT.aa )
THEN
1396 s = one + s*( scale / aa )**2
1399 s = s + ( aa / scale )**2
1407 IF( aa.NE.zero )
THEN
1408 IF( scale.LT.aa )
THEN
1409 s = one + s*( scale / aa )**2
1412 s = s + ( aa / scale )**2
1418 value = scale*sqrt( s )