210 DOUBLE PRECISION FUNCTION dlansf( NORM, TRANSR, UPLO, N, A, WORK )
218 CHARACTER norm, transr, uplo
222 DOUBLE PRECISION a( 0: * ), work( 0: * )
228 DOUBLE PRECISION one, zero
229 parameter( one = 1.0d+0, zero = 0.0d+0 )
232 INTEGER i, j, ifm, ilu, noe, n1, k, l, lda
233 DOUBLE PRECISION scale, s, value, aa
244 INTRINSIC abs, max, sqrt
251 ELSE IF( n.EQ.1 )
THEN
259 IF( mod( n, 2 ).EQ.0 )
265 IF(
lsame( transr,
'T' ) )
271 IF(
lsame( uplo,
'U' ) )
290 IF(
lsame( norm,
'M' ) )
THEN
302 value = max( value, abs( a( i+j*lda ) ) )
309 value = max( value, abs( a( i+j*lda ) ) )
319 value = max( value, abs( a( i+j*lda ) ) )
326 value = max( value, abs( a( i+j*lda ) ) )
331 ELSE IF( (
lsame( norm,
'I' ) ) .OR. (
lsame( norm,
'O' ) ) .OR.
332 $ ( norm.EQ.
'1' ) )
THEN
347 aa = abs( a( i+j*lda ) )
350 work( i ) = work( i ) + aa
352 aa = abs( a( i+j*lda ) )
358 aa = abs( a( i+j*lda ) )
360 work( j ) = work( j ) + aa
364 aa = abs( a( i+j*lda ) )
367 work( l ) = work( l ) + aa
369 work( j ) = work( j ) + s
384 aa = abs( a( i+j*lda ) )
387 work( i+k ) = work( i+k ) + aa
390 aa = abs( a( i+j*lda ) )
393 work( i+k ) = work( i+k ) + s
397 aa = abs( a( i+j*lda ) )
403 aa = abs( a( i+j*lda ) )
406 work( l ) = work( l ) + aa
408 work( j ) = work( j ) + s
422 aa = abs( a( i+j*lda ) )
425 work( i ) = work( i ) + aa
427 aa = abs( a( i+j*lda ) )
431 aa = abs( a( i+j*lda ) )
433 work( j ) = work( j ) + aa
437 aa = abs( a( i+j*lda ) )
440 work( l ) = work( l ) + aa
442 work( j ) = work( j ) + s
454 aa = abs( a( i+j*lda ) )
457 work( i+k ) = work( i+k ) + aa
459 aa = abs( a( i+j*lda ) )
462 work( i+k ) = work( i+k ) + s
465 aa = abs( a( i+j*lda ) )
471 aa = abs( a( i+j*lda ) )
474 work( l ) = work( l ) + aa
476 work( j ) = work( j ) + s
498 aa = abs( a( i+j*lda ) )
500 work( i+n1 ) = work( i+n1 ) + aa
506 s = abs( a( 0+j*lda ) )
509 aa = abs( a( i+j*lda ) )
511 work( i+n1 ) = work( i+n1 ) + aa
514 work( j ) = work( j ) + s
518 aa = abs( a( i+j*lda ) )
520 work( i ) = work( i ) + aa
524 aa = abs( a( i+j*lda ) )
527 work( j-k ) = work( j-k ) + s
529 s = abs( a( i+j*lda ) )
533 aa = abs( a( i+j*lda ) )
535 work( l ) = work( l ) + aa
538 work( j ) = work( j ) + s
553 aa = abs( a( i+j*lda ) )
555 work( i ) = work( i ) + aa
558 aa = abs( a( i+j*lda ) )
565 aa = abs( a( i+j*lda ) )
567 DO l = k + j + 1, n - 1
569 aa = abs( a( i+j*lda ) )
572 work( l ) = work( l ) + aa
574 work( k+j ) = work( k+j ) + s
579 aa = abs( a( i+j*lda ) )
581 work( i ) = work( i ) + aa
585 aa = abs( a( i+j*lda ) )
594 aa = abs( a( i+j*lda ) )
596 work( i ) = work( i ) + aa
599 work( j ) = work( j ) + s
613 aa = abs( a( i+j*lda ) )
615 work( i+k ) = work( i+k ) + aa
621 aa = abs( a( 0+j*lda ) )
625 aa = abs( a( i+j*lda ) )
627 work( i+k ) = work( i+k ) + aa
630 work( j ) = work( j ) + s
634 aa = abs( a( i+j*lda ) )
636 work( i ) = work( i ) + aa
640 aa = abs( a( i+j*lda ) )
643 work( j-k-1 ) = work( j-k-1 ) + s
645 aa = abs( a( i+j*lda ) )
650 aa = abs( a( i+j*lda ) )
652 work( l ) = work( l ) + aa
655 work( j ) = work( j ) + s
660 aa = abs( a( i+j*lda ) )
662 work( i ) = work( i ) + aa
666 aa = abs( a( i+j*lda ) )
669 work( i ) = work( i ) + s
683 work( i+k ) = work( i+k ) + aa
686 work( k ) = work( k ) + s
691 aa = abs( a( i+j*lda ) )
693 work( i ) = work( i ) + aa
696 aa = abs( a( i+j*lda ) )
703 aa = abs( a( i+j*lda ) )
705 DO l = k + j + 1, n - 1
707 aa = abs( a( i+j*lda ) )
710 work( l ) = work( l ) + aa
712 work( k+j ) = work( k+j ) + s
717 aa = abs( a( i+j*lda ) )
719 work( i ) = work( i ) + aa
723 aa = abs( a( i+j*lda ) )
732 aa = abs( a( i+j*lda ) )
734 work( i ) = work( i ) + aa
737 work( j-1 ) = work( j-1 ) + s
744 ELSE IF( (
lsame( norm,
'F' ) ) .OR. (
lsame( norm,
'E' ) ) )
THEN
758 CALL
dlassq( k-j-2, a( k+j+1+j*lda ), 1, scale, s )
762 CALL
dlassq( k+j-1, a( 0+j*lda ), 1, scale, s )
767 CALL
dlassq( k-1, a( k ), lda+1, scale, s )
769 CALL
dlassq( k, a( k-1 ), lda+1, scale, s )
774 CALL
dlassq( n-j-1, a( j+1+j*lda ), 1, scale, s )
778 CALL
dlassq( j, a( 0+( 1+j )*lda ), 1, scale, s )
783 CALL
dlassq( k, a( 0 ), lda+1, scale, s )
785 CALL
dlassq( k-1, a( 0+lda ), lda+1, scale, s )
793 CALL
dlassq( j, a( 0+( k+j )*lda ), 1, scale, s )
797 CALL
dlassq( k, a( 0+j*lda ), 1, scale, s )
801 CALL
dlassq( k-j-1, a( j+1+( j+k-1 )*lda ), 1,
807 CALL
dlassq( k-1, a( 0+k*lda ), lda+1, scale, s )
809 CALL
dlassq( k, a( 0+( k-1 )*lda ), lda+1, scale, s )
814 CALL
dlassq( j, a( 0+j*lda ), 1, scale, s )
818 CALL
dlassq( k, a( 0+j*lda ), 1, scale, s )
822 CALL
dlassq( k-j-2, a( j+2+j*lda ), 1, scale, s )
827 CALL
dlassq( k, a( 0 ), lda+1, scale, s )
829 CALL
dlassq( k-1, a( 1 ), lda+1, scale, s )
840 CALL
dlassq( k-j-1, a( k+j+2+j*lda ), 1, scale, s )
844 CALL
dlassq( k+j, a( 0+j*lda ), 1, scale, s )
849 CALL
dlassq( k, a( k+1 ), lda+1, scale, s )
851 CALL
dlassq( k, a( k ), lda+1, scale, s )
856 CALL
dlassq( n-j-1, a( j+2+j*lda ), 1, scale, s )
860 CALL
dlassq( j, a( 0+j*lda ), 1, scale, s )
865 CALL
dlassq( k, a( 1 ), lda+1, scale, s )
867 CALL
dlassq( k, a( 0 ), lda+1, scale, s )
875 CALL
dlassq( j, a( 0+( k+1+j )*lda ), 1, scale, s )
879 CALL
dlassq( k, a( 0+j*lda ), 1, scale, s )
883 CALL
dlassq( k-j-1, a( j+1+( j+k )*lda ), 1, scale,
889 CALL
dlassq( k, a( 0+( k+1 )*lda ), lda+1, scale, s )
891 CALL
dlassq( k, a( 0+k*lda ), lda+1, scale, s )
896 CALL
dlassq( j, a( 0+( j+1 )*lda ), 1, scale, s )
900 CALL
dlassq( k, a( 0+j*lda ), 1, scale, s )
904 CALL
dlassq( k-j-1, a( j+1+j*lda ), 1, scale, s )
909 CALL
dlassq( k, a( lda ), lda+1, scale, s )
911 CALL
dlassq( k, a( 0 ), lda+1, scale, s )
916 value = scale*sqrt( s )