96 parameter( nsubs = 9 )
98 parameter( zero = ( 0.0, 0.0 ), one = ( 1.0, 0.0 ) )
100 parameter( rzero = 0.0 )
102 parameter( nmax = 65 )
103 INTEGER nidmax, nalmax, nbemax
104 parameter( nidmax = 9, nalmax = 7, nbemax = 7 )
106 REAL eps, err, thresh
107 INTEGER i, isnum, j, n, nalf, nbet, nidim, nout, ntra
108 LOGICAL fatal, ltestt, rewi, same, sfatal, trace,
110 CHARACTER*1 transa, transb
112 CHARACTER*32 snaps, summry
114 COMPLEX aa( nmax*nmax ), ab( nmax, 2*nmax ),
115 $ alf( nalmax ), as( nmax*nmax ),
116 $ bb( nmax*nmax ), bet( nbemax ),
117 $ bs( nmax*nmax ), c( nmax, nmax ),
118 $ cc( nmax*nmax ), cs( nmax*nmax ), ct( nmax ),
121 INTEGER idim( nidmax )
122 LOGICAL ltest( nsubs )
123 CHARACTER*6 snames( nsubs )
137 COMMON /infoc/infot, noutc, ok, lerr
138 COMMON /srnamc/srnamt
140 DATA snames/
'CGEMM ',
'CHEMM ',
'CSYMM ',
'CTRMM ',
141 $
'CTRSM ',
'CHERK ',
'CSYRK ',
'CHER2K',
147 READ( nin, fmt = * )summry
148 READ( nin, fmt = * )nout
149 OPEN( nout, file = summry )
154 READ( nin, fmt = * )snaps
155 READ( nin, fmt = * )ntra
158 OPEN( ntra, file = snaps )
161 READ( nin, fmt = * )rewi
162 rewi = rewi.AND.trace
164 READ( nin, fmt = * )sfatal
166 READ( nin, fmt = * )tsterr
168 READ( nin, fmt = * )thresh
173 READ( nin, fmt = * )nidim
174 IF( nidim.LT.1.OR.nidim.GT.nidmax )
THEN
175 WRITE( nout, fmt = 9997 )
'N', nidmax
178 READ( nin, fmt = * )( idim( i ), i = 1, nidim )
180 IF( idim( i ).LT.0.OR.idim( i ).GT.nmax )
THEN
181 WRITE( nout, fmt = 9996 )nmax
186 READ( nin, fmt = * )nalf
187 IF( nalf.LT.1.OR.nalf.GT.nalmax )
THEN
188 WRITE( nout, fmt = 9997 )
'ALPHA', nalmax
191 READ( nin, fmt = * )( alf( i ), i = 1, nalf )
193 READ( nin, fmt = * )nbet
194 IF( nbet.LT.1.OR.nbet.GT.nbemax )
THEN
195 WRITE( nout, fmt = 9997 )
'BETA', nbemax
198 READ( nin, fmt = * )( bet( i ), i = 1, nbet )
202 WRITE( nout, fmt = 9995 )
203 WRITE( nout, fmt = 9994 )( idim( i ), i = 1, nidim )
204 WRITE( nout, fmt = 9993 )( alf( i ), i = 1, nalf )
205 WRITE( nout, fmt = 9992 )( bet( i ), i = 1, nbet )
206 IF( .NOT.tsterr )
THEN
207 WRITE( nout, fmt = * )
208 WRITE( nout, fmt = 9984 )
210 WRITE( nout, fmt = * )
211 WRITE( nout, fmt = 9999 )thresh
212 WRITE( nout, fmt = * )
220 30
READ( nin, fmt = 9988,
END = 60 )SNAMET, ltestt
222 IF( snamet.EQ.snames( i ) )
225 WRITE( nout, fmt = 9990 )snamet
227 50 ltest( i ) = ltestt
236 WRITE( nout, fmt = 9998 )eps
243 ab( i, j ) = max( i - j + 1, 0 )
245 ab( j, nmax + 1 ) = j
246 ab( 1, nmax + j ) = j
250 cc( j ) = j*( ( j + 1 )*j )/2 - ( ( j + 1 )*j*( j - 1 ) )/3
256 CALL cmmch( transa, transb, n, 1, n, one, ab, nmax,
257 $ ab( 1, nmax + 1 ), nmax, zero, c, nmax, ct, g, cc,
258 $ nmax, eps, err, fatal, nout, .true. )
259 same =
lce( cc, ct, n )
260 IF( .NOT.same.OR.err.NE.rzero )
THEN
261 WRITE( nout, fmt = 9989 )transa, transb, same, err
265 CALL cmmch( transa, transb, n, 1, n, one, ab, nmax,
266 $ ab( 1, nmax + 1 ), nmax, zero, c, nmax, ct, g, cc,
267 $ nmax, eps, err, fatal, nout, .true. )
268 same =
lce( cc, ct, n )
269 IF( .NOT.same.OR.err.NE.rzero )
THEN
270 WRITE( nout, fmt = 9989 )transa, transb, same, err
274 ab( j, nmax + 1 ) = n - j + 1
275 ab( 1, nmax + j ) = n - j + 1
278 cc( n - j + 1 ) = j*( ( j + 1 )*j )/2 -
279 $ ( ( j + 1 )*j*( j - 1 ) )/3
283 CALL cmmch( transa, transb, n, 1, n, one, ab, nmax,
284 $ ab( 1, nmax + 1 ), nmax, zero, c, nmax, ct, g, cc,
285 $ nmax, eps, err, fatal, nout, .true. )
286 same =
lce( cc, ct, n )
287 IF( .NOT.same.OR.err.NE.rzero )
THEN
288 WRITE( nout, fmt = 9989 )transa, transb, same, err
292 CALL cmmch( transa, transb, n, 1, n, one, ab, nmax,
293 $ ab( 1, nmax + 1 ), nmax, zero, c, nmax, ct, g, cc,
294 $ nmax, eps, err, fatal, nout, .true. )
295 same =
lce( cc, ct, n )
296 IF( .NOT.same.OR.err.NE.rzero )
THEN
297 WRITE( nout, fmt = 9989 )transa, transb, same, err
303 DO 200 isnum = 1, nsubs
304 WRITE( nout, fmt = * )
305 IF( .NOT.ltest( isnum ) )
THEN
307 WRITE( nout, fmt = 9987 )snames( isnum )
309 srnamt = snames( isnum )
312 CALL cchke( isnum, snames( isnum ), nout )
313 WRITE( nout, fmt = * )
319 GO TO ( 140, 150, 150, 160, 160, 170, 170,
322 140
CALL cchk1( snames( isnum ), eps, thresh, nout, ntra, trace,
323 $ rewi, fatal, nidim, idim, nalf, alf, nbet, bet,
324 $ nmax, ab, aa, as, ab( 1, nmax + 1 ), bb, bs, c,
328 150
CALL cchk2( snames( isnum ), eps, thresh, nout, ntra, trace,
329 $ rewi, fatal, nidim, idim, nalf, alf, nbet, bet,
330 $ nmax, ab, aa, as, ab( 1, nmax + 1 ), bb, bs, c,
334 160
CALL cchk3( snames( isnum ), eps, thresh, nout, ntra, trace,
335 $ rewi, fatal, nidim, idim, nalf, alf, nmax, ab,
336 $ aa, as, ab( 1, nmax + 1 ), bb, bs, ct, g, c )
339 170
CALL cchk4( snames( isnum ), eps, thresh, nout, ntra, trace,
340 $ rewi, fatal, nidim, idim, nalf, alf, nbet, bet,
341 $ nmax, ab, aa, as, ab( 1, nmax + 1 ), bb, bs, c,
345 180
CALL cchk5( snames( isnum ), eps, thresh, nout, ntra, trace,
346 $ rewi, fatal, nidim, idim, nalf, alf, nbet, bet,
347 $ nmax, ab, aa, as, bb, bs, c, cc, cs, ct, g, w )
350 190
IF( fatal.AND.sfatal )
354 WRITE( nout, fmt = 9986 )
358 WRITE( nout, fmt = 9985 )
362 WRITE( nout, fmt = 9991 )
370 9999
FORMAT(
' ROUTINES PASS COMPUTATIONAL TESTS IF TEST RATIO IS LES',
372 9998
FORMAT(
' RELATIVE MACHINE PRECISION IS TAKEN TO BE', 1p, e9.1 )
373 9997
FORMAT(
' NUMBER OF VALUES OF ', a,
' IS LESS THAN 1 OR GREATER ',
375 9996
FORMAT(
' VALUE OF N IS LESS THAN 0 OR GREATER THAN ', i2 )
376 9995
FORMAT(
' TESTS OF THE COMPLEX LEVEL 3 BLAS', //
' THE F',
377 $
'OLLOWING PARAMETER VALUES WILL BE USED:' )
378 9994
FORMAT(
' FOR N ', 9i6 )
379 9993
FORMAT(
' FOR ALPHA ',
380 $ 7(
'(', f4.1,
',', f4.1,
') ', : ) )
381 9992
FORMAT(
' FOR BETA ',
382 $ 7(
'(', f4.1,
',', f4.1,
') ', : ) )
383 9991
FORMAT(
' AMEND DATA FILE OR INCREASE ARRAY SIZES IN PROGRAM',
384 $ /
' ******* TESTS ABANDONED *******' )
385 9990
FORMAT(
' SUBPROGRAM NAME ', a6,
' NOT RECOGNIZED', /
' ******* T',
386 $
'ESTS ABANDONED *******' )
387 9989
FORMAT(
' ERROR IN CMMCH - IN-LINE DOT PRODUCTS ARE BEING EVALU',
388 $
'ATED WRONGLY.', /
' CMMCH WAS CALLED WITH TRANSA = ', a1,
389 $
' AND TRANSB = ', a1, /
' AND RETURNED SAME = ', l1,
' AND ',
390 $
'ERR = ', f12.3,
'.', /
' THIS MAY BE DUE TO FAULTS IN THE ',
391 $
'ARITHMETIC OR THE COMPILER.', /
' ******* TESTS ABANDONED ',
393 9988
FORMAT( a6, l2 )
394 9987
FORMAT( 1x, a6,
' WAS NOT TESTED' )
395 9986
FORMAT( /
' END OF TESTS' )
396 9985
FORMAT( /
' ******* FATAL ERROR - TESTS ABANDONED *******' )
397 9984
FORMAT(
' ERROR-EXITS WILL NOT BE TESTED' )
402 SUBROUTINE cchk1( SNAME, EPS, THRESH, NOUT, NTRA, TRACE, REWI,
403 $ FATAL, NIDIM, IDIM, NALF, ALF, NBET, BET, NMAX,
404 $ A, AA, AS, B, BB, BS, C, CC, CS, CT, G )
418 PARAMETER ( ZERO = ( 0.0, 0.0 ) )
420 parameter( rzero = 0.0 )
423 INTEGER NALF, NBET, NIDIM, NMAX, NOUT, NTRA
424 LOGICAL FATAL, REWI, TRACE
427 COMPLEX A( NMAX, NMAX ), AA( NMAX*NMAX ), ALF( NALF ),
428 $ AS( NMAX*NMAX ), B( NMAX, NMAX ),
429 $ bb( nmax*nmax ), bet( nbet ), bs( nmax*nmax ),
430 $ c( nmax, nmax ), cc( nmax*nmax ),
431 $ cs( nmax*nmax ), ct( nmax )
433 INTEGER IDIM( NIDIM )
435 COMPLEX ALPHA, ALS, BETA, BLS
437 INTEGER I, IA, IB, ICA, ICB, IK, IM, IN, K, KS, LAA,
438 $ lbb, lcc, lda, ldas, ldb, ldbs, ldc, ldcs, m,
439 $ ma, mb, ms, n, na, nargs, nb, nc, ns
440 LOGICAL NULL, RESET, SAME, TRANA, TRANB
441 CHARACTER*1 TRANAS, TRANBS, TRANSA, TRANSB
456 COMMON /infoc/infot, noutc, ok, lerr
479 null = n.LE.0.OR.m.LE.0
485 transa = ich( ica: ica )
486 trana = transa.EQ.
'T'.OR.transa.EQ.
'C'
506 CALL cmake(
'GE',
' ',
' ', ma, na, a, nmax, aa, lda,
510 transb = ich( icb: icb )
511 tranb = transb.EQ.
'T'.OR.transb.EQ.
'C'
531 CALL cmake(
'GE',
' ',
' ', mb, nb, b, nmax, bb,
542 CALL cmake(
'GE',
' ',
' ', m, n, c, nmax,
543 $ cc, ldc, reset, zero )
573 $
WRITE( ntra, fmt = 9995 )nc, sname,
574 $ transa, transb, m, n, k, alpha, lda, ldb,
578 CALL cgemm( transa, transb, m, n, k, alpha,
579 $ aa, lda, bb, ldb, beta, cc, ldc )
584 WRITE( nout, fmt = 9994 )
591 isame( 1 ) = transa.EQ.tranas
592 isame( 2 ) = transb.EQ.tranbs
596 isame( 6 ) = als.EQ.alpha
597 isame( 7 ) = lce( as, aa, laa )
598 isame( 8 ) = ldas.EQ.lda
599 isame( 9 ) = lce( bs, bb, lbb )
600 isame( 10 ) = ldbs.EQ.ldb
601 isame( 11 ) = bls.EQ.beta
603 isame( 12 ) = lce( cs, cc, lcc )
605 isame( 12 ) = lceres(
'GE',
' ', m, n, cs,
608 isame( 13 ) = ldcs.EQ.ldc
615 same = same.AND.isame( i )
616 IF( .NOT.isame( i ) )
617 $
WRITE( nout, fmt = 9998 )i
628 CALL cmmch( transa, transb, m, n, k,
629 $ alpha, a, nmax, b, nmax, beta,
630 $ c, nmax, ct, g, cc, ldc, eps,
631 $ err, fatal, nout, .true. )
632 errmax = max( errmax, err )
655 IF( errmax.LT.thresh )
THEN
656 WRITE( nout, fmt = 9999 )sname, nc
658 WRITE( nout, fmt = 9997 )sname, nc, errmax
663 WRITE( nout, fmt = 9996 )sname
664 WRITE( nout, fmt = 9995 )nc, sname, transa, transb, m, n, k,
665 $ alpha, lda, ldb, beta, ldc
670 9999
FORMAT(
' ', a6,
' PASSED THE COMPUTATIONAL TESTS (', i6,
' CALL',
672 9998
FORMAT(
' ******* FATAL ERROR - PARAMETER NUMBER ', i2,
' WAS CH',
673 $
'ANGED INCORRECTLY *******' )
674 9997
FORMAT(
' ', a6,
' COMPLETED THE COMPUTATIONAL TESTS (', i6,
' C',
675 $
'ALLS)', /
' ******* BUT WITH MAXIMUM TEST RATIO', f8.2,
676 $
' - SUSPECT *******' )
677 9996
FORMAT(
' ******* ', a6,
' FAILED ON CALL NUMBER:' )
678 9995
FORMAT( 1x, i6,
': ', a6,
'(''', a1,
''',''', a1,
''',',
679 $ 3( i3,
',' ),
'(', f4.1,
',', f4.1,
'), A,', i3,
', B,', i3,
680 $
',(', f4.1,
',', f4.1,
'), C,', i3,
').' )
681 9994
FORMAT(
' ******* FATAL ERROR - ERROR-EXIT TAKEN ON VALID CALL *',
687 SUBROUTINE cchk2( SNAME, EPS, THRESH, NOUT, NTRA, TRACE, REWI,
688 $ FATAL, NIDIM, IDIM, NALF, ALF, NBET, BET, NMAX,
689 $ A, AA, AS, B, BB, BS, C, CC, CS, CT, G )
703 PARAMETER ( ZERO = ( 0.0, 0.0 ) )
705 parameter( rzero = 0.0 )
708 INTEGER NALF, NBET, NIDIM, NMAX, NOUT, NTRA
709 LOGICAL FATAL, REWI, TRACE
712 COMPLEX A( NMAX, NMAX ), AA( NMAX*NMAX ), ALF( NALF ),
713 $ as( nmax*nmax ), b( nmax, nmax ),
714 $ bb( nmax*nmax ), bet( nbet ), bs( nmax*nmax ),
715 $ c( nmax, nmax ), cc( nmax*nmax ),
716 $ cs( nmax*nmax ), ct( nmax )
718 INTEGER IDIM( NIDIM )
720 COMPLEX ALPHA, ALS, BETA, BLS
722 INTEGER I, IA, IB, ICS, ICU, IM, IN, LAA, LBB, LCC,
723 $ LDA, LDAS, LDB, LDBS, LDC, LDCS, M, MS, N, NA,
725 LOGICAL CONJ, LEFT, NULL, RESET, SAME
726 CHARACTER*1 SIDE, SIDES, UPLO, UPLOS
727 CHARACTER*2 ICHS, ICHU
741 COMMON /infoc/infot, noutc, ok, lerr
743 DATA ichs/
'LR'/, ichu/
'UL'/
745 conj = sname( 2: 3 ).EQ.
'HE'
765 null = n.LE.0.OR.m.LE.0
777 CALL cmake(
'GE',
' ',
' ', m, n, b, nmax, bb, ldb, reset,
781 side = ichs( ics: ics )
799 uplo = ichu( icu: icu )
803 CALL cmake( sname( 2: 3 ), uplo,
' ', na, na, a, nmax,
804 $ aa, lda, reset, zero )
814 CALL cmake(
'GE',
' ',
' ', m, n, c, nmax, cc,
844 $
WRITE( ntra, fmt = 9995 )nc, sname, side,
845 $ uplo, m, n, alpha, lda, ldb, beta, ldc
849 CALL chemm( side, uplo, m, n, alpha, aa, lda,
850 $ bb, ldb, beta, cc, ldc )
852 CALL csymm( side, uplo, m, n, alpha, aa, lda,
853 $ bb, ldb, beta, cc, ldc )
859 WRITE( nout, fmt = 9994 )
866 isame( 1 ) = sides.EQ.side
867 isame( 2 ) = uplos.EQ.uplo
870 isame( 5 ) = als.EQ.alpha
871 isame( 6 ) = lce( as, aa, laa )
872 isame( 7 ) = ldas.EQ.lda
873 isame( 8 ) = lce( bs, bb, lbb )
874 isame( 9 ) = ldbs.EQ.ldb
875 isame( 10 ) = bls.EQ.beta
877 isame( 11 ) = lce( cs, cc, lcc )
879 isame( 11 ) = lceres(
'GE',
' ', m, n, cs,
882 isame( 12 ) = ldcs.EQ.ldc
889 same = same.AND.isame( i )
890 IF( .NOT.isame( i ) )
891 $
WRITE( nout, fmt = 9998 )i
903 CALL cmmch(
'N',
'N', m, n, m, alpha, a,
904 $ nmax, b, nmax, beta, c, nmax,
905 $ ct, g, cc, ldc, eps, err,
906 $ fatal, nout, .true. )
908 CALL cmmch(
'N',
'N', m, n, n, alpha, b,
909 $ nmax, a, nmax, beta, c, nmax,
910 $ ct, g, cc, ldc, eps, err,
911 $ fatal, nout, .true. )
913 errmax = max( errmax, err )
934 IF( errmax.LT.thresh )
THEN
935 WRITE( nout, fmt = 9999 )sname, nc
937 WRITE( nout, fmt = 9997 )sname, nc, errmax
942 WRITE( nout, fmt = 9996 )sname
943 WRITE( nout, fmt = 9995 )nc, sname, side, uplo, m, n, alpha, lda,
949 9999
FORMAT(
' ', a6,
' PASSED THE COMPUTATIONAL TESTS (', i6,
' CALL',
951 9998
FORMAT(
' ******* FATAL ERROR - PARAMETER NUMBER ', i2,
' WAS CH',
952 $
'ANGED INCORRECTLY *******' )
953 9997
FORMAT(
' ', a6,
' COMPLETED THE COMPUTATIONAL TESTS (', i6,
' C',
954 $
'ALLS)', /
' ******* BUT WITH MAXIMUM TEST RATIO', f8.2,
955 $
' - SUSPECT *******' )
956 9996
FORMAT(
' ******* ', a6,
' FAILED ON CALL NUMBER:' )
957 9995
FORMAT( 1x, i6,
': ', a6,
'(', 2(
'''', a1,
''',' ), 2( i3,
',' ),
958 $
'(', f4.1,
',', f4.1,
'), A,', i3,
', B,', i3,
',(', f4.1,
959 $
',', f4.1,
'), C,', i3,
') .' )
960 9994
FORMAT(
' ******* FATAL ERROR - ERROR-EXIT TAKEN ON VALID CALL *',
966 SUBROUTINE cchk3( SNAME, EPS, THRESH, NOUT, NTRA, TRACE, REWI,
967 $ FATAL, NIDIM, IDIM, NALF, ALF, NMAX, A, AA, AS,
968 $ B, BB, BS, CT, G, C )
982 PARAMETER ( ZERO = ( 0.0, 0.0 ), one = ( 1.0, 0.0 ) )
984 PARAMETER ( RZERO = 0.0 )
987 INTEGER NALF, NIDIM, NMAX, NOUT, NTRA
988 LOGICAL FATAL, REWI, TRACE
991 COMPLEX A( NMAX, NMAX ), AA( NMAX*NMAX ), ALF( NALF ),
992 $ as( nmax*nmax ), b( nmax, nmax ),
993 $ bb( nmax*nmax ), bs( nmax*nmax ),
994 $ c( nmax, nmax ), ct( nmax )
996 INTEGER IDIM( NIDIM )
1000 INTEGER I, IA, ICD, ICS, ICT, ICU, IM, IN, J, LAA, LBB,
1001 $ lda, ldas, ldb, ldbs, m, ms, n, na, nargs, nc,
1003 LOGICAL LEFT, NULL, RESET, SAME
1004 CHARACTER*1 DIAG, DIAGS, SIDE, SIDES, TRANAS, TRANSA, UPLO,
1006 CHARACTER*2 ICHD, ICHS, ICHU
1012 EXTERNAL lce, lceres
1018 INTEGER INFOT, NOUTC
1021 COMMON /infoc/infot, noutc, ok, lerr
1023 DATA ichu/
'UL'/, icht/
'NTC'/, ichd/
'UN'/, ichs/
'LR'/
1037 DO 140 im = 1, nidim
1040 DO 130 in = 1, nidim
1050 null = m.LE.0.OR.n.LE.0
1053 side = ichs( ics: ics )
1070 uplo = ichu( icu: icu )
1073 transa = icht( ict: ict )
1076 diag = ichd( icd: icd )
1083 CALL cmake(
'TR', uplo, diag, na, na, a,
1084 $ nmax, aa, lda, reset, zero )
1088 CALL cmake(
'GE',
' ',
' ', m, n, b, nmax,
1089 $ bb, ldb, reset, zero )
1114 IF( sname( 4: 5 ).EQ.
'MM' )
THEN
1116 $
WRITE( ntra, fmt = 9995 )nc, sname,
1117 $ side, uplo, transa, diag, m, n, alpha,
1121 CALL ctrmm( side, uplo, transa, diag, m,
1122 $ n, alpha, aa, lda, bb, ldb )
1123 ELSE IF( sname( 4: 5 ).EQ.
'SM' )
THEN
1125 $
WRITE( ntra, fmt = 9995 )nc, sname,
1126 $ side, uplo, transa, diag, m, n, alpha,
1130 CALL ctrsm( side, uplo, transa, diag, m,
1131 $ n, alpha, aa, lda, bb, ldb )
1137 WRITE( nout, fmt = 9994 )
1144 isame( 1 ) = sides.EQ.side
1145 isame( 2 ) = uplos.EQ.uplo
1146 isame( 3 ) = tranas.EQ.transa
1147 isame( 4 ) = diags.EQ.diag
1148 isame( 5 ) = ms.EQ.m
1149 isame( 6 ) = ns.EQ.n
1150 isame( 7 ) = als.EQ.alpha
1151 isame( 8 ) = lce( as, aa, laa )
1152 isame( 9 ) = ldas.EQ.lda
1154 isame( 10 ) = lce( bs, bb, lbb )
1156 isame( 10 ) = lceres(
'GE',
' ', m, n, bs,
1159 isame( 11 ) = ldbs.EQ.ldb
1166 same = same.AND.isame( i )
1167 IF( .NOT.isame( i ) )
1168 $
WRITE( nout, fmt = 9998 )i
1176 IF( sname( 4: 5 ).EQ.
'MM' )
THEN
1181 CALL cmmch( transa,
'N', m, n, m,
1182 $ alpha, a, nmax, b, nmax,
1183 $ zero, c, nmax, ct, g,
1184 $ bb, ldb, eps, err,
1185 $ fatal, nout, .true. )
1187 CALL cmmch(
'N', transa, m, n, n,
1188 $ alpha, b, nmax, a, nmax,
1189 $ zero, c, nmax, ct, g,
1190 $ bb, ldb, eps, err,
1191 $ fatal, nout, .true. )
1193 ELSE IF( sname( 4: 5 ).EQ.
'SM' )
THEN
1200 c( i, j ) = bb( i + ( j - 1 )*
1202 bb( i + ( j - 1 )*ldb ) = alpha*
1208 CALL cmmch( transa,
'N', m, n, m,
1209 $ one, a, nmax, c, nmax,
1210 $ zero, b, nmax, ct, g,
1211 $ bb, ldb, eps, err,
1212 $ fatal, nout, .false. )
1214 CALL cmmch(
'N', transa, m, n, n,
1215 $ one, c, nmax, a, nmax,
1216 $ zero, b, nmax, ct, g,
1217 $ bb, ldb, eps, err,
1218 $ fatal, nout, .false. )
1221 errmax = max( errmax, err )
1244 IF( errmax.LT.thresh )
THEN
1245 WRITE( nout, fmt = 9999 )sname, nc
1247 WRITE( nout, fmt = 9997 )sname, nc, errmax
1252 WRITE( nout, fmt = 9996 )sname
1253 WRITE( nout, fmt = 9995 )nc, sname, side, uplo, transa, diag, m,
1254 $ n, alpha, lda, ldb
1259 9999
FORMAT(
' ', a6,
' PASSED THE COMPUTATIONAL TESTS (', i6,
' CALL',
1261 9998
FORMAT(
' ******* FATAL ERROR - PARAMETER NUMBER ', i2,
' WAS CH',
1262 $
'ANGED INCORRECTLY *******' )
1263 9997
FORMAT(
' ', a6,
' COMPLETED THE COMPUTATIONAL TESTS (', i6,
' C',
1264 $
'ALLS)', /
' ******* BUT WITH MAXIMUM TEST RATIO', f8.2,
1265 $
' - SUSPECT *******' )
1266 9996
FORMAT(
' ******* ', a6,
' FAILED ON CALL NUMBER:' )
1267 9995
FORMAT( 1x, i6,
': ', a6,
'(', 4(
'''', a1,
''',' ), 2( i3,
',' ),
1268 $
'(', f4.1,
',', f4.1,
'), A,', i3,
', B,', i3,
') ',
1270 9994
FORMAT(
' ******* FATAL ERROR - ERROR-EXIT TAKEN ON VALID CALL *',
1276 SUBROUTINE cchk4( SNAME, EPS, THRESH, NOUT, NTRA, TRACE, REWI,
1277 $ FATAL, NIDIM, IDIM, NALF, ALF, NBET, BET, NMAX,
1278 $ A, AA, AS, B, BB, BS, C, CC, CS, CT, G )
1292 PARAMETER ( ZERO = ( 0.0, 0.0 ) )
1294 parameter( rone = 1.0, rzero = 0.0 )
1297 INTEGER NALF, NBET, NIDIM, NMAX, NOUT, NTRA
1298 LOGICAL FATAL, REWI, TRACE
1301 COMPLEX A( NMAX, NMAX ), AA( NMAX*NMAX ), ALF( NALF ),
1302 $ as( nmax*nmax ), b( nmax, nmax ),
1303 $ bb( nmax*nmax ), bet( nbet ), bs( nmax*nmax ),
1304 $ c( nmax, nmax ), cc( nmax*nmax ),
1305 $ cs( nmax*nmax ), ct( nmax )
1307 INTEGER IDIM( NIDIM )
1309 COMPLEX ALPHA, ALS, BETA, BETS
1310 REAL ERR, ERRMAX, RALPHA, RALS, RBETA, RBETS
1311 INTEGER I, IA, IB, ICT, ICU, IK, IN, J, JC, JJ, K, KS,
1312 $ LAA, LCC, LDA, LDAS, LDC, LDCS, LJ, MA, N, NA,
1314 LOGICAL CONJ, NULL, RESET, SAME, TRAN, UPPER
1315 CHARACTER*1 TRANS, TRANSS, TRANST, UPLO, UPLOS
1316 CHARACTER*2 ICHT, ICHU
1321 EXTERNAL LCE, LCERES
1325 INTRINSIC cmplx, max, real
1327 INTEGER INFOT, NOUTC
1330 COMMON /infoc/infot, noutc, ok, lerr
1332 DATA icht/
'NC'/, ichu/
'UL'/
1334 conj = sname( 2: 3 ).EQ.
'HE'
1341 DO 100 in = 1, nidim
1356 trans = icht( ict: ict )
1358 IF( tran.AND..NOT.conj )
1378 CALL cmake(
'GE',
' ',
' ', ma, na, a, nmax, aa, lda,
1382 uplo = ichu( icu: icu )
1388 ralpha = real( alpha )
1389 alpha = cmplx( ralpha, rzero )
1395 rbeta = real( beta )
1396 beta = cmplx( rbeta, rzero )
1400 $ null = null.OR.( ( k.LE.0.OR.ralpha.EQ.
1401 $ rzero ).AND.rbeta.EQ.rone )
1405 CALL cmake( sname( 2: 3 ), uplo,
' ', n, n, c,
1406 $ nmax, cc, ldc, reset, zero )
1439 $
WRITE( ntra, fmt = 9994 )nc, sname, uplo,
1440 $ trans, n, k, ralpha, lda, rbeta, ldc
1443 CALL cherk( uplo, trans, n, k, ralpha, aa,
1444 $ lda, rbeta, cc, ldc )
1447 $
WRITE( ntra, fmt = 9993 )nc, sname, uplo,
1448 $ trans, n, k, alpha, lda, beta, ldc
1451 CALL csyrk( uplo, trans, n, k, alpha, aa,
1452 $ lda, beta, cc, ldc )
1458 WRITE( nout, fmt = 9992 )
1465 isame( 1 ) = uplos.EQ.uplo
1466 isame( 2 ) = transs.EQ.trans
1467 isame( 3 ) = ns.EQ.n
1468 isame( 4 ) = ks.EQ.k
1470 isame( 5 ) = rals.EQ.ralpha
1472 isame( 5 ) = als.EQ.alpha
1474 isame( 6 ) = lce( as, aa, laa )
1475 isame( 7 ) = ldas.EQ.lda
1477 isame( 8 ) = rbets.EQ.rbeta
1479 isame( 8 ) = bets.EQ.beta
1482 isame( 9 ) = lce( cs, cc, lcc )
1484 isame( 9 ) = lceres( sname( 2: 3 ), uplo, n,
1487 isame( 10 ) = ldcs.EQ.ldc
1494 same = same.AND.isame( i )
1495 IF( .NOT.isame( i ) )
1496 $
WRITE( nout, fmt = 9998 )i
1522 CALL cmmch( transt,
'N', lj, 1, k,
1523 $ alpha, a( 1, jj ), nmax,
1524 $ a( 1, j ), nmax, beta,
1525 $ c( jj, j ), nmax, ct, g,
1526 $ cc( jc ), ldc, eps, err,
1527 $ fatal, nout, .true. )
1529 CALL cmmch(
'N', transt, lj, 1, k,
1530 $ alpha, a( jj, 1 ), nmax,
1531 $ a( j, 1 ), nmax, beta,
1532 $ c( jj, j ), nmax, ct, g,
1533 $ cc( jc ), ldc, eps, err,
1534 $ fatal, nout, .true. )
1541 errmax = max( errmax, err )
1563 IF( errmax.LT.thresh )
THEN
1564 WRITE( nout, fmt = 9999 )sname, nc
1566 WRITE( nout, fmt = 9997 )sname, nc, errmax
1572 $
WRITE( nout, fmt = 9995 )j
1575 WRITE( nout, fmt = 9996 )sname
1577 WRITE( nout, fmt = 9994 )nc, sname, uplo, trans, n, k, ralpha,
1580 WRITE( nout, fmt = 9993 )nc, sname, uplo, trans, n, k, alpha,
1587 9999
FORMAT(
' ', a6,
' PASSED THE COMPUTATIONAL TESTS (', i6,
' CALL',
1589 9998
FORMAT(
' ******* FATAL ERROR - PARAMETER NUMBER ', i2,
' WAS CH',
1590 $
'ANGED INCORRECTLY *******' )
1591 9997
FORMAT(
' ', a6,
' COMPLETED THE COMPUTATIONAL TESTS (', i6,
' C',
1592 $
'ALLS)', /
' ******* BUT WITH MAXIMUM TEST RATIO', f8.2,
1593 $
' - SUSPECT *******' )
1594 9996
FORMAT(
' ******* ', a6,
' FAILED ON CALL NUMBER:' )
1595 9995
FORMAT(
' THESE ARE THE RESULTS FOR COLUMN ', i3 )
1596 9994
FORMAT( 1x, i6,
': ', a6,
'(', 2(
'''', a1,
''',' ), 2( i3,
',' ),
1597 $ f4.1,
', A,', i3,
',', f4.1,
', C,', i3,
') ',
1599 9993
FORMAT( 1x, i6,
': ', a6,
'(', 2(
'''', a1,
''',' ), 2( i3,
',' ),
1600 $
'(', f4.1,
',', f4.1,
') , A,', i3,
',(', f4.1,
',', f4.1,
1601 $
'), C,', i3,
') .' )
1602 9992
FORMAT(
' ******* FATAL ERROR - ERROR-EXIT TAKEN ON VALID CALL *',
1608 SUBROUTINE cchk5( SNAME, EPS, THRESH, NOUT, NTRA, TRACE, REWI,
1609 $ FATAL, NIDIM, IDIM, NALF, ALF, NBET, BET, NMAX,
1610 $ AB, AA, AS, BB, BS, C, CC, CS, CT, G, W )
1624 PARAMETER ( ZERO = ( 0.0, 0.0 ), one = ( 1.0, 0.0 ) )
1626 PARAMETER ( RONE = 1.0, rzero = 0.0 )
1629 INTEGER NALF, NBET, NIDIM, NMAX, NOUT, NTRA
1630 LOGICAL FATAL, REWI, TRACE
1633 COMPLEX AA( NMAX*NMAX ), AB( 2*NMAX*NMAX ),
1634 $ alf( nalf ), as( nmax*nmax ), bb( nmax*nmax ),
1635 $ bet( nbet ), bs( nmax*nmax ), c( nmax, nmax ),
1636 $ cc( nmax*nmax ), cs( nmax*nmax ), ct( nmax ),
1639 INTEGER IDIM( NIDIM )
1641 COMPLEX ALPHA, ALS, BETA, BETS
1642 REAL ERR, ERRMAX, RBETA, RBETS
1643 INTEGER I, IA, IB, ICT, ICU, IK, IN, J, JC, JJ, JJAB,
1644 $ K, KS, LAA, LBB, LCC, LDA, LDAS, LDB, LDBS,
1645 $ LDC, LDCS, LJ, MA, N, NA, NARGS, NC, NS
1646 LOGICAL CONJ, NULL, RESET, SAME, TRAN, UPPER
1647 CHARACTER*1 TRANS, TRANSS, TRANST, UPLO, UPLOS
1648 CHARACTER*2 ICHT, ICHU
1653 EXTERNAL lce, lceres
1657 INTRINSIC cmplx, conjg, max, real
1659 INTEGER INFOT, NOUTC
1662 COMMON /infoc/infot, noutc, ok, lerr
1664 DATA icht/
'NC'/, ichu/
'UL'/
1666 conj = sname( 2: 3 ).EQ.
'HE'
1673 DO 130 in = 1, nidim
1684 DO 120 ik = 1, nidim
1688 trans = icht( ict: ict )
1690 IF( tran.AND..NOT.conj )
1711 CALL cmake(
'GE',
' ',
' ', ma, na, ab, 2*nmax, aa,
1712 $ lda, reset, zero )
1714 CALL cmake(
'GE',
' ',
' ', ma, na, ab, nmax, aa, lda,
1723 CALL cmake(
'GE',
' ',
' ', ma, na, ab( k + 1 ),
1724 $ 2*nmax, bb, ldb, reset, zero )
1726 CALL cmake(
'GE',
' ',
' ', ma, na, ab( k*nmax + 1 ),
1727 $ nmax, bb, ldb, reset, zero )
1731 uplo = ichu( icu: icu )
1740 rbeta = real( beta )
1741 beta = cmplx( rbeta, rzero )
1745 $ null = null.OR.( ( k.LE.0.OR.alpha.EQ.
1746 $ zero ).AND.rbeta.EQ.rone )
1750 CALL cmake( sname( 2: 3 ), uplo,
' ', n, n, c,
1751 $ nmax, cc, ldc, reset, zero )
1784 $
WRITE( ntra, fmt = 9994 )nc, sname, uplo,
1785 $ trans, n, k, alpha, lda, ldb, rbeta, ldc
1788 CALL cher2k( uplo, trans, n, k, alpha, aa,
1789 $ lda, bb, ldb, rbeta, cc, ldc )
1792 $
WRITE( ntra, fmt = 9993 )nc, sname, uplo,
1793 $ trans, n, k, alpha, lda, ldb, beta, ldc
1796 CALL csyr2k( uplo, trans, n, k, alpha, aa,
1797 $ lda, bb, ldb, beta, cc, ldc )
1803 WRITE( nout, fmt = 9992 )
1810 isame( 1 ) = uplos.EQ.uplo
1811 isame( 2 ) = transs.EQ.trans
1812 isame( 3 ) = ns.EQ.n
1813 isame( 4 ) = ks.EQ.k
1814 isame( 5 ) = als.EQ.alpha
1815 isame( 6 ) = lce( as, aa, laa )
1816 isame( 7 ) = ldas.EQ.lda
1817 isame( 8 ) = lce( bs, bb, lbb )
1818 isame( 9 ) = ldbs.EQ.ldb
1820 isame( 10 ) = rbets.EQ.rbeta
1822 isame( 10 ) = bets.EQ.beta
1825 isame( 11 ) = lce( cs, cc, lcc )
1827 isame( 11 ) = lceres(
'HE', uplo, n, n, cs,
1830 isame( 12 ) = ldcs.EQ.ldc
1837 same = same.AND.isame( i )
1838 IF( .NOT.isame( i ) )
1839 $
WRITE( nout, fmt = 9998 )i
1867 w( i ) = alpha*ab( ( j - 1 )*2*
1870 w( k + i ) = conjg( alpha )*
1879 CALL cmmch( transt,
'N', lj, 1, 2*k,
1880 $ one, ab( jjab ), 2*nmax, w,
1881 $ 2*nmax, beta, c( jj, j ),
1882 $ nmax, ct, g, cc( jc ), ldc,
1883 $ eps, err, fatal, nout,
1888 w( i ) = alpha*conjg( ab( ( k +
1889 $ i - 1 )*nmax + j ) )
1890 w( k + i ) = conjg( alpha*
1891 $ ab( ( i - 1 )*nmax +
1894 w( i ) = alpha*ab( ( k + i - 1 )*
1897 $ ab( ( i - 1 )*nmax +
1901 CALL cmmch(
'N',
'N', lj, 1, 2*k, one,
1902 $ ab( jj ), nmax, w, 2*nmax,
1903 $ beta, c( jj, j ), nmax, ct,
1904 $ g, cc( jc ), ldc, eps, err,
1905 $ fatal, nout, .true. )
1912 $ jjab = jjab + 2*nmax
1914 errmax = max( errmax, err )
1936 IF( errmax.LT.thresh )
THEN
1937 WRITE( nout, fmt = 9999 )sname, nc
1939 WRITE( nout, fmt = 9997 )sname, nc, errmax
1945 $
WRITE( nout, fmt = 9995 )j
1948 WRITE( nout, fmt = 9996 )sname
1950 WRITE( nout, fmt = 9994 )nc, sname, uplo, trans, n, k, alpha,
1951 $ lda, ldb, rbeta, ldc
1953 WRITE( nout, fmt = 9993 )nc, sname, uplo, trans, n, k, alpha,
1954 $ lda, ldb, beta, ldc
1960 9999
FORMAT(
' ', a6,
' PASSED THE COMPUTATIONAL TESTS (', i6,
' CALL',
1962 9998
FORMAT(
' ******* FATAL ERROR - PARAMETER NUMBER ', i2,
' WAS CH',
1963 $
'ANGED INCORRECTLY *******' )
1964 9997
FORMAT(
' ', a6,
' COMPLETED THE COMPUTATIONAL TESTS (', i6,
' C',
1965 $
'ALLS)', /
' ******* BUT WITH MAXIMUM TEST RATIO', f8.2,
1966 $
' - SUSPECT *******' )
1967 9996
FORMAT(
' ******* ', a6,
' FAILED ON CALL NUMBER:' )
1968 9995
FORMAT(
' THESE ARE THE RESULTS FOR COLUMN ', i3 )
1969 9994
FORMAT( 1x, i6,
': ', a6,
'(', 2(
'''', a1,
''',' ), 2( i3,
',' ),
1970 $
'(', f4.1,
',', f4.1,
'), A,', i3,
', B,', i3,
',', f4.1,
1971 $
', C,', i3,
') .' )
1972 9993
FORMAT( 1x, i6,
': ', a6,
'(', 2(
'''', a1,
''',' ), 2( i3,
',' ),
1973 $
'(', f4.1,
',', f4.1,
'), A,', i3,
', B,', i3,
',(', f4.1,
1974 $
',', f4.1,
'), C,', i3,
') .' )
1975 9992
FORMAT(
' ******* FATAL ERROR - ERROR-EXIT TAKEN ON VALID CALL *',
2003 INTEGER INFOT, NOUTC
2007 PARAMETER ( ONE = 1.0e0, two = 2.0e0 )
2012 COMPLEX A( 2, 1 ), B( 2, 1 ), C( 2, 1 )
2017 COMMON /infoc/infot, noutc, ok, lerr
2028 alpha = cmplx( one, -one )
2029 beta = cmplx( two, -two )
2033 GO TO ( 10, 20, 30, 40, 50, 60, 70, 80,
2036 CALL cgemm(
'/',
'N', 0, 0, 0, alpha, a, 1, b, 1, beta, c, 1 )
2037 CALL chkxer( srnamt, infot, nout, lerr, ok )
2039 CALL cgemm(
'/',
'C', 0, 0, 0, alpha, a, 1, b, 1, beta, c, 1 )
2040 CALL chkxer( srnamt, infot, nout, lerr, ok )
2042 CALL cgemm(
'/',
'T', 0, 0, 0, alpha, a, 1, b, 1, beta, c, 1 )
2043 CALL chkxer( srnamt, infot, nout, lerr, ok )
2045 CALL cgemm(
'N',
'/', 0, 0, 0, alpha, a, 1, b, 1, beta, c, 1 )
2046 CALL chkxer( srnamt, infot, nout, lerr, ok )
2048 CALL cgemm(
'C',
'/', 0, 0, 0, alpha, a, 1, b, 1, beta, c, 1 )
2049 CALL chkxer( srnamt, infot, nout, lerr, ok )
2051 CALL cgemm(
'T',
'/', 0, 0, 0, alpha, a, 1, b, 1, beta, c, 1 )
2052 CALL chkxer( srnamt, infot, nout, lerr, ok )
2054 CALL cgemm(
'N',
'N', -1, 0, 0, alpha, a, 1, b, 1, beta, c, 1 )
2055 CALL chkxer( srnamt, infot, nout, lerr, ok )
2057 CALL cgemm(
'N',
'C', -1, 0, 0, alpha, a, 1, b, 1, beta, c, 1 )
2058 CALL chkxer( srnamt, infot, nout, lerr, ok )
2060 CALL cgemm(
'N',
'T', -1, 0, 0, alpha, a, 1, b, 1, beta, c, 1 )
2061 CALL chkxer( srnamt, infot, nout, lerr, ok )
2063 CALL cgemm(
'C',
'N', -1, 0, 0, alpha, a, 1, b, 1, beta, c, 1 )
2064 CALL chkxer( srnamt, infot, nout, lerr, ok )
2066 CALL cgemm(
'C',
'C', -1, 0, 0, alpha, a, 1, b, 1, beta, c, 1 )
2067 CALL chkxer( srnamt, infot, nout, lerr, ok )
2069 CALL cgemm(
'C',
'T', -1, 0, 0, alpha, a, 1, b, 1, beta, c, 1 )
2070 CALL chkxer( srnamt, infot, nout, lerr, ok )
2072 CALL cgemm(
'T',
'N', -1, 0, 0, alpha, a, 1, b, 1, beta, c, 1 )
2073 CALL chkxer( srnamt, infot, nout, lerr, ok )
2075 CALL cgemm(
'T',
'C', -1, 0, 0, alpha, a, 1, b, 1, beta, c, 1 )
2076 CALL chkxer( srnamt, infot, nout, lerr, ok )
2078 CALL cgemm(
'T',
'T', -1, 0, 0, alpha, a, 1, b, 1, beta, c, 1 )
2079 CALL chkxer( srnamt, infot, nout, lerr, ok )
2081 CALL cgemm(
'N',
'N', 0, -1, 0, alpha, a, 1, b, 1, beta, c, 1 )
2082 CALL chkxer( srnamt, infot, nout, lerr, ok )
2084 CALL cgemm(
'N',
'C', 0, -1, 0, alpha, a, 1, b, 1, beta, c, 1 )
2085 CALL chkxer( srnamt, infot, nout, lerr, ok )
2087 CALL cgemm(
'N',
'T', 0, -1, 0, alpha, a, 1, b, 1, beta, c, 1 )
2088 CALL chkxer( srnamt, infot, nout, lerr, ok )
2090 CALL cgemm(
'C',
'N', 0, -1, 0, alpha, a, 1, b, 1, beta, c, 1 )
2091 CALL chkxer( srnamt, infot, nout, lerr, ok )
2093 CALL cgemm(
'C',
'C', 0, -1, 0, alpha, a, 1, b, 1, beta, c, 1 )
2094 CALL chkxer( srnamt, infot, nout, lerr, ok )
2096 CALL cgemm(
'C',
'T', 0, -1, 0, alpha, a, 1, b, 1, beta, c, 1 )
2097 CALL chkxer( srnamt, infot, nout, lerr, ok )
2099 CALL cgemm(
'T',
'N', 0, -1, 0, alpha, a, 1, b, 1, beta, c, 1 )
2100 CALL chkxer( srnamt, infot, nout, lerr, ok )
2102 CALL cgemm(
'T',
'C', 0, -1, 0, alpha, a, 1, b, 1, beta, c, 1 )
2103 CALL chkxer( srnamt, infot, nout, lerr, ok )
2105 CALL cgemm(
'T',
'T', 0, -1, 0, alpha, a, 1, b, 1, beta, c, 1 )
2106 CALL chkxer( srnamt, infot, nout, lerr, ok )
2108 CALL cgemm(
'N',
'N', 0, 0, -1, alpha, a, 1, b, 1, beta, c, 1 )
2109 CALL chkxer( srnamt, infot, nout, lerr, ok )
2111 CALL cgemm(
'N',
'C', 0, 0, -1, alpha, a, 1, b, 1, beta, c, 1 )
2112 CALL chkxer( srnamt, infot, nout, lerr, ok )
2114 CALL cgemm(
'N',
'T', 0, 0, -1, alpha, a, 1, b, 1, beta, c, 1 )
2115 CALL chkxer( srnamt, infot, nout, lerr, ok )
2117 CALL cgemm(
'C',
'N', 0, 0, -1, alpha, a, 1, b, 1, beta, c, 1 )
2118 CALL chkxer( srnamt, infot, nout, lerr, ok )
2120 CALL cgemm(
'C',
'C', 0, 0, -1, alpha, a, 1, b, 1, beta, c, 1 )
2121 CALL chkxer( srnamt, infot, nout, lerr, ok )
2123 CALL cgemm(
'C',
'T', 0, 0, -1, alpha, a, 1, b, 1, beta, c, 1 )
2124 CALL chkxer( srnamt, infot, nout, lerr, ok )
2126 CALL cgemm(
'T',
'N', 0, 0, -1, alpha, a, 1, b, 1, beta, c, 1 )
2127 CALL chkxer( srnamt, infot, nout, lerr, ok )
2129 CALL cgemm(
'T',
'C', 0, 0, -1, alpha, a, 1, b, 1, beta, c, 1 )
2130 CALL chkxer( srnamt, infot, nout, lerr, ok )
2132 CALL cgemm(
'T',
'T', 0, 0, -1, alpha, a, 1, b, 1, beta, c, 1 )
2133 CALL chkxer( srnamt, infot, nout, lerr, ok )
2135 CALL cgemm(
'N',
'N', 2, 0, 0, alpha, a, 1, b, 1, beta, c, 2 )
2136 CALL chkxer( srnamt, infot, nout, lerr, ok )
2138 CALL cgemm(
'N',
'C', 2, 0, 0, alpha, a, 1, b, 1, beta, c, 2 )
2139 CALL chkxer( srnamt, infot, nout, lerr, ok )
2141 CALL cgemm(
'N',
'T', 2, 0, 0, alpha, a, 1, b, 1, beta, c, 2 )
2142 CALL chkxer( srnamt, infot, nout, lerr, ok )
2144 CALL cgemm(
'C',
'N', 0, 0, 2, alpha, a, 1, b, 2, beta, c, 1 )
2145 CALL chkxer( srnamt, infot, nout, lerr, ok )
2147 CALL cgemm(
'C',
'C', 0, 0, 2, alpha, a, 1, b, 1, beta, c, 1 )
2148 CALL chkxer( srnamt, infot, nout, lerr, ok )
2150 CALL cgemm(
'C',
'T', 0, 0, 2, alpha, a, 1, b, 1, beta, c, 1 )
2151 CALL chkxer( srnamt, infot, nout, lerr, ok )
2153 CALL cgemm(
'T',
'N', 0, 0, 2, alpha, a, 1, b, 2, beta, c, 1 )
2154 CALL chkxer( srnamt, infot, nout, lerr, ok )
2156 CALL cgemm(
'T',
'C', 0, 0, 2, alpha, a, 1, b, 1, beta, c, 1 )
2157 CALL chkxer( srnamt, infot, nout, lerr, ok )
2159 CALL cgemm(
'T',
'T', 0, 0, 2, alpha, a, 1, b, 1, beta, c, 1 )
2160 CALL chkxer( srnamt, infot, nout, lerr, ok )
2162 CALL cgemm(
'N',
'N', 0, 0, 2, alpha, a, 1, b, 1, beta, c, 1 )
2163 CALL chkxer( srnamt, infot, nout, lerr, ok )
2165 CALL cgemm(
'C',
'N', 0, 0, 2, alpha, a, 2, b, 1, beta, c, 1 )
2166 CALL chkxer( srnamt, infot, nout, lerr, ok )
2168 CALL cgemm(
'T',
'N', 0, 0, 2, alpha, a, 2, b, 1, beta, c, 1 )
2169 CALL chkxer( srnamt, infot, nout, lerr, ok )
2171 CALL cgemm(
'N',
'C', 0, 2, 0, alpha, a, 1, b, 1, beta, c, 1 )
2172 CALL chkxer( srnamt, infot, nout, lerr, ok )
2174 CALL cgemm(
'C',
'C', 0, 2, 0, alpha, a, 1, b, 1, beta, c, 1 )
2175 CALL chkxer( srnamt, infot, nout, lerr, ok )
2177 CALL cgemm(
'T',
'C', 0, 2, 0, alpha, a, 1, b, 1, beta, c, 1 )
2178 CALL chkxer( srnamt, infot, nout, lerr, ok )
2180 CALL cgemm(
'N',
'T', 0, 2, 0, alpha, a, 1, b, 1, beta, c, 1 )
2181 CALL chkxer( srnamt, infot, nout, lerr, ok )
2183 CALL cgemm(
'C',
'T', 0, 2, 0, alpha, a, 1, b, 1, beta, c, 1 )
2184 CALL chkxer( srnamt, infot, nout, lerr, ok )
2186 CALL cgemm(
'T',
'T', 0, 2, 0, alpha, a, 1, b, 1, beta, c, 1 )
2187 CALL chkxer( srnamt, infot, nout, lerr, ok )
2189 CALL cgemm(
'N',
'N', 2, 0, 0, alpha, a, 2, b, 1, beta, c, 1 )
2190 CALL chkxer( srnamt, infot, nout, lerr, ok )
2192 CALL cgemm(
'N',
'C', 2, 0, 0, alpha, a, 2, b, 1, beta, c, 1 )
2193 CALL chkxer( srnamt, infot, nout, lerr, ok )
2195 CALL cgemm(
'N',
'T', 2, 0, 0, alpha, a, 2, b, 1, beta, c, 1 )
2196 CALL chkxer( srnamt, infot, nout, lerr, ok )
2198 CALL cgemm(
'C',
'N', 2, 0, 0, alpha, a, 1, b, 1, beta, c, 1 )
2199 CALL chkxer( srnamt, infot, nout, lerr, ok )
2201 CALL cgemm(
'C',
'C', 2, 0, 0, alpha, a, 1, b, 1, beta, c, 1 )
2202 CALL chkxer( srnamt, infot, nout, lerr, ok )
2204 CALL cgemm(
'C',
'T', 2, 0, 0, alpha, a, 1, b, 1, beta, c, 1 )
2205 CALL chkxer( srnamt, infot, nout, lerr, ok )
2207 CALL cgemm(
'T',
'N', 2, 0, 0, alpha, a, 1, b, 1, beta, c, 1 )
2208 CALL chkxer( srnamt, infot, nout, lerr, ok )
2210 CALL cgemm(
'T',
'C', 2, 0, 0, alpha, a, 1, b, 1, beta, c, 1 )
2211 CALL chkxer( srnamt, infot, nout, lerr, ok )
2213 CALL cgemm(
'T',
'T', 2, 0, 0, alpha, a, 1, b, 1, beta, c, 1 )
2214 CALL chkxer( srnamt, infot, nout, lerr, ok )
2217 CALL chemm(
'/',
'U', 0, 0, alpha, a, 1, b, 1, beta, c, 1 )
2218 CALL chkxer( srnamt, infot, nout, lerr, ok )
2220 CALL chemm(
'L',
'/', 0, 0, alpha, a, 1, b, 1, beta, c, 1 )
2221 CALL chkxer( srnamt, infot, nout, lerr, ok )
2223 CALL chemm(
'L',
'U', -1, 0, alpha, a, 1, b, 1, beta, c, 1 )
2224 CALL chkxer( srnamt, infot, nout, lerr, ok )
2226 CALL chemm(
'R',
'U', -1, 0, alpha, a, 1, b, 1, beta, c, 1 )
2227 CALL chkxer( srnamt, infot, nout, lerr, ok )
2229 CALL chemm(
'L',
'L', -1, 0, alpha, a, 1, b, 1, beta, c, 1 )
2230 CALL chkxer( srnamt, infot, nout, lerr, ok )
2232 CALL chemm(
'R',
'L', -1, 0, alpha, a, 1, b, 1, beta, c, 1 )
2233 CALL chkxer( srnamt, infot, nout, lerr, ok )
2235 CALL chemm(
'L',
'U', 0, -1, alpha, a, 1, b, 1, beta, c, 1 )
2236 CALL chkxer( srnamt, infot, nout, lerr, ok )
2238 CALL chemm(
'R',
'U', 0, -1, alpha, a, 1, b, 1, beta, c, 1 )
2239 CALL chkxer( srnamt, infot, nout, lerr, ok )
2241 CALL chemm(
'L',
'L', 0, -1, alpha, a, 1, b, 1, beta, c, 1 )
2242 CALL chkxer( srnamt, infot, nout, lerr, ok )
2244 CALL chemm(
'R',
'L', 0, -1, alpha, a, 1, b, 1, beta, c, 1 )
2245 CALL chkxer( srnamt, infot, nout, lerr, ok )
2247 CALL chemm(
'L',
'U', 2, 0, alpha, a, 1, b, 2, beta, c, 2 )
2248 CALL chkxer( srnamt, infot, nout, lerr, ok )
2250 CALL chemm(
'R',
'U', 0, 2, alpha, a, 1, b, 1, beta, c, 1 )
2251 CALL chkxer( srnamt, infot, nout, lerr, ok )
2253 CALL chemm(
'L',
'L', 2, 0, alpha, a, 1, b, 2, beta, c, 2 )
2254 CALL chkxer( srnamt, infot, nout, lerr, ok )
2256 CALL chemm(
'R',
'L', 0, 2, alpha, a, 1, b, 1, beta, c, 1 )
2257 CALL chkxer( srnamt, infot, nout, lerr, ok )
2259 CALL chemm(
'L',
'U', 2, 0, alpha, a, 2, b, 1, beta, c, 2 )
2260 CALL chkxer( srnamt, infot, nout, lerr, ok )
2262 CALL chemm(
'R',
'U', 2, 0, alpha, a, 1, b, 1, beta, c, 2 )
2263 CALL chkxer( srnamt, infot, nout, lerr, ok )
2265 CALL chemm(
'L',
'L', 2, 0, alpha, a, 2, b, 1, beta, c, 2 )
2266 CALL chkxer( srnamt, infot, nout, lerr, ok )
2268 CALL chemm(
'R',
'L', 2, 0, alpha, a, 1, b, 1, beta, c, 2 )
2269 CALL chkxer( srnamt, infot, nout, lerr, ok )
2271 CALL chemm(
'L',
'U', 2, 0, alpha, a, 2, b, 2, beta, c, 1 )
2272 CALL chkxer( srnamt, infot, nout, lerr, ok )
2274 CALL chemm(
'R',
'U', 2, 0, alpha, a, 1, b, 2, beta, c, 1 )
2275 CALL chkxer( srnamt, infot, nout, lerr, ok )
2277 CALL chemm(
'L',
'L', 2, 0, alpha, a, 2, b, 2, beta, c, 1 )
2278 CALL chkxer( srnamt, infot, nout, lerr, ok )
2280 CALL chemm(
'R',
'L', 2, 0, alpha, a, 1, b, 2, beta, c, 1 )
2281 CALL chkxer( srnamt, infot, nout, lerr, ok )
2284 CALL csymm(
'/',
'U', 0, 0, alpha, a, 1, b, 1, beta, c, 1 )
2285 CALL chkxer( srnamt, infot, nout, lerr, ok )
2287 CALL csymm(
'L',
'/', 0, 0, alpha, a, 1, b, 1, beta, c, 1 )
2288 CALL chkxer( srnamt, infot, nout, lerr, ok )
2290 CALL csymm(
'L',
'U', -1, 0, alpha, a, 1, b, 1, beta, c, 1 )
2291 CALL chkxer( srnamt, infot, nout, lerr, ok )
2293 CALL csymm(
'R',
'U', -1, 0, alpha, a, 1, b, 1, beta, c, 1 )
2294 CALL chkxer( srnamt, infot, nout, lerr, ok )
2296 CALL csymm(
'L',
'L', -1, 0, alpha, a, 1, b, 1, beta, c, 1 )
2297 CALL chkxer( srnamt, infot, nout, lerr, ok )
2299 CALL csymm(
'R',
'L', -1, 0, alpha, a, 1, b, 1, beta, c, 1 )
2300 CALL chkxer( srnamt, infot, nout, lerr, ok )
2302 CALL csymm(
'L',
'U', 0, -1, alpha, a, 1, b, 1, beta, c, 1 )
2303 CALL chkxer( srnamt, infot, nout, lerr, ok )
2305 CALL csymm(
'R',
'U', 0, -1, alpha, a, 1, b, 1, beta, c, 1 )
2306 CALL chkxer( srnamt, infot, nout, lerr, ok )
2308 CALL csymm(
'L',
'L', 0, -1, alpha, a, 1, b, 1, beta, c, 1 )
2309 CALL chkxer( srnamt, infot, nout, lerr, ok )
2311 CALL csymm(
'R',
'L', 0, -1, alpha, a, 1, b, 1, beta, c, 1 )
2312 CALL chkxer( srnamt, infot, nout, lerr, ok )
2314 CALL csymm(
'L',
'U', 2, 0, alpha, a, 1, b, 2, beta, c, 2 )
2315 CALL chkxer( srnamt, infot, nout, lerr, ok )
2317 CALL csymm(
'R',
'U', 0, 2, alpha, a, 1, b, 1, beta, c, 1 )
2318 CALL chkxer( srnamt, infot, nout, lerr, ok )
2320 CALL csymm(
'L',
'L', 2, 0, alpha, a, 1, b, 2, beta, c, 2 )
2321 CALL chkxer( srnamt, infot, nout, lerr, ok )
2323 CALL csymm(
'R',
'L', 0, 2, alpha, a, 1, b, 1, beta, c, 1 )
2324 CALL chkxer( srnamt, infot, nout, lerr, ok )
2326 CALL csymm(
'L',
'U', 2, 0, alpha, a, 2, b, 1, beta, c, 2 )
2327 CALL chkxer( srnamt, infot, nout, lerr, ok )
2329 CALL csymm(
'R',
'U', 2, 0, alpha, a, 1, b, 1, beta, c, 2 )
2330 CALL chkxer( srnamt, infot, nout, lerr, ok )
2332 CALL csymm(
'L',
'L', 2, 0, alpha, a, 2, b, 1, beta, c, 2 )
2333 CALL chkxer( srnamt, infot, nout, lerr, ok )
2335 CALL csymm(
'R',
'L', 2, 0, alpha, a, 1, b, 1, beta, c, 2 )
2336 CALL chkxer( srnamt, infot, nout, lerr, ok )
2338 CALL csymm(
'L',
'U', 2, 0, alpha, a, 2, b, 2, beta, c, 1 )
2339 CALL chkxer( srnamt, infot, nout, lerr, ok )
2341 CALL csymm(
'R',
'U', 2, 0, alpha, a, 1, b, 2, beta, c, 1 )
2342 CALL chkxer( srnamt, infot, nout, lerr, ok )
2344 CALL csymm(
'L',
'L', 2, 0, alpha, a, 2, b, 2, beta, c, 1 )
2345 CALL chkxer( srnamt, infot, nout, lerr, ok )
2347 CALL csymm(
'R',
'L', 2, 0, alpha, a, 1, b, 2, beta, c, 1 )
2348 CALL chkxer( srnamt, infot, nout, lerr, ok )
2351 CALL ctrmm(
'/',
'U',
'N',
'N', 0, 0, alpha, a, 1, b, 1 )
2352 CALL chkxer( srnamt, infot, nout, lerr, ok )
2354 CALL ctrmm(
'L',
'/',
'N',
'N', 0, 0, alpha, a, 1, b, 1 )
2355 CALL chkxer( srnamt, infot, nout, lerr, ok )
2357 CALL ctrmm(
'L',
'U',
'/',
'N', 0, 0, alpha, a, 1, b, 1 )
2358 CALL chkxer( srnamt, infot, nout, lerr, ok )
2360 CALL ctrmm(
'L',
'U',
'N',
'/', 0, 0, alpha, a, 1, b, 1 )
2361 CALL chkxer( srnamt, infot, nout, lerr, ok )
2363 CALL ctrmm(
'L',
'U',
'N',
'N', -1, 0, alpha, a, 1, b, 1 )
2364 CALL chkxer( srnamt, infot, nout, lerr, ok )
2366 CALL ctrmm(
'L',
'U',
'C',
'N', -1, 0, alpha, a, 1, b, 1 )
2367 CALL chkxer( srnamt, infot, nout, lerr, ok )
2369 CALL ctrmm(
'L',
'U',
'T',
'N', -1, 0, alpha, a, 1, b, 1 )
2370 CALL chkxer( srnamt, infot, nout, lerr, ok )
2372 CALL ctrmm(
'R',
'U',
'N',
'N', -1, 0, alpha, a, 1, b, 1 )
2373 CALL chkxer( srnamt, infot, nout, lerr, ok )
2375 CALL ctrmm(
'R',
'U',
'C',
'N', -1, 0, alpha, a, 1, b, 1 )
2376 CALL chkxer( srnamt, infot, nout, lerr, ok )
2378 CALL ctrmm(
'R',
'U',
'T',
'N', -1, 0, alpha, a, 1, b, 1 )
2379 CALL chkxer( srnamt, infot, nout, lerr, ok )
2381 CALL ctrmm(
'L',
'L',
'N',
'N', -1, 0, alpha, a, 1, b, 1 )
2382 CALL chkxer( srnamt, infot, nout, lerr, ok )
2384 CALL ctrmm(
'L',
'L',
'C',
'N', -1, 0, alpha, a, 1, b, 1 )
2385 CALL chkxer( srnamt, infot, nout, lerr, ok )
2387 CALL ctrmm(
'L',
'L',
'T',
'N', -1, 0, alpha, a, 1, b, 1 )
2388 CALL chkxer( srnamt, infot, nout, lerr, ok )
2390 CALL ctrmm(
'R',
'L',
'N',
'N', -1, 0, alpha, a, 1, b, 1 )
2391 CALL chkxer( srnamt, infot, nout, lerr, ok )
2393 CALL ctrmm(
'R',
'L',
'C',
'N', -1, 0, alpha, a, 1, b, 1 )
2394 CALL chkxer( srnamt, infot, nout, lerr, ok )
2396 CALL ctrmm(
'R',
'L',
'T',
'N', -1, 0, alpha, a, 1, b, 1 )
2397 CALL chkxer( srnamt, infot, nout, lerr, ok )
2399 CALL ctrmm(
'L',
'U',
'N',
'N', 0, -1, alpha, a, 1, b, 1 )
2400 CALL chkxer( srnamt, infot, nout, lerr, ok )
2402 CALL ctrmm(
'L',
'U',
'C',
'N', 0, -1, alpha, a, 1, b, 1 )
2403 CALL chkxer( srnamt, infot, nout, lerr, ok )
2405 CALL ctrmm(
'L',
'U',
'T',
'N', 0, -1, alpha, a, 1, b, 1 )
2406 CALL chkxer( srnamt, infot, nout, lerr, ok )
2408 CALL ctrmm(
'R',
'U',
'N',
'N', 0, -1, alpha, a, 1, b, 1 )
2409 CALL chkxer( srnamt, infot, nout, lerr, ok )
2411 CALL ctrmm(
'R',
'U',
'C',
'N', 0, -1, alpha, a, 1, b, 1 )
2412 CALL chkxer( srnamt, infot, nout, lerr, ok )
2414 CALL ctrmm(
'R',
'U',
'T',
'N', 0, -1, alpha, a, 1, b, 1 )
2415 CALL chkxer( srnamt, infot, nout, lerr, ok )
2417 CALL ctrmm(
'L',
'L',
'N',
'N', 0, -1, alpha, a, 1, b, 1 )
2418 CALL chkxer( srnamt, infot, nout, lerr, ok )
2420 CALL ctrmm(
'L',
'L',
'C',
'N', 0, -1, alpha, a, 1, b, 1 )
2421 CALL chkxer( srnamt, infot, nout, lerr, ok )
2423 CALL ctrmm(
'L',
'L',
'T',
'N', 0, -1, alpha, a, 1, b, 1 )
2424 CALL chkxer( srnamt, infot, nout, lerr, ok )
2426 CALL ctrmm(
'R',
'L',
'N',
'N', 0, -1, alpha, a, 1, b, 1 )
2427 CALL chkxer( srnamt, infot, nout, lerr, ok )
2429 CALL ctrmm(
'R',
'L',
'C',
'N', 0, -1, alpha, a, 1, b, 1 )
2430 CALL chkxer( srnamt, infot, nout, lerr, ok )
2432 CALL ctrmm(
'R',
'L',
'T',
'N', 0, -1, alpha, a, 1, b, 1 )
2433 CALL chkxer( srnamt, infot, nout, lerr, ok )
2435 CALL ctrmm(
'L',
'U',
'N',
'N', 2, 0, alpha, a, 1, b, 2 )
2436 CALL chkxer( srnamt, infot, nout, lerr, ok )
2438 CALL ctrmm(
'L',
'U',
'C',
'N', 2, 0, alpha, a, 1, b, 2 )
2439 CALL chkxer( srnamt, infot, nout, lerr, ok )
2441 CALL ctrmm(
'L',
'U',
'T',
'N', 2, 0, alpha, a, 1, b, 2 )
2442 CALL chkxer( srnamt, infot, nout, lerr, ok )
2444 CALL ctrmm(
'R',
'U',
'N',
'N', 0, 2, alpha, a, 1, b, 1 )
2445 CALL chkxer( srnamt, infot, nout, lerr, ok )
2447 CALL ctrmm(
'R',
'U',
'C',
'N', 0, 2, alpha, a, 1, b, 1 )
2448 CALL chkxer( srnamt, infot, nout, lerr, ok )
2450 CALL ctrmm(
'R',
'U',
'T',
'N', 0, 2, alpha, a, 1, b, 1 )
2451 CALL chkxer( srnamt, infot, nout, lerr, ok )
2453 CALL ctrmm(
'L',
'L',
'N',
'N', 2, 0, alpha, a, 1, b, 2 )
2454 CALL chkxer( srnamt, infot, nout, lerr, ok )
2456 CALL ctrmm(
'L',
'L',
'C',
'N', 2, 0, alpha, a, 1, b, 2 )
2457 CALL chkxer( srnamt, infot, nout, lerr, ok )
2459 CALL ctrmm(
'L',
'L',
'T',
'N', 2, 0, alpha, a, 1, b, 2 )
2460 CALL chkxer( srnamt, infot, nout, lerr, ok )
2462 CALL ctrmm(
'R',
'L',
'N',
'N', 0, 2, alpha, a, 1, b, 1 )
2463 CALL chkxer( srnamt, infot, nout, lerr, ok )
2465 CALL ctrmm(
'R',
'L',
'C',
'N', 0, 2, alpha, a, 1, b, 1 )
2466 CALL chkxer( srnamt, infot, nout, lerr, ok )
2468 CALL ctrmm(
'R',
'L',
'T',
'N', 0, 2, alpha, a, 1, b, 1 )
2469 CALL chkxer( srnamt, infot, nout, lerr, ok )
2471 CALL ctrmm(
'L',
'U',
'N',
'N', 2, 0, alpha, a, 2, b, 1 )
2472 CALL chkxer( srnamt, infot, nout, lerr, ok )
2474 CALL ctrmm(
'L',
'U',
'C',
'N', 2, 0, alpha, a, 2, b, 1 )
2475 CALL chkxer( srnamt, infot, nout, lerr, ok )
2477 CALL ctrmm(
'L',
'U',
'T',
'N', 2, 0, alpha, a, 2, b, 1 )
2478 CALL chkxer( srnamt, infot, nout, lerr, ok )
2480 CALL ctrmm(
'R',
'U',
'N',
'N', 2, 0, alpha, a, 1, b, 1 )
2481 CALL chkxer( srnamt, infot, nout, lerr, ok )
2483 CALL ctrmm(
'R',
'U',
'C',
'N', 2, 0, alpha, a, 1, b, 1 )
2484 CALL chkxer( srnamt, infot, nout, lerr, ok )
2486 CALL ctrmm(
'R',
'U',
'T',
'N', 2, 0, alpha, a, 1, b, 1 )
2487 CALL chkxer( srnamt, infot, nout, lerr, ok )
2489 CALL ctrmm(
'L',
'L',
'N',
'N', 2, 0, alpha, a, 2, b, 1 )
2490 CALL chkxer( srnamt, infot, nout, lerr, ok )
2492 CALL ctrmm(
'L',
'L',
'C',
'N', 2, 0, alpha, a, 2, b, 1 )
2493 CALL chkxer( srnamt, infot, nout, lerr, ok )
2495 CALL ctrmm(
'L',
'L',
'T',
'N', 2, 0, alpha, a, 2, b, 1 )
2496 CALL chkxer( srnamt, infot, nout, lerr, ok )
2498 CALL ctrmm(
'R',
'L',
'N',
'N', 2, 0, alpha, a, 1, b, 1 )
2499 CALL chkxer( srnamt, infot, nout, lerr, ok )
2501 CALL ctrmm(
'R',
'L',
'C',
'N', 2, 0, alpha, a, 1, b, 1 )
2502 CALL chkxer( srnamt, infot, nout, lerr, ok )
2504 CALL ctrmm(
'R',
'L',
'T',
'N', 2, 0, alpha, a, 1, b, 1 )
2505 CALL chkxer( srnamt, infot, nout, lerr, ok )
2508 CALL ctrsm(
'/',
'U',
'N',
'N', 0, 0, alpha, a, 1, b, 1 )
2509 CALL chkxer( srnamt, infot, nout, lerr, ok )
2511 CALL ctrsm(
'L',
'/',
'N',
'N', 0, 0, alpha, a, 1, b, 1 )
2512 CALL chkxer( srnamt, infot, nout, lerr, ok )
2514 CALL ctrsm(
'L',
'U',
'/',
'N', 0, 0, alpha, a, 1, b, 1 )
2515 CALL chkxer( srnamt, infot, nout, lerr, ok )
2517 CALL ctrsm(
'L',
'U',
'N',
'/', 0, 0, alpha, a, 1, b, 1 )
2518 CALL chkxer( srnamt, infot, nout, lerr, ok )
2520 CALL ctrsm(
'L',
'U',
'N',
'N', -1, 0, alpha, a, 1, b, 1 )
2521 CALL chkxer( srnamt, infot, nout, lerr, ok )
2523 CALL ctrsm(
'L',
'U',
'C',
'N', -1, 0, alpha, a, 1, b, 1 )
2524 CALL chkxer( srnamt, infot, nout, lerr, ok )
2526 CALL ctrsm(
'L',
'U',
'T',
'N', -1, 0, alpha, a, 1, b, 1 )
2527 CALL chkxer( srnamt, infot, nout, lerr, ok )
2529 CALL ctrsm(
'R',
'U',
'N',
'N', -1, 0, alpha, a, 1, b, 1 )
2530 CALL chkxer( srnamt, infot, nout, lerr, ok )
2532 CALL ctrsm(
'R',
'U',
'C',
'N', -1, 0, alpha, a, 1, b, 1 )
2533 CALL chkxer( srnamt, infot, nout, lerr, ok )
2535 CALL ctrsm(
'R',
'U',
'T',
'N', -1, 0, alpha, a, 1, b, 1 )
2536 CALL chkxer( srnamt, infot, nout, lerr, ok )
2538 CALL ctrsm(
'L',
'L',
'N',
'N', -1, 0, alpha, a, 1, b, 1 )
2539 CALL chkxer( srnamt, infot, nout, lerr, ok )
2541 CALL ctrsm(
'L',
'L',
'C',
'N', -1, 0, alpha, a, 1, b, 1 )
2542 CALL chkxer( srnamt, infot, nout, lerr, ok )
2544 CALL ctrsm(
'L',
'L',
'T',
'N', -1, 0, alpha, a, 1, b, 1 )
2545 CALL chkxer( srnamt, infot, nout, lerr, ok )
2547 CALL ctrsm(
'R',
'L',
'N',
'N', -1, 0, alpha, a, 1, b, 1 )
2548 CALL chkxer( srnamt, infot, nout, lerr, ok )
2550 CALL ctrsm(
'R',
'L',
'C',
'N', -1, 0, alpha, a, 1, b, 1 )
2551 CALL chkxer( srnamt, infot, nout, lerr, ok )
2553 CALL ctrsm(
'R',
'L',
'T',
'N', -1, 0, alpha, a, 1, b, 1 )
2554 CALL chkxer( srnamt, infot, nout, lerr, ok )
2556 CALL ctrsm(
'L',
'U',
'N',
'N', 0, -1, alpha, a, 1, b, 1 )
2557 CALL chkxer( srnamt, infot, nout, lerr, ok )
2559 CALL ctrsm(
'L',
'U',
'C',
'N', 0, -1, alpha, a, 1, b, 1 )
2560 CALL chkxer( srnamt, infot, nout, lerr, ok )
2562 CALL ctrsm(
'L',
'U',
'T',
'N', 0, -1, alpha, a, 1, b, 1 )
2563 CALL chkxer( srnamt, infot, nout, lerr, ok )
2565 CALL ctrsm(
'R',
'U',
'N',
'N', 0, -1, alpha, a, 1, b, 1 )
2566 CALL chkxer( srnamt, infot, nout, lerr, ok )
2568 CALL ctrsm(
'R',
'U',
'C',
'N', 0, -1, alpha, a, 1, b, 1 )
2569 CALL chkxer( srnamt, infot, nout, lerr, ok )
2571 CALL ctrsm(
'R',
'U',
'T',
'N', 0, -1, alpha, a, 1, b, 1 )
2572 CALL chkxer( srnamt, infot, nout, lerr, ok )
2574 CALL ctrsm(
'L',
'L',
'N',
'N', 0, -1, alpha, a, 1, b, 1 )
2575 CALL chkxer( srnamt, infot, nout, lerr, ok )
2577 CALL ctrsm(
'L',
'L',
'C',
'N', 0, -1, alpha, a, 1, b, 1 )
2578 CALL chkxer( srnamt, infot, nout, lerr, ok )
2580 CALL ctrsm(
'L',
'L',
'T',
'N', 0, -1, alpha, a, 1, b, 1 )
2581 CALL chkxer( srnamt, infot, nout, lerr, ok )
2583 CALL ctrsm(
'R',
'L',
'N',
'N', 0, -1, alpha, a, 1, b, 1 )
2584 CALL chkxer( srnamt, infot, nout, lerr, ok )
2586 CALL ctrsm(
'R',
'L',
'C',
'N', 0, -1, alpha, a, 1, b, 1 )
2587 CALL chkxer( srnamt, infot, nout, lerr, ok )
2589 CALL ctrsm(
'R',
'L',
'T',
'N', 0, -1, alpha, a, 1, b, 1 )
2590 CALL chkxer( srnamt, infot, nout, lerr, ok )
2592 CALL ctrsm(
'L',
'U',
'N',
'N', 2, 0, alpha, a, 1, b, 2 )
2593 CALL chkxer( srnamt, infot, nout, lerr, ok )
2595 CALL ctrsm(
'L',
'U',
'C',
'N', 2, 0, alpha, a, 1, b, 2 )
2596 CALL chkxer( srnamt, infot, nout, lerr, ok )
2598 CALL ctrsm(
'L',
'U',
'T',
'N', 2, 0, alpha, a, 1, b, 2 )
2599 CALL chkxer( srnamt, infot, nout, lerr, ok )
2601 CALL ctrsm(
'R',
'U',
'N',
'N', 0, 2, alpha, a, 1, b, 1 )
2602 CALL chkxer( srnamt, infot, nout, lerr, ok )
2604 CALL ctrsm(
'R',
'U',
'C',
'N', 0, 2, alpha, a, 1, b, 1 )
2605 CALL chkxer( srnamt, infot, nout, lerr, ok )
2607 CALL ctrsm(
'R',
'U',
'T',
'N', 0, 2, alpha, a, 1, b, 1 )
2608 CALL chkxer( srnamt, infot, nout, lerr, ok )
2610 CALL ctrsm(
'L',
'L',
'N',
'N', 2, 0, alpha, a, 1, b, 2 )
2611 CALL chkxer( srnamt, infot, nout, lerr, ok )
2613 CALL ctrsm(
'L',
'L',
'C',
'N', 2, 0, alpha, a, 1, b, 2 )
2614 CALL chkxer( srnamt, infot, nout, lerr, ok )
2616 CALL ctrsm(
'L',
'L',
'T',
'N', 2, 0, alpha, a, 1, b, 2 )
2617 CALL chkxer( srnamt, infot, nout, lerr, ok )
2619 CALL ctrsm(
'R',
'L',
'N',
'N', 0, 2, alpha, a, 1, b, 1 )
2620 CALL chkxer( srnamt, infot, nout, lerr, ok )
2622 CALL ctrsm(
'R',
'L',
'C',
'N', 0, 2, alpha, a, 1, b, 1 )
2623 CALL chkxer( srnamt, infot, nout, lerr, ok )
2625 CALL ctrsm(
'R',
'L',
'T',
'N', 0, 2, alpha, a, 1, b, 1 )
2626 CALL chkxer( srnamt, infot, nout, lerr, ok )
2628 CALL ctrsm(
'L',
'U',
'N',
'N', 2, 0, alpha, a, 2, b, 1 )
2629 CALL chkxer( srnamt, infot, nout, lerr, ok )
2631 CALL ctrsm(
'L',
'U',
'C',
'N', 2, 0, alpha, a, 2, b, 1 )
2632 CALL chkxer( srnamt, infot, nout, lerr, ok )
2634 CALL ctrsm(
'L',
'U',
'T',
'N', 2, 0, alpha, a, 2, b, 1 )
2635 CALL chkxer( srnamt, infot, nout, lerr, ok )
2637 CALL ctrsm(
'R',
'U',
'N',
'N', 2, 0, alpha, a, 1, b, 1 )
2638 CALL chkxer( srnamt, infot, nout, lerr, ok )
2640 CALL ctrsm(
'R',
'U',
'C',
'N', 2, 0, alpha, a, 1, b, 1 )
2641 CALL chkxer( srnamt, infot, nout, lerr, ok )
2643 CALL ctrsm(
'R',
'U',
'T',
'N', 2, 0, alpha, a, 1, b, 1 )
2644 CALL chkxer( srnamt, infot, nout, lerr, ok )
2646 CALL ctrsm(
'L',
'L',
'N',
'N', 2, 0, alpha, a, 2, b, 1 )
2647 CALL chkxer( srnamt, infot, nout, lerr, ok )
2649 CALL ctrsm(
'L',
'L',
'C',
'N', 2, 0, alpha, a, 2, b, 1 )
2650 CALL chkxer( srnamt, infot, nout, lerr, ok )
2652 CALL ctrsm(
'L',
'L',
'T',
'N', 2, 0, alpha, a, 2, b, 1 )
2653 CALL chkxer( srnamt, infot, nout, lerr, ok )
2655 CALL ctrsm(
'R',
'L',
'N',
'N', 2, 0, alpha, a, 1, b, 1 )
2656 CALL chkxer( srnamt, infot, nout, lerr, ok )
2658 CALL ctrsm(
'R',
'L',
'C',
'N', 2, 0, alpha, a, 1, b, 1 )
2659 CALL chkxer( srnamt, infot, nout, lerr, ok )
2661 CALL ctrsm(
'R',
'L',
'T',
'N', 2, 0, alpha, a, 1, b, 1 )
2662 CALL chkxer( srnamt, infot, nout, lerr, ok )
2665 CALL cherk(
'/',
'N', 0, 0, ralpha, a, 1, rbeta, c, 1 )
2666 CALL chkxer( srnamt, infot, nout, lerr, ok )
2668 CALL cherk(
'U',
'T', 0, 0, ralpha, a, 1, rbeta, c, 1 )
2669 CALL chkxer( srnamt, infot, nout, lerr, ok )
2671 CALL cherk(
'U',
'N', -1, 0, ralpha, a, 1, rbeta, c, 1 )
2672 CALL chkxer( srnamt, infot, nout, lerr, ok )
2674 CALL cherk(
'U',
'C', -1, 0, ralpha, a, 1, rbeta, c, 1 )
2675 CALL chkxer( srnamt, infot, nout, lerr, ok )
2677 CALL cherk(
'L',
'N', -1, 0, ralpha, a, 1, rbeta, c, 1 )
2678 CALL chkxer( srnamt, infot, nout, lerr, ok )
2680 CALL cherk(
'L',
'C', -1, 0, ralpha, a, 1, rbeta, c, 1 )
2681 CALL chkxer( srnamt, infot, nout, lerr, ok )
2683 CALL cherk(
'U',
'N', 0, -1, ralpha, a, 1, rbeta, c, 1 )
2684 CALL chkxer( srnamt, infot, nout, lerr, ok )
2686 CALL cherk(
'U',
'C', 0, -1, ralpha, a, 1, rbeta, c, 1 )
2687 CALL chkxer( srnamt, infot, nout, lerr, ok )
2689 CALL cherk(
'L',
'N', 0, -1, ralpha, a, 1, rbeta, c, 1 )
2690 CALL chkxer( srnamt, infot, nout, lerr, ok )
2692 CALL cherk(
'L',
'C', 0, -1, ralpha, a, 1, rbeta, c, 1 )
2693 CALL chkxer( srnamt, infot, nout, lerr, ok )
2695 CALL cherk(
'U',
'N', 2, 0, ralpha, a, 1, rbeta, c, 2 )
2696 CALL chkxer( srnamt, infot, nout, lerr, ok )
2698 CALL cherk(
'U',
'C', 0, 2, ralpha, a, 1, rbeta, c, 1 )
2699 CALL chkxer( srnamt, infot, nout, lerr, ok )
2701 CALL cherk(
'L',
'N', 2, 0, ralpha, a, 1, rbeta, c, 2 )
2702 CALL chkxer( srnamt, infot, nout, lerr, ok )
2704 CALL cherk(
'L',
'C', 0, 2, ralpha, a, 1, rbeta, c, 1 )
2705 CALL chkxer( srnamt, infot, nout, lerr, ok )
2707 CALL cherk(
'U',
'N', 2, 0, ralpha, a, 2, rbeta, c, 1 )
2708 CALL chkxer( srnamt, infot, nout, lerr, ok )
2710 CALL cherk(
'U',
'C', 2, 0, ralpha, a, 1, rbeta, c, 1 )
2711 CALL chkxer( srnamt, infot, nout, lerr, ok )
2713 CALL cherk(
'L',
'N', 2, 0, ralpha, a, 2, rbeta, c, 1 )
2714 CALL chkxer( srnamt, infot, nout, lerr, ok )
2716 CALL cherk(
'L',
'C', 2, 0, ralpha, a, 1, rbeta, c, 1 )
2717 CALL chkxer( srnamt, infot, nout, lerr, ok )
2720 CALL csyrk(
'/',
'N', 0, 0, alpha, a, 1, beta, c, 1 )
2721 CALL chkxer( srnamt, infot, nout, lerr, ok )
2723 CALL csyrk(
'U',
'C', 0, 0, alpha, a, 1, beta, c, 1 )
2724 CALL chkxer( srnamt, infot, nout, lerr, ok )
2726 CALL csyrk(
'U',
'N', -1, 0, alpha, a, 1, beta, c, 1 )
2727 CALL chkxer( srnamt, infot, nout, lerr, ok )
2729 CALL csyrk(
'U',
'T', -1, 0, alpha, a, 1, beta, c, 1 )
2730 CALL chkxer( srnamt, infot, nout, lerr, ok )
2732 CALL csyrk(
'L',
'N', -1, 0, alpha, a, 1, beta, c, 1 )
2733 CALL chkxer( srnamt, infot, nout, lerr, ok )
2735 CALL csyrk(
'L',
'T', -1, 0, alpha, a, 1, beta, c, 1 )
2736 CALL chkxer( srnamt, infot, nout, lerr, ok )
2738 CALL csyrk(
'U',
'N', 0, -1, alpha, a, 1, beta, c, 1 )
2739 CALL chkxer( srnamt, infot, nout, lerr, ok )
2741 CALL csyrk(
'U',
'T', 0, -1, alpha, a, 1, beta, c, 1 )
2742 CALL chkxer( srnamt, infot, nout, lerr, ok )
2744 CALL csyrk(
'L',
'N', 0, -1, alpha, a, 1, beta, c, 1 )
2745 CALL chkxer( srnamt, infot, nout, lerr, ok )
2747 CALL csyrk(
'L',
'T', 0, -1, alpha, a, 1, beta, c, 1 )
2748 CALL chkxer( srnamt, infot, nout, lerr, ok )
2750 CALL csyrk(
'U',
'N', 2, 0, alpha, a, 1, beta, c, 2 )
2751 CALL chkxer( srnamt, infot, nout, lerr, ok )
2753 CALL csyrk(
'U',
'T', 0, 2, alpha, a, 1, beta, c, 1 )
2754 CALL chkxer( srnamt, infot, nout, lerr, ok )
2756 CALL csyrk(
'L',
'N', 2, 0, alpha, a, 1, beta, c, 2 )
2757 CALL chkxer( srnamt, infot, nout, lerr, ok )
2759 CALL csyrk(
'L',
'T', 0, 2, alpha, a, 1, beta, c, 1 )
2760 CALL chkxer( srnamt, infot, nout, lerr, ok )
2762 CALL csyrk(
'U',
'N', 2, 0, alpha, a, 2, beta, c, 1 )
2763 CALL chkxer( srnamt, infot, nout, lerr, ok )
2765 CALL csyrk(
'U',
'T', 2, 0, alpha, a, 1, beta, c, 1 )
2766 CALL chkxer( srnamt, infot, nout, lerr, ok )
2768 CALL csyrk(
'L',
'N', 2, 0, alpha, a, 2, beta, c, 1 )
2769 CALL chkxer( srnamt, infot, nout, lerr, ok )
2771 CALL csyrk(
'L',
'T', 2, 0, alpha, a, 1, beta, c, 1 )
2772 CALL chkxer( srnamt, infot, nout, lerr, ok )
2775 CALL cher2k(
'/',
'N', 0, 0, alpha, a, 1, b, 1, rbeta, c, 1 )
2776 CALL chkxer( srnamt, infot, nout, lerr, ok )
2778 CALL cher2k(
'U',
'T', 0, 0, alpha, a, 1, b, 1, rbeta, c, 1 )
2779 CALL chkxer( srnamt, infot, nout, lerr, ok )
2781 CALL cher2k(
'U',
'N', -1, 0, alpha, a, 1, b, 1, rbeta, c, 1 )
2782 CALL chkxer( srnamt, infot, nout, lerr, ok )
2784 CALL cher2k(
'U',
'C', -1, 0, alpha, a, 1, b, 1, rbeta, c, 1 )
2785 CALL chkxer( srnamt, infot, nout, lerr, ok )
2787 CALL cher2k(
'L',
'N', -1, 0, alpha, a, 1, b, 1, rbeta, c, 1 )
2788 CALL chkxer( srnamt, infot, nout, lerr, ok )
2790 CALL cher2k(
'L',
'C', -1, 0, alpha, a, 1, b, 1, rbeta, c, 1 )
2791 CALL chkxer( srnamt, infot, nout, lerr, ok )
2793 CALL cher2k(
'U',
'N', 0, -1, alpha, a, 1, b, 1, rbeta, c, 1 )
2794 CALL chkxer( srnamt, infot, nout, lerr, ok )
2796 CALL cher2k(
'U',
'C', 0, -1, alpha, a, 1, b, 1, rbeta, c, 1 )
2797 CALL chkxer( srnamt, infot, nout, lerr, ok )
2799 CALL cher2k(
'L',
'N', 0, -1, alpha, a, 1, b, 1, rbeta, c, 1 )
2800 CALL chkxer( srnamt, infot, nout, lerr, ok )
2802 CALL cher2k(
'L',
'C', 0, -1, alpha, a, 1, b, 1, rbeta, c, 1 )
2803 CALL chkxer( srnamt, infot, nout, lerr, ok )
2805 CALL cher2k(
'U',
'N', 2, 0, alpha, a, 1, b, 1, rbeta, c, 2 )
2806 CALL chkxer( srnamt, infot, nout, lerr, ok )
2808 CALL cher2k(
'U',
'C', 0, 2, alpha, a, 1, b, 1, rbeta, c, 1 )
2809 CALL chkxer( srnamt, infot, nout, lerr, ok )
2811 CALL cher2k(
'L',
'N', 2, 0, alpha, a, 1, b, 1, rbeta, c, 2 )
2812 CALL chkxer( srnamt, infot, nout, lerr, ok )
2814 CALL cher2k(
'L',
'C', 0, 2, alpha, a, 1, b, 1, rbeta, c, 1 )
2815 CALL chkxer( srnamt, infot, nout, lerr, ok )
2817 CALL cher2k(
'U',
'N', 2, 0, alpha, a, 2, b, 1, rbeta, c, 2 )
2818 CALL chkxer( srnamt, infot, nout, lerr, ok )
2820 CALL cher2k(
'U',
'C', 0, 2, alpha, a, 2, b, 1, rbeta, c, 1 )
2821 CALL chkxer( srnamt, infot, nout, lerr, ok )
2823 CALL cher2k(
'L',
'N', 2, 0, alpha, a, 2, b, 1, rbeta, c, 2 )
2824 CALL chkxer( srnamt, infot, nout, lerr, ok )
2826 CALL cher2k(
'L',
'C', 0, 2, alpha, a, 2, b, 1, rbeta, c, 1 )
2827 CALL chkxer( srnamt, infot, nout, lerr, ok )
2829 CALL cher2k(
'U',
'N', 2, 0, alpha, a, 2, b, 2, rbeta, c, 1 )
2830 CALL chkxer( srnamt, infot, nout, lerr, ok )
2832 CALL cher2k(
'U',
'C', 2, 0, alpha, a, 1, b, 1, rbeta, c, 1 )
2833 CALL chkxer( srnamt, infot, nout, lerr, ok )
2835 CALL cher2k(
'L',
'N', 2, 0, alpha, a, 2, b, 2, rbeta, c, 1 )
2836 CALL chkxer( srnamt, infot, nout, lerr, ok )
2838 CALL cher2k(
'L',
'C', 2, 0, alpha, a, 1, b, 1, rbeta, c, 1 )
2839 CALL chkxer( srnamt, infot, nout, lerr, ok )
2842 CALL csyr2k(
'/',
'N', 0, 0, alpha, a, 1, b, 1, beta, c, 1 )
2843 CALL chkxer( srnamt, infot, nout, lerr, ok )
2845 CALL csyr2k(
'U',
'C', 0, 0, alpha, a, 1, b, 1, beta, c, 1 )
2846 CALL chkxer( srnamt, infot, nout, lerr, ok )
2848 CALL csyr2k(
'U',
'N', -1, 0, alpha, a, 1, b, 1, beta, c, 1 )
2849 CALL chkxer( srnamt, infot, nout, lerr, ok )
2851 CALL csyr2k(
'U',
'T', -1, 0, alpha, a, 1, b, 1, beta, c, 1 )
2852 CALL chkxer( srnamt, infot, nout, lerr, ok )
2854 CALL csyr2k(
'L',
'N', -1, 0, alpha, a, 1, b, 1, beta, c, 1 )
2855 CALL chkxer( srnamt, infot, nout, lerr, ok )
2857 CALL csyr2k(
'L',
'T', -1, 0, alpha, a, 1, b, 1, beta, c, 1 )
2858 CALL chkxer( srnamt, infot, nout, lerr, ok )
2860 CALL csyr2k(
'U',
'N', 0, -1, alpha, a, 1, b, 1, beta, c, 1 )
2861 CALL chkxer( srnamt, infot, nout, lerr, ok )
2863 CALL csyr2k(
'U',
'T', 0, -1, alpha, a, 1, b, 1, beta, c, 1 )
2864 CALL chkxer( srnamt, infot, nout, lerr, ok )
2866 CALL csyr2k(
'L',
'N', 0, -1, alpha, a, 1, b, 1, beta, c, 1 )
2867 CALL chkxer( srnamt, infot, nout, lerr, ok )
2869 CALL csyr2k(
'L',
'T', 0, -1, alpha, a, 1, b, 1, beta, c, 1 )
2870 CALL chkxer( srnamt, infot, nout, lerr, ok )
2872 CALL csyr2k(
'U',
'N', 2, 0, alpha, a, 1, b, 1, beta, c, 2 )
2873 CALL chkxer( srnamt, infot, nout, lerr, ok )
2875 CALL csyr2k(
'U',
'T', 0, 2, alpha, a, 1, b, 1, beta, c, 1 )
2876 CALL chkxer( srnamt, infot, nout, lerr, ok )
2878 CALL csyr2k(
'L',
'N', 2, 0, alpha, a, 1, b, 1, beta, c, 2 )
2879 CALL chkxer( srnamt, infot, nout, lerr, ok )
2881 CALL csyr2k(
'L',
'T', 0, 2, alpha, a, 1, b, 1, beta, c, 1 )
2882 CALL chkxer( srnamt, infot, nout, lerr, ok )
2884 CALL csyr2k(
'U',
'N', 2, 0, alpha, a, 2, b, 1, beta, c, 2 )
2885 CALL chkxer( srnamt, infot, nout, lerr, ok )
2887 CALL csyr2k(
'U',
'T', 0, 2, alpha, a, 2, b, 1, beta, c, 1 )
2888 CALL chkxer( srnamt, infot, nout, lerr, ok )
2890 CALL csyr2k(
'L',
'N', 2, 0, alpha, a, 2, b, 1, beta, c, 2 )
2891 CALL chkxer( srnamt, infot, nout, lerr, ok )
2893 CALL csyr2k(
'L',
'T', 0, 2, alpha, a, 2, b, 1, beta, c, 1 )
2894 CALL chkxer( srnamt, infot, nout, lerr, ok )
2896 CALL csyr2k(
'U',
'N', 2, 0, alpha, a, 2, b, 2, beta, c, 1 )
2897 CALL chkxer( srnamt, infot, nout, lerr, ok )
2899 CALL csyr2k(
'U',
'T', 2, 0, alpha, a, 1, b, 1, beta, c, 1 )
2900 CALL chkxer( srnamt, infot, nout, lerr, ok )
2902 CALL csyr2k(
'L',
'N', 2, 0, alpha, a, 2, b, 2, beta, c, 1 )
2903 CALL chkxer( srnamt, infot, nout, lerr, ok )
2905 CALL csyr2k(
'L',
'T', 2, 0, alpha, a, 1, b, 1, beta, c, 1 )
2906 CALL chkxer( srnamt, infot, nout, lerr, ok )
2909 WRITE( nout, fmt = 9999 )srnamt
2911 WRITE( nout, fmt = 9998 )srnamt
2915 9999
FORMAT(
' ', a6,
' PASSED THE TESTS OF ERROR-EXITS' )
2916 9998
FORMAT(
' ******* ', a6,
' FAILED THE TESTS OF ERROR-EXITS *****',
2922 SUBROUTINE cmake( TYPE, UPLO, DIAG, M, N, A, NMAX, AA, LDA, RESET,
2941 PARAMETER ( ZERO = ( 0.0, 0.0 ), one = ( 1.0, 0.0 ) )
2943 PARAMETER ( ROGUE = ( -1.0e10, 1.0e10 ) )
2945 PARAMETER ( RZERO = 0.0 )
2947 parameter( rrogue = -1.0e10 )
2950 INTEGER LDA, M, N, NMAX
2952 CHARACTER*1 DIAG, UPLO
2955 COMPLEX A( NMAX, * ), AA( * )
2957 INTEGER I, IBEG, IEND, J, JJ
2958 LOGICAL GEN, HER, LOWER, SYM, TRI, UNIT, UPPER
2963 INTRINSIC cmplx, conjg, real
2969 upper = ( her.OR.sym.OR.tri ).AND.uplo.EQ.
'U'
2970 lower = ( her.OR.sym.OR.tri ).AND.uplo.EQ.
'L'
2971 unit = tri.AND.diag.EQ.
'U'
2977 IF( gen.OR.( upper.AND.i.LE.j ).OR.( lower.AND.i.GE.j ) )
2979 a( i, j ) = cbeg( reset ) + transl
2982 IF( n.GT.3.AND.j.EQ.n/2 )
2985 a( j, i ) = conjg( a( i, j ) )
2987 a( j, i ) = a( i, j )
2995 $ a( j, j ) = cmplx( real( a( j, j ) ), rzero )
2997 $ a( j, j ) = a( j, j ) + one
3004 IF( type.EQ.
'GE' )
THEN
3007 aa( i + ( j - 1 )*lda ) = a( i, j )
3009 DO 40 i = m + 1, lda
3010 aa( i + ( j - 1 )*lda ) = rogue
3013 ELSE IF( type.EQ.
'HE'.OR.type.EQ.
'SY'.OR.type.EQ.
'TR' )
THEN
3030 DO 60 i = 1, ibeg - 1
3031 aa( i + ( j - 1 )*lda ) = rogue
3033 DO 70 i = ibeg, iend
3034 aa( i + ( j - 1 )*lda ) = a( i, j )
3036 DO 80 i = iend + 1, lda
3037 aa( i + ( j - 1 )*lda ) = rogue
3040 jj = j + ( j - 1 )*lda
3041 aa( jj ) = cmplx( real( aa( jj ) ), rrogue )
3050 SUBROUTINE cmmch( TRANSA, TRANSB, M, N, KK, ALPHA, A, LDA, B, LDB,
3051 $ BETA, C, LDC, CT, G, CC, LDCC, EPS, ERR, FATAL,
3066 PARAMETER ( ZERO = ( 0.0, 0.0 ) )
3068 parameter( rzero = 0.0, rone = 1.0 )
3072 INTEGER KK, LDA, LDB, LDC, LDCC, M, N, NOUT
3074 CHARACTER*1 TRANSA, TRANSB
3076 COMPLEX A( LDA, * ), B( LDB, * ), C( LDC, * ),
3077 $ CC( LDCC, * ), CT( * )
3083 LOGICAL CTRANA, CTRANB, TRANA, TRANB
3085 INTRINSIC abs, aimag, conjg, max, real, sqrt
3089 abs1( cl ) = abs( real( cl ) ) + abs( aimag( cl ) )
3091 trana = transa.EQ.
'T'.OR.transa.EQ.
'C'
3092 tranb = transb.EQ.
'T'.OR.transb.EQ.
'C'
3093 ctrana = transa.EQ.
'C'
3094 ctranb = transb.EQ.
'C'
3106 IF( .NOT.trana.AND..NOT.tranb )
THEN
3109 ct( i ) = ct( i ) + a( i, k )*b( k, j )
3110 g( i ) = g( i ) + abs1( a( i, k ) )*abs1( b( k, j ) )
3113 ELSE IF( trana.AND..NOT.tranb )
THEN
3117 ct( i ) = ct( i ) + conjg( a( k, i ) )*b( k, j )
3118 g( i ) = g( i ) + abs1( a( k, i ) )*
3125 ct( i ) = ct( i ) + a( k, i )*b( k, j )
3126 g( i ) = g( i ) + abs1( a( k, i ) )*
3131 ELSE IF( .NOT.trana.AND.tranb )
THEN
3135 ct( i ) = ct( i ) + a( i, k )*conjg( b( j, k ) )
3136 g( i ) = g( i ) + abs1( a( i, k ) )*
3143 ct( i ) = ct( i ) + a( i, k )*b( j, k )
3144 g( i ) = g( i ) + abs1( a( i, k ) )*
3149 ELSE IF( trana.AND.tranb )
THEN
3154 ct( i ) = ct( i ) + conjg( a( k, i ) )*
3155 $ conjg( b( j, k ) )
3156 g( i ) = g( i ) + abs1( a( k, i ) )*
3163 ct( i ) = ct( i ) + conjg( a( k, i ) )*b( j, k )
3164 g( i ) = g( i ) + abs1( a( k, i ) )*
3173 ct( i ) = ct( i ) + a( k, i )*conjg( b( j, k ) )
3174 g( i ) = g( i ) + abs1( a( k, i ) )*
3181 ct( i ) = ct( i ) + a( k, i )*b( j, k )
3182 g( i ) = g( i ) + abs1( a( k, i ) )*
3190 ct( i ) = alpha*ct( i ) + beta*c( i, j )
3191 g( i ) = abs1( alpha )*g( i ) +
3192 $ abs1( beta )*abs1( c( i, j ) )
3199 erri = abs1( ct( i ) - cc( i, j ) )/eps
3200 IF( g( i ).NE.rzero )
3201 $ erri = erri/g( i )
3202 err = max( err, erri )
3203 IF( err*sqrt( eps ).GE.rone )
3215 WRITE( nout, fmt = 9999 )
3218 WRITE( nout, fmt = 9998 )i, ct( i ), cc( i, j )
3220 WRITE( nout, fmt = 9998 )i, cc( i, j ), ct( i )
3224 $
WRITE( nout, fmt = 9997 )j
3229 9999
FORMAT(
' ******* FATAL ERROR - COMPUTED RESULT IS LESS THAN HAL',
3230 $
'F ACCURATE *******', /
' EXPECTED RE',
3231 $
'SULT COMPUTED RESULT' )
3232 9998
FORMAT( 1x, i7, 2(
' (', g15.6,
',', g15.6,
')' ) )
3233 9997
FORMAT(
' THESE ARE THE RESULTS FOR COLUMN ', i3 )
3238 LOGICAL FUNCTION lce( RI, RJ, LR )
3253 COMPLEX ri( * ), rj( * )
3258 IF( ri( i ).NE.rj( i ) )
3270 LOGICAL FUNCTION lceres( TYPE, UPLO, M, N, AA, AS, LDA )
3289 COMPLEX aa( lda, * ), as( lda, * )
3291 INTEGER i, ibeg, iend, j
3295 IF( type.EQ.
'GE' )
THEN
3297 DO 10 i = m + 1, lda
3298 IF( aa( i, j ).NE.as( i, j ) )
3302 ELSE IF( type.EQ.
'HE'.OR.type.EQ.
'SY' )
THEN
3311 DO 30 i = 1, ibeg - 1
3312 IF( aa( i, j ).NE.as( i, j ) )
3315 DO 40 i = iend + 1, lda
3316 IF( aa( i, j ).NE.as( i, j ) )
3347 INTEGER i, ic, j, mi, mj
3349 SAVE i, ic, j, mi, mj
3373 i = i - 1000*( i/1000 )
3374 j = j - 1000*( j/1000 )
3379 cbeg = cmplx( ( i - 500 )/1001.0, ( j - 500 )/1001.0 )
3404 SUBROUTINE chkxer( SRNAMT, INFOT, NOUT, LERR, OK )
3422 WRITE( NOUT, FMT = 9999 )infot, srnamt
3428 9999
FORMAT(
' ***** ILLEGAL VALUE OF PARAMETER NUMBER ', i2,
' NOT D',
3429 $
'ETECTED BY ', a6,
' *****' )
3461 COMMON /INFOC/INFOT, NOUT, OK, LERR
3462 COMMON /SRNAMC/SRNAMT
3465 IF( info.NE.infot )
THEN
3466 IF( infot.NE.0 )
THEN
3467 WRITE( nout, fmt = 9999 )info, infot
3469 WRITE( nout, fmt = 9997 )info
3473 IF( srname.NE.srnamt )
THEN
3474 WRITE( nout, fmt = 9998 )srname, srnamt
3479 9999
FORMAT(
' ******* XERBLA WAS CALLED WITH INFO = ', i6,
' INSTEAD',
3480 $
' OF ', i2,
' *******' )
3481 9998
FORMAT(
' ******* XERBLA WAS CALLED WITH SRNAME = ', a6,
' INSTE',
3482 $
'AD OF ', a6,
' *******' )
3483 9997
FORMAT(
' ******* XERBLA WAS CALLED WITH INFO = ', i6,
real function sdiff(sa, sb)
subroutine cmake(type, uplo, diag, m, n, a, nmax, aa, lda, kl, ku, reset, transl)
subroutine cchk5(sname, eps, thresh, nout, ntra, trace, rewi, fatal, nidim, idim, nalf, alf, ninc, inc, nmax, incmax, a, aa, as, x, xx, xs, y, yy, ys, yt, g, z)
subroutine cchk2(sname, eps, thresh, nout, ntra, trace, rewi, fatal, nidim, idim, nkb, kb, nalf, alf, nbet, bet, ninc, inc, nmax, incmax, a, aa, as, x, xx, xs, y, yy, ys, yt, g)
subroutine cchk1(sname, eps, thresh, nout, ntra, trace, rewi, fatal, nidim, idim, nkb, kb, nalf, alf, nbet, bet, ninc, inc, nmax, incmax, a, aa, as, x, xx, xs, y, yy, ys, yt, g)
subroutine xerbla(srname, info)
logical function lceres(type, uplo, m, n, aa, as, lda)
logical function lce(ri, rj, lr)
subroutine cchke(isnum, srnamt, nout)
subroutine cchk4(sname, eps, thresh, nout, ntra, trace, rewi, fatal, nidim, idim, nalf, alf, ninc, inc, nmax, incmax, a, aa, as, x, xx, xs, y, yy, ys, yt, g, z)
subroutine cchk3(sname, eps, thresh, nout, ntra, trace, rewi, fatal, nidim, idim, nkb, kb, ninc, inc, nmax, incmax, a, aa, as, x, xx, xs, xt, g, z)
complex function cbeg(reset)
subroutine chkxer(srnamt, infot, nout, lerr, ok)
subroutine cmmch(transa, transb, m, n, kk, alpha, a, lda, b, ldb, beta, c, ldc, ct, g, cc, ldcc, eps, err, fatal, nout, mv)
subroutine cgemm(transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc)
CGEMM
subroutine chemm(side, uplo, m, n, alpha, a, lda, b, ldb, beta, c, ldc)
CHEMM
subroutine csymm(side, uplo, m, n, alpha, a, lda, b, ldb, beta, c, ldc)
CSYMM
subroutine csyr2k(uplo, trans, n, k, alpha, a, lda, b, ldb, beta, c, ldc)
CSYR2K
subroutine cher2k(uplo, trans, n, k, alpha, a, lda, b, ldb, beta, c, ldc)
CHER2K
subroutine csyrk(uplo, trans, n, k, alpha, a, lda, beta, c, ldc)
CSYRK
subroutine cherk(uplo, trans, n, k, alpha, a, lda, beta, c, ldc)
CHERK
subroutine ctrmm(side, uplo, transa, diag, m, n, alpha, a, lda, b, ldb)
CTRMM
subroutine ctrsm(side, uplo, transa, diag, m, n, alpha, a, lda, b, ldb)
CTRSM