692 parameter ( zero = 0.0 )
695 INTEGER nalf, nbet, nidim, nmax, nout, ntra
696 LOGICAL fatal, rewi, trace
699 REAL a( nmax, nmax ), aa( nmax*nmax ), alf( nalf ),
700 $ as( nmax*nmax ), b( nmax, nmax ),
701 $ bb( nmax*nmax ), bet( nbet ), bs( nmax*nmax ),
702 $ c( nmax, nmax ), cc( nmax*nmax ),
703 $ cs( nmax*nmax ), ct( nmax ), g( nmax )
704 INTEGER idim( nidim )
706 REAL alpha, als, beta, bls, err, errmax
707 INTEGER i, ia, ib, ics, icu, im, in, laa, lbb, lcc,
708 $ lda, ldas, ldb, ldbs, ldc, ldcs, m, ms, n, na,
710 LOGICAL left, null, reset, same
711 CHARACTER*1 side, sides, uplo, uplos
712 CHARACTER*2 ichs, ichu
726 COMMON /infoc/infot, noutc, ok, lerr
728 DATA ichs/
'LR'/, ichu/
'UL'/
749 null = n.LE.0.OR.m.LE.0
762 CALL smake(
'GE',
' ',
' ', m, n, b, nmax, bb, ldb, reset,
766 side = ichs( ics: ics )
784 uplo = ichu( icu: icu )
788 CALL smake(
'SY', uplo,
' ', na, na, a, nmax, aa, lda,
799 CALL smake(
'GE',
' ',
' ', m, n, c, nmax, cc,
829 $
WRITE( ntra, fmt = 9995 )nc, sname, side,
830 $ uplo, m, n, alpha, lda, ldb, beta, ldc
833 CALL ssymm( side, uplo, m, n, alpha, aa, lda,
834 $ bb, ldb, beta, cc, ldc )
839 WRITE( nout, fmt = 9994 )
846 isame( 1 ) = sides.EQ.side
847 isame( 2 ) = uplos.EQ.uplo
850 isame( 5 ) = als.EQ.alpha
851 isame( 6 ) =
lse( as, aa, laa )
852 isame( 7 ) = ldas.EQ.lda
853 isame( 8 ) =
lse( bs, bb, lbb )
854 isame( 9 ) = ldbs.EQ.ldb
855 isame( 10 ) = bls.EQ.beta
857 isame( 11 ) =
lse( cs, cc, lcc )
859 isame( 11 ) =
lseres(
'GE',
' ', m, n, cs,
862 isame( 12 ) = ldcs.EQ.ldc
869 same = same.AND.isame( i )
870 IF( .NOT.isame( i ) )
871 $
WRITE( nout, fmt = 9998 )i
883 CALL smmch(
'N',
'N', m, n, m, alpha, a,
884 $ nmax, b, nmax, beta, c, nmax,
885 $ ct, g, cc, ldc, eps, err,
886 $ fatal, nout, .true. )
888 CALL smmch(
'N',
'N', m, n, n, alpha, b,
889 $ nmax, a, nmax, beta, c, nmax,
890 $ ct, g, cc, ldc, eps, err,
891 $ fatal, nout, .true. )
893 errmax = max( errmax, err )
914 IF( errmax.LT.thresh )
THEN
915 WRITE( nout, fmt = 9999 )sname, nc
917 WRITE( nout, fmt = 9997 )sname, nc, errmax
922 WRITE( nout, fmt = 9996 )sname
923 WRITE( nout, fmt = 9995 )nc, sname, side, uplo, m, n, alpha, lda,
929 9999
FORMAT(
' ', a6,
' PASSED THE COMPUTATIONAL TESTS (', i6,
' CALL',
931 9998
FORMAT(
' ******* FATAL ERROR - PARAMETER NUMBER ', i2,
' WAS CH',
932 $
'ANGED INCORRECTLY *******' )
933 9997
FORMAT(
' ', a6,
' COMPLETED THE COMPUTATIONAL TESTS (', i6,
' C',
934 $
'ALLS)', /
' ******* BUT WITH MAXIMUM TEST RATIO', f8.2,
935 $
' - SUSPECT *******' )
936 9996
FORMAT(
' ******* ', a6,
' FAILED ON CALL NUMBER:' )
937 9995
FORMAT( 1x, i6,
': ', a6,
'(', 2(
'''', a1,
''',' ), 2( i3,
',' ),
938 $ f4.1,
', A,', i3,
', B,', i3,
',', f4.1,
', C,', i3,
') ',
940 9994
FORMAT(
' ******* FATAL ERROR - ERROR-EXIT TAKEN ON VALID CALL *',
subroutine smake(TYPE, UPLO, DIAG, M, N, A, NMAX, AA, LDA, KL, KU, RESET, TRANSL)
logical function lse(RI, RJ, LR)
logical function lseres(TYPE, UPLO, M, N, AA, AS, LDA)
subroutine smmch(TRANSA, TRANSB, M, N, KK, ALPHA, A, LDA, B, LDB, BETA, C, LDC, CT, G, CC, LDCC, EPS, ERR, FATAL, NOUT, MV)
subroutine ssymm(SIDE, UPLO, M, N, ALPHA, A, LDA, B, LDB, BETA, C, LDC)
SSYMM