100 parameter( nsubs = 9 )
102 parameter( zero = ( 0.0d0, 0.0d0 ),
103 $ one = ( 1.0d0, 0.0d0 ) )
104 DOUBLE PRECISION rzero
105 parameter( rzero = 0.0d0 )
107 parameter( nmax = 65 )
108 INTEGER nidmax, nalmax, nbemax
109 parameter( nidmax = 9, nalmax = 7, nbemax = 7 )
111 DOUBLE PRECISION eps, err, thresh
112 INTEGER i, isnum, j, n, nalf, nbet, nidim, nout, ntra
113 LOGICAL fatal, ltestt, rewi, same, sfatal, trace,
115 CHARACTER*1 transa, transb
117 CHARACTER*32 snaps, summry
119 COMPLEX*16 aa( nmax*nmax ), ab( nmax, 2*nmax ),
120 $ alf( nalmax ), as( nmax*nmax ),
121 $ bb( nmax*nmax ), bet( nbemax ),
122 $ bs( nmax*nmax ), c( nmax, nmax ),
123 $ cc( nmax*nmax ), cs( nmax*nmax ), ct( nmax ),
125 DOUBLE PRECISION g( nmax )
126 INTEGER idim( nidmax )
127 LOGICAL ltest( nsubs )
128 CHARACTER*6 snames( nsubs )
130 DOUBLE PRECISION ddiff
142 COMMON /infoc/infot, noutc, ok, lerr
143 COMMON /srnamc/srnamt
145 DATA snames/
'ZGEMM ',
'ZHEMM ',
'ZSYMM ',
'ZTRMM ',
146 $
'ZTRSM ',
'ZHERK ',
'ZSYRK ',
'ZHER2K',
152 READ( nin, fmt = * )summry
153 READ( nin, fmt = * )nout
154 OPEN( nout, file = summry, status =
'UNKNOWN' )
159 READ( nin, fmt = * )snaps
160 READ( nin, fmt = * )ntra
163 OPEN( ntra, file = snaps, status =
'UNKNOWN' )
166 READ( nin, fmt = * )rewi
167 rewi = rewi.AND.trace
169 READ( nin, fmt = * )sfatal
171 READ( nin, fmt = * )tsterr
173 READ( nin, fmt = * )thresh
178 READ( nin, fmt = * )nidim
179 IF( nidim.LT.1.OR.nidim.GT.nidmax )
THEN
180 WRITE( nout, fmt = 9997 )
'N', nidmax
183 READ( nin, fmt = * )( idim( i ), i = 1, nidim )
185 IF( idim( i ).LT.0.OR.idim( i ).GT.nmax )
THEN
186 WRITE( nout, fmt = 9996 )nmax
191 READ( nin, fmt = * )nalf
192 IF( nalf.LT.1.OR.nalf.GT.nalmax )
THEN
193 WRITE( nout, fmt = 9997 )
'ALPHA', nalmax
196 READ( nin, fmt = * )( alf( i ), i = 1, nalf )
198 READ( nin, fmt = * )nbet
199 IF( nbet.LT.1.OR.nbet.GT.nbemax )
THEN
200 WRITE( nout, fmt = 9997 )
'BETA', nbemax
203 READ( nin, fmt = * )( bet( i ), i = 1, nbet )
207 WRITE( nout, fmt = 9995 )
208 WRITE( nout, fmt = 9994 )( idim( i ), i = 1, nidim )
209 WRITE( nout, fmt = 9993 )( alf( i ), i = 1, nalf )
210 WRITE( nout, fmt = 9992 )( bet( i ), i = 1, nbet )
211 IF( .NOT.tsterr )
THEN
212 WRITE( nout, fmt = * )
213 WRITE( nout, fmt = 9984 )
215 WRITE( nout, fmt = * )
216 WRITE( nout, fmt = 9999 )thresh
217 WRITE( nout, fmt = * )
225 30
READ( nin, fmt = 9988,
END = 60 )SNAMET, ltestt
227 IF( snamet.EQ.snames( i ) )
230 WRITE( nout, fmt = 9990 )snamet
232 50 ltest( i ) = ltestt
241 WRITE( nout, fmt = 9998 )eps
248 ab( i, j ) = max( i - j + 1, 0 )
250 ab( j, nmax + 1 ) = j
251 ab( 1, nmax + j ) = j
255 cc( j ) = j*( ( j + 1 )*j )/2 - ( ( j + 1 )*j*( j - 1 ) )/3
261 CALL zmmch( transa, transb, n, 1, n, one, ab, nmax,
262 $ ab( 1, nmax + 1 ), nmax, zero, c, nmax, ct, g, cc,
263 $ nmax, eps, err, fatal, nout, .true. )
264 same =
lze( cc, ct, n )
265 IF( .NOT.same.OR.err.NE.rzero )
THEN
266 WRITE( nout, fmt = 9989 )transa, transb, same, err
270 CALL zmmch( transa, transb, n, 1, n, one, ab, nmax,
271 $ ab( 1, nmax + 1 ), nmax, zero, c, nmax, ct, g, cc,
272 $ nmax, eps, err, fatal, nout, .true. )
273 same =
lze( cc, ct, n )
274 IF( .NOT.same.OR.err.NE.rzero )
THEN
275 WRITE( nout, fmt = 9989 )transa, transb, same, err
279 ab( j, nmax + 1 ) = n - j + 1
280 ab( 1, nmax + j ) = n - j + 1
283 cc( n - j + 1 ) = j*( ( j + 1 )*j )/2 -
284 $ ( ( j + 1 )*j*( j - 1 ) )/3
288 CALL zmmch( transa, transb, n, 1, n, one, ab, nmax,
289 $ ab( 1, nmax + 1 ), nmax, zero, c, nmax, ct, g, cc,
290 $ nmax, eps, err, fatal, nout, .true. )
291 same =
lze( cc, ct, n )
292 IF( .NOT.same.OR.err.NE.rzero )
THEN
293 WRITE( nout, fmt = 9989 )transa, transb, same, err
297 CALL zmmch( transa, transb, n, 1, n, one, ab, nmax,
298 $ ab( 1, nmax + 1 ), nmax, zero, c, nmax, ct, g, cc,
299 $ nmax, eps, err, fatal, nout, .true. )
300 same =
lze( cc, ct, n )
301 IF( .NOT.same.OR.err.NE.rzero )
THEN
302 WRITE( nout, fmt = 9989 )transa, transb, same, err
308 DO 200 isnum = 1, nsubs
309 WRITE( nout, fmt = * )
310 IF( .NOT.ltest( isnum ) )
THEN
312 WRITE( nout, fmt = 9987 )snames( isnum )
314 srnamt = snames( isnum )
317 CALL zchke( isnum, snames( isnum ), nout )
318 WRITE( nout, fmt = * )
324 GO TO ( 140, 150, 150, 160, 160, 170, 170,
327 140
CALL zchk1( snames( isnum ), eps, thresh, nout, ntra, trace,
328 $ rewi, fatal, nidim, idim, nalf, alf, nbet, bet,
329 $ nmax, ab, aa, as, ab( 1, nmax + 1 ), bb, bs, c,
333 150
CALL zchk2( snames( isnum ), eps, thresh, nout, ntra, trace,
334 $ rewi, fatal, nidim, idim, nalf, alf, nbet, bet,
335 $ nmax, ab, aa, as, ab( 1, nmax + 1 ), bb, bs, c,
339 160
CALL zchk3( snames( isnum ), eps, thresh, nout, ntra, trace,
340 $ rewi, fatal, nidim, idim, nalf, alf, nmax, ab,
341 $ aa, as, ab( 1, nmax + 1 ), bb, bs, ct, g, c )
344 170
CALL zchk4( snames( isnum ), eps, thresh, nout, ntra, trace,
345 $ rewi, fatal, nidim, idim, nalf, alf, nbet, bet,
346 $ nmax, ab, aa, as, ab( 1, nmax + 1 ), bb, bs, c,
350 180
CALL zchk5( snames( isnum ), eps, thresh, nout, ntra, trace,
351 $ rewi, fatal, nidim, idim, nalf, alf, nbet, bet,
352 $ nmax, ab, aa, as, bb, bs, c, cc, cs, ct, g, w )
355 190
IF( fatal.AND.sfatal )
359 WRITE( nout, fmt = 9986 )
363 WRITE( nout, fmt = 9985 )
367 WRITE( nout, fmt = 9991 )
375 9999
FORMAT(
' ROUTINES PASS COMPUTATIONAL TESTS IF TEST RATIO IS LES',
377 9998
FORMAT(
' RELATIVE MACHINE PRECISION IS TAKEN TO BE', 1p, d9.1 )
378 9997
FORMAT(
' NUMBER OF VALUES OF ', a,
' IS LESS THAN 1 OR GREATER ',
380 9996
FORMAT(
' VALUE OF N IS LESS THAN 0 OR GREATER THAN ', i2 )
381 9995
FORMAT(
' TESTS OF THE COMPLEX*16 LEVEL 3 BLAS', //
' THE F',
382 $
'OLLOWING PARAMETER VALUES WILL BE USED:' )
383 9994
FORMAT(
' FOR N ', 9i6 )
384 9993
FORMAT(
' FOR ALPHA ',
385 $ 7(
'(', f4.1,
',', f4.1,
') ', : ) )
386 9992
FORMAT(
' FOR BETA ',
387 $ 7(
'(', f4.1,
',', f4.1,
') ', : ) )
388 9991
FORMAT(
' AMEND DATA FILE OR INCREASE ARRAY SIZES IN PROGRAM',
389 $ /
' ******* TESTS ABANDONED *******' )
390 9990
FORMAT(
' SUBPROGRAM NAME ', a6,
' NOT RECOGNIZED', /
' ******* T',
391 $
'ESTS ABANDONED *******' )
392 9989
FORMAT(
' ERROR IN ZMMCH - IN-LINE DOT PRODUCTS ARE BEING EVALU',
393 $
'ATED WRONGLY.', /
' ZMMCH WAS CALLED WITH TRANSA = ', a1,
394 $
' AND TRANSB = ', a1, /
' AND RETURNED SAME = ', l1,
' AND ',
395 $
'ERR = ', f12.3,
'.', /
' THIS MAY BE DUE TO FAULTS IN THE ',
396 $
'ARITHMETIC OR THE COMPILER.', /
' ******* TESTS ABANDONED ',
398 9988
FORMAT( a6, l2 )
399 9987
FORMAT( 1x, a6,
' WAS NOT TESTED' )
400 9986
FORMAT( /
' END OF TESTS' )
401 9985
FORMAT( /
' ******* FATAL ERROR - TESTS ABANDONED *******' )
402 9984
FORMAT(
' ERROR-EXITS WILL NOT BE TESTED' )
407 SUBROUTINE zchk1( SNAME, EPS, THRESH, NOUT, NTRA, TRACE, REWI,
408 $ FATAL, NIDIM, IDIM, NALF, ALF, NBET, BET, NMAX,
409 $ A, AA, AS, B, BB, BS, C, CC, CS, CT, G )
423 PARAMETER ( ZERO = ( 0.0d0, 0.0d0 ) )
424 DOUBLE PRECISION RZERO
425 parameter( rzero = 0.0d0 )
427 DOUBLE PRECISION EPS, THRESH
428 INTEGER NALF, NBET, NIDIM, NMAX, NOUT, NTRA
429 LOGICAL FATAL, REWI, TRACE
432 COMPLEX*16 A( NMAX, NMAX ), AA( NMAX*NMAX ), ALF( NALF ),
433 $ AS( NMAX*NMAX ), B( NMAX, NMAX ),
434 $ bb( nmax*nmax ), bet( nbet ), bs( nmax*nmax ),
435 $ c( nmax, nmax ), cc( nmax*nmax ),
436 $ cs( nmax*nmax ), ct( nmax )
437 DOUBLE PRECISION G( NMAX )
438 INTEGER IDIM( NIDIM )
440 COMPLEX*16 ALPHA, ALS, BETA, BLS
441 DOUBLE PRECISION ERR, ERRMAX
442 INTEGER I, IA, IB, ICA, ICB, IK, IM, IN, K, KS, LAA,
443 $ lbb, lcc, lda, ldas, ldb, ldbs, ldc, ldcs, m,
444 $ ma, mb, ms, n, na, nargs, nb, nc, ns
445 LOGICAL NULL, RESET, SAME, TRANA, TRANB
446 CHARACTER*1 TRANAS, TRANBS, TRANSA, TRANSB
461 COMMON /infoc/infot, noutc, ok, lerr
484 null = n.LE.0.OR.m.LE.0
490 transa = ich( ica: ica )
491 trana = transa.EQ.
'T'.OR.transa.EQ.
'C'
511 CALL zmake(
'GE',
' ',
' ', ma, na, a, nmax, aa, lda,
515 transb = ich( icb: icb )
516 tranb = transb.EQ.
'T'.OR.transb.EQ.
'C'
536 CALL zmake(
'GE',
' ',
' ', mb, nb, b, nmax, bb,
547 CALL zmake(
'GE',
' ',
' ', m, n, c, nmax,
548 $ cc, ldc, reset, zero )
578 $
WRITE( ntra, fmt = 9995 )nc, sname,
579 $ transa, transb, m, n, k, alpha, lda, ldb,
583 CALL zgemm( transa, transb, m, n, k, alpha,
584 $ aa, lda, bb, ldb, beta, cc, ldc )
589 WRITE( nout, fmt = 9994 )
596 isame( 1 ) = transa.EQ.tranas
597 isame( 2 ) = transb.EQ.tranbs
601 isame( 6 ) = als.EQ.alpha
602 isame( 7 ) = lze( as, aa, laa )
603 isame( 8 ) = ldas.EQ.lda
604 isame( 9 ) = lze( bs, bb, lbb )
605 isame( 10 ) = ldbs.EQ.ldb
606 isame( 11 ) = bls.EQ.beta
608 isame( 12 ) = lze( cs, cc, lcc )
610 isame( 12 ) = lzeres(
'GE',
' ', m, n, cs,
613 isame( 13 ) = ldcs.EQ.ldc
620 same = same.AND.isame( i )
621 IF( .NOT.isame( i ) )
622 $
WRITE( nout, fmt = 9998 )i
633 CALL zmmch( transa, transb, m, n, k,
634 $ alpha, a, nmax, b, nmax, beta,
635 $ c, nmax, ct, g, cc, ldc, eps,
636 $ err, fatal, nout, .true. )
637 errmax = max( errmax, err )
660 IF( errmax.LT.thresh )
THEN
661 WRITE( nout, fmt = 9999 )sname, nc
663 WRITE( nout, fmt = 9997 )sname, nc, errmax
668 WRITE( nout, fmt = 9996 )sname
669 WRITE( nout, fmt = 9995 )nc, sname, transa, transb, m, n, k,
670 $ alpha, lda, ldb, beta, ldc
675 9999
FORMAT(
' ', a6,
' PASSED THE COMPUTATIONAL TESTS (', i6,
' CALL',
677 9998
FORMAT(
' ******* FATAL ERROR - PARAMETER NUMBER ', i2,
' WAS CH',
678 $
'ANGED INCORRECTLY *******' )
679 9997
FORMAT(
' ', a6,
' COMPLETED THE COMPUTATIONAL TESTS (', i6,
' C',
680 $
'ALLS)', /
' ******* BUT WITH MAXIMUM TEST RATIO', f8.2,
681 $
' - SUSPECT *******' )
682 9996
FORMAT(
' ******* ', a6,
' FAILED ON CALL NUMBER:' )
683 9995
FORMAT( 1x, i6,
': ', a6,
'(''', a1,
''',''', a1,
''',',
684 $ 3( i3,
',' ),
'(', f4.1,
',', f4.1,
'), A,', i3,
', B,', i3,
685 $
',(', f4.1,
',', f4.1,
'), C,', i3,
').' )
686 9994
FORMAT(
' ******* FATAL ERROR - ERROR-EXIT TAKEN ON VALID CALL *',
692 SUBROUTINE zchk2( SNAME, EPS, THRESH, NOUT, NTRA, TRACE, REWI,
693 $ FATAL, NIDIM, IDIM, NALF, ALF, NBET, BET, NMAX,
694 $ A, AA, AS, B, BB, BS, C, CC, CS, CT, G )
708 PARAMETER ( ZERO = ( 0.0d0, 0.0d0 ) )
709 DOUBLE PRECISION RZERO
710 PARAMETER ( RZERO = 0.0d0 )
712 DOUBLE PRECISION EPS, THRESH
713 INTEGER NALF, NBET, NIDIM, NMAX, NOUT, NTRA
714 LOGICAL FATAL, REWI, TRACE
717 COMPLEX*16 A( NMAX, NMAX ), AA( NMAX*NMAX ), ALF( NALF ),
718 $ as( nmax*nmax ), b( nmax, nmax ),
719 $ bb( nmax*nmax ), bet( nbet ), bs( nmax*nmax ),
720 $ c( nmax, nmax ), cc( nmax*nmax ),
721 $ cs( nmax*nmax ), ct( nmax )
722 DOUBLE PRECISION G( NMAX )
723 INTEGER IDIM( NIDIM )
725 COMPLEX*16 ALPHA, ALS, BETA, BLS
726 DOUBLE PRECISION ERR, ERRMAX
727 INTEGER I, IA, IB, ICS, ICU, IM, IN, LAA, LBB, LCC,
728 $ LDA, LDAS, LDB, LDBS, LDC, LDCS, M, MS, N, NA,
730 LOGICAL CONJ, LEFT, NULL, RESET, SAME
731 CHARACTER*1 SIDE, SIDES, UPLO, UPLOS
732 CHARACTER*2 ICHS, ICHU
746 COMMON /infoc/infot, noutc, ok, lerr
748 DATA ichs/
'LR'/, ichu/
'UL'/
750 conj = sname( 2: 3 ).EQ.
'HE'
770 null = n.LE.0.OR.m.LE.0
782 CALL zmake(
'GE',
' ',
' ', m, n, b, nmax, bb, ldb, reset,
786 side = ichs( ics: ics )
804 uplo = ichu( icu: icu )
808 CALL zmake( sname( 2: 3 ), uplo,
' ', na, na, a, nmax,
809 $ aa, lda, reset, zero )
819 CALL zmake(
'GE',
' ',
' ', m, n, c, nmax, cc,
849 $
WRITE( ntra, fmt = 9995 )nc, sname, side,
850 $ uplo, m, n, alpha, lda, ldb, beta, ldc
854 CALL zhemm( side, uplo, m, n, alpha, aa, lda,
855 $ bb, ldb, beta, cc, ldc )
857 CALL zsymm( side, uplo, m, n, alpha, aa, lda,
858 $ bb, ldb, beta, cc, ldc )
864 WRITE( nout, fmt = 9994 )
871 isame( 1 ) = sides.EQ.side
872 isame( 2 ) = uplos.EQ.uplo
875 isame( 5 ) = als.EQ.alpha
876 isame( 6 ) = lze( as, aa, laa )
877 isame( 7 ) = ldas.EQ.lda
878 isame( 8 ) = lze( bs, bb, lbb )
879 isame( 9 ) = ldbs.EQ.ldb
880 isame( 10 ) = bls.EQ.beta
882 isame( 11 ) = lze( cs, cc, lcc )
884 isame( 11 ) = lzeres(
'GE',
' ', m, n, cs,
887 isame( 12 ) = ldcs.EQ.ldc
894 same = same.AND.isame( i )
895 IF( .NOT.isame( i ) )
896 $
WRITE( nout, fmt = 9998 )i
908 CALL zmmch(
'N',
'N', m, n, m, alpha, a,
909 $ nmax, b, nmax, beta, c, nmax,
910 $ ct, g, cc, ldc, eps, err,
911 $ fatal, nout, .true. )
913 CALL zmmch(
'N',
'N', m, n, n, alpha, b,
914 $ nmax, a, nmax, beta, c, nmax,
915 $ ct, g, cc, ldc, eps, err,
916 $ fatal, nout, .true. )
918 errmax = max( errmax, err )
939 IF( errmax.LT.thresh )
THEN
940 WRITE( nout, fmt = 9999 )sname, nc
942 WRITE( nout, fmt = 9997 )sname, nc, errmax
947 WRITE( nout, fmt = 9996 )sname
948 WRITE( nout, fmt = 9995 )nc, sname, side, uplo, m, n, alpha, lda,
954 9999
FORMAT(
' ', a6,
' PASSED THE COMPUTATIONAL TESTS (', i6,
' CALL',
956 9998
FORMAT(
' ******* FATAL ERROR - PARAMETER NUMBER ', i2,
' WAS CH',
957 $
'ANGED INCORRECTLY *******' )
958 9997
FORMAT(
' ', a6,
' COMPLETED THE COMPUTATIONAL TESTS (', i6,
' C',
959 $
'ALLS)', /
' ******* BUT WITH MAXIMUM TEST RATIO', f8.2,
960 $
' - SUSPECT *******' )
961 9996
FORMAT(
' ******* ', a6,
' FAILED ON CALL NUMBER:' )
962 9995
FORMAT( 1x, i6,
': ', a6,
'(', 2(
'''', a1,
''',' ), 2( i3,
',' ),
963 $
'(', f4.1,
',', f4.1,
'), A,', i3,
', B,', i3,
',(', f4.1,
964 $
',', f4.1,
'), C,', i3,
') .' )
965 9994
FORMAT(
' ******* FATAL ERROR - ERROR-EXIT TAKEN ON VALID CALL *',
971 SUBROUTINE zchk3( SNAME, EPS, THRESH, NOUT, NTRA, TRACE, REWI,
972 $ FATAL, NIDIM, IDIM, NALF, ALF, NMAX, A, AA, AS,
973 $ B, BB, BS, CT, G, C )
987 PARAMETER ( ZERO = ( 0.0d0, 0.0d0 ),
988 $ one = ( 1.0d0, 0.0d0 ) )
989 DOUBLE PRECISION RZERO
990 PARAMETER ( RZERO = 0.0d0 )
992 DOUBLE PRECISION EPS, THRESH
993 INTEGER NALF, NIDIM, NMAX, NOUT, NTRA
994 LOGICAL FATAL, REWI, TRACE
997 COMPLEX*16 A( NMAX, NMAX ), AA( NMAX*NMAX ), ALF( NALF ),
998 $ as( nmax*nmax ), b( nmax, nmax ),
999 $ bb( nmax*nmax ), bs( nmax*nmax ),
1000 $ c( nmax, nmax ), ct( nmax )
1001 DOUBLE PRECISION G( NMAX )
1002 INTEGER IDIM( NIDIM )
1004 COMPLEX*16 ALPHA, ALS
1005 DOUBLE PRECISION ERR, ERRMAX
1006 INTEGER I, IA, ICD, ICS, ICT, ICU, IM, IN, J, LAA, LBB,
1007 $ lda, ldas, ldb, ldbs, m, ms, n, na, nargs, nc,
1009 LOGICAL LEFT, NULL, RESET, SAME
1010 CHARACTER*1 DIAG, DIAGS, SIDE, SIDES, TRANAS, TRANSA, UPLO,
1012 CHARACTER*2 ICHD, ICHS, ICHU
1018 EXTERNAL lze, lzeres
1024 INTEGER INFOT, NOUTC
1027 COMMON /infoc/infot, noutc, ok, lerr
1029 DATA ichu/
'UL'/, icht/
'NTC'/, ichd/
'UN'/, ichs/
'LR'/
1043 DO 140 im = 1, nidim
1046 DO 130 in = 1, nidim
1056 null = m.LE.0.OR.n.LE.0
1059 side = ichs( ics: ics )
1076 uplo = ichu( icu: icu )
1079 transa = icht( ict: ict )
1082 diag = ichd( icd: icd )
1089 CALL zmake(
'TR', uplo, diag, na, na, a,
1090 $ nmax, aa, lda, reset, zero )
1094 CALL zmake(
'GE',
' ',
' ', m, n, b, nmax,
1095 $ bb, ldb, reset, zero )
1120 IF( sname( 4: 5 ).EQ.
'MM' )
THEN
1122 $
WRITE( ntra, fmt = 9995 )nc, sname,
1123 $ side, uplo, transa, diag, m, n, alpha,
1127 CALL ztrmm( side, uplo, transa, diag, m,
1128 $ n, alpha, aa, lda, bb, ldb )
1129 ELSE IF( sname( 4: 5 ).EQ.
'SM' )
THEN
1131 $
WRITE( ntra, fmt = 9995 )nc, sname,
1132 $ side, uplo, transa, diag, m, n, alpha,
1136 CALL ztrsm( side, uplo, transa, diag, m,
1137 $ n, alpha, aa, lda, bb, ldb )
1143 WRITE( nout, fmt = 9994 )
1150 isame( 1 ) = sides.EQ.side
1151 isame( 2 ) = uplos.EQ.uplo
1152 isame( 3 ) = tranas.EQ.transa
1153 isame( 4 ) = diags.EQ.diag
1154 isame( 5 ) = ms.EQ.m
1155 isame( 6 ) = ns.EQ.n
1156 isame( 7 ) = als.EQ.alpha
1157 isame( 8 ) = lze( as, aa, laa )
1158 isame( 9 ) = ldas.EQ.lda
1160 isame( 10 ) = lze( bs, bb, lbb )
1162 isame( 10 ) = lzeres(
'GE',
' ', m, n, bs,
1165 isame( 11 ) = ldbs.EQ.ldb
1172 same = same.AND.isame( i )
1173 IF( .NOT.isame( i ) )
1174 $
WRITE( nout, fmt = 9998 )i
1182 IF( sname( 4: 5 ).EQ.
'MM' )
THEN
1187 CALL zmmch( transa,
'N', m, n, m,
1188 $ alpha, a, nmax, b, nmax,
1189 $ zero, c, nmax, ct, g,
1190 $ bb, ldb, eps, err,
1191 $ fatal, nout, .true. )
1193 CALL zmmch(
'N', transa, m, n, n,
1194 $ alpha, b, nmax, a, nmax,
1195 $ zero, c, nmax, ct, g,
1196 $ bb, ldb, eps, err,
1197 $ fatal, nout, .true. )
1199 ELSE IF( sname( 4: 5 ).EQ.
'SM' )
THEN
1206 c( i, j ) = bb( i + ( j - 1 )*
1208 bb( i + ( j - 1 )*ldb ) = alpha*
1214 CALL zmmch( transa,
'N', m, n, m,
1215 $ one, a, nmax, c, nmax,
1216 $ zero, b, nmax, ct, g,
1217 $ bb, ldb, eps, err,
1218 $ fatal, nout, .false. )
1220 CALL zmmch(
'N', transa, m, n, n,
1221 $ one, c, nmax, a, nmax,
1222 $ zero, b, nmax, ct, g,
1223 $ bb, ldb, eps, err,
1224 $ fatal, nout, .false. )
1227 errmax = max( errmax, err )
1250 IF( errmax.LT.thresh )
THEN
1251 WRITE( nout, fmt = 9999 )sname, nc
1253 WRITE( nout, fmt = 9997 )sname, nc, errmax
1258 WRITE( nout, fmt = 9996 )sname
1259 WRITE( nout, fmt = 9995 )nc, sname, side, uplo, transa, diag, m,
1260 $ n, alpha, lda, ldb
1265 9999
FORMAT(
' ', a6,
' PASSED THE COMPUTATIONAL TESTS (', i6,
' CALL',
1267 9998
FORMAT(
' ******* FATAL ERROR - PARAMETER NUMBER ', i2,
' WAS CH',
1268 $
'ANGED INCORRECTLY *******' )
1269 9997
FORMAT(
' ', a6,
' COMPLETED THE COMPUTATIONAL TESTS (', i6,
' C',
1270 $
'ALLS)', /
' ******* BUT WITH MAXIMUM TEST RATIO', f8.2,
1271 $
' - SUSPECT *******' )
1272 9996
FORMAT(
' ******* ', a6,
' FAILED ON CALL NUMBER:' )
1273 9995
FORMAT( 1x, i6,
': ', a6,
'(', 4(
'''', a1,
''',' ), 2( i3,
',' ),
1274 $
'(', f4.1,
',', f4.1,
'), A,', i3,
', B,', i3,
') ',
1276 9994
FORMAT(
' ******* FATAL ERROR - ERROR-EXIT TAKEN ON VALID CALL *',
1282 SUBROUTINE zchk4( SNAME, EPS, THRESH, NOUT, NTRA, TRACE, REWI,
1283 $ FATAL, NIDIM, IDIM, NALF, ALF, NBET, BET, NMAX,
1284 $ A, AA, AS, B, BB, BS, C, CC, CS, CT, G )
1298 PARAMETER ( ZERO = ( 0.0d0, 0.0d0 ) )
1299 DOUBLE PRECISION RONE, RZERO
1300 PARAMETER ( RONE = 1.0d0, rzero = 0.0d0 )
1302 DOUBLE PRECISION EPS, THRESH
1303 INTEGER NALF, NBET, NIDIM, NMAX, NOUT, NTRA
1304 LOGICAL FATAL, REWI, TRACE
1307 COMPLEX*16 A( NMAX, NMAX ), AA( NMAX*NMAX ), ALF( NALF ),
1308 $ as( nmax*nmax ), b( nmax, nmax ),
1309 $ bb( nmax*nmax ), bet( nbet ), bs( nmax*nmax ),
1310 $ c( nmax, nmax ), cc( nmax*nmax ),
1311 $ cs( nmax*nmax ), ct( nmax )
1312 DOUBLE PRECISION G( NMAX )
1313 INTEGER IDIM( NIDIM )
1315 COMPLEX*16 ALPHA, ALS, BETA, BETS
1316 DOUBLE PRECISION ERR, ERRMAX, RALPHA, RALS, RBETA, RBETS
1317 INTEGER I, IA, IB, ICT, ICU, IK, IN, J, JC, JJ, K, KS,
1318 $ LAA, LCC, LDA, LDAS, LDC, LDCS, LJ, MA, N, NA,
1320 LOGICAL CONJ, NULL, RESET, SAME, TRAN, UPPER
1321 CHARACTER*1 TRANS, TRANSS, TRANST, UPLO, UPLOS
1322 CHARACTER*2 ICHT, ICHU
1327 EXTERNAL LZE, LZERES
1331 INTRINSIC dcmplx, max, dble
1333 INTEGER INFOT, NOUTC
1336 COMMON /infoc/infot, noutc, ok, lerr
1338 DATA icht/
'NC'/, ichu/
'UL'/
1340 conj = sname( 2: 3 ).EQ.
'HE'
1347 DO 100 in = 1, nidim
1362 trans = icht( ict: ict )
1364 IF( tran.AND..NOT.conj )
1384 CALL zmake(
'GE',
' ',
' ', ma, na, a, nmax, aa, lda,
1388 uplo = ichu( icu: icu )
1394 ralpha = dble( alpha )
1395 alpha = dcmplx( ralpha, rzero )
1401 rbeta = dble( beta )
1402 beta = dcmplx( rbeta, rzero )
1406 $ null = null.OR.( ( k.LE.0.OR.ralpha.EQ.
1407 $ rzero ).AND.rbeta.EQ.rone )
1411 CALL zmake( sname( 2: 3 ), uplo,
' ', n, n, c,
1412 $ nmax, cc, ldc, reset, zero )
1445 $
WRITE( ntra, fmt = 9994 )nc, sname, uplo,
1446 $ trans, n, k, ralpha, lda, rbeta, ldc
1449 CALL zherk( uplo, trans, n, k, ralpha, aa,
1450 $ lda, rbeta, cc, ldc )
1453 $
WRITE( ntra, fmt = 9993 )nc, sname, uplo,
1454 $ trans, n, k, alpha, lda, beta, ldc
1457 CALL zsyrk( uplo, trans, n, k, alpha, aa,
1458 $ lda, beta, cc, ldc )
1464 WRITE( nout, fmt = 9992 )
1471 isame( 1 ) = uplos.EQ.uplo
1472 isame( 2 ) = transs.EQ.trans
1473 isame( 3 ) = ns.EQ.n
1474 isame( 4 ) = ks.EQ.k
1476 isame( 5 ) = rals.EQ.ralpha
1478 isame( 5 ) = als.EQ.alpha
1480 isame( 6 ) = lze( as, aa, laa )
1481 isame( 7 ) = ldas.EQ.lda
1483 isame( 8 ) = rbets.EQ.rbeta
1485 isame( 8 ) = bets.EQ.beta
1488 isame( 9 ) = lze( cs, cc, lcc )
1490 isame( 9 ) = lzeres( sname( 2: 3 ), uplo, n,
1493 isame( 10 ) = ldcs.EQ.ldc
1500 same = same.AND.isame( i )
1501 IF( .NOT.isame( i ) )
1502 $
WRITE( nout, fmt = 9998 )i
1528 CALL zmmch( transt,
'N', lj, 1, k,
1529 $ alpha, a( 1, jj ), nmax,
1530 $ a( 1, j ), nmax, beta,
1531 $ c( jj, j ), nmax, ct, g,
1532 $ cc( jc ), ldc, eps, err,
1533 $ fatal, nout, .true. )
1535 CALL zmmch(
'N', transt, lj, 1, k,
1536 $ alpha, a( jj, 1 ), nmax,
1537 $ a( j, 1 ), nmax, beta,
1538 $ c( jj, j ), nmax, ct, g,
1539 $ cc( jc ), ldc, eps, err,
1540 $ fatal, nout, .true. )
1547 errmax = max( errmax, err )
1569 IF( errmax.LT.thresh )
THEN
1570 WRITE( nout, fmt = 9999 )sname, nc
1572 WRITE( nout, fmt = 9997 )sname, nc, errmax
1578 $
WRITE( nout, fmt = 9995 )j
1581 WRITE( nout, fmt = 9996 )sname
1583 WRITE( nout, fmt = 9994 )nc, sname, uplo, trans, n, k, ralpha,
1586 WRITE( nout, fmt = 9993 )nc, sname, uplo, trans, n, k, alpha,
1593 9999
FORMAT(
' ', a6,
' PASSED THE COMPUTATIONAL TESTS (', i6,
' CALL',
1595 9998
FORMAT(
' ******* FATAL ERROR - PARAMETER NUMBER ', i2,
' WAS CH',
1596 $
'ANGED INCORRECTLY *******' )
1597 9997
FORMAT(
' ', a6,
' COMPLETED THE COMPUTATIONAL TESTS (', i6,
' C',
1598 $
'ALLS)', /
' ******* BUT WITH MAXIMUM TEST RATIO', f8.2,
1599 $
' - SUSPECT *******' )
1600 9996
FORMAT(
' ******* ', a6,
' FAILED ON CALL NUMBER:' )
1601 9995
FORMAT(
' THESE ARE THE RESULTS FOR COLUMN ', i3 )
1602 9994
FORMAT( 1x, i6,
': ', a6,
'(', 2(
'''', a1,
''',' ), 2( i3,
',' ),
1603 $ f4.1,
', A,', i3,
',', f4.1,
', C,', i3,
') ',
1605 9993
FORMAT( 1x, i6,
': ', a6,
'(', 2(
'''', a1,
''',' ), 2( i3,
',' ),
1606 $
'(', f4.1,
',', f4.1,
') , A,', i3,
',(', f4.1,
',', f4.1,
1607 $
'), C,', i3,
') .' )
1608 9992
FORMAT(
' ******* FATAL ERROR - ERROR-EXIT TAKEN ON VALID CALL *',
1614 SUBROUTINE zchk5( SNAME, EPS, THRESH, NOUT, NTRA, TRACE, REWI,
1615 $ FATAL, NIDIM, IDIM, NALF, ALF, NBET, BET, NMAX,
1616 $ AB, AA, AS, BB, BS, C, CC, CS, CT, G, W )
1629 COMPLEX*16 ZERO, ONE
1630 PARAMETER ( ZERO = ( 0.0d0, 0.0d0 ),
1631 $ one = ( 1.0d0, 0.0d0 ) )
1632 DOUBLE PRECISION RONE, RZERO
1633 PARAMETER ( RONE = 1.0d0, rzero = 0.0d0 )
1635 DOUBLE PRECISION EPS, THRESH
1636 INTEGER NALF, NBET, NIDIM, NMAX, NOUT, NTRA
1637 LOGICAL FATAL, REWI, TRACE
1640 COMPLEX*16 AA( NMAX*NMAX ), AB( 2*NMAX*NMAX ),
1641 $ ALF( NALF ), AS( NMAX*NMAX ), BB( NMAX*NMAX ),
1642 $ bet( nbet ), bs( nmax*nmax ), c( nmax, nmax ),
1643 $ cc( nmax*nmax ), cs( nmax*nmax ), ct( nmax ),
1645 DOUBLE PRECISION G( NMAX )
1646 INTEGER IDIM( NIDIM )
1648 COMPLEX*16 ALPHA, ALS, BETA, BETS
1649 DOUBLE PRECISION ERR, ERRMAX, RBETA, RBETS
1650 INTEGER I, IA, IB, ICT, ICU, IK, IN, J, JC, JJ, JJAB,
1651 $ K, KS, LAA, LBB, LCC, LDA, LDAS, LDB, LDBS,
1652 $ LDC, LDCS, LJ, MA, N, NA, NARGS, NC, NS
1653 LOGICAL CONJ, NULL, RESET, SAME, TRAN, UPPER
1654 CHARACTER*1 TRANS, TRANSS, TRANST, UPLO, UPLOS
1655 CHARACTER*2 ICHT, ICHU
1660 EXTERNAL lze, lzeres
1664 INTRINSIC dcmplx, dconjg, max, dble
1666 INTEGER INFOT, NOUTC
1669 COMMON /infoc/infot, noutc, ok, lerr
1671 DATA icht/
'NC'/, ichu/
'UL'/
1673 conj = sname( 2: 3 ).EQ.
'HE'
1680 DO 130 in = 1, nidim
1691 DO 120 ik = 1, nidim
1695 trans = icht( ict: ict )
1697 IF( tran.AND..NOT.conj )
1718 CALL zmake(
'GE',
' ',
' ', ma, na, ab, 2*nmax, aa,
1719 $ lda, reset, zero )
1721 CALL zmake(
'GE',
' ',
' ', ma, na, ab, nmax, aa, lda,
1730 CALL zmake(
'GE',
' ',
' ', ma, na, ab( k + 1 ),
1731 $ 2*nmax, bb, ldb, reset, zero )
1733 CALL zmake(
'GE',
' ',
' ', ma, na, ab( k*nmax + 1 ),
1734 $ nmax, bb, ldb, reset, zero )
1738 uplo = ichu( icu: icu )
1747 rbeta = dble( beta )
1748 beta = dcmplx( rbeta, rzero )
1752 $ null = null.OR.( ( k.LE.0.OR.alpha.EQ.
1753 $ zero ).AND.rbeta.EQ.rone )
1757 CALL zmake( sname( 2: 3 ), uplo,
' ', n, n, c,
1758 $ nmax, cc, ldc, reset, zero )
1791 $
WRITE( ntra, fmt = 9994 )nc, sname, uplo,
1792 $ trans, n, k, alpha, lda, ldb, rbeta, ldc
1795 CALL zher2k( uplo, trans, n, k, alpha, aa,
1796 $ lda, bb, ldb, rbeta, cc, ldc )
1799 $
WRITE( ntra, fmt = 9993 )nc, sname, uplo,
1800 $ trans, n, k, alpha, lda, ldb, beta, ldc
1803 CALL zsyr2k( uplo, trans, n, k, alpha, aa,
1804 $ lda, bb, ldb, beta, cc, ldc )
1810 WRITE( nout, fmt = 9992 )
1817 isame( 1 ) = uplos.EQ.uplo
1818 isame( 2 ) = transs.EQ.trans
1819 isame( 3 ) = ns.EQ.n
1820 isame( 4 ) = ks.EQ.k
1821 isame( 5 ) = als.EQ.alpha
1822 isame( 6 ) = lze( as, aa, laa )
1823 isame( 7 ) = ldas.EQ.lda
1824 isame( 8 ) = lze( bs, bb, lbb )
1825 isame( 9 ) = ldbs.EQ.ldb
1827 isame( 10 ) = rbets.EQ.rbeta
1829 isame( 10 ) = bets.EQ.beta
1832 isame( 11 ) = lze( cs, cc, lcc )
1834 isame( 11 ) = lzeres(
'HE', uplo, n, n, cs,
1837 isame( 12 ) = ldcs.EQ.ldc
1844 same = same.AND.isame( i )
1845 IF( .NOT.isame( i ) )
1846 $
WRITE( nout, fmt = 9998 )i
1874 w( i ) = alpha*ab( ( j - 1 )*2*
1877 w( k + i ) = dconjg( alpha )*
1886 CALL zmmch( transt,
'N', lj, 1, 2*k,
1887 $ one, ab( jjab ), 2*nmax, w,
1888 $ 2*nmax, beta, c( jj, j ),
1889 $ nmax, ct, g, cc( jc ), ldc,
1890 $ eps, err, fatal, nout,
1895 w( i ) = alpha*dconjg( ab( ( k +
1896 $ i - 1 )*nmax + j ) )
1897 w( k + i ) = dconjg( alpha*
1898 $ ab( ( i - 1 )*nmax +
1901 w( i ) = alpha*ab( ( k + i - 1 )*
1904 $ ab( ( i - 1 )*nmax +
1908 CALL zmmch(
'N',
'N', lj, 1, 2*k, one,
1909 $ ab( jj ), nmax, w, 2*nmax,
1910 $ beta, c( jj, j ), nmax, ct,
1911 $ g, cc( jc ), ldc, eps, err,
1912 $ fatal, nout, .true. )
1919 $ jjab = jjab + 2*nmax
1921 errmax = max( errmax, err )
1943 IF( errmax.LT.thresh )
THEN
1944 WRITE( nout, fmt = 9999 )sname, nc
1946 WRITE( nout, fmt = 9997 )sname, nc, errmax
1952 $
WRITE( nout, fmt = 9995 )j
1955 WRITE( nout, fmt = 9996 )sname
1957 WRITE( nout, fmt = 9994 )nc, sname, uplo, trans, n, k, alpha,
1958 $ lda, ldb, rbeta, ldc
1960 WRITE( nout, fmt = 9993 )nc, sname, uplo, trans, n, k, alpha,
1961 $ lda, ldb, beta, ldc
1967 9999
FORMAT(
' ', a6,
' PASSED THE COMPUTATIONAL TESTS (', i6,
' CALL',
1969 9998
FORMAT(
' ******* FATAL ERROR - PARAMETER NUMBER ', i2,
' WAS CH',
1970 $
'ANGED INCORRECTLY *******' )
1971 9997
FORMAT(
' ', a6,
' COMPLETED THE COMPUTATIONAL TESTS (', i6,
' C',
1972 $
'ALLS)', /
' ******* BUT WITH MAXIMUM TEST RATIO', f8.2,
1973 $
' - SUSPECT *******' )
1974 9996
FORMAT(
' ******* ', a6,
' FAILED ON CALL NUMBER:' )
1975 9995
FORMAT(
' THESE ARE THE RESULTS FOR COLUMN ', i3 )
1976 9994
FORMAT( 1x, i6,
': ', a6,
'(', 2(
'''', a1,
''',' ), 2( i3,
',' ),
1977 $
'(', f4.1,
',', f4.1,
'), A,', i3,
', B,', i3,
',', f4.1,
1978 $
', C,', i3,
') .' )
1979 9993
FORMAT( 1x, i6,
': ', a6,
'(', 2(
'''', a1,
''',' ), 2( i3,
',' ),
1980 $
'(', f4.1,
',', f4.1,
'), A,', i3,
', B,', i3,
',(', f4.1,
1981 $
',', f4.1,
'), C,', i3,
') .' )
1982 9992
FORMAT(
' ******* FATAL ERROR - ERROR-EXIT TAKEN ON VALID CALL *',
1988 SUBROUTINE zchke( ISNUM, SRNAMT, NOUT )
2011 INTEGER INFOT, NOUTC
2015 PARAMETER ( ONE = 1.0d0, two = 2.0d0 )
2017 COMPLEX*16 ALPHA, BETA
2018 DOUBLE PRECISION RALPHA, RBETA
2020 COMPLEX*16 A( 2, 1 ), B( 2, 1 ), C( 2, 1 )
2027 COMMON /infoc/infot, noutc, ok, lerr
2038 alpha = dcmplx( one, -one )
2039 beta = dcmplx( two, -two )
2043 GO TO ( 10, 20, 30, 40, 50, 60, 70, 80,
2046 CALL zgemm(
'/',
'N', 0, 0, 0, alpha, a, 1, b, 1, beta, c, 1 )
2047 CALL chkxer( srnamt, infot, nout, lerr, ok )
2049 CALL zgemm(
'/',
'C', 0, 0, 0, alpha, a, 1, b, 1, beta, c, 1 )
2050 CALL chkxer( srnamt, infot, nout, lerr, ok )
2052 CALL zgemm(
'/',
'T', 0, 0, 0, alpha, a, 1, b, 1, beta, c, 1 )
2053 CALL chkxer( srnamt, infot, nout, lerr, ok )
2055 CALL zgemm(
'N',
'/', 0, 0, 0, alpha, a, 1, b, 1, beta, c, 1 )
2056 CALL chkxer( srnamt, infot, nout, lerr, ok )
2058 CALL zgemm(
'C',
'/', 0, 0, 0, alpha, a, 1, b, 1, beta, c, 1 )
2059 CALL chkxer( srnamt, infot, nout, lerr, ok )
2061 CALL zgemm(
'T',
'/', 0, 0, 0, alpha, a, 1, b, 1, beta, c, 1 )
2062 CALL chkxer( srnamt, infot, nout, lerr, ok )
2064 CALL zgemm(
'N',
'N', -1, 0, 0, alpha, a, 1, b, 1, beta, c, 1 )
2065 CALL chkxer( srnamt, infot, nout, lerr, ok )
2067 CALL zgemm(
'N',
'C', -1, 0, 0, alpha, a, 1, b, 1, beta, c, 1 )
2068 CALL chkxer( srnamt, infot, nout, lerr, ok )
2070 CALL zgemm(
'N',
'T', -1, 0, 0, alpha, a, 1, b, 1, beta, c, 1 )
2071 CALL chkxer( srnamt, infot, nout, lerr, ok )
2073 CALL zgemm(
'C',
'N', -1, 0, 0, alpha, a, 1, b, 1, beta, c, 1 )
2074 CALL chkxer( srnamt, infot, nout, lerr, ok )
2076 CALL zgemm(
'C',
'C', -1, 0, 0, alpha, a, 1, b, 1, beta, c, 1 )
2077 CALL chkxer( srnamt, infot, nout, lerr, ok )
2079 CALL zgemm(
'C',
'T', -1, 0, 0, alpha, a, 1, b, 1, beta, c, 1 )
2080 CALL chkxer( srnamt, infot, nout, lerr, ok )
2082 CALL zgemm(
'T',
'N', -1, 0, 0, alpha, a, 1, b, 1, beta, c, 1 )
2083 CALL chkxer( srnamt, infot, nout, lerr, ok )
2085 CALL zgemm(
'T',
'C', -1, 0, 0, alpha, a, 1, b, 1, beta, c, 1 )
2086 CALL chkxer( srnamt, infot, nout, lerr, ok )
2088 CALL zgemm(
'T',
'T', -1, 0, 0, alpha, a, 1, b, 1, beta, c, 1 )
2089 CALL chkxer( srnamt, infot, nout, lerr, ok )
2091 CALL zgemm(
'N',
'N', 0, -1, 0, alpha, a, 1, b, 1, beta, c, 1 )
2092 CALL chkxer( srnamt, infot, nout, lerr, ok )
2094 CALL zgemm(
'N',
'C', 0, -1, 0, alpha, a, 1, b, 1, beta, c, 1 )
2095 CALL chkxer( srnamt, infot, nout, lerr, ok )
2097 CALL zgemm(
'N',
'T', 0, -1, 0, alpha, a, 1, b, 1, beta, c, 1 )
2098 CALL chkxer( srnamt, infot, nout, lerr, ok )
2100 CALL zgemm(
'C',
'N', 0, -1, 0, alpha, a, 1, b, 1, beta, c, 1 )
2101 CALL chkxer( srnamt, infot, nout, lerr, ok )
2103 CALL zgemm(
'C',
'C', 0, -1, 0, alpha, a, 1, b, 1, beta, c, 1 )
2104 CALL chkxer( srnamt, infot, nout, lerr, ok )
2106 CALL zgemm(
'C',
'T', 0, -1, 0, alpha, a, 1, b, 1, beta, c, 1 )
2107 CALL chkxer( srnamt, infot, nout, lerr, ok )
2109 CALL zgemm(
'T',
'N', 0, -1, 0, alpha, a, 1, b, 1, beta, c, 1 )
2110 CALL chkxer( srnamt, infot, nout, lerr, ok )
2112 CALL zgemm(
'T',
'C', 0, -1, 0, alpha, a, 1, b, 1, beta, c, 1 )
2113 CALL chkxer( srnamt, infot, nout, lerr, ok )
2115 CALL zgemm(
'T',
'T', 0, -1, 0, alpha, a, 1, b, 1, beta, c, 1 )
2116 CALL chkxer( srnamt, infot, nout, lerr, ok )
2118 CALL zgemm(
'N',
'N', 0, 0, -1, alpha, a, 1, b, 1, beta, c, 1 )
2119 CALL chkxer( srnamt, infot, nout, lerr, ok )
2121 CALL zgemm(
'N',
'C', 0, 0, -1, alpha, a, 1, b, 1, beta, c, 1 )
2122 CALL chkxer( srnamt, infot, nout, lerr, ok )
2124 CALL zgemm(
'N',
'T', 0, 0, -1, alpha, a, 1, b, 1, beta, c, 1 )
2125 CALL chkxer( srnamt, infot, nout, lerr, ok )
2127 CALL zgemm(
'C',
'N', 0, 0, -1, alpha, a, 1, b, 1, beta, c, 1 )
2128 CALL chkxer( srnamt, infot, nout, lerr, ok )
2130 CALL zgemm(
'C',
'C', 0, 0, -1, alpha, a, 1, b, 1, beta, c, 1 )
2131 CALL chkxer( srnamt, infot, nout, lerr, ok )
2133 CALL zgemm(
'C',
'T', 0, 0, -1, alpha, a, 1, b, 1, beta, c, 1 )
2134 CALL chkxer( srnamt, infot, nout, lerr, ok )
2136 CALL zgemm(
'T',
'N', 0, 0, -1, alpha, a, 1, b, 1, beta, c, 1 )
2137 CALL chkxer( srnamt, infot, nout, lerr, ok )
2139 CALL zgemm(
'T',
'C', 0, 0, -1, alpha, a, 1, b, 1, beta, c, 1 )
2140 CALL chkxer( srnamt, infot, nout, lerr, ok )
2142 CALL zgemm(
'T',
'T', 0, 0, -1, alpha, a, 1, b, 1, beta, c, 1 )
2143 CALL chkxer( srnamt, infot, nout, lerr, ok )
2145 CALL zgemm(
'N',
'N', 2, 0, 0, alpha, a, 1, b, 1, beta, c, 2 )
2146 CALL chkxer( srnamt, infot, nout, lerr, ok )
2148 CALL zgemm(
'N',
'C', 2, 0, 0, alpha, a, 1, b, 1, beta, c, 2 )
2149 CALL chkxer( srnamt, infot, nout, lerr, ok )
2151 CALL zgemm(
'N',
'T', 2, 0, 0, alpha, a, 1, b, 1, beta, c, 2 )
2152 CALL chkxer( srnamt, infot, nout, lerr, ok )
2154 CALL zgemm(
'C',
'N', 0, 0, 2, alpha, a, 1, b, 2, beta, c, 1 )
2155 CALL chkxer( srnamt, infot, nout, lerr, ok )
2157 CALL zgemm(
'C',
'C', 0, 0, 2, alpha, a, 1, b, 1, beta, c, 1 )
2158 CALL chkxer( srnamt, infot, nout, lerr, ok )
2160 CALL zgemm(
'C',
'T', 0, 0, 2, alpha, a, 1, b, 1, beta, c, 1 )
2161 CALL chkxer( srnamt, infot, nout, lerr, ok )
2163 CALL zgemm(
'T',
'N', 0, 0, 2, alpha, a, 1, b, 2, beta, c, 1 )
2164 CALL chkxer( srnamt, infot, nout, lerr, ok )
2166 CALL zgemm(
'T',
'C', 0, 0, 2, alpha, a, 1, b, 1, beta, c, 1 )
2167 CALL chkxer( srnamt, infot, nout, lerr, ok )
2169 CALL zgemm(
'T',
'T', 0, 0, 2, alpha, a, 1, b, 1, beta, c, 1 )
2170 CALL chkxer( srnamt, infot, nout, lerr, ok )
2172 CALL zgemm(
'N',
'N', 0, 0, 2, alpha, a, 1, b, 1, beta, c, 1 )
2173 CALL chkxer( srnamt, infot, nout, lerr, ok )
2175 CALL zgemm(
'C',
'N', 0, 0, 2, alpha, a, 2, b, 1, beta, c, 1 )
2176 CALL chkxer( srnamt, infot, nout, lerr, ok )
2178 CALL zgemm(
'T',
'N', 0, 0, 2, alpha, a, 2, b, 1, beta, c, 1 )
2179 CALL chkxer( srnamt, infot, nout, lerr, ok )
2181 CALL zgemm(
'N',
'C', 0, 2, 0, alpha, a, 1, b, 1, beta, c, 1 )
2182 CALL chkxer( srnamt, infot, nout, lerr, ok )
2184 CALL zgemm(
'C',
'C', 0, 2, 0, alpha, a, 1, b, 1, beta, c, 1 )
2185 CALL chkxer( srnamt, infot, nout, lerr, ok )
2187 CALL zgemm(
'T',
'C', 0, 2, 0, alpha, a, 1, b, 1, beta, c, 1 )
2188 CALL chkxer( srnamt, infot, nout, lerr, ok )
2190 CALL zgemm(
'N',
'T', 0, 2, 0, alpha, a, 1, b, 1, beta, c, 1 )
2191 CALL chkxer( srnamt, infot, nout, lerr, ok )
2193 CALL zgemm(
'C',
'T', 0, 2, 0, alpha, a, 1, b, 1, beta, c, 1 )
2194 CALL chkxer( srnamt, infot, nout, lerr, ok )
2196 CALL zgemm(
'T',
'T', 0, 2, 0, alpha, a, 1, b, 1, beta, c, 1 )
2197 CALL chkxer( srnamt, infot, nout, lerr, ok )
2199 CALL zgemm(
'N',
'N', 2, 0, 0, alpha, a, 2, b, 1, beta, c, 1 )
2200 CALL chkxer( srnamt, infot, nout, lerr, ok )
2202 CALL zgemm(
'N',
'C', 2, 0, 0, alpha, a, 2, b, 1, beta, c, 1 )
2203 CALL chkxer( srnamt, infot, nout, lerr, ok )
2205 CALL zgemm(
'N',
'T', 2, 0, 0, alpha, a, 2, b, 1, beta, c, 1 )
2206 CALL chkxer( srnamt, infot, nout, lerr, ok )
2208 CALL zgemm(
'C',
'N', 2, 0, 0, alpha, a, 1, b, 1, beta, c, 1 )
2209 CALL chkxer( srnamt, infot, nout, lerr, ok )
2211 CALL zgemm(
'C',
'C', 2, 0, 0, alpha, a, 1, b, 1, beta, c, 1 )
2212 CALL chkxer( srnamt, infot, nout, lerr, ok )
2214 CALL zgemm(
'C',
'T', 2, 0, 0, alpha, a, 1, b, 1, beta, c, 1 )
2215 CALL chkxer( srnamt, infot, nout, lerr, ok )
2217 CALL zgemm(
'T',
'N', 2, 0, 0, alpha, a, 1, b, 1, beta, c, 1 )
2218 CALL chkxer( srnamt, infot, nout, lerr, ok )
2220 CALL zgemm(
'T',
'C', 2, 0, 0, alpha, a, 1, b, 1, beta, c, 1 )
2221 CALL chkxer( srnamt, infot, nout, lerr, ok )
2223 CALL zgemm(
'T',
'T', 2, 0, 0, alpha, a, 1, b, 1, beta, c, 1 )
2224 CALL chkxer( srnamt, infot, nout, lerr, ok )
2227 CALL zhemm(
'/',
'U', 0, 0, alpha, a, 1, b, 1, beta, c, 1 )
2228 CALL chkxer( srnamt, infot, nout, lerr, ok )
2230 CALL zhemm(
'L',
'/', 0, 0, alpha, a, 1, b, 1, beta, c, 1 )
2231 CALL chkxer( srnamt, infot, nout, lerr, ok )
2233 CALL zhemm(
'L',
'U', -1, 0, alpha, a, 1, b, 1, beta, c, 1 )
2234 CALL chkxer( srnamt, infot, nout, lerr, ok )
2236 CALL zhemm(
'R',
'U', -1, 0, alpha, a, 1, b, 1, beta, c, 1 )
2237 CALL chkxer( srnamt, infot, nout, lerr, ok )
2239 CALL zhemm(
'L',
'L', -1, 0, alpha, a, 1, b, 1, beta, c, 1 )
2240 CALL chkxer( srnamt, infot, nout, lerr, ok )
2242 CALL zhemm(
'R',
'L', -1, 0, alpha, a, 1, b, 1, beta, c, 1 )
2243 CALL chkxer( srnamt, infot, nout, lerr, ok )
2245 CALL zhemm(
'L',
'U', 0, -1, alpha, a, 1, b, 1, beta, c, 1 )
2246 CALL chkxer( srnamt, infot, nout, lerr, ok )
2248 CALL zhemm(
'R',
'U', 0, -1, alpha, a, 1, b, 1, beta, c, 1 )
2249 CALL chkxer( srnamt, infot, nout, lerr, ok )
2251 CALL zhemm(
'L',
'L', 0, -1, alpha, a, 1, b, 1, beta, c, 1 )
2252 CALL chkxer( srnamt, infot, nout, lerr, ok )
2254 CALL zhemm(
'R',
'L', 0, -1, alpha, a, 1, b, 1, beta, c, 1 )
2255 CALL chkxer( srnamt, infot, nout, lerr, ok )
2257 CALL zhemm(
'L',
'U', 2, 0, alpha, a, 1, b, 2, beta, c, 2 )
2258 CALL chkxer( srnamt, infot, nout, lerr, ok )
2260 CALL zhemm(
'R',
'U', 0, 2, alpha, a, 1, b, 1, beta, c, 1 )
2261 CALL chkxer( srnamt, infot, nout, lerr, ok )
2263 CALL zhemm(
'L',
'L', 2, 0, alpha, a, 1, b, 2, beta, c, 2 )
2264 CALL chkxer( srnamt, infot, nout, lerr, ok )
2266 CALL zhemm(
'R',
'L', 0, 2, alpha, a, 1, b, 1, beta, c, 1 )
2267 CALL chkxer( srnamt, infot, nout, lerr, ok )
2269 CALL zhemm(
'L',
'U', 2, 0, alpha, a, 2, b, 1, beta, c, 2 )
2270 CALL chkxer( srnamt, infot, nout, lerr, ok )
2272 CALL zhemm(
'R',
'U', 2, 0, alpha, a, 1, b, 1, beta, c, 2 )
2273 CALL chkxer( srnamt, infot, nout, lerr, ok )
2275 CALL zhemm(
'L',
'L', 2, 0, alpha, a, 2, b, 1, beta, c, 2 )
2276 CALL chkxer( srnamt, infot, nout, lerr, ok )
2278 CALL zhemm(
'R',
'L', 2, 0, alpha, a, 1, b, 1, beta, c, 2 )
2279 CALL chkxer( srnamt, infot, nout, lerr, ok )
2281 CALL zhemm(
'L',
'U', 2, 0, alpha, a, 2, b, 2, beta, c, 1 )
2282 CALL chkxer( srnamt, infot, nout, lerr, ok )
2284 CALL zhemm(
'R',
'U', 2, 0, alpha, a, 1, b, 2, beta, c, 1 )
2285 CALL chkxer( srnamt, infot, nout, lerr, ok )
2287 CALL zhemm(
'L',
'L', 2, 0, alpha, a, 2, b, 2, beta, c, 1 )
2288 CALL chkxer( srnamt, infot, nout, lerr, ok )
2290 CALL zhemm(
'R',
'L', 2, 0, alpha, a, 1, b, 2, beta, c, 1 )
2291 CALL chkxer( srnamt, infot, nout, lerr, ok )
2294 CALL zsymm(
'/',
'U', 0, 0, alpha, a, 1, b, 1, beta, c, 1 )
2295 CALL chkxer( srnamt, infot, nout, lerr, ok )
2297 CALL zsymm(
'L',
'/', 0, 0, alpha, a, 1, b, 1, beta, c, 1 )
2298 CALL chkxer( srnamt, infot, nout, lerr, ok )
2300 CALL zsymm(
'L',
'U', -1, 0, alpha, a, 1, b, 1, beta, c, 1 )
2301 CALL chkxer( srnamt, infot, nout, lerr, ok )
2303 CALL zsymm(
'R',
'U', -1, 0, alpha, a, 1, b, 1, beta, c, 1 )
2304 CALL chkxer( srnamt, infot, nout, lerr, ok )
2306 CALL zsymm(
'L',
'L', -1, 0, alpha, a, 1, b, 1, beta, c, 1 )
2307 CALL chkxer( srnamt, infot, nout, lerr, ok )
2309 CALL zsymm(
'R',
'L', -1, 0, alpha, a, 1, b, 1, beta, c, 1 )
2310 CALL chkxer( srnamt, infot, nout, lerr, ok )
2312 CALL zsymm(
'L',
'U', 0, -1, alpha, a, 1, b, 1, beta, c, 1 )
2313 CALL chkxer( srnamt, infot, nout, lerr, ok )
2315 CALL zsymm(
'R',
'U', 0, -1, alpha, a, 1, b, 1, beta, c, 1 )
2316 CALL chkxer( srnamt, infot, nout, lerr, ok )
2318 CALL zsymm(
'L',
'L', 0, -1, alpha, a, 1, b, 1, beta, c, 1 )
2319 CALL chkxer( srnamt, infot, nout, lerr, ok )
2321 CALL zsymm(
'R',
'L', 0, -1, alpha, a, 1, b, 1, beta, c, 1 )
2322 CALL chkxer( srnamt, infot, nout, lerr, ok )
2324 CALL zsymm(
'L',
'U', 2, 0, alpha, a, 1, b, 2, beta, c, 2 )
2325 CALL chkxer( srnamt, infot, nout, lerr, ok )
2327 CALL zsymm(
'R',
'U', 0, 2, alpha, a, 1, b, 1, beta, c, 1 )
2328 CALL chkxer( srnamt, infot, nout, lerr, ok )
2330 CALL zsymm(
'L',
'L', 2, 0, alpha, a, 1, b, 2, beta, c, 2 )
2331 CALL chkxer( srnamt, infot, nout, lerr, ok )
2333 CALL zsymm(
'R',
'L', 0, 2, alpha, a, 1, b, 1, beta, c, 1 )
2334 CALL chkxer( srnamt, infot, nout, lerr, ok )
2336 CALL zsymm(
'L',
'U', 2, 0, alpha, a, 2, b, 1, beta, c, 2 )
2337 CALL chkxer( srnamt, infot, nout, lerr, ok )
2339 CALL zsymm(
'R',
'U', 2, 0, alpha, a, 1, b, 1, beta, c, 2 )
2340 CALL chkxer( srnamt, infot, nout, lerr, ok )
2342 CALL zsymm(
'L',
'L', 2, 0, alpha, a, 2, b, 1, beta, c, 2 )
2343 CALL chkxer( srnamt, infot, nout, lerr, ok )
2345 CALL zsymm(
'R',
'L', 2, 0, alpha, a, 1, b, 1, beta, c, 2 )
2346 CALL chkxer( srnamt, infot, nout, lerr, ok )
2348 CALL zsymm(
'L',
'U', 2, 0, alpha, a, 2, b, 2, beta, c, 1 )
2349 CALL chkxer( srnamt, infot, nout, lerr, ok )
2351 CALL zsymm(
'R',
'U', 2, 0, alpha, a, 1, b, 2, beta, c, 1 )
2352 CALL chkxer( srnamt, infot, nout, lerr, ok )
2354 CALL zsymm(
'L',
'L', 2, 0, alpha, a, 2, b, 2, beta, c, 1 )
2355 CALL chkxer( srnamt, infot, nout, lerr, ok )
2357 CALL zsymm(
'R',
'L', 2, 0, alpha, a, 1, b, 2, beta, c, 1 )
2358 CALL chkxer( srnamt, infot, nout, lerr, ok )
2361 CALL ztrmm(
'/',
'U',
'N',
'N', 0, 0, alpha, a, 1, b, 1 )
2362 CALL chkxer( srnamt, infot, nout, lerr, ok )
2364 CALL ztrmm(
'L',
'/',
'N',
'N', 0, 0, alpha, a, 1, b, 1 )
2365 CALL chkxer( srnamt, infot, nout, lerr, ok )
2367 CALL ztrmm(
'L',
'U',
'/',
'N', 0, 0, alpha, a, 1, b, 1 )
2368 CALL chkxer( srnamt, infot, nout, lerr, ok )
2370 CALL ztrmm(
'L',
'U',
'N',
'/', 0, 0, alpha, a, 1, b, 1 )
2371 CALL chkxer( srnamt, infot, nout, lerr, ok )
2373 CALL ztrmm(
'L',
'U',
'N',
'N', -1, 0, alpha, a, 1, b, 1 )
2374 CALL chkxer( srnamt, infot, nout, lerr, ok )
2376 CALL ztrmm(
'L',
'U',
'C',
'N', -1, 0, alpha, a, 1, b, 1 )
2377 CALL chkxer( srnamt, infot, nout, lerr, ok )
2379 CALL ztrmm(
'L',
'U',
'T',
'N', -1, 0, alpha, a, 1, b, 1 )
2380 CALL chkxer( srnamt, infot, nout, lerr, ok )
2382 CALL ztrmm(
'R',
'U',
'N',
'N', -1, 0, alpha, a, 1, b, 1 )
2383 CALL chkxer( srnamt, infot, nout, lerr, ok )
2385 CALL ztrmm(
'R',
'U',
'C',
'N', -1, 0, alpha, a, 1, b, 1 )
2386 CALL chkxer( srnamt, infot, nout, lerr, ok )
2388 CALL ztrmm(
'R',
'U',
'T',
'N', -1, 0, alpha, a, 1, b, 1 )
2389 CALL chkxer( srnamt, infot, nout, lerr, ok )
2391 CALL ztrmm(
'L',
'L',
'N',
'N', -1, 0, alpha, a, 1, b, 1 )
2392 CALL chkxer( srnamt, infot, nout, lerr, ok )
2394 CALL ztrmm(
'L',
'L',
'C',
'N', -1, 0, alpha, a, 1, b, 1 )
2395 CALL chkxer( srnamt, infot, nout, lerr, ok )
2397 CALL ztrmm(
'L',
'L',
'T',
'N', -1, 0, alpha, a, 1, b, 1 )
2398 CALL chkxer( srnamt, infot, nout, lerr, ok )
2400 CALL ztrmm(
'R',
'L',
'N',
'N', -1, 0, alpha, a, 1, b, 1 )
2401 CALL chkxer( srnamt, infot, nout, lerr, ok )
2403 CALL ztrmm(
'R',
'L',
'C',
'N', -1, 0, alpha, a, 1, b, 1 )
2404 CALL chkxer( srnamt, infot, nout, lerr, ok )
2406 CALL ztrmm(
'R',
'L',
'T',
'N', -1, 0, alpha, a, 1, b, 1 )
2407 CALL chkxer( srnamt, infot, nout, lerr, ok )
2409 CALL ztrmm(
'L',
'U',
'N',
'N', 0, -1, alpha, a, 1, b, 1 )
2410 CALL chkxer( srnamt, infot, nout, lerr, ok )
2412 CALL ztrmm(
'L',
'U',
'C',
'N', 0, -1, alpha, a, 1, b, 1 )
2413 CALL chkxer( srnamt, infot, nout, lerr, ok )
2415 CALL ztrmm(
'L',
'U',
'T',
'N', 0, -1, alpha, a, 1, b, 1 )
2416 CALL chkxer( srnamt, infot, nout, lerr, ok )
2418 CALL ztrmm(
'R',
'U',
'N',
'N', 0, -1, alpha, a, 1, b, 1 )
2419 CALL chkxer( srnamt, infot, nout, lerr, ok )
2421 CALL ztrmm(
'R',
'U',
'C',
'N', 0, -1, alpha, a, 1, b, 1 )
2422 CALL chkxer( srnamt, infot, nout, lerr, ok )
2424 CALL ztrmm(
'R',
'U',
'T',
'N', 0, -1, alpha, a, 1, b, 1 )
2425 CALL chkxer( srnamt, infot, nout, lerr, ok )
2427 CALL ztrmm(
'L',
'L',
'N',
'N', 0, -1, alpha, a, 1, b, 1 )
2428 CALL chkxer( srnamt, infot, nout, lerr, ok )
2430 CALL ztrmm(
'L',
'L',
'C',
'N', 0, -1, alpha, a, 1, b, 1 )
2431 CALL chkxer( srnamt, infot, nout, lerr, ok )
2433 CALL ztrmm(
'L',
'L',
'T',
'N', 0, -1, alpha, a, 1, b, 1 )
2434 CALL chkxer( srnamt, infot, nout, lerr, ok )
2436 CALL ztrmm(
'R',
'L',
'N',
'N', 0, -1, alpha, a, 1, b, 1 )
2437 CALL chkxer( srnamt, infot, nout, lerr, ok )
2439 CALL ztrmm(
'R',
'L',
'C',
'N', 0, -1, alpha, a, 1, b, 1 )
2440 CALL chkxer( srnamt, infot, nout, lerr, ok )
2442 CALL ztrmm(
'R',
'L',
'T',
'N', 0, -1, alpha, a, 1, b, 1 )
2443 CALL chkxer( srnamt, infot, nout, lerr, ok )
2445 CALL ztrmm(
'L',
'U',
'N',
'N', 2, 0, alpha, a, 1, b, 2 )
2446 CALL chkxer( srnamt, infot, nout, lerr, ok )
2448 CALL ztrmm(
'L',
'U',
'C',
'N', 2, 0, alpha, a, 1, b, 2 )
2449 CALL chkxer( srnamt, infot, nout, lerr, ok )
2451 CALL ztrmm(
'L',
'U',
'T',
'N', 2, 0, alpha, a, 1, b, 2 )
2452 CALL chkxer( srnamt, infot, nout, lerr, ok )
2454 CALL ztrmm(
'R',
'U',
'N',
'N', 0, 2, alpha, a, 1, b, 1 )
2455 CALL chkxer( srnamt, infot, nout, lerr, ok )
2457 CALL ztrmm(
'R',
'U',
'C',
'N', 0, 2, alpha, a, 1, b, 1 )
2458 CALL chkxer( srnamt, infot, nout, lerr, ok )
2460 CALL ztrmm(
'R',
'U',
'T',
'N', 0, 2, alpha, a, 1, b, 1 )
2461 CALL chkxer( srnamt, infot, nout, lerr, ok )
2463 CALL ztrmm(
'L',
'L',
'N',
'N', 2, 0, alpha, a, 1, b, 2 )
2464 CALL chkxer( srnamt, infot, nout, lerr, ok )
2466 CALL ztrmm(
'L',
'L',
'C',
'N', 2, 0, alpha, a, 1, b, 2 )
2467 CALL chkxer( srnamt, infot, nout, lerr, ok )
2469 CALL ztrmm(
'L',
'L',
'T',
'N', 2, 0, alpha, a, 1, b, 2 )
2470 CALL chkxer( srnamt, infot, nout, lerr, ok )
2472 CALL ztrmm(
'R',
'L',
'N',
'N', 0, 2, alpha, a, 1, b, 1 )
2473 CALL chkxer( srnamt, infot, nout, lerr, ok )
2475 CALL ztrmm(
'R',
'L',
'C',
'N', 0, 2, alpha, a, 1, b, 1 )
2476 CALL chkxer( srnamt, infot, nout, lerr, ok )
2478 CALL ztrmm(
'R',
'L',
'T',
'N', 0, 2, alpha, a, 1, b, 1 )
2479 CALL chkxer( srnamt, infot, nout, lerr, ok )
2481 CALL ztrmm(
'L',
'U',
'N',
'N', 2, 0, alpha, a, 2, b, 1 )
2482 CALL chkxer( srnamt, infot, nout, lerr, ok )
2484 CALL ztrmm(
'L',
'U',
'C',
'N', 2, 0, alpha, a, 2, b, 1 )
2485 CALL chkxer( srnamt, infot, nout, lerr, ok )
2487 CALL ztrmm(
'L',
'U',
'T',
'N', 2, 0, alpha, a, 2, b, 1 )
2488 CALL chkxer( srnamt, infot, nout, lerr, ok )
2490 CALL ztrmm(
'R',
'U',
'N',
'N', 2, 0, alpha, a, 1, b, 1 )
2491 CALL chkxer( srnamt, infot, nout, lerr, ok )
2493 CALL ztrmm(
'R',
'U',
'C',
'N', 2, 0, alpha, a, 1, b, 1 )
2494 CALL chkxer( srnamt, infot, nout, lerr, ok )
2496 CALL ztrmm(
'R',
'U',
'T',
'N', 2, 0, alpha, a, 1, b, 1 )
2497 CALL chkxer( srnamt, infot, nout, lerr, ok )
2499 CALL ztrmm(
'L',
'L',
'N',
'N', 2, 0, alpha, a, 2, b, 1 )
2500 CALL chkxer( srnamt, infot, nout, lerr, ok )
2502 CALL ztrmm(
'L',
'L',
'C',
'N', 2, 0, alpha, a, 2, b, 1 )
2503 CALL chkxer( srnamt, infot, nout, lerr, ok )
2505 CALL ztrmm(
'L',
'L',
'T',
'N', 2, 0, alpha, a, 2, b, 1 )
2506 CALL chkxer( srnamt, infot, nout, lerr, ok )
2508 CALL ztrmm(
'R',
'L',
'N',
'N', 2, 0, alpha, a, 1, b, 1 )
2509 CALL chkxer( srnamt, infot, nout, lerr, ok )
2511 CALL ztrmm(
'R',
'L',
'C',
'N', 2, 0, alpha, a, 1, b, 1 )
2512 CALL chkxer( srnamt, infot, nout, lerr, ok )
2514 CALL ztrmm(
'R',
'L',
'T',
'N', 2, 0, alpha, a, 1, b, 1 )
2515 CALL chkxer( srnamt, infot, nout, lerr, ok )
2518 CALL ztrsm(
'/',
'U',
'N',
'N', 0, 0, alpha, a, 1, b, 1 )
2519 CALL chkxer( srnamt, infot, nout, lerr, ok )
2521 CALL ztrsm(
'L',
'/',
'N',
'N', 0, 0, alpha, a, 1, b, 1 )
2522 CALL chkxer( srnamt, infot, nout, lerr, ok )
2524 CALL ztrsm(
'L',
'U',
'/',
'N', 0, 0, alpha, a, 1, b, 1 )
2525 CALL chkxer( srnamt, infot, nout, lerr, ok )
2527 CALL ztrsm(
'L',
'U',
'N',
'/', 0, 0, alpha, a, 1, b, 1 )
2528 CALL chkxer( srnamt, infot, nout, lerr, ok )
2530 CALL ztrsm(
'L',
'U',
'N',
'N', -1, 0, alpha, a, 1, b, 1 )
2531 CALL chkxer( srnamt, infot, nout, lerr, ok )
2533 CALL ztrsm(
'L',
'U',
'C',
'N', -1, 0, alpha, a, 1, b, 1 )
2534 CALL chkxer( srnamt, infot, nout, lerr, ok )
2536 CALL ztrsm(
'L',
'U',
'T',
'N', -1, 0, alpha, a, 1, b, 1 )
2537 CALL chkxer( srnamt, infot, nout, lerr, ok )
2539 CALL ztrsm(
'R',
'U',
'N',
'N', -1, 0, alpha, a, 1, b, 1 )
2540 CALL chkxer( srnamt, infot, nout, lerr, ok )
2542 CALL ztrsm(
'R',
'U',
'C',
'N', -1, 0, alpha, a, 1, b, 1 )
2543 CALL chkxer( srnamt, infot, nout, lerr, ok )
2545 CALL ztrsm(
'R',
'U',
'T',
'N', -1, 0, alpha, a, 1, b, 1 )
2546 CALL chkxer( srnamt, infot, nout, lerr, ok )
2548 CALL ztrsm(
'L',
'L',
'N',
'N', -1, 0, alpha, a, 1, b, 1 )
2549 CALL chkxer( srnamt, infot, nout, lerr, ok )
2551 CALL ztrsm(
'L',
'L',
'C',
'N', -1, 0, alpha, a, 1, b, 1 )
2552 CALL chkxer( srnamt, infot, nout, lerr, ok )
2554 CALL ztrsm(
'L',
'L',
'T',
'N', -1, 0, alpha, a, 1, b, 1 )
2555 CALL chkxer( srnamt, infot, nout, lerr, ok )
2557 CALL ztrsm(
'R',
'L',
'N',
'N', -1, 0, alpha, a, 1, b, 1 )
2558 CALL chkxer( srnamt, infot, nout, lerr, ok )
2560 CALL ztrsm(
'R',
'L',
'C',
'N', -1, 0, alpha, a, 1, b, 1 )
2561 CALL chkxer( srnamt, infot, nout, lerr, ok )
2563 CALL ztrsm(
'R',
'L',
'T',
'N', -1, 0, alpha, a, 1, b, 1 )
2564 CALL chkxer( srnamt, infot, nout, lerr, ok )
2566 CALL ztrsm(
'L',
'U',
'N',
'N', 0, -1, alpha, a, 1, b, 1 )
2567 CALL chkxer( srnamt, infot, nout, lerr, ok )
2569 CALL ztrsm(
'L',
'U',
'C',
'N', 0, -1, alpha, a, 1, b, 1 )
2570 CALL chkxer( srnamt, infot, nout, lerr, ok )
2572 CALL ztrsm(
'L',
'U',
'T',
'N', 0, -1, alpha, a, 1, b, 1 )
2573 CALL chkxer( srnamt, infot, nout, lerr, ok )
2575 CALL ztrsm(
'R',
'U',
'N',
'N', 0, -1, alpha, a, 1, b, 1 )
2576 CALL chkxer( srnamt, infot, nout, lerr, ok )
2578 CALL ztrsm(
'R',
'U',
'C',
'N', 0, -1, alpha, a, 1, b, 1 )
2579 CALL chkxer( srnamt, infot, nout, lerr, ok )
2581 CALL ztrsm(
'R',
'U',
'T',
'N', 0, -1, alpha, a, 1, b, 1 )
2582 CALL chkxer( srnamt, infot, nout, lerr, ok )
2584 CALL ztrsm(
'L',
'L',
'N',
'N', 0, -1, alpha, a, 1, b, 1 )
2585 CALL chkxer( srnamt, infot, nout, lerr, ok )
2587 CALL ztrsm(
'L',
'L',
'C',
'N', 0, -1, alpha, a, 1, b, 1 )
2588 CALL chkxer( srnamt, infot, nout, lerr, ok )
2590 CALL ztrsm(
'L',
'L',
'T',
'N', 0, -1, alpha, a, 1, b, 1 )
2591 CALL chkxer( srnamt, infot, nout, lerr, ok )
2593 CALL ztrsm(
'R',
'L',
'N',
'N', 0, -1, alpha, a, 1, b, 1 )
2594 CALL chkxer( srnamt, infot, nout, lerr, ok )
2596 CALL ztrsm(
'R',
'L',
'C',
'N', 0, -1, alpha, a, 1, b, 1 )
2597 CALL chkxer( srnamt, infot, nout, lerr, ok )
2599 CALL ztrsm(
'R',
'L',
'T',
'N', 0, -1, alpha, a, 1, b, 1 )
2600 CALL chkxer( srnamt, infot, nout, lerr, ok )
2602 CALL ztrsm(
'L',
'U',
'N',
'N', 2, 0, alpha, a, 1, b, 2 )
2603 CALL chkxer( srnamt, infot, nout, lerr, ok )
2605 CALL ztrsm(
'L',
'U',
'C',
'N', 2, 0, alpha, a, 1, b, 2 )
2606 CALL chkxer( srnamt, infot, nout, lerr, ok )
2608 CALL ztrsm(
'L',
'U',
'T',
'N', 2, 0, alpha, a, 1, b, 2 )
2609 CALL chkxer( srnamt, infot, nout, lerr, ok )
2611 CALL ztrsm(
'R',
'U',
'N',
'N', 0, 2, alpha, a, 1, b, 1 )
2612 CALL chkxer( srnamt, infot, nout, lerr, ok )
2614 CALL ztrsm(
'R',
'U',
'C',
'N', 0, 2, alpha, a, 1, b, 1 )
2615 CALL chkxer( srnamt, infot, nout, lerr, ok )
2617 CALL ztrsm(
'R',
'U',
'T',
'N', 0, 2, alpha, a, 1, b, 1 )
2618 CALL chkxer( srnamt, infot, nout, lerr, ok )
2620 CALL ztrsm(
'L',
'L',
'N',
'N', 2, 0, alpha, a, 1, b, 2 )
2621 CALL chkxer( srnamt, infot, nout, lerr, ok )
2623 CALL ztrsm(
'L',
'L',
'C',
'N', 2, 0, alpha, a, 1, b, 2 )
2624 CALL chkxer( srnamt, infot, nout, lerr, ok )
2626 CALL ztrsm(
'L',
'L',
'T',
'N', 2, 0, alpha, a, 1, b, 2 )
2627 CALL chkxer( srnamt, infot, nout, lerr, ok )
2629 CALL ztrsm(
'R',
'L',
'N',
'N', 0, 2, alpha, a, 1, b, 1 )
2630 CALL chkxer( srnamt, infot, nout, lerr, ok )
2632 CALL ztrsm(
'R',
'L',
'C',
'N', 0, 2, alpha, a, 1, b, 1 )
2633 CALL chkxer( srnamt, infot, nout, lerr, ok )
2635 CALL ztrsm(
'R',
'L',
'T',
'N', 0, 2, alpha, a, 1, b, 1 )
2636 CALL chkxer( srnamt, infot, nout, lerr, ok )
2638 CALL ztrsm(
'L',
'U',
'N',
'N', 2, 0, alpha, a, 2, b, 1 )
2639 CALL chkxer( srnamt, infot, nout, lerr, ok )
2641 CALL ztrsm(
'L',
'U',
'C',
'N', 2, 0, alpha, a, 2, b, 1 )
2642 CALL chkxer( srnamt, infot, nout, lerr, ok )
2644 CALL ztrsm(
'L',
'U',
'T',
'N', 2, 0, alpha, a, 2, b, 1 )
2645 CALL chkxer( srnamt, infot, nout, lerr, ok )
2647 CALL ztrsm(
'R',
'U',
'N',
'N', 2, 0, alpha, a, 1, b, 1 )
2648 CALL chkxer( srnamt, infot, nout, lerr, ok )
2650 CALL ztrsm(
'R',
'U',
'C',
'N', 2, 0, alpha, a, 1, b, 1 )
2651 CALL chkxer( srnamt, infot, nout, lerr, ok )
2653 CALL ztrsm(
'R',
'U',
'T',
'N', 2, 0, alpha, a, 1, b, 1 )
2654 CALL chkxer( srnamt, infot, nout, lerr, ok )
2656 CALL ztrsm(
'L',
'L',
'N',
'N', 2, 0, alpha, a, 2, b, 1 )
2657 CALL chkxer( srnamt, infot, nout, lerr, ok )
2659 CALL ztrsm(
'L',
'L',
'C',
'N', 2, 0, alpha, a, 2, b, 1 )
2660 CALL chkxer( srnamt, infot, nout, lerr, ok )
2662 CALL ztrsm(
'L',
'L',
'T',
'N', 2, 0, alpha, a, 2, b, 1 )
2663 CALL chkxer( srnamt, infot, nout, lerr, ok )
2665 CALL ztrsm(
'R',
'L',
'N',
'N', 2, 0, alpha, a, 1, b, 1 )
2666 CALL chkxer( srnamt, infot, nout, lerr, ok )
2668 CALL ztrsm(
'R',
'L',
'C',
'N', 2, 0, alpha, a, 1, b, 1 )
2669 CALL chkxer( srnamt, infot, nout, lerr, ok )
2671 CALL ztrsm(
'R',
'L',
'T',
'N', 2, 0, alpha, a, 1, b, 1 )
2672 CALL chkxer( srnamt, infot, nout, lerr, ok )
2675 CALL zherk(
'/',
'N', 0, 0, ralpha, a, 1, rbeta, c, 1 )
2676 CALL chkxer( srnamt, infot, nout, lerr, ok )
2678 CALL zherk(
'U',
'T', 0, 0, ralpha, a, 1, rbeta, c, 1 )
2679 CALL chkxer( srnamt, infot, nout, lerr, ok )
2681 CALL zherk(
'U',
'N', -1, 0, ralpha, a, 1, rbeta, c, 1 )
2682 CALL chkxer( srnamt, infot, nout, lerr, ok )
2684 CALL zherk(
'U',
'C', -1, 0, ralpha, a, 1, rbeta, c, 1 )
2685 CALL chkxer( srnamt, infot, nout, lerr, ok )
2687 CALL zherk(
'L',
'N', -1, 0, ralpha, a, 1, rbeta, c, 1 )
2688 CALL chkxer( srnamt, infot, nout, lerr, ok )
2690 CALL zherk(
'L',
'C', -1, 0, ralpha, a, 1, rbeta, c, 1 )
2691 CALL chkxer( srnamt, infot, nout, lerr, ok )
2693 CALL zherk(
'U',
'N', 0, -1, ralpha, a, 1, rbeta, c, 1 )
2694 CALL chkxer( srnamt, infot, nout, lerr, ok )
2696 CALL zherk(
'U',
'C', 0, -1, ralpha, a, 1, rbeta, c, 1 )
2697 CALL chkxer( srnamt, infot, nout, lerr, ok )
2699 CALL zherk(
'L',
'N', 0, -1, ralpha, a, 1, rbeta, c, 1 )
2700 CALL chkxer( srnamt, infot, nout, lerr, ok )
2702 CALL zherk(
'L',
'C', 0, -1, ralpha, a, 1, rbeta, c, 1 )
2703 CALL chkxer( srnamt, infot, nout, lerr, ok )
2705 CALL zherk(
'U',
'N', 2, 0, ralpha, a, 1, rbeta, c, 2 )
2706 CALL chkxer( srnamt, infot, nout, lerr, ok )
2708 CALL zherk(
'U',
'C', 0, 2, ralpha, a, 1, rbeta, c, 1 )
2709 CALL chkxer( srnamt, infot, nout, lerr, ok )
2711 CALL zherk(
'L',
'N', 2, 0, ralpha, a, 1, rbeta, c, 2 )
2712 CALL chkxer( srnamt, infot, nout, lerr, ok )
2714 CALL zherk(
'L',
'C', 0, 2, ralpha, a, 1, rbeta, c, 1 )
2715 CALL chkxer( srnamt, infot, nout, lerr, ok )
2717 CALL zherk(
'U',
'N', 2, 0, ralpha, a, 2, rbeta, c, 1 )
2718 CALL chkxer( srnamt, infot, nout, lerr, ok )
2720 CALL zherk(
'U',
'C', 2, 0, ralpha, a, 1, rbeta, c, 1 )
2721 CALL chkxer( srnamt, infot, nout, lerr, ok )
2723 CALL zherk(
'L',
'N', 2, 0, ralpha, a, 2, rbeta, c, 1 )
2724 CALL chkxer( srnamt, infot, nout, lerr, ok )
2726 CALL zherk(
'L',
'C', 2, 0, ralpha, a, 1, rbeta, c, 1 )
2727 CALL chkxer( srnamt, infot, nout, lerr, ok )
2730 CALL zsyrk(
'/',
'N', 0, 0, alpha, a, 1, beta, c, 1 )
2731 CALL chkxer( srnamt, infot, nout, lerr, ok )
2733 CALL zsyrk(
'U',
'C', 0, 0, alpha, a, 1, beta, c, 1 )
2734 CALL chkxer( srnamt, infot, nout, lerr, ok )
2736 CALL zsyrk(
'U',
'N', -1, 0, alpha, a, 1, beta, c, 1 )
2737 CALL chkxer( srnamt, infot, nout, lerr, ok )
2739 CALL zsyrk(
'U',
'T', -1, 0, alpha, a, 1, beta, c, 1 )
2740 CALL chkxer( srnamt, infot, nout, lerr, ok )
2742 CALL zsyrk(
'L',
'N', -1, 0, alpha, a, 1, beta, c, 1 )
2743 CALL chkxer( srnamt, infot, nout, lerr, ok )
2745 CALL zsyrk(
'L',
'T', -1, 0, alpha, a, 1, beta, c, 1 )
2746 CALL chkxer( srnamt, infot, nout, lerr, ok )
2748 CALL zsyrk(
'U',
'N', 0, -1, alpha, a, 1, beta, c, 1 )
2749 CALL chkxer( srnamt, infot, nout, lerr, ok )
2751 CALL zsyrk(
'U',
'T', 0, -1, alpha, a, 1, beta, c, 1 )
2752 CALL chkxer( srnamt, infot, nout, lerr, ok )
2754 CALL zsyrk(
'L',
'N', 0, -1, alpha, a, 1, beta, c, 1 )
2755 CALL chkxer( srnamt, infot, nout, lerr, ok )
2757 CALL zsyrk(
'L',
'T', 0, -1, alpha, a, 1, beta, c, 1 )
2758 CALL chkxer( srnamt, infot, nout, lerr, ok )
2760 CALL zsyrk(
'U',
'N', 2, 0, alpha, a, 1, beta, c, 2 )
2761 CALL chkxer( srnamt, infot, nout, lerr, ok )
2763 CALL zsyrk(
'U',
'T', 0, 2, alpha, a, 1, beta, c, 1 )
2764 CALL chkxer( srnamt, infot, nout, lerr, ok )
2766 CALL zsyrk(
'L',
'N', 2, 0, alpha, a, 1, beta, c, 2 )
2767 CALL chkxer( srnamt, infot, nout, lerr, ok )
2769 CALL zsyrk(
'L',
'T', 0, 2, alpha, a, 1, beta, c, 1 )
2770 CALL chkxer( srnamt, infot, nout, lerr, ok )
2772 CALL zsyrk(
'U',
'N', 2, 0, alpha, a, 2, beta, c, 1 )
2773 CALL chkxer( srnamt, infot, nout, lerr, ok )
2775 CALL zsyrk(
'U',
'T', 2, 0, alpha, a, 1, beta, c, 1 )
2776 CALL chkxer( srnamt, infot, nout, lerr, ok )
2778 CALL zsyrk(
'L',
'N', 2, 0, alpha, a, 2, beta, c, 1 )
2779 CALL chkxer( srnamt, infot, nout, lerr, ok )
2781 CALL zsyrk(
'L',
'T', 2, 0, alpha, a, 1, beta, c, 1 )
2782 CALL chkxer( srnamt, infot, nout, lerr, ok )
2785 CALL zher2k(
'/',
'N', 0, 0, alpha, a, 1, b, 1, rbeta, c, 1 )
2786 CALL chkxer( srnamt, infot, nout, lerr, ok )
2788 CALL zher2k(
'U',
'T', 0, 0, alpha, a, 1, b, 1, rbeta, c, 1 )
2789 CALL chkxer( srnamt, infot, nout, lerr, ok )
2791 CALL zher2k(
'U',
'N', -1, 0, alpha, a, 1, b, 1, rbeta, c, 1 )
2792 CALL chkxer( srnamt, infot, nout, lerr, ok )
2794 CALL zher2k(
'U',
'C', -1, 0, alpha, a, 1, b, 1, rbeta, c, 1 )
2795 CALL chkxer( srnamt, infot, nout, lerr, ok )
2797 CALL zher2k(
'L',
'N', -1, 0, alpha, a, 1, b, 1, rbeta, c, 1 )
2798 CALL chkxer( srnamt, infot, nout, lerr, ok )
2800 CALL zher2k(
'L',
'C', -1, 0, alpha, a, 1, b, 1, rbeta, c, 1 )
2801 CALL chkxer( srnamt, infot, nout, lerr, ok )
2803 CALL zher2k(
'U',
'N', 0, -1, alpha, a, 1, b, 1, rbeta, c, 1 )
2804 CALL chkxer( srnamt, infot, nout, lerr, ok )
2806 CALL zher2k(
'U',
'C', 0, -1, alpha, a, 1, b, 1, rbeta, c, 1 )
2807 CALL chkxer( srnamt, infot, nout, lerr, ok )
2809 CALL zher2k(
'L',
'N', 0, -1, alpha, a, 1, b, 1, rbeta, c, 1 )
2810 CALL chkxer( srnamt, infot, nout, lerr, ok )
2812 CALL zher2k(
'L',
'C', 0, -1, alpha, a, 1, b, 1, rbeta, c, 1 )
2813 CALL chkxer( srnamt, infot, nout, lerr, ok )
2815 CALL zher2k(
'U',
'N', 2, 0, alpha, a, 1, b, 1, rbeta, c, 2 )
2816 CALL chkxer( srnamt, infot, nout, lerr, ok )
2818 CALL zher2k(
'U',
'C', 0, 2, alpha, a, 1, b, 1, rbeta, c, 1 )
2819 CALL chkxer( srnamt, infot, nout, lerr, ok )
2821 CALL zher2k(
'L',
'N', 2, 0, alpha, a, 1, b, 1, rbeta, c, 2 )
2822 CALL chkxer( srnamt, infot, nout, lerr, ok )
2824 CALL zher2k(
'L',
'C', 0, 2, alpha, a, 1, b, 1, rbeta, c, 1 )
2825 CALL chkxer( srnamt, infot, nout, lerr, ok )
2827 CALL zher2k(
'U',
'N', 2, 0, alpha, a, 2, b, 1, rbeta, c, 2 )
2828 CALL chkxer( srnamt, infot, nout, lerr, ok )
2830 CALL zher2k(
'U',
'C', 0, 2, alpha, a, 2, b, 1, rbeta, c, 1 )
2831 CALL chkxer( srnamt, infot, nout, lerr, ok )
2833 CALL zher2k(
'L',
'N', 2, 0, alpha, a, 2, b, 1, rbeta, c, 2 )
2834 CALL chkxer( srnamt, infot, nout, lerr, ok )
2836 CALL zher2k(
'L',
'C', 0, 2, alpha, a, 2, b, 1, rbeta, c, 1 )
2837 CALL chkxer( srnamt, infot, nout, lerr, ok )
2839 CALL zher2k(
'U',
'N', 2, 0, alpha, a, 2, b, 2, rbeta, c, 1 )
2840 CALL chkxer( srnamt, infot, nout, lerr, ok )
2842 CALL zher2k(
'U',
'C', 2, 0, alpha, a, 1, b, 1, rbeta, c, 1 )
2843 CALL chkxer( srnamt, infot, nout, lerr, ok )
2845 CALL zher2k(
'L',
'N', 2, 0, alpha, a, 2, b, 2, rbeta, c, 1 )
2846 CALL chkxer( srnamt, infot, nout, lerr, ok )
2848 CALL zher2k(
'L',
'C', 2, 0, alpha, a, 1, b, 1, rbeta, c, 1 )
2849 CALL chkxer( srnamt, infot, nout, lerr, ok )
2852 CALL zsyr2k(
'/',
'N', 0, 0, alpha, a, 1, b, 1, beta, c, 1 )
2853 CALL chkxer( srnamt, infot, nout, lerr, ok )
2855 CALL zsyr2k(
'U',
'C', 0, 0, alpha, a, 1, b, 1, beta, c, 1 )
2856 CALL chkxer( srnamt, infot, nout, lerr, ok )
2858 CALL zsyr2k(
'U',
'N', -1, 0, alpha, a, 1, b, 1, beta, c, 1 )
2859 CALL chkxer( srnamt, infot, nout, lerr, ok )
2861 CALL zsyr2k(
'U',
'T', -1, 0, alpha, a, 1, b, 1, beta, c, 1 )
2862 CALL chkxer( srnamt, infot, nout, lerr, ok )
2864 CALL zsyr2k(
'L',
'N', -1, 0, alpha, a, 1, b, 1, beta, c, 1 )
2865 CALL chkxer( srnamt, infot, nout, lerr, ok )
2867 CALL zsyr2k(
'L',
'T', -1, 0, alpha, a, 1, b, 1, beta, c, 1 )
2868 CALL chkxer( srnamt, infot, nout, lerr, ok )
2870 CALL zsyr2k(
'U',
'N', 0, -1, alpha, a, 1, b, 1, beta, c, 1 )
2871 CALL chkxer( srnamt, infot, nout, lerr, ok )
2873 CALL zsyr2k(
'U',
'T', 0, -1, alpha, a, 1, b, 1, beta, c, 1 )
2874 CALL chkxer( srnamt, infot, nout, lerr, ok )
2876 CALL zsyr2k(
'L',
'N', 0, -1, alpha, a, 1, b, 1, beta, c, 1 )
2877 CALL chkxer( srnamt, infot, nout, lerr, ok )
2879 CALL zsyr2k(
'L',
'T', 0, -1, alpha, a, 1, b, 1, beta, c, 1 )
2880 CALL chkxer( srnamt, infot, nout, lerr, ok )
2882 CALL zsyr2k(
'U',
'N', 2, 0, alpha, a, 1, b, 1, beta, c, 2 )
2883 CALL chkxer( srnamt, infot, nout, lerr, ok )
2885 CALL zsyr2k(
'U',
'T', 0, 2, alpha, a, 1, b, 1, beta, c, 1 )
2886 CALL chkxer( srnamt, infot, nout, lerr, ok )
2888 CALL zsyr2k(
'L',
'N', 2, 0, alpha, a, 1, b, 1, beta, c, 2 )
2889 CALL chkxer( srnamt, infot, nout, lerr, ok )
2891 CALL zsyr2k(
'L',
'T', 0, 2, alpha, a, 1, b, 1, beta, c, 1 )
2892 CALL chkxer( srnamt, infot, nout, lerr, ok )
2894 CALL zsyr2k(
'U',
'N', 2, 0, alpha, a, 2, b, 1, beta, c, 2 )
2895 CALL chkxer( srnamt, infot, nout, lerr, ok )
2897 CALL zsyr2k(
'U',
'T', 0, 2, alpha, a, 2, b, 1, beta, c, 1 )
2898 CALL chkxer( srnamt, infot, nout, lerr, ok )
2900 CALL zsyr2k(
'L',
'N', 2, 0, alpha, a, 2, b, 1, beta, c, 2 )
2901 CALL chkxer( srnamt, infot, nout, lerr, ok )
2903 CALL zsyr2k(
'L',
'T', 0, 2, alpha, a, 2, b, 1, beta, c, 1 )
2904 CALL chkxer( srnamt, infot, nout, lerr, ok )
2906 CALL zsyr2k(
'U',
'N', 2, 0, alpha, a, 2, b, 2, beta, c, 1 )
2907 CALL chkxer( srnamt, infot, nout, lerr, ok )
2909 CALL zsyr2k(
'U',
'T', 2, 0, alpha, a, 1, b, 1, beta, c, 1 )
2910 CALL chkxer( srnamt, infot, nout, lerr, ok )
2912 CALL zsyr2k(
'L',
'N', 2, 0, alpha, a, 2, b, 2, beta, c, 1 )
2913 CALL chkxer( srnamt, infot, nout, lerr, ok )
2915 CALL zsyr2k(
'L',
'T', 2, 0, alpha, a, 1, b, 1, beta, c, 1 )
2916 CALL chkxer( srnamt, infot, nout, lerr, ok )
2919 WRITE( nout, fmt = 9999 )srnamt
2921 WRITE( nout, fmt = 9998 )srnamt
2925 9999
FORMAT(
' ', a6,
' PASSED THE TESTS OF ERROR-EXITS' )
2926 9998
FORMAT(
' ******* ', a6,
' FAILED THE TESTS OF ERROR-EXITS *****',
2932 SUBROUTINE zmake( TYPE, UPLO, DIAG, M, N, A, NMAX, AA, LDA, RESET,
2950 COMPLEX*16 ZERO, ONE
2951 PARAMETER ( ZERO = ( 0.0d0, 0.0d0 ),
2952 $ one = ( 1.0d0, 0.0d0 ) )
2954 PARAMETER ( ROGUE = ( -1.0d10, 1.0d10 ) )
2955 DOUBLE PRECISION RZERO
2956 PARAMETER ( RZERO = 0.0d0 )
2957 DOUBLE PRECISION RROGUE
2958 PARAMETER ( RROGUE = -1.0d10 )
2961 INTEGER LDA, M, N, NMAX
2963 CHARACTER*1 DIAG, UPLO
2966 COMPLEX*16 A( NMAX, * ), AA( * )
2968 INTEGER I, IBEG, IEND, J, JJ
2969 LOGICAL GEN, HER, LOWER, SYM, TRI, UNIT, UPPER
2974 INTRINSIC dcmplx, dconjg, dble
2980 upper = ( her.OR.sym.OR.tri ).AND.uplo.EQ.
'U'
2981 lower = ( her.OR.sym.OR.tri ).AND.uplo.EQ.
'L'
2982 unit = tri.AND.diag.EQ.
'U'
2988 IF( gen.OR.( upper.AND.i.LE.j ).OR.( lower.AND.i.GE.j ) )
2990 a( i, j ) = zbeg( reset ) + transl
2993 IF( n.GT.3.AND.j.EQ.n/2 )
2996 a( j, i ) = dconjg( a( i, j ) )
2998 a( j, i ) = a( i, j )
3006 $ a( j, j ) = dcmplx( dble( a( j, j ) ), rzero )
3008 $ a( j, j ) = a( j, j ) + one
3015 IF( type.EQ.
'GE' )
THEN
3018 aa( i + ( j - 1 )*lda ) = a( i, j )
3020 DO 40 i = m + 1, lda
3021 aa( i + ( j - 1 )*lda ) = rogue
3024 ELSE IF( type.EQ.
'HE'.OR.type.EQ.
'SY'.OR.type.EQ.
'TR' )
THEN
3041 DO 60 i = 1, ibeg - 1
3042 aa( i + ( j - 1 )*lda ) = rogue
3044 DO 70 i = ibeg, iend
3045 aa( i + ( j - 1 )*lda ) = a( i, j )
3047 DO 80 i = iend + 1, lda
3048 aa( i + ( j - 1 )*lda ) = rogue
3051 jj = j + ( j - 1 )*lda
3052 aa( jj ) = dcmplx( dble( aa( jj ) ), rrogue )
3061 SUBROUTINE zmmch( TRANSA, TRANSB, M, N, KK, ALPHA, A, LDA, B, LDB,
3062 $ BETA, C, LDC, CT, G, CC, LDCC, EPS, ERR, FATAL,
3077 PARAMETER ( ZERO = ( 0.0d0, 0.0d0 ) )
3078 DOUBLE PRECISION RZERO, RONE
3079 PARAMETER ( RZERO = 0.0d0, rone = 1.0d0 )
3081 COMPLEX*16 ALPHA, BETA
3082 DOUBLE PRECISION EPS, ERR
3083 INTEGER KK, LDA, LDB, LDC, LDCC, M, N, NOUT
3085 CHARACTER*1 TRANSA, TRANSB
3087 COMPLEX*16 A( LDA, * ), B( LDB, * ), C( LDC, * ),
3088 $ CC( LDCC, * ), CT( * )
3089 DOUBLE PRECISION G( * )
3092 DOUBLE PRECISION ERRI
3094 LOGICAL CTRANA, CTRANB, TRANA, TRANB
3096 INTRINSIC abs, dimag, dconjg, max, dble, sqrt
3098 DOUBLE PRECISION ABS1
3100 abs1( cl ) = abs( dble( cl ) ) + abs( dimag( cl ) )
3102 trana = transa.EQ.
'T'.OR.transa.EQ.
'C'
3103 tranb = transb.EQ.
'T'.OR.transb.EQ.
'C'
3104 ctrana = transa.EQ.
'C'
3105 ctranb = transb.EQ.
'C'
3117 IF( .NOT.trana.AND..NOT.tranb )
THEN
3120 ct( i ) = ct( i ) + a( i, k )*b( k, j )
3121 g( i ) = g( i ) + abs1( a( i, k ) )*abs1( b( k, j ) )
3124 ELSE IF( trana.AND..NOT.tranb )
THEN
3128 ct( i ) = ct( i ) + dconjg( a( k, i ) )*b( k, j )
3129 g( i ) = g( i ) + abs1( a( k, i ) )*
3136 ct( i ) = ct( i ) + a( k, i )*b( k, j )
3137 g( i ) = g( i ) + abs1( a( k, i ) )*
3142 ELSE IF( .NOT.trana.AND.tranb )
THEN
3146 ct( i ) = ct( i ) + a( i, k )*dconjg( b( j, k ) )
3147 g( i ) = g( i ) + abs1( a( i, k ) )*
3154 ct( i ) = ct( i ) + a( i, k )*b( j, k )
3155 g( i ) = g( i ) + abs1( a( i, k ) )*
3160 ELSE IF( trana.AND.tranb )
THEN
3165 ct( i ) = ct( i ) + dconjg( a( k, i ) )*
3166 $ dconjg( b( j, k ) )
3167 g( i ) = g( i ) + abs1( a( k, i ) )*
3174 ct( i ) = ct( i ) + dconjg( a( k, i ) )*
3176 g( i ) = g( i ) + abs1( a( k, i ) )*
3185 ct( i ) = ct( i ) + a( k, i )*
3186 $ dconjg( b( j, k ) )
3187 g( i ) = g( i ) + abs1( a( k, i ) )*
3194 ct( i ) = ct( i ) + a( k, i )*b( j, k )
3195 g( i ) = g( i ) + abs1( a( k, i ) )*
3203 ct( i ) = alpha*ct( i ) + beta*c( i, j )
3204 g( i ) = abs1( alpha )*g( i ) +
3205 $ abs1( beta )*abs1( c( i, j ) )
3212 erri = abs1( ct( i ) - cc( i, j ) )/eps
3213 IF( g( i ).NE.rzero )
3214 $ erri = erri/g( i )
3215 err = max( err, erri )
3216 IF( err*sqrt( eps ).GE.rone )
3228 WRITE( nout, fmt = 9999 )
3231 WRITE( nout, fmt = 9998 )i, ct( i ), cc( i, j )
3233 WRITE( nout, fmt = 9998 )i, cc( i, j ), ct( i )
3237 $
WRITE( nout, fmt = 9997 )j
3242 9999
FORMAT(
' ******* FATAL ERROR - COMPUTED RESULT IS LESS THAN HAL',
3243 $
'F ACCURATE *******', /
' EXPECTED RE',
3244 $
'SULT COMPUTED RESULT' )
3245 9998
FORMAT( 1x, i7, 2(
' (', g15.6,
',', g15.6,
')' ) )
3246 9997
FORMAT(
' THESE ARE THE RESULTS FOR COLUMN ', i3 )
3251 LOGICAL FUNCTION lze( RI, RJ, LR )
3266 COMPLEX*16 ri( * ), rj( * )
3271 IF( ri( i ).NE.rj( i ) )
3283 LOGICAL FUNCTION lzeres( TYPE, UPLO, M, N, AA, AS, LDA )
3302 COMPLEX*16 aa( lda, * ), as( lda, * )
3304 INTEGER i, ibeg, iend, j
3308 IF( type.EQ.
'GE' )
THEN
3310 DO 10 i = m + 1, lda
3311 IF( aa( i, j ).NE.as( i, j ) )
3315 ELSE IF( type.EQ.
'HE'.OR.type.EQ.
'SY' )
THEN
3324 DO 30 i = 1, ibeg - 1
3325 IF( aa( i, j ).NE.as( i, j ) )
3328 DO 40 i = iend + 1, lda
3329 IF( aa( i, j ).NE.as( i, j ) )
3344 COMPLEX*16 FUNCTION zbeg( RESET )
3360 INTEGER i, ic, j, mi, mj
3362 SAVE i, ic, j, mi, mj
3386 i = i - 1000*( i/1000 )
3387 j = j - 1000*( j/1000 )
3392 zbeg = dcmplx( ( i - 500 )/1001.0d0, ( j - 500 )/1001.0d0 )
3398 DOUBLE PRECISION FUNCTION ddiff( X, Y )
3409 DOUBLE PRECISION x, y
3417 SUBROUTINE chkxer( SRNAMT, INFOT, NOUT, LERR, OK )
3435 WRITE( NOUT, FMT = 9999 )infot, srnamt
3441 9999
FORMAT(
' ***** ILLEGAL VALUE OF PARAMETER NUMBER ', i2,
' NOT D',
3442 $
'ETECTED BY ', a6,
' *****' )
3447 SUBROUTINE xerbla( SRNAME, INFO )
3474 COMMON /INFOC/INFOT, NOUT, OK, LERR
3475 COMMON /SRNAMC/SRNAMT
3478 IF( info.NE.infot )
THEN
3479 IF( infot.NE.0 )
THEN
3480 WRITE( nout, fmt = 9999 )info, infot
3482 WRITE( nout, fmt = 9997 )info
3486 IF( srname.NE.srnamt )
THEN
3487 WRITE( nout, fmt = 9998 )srname, srnamt
3492 9999
FORMAT(
' ******* XERBLA WAS CALLED WITH INFO = ', i6,
' INSTEAD',
3493 $
' OF ', i2,
' *******' )
3494 9998
FORMAT(
' ******* XERBLA WAS CALLED WITH SRNAME = ', a6,
' INSTE',
3495 $
'AD OF ', a6,
' *******' )
3496 9997
FORMAT(
' ******* XERBLA WAS CALLED WITH INFO = ', i6,