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 zdrvpb(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, ASAV, B, BSAV, X, XACT, S, WORK, RWORK, NOUT)
ZDRVPB
subroutine zdrvsy_rk(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, E, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
ZDRVSY_RK
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 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 zchkpb(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, NOUT)
ZCHKPB
subroutine zdrvsy_rook(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
ZDRVSY_ROOK
subroutine zchktsqr(THRESH, TSTERR, NM, MVAL, NN, NVAL, NNB, NBVAL, NOUT)
DCHKQRT
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 zdrvhe(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
ZDRVHE
subroutine zdrvhe_rook(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
ZDRVHE_ROOK
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 zchkhp(DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
ZCHKHP
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 zchktb(DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, AB, AINV, B, X, XACT, WORK, RWORK, NOUT)
ZCHKTB
subroutine zchksy(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
ZCHKSY
subroutine zchkpp(DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, NOUT)
ZCHKPP
subroutine alareq(PATH, NMATS, DOTYPE, NTYPES, NIN, NOUT)
ALAREQ
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 zdrvsy_aa(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
ZDRVSY_AA
subroutine zdrvsp(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
ZDRVSP
subroutine zchksp(DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
ZCHKSP
subroutine zdrvpo(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, ASAV, B, BSAV, X, XACT, S, WORK, RWORK, NOUT)
ZDRVPO
subroutine zdrvpt(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, A, D, E, B, X, XACT, WORK, RWORK, NOUT)
ZDRVPT
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 ilaver(VERS_MAJOR, VERS_MINOR, VERS_PATCH)
ILAVER returns the LAPACK version.
subroutine zdrvhe_rk(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, E, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
ZDRVHE_RK
subroutine zchkhe(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
ZCHKHE
subroutine zchklqtp(THRESH, TSTERR, NM, MVAL, NN, NVAL, NNB, NBVAL, NOUT)
ZCHKLQTP
subroutine zdrvsy(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
ZDRVSY
subroutine zchkpo(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, NOUT)
ZCHKPO
subroutine zchktr(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AINV, B, X, XACT, WORK, RWORK, NOUT)
ZCHKTR
subroutine zchkpt(DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, A, D, E, B, X, XACT, WORK, RWORK, NOUT)
ZCHKPT
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 zchkqrtp(THRESH, TSTERR, NM, MVAL, NN, NVAL, NNB, NBVAL, NOUT)
ZCHKQRTP
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 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 zchktp(DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, AP, AINVP, B, X, XACT, WORK, RWORK, NOUT)
ZCHKTP
subroutine zchklqt(THRESH, TSTERR, NM, MVAL, NN, NVAL, NNB, NBVAL, NOUT)
ZCHKLQT
subroutine zchkq3(DOTYPE, NM, MVAL, NN, NVAL, NNB, NBVAL, NXVAL, THRESH, A, COPYA, S, TAU, WORK, RWORK, IWORK, NOUT)
ZCHKQ3
subroutine zdrvge(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, ASAV, B, BSAV, X, XACT, S, WORK, RWORK, IWORK, NOUT)
ZDRVGE
subroutine zdrvpp(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, ASAV, B, BSAV, X, XACT, S, WORK, RWORK, NOUT)
ZDRVPP
subroutine zchkqrt(THRESH, TSTERR, NM, MVAL, NN, NVAL, NNB, NBVAL, NOUT)
ZCHKQRT
subroutine zdrvhe_aa(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
ZDRVHE_AA
subroutine zdrvls(DOTYPE, NM, MVAL, NN, NVAL, NNS, NSVAL, NNB, NBVAL, NXVAL, THRESH, TSTERR, A, COPYA, B, COPYB, C, S, COPYS, NOUT)
ZDRVLS
subroutine zdrvgt(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, A, AF, B, X, XACT, WORK, RWORK, IWORK, NOUT)
ZDRVGT
subroutine zchktz(DOTYPE, NM, MVAL, NN, NVAL, THRESH, TSTERR, A, COPYA, S, TAU, WORK, RWORK, NOUT)
ZCHKTZ
subroutine zchkps(DOTYPE, NN, NVAL, NNB, NBVAL, NRANK, RANKVAL, THRESH, TSTERR, NMAX, A, AFAC, PERM, PIV, WORK, RWORK, NOUT)
ZCHKPS
subroutine zchkgt(DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, A, AF, B, X, XACT, WORK, RWORK, IWORK, NOUT)
ZCHKGT
subroutine zdrvhp(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
ZDRVHP
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 zdrvgb(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, A, LA, AFB, LAFB, ASAV, B, BSAV, X, XACT, S, WORK, RWORK, IWORK, NOUT)
ZDRVGB
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