208 REAL function
slansf( norm, transr, uplo, n, a, work )
215 CHARACTER norm, transr, uplo
219 REAL a( 0: * ), work( 0: * )
227 parameter( one = 1.0e+0, zero = 0.0e+0 )
230 INTEGER i, j, ifm, ilu, noe, n1, k, l, lda
231 REAL scale, s,
VALUE, aa, temp
248 ELSE IF( n.EQ.1 )
THEN
256 IF( mod( n, 2 ).EQ.0 )
262 IF(
lsame( transr,
'T' ) )
268 IF(
lsame( uplo,
'U' ) )
287 IF(
lsame( norm,
'M' ) )
THEN
299 temp = abs( a( i+j*lda ) )
300 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
308 temp = abs( a( i+j*lda ) )
309 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
320 temp = abs( a( i+j*lda ) )
321 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
329 temp = abs( a( i+j*lda ) )
330 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
336 ELSE IF( (
lsame( norm,
'I' ) ) .OR. (
lsame( norm,
'O' ) ) .OR.
337 $ ( norm.EQ.
'1' ) )
THEN
352 aa = abs( a( i+j*lda ) )
355 work( i ) = work( i ) + aa
357 aa = abs( a( i+j*lda ) )
363 aa = abs( a( i+j*lda ) )
365 work( j ) = work( j ) + aa
369 aa = abs( a( i+j*lda ) )
372 work( l ) = work( l ) + aa
374 work( j ) = work( j ) + s
380 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
393 aa = abs( a( i+j*lda ) )
396 work( i+k ) = work( i+k ) + aa
399 aa = abs( a( i+j*lda ) )
402 work( i+k ) = work( i+k ) + s
406 aa = abs( a( i+j*lda ) )
412 aa = abs( a( i+j*lda ) )
415 work( l ) = work( l ) + aa
417 work( j ) = work( j ) + s
422 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
435 aa = abs( a( i+j*lda ) )
438 work( i ) = work( i ) + aa
440 aa = abs( a( i+j*lda ) )
444 aa = abs( a( i+j*lda ) )
446 work( j ) = work( j ) + aa
450 aa = abs( a( i+j*lda ) )
453 work( l ) = work( l ) + aa
455 work( j ) = work( j ) + s
460 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
471 aa = abs( a( i+j*lda ) )
474 work( i+k ) = work( i+k ) + aa
476 aa = abs( a( i+j*lda ) )
479 work( i+k ) = work( i+k ) + s
482 aa = abs( a( i+j*lda ) )
488 aa = abs( a( i+j*lda ) )
491 work( l ) = work( l ) + aa
493 work( j ) = work( j ) + s
498 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
519 aa = abs( a( i+j*lda ) )
521 work( i+n1 ) = work( i+n1 ) + aa
527 s = abs( a( 0+j*lda ) )
530 aa = abs( a( i+j*lda ) )
532 work( i+n1 ) = work( i+n1 ) + aa
535 work( j ) = work( j ) + s
539 aa = abs( a( i+j*lda ) )
541 work( i ) = work( i ) + aa
545 aa = abs( a( i+j*lda ) )
548 work( j-k ) = work( j-k ) + s
550 s = abs( a( i+j*lda ) )
554 aa = abs( a( i+j*lda ) )
556 work( l ) = work( l ) + aa
559 work( j ) = work( j ) + s
564 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
578 aa = abs( a( i+j*lda ) )
580 work( i ) = work( i ) + aa
583 aa = abs( a( i+j*lda ) )
590 aa = abs( a( i+j*lda ) )
592 DO l = k + j + 1, n - 1
594 aa = abs( a( i+j*lda ) )
597 work( l ) = work( l ) + aa
599 work( k+j ) = work( k+j ) + s
604 aa = abs( a( i+j*lda ) )
606 work( i ) = work( i ) + aa
610 aa = abs( a( i+j*lda ) )
619 aa = abs( a( i+j*lda ) )
621 work( i ) = work( i ) + aa
624 work( j ) = work( j ) + s
629 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
642 aa = abs( a( i+j*lda ) )
644 work( i+k ) = work( i+k ) + aa
650 aa = abs( a( 0+j*lda ) )
654 aa = abs( a( i+j*lda ) )
656 work( i+k ) = work( i+k ) + aa
659 work( j ) = work( j ) + s
663 aa = abs( a( i+j*lda ) )
665 work( i ) = work( i ) + aa
669 aa = abs( a( i+j*lda ) )
672 work( j-k-1 ) = work( j-k-1 ) + s
674 aa = abs( a( i+j*lda ) )
679 aa = abs( a( i+j*lda ) )
681 work( l ) = work( l ) + aa
684 work( j ) = work( j ) + s
689 aa = abs( a( i+j*lda ) )
691 work( i ) = work( i ) + aa
695 aa = abs( a( i+j*lda ) )
698 work( i ) = work( i ) + s
702 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
716 work( i+k ) = work( i+k ) + aa
719 work( k ) = work( k ) + s
724 aa = abs( a( i+j*lda ) )
726 work( i ) = work( i ) + aa
729 aa = abs( a( i+j*lda ) )
736 aa = abs( a( i+j*lda ) )
738 DO l = k + j + 1, n - 1
740 aa = abs( a( i+j*lda ) )
743 work( l ) = work( l ) + aa
745 work( k+j ) = work( k+j ) + s
750 aa = abs( a( i+j*lda ) )
752 work( i ) = work( i ) + aa
756 aa = abs( a( i+j*lda ) )
765 aa = abs( a( i+j*lda ) )
767 work( i ) = work( i ) + aa
770 work( j-1 ) = work( j-1 ) + s
775 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
781 ELSE IF( (
lsame( norm,
'F' ) ) .OR. (
lsame( norm,
'E' ) ) )
THEN
795 CALL slassq( k-j-2, a( k+j+1+j*lda ), 1, scale, s )
799 CALL slassq( k+j-1, a( 0+j*lda ), 1, scale, s )
804 CALL slassq( k-1, a( k ), lda+1, scale, s )
806 CALL slassq( k, a( k-1 ), lda+1, scale, s )
811 CALL slassq( n-j-1, a( j+1+j*lda ), 1, scale, s )
815 CALL slassq( j, a( 0+( 1+j )*lda ), 1, scale, s )
820 CALL slassq( k, a( 0 ), lda+1, scale, s )
822 CALL slassq( k-1, a( 0+lda ), lda+1, scale, s )
830 CALL slassq( j, a( 0+( k+j )*lda ), 1, scale, s )
834 CALL slassq( k, a( 0+j*lda ), 1, scale, s )
838 CALL slassq( k-j-1, a( j+1+( j+k-1 )*lda ), 1,
844 CALL slassq( k-1, a( 0+k*lda ), lda+1, scale, s )
846 CALL slassq( k, a( 0+( k-1 )*lda ), lda+1, scale, s )
851 CALL slassq( j, a( 0+j*lda ), 1, scale, s )
855 CALL slassq( k, a( 0+j*lda ), 1, scale, s )
859 CALL slassq( k-j-2, a( j+2+j*lda ), 1, scale, s )
864 CALL slassq( k, a( 0 ), lda+1, scale, s )
866 CALL slassq( k-1, a( 1 ), lda+1, scale, s )
877 CALL slassq( k-j-1, a( k+j+2+j*lda ), 1, scale, s )
881 CALL slassq( k+j, a( 0+j*lda ), 1, scale, s )
886 CALL slassq( k, a( k+1 ), lda+1, scale, s )
888 CALL slassq( k, a( k ), lda+1, scale, s )
893 CALL slassq( n-j-1, a( j+2+j*lda ), 1, scale, s )
897 CALL slassq( j, a( 0+j*lda ), 1, scale, s )
902 CALL slassq( k, a( 1 ), lda+1, scale, s )
904 CALL slassq( k, a( 0 ), lda+1, scale, s )
912 CALL slassq( j, a( 0+( k+1+j )*lda ), 1, scale, s )
916 CALL slassq( k, a( 0+j*lda ), 1, scale, s )
920 CALL slassq( k-j-1, a( j+1+( j+k )*lda ), 1, scale,
926 CALL slassq( k, a( 0+( k+1 )*lda ), lda+1, scale, s )
928 CALL slassq( k, a( 0+k*lda ), lda+1, scale, s )
933 CALL slassq( j, a( 0+( j+1 )*lda ), 1, scale, s )
937 CALL slassq( k, a( 0+j*lda ), 1, scale, s )
941 CALL slassq( k-j-1, a( j+1+j*lda ), 1, scale, s )
946 CALL slassq( k, a( lda ), lda+1, scale, s )
948 CALL slassq( k, a( 0 ), lda+1, scale, s )
953 VALUE = scale*sqrt( s )
logical function sisnan(sin)
SISNAN tests input for NaN.
real function slansf(norm, transr, uplo, n, a, work)
SLANSF
subroutine slassq(n, x, incx, scale, sumsq)
SLASSQ updates a sum of squares represented in scaled form.
logical function lsame(ca, cb)
LSAME