689 parameter( zero = 0.0 )
692 INTEGER NALF, NBET, NIDIM, NMAX, NOUT, NTRA
693 LOGICAL FATAL, REWI, TRACE
696 REAL A( NMAX, NMAX ), AA( NMAX*NMAX ), ALF( NALF ),
697 $ AS( NMAX*NMAX ), B( NMAX, NMAX ),
698 $ BB( NMAX*NMAX ), BET( NBET ), BS( NMAX*NMAX ),
699 $ C( NMAX, NMAX ), CC( NMAX*NMAX ),
700 $ CS( NMAX*NMAX ), CT( NMAX ), G( NMAX )
701 INTEGER IDIM( NIDIM )
703 REAL ALPHA, ALS, BETA, BLS, ERR, ERRMAX
704 INTEGER I, IA, IB, ICS, ICU, IM, IN, LAA, LBB, LCC,
705 $ LDA, LDAS, LDB, LDBS, LDC, LDCS, M, MS, N, NA,
707 LOGICAL LEFT, NULL, RESET, SAME
708 CHARACTER*1 SIDE, SIDES, UPLO, UPLOS
709 CHARACTER*2 ICHS, ICHU
723 COMMON /infoc/infot, noutc, ok, lerr
725 DATA ichs/
'LR'/, ichu/
'UL'/
746 null = n.LE.0.OR.m.LE.0
759 CALL smake(
'GE',
' ',
' ', m, n, b, nmax, bb, ldb, reset,
763 side = ichs( ics: ics )
781 uplo = ichu( icu: icu )
785 CALL smake(
'SY', uplo,
' ', na, na, a, nmax, aa, lda,
796 CALL smake(
'GE',
' ',
' ', m, n, c, nmax, cc,
826 $
WRITE( ntra, fmt = 9995 )nc, sname, side,
827 $ uplo, m, n, alpha, lda, ldb, beta, ldc
830 CALL ssymm( side, uplo, m, n, alpha, aa, lda,
831 $ bb, ldb, beta, cc, ldc )
836 WRITE( nout, fmt = 9994 )
843 isame( 1 ) = sides.EQ.side
844 isame( 2 ) = uplos.EQ.uplo
847 isame( 5 ) = als.EQ.alpha
848 isame( 6 ) =
lse( as, aa, laa )
849 isame( 7 ) = ldas.EQ.lda
850 isame( 8 ) =
lse( bs, bb, lbb )
851 isame( 9 ) = ldbs.EQ.ldb
852 isame( 10 ) = bls.EQ.beta
854 isame( 11 ) =
lse( cs, cc, lcc )
856 isame( 11 ) =
lseres(
'GE',
' ', m, n, cs,
859 isame( 12 ) = ldcs.EQ.ldc
866 same = same.AND.isame( i )
867 IF( .NOT.isame( i ) )
868 $
WRITE( nout, fmt = 9998 )i
880 CALL smmch(
'N',
'N', m, n, m, alpha, a,
881 $ nmax, b, nmax, beta, c, nmax,
882 $ ct, g, cc, ldc, eps, err,
883 $ fatal, nout, .true. )
885 CALL smmch(
'N',
'N', m, n, n, alpha, b,
886 $ nmax, a, nmax, beta, c, nmax,
887 $ ct, g, cc, ldc, eps, err,
888 $ fatal, nout, .true. )
890 errmax = max( errmax, err )
911 IF( errmax.LT.thresh )
THEN
912 WRITE( nout, fmt = 9999 )sname, nc
914 WRITE( nout, fmt = 9997 )sname, nc, errmax
919 WRITE( nout, fmt = 9996 )sname
920 WRITE( nout, fmt = 9995 )nc, sname, side, uplo, m, n, alpha, lda,
926 9999
FORMAT(
' ', a6,
' PASSED THE COMPUTATIONAL TESTS (', i6,
' CALL',
928 9998
FORMAT(
' ******* FATAL ERROR - PARAMETER NUMBER ', i2,
' WAS CH',
929 $
'ANGED INCORRECTLY *******' )
930 9997
FORMAT(
' ', a6,
' COMPLETED THE COMPUTATIONAL TESTS (', i6,
' C',
931 $
'ALLS)', /
' ******* BUT WITH MAXIMUM TEST RATIO', f8.2,
932 $
' - SUSPECT *******' )
933 9996
FORMAT(
' ******* ', a6,
' FAILED ON CALL NUMBER:' )
934 9995
FORMAT( 1x, i6,
': ', a6,
'(', 2(
'''', a1,
''',' ), 2( i3,
',' ),
935 $ f4.1,
', A,', i3,
', B,', i3,
',', f4.1,
', C,', i3,
') ',
937 9994
FORMAT(
' ******* FATAL ERROR - ERROR-EXIT TAKEN ON VALID CALL *',
subroutine ssymm(SIDE, UPLO, M, N, ALPHA, A, LDA, B, LDB, BETA, C, LDC)
SSYMM
logical function lse(RI, RJ, LR)
logical function lseres(TYPE, UPLO, M, N, AA, AS, LDA)
subroutine smake(TYPE, UPLO, DIAG, M, N, A, NMAX, AA, LDA, KL, KU, RESET, TRANSL)
subroutine smmch(TRANSA, TRANSB, M, N, KK, ALPHA, A, LDA, B, LDB, BETA, C, LDC, CT, G, CC, LDCC, EPS, ERR, FATAL, NOUT, MV)