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 *',
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,
' *****' )
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,
subroutine zherk(UPLO, TRANS, N, K, ALPHA, A, LDA, BETA, C, LDC)
ZHERK
subroutine zchk4(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 ztrsm(SIDE, UPLO, TRANSA, DIAG, M, N, ALPHA, A, LDA, B, LDB)
ZTRSM
subroutine zchk1(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 zgemm(TRANSA, TRANSB, M, N, K, ALPHA, A, LDA, B, LDB, BETA, C, LDC)
ZGEMM
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine zchke(ISNUM, SRNAMT, NOUT)
subroutine chkxer(SRNAMT, INFOT, NOUT, LERR, OK)
subroutine zchk5(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 zchk3(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)
subroutine zsyr2k(UPLO, TRANS, N, K, ALPHA, A, LDA, B, LDB, BETA, C, LDC)
ZSYR2K
subroutine zsymm(SIDE, UPLO, M, N, ALPHA, A, LDA, B, LDB, BETA, C, LDC)
ZSYMM
subroutine zchk2(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 zmake(TYPE, UPLO, DIAG, M, N, A, NMAX, AA, LDA, KL, KU, RESET, TRANSL)
subroutine zhemm(SIDE, UPLO, M, N, ALPHA, A, LDA, B, LDB, BETA, C, LDC)
ZHEMM
subroutine zher2k(UPLO, TRANS, N, K, ALPHA, A, LDA, B, LDB, BETA, C, LDC)
ZHER2K
subroutine zsyrk(UPLO, TRANS, N, K, ALPHA, A, LDA, BETA, C, LDC)
ZSYRK
subroutine ztrmm(SIDE, UPLO, TRANSA, DIAG, M, N, ALPHA, A, LDA, B, LDB)
ZTRMM
subroutine zmmch(TRANSA, TRANSB, M, N, KK, ALPHA, A, LDA, B, LDB, BETA, C, LDC, CT, G, CC, LDCC, EPS, ERR, FATAL, NOUT, MV)