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,
complex *16 function zbeg(RESET)
logical function lzeres(TYPE, UPLO, M, N, AA, AS, LDA)
subroutine zmmch(TRANSA, TRANSB, M, N, KK, ALPHA, A, LDA, B, LDB, BETA, C, LDC, CT, G, CC, LDCC, EPS, ERR, FATAL, NOUT, MV)
double precision function ddiff(X, Y)
subroutine zgemm(TRANSA, TRANSB, M, N, K, ALPHA, A, LDA, B, LDB, BETA, C, LDC)
ZGEMM
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 zsymm(SIDE, UPLO, M, N, ALPHA, A, LDA, B, LDB, BETA, C, LDC)
ZSYMM
subroutine zmake(TYPE, UPLO, DIAG, M, N, A, NMAX, AA, LDA, KL, KU, RESET, TRANSL)
subroutine xerbla(SRNAME, INFO)
XERBLA
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 chkxer(SRNAMT, INFOT, NOUT, LERR, OK)
subroutine zsyr2k(UPLO, TRANS, N, K, ALPHA, A, LDA, B, LDB, BETA, C, LDC)
ZSYR2K
subroutine zhemm(SIDE, UPLO, M, N, ALPHA, A, LDA, B, LDB, BETA, C, LDC)
ZHEMM
subroutine zchke(ISNUM, SRNAMT, NOUT)
logical function lze(RI, RJ, LR)
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 zherk(UPLO, TRANS, N, K, ALPHA, A, LDA, BETA, C, LDC)
ZHERK
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 zher2k(UPLO, TRANS, N, K, ALPHA, A, LDA, B, LDB, BETA, C, LDC)
ZHER2K
subroutine ztrsm(SIDE, UPLO, TRANSA, DIAG, M, N, ALPHA, A, LDA, B, LDB)
ZTRSM
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 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)