772 parameter ( zero = ( 0.0, 0.0 ) )
774 parameter ( rzero = 0.0 )
777 INTEGER nalf, nbet, nidim, nmax, nout, ntra, iorder
778 LOGICAL fatal, rewi, trace
781 COMPLEX a( nmax, nmax ), aa( nmax*nmax ), alf( nalf ),
782 $ as( nmax*nmax ), b( nmax, nmax ),
783 $ bb( nmax*nmax ), bet( nbet ), bs( nmax*nmax ),
784 $ c( nmax, nmax ), cc( nmax*nmax ),
785 $ cs( nmax*nmax ), ct( nmax )
787 INTEGER idim( nidim )
789 COMPLEX alpha, als, beta, bls
791 INTEGER i, ia, ib, ics, icu, im, in, laa, lbb, lcc,
792 $ lda, ldas, ldb, ldbs, ldc, ldcs, m, ms, n, na,
794 LOGICAL conj, left, null, reset, same
795 CHARACTER*1 side, sides, uplo, uplos
796 CHARACTER*2 ichs, ichu
810 COMMON /infoc/infot, noutc, ok, lerr
812 DATA ichs/
'LR'/, ichu/
'UL'/
814 conj = sname( 8: 9 ).EQ.
'he'
834 null = n.LE.0.OR.m.LE.0
846 CALL cmake(
'ge',
' ',
' ', m, n, b, nmax, bb, ldb, reset,
850 side = ichs( ics: ics )
868 uplo = ichu( icu: icu )
872 CALL cmake(sname( 8: 9 ), uplo,
' ', na, na, a, nmax,
873 $ aa, lda, reset, zero )
883 CALL cmake(
'ge',
' ',
' ', m, n, c, nmax, cc,
913 $
CALL cprcn2(ntra, nc, sname, iorder,
914 $ side, uplo, m, n, alpha, lda, ldb,
919 CALL cchemm( iorder, side, uplo, m, n,
920 $ alpha, aa, lda, bb, ldb, beta,
923 CALL ccsymm( iorder, side, uplo, m, n,
924 $ alpha, aa, lda, bb, ldb, beta,
931 WRITE( nout, fmt = 9994 )
938 isame( 1 ) = sides.EQ.side
939 isame( 2 ) = uplos.EQ.uplo
942 isame( 5 ) = als.EQ.alpha
943 isame( 6 ) =
lce( as, aa, laa )
944 isame( 7 ) = ldas.EQ.lda
945 isame( 8 ) =
lce( bs, bb, lbb )
946 isame( 9 ) = ldbs.EQ.ldb
947 isame( 10 ) = bls.EQ.beta
949 isame( 11 ) =
lce( cs, cc, lcc )
951 isame( 11 ) =
lceres(
'ge',
' ', m, n, cs,
954 isame( 12 ) = ldcs.EQ.ldc
961 same = same.AND.isame( i )
962 IF( .NOT.isame( i ) )
963 $
WRITE( nout, fmt = 9998 )i
975 CALL cmmch(
'N',
'N', m, n, m, alpha, a,
976 $ nmax, b, nmax, beta, c, nmax,
977 $ ct, g, cc, ldc, eps, err,
978 $ fatal, nout, .true. )
980 CALL cmmch(
'N',
'N', m, n, n, alpha, b,
981 $ nmax, a, nmax, beta, c, nmax,
982 $ ct, g, cc, ldc, eps, err,
983 $ fatal, nout, .true. )
985 errmax = max( errmax, err )
1006 IF( errmax.LT.thresh )
THEN
1007 IF ( iorder.EQ.0)
WRITE( nout, fmt = 10000 )sname, nc
1008 IF ( iorder.EQ.1)
WRITE( nout, fmt = 10001 )sname, nc
1010 IF ( iorder.EQ.0)
WRITE( nout, fmt = 10002 )sname, nc, errmax
1011 IF ( iorder.EQ.1)
WRITE( nout, fmt = 10003 )sname, nc, errmax
1016 WRITE( nout, fmt = 9996 )sname
1017 CALL cprcn2(nout, nc, sname, iorder, side, uplo, m, n, alpha, lda,
1023 10003
FORMAT(
' ', a12,
' COMPLETED THE ROW-MAJOR COMPUTATIONAL ',
1024 $
'TESTS (', i6,
' CALLS)', /
' ******* BUT WITH MAXIMUM TEST ',
1025 $
'RATIO ', f8.2,
' - SUSPECT *******' )
1026 10002
FORMAT(
' ', a12,
' COMPLETED THE COLUMN-MAJOR COMPUTATIONAL ',
1027 $
'TESTS (', i6,
' CALLS)', /
' ******* BUT WITH MAXIMUM TEST ',
1028 $
'RATIO ', f8.2,
' - SUSPECT *******' )
1029 10001
FORMAT(
' ', a12,
' PASSED THE ROW-MAJOR COMPUTATIONAL TESTS',
1030 $
' (', i6,
' CALL',
'S)' )
1031 10000
FORMAT(
' ', a12,
' PASSED THE COLUMN-MAJOR COMPUTATIONAL TESTS',
1032 $
' (', i6,
' CALL',
'S)' )
1033 9998
FORMAT(
' ******* FATAL ERROR - PARAMETER NUMBER ', i2,
' WAS CH',
1034 $
'ANGED INCORRECTLY *******' )
1035 9996
FORMAT(
' ******* ', a12,
' FAILED ON CALL NUMBER:' )
1036 9995
FORMAT(1x, i6,
': ', a12,
'(', 2(
'''', a1,
''',' ), 2( i3,
',' ),
1037 $
'(', f4.1,
',', f4.1,
'), A,', i3,
', B,', i3,
',(', f4.1,
1038 $
',', f4.1,
'), C,', i3,
') .' )
1039 9994
FORMAT(
' ******* FATAL ERROR - ERROR-EXIT TAKEN ON VALID CALL *',
subroutine cprcn2(NOUT, NC, SNAME, IORDER, SIDE, UPLO, M, N, ALPHA, LDA, LDB, BETA, LDC)
subroutine cmmch(TRANSA, TRANSB, M, N, KK, ALPHA, A, LDA, B, LDB, BETA, C, LDC, CT, G, CC, LDCC, EPS, ERR, FATAL, NOUT, MV)
logical function lce(RI, RJ, LR)
subroutine cmake(TYPE, UPLO, DIAG, M, N, A, NMAX, AA, LDA, KL, KU, RESET, TRANSL)
logical function lceres(TYPE, UPLO, M, N, AA, AS, LDA)