124 parameter ( nmax = 132 )
126 parameter ( maxin = 12 )
128 parameter ( maxrhs = 16 )
130 parameter ( matmax = 30 )
132 parameter ( nin = 5, nout = 6 )
134 parameter ( kdmax = nmax+( nmax+1 ) / 4 )
137 LOGICAL FATAL, TSTCHK, TSTDRV, TSTERR
143 INTEGER I, IC, J, K, LA, LAFAC, LDA, NB, NM, NMATS, NN,
144 $ nnb, nnb2, nns, nrhs, ntypes, nrank,
145 $ vers_major, vers_minor, vers_patch
146 DOUBLE PRECISION EPS, S1, S2, THREQ, THRESH
149 LOGICAL DOTYPE( matmax )
150 INTEGER IWORK( 25*nmax ), MVAL( maxin ),
151 $ nbval( maxin ), nbval2( maxin ),
152 $ nsval( maxin ), nval( maxin ), nxval( maxin ),
153 $ rankval( maxin ), piv( nmax )
154 DOUBLE PRECISION RWORK( 150*nmax+2*maxrhs ), S( 2*nmax )
155 COMPLEX*16 A( ( kdmax+1 )*nmax, 7 ), B( nmax*maxrhs, 4 ),
156 $ e( nmax ), work( nmax, nmax+maxrhs+10 )
159 LOGICAL LSAME, LSAMEN
160 DOUBLE PRECISION DLAMCH, DSECND
161 EXTERNAL lsame, lsamen, dlamch, dsecnd
182 INTEGER IPARMS( 100 )
185 COMMON / infoc / infot, nunit, ok, lerr
186 COMMON / srnamc / srnamt
187 COMMON / claenv / iparms
190 DATA threq / 2.0d0 / , intstr /
'0123456789' /
204 CALL ilaver( vers_major, vers_minor, vers_patch )
205 WRITE( nout, fmt = 9994 ) vers_major, vers_minor, vers_patch
209 READ( nin, fmt = * )nm
211 WRITE( nout, fmt = 9996 )
' NM ', nm, 1
214 ELSE IF( nm.GT.maxin )
THEN
215 WRITE( nout, fmt = 9995 )
' NM ', nm, maxin
219 READ( nin, fmt = * )( mval( i ), i = 1, nm )
221 IF( mval( i ).LT.0 )
THEN
222 WRITE( nout, fmt = 9996 )
' M ', mval( i ), 0
224 ELSE IF( mval( i ).GT.nmax )
THEN
225 WRITE( nout, fmt = 9995 )
' M ', mval( i ), nmax
230 $
WRITE( nout, fmt = 9993 )
'M ', ( mval( i ), i = 1, nm )
234 READ( nin, fmt = * )nn
236 WRITE( nout, fmt = 9996 )
' NN ', nn, 1
239 ELSE IF( nn.GT.maxin )
THEN
240 WRITE( nout, fmt = 9995 )
' NN ', nn, maxin
244 READ( nin, fmt = * )( nval( i ), i = 1, nn )
246 IF( nval( i ).LT.0 )
THEN
247 WRITE( nout, fmt = 9996 )
' N ', nval( i ), 0
249 ELSE IF( nval( i ).GT.nmax )
THEN
250 WRITE( nout, fmt = 9995 )
' N ', nval( i ), nmax
255 $
WRITE( nout, fmt = 9993 )
'N ', ( nval( i ), i = 1, nn )
259 READ( nin, fmt = * )nns
261 WRITE( nout, fmt = 9996 )
' NNS', nns, 1
264 ELSE IF( nns.GT.maxin )
THEN
265 WRITE( nout, fmt = 9995 )
' NNS', nns, maxin
269 READ( nin, fmt = * )( nsval( i ), i = 1, nns )
271 IF( nsval( i ).LT.0 )
THEN
272 WRITE( nout, fmt = 9996 )
'NRHS', nsval( i ), 0
274 ELSE IF( nsval( i ).GT.maxrhs )
THEN
275 WRITE( nout, fmt = 9995 )
'NRHS', nsval( i ), maxrhs
280 $
WRITE( nout, fmt = 9993 )
'NRHS', ( nsval( i ), i = 1, nns )
284 READ( nin, fmt = * )nnb
286 WRITE( nout, fmt = 9996 )
'NNB ', nnb, 1
289 ELSE IF( nnb.GT.maxin )
THEN
290 WRITE( nout, fmt = 9995 )
'NNB ', nnb, maxin
294 READ( nin, fmt = * )( nbval( i ), i = 1, nnb )
296 IF( nbval( i ).LT.0 )
THEN
297 WRITE( nout, fmt = 9996 )
' NB ', nbval( i ), 0
302 $
WRITE( nout, fmt = 9993 )
'NB ', ( nbval( i ), i = 1, nnb )
310 IF( nb.EQ.nbval2( j ) )
319 READ( nin, fmt = * )( nxval( i ), i = 1, nnb )
321 IF( nxval( i ).LT.0 )
THEN
322 WRITE( nout, fmt = 9996 )
' NX ', nxval( i ), 0
327 $
WRITE( nout, fmt = 9993 )
'NX ', ( nxval( i ), i = 1, nnb )
331 READ( nin, fmt = * )nrank
333 WRITE( nout, fmt = 9996 )
' NRANK ', nrank, 1
336 ELSE IF( nn.GT.maxin )
THEN
337 WRITE( nout, fmt = 9995 )
' NRANK ', nrank, maxin
341 READ( nin, fmt = * )( rankval( i ), i = 1, nrank )
343 IF( rankval( i ).LT.0 )
THEN
344 WRITE( nout, fmt = 9996 )
' RANK ', rankval( i ), 0
346 ELSE IF( rankval( i ).GT.100 )
THEN
347 WRITE( nout, fmt = 9995 )
' RANK ', rankval( i ), 100
352 $
WRITE( nout, fmt = 9993 )
'RANK % OF N',
353 $ ( rankval( i ), i = 1, nrank )
357 READ( nin, fmt = * )thresh
358 WRITE( nout, fmt = 9992 )thresh
362 READ( nin, fmt = * )tstchk
366 READ( nin, fmt = * )tstdrv
370 READ( nin, fmt = * )tsterr
373 WRITE( nout, fmt = 9999 )
379 eps = dlamch(
'Underflow threshold' )
380 WRITE( nout, fmt = 9991 )
'underflow', eps
381 eps = dlamch(
'Overflow threshold' )
382 WRITE( nout, fmt = 9991 )
'overflow ', eps
383 eps = dlamch(
'Epsilon' )
384 WRITE( nout, fmt = 9991 )
'precision', eps
385 WRITE( nout, fmt = * )
392 READ( nin, fmt =
'(A72)', end = 140 )aline
400 IF( aline( i: i ).EQ.
' ' )
406 IF( c1.EQ.intstr( k: k ) )
THEN
413 nmats = nmats*10 + ic
424 IF( .NOT.lsame( c1,
'Zomplex precision' ) )
THEN
425 WRITE( nout, fmt = 9990 )path
427 ELSE IF( nmats.LE.0 )
THEN
431 WRITE( nout, fmt = 9989 )path
433 ELSE IF( lsamen( 2, c2,
'GE' ) )
THEN
438 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
441 CALL zchkge( dotype, nm, mval, nn, nval, nnb2, nbval2, nns,
442 $ nsval, thresh, tsterr, lda, a( 1, 1 ),
443 $ a( 1, 2 ), a( 1, 3 ), b( 1, 1 ), b( 1, 2 ),
444 $ b( 1, 3 ), work, rwork, iwork, nout )
446 WRITE( nout, fmt = 9989 )path
450 CALL zdrvge( dotype, nn, nval, nrhs, thresh, tsterr, lda,
451 $ a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), b( 1, 1 ),
452 $ b( 1, 2 ), b( 1, 3 ), b( 1, 4 ), s, work,
453 $ rwork, iwork, nout )
455 WRITE( nout, fmt = 9988 )path
458 ELSE IF( lsamen( 2, c2,
'GB' ) )
THEN
462 la = ( 2*kdmax+1 )*nmax
463 lafac = ( 3*kdmax+1 )*nmax
465 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
468 CALL zchkgb( dotype, nm, mval, nn, nval, nnb2, nbval2, nns,
469 $ nsval, thresh, tsterr, a( 1, 1 ), la,
470 $ a( 1, 3 ), lafac, b( 1, 1 ), b( 1, 2 ),
471 $ b( 1, 3 ), work, rwork, iwork, nout )
473 WRITE( nout, fmt = 9989 )path
477 CALL zdrvgb( dotype, nn, nval, nrhs, thresh, tsterr,
478 $ a( 1, 1 ), la, a( 1, 3 ), lafac, a( 1, 6 ),
479 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ), b( 1, 4 ), s,
480 $ work, rwork, iwork, nout )
482 WRITE( nout, fmt = 9988 )path
485 ELSE IF( lsamen( 2, c2,
'GT' ) )
THEN
490 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
493 CALL zchkgt( dotype, nn, nval, nns, nsval, thresh, tsterr,
494 $ a( 1, 1 ), a( 1, 2 ), b( 1, 1 ), b( 1, 2 ),
495 $ b( 1, 3 ), work, rwork, iwork, nout )
497 WRITE( nout, fmt = 9989 )path
501 CALL zdrvgt( dotype, nn, nval, nrhs, thresh, tsterr,
502 $ a( 1, 1 ), a( 1, 2 ), b( 1, 1 ), b( 1, 2 ),
503 $ b( 1, 3 ), work, rwork, iwork, nout )
505 WRITE( nout, fmt = 9988 )path
508 ELSE IF( lsamen( 2, c2,
'PO' ) )
THEN
513 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
516 CALL zchkpo( dotype, nn, nval, nnb2, nbval2, nns, nsval,
517 $ thresh, tsterr, lda, a( 1, 1 ), a( 1, 2 ),
518 $ a( 1, 3 ), b( 1, 1 ), b( 1, 2 ), b( 1, 3 ),
519 $ work, rwork, nout )
521 WRITE( nout, fmt = 9989 )path
525 CALL zdrvpo( dotype, nn, nval, nrhs, thresh, tsterr, lda,
526 $ a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), b( 1, 1 ),
527 $ b( 1, 2 ), b( 1, 3 ), b( 1, 4 ), s, work,
530 WRITE( nout, fmt = 9988 )path
533 ELSE IF( lsamen( 2, c2,
'PS' ) )
THEN
539 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
542 CALL zchkps( dotype, nn, nval, nnb2, nbval2, nrank,
543 $ rankval, thresh, tsterr, lda, a( 1, 1 ),
544 $ a( 1, 2 ), a( 1, 3 ), piv, work, rwork,
547 WRITE( nout, fmt = 9989 )path
550 ELSE IF( lsamen( 2, c2,
'PP' ) )
THEN
555 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
558 CALL zchkpp( dotype, nn, nval, nns, nsval, thresh, tsterr,
559 $ lda, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
560 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ), work, rwork,
563 WRITE( nout, fmt = 9989 )path
567 CALL zdrvpp( dotype, nn, nval, nrhs, thresh, tsterr, lda,
568 $ a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), b( 1, 1 ),
569 $ b( 1, 2 ), b( 1, 3 ), b( 1, 4 ), s, work,
572 WRITE( nout, fmt = 9988 )path
575 ELSE IF( lsamen( 2, c2,
'PB' ) )
THEN
580 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
583 CALL zchkpb( dotype, nn, nval, nnb2, nbval2, nns, nsval,
584 $ thresh, tsterr, lda, a( 1, 1 ), a( 1, 2 ),
585 $ a( 1, 3 ), b( 1, 1 ), b( 1, 2 ), b( 1, 3 ),
586 $ work, rwork, nout )
588 WRITE( nout, fmt = 9989 )path
592 CALL zdrvpb( dotype, nn, nval, nrhs, thresh, tsterr, lda,
593 $ a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), b( 1, 1 ),
594 $ b( 1, 2 ), b( 1, 3 ), b( 1, 4 ), s, work,
597 WRITE( nout, fmt = 9988 )path
600 ELSE IF( lsamen( 2, c2,
'PT' ) )
THEN
605 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
608 CALL zchkpt( dotype, nn, nval, nns, nsval, thresh, tsterr,
609 $ a( 1, 1 ), s, a( 1, 2 ), b( 1, 1 ), b( 1, 2 ),
610 $ b( 1, 3 ), work, rwork, nout )
612 WRITE( nout, fmt = 9989 )path
616 CALL zdrvpt( dotype, nn, nval, nrhs, thresh, tsterr,
617 $ a( 1, 1 ), s, a( 1, 2 ), b( 1, 1 ), b( 1, 2 ),
618 $ b( 1, 3 ), work, rwork, nout )
620 WRITE( nout, fmt = 9988 )path
623 ELSE IF( lsamen( 2, c2,
'HE' ) )
THEN
628 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
631 CALL zchkhe( dotype, nn, nval, nnb2, nbval2, nns, nsval,
632 $ thresh, tsterr, lda, a( 1, 1 ), a( 1, 2 ),
633 $ a( 1, 3 ), b( 1, 1 ), b( 1, 2 ), b( 1, 3 ),
634 $ work, rwork, iwork, nout )
636 WRITE( nout, fmt = 9989 )path
640 CALL zdrvhe( dotype, nn, nval, nrhs, thresh, tsterr, lda,
641 $ a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), b( 1, 1 ),
642 $ b( 1, 2 ), b( 1, 3 ), work, rwork, iwork,
645 WRITE( nout, fmt = 9988 )path
648 ELSE IF( lsamen( 2, c2,
'HR' ) )
THEN
654 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
657 CALL zchkhe_rook(dotype, nn, nval, nnb2, nbval2, nns, nsval,
658 $ thresh, tsterr, lda, a( 1, 1 ), a( 1, 2 ),
659 $ a( 1, 3 ), b( 1, 1 ), b( 1, 2 ), b( 1, 3 ),
660 $ work, rwork, iwork, nout )
662 WRITE( nout, fmt = 9989 )path
666 CALL zdrvhe_rook( dotype, nn, nval, nrhs, thresh, tsterr,
667 $ lda, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
668 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ), work,
669 $ rwork, iwork, nout )
671 WRITE( nout, fmt = 9988 )path
674 ELSE IF( lsamen( 2, c2,
'HK' ) )
THEN
681 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
684 CALL zchkhe_rk ( dotype, nn, nval, nnb2, nbval2, nns, nsval,
685 $ thresh, tsterr, lda, a( 1, 1 ), a( 1, 2 ),
686 $ e, a( 1, 3 ), b( 1, 1 ), b( 1, 2 ),
687 $ b( 1, 3 ), work, rwork, iwork, nout )
689 WRITE( nout, fmt = 9989 )path
693 CALL zdrvhe_rk( dotype, nn, nval, nrhs, thresh, tsterr,
694 $ lda, a( 1, 1 ), a( 1, 2 ), e, a( 1, 3 ),
695 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ), work,
696 $ rwork, iwork, nout )
698 WRITE( nout, fmt = 9988 )path
701 ELSE IF( lsamen( 2, c2,
'HA' ) )
THEN
707 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
710 CALL zchkhe_aa( dotype, nn, nval, nnb2, nbval2, nns,
711 $ nsval, thresh, tsterr, lda,
712 $ a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
713 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ),
714 $ work, rwork, iwork, nout )
716 WRITE( nout, fmt = 9989 )path
720 CALL zdrvhe_aa( dotype, nn, nval, nrhs, thresh, tsterr,
721 $ lda, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
722 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ),
723 $ work, rwork, iwork, nout )
725 WRITE( nout, fmt = 9988 )path
728 ELSE IF( lsamen( 2, c2,
'HP' ) )
THEN
733 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
736 CALL zchkhp( dotype, nn, nval, nns, nsval, thresh, tsterr,
737 $ lda, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
738 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ), work, rwork,
741 WRITE( nout, fmt = 9989 )path
745 CALL zdrvhp( dotype, nn, nval, nrhs, thresh, tsterr, lda,
746 $ a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), b( 1, 1 ),
747 $ b( 1, 2 ), b( 1, 3 ), work, rwork, iwork,
750 WRITE( nout, fmt = 9988 )path
753 ELSE IF( lsamen( 2, c2,
'SY' ) )
THEN
759 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
762 CALL zchksy( dotype, nn, nval, nnb2, nbval2, nns, nsval,
763 $ thresh, tsterr, lda, a( 1, 1 ), a( 1, 2 ),
764 $ a( 1, 3 ), b( 1, 1 ), b( 1, 2 ), b( 1, 3 ),
765 $ work, rwork, iwork, nout )
767 WRITE( nout, fmt = 9989 )path
771 CALL zdrvsy( dotype, nn, nval, nrhs, thresh, tsterr, lda,
772 $ a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), b( 1, 1 ),
773 $ b( 1, 2 ), b( 1, 3 ), work, rwork, iwork,
776 WRITE( nout, fmt = 9988 )path
779 ELSE IF( lsamen( 2, c2,
'SR' ) )
THEN
785 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
788 CALL zchksy_rook(dotype, nn, nval, nnb2, nbval2, nns, nsval,
789 $ thresh, tsterr, lda, a( 1, 1 ), a( 1, 2 ),
790 $ a( 1, 3 ), b( 1, 1 ), b( 1, 2 ), b( 1, 3 ),
791 $ work, rwork, iwork, nout )
793 WRITE( nout, fmt = 9989 )path
797 CALL zdrvsy_rook( dotype, nn, nval, nrhs, thresh, tsterr,
798 $ lda, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
799 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ), work,
800 $ rwork, iwork, nout )
802 WRITE( nout, fmt = 9988 )path
805 ELSE IF( lsamen( 2, c2,
'SK' ) )
THEN
812 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
815 CALL zchksy_rk( dotype, nn, nval, nnb2, nbval2, nns, nsval,
816 $ thresh, tsterr, lda, a( 1, 1 ), a( 1, 2 ),
817 $ e, a( 1, 3 ), b( 1, 1 ), b( 1, 2 ),
818 $ b( 1, 3 ), work, rwork, iwork, nout )
820 WRITE( nout, fmt = 9989 )path
824 CALL zdrvsy_rk( dotype, nn, nval, nrhs, thresh, tsterr,
825 $ lda, a( 1, 1 ), a( 1, 2 ), e, a( 1, 3 ),
826 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ), work,
827 $ rwork, iwork, nout )
829 WRITE( nout, fmt = 9988 )path
832 ELSE IF( lsamen( 2, c2,
'SA' ) )
THEN
839 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
842 CALL zchksy_aa( dotype, nn, nval, nnb2, nbval2, nns, nsval,
843 $ thresh, tsterr, lda, a( 1, 1 ), a( 1, 2 ),
844 $ a( 1, 3 ), b( 1, 1 ), b( 1, 2 ),
845 $ b( 1, 3 ), work, rwork, iwork, nout )
847 WRITE( nout, fmt = 9989 )path
851 CALL zdrvsy_aa( dotype, nn, nval, nrhs, thresh, tsterr,
852 $ lda, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
853 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ), work,
854 $ rwork, iwork, nout )
856 WRITE( nout, fmt = 9988 )path
859 ELSE IF( lsamen( 2, c2,
'SP' ) )
THEN
865 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
868 CALL zchksp( dotype, nn, nval, nns, nsval, thresh, tsterr,
869 $ lda, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
870 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ), work, rwork,
873 WRITE( nout, fmt = 9989 )path
877 CALL zdrvsp( dotype, nn, nval, nrhs, thresh, tsterr, lda,
878 $ a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), b( 1, 1 ),
879 $ b( 1, 2 ), b( 1, 3 ), work, rwork, iwork,
882 WRITE( nout, fmt = 9988 )path
885 ELSE IF( lsamen( 2, c2,
'TR' ) )
THEN
890 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
893 CALL zchktr( dotype, nn, nval, nnb2, nbval2, nns, nsval,
894 $ thresh, tsterr, lda, a( 1, 1 ), a( 1, 2 ),
895 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ), work, rwork,
898 WRITE( nout, fmt = 9989 )path
901 ELSE IF( lsamen( 2, c2,
'TP' ) )
THEN
906 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
909 CALL zchktp( dotype, nn, nval, nns, nsval, thresh, tsterr,
910 $ lda, a( 1, 1 ), a( 1, 2 ), b( 1, 1 ),
911 $ b( 1, 2 ), b( 1, 3 ), work, rwork, nout )
913 WRITE( nout, fmt = 9989 )path
916 ELSE IF( lsamen( 2, c2,
'TB' ) )
THEN
921 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
924 CALL zchktb( dotype, nn, nval, nns, nsval, thresh, tsterr,
925 $ lda, a( 1, 1 ), a( 1, 2 ), b( 1, 1 ),
926 $ b( 1, 2 ), b( 1, 3 ), work, rwork, nout )
928 WRITE( nout, fmt = 9989 )path
931 ELSE IF( lsamen( 2, c2,
'QR' ) )
THEN
936 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
939 CALL zchkqr( dotype, nm, mval, nn, nval, nnb, nbval, nxval,
940 $ nrhs, thresh, tsterr, nmax, a( 1, 1 ),
941 $ a( 1, 2 ), a( 1, 3 ), a( 1, 4 ), a( 1, 5 ),
942 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ), b( 1, 4 ),
943 $ work, rwork, iwork, nout )
945 WRITE( nout, fmt = 9989 )path
948 ELSE IF( lsamen( 2, c2,
'LQ' ) )
THEN
953 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
956 CALL zchklq( dotype, nm, mval, nn, nval, nnb, nbval, nxval,
957 $ nrhs, thresh, tsterr, nmax, a( 1, 1 ),
958 $ a( 1, 2 ), a( 1, 3 ), a( 1, 4 ), a( 1, 5 ),
959 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ), b( 1, 4 ),
960 $ work, rwork, nout )
962 WRITE( nout, fmt = 9989 )path
965 ELSE IF( lsamen( 2, c2,
'QL' ) )
THEN
970 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
973 CALL zchkql( dotype, nm, mval, nn, nval, nnb, nbval, nxval,
974 $ nrhs, thresh, tsterr, nmax, a( 1, 1 ),
975 $ a( 1, 2 ), a( 1, 3 ), a( 1, 4 ), a( 1, 5 ),
976 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ), b( 1, 4 ),
977 $ work, rwork, nout )
979 WRITE( nout, fmt = 9989 )path
982 ELSE IF( lsamen( 2, c2,
'RQ' ) )
THEN
987 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
990 CALL zchkrq( dotype, nm, mval, nn, nval, nnb, nbval, nxval,
991 $ nrhs, thresh, tsterr, nmax, a( 1, 1 ),
992 $ a( 1, 2 ), a( 1, 3 ), a( 1, 4 ), a( 1, 5 ),
993 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ), b( 1, 4 ),
994 $ work, rwork, iwork, nout )
996 WRITE( nout, fmt = 9989 )path
999 ELSE IF( lsamen( 2, c2,
'EQ' ) )
THEN
1005 CALL zchkeq( threq, nout )
1007 WRITE( nout, fmt = 9989 )path
1010 ELSE IF( lsamen( 2, c2,
'TZ' ) )
THEN
1015 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
1018 CALL zchktz( dotype, nm, mval, nn, nval, thresh, tsterr,
1019 $ a( 1, 1 ), a( 1, 2 ), s( 1 ),
1020 $ b( 1, 1 ), work, rwork, nout )
1022 WRITE( nout, fmt = 9989 )path
1025 ELSE IF( lsamen( 2, c2,
'QP' ) )
THEN
1030 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
1033 CALL zchkq3( dotype, nm, mval, nn, nval, nnb, nbval, nxval,
1034 $ thresh, a( 1, 1 ), a( 1, 2 ), s( 1 ),
1035 $ b( 1, 1 ), work, rwork, iwork,
1038 WRITE( nout, fmt = 9989 )path
1041 ELSE IF( lsamen( 2, c2,
'LS' ) )
THEN
1046 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
1049 CALL zdrvls( dotype, nm, mval, nn, nval, nns, nsval, nnb,
1050 $ nbval, nxval, thresh, tsterr, a( 1, 1 ),
1051 $ a( 1, 2 ), a( 1, 3 ), a( 1, 4 ), a( 1, 5 ),
1052 $ s( 1 ), s( nmax+1 ), nout )
1054 WRITE( nout, fmt = 9989 )path
1058 ELSE IF( lsamen( 2, c2,
'QT' ) )
THEN
1063 CALL zchkqrt( thresh, tsterr, nm, mval, nn, nval, nnb,
1066 WRITE( nout, fmt = 9989 )path
1069 ELSE IF( lsamen( 2, c2,
'QX' ) )
THEN
1074 CALL zchkqrtp( thresh, tsterr, nm, mval, nn, nval, nnb,
1077 WRITE( nout, fmt = 9989 )path
1080 ELSE IF( lsamen( 2, c2,
'TQ' ) )
THEN
1085 CALL zchklqt( thresh, tsterr, nm, mval, nn, nval, nnb,
1088 WRITE( nout, fmt = 9989 )path
1091 ELSE IF( lsamen( 2, c2,
'XQ' ) )
THEN
1096 CALL zchklqtp( thresh, tsterr, nm, mval, nn, nval, nnb,
1099 WRITE( nout, fmt = 9989 )path
1102 ELSE IF( lsamen( 2, c2,
'TS' ) )
THEN
1107 CALL zchktsqr( thresh, tsterr, nm, mval, nn, nval, nnb,
1110 WRITE( nout, fmt = 9989 )path
1113 ELSE IF( lsamen( 2, c2,
'TQ' ) )
THEN
1118 CALL zchklqt( thresh, tsterr, nm, mval, nn, nval, nnb,
1121 WRITE( nout, fmt = 9989 )path
1124 ELSE IF( lsamen( 2, c2,
'XQ' ) )
THEN
1129 CALL zchklqtp( thresh, tsterr, nm, mval, nn, nval, nnb,
1132 WRITE( nout, fmt = 9989 )path
1135 ELSE IF( lsamen( 2, c2,
'TS' ) )
THEN
1140 CALL zchktsqr( thresh, tsterr, nm, mval, nn, nval, nnb,
1143 WRITE( nout, fmt = 9989 )path
1148 WRITE( nout, fmt = 9990 )path
1160 WRITE( nout, fmt = 9998 )
1161 WRITE( nout, fmt = 9997 )s2 - s1
1163 9999
FORMAT( /
' Execution not attempted due to input errors' )
1164 9998
FORMAT( /
' End of tests' )
1165 9997
FORMAT(
' Total time used = ', f12.2,
' seconds', / )
1166 9996
FORMAT(
' Invalid input value: ', a4,
'=', i6,
'; must be >=',
1168 9995
FORMAT(
' Invalid input value: ', a4,
'=', i6,
'; must be <=',
1170 9994
FORMAT(
' Tests of the COMPLEX*16 LAPACK routines ',
1171 $ /
' LAPACK VERSION ', i1,
'.', i1,
'.', i1,
1172 $ / /
' The following parameter values will be used:' )
1173 9993
FORMAT( 4x, a4,
': ', 10i6, / 11x, 10i6 )
1174 9992
FORMAT( /
' Routines pass computational tests if test ratio is ',
1175 $
'less than', f8.2, / )
1176 9991
FORMAT(
' Relative machine ', a,
' is taken to be', d16.6 )
1177 9990
FORMAT( / 1x, a3,
': Unrecognized path name' )
1178 9989
FORMAT( / 1x, a3,
' routines were not tested' )
1179 9988
FORMAT( / 1x, a3,
' driver routines were not tested' )
subroutine zchkeq(THRESH, NOUT)
ZCHKEQ
subroutine zchkhe_rook(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
ZCHKHE_ROOK
subroutine zchkrq(DOTYPE, NM, MVAL, NN, NVAL, NNB, NBVAL, NXVAL, NRHS, THRESH, TSTERR, NMAX, A, AF, AQ, AR, AC, B, X, XACT, TAU, WORK, RWORK, IWORK, NOUT)
ZCHKRQ
subroutine zchklqt(THRESH, TSTERR, NM, MVAL, NN, NVAL, NNB, NBVAL, NOUT)
ZCHKLQT
subroutine zdrvhe_rk(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, E, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
ZDRVHE_RK
subroutine zchkpt(DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, A, D, E, B, X, XACT, WORK, RWORK, NOUT)
ZCHKPT
subroutine zchkqrt(THRESH, TSTERR, NM, MVAL, NN, NVAL, NNB, NBVAL, NOUT)
ZCHKQRT
subroutine zchkps(DOTYPE, NN, NVAL, NNB, NBVAL, NRANK, RANKVAL, THRESH, TSTERR, NMAX, A, AFAC, PERM, PIV, WORK, RWORK, NOUT)
ZCHKPS
subroutine zchktz(DOTYPE, NM, MVAL, NN, NVAL, THRESH, TSTERR, A, COPYA, S, TAU, WORK, RWORK, NOUT)
ZCHKTZ
subroutine zchkpo(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, NOUT)
ZCHKPO
subroutine zdrvge(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, ASAV, B, BSAV, X, XACT, S, WORK, RWORK, IWORK, NOUT)
ZDRVGE
subroutine zdrvsy_rk(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, E, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
ZDRVSY_RK
subroutine zchksy_rook(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
ZCHKSY_ROOK
subroutine zdrvsy_aa(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
ZDRVSY_AA
subroutine zchkgt(DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, A, AF, B, X, XACT, WORK, RWORK, IWORK, NOUT)
ZCHKGT
subroutine zchkq3(DOTYPE, NM, MVAL, NN, NVAL, NNB, NBVAL, NXVAL, THRESH, A, COPYA, S, TAU, WORK, RWORK, IWORK, NOUT)
ZCHKQ3
subroutine zdrvls(DOTYPE, NM, MVAL, NN, NVAL, NNS, NSVAL, NNB, NBVAL, NXVAL, THRESH, TSTERR, A, COPYA, B, COPYB, C, S, COPYS, NOUT)
ZDRVLS
subroutine alareq(PATH, NMATS, DOTYPE, NTYPES, NIN, NOUT)
ALAREQ
subroutine zchkhe(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
ZCHKHE
subroutine zchkql(DOTYPE, NM, MVAL, NN, NVAL, NNB, NBVAL, NXVAL, NRHS, THRESH, TSTERR, NMAX, A, AF, AQ, AL, AC, B, X, XACT, TAU, WORK, RWORK, NOUT)
ZCHKQL
subroutine zchkhe_aa(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
ZCHKHE_AA
subroutine zchkqr(DOTYPE, NM, MVAL, NN, NVAL, NNB, NBVAL, NXVAL, NRHS, THRESH, TSTERR, NMAX, A, AF, AQ, AR, AC, B, X, XACT, TAU, WORK, RWORK, IWORK, NOUT)
ZCHKQR
subroutine zchklqtp(THRESH, TSTERR, NM, MVAL, NN, NVAL, NNB, NBVAL, NOUT)
ZCHKLQTP
subroutine zdrvhe_rook(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
ZDRVHE_ROOK
subroutine zchkpb(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, NOUT)
ZCHKPB
subroutine zchkpp(DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, NOUT)
ZCHKPP
subroutine zchkge(DOTYPE, NM, MVAL, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
ZCHKGE
subroutine zchktr(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AINV, B, X, XACT, WORK, RWORK, NOUT)
ZCHKTR
subroutine zdrvpt(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, A, D, E, B, X, XACT, WORK, RWORK, NOUT)
ZDRVPT
subroutine zchktp(DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, AP, AINVP, B, X, XACT, WORK, RWORK, NOUT)
ZCHKTP
subroutine zchksp(DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
ZCHKSP
subroutine zdrvgb(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, A, LA, AFB, LAFB, ASAV, B, BSAV, X, XACT, S, WORK, RWORK, IWORK, NOUT)
ZDRVGB
subroutine zchksy(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
ZCHKSY
subroutine zchklq(DOTYPE, NM, MVAL, NN, NVAL, NNB, NBVAL, NXVAL, NRHS, THRESH, TSTERR, NMAX, A, AF, AQ, AL, AC, B, X, XACT, TAU, WORK, RWORK, NOUT)
ZCHKLQ
subroutine zchksy_aa(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
ZCHKSY_AA
subroutine zdrvsy_rook(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
ZDRVSY_ROOK
subroutine zdrvsy(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
ZDRVSY
subroutine zchktb(DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, AB, AINV, B, X, XACT, WORK, RWORK, NOUT)
ZCHKTB
subroutine zchkhe_rk(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, E, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
ZCHKHE_RK
subroutine zdrvgt(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, A, AF, B, X, XACT, WORK, RWORK, IWORK, NOUT)
ZDRVGT
subroutine zdrvhe_aa(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
ZDRVHE_AA
subroutine zdrvhe(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
ZDRVHE
subroutine zchktsqr(THRESH, TSTERR, NM, MVAL, NN, NVAL, NNB, NBVAL, NOUT)
DCHKQRT
subroutine zchkhp(DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
ZCHKHP
subroutine zdrvpp(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, ASAV, B, BSAV, X, XACT, S, WORK, RWORK, NOUT)
ZDRVPP
subroutine ilaver(VERS_MAJOR, VERS_MINOR, VERS_PATCH)
ILAVER returns the LAPACK version.
subroutine zchkqrtp(THRESH, TSTERR, NM, MVAL, NN, NVAL, NNB, NBVAL, NOUT)
ZCHKQRTP
subroutine zdrvpb(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, ASAV, B, BSAV, X, XACT, S, WORK, RWORK, NOUT)
ZDRVPB
subroutine zdrvpo(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, ASAV, B, BSAV, X, XACT, S, WORK, RWORK, NOUT)
ZDRVPO
subroutine zchkgb(DOTYPE, NM, MVAL, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, A, LA, AFAC, LAFAC, B, X, XACT, WORK, RWORK, IWORK, NOUT)
ZCHKGB
subroutine zdrvsp(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
ZDRVSP
subroutine zchksy_rk(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, E, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
ZCHKSY_RK
subroutine zdrvhp(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
ZDRVHP