756 DOUBLE PRECISION ZERO
757 parameter( zero = 0.0d0 )
759 DOUBLE PRECISION EPS, THRESH
760 INTEGER NALF, NBET, NIDIM, NMAX, NOUT, NTRA, IORDER
761 LOGICAL FATAL, REWI, TRACE
764 DOUBLE PRECISION A( NMAX, NMAX ), AA( NMAX*NMAX ), ALF( NALF ),
765 $ AS( NMAX*NMAX ), B( NMAX, NMAX ),
766 $ BB( NMAX*NMAX ), BET( NBET ), BS( NMAX*NMAX ),
767 $ C( NMAX, NMAX ), CC( NMAX*NMAX ),
768 $ CS( NMAX*NMAX ), CT( NMAX ), G( NMAX )
769 INTEGER IDIM( NIDIM )
771 DOUBLE PRECISION ALPHA, ALS, BETA, BLS, ERR, ERRMAX
772 INTEGER I, IA, IB, ICS, ICU, IM, IN, LAA, LBB, LCC,
773 $ LDA, LDAS, LDB, LDBS, LDC, LDCS, M, MS, N, NA,
775 LOGICAL LEFT, NULL, RESET, SAME
776 CHARACTER*1 SIDE, SIDES, UPLO, UPLOS
777 CHARACTER*2 ICHS, ICHU
791 COMMON /infoc/infot, noutc, ok
793 DATA ichs/
'LR'/, ichu/
'UL'/
814 null = n.LE.0.OR.m.LE.0
827 CALL dmake(
'GE',
' ',
' ', m, n, b, nmax, bb, ldb, reset,
831 side = ichs( ics: ics )
849 uplo = ichu( icu: icu )
853 CALL dmake(
'SY', uplo,
' ', na, na, a, nmax, aa, lda,
864 CALL dmake(
'GE',
' ',
' ', m, n, c, nmax, cc,
894 $
CALL dprcn2(ntra, nc, sname, iorder,
895 $ side, uplo, m, n, alpha, lda, ldb,
899 CALL cdsymm( iorder, side, uplo, m, n, alpha,
900 $ aa, lda, bb, ldb, beta, cc, ldc )
905 WRITE( nout, fmt = 9994 )
912 isame( 1 ) = sides.EQ.side
913 isame( 2 ) = uplos.EQ.uplo
916 isame( 5 ) = als.EQ.alpha
917 isame( 6 ) =
lde( as, aa, laa )
918 isame( 7 ) = ldas.EQ.lda
919 isame( 8 ) =
lde( bs, bb, lbb )
920 isame( 9 ) = ldbs.EQ.ldb
921 isame( 10 ) = bls.EQ.beta
923 isame( 11 ) =
lde( cs, cc, lcc )
925 isame( 11 ) =
lderes(
'GE',
' ', m, n, cs,
928 isame( 12 ) = ldcs.EQ.ldc
935 same = same.AND.isame( i )
936 IF( .NOT.isame( i ) )
937 $
WRITE( nout, fmt = 9998 )i
949 CALL dmmch(
'N',
'N', m, n, m, alpha, a,
950 $ nmax, b, nmax, beta, c, nmax,
951 $ ct, g, cc, ldc, eps, err,
952 $ fatal, nout, .true. )
954 CALL dmmch(
'N',
'N', m, n, n, alpha, b,
955 $ nmax, a, nmax, beta, c, nmax,
956 $ ct, g, cc, ldc, eps, err,
957 $ fatal, nout, .true. )
959 errmax = max( errmax, err )
980 IF( errmax.LT.thresh )
THEN
981 IF ( iorder.EQ.0)
WRITE( nout, fmt = 10000 )sname, nc
982 IF ( iorder.EQ.1)
WRITE( nout, fmt = 10001 )sname, nc
984 IF ( iorder.EQ.0)
WRITE( nout, fmt = 10002 )sname, nc, errmax
985 IF ( iorder.EQ.1)
WRITE( nout, fmt = 10003 )sname, nc, errmax
990 WRITE( nout, fmt = 9996 )sname
991 CALL dprcn2(nout, nc, sname, iorder, side, uplo, m, n, alpha, lda,
997 10003
FORMAT(
' ', a12,
' COMPLETED THE ROW-MAJOR COMPUTATIONAL ',
998 $
'TESTS (', i6,
' CALLS)', /
' ******* BUT WITH MAXIMUM TEST ',
999 $
'RATIO ', f8.2,
' - SUSPECT *******' )
1000 10002
FORMAT(
' ', a12,
' COMPLETED THE COLUMN-MAJOR COMPUTATIONAL ',
1001 $
'TESTS (', i6,
' CALLS)', /
' ******* BUT WITH MAXIMUM TEST ',
1002 $
'RATIO ', f8.2,
' - SUSPECT *******' )
1003 10001
FORMAT(
' ', a12,
' PASSED THE ROW-MAJOR COMPUTATIONAL TESTS',
1004 $
' (', i6,
' CALL',
'S)' )
1005 10000
FORMAT(
' ', a12,
' PASSED THE COLUMN-MAJOR COMPUTATIONAL TESTS',
1006 $
' (', i6,
' CALL',
'S)' )
1007 9998
FORMAT(
' ******* FATAL ERROR - PARAMETER NUMBER ', i2,
' WAS CH',
1008 $
'ANGED INCORRECTLY *******' )
1009 9996
FORMAT(
' ******* ', a12,
' FAILED ON CALL NUMBER:' )
1010 9995
FORMAT( 1x, i6,
': ', a12,
'(', 2(
'''', a1,
''',' ), 2( i3,
',' ),
1011 $ f4.1,
', A,', i3,
', B,', i3,
',', f4.1,
', C,', i3,
') ',
1013 9994
FORMAT(
' ******* FATAL ERROR - ERROR-EXIT TAKEN ON VALID CALL *',