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 REAL 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 REAL RWORK( 150*nmax+2*maxrhs ), S( 2*nmax )
155 COMPLEX A( ( kdmax+1 )*nmax, 7 ), B( nmax*maxrhs, 4 ),
156 $ e( nmax ), work( nmax, nmax+maxrhs+10 )
159 LOGICAL LSAME, LSAMEN
161 EXTERNAL lsame, lsamen, second, slamch
181 INTEGER IPARMS( 100 )
184 COMMON / claenv / iparms
185 COMMON / infoc / infot, nunit, ok, lerr
186 COMMON / srnamc / srnamt
189 DATA threq / 2.0 / , intstr /
'0123456789' /
203 CALL ilaver( vers_major, vers_minor, vers_patch )
204 WRITE( nout, fmt = 9994 ) vers_major, vers_minor, vers_patch
208 READ( nin, fmt = * )nm
210 WRITE( nout, fmt = 9996 )
' NM ', nm, 1
213 ELSE IF( nm.GT.maxin )
THEN 214 WRITE( nout, fmt = 9995 )
' NM ', nm, maxin
218 READ( nin, fmt = * )( mval( i ), i = 1, nm )
220 IF( mval( i ).LT.0 )
THEN 221 WRITE( nout, fmt = 9996 )
' M ', mval( i ), 0
223 ELSE IF( mval( i ).GT.nmax )
THEN 224 WRITE( nout, fmt = 9995 )
' M ', mval( i ), nmax
229 $
WRITE( nout, fmt = 9993 )
'M ', ( mval( i ), i = 1, nm )
233 READ( nin, fmt = * )nn
235 WRITE( nout, fmt = 9996 )
' NN ', nn, 1
238 ELSE IF( nn.GT.maxin )
THEN 239 WRITE( nout, fmt = 9995 )
' NN ', nn, maxin
243 READ( nin, fmt = * )( nval( i ), i = 1, nn )
245 IF( nval( i ).LT.0 )
THEN 246 WRITE( nout, fmt = 9996 )
' N ', nval( i ), 0
248 ELSE IF( nval( i ).GT.nmax )
THEN 249 WRITE( nout, fmt = 9995 )
' N ', nval( i ), nmax
254 $
WRITE( nout, fmt = 9993 )
'N ', ( nval( i ), i = 1, nn )
258 READ( nin, fmt = * )nns
260 WRITE( nout, fmt = 9996 )
' NNS', nns, 1
263 ELSE IF( nns.GT.maxin )
THEN 264 WRITE( nout, fmt = 9995 )
' NNS', nns, maxin
268 READ( nin, fmt = * )( nsval( i ), i = 1, nns )
270 IF( nsval( i ).LT.0 )
THEN 271 WRITE( nout, fmt = 9996 )
'NRHS', nsval( i ), 0
273 ELSE IF( nsval( i ).GT.maxrhs )
THEN 274 WRITE( nout, fmt = 9995 )
'NRHS', nsval( i ), maxrhs
279 $
WRITE( nout, fmt = 9993 )
'NRHS', ( nsval( i ), i = 1, nns )
283 READ( nin, fmt = * )nnb
285 WRITE( nout, fmt = 9996 )
'NNB ', nnb, 1
288 ELSE IF( nnb.GT.maxin )
THEN 289 WRITE( nout, fmt = 9995 )
'NNB ', nnb, maxin
293 READ( nin, fmt = * )( nbval( i ), i = 1, nnb )
295 IF( nbval( i ).LT.0 )
THEN 296 WRITE( nout, fmt = 9996 )
' NB ', nbval( i ), 0
301 $
WRITE( nout, fmt = 9993 )
'NB ', ( nbval( i ), i = 1, nnb )
309 IF( nb.EQ.nbval2( j ) )
318 READ( nin, fmt = * )( nxval( i ), i = 1, nnb )
320 IF( nxval( i ).LT.0 )
THEN 321 WRITE( nout, fmt = 9996 )
' NX ', nxval( i ), 0
326 $
WRITE( nout, fmt = 9993 )
'NX ', ( nxval( i ), i = 1, nnb )
330 READ( nin, fmt = * )nrank
332 WRITE( nout, fmt = 9996 )
' NRANK ', nrank, 1
335 ELSE IF( nn.GT.maxin )
THEN 336 WRITE( nout, fmt = 9995 )
' NRANK ', nrank, maxin
340 READ( nin, fmt = * )( rankval( i ), i = 1, nrank )
342 IF( rankval( i ).LT.0 )
THEN 343 WRITE( nout, fmt = 9996 )
' RANK ', rankval( i ), 0
345 ELSE IF( rankval( i ).GT.100 )
THEN 346 WRITE( nout, fmt = 9995 )
' RANK ', rankval( i ), 100
351 $
WRITE( nout, fmt = 9993 )
'RANK % OF N',
352 $ ( rankval( i ), i = 1, nrank )
356 READ( nin, fmt = * )thresh
357 WRITE( nout, fmt = 9992 )thresh
361 READ( nin, fmt = * )tstchk
365 READ( nin, fmt = * )tstdrv
369 READ( nin, fmt = * )tsterr
372 WRITE( nout, fmt = 9999 )
378 eps = slamch(
'Underflow threshold' )
379 WRITE( nout, fmt = 9991 )
'underflow', eps
380 eps = slamch(
'Overflow threshold' )
381 WRITE( nout, fmt = 9991 )
'overflow ', eps
382 eps = slamch(
'Epsilon' )
383 WRITE( nout, fmt = 9991 )
'precision', eps
384 WRITE( nout, fmt = * )
391 READ( nin, fmt =
'(A72)', end = 140 )aline
399 IF( aline( i: i ).EQ.
' ' )
405 IF( c1.EQ.intstr( k: k ) )
THEN 412 nmats = nmats*10 + ic
423 IF( .NOT.lsame( c1,
'Complex precision' ) )
THEN 424 WRITE( nout, fmt = 9990 )path
426 ELSE IF( nmats.LE.0 )
THEN 430 WRITE( nout, fmt = 9989 )path
432 ELSE IF( lsamen( 2, c2,
'GE' ) )
THEN 437 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
440 CALL cchkge( dotype, nm, mval, nn, nval, nnb2, nbval2, nns,
441 $ nsval, thresh, tsterr, lda, a( 1, 1 ),
442 $ a( 1, 2 ), a( 1, 3 ), b( 1, 1 ), b( 1, 2 ),
443 $ b( 1, 3 ), work, rwork, iwork, nout )
445 WRITE( nout, fmt = 9989 )path
449 CALL cdrvge( dotype, nn, nval, nrhs, thresh, tsterr, lda,
450 $ a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), b( 1, 1 ),
451 $ b( 1, 2 ), b( 1, 3 ), b( 1, 4 ), s, work,
452 $ rwork, iwork, nout )
454 WRITE( nout, fmt = 9988 )path
457 ELSE IF( lsamen( 2, c2,
'GB' ) )
THEN 461 la = ( 2*kdmax+1 )*nmax
462 lafac = ( 3*kdmax+1 )*nmax
464 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
467 CALL cchkgb( dotype, nm, mval, nn, nval, nnb2, nbval2, nns,
468 $ nsval, thresh, tsterr, a( 1, 1 ), la,
469 $ a( 1, 3 ), lafac, b( 1, 1 ), b( 1, 2 ),
470 $ b( 1, 3 ), work, rwork, iwork, nout )
472 WRITE( nout, fmt = 9989 )path
476 CALL cdrvgb( dotype, nn, nval, nrhs, thresh, tsterr,
477 $ a( 1, 1 ), la, a( 1, 3 ), lafac, a( 1, 6 ),
478 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ), b( 1, 4 ), s,
479 $ work, rwork, iwork, nout )
481 WRITE( nout, fmt = 9988 )path
484 ELSE IF( lsamen( 2, c2,
'GT' ) )
THEN 489 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
492 CALL cchkgt( dotype, nn, nval, nns, nsval, thresh, tsterr,
493 $ a( 1, 1 ), a( 1, 2 ), b( 1, 1 ), b( 1, 2 ),
494 $ b( 1, 3 ), work, rwork, iwork, nout )
496 WRITE( nout, fmt = 9989 )path
500 CALL cdrvgt( dotype, nn, nval, nrhs, thresh, tsterr,
501 $ a( 1, 1 ), a( 1, 2 ), b( 1, 1 ), b( 1, 2 ),
502 $ b( 1, 3 ), work, rwork, iwork, nout )
504 WRITE( nout, fmt = 9988 )path
507 ELSE IF( lsamen( 2, c2,
'PO' ) )
THEN 512 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
515 CALL cchkpo( dotype, nn, nval, nnb2, nbval2, nns, nsval,
516 $ thresh, tsterr, lda, a( 1, 1 ), a( 1, 2 ),
517 $ a( 1, 3 ), b( 1, 1 ), b( 1, 2 ), b( 1, 3 ),
518 $ work, rwork, nout )
520 WRITE( nout, fmt = 9989 )path
524 CALL cdrvpo( dotype, nn, nval, nrhs, thresh, tsterr, lda,
525 $ a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), b( 1, 1 ),
526 $ b( 1, 2 ), b( 1, 3 ), b( 1, 4 ), s, work,
529 WRITE( nout, fmt = 9988 )path
532 ELSE IF( lsamen( 2, c2,
'PS' ) )
THEN 538 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
541 CALL cchkps( dotype, nn, nval, nnb2, nbval2, nrank,
542 $ rankval, thresh, tsterr, lda, a( 1, 1 ),
543 $ a( 1, 2 ), a( 1, 3 ), piv, work, rwork,
546 WRITE( nout, fmt = 9989 )path
549 ELSE IF( lsamen( 2, c2,
'PP' ) )
THEN 554 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
557 CALL cchkpp( dotype, nn, nval, nns, nsval, thresh, tsterr,
558 $ lda, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
559 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ), work, rwork,
562 WRITE( nout, fmt = 9989 )path
566 CALL cdrvpp( dotype, nn, nval, nrhs, thresh, tsterr, lda,
567 $ a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), b( 1, 1 ),
568 $ b( 1, 2 ), b( 1, 3 ), b( 1, 4 ), s, work,
571 WRITE( nout, fmt = 9988 )path
574 ELSE IF( lsamen( 2, c2,
'PB' ) )
THEN 579 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
582 CALL cchkpb( dotype, nn, nval, nnb2, nbval2, nns, nsval,
583 $ thresh, tsterr, lda, a( 1, 1 ), a( 1, 2 ),
584 $ a( 1, 3 ), b( 1, 1 ), b( 1, 2 ), b( 1, 3 ),
585 $ work, rwork, nout )
587 WRITE( nout, fmt = 9989 )path
591 CALL cdrvpb( dotype, nn, nval, nrhs, thresh, tsterr, lda,
592 $ a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), b( 1, 1 ),
593 $ b( 1, 2 ), b( 1, 3 ), b( 1, 4 ), s, work,
596 WRITE( nout, fmt = 9988 )path
599 ELSE IF( lsamen( 2, c2,
'PT' ) )
THEN 604 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
607 CALL cchkpt( dotype, nn, nval, nns, nsval, thresh, tsterr,
608 $ a( 1, 1 ), s, a( 1, 2 ), b( 1, 1 ), b( 1, 2 ),
609 $ b( 1, 3 ), work, rwork, nout )
611 WRITE( nout, fmt = 9989 )path
615 CALL cdrvpt( dotype, nn, nval, nrhs, thresh, tsterr,
616 $ a( 1, 1 ), s, a( 1, 2 ), b( 1, 1 ), b( 1, 2 ),
617 $ b( 1, 3 ), work, rwork, nout )
619 WRITE( nout, fmt = 9988 )path
622 ELSE IF( lsamen( 2, c2,
'HE' ) )
THEN 628 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
631 CALL cchkhe( 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 cdrvhe( 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 cchkhe_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 cdrvhe_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 cchkhe_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 cdrvhe_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 cchkhe_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 cdrvhe_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 734 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
737 CALL cchkhp( dotype, nn, nval, nns, nsval, thresh, tsterr,
738 $ lda, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
739 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ), work, rwork,
742 WRITE( nout, fmt = 9989 )path
746 CALL cdrvhp( dotype, nn, nval, nrhs, thresh, tsterr, lda,
747 $ a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), b( 1, 1 ),
748 $ b( 1, 2 ), b( 1, 3 ), work, rwork, iwork,
751 WRITE( nout, fmt = 9988 )path
754 ELSE IF( lsamen( 2, c2,
'SY' ) )
THEN 760 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
763 CALL cchksy( dotype, nn, nval, nnb2, nbval2, nns, nsval,
764 $ thresh, tsterr, lda, a( 1, 1 ), a( 1, 2 ),
765 $ a( 1, 3 ), b( 1, 1 ), b( 1, 2 ), b( 1, 3 ),
766 $ work, rwork, iwork, nout )
768 WRITE( nout, fmt = 9989 )path
772 CALL cdrvsy( dotype, nn, nval, nrhs, thresh, tsterr, lda,
773 $ a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), b( 1, 1 ),
774 $ b( 1, 2 ), b( 1, 3 ), work, rwork, iwork,
777 WRITE( nout, fmt = 9988 )path
780 ELSE IF( lsamen( 2, c2,
'SR' ) )
THEN 786 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
789 CALL cchksy_rook(dotype, nn, nval, nnb2, nbval2, nns, nsval,
790 $ thresh, tsterr, lda, a( 1, 1 ), a( 1, 2 ),
791 $ a( 1, 3 ), b( 1, 1 ), b( 1, 2 ), b( 1, 3 ),
792 $ work, rwork, iwork, nout )
794 WRITE( nout, fmt = 9989 )path
798 CALL cdrvsy_rook( dotype, nn, nval, nrhs, thresh, tsterr,
799 $ lda, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
800 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ), work,
801 $ rwork, iwork, nout )
803 WRITE( nout, fmt = 9988 )path
806 ELSE IF( lsamen( 2, c2,
'SK' ) )
THEN 813 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
816 CALL cchksy_rk( dotype, nn, nval, nnb2, nbval2, nns, nsval,
817 $ thresh, tsterr, lda, a( 1, 1 ), a( 1, 2 ),
818 $ e, a( 1, 3 ), b( 1, 1 ), b( 1, 2 ),
819 $ b( 1, 3 ), work, rwork, iwork, nout )
821 WRITE( nout, fmt = 9989 )path
825 CALL cdrvsy_rk( dotype, nn, nval, nrhs, thresh, tsterr,
826 $ lda, a( 1, 1 ), a( 1, 2 ), e, a( 1, 3 ),
827 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ), work,
828 $ rwork, iwork, nout )
830 WRITE( nout, fmt = 9988 )path
833 ELSE IF( lsamen( 2, c2,
'SA' ) )
THEN 838 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
841 CALL cchksy_aa( dotype, nn, nval, nnb2, nbval2, nns, nsval,
842 $ thresh, tsterr, lda, a( 1, 1 ), a( 1, 2 ),
843 $ a( 1, 3 ), b( 1, 1 ), b( 1, 2 ),
844 $ b( 1, 3 ), work, rwork, iwork, nout )
846 WRITE( nout, fmt = 9989 )path
850 CALL cdrvsy_aa( dotype, nn, nval, nrhs, thresh, tsterr,
851 $ lda, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
852 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ), work,
853 $ rwork, iwork, nout )
855 WRITE( nout, fmt = 9988 )path
858 ELSE IF( lsamen( 2, c2,
'SP' ) )
THEN 864 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
867 CALL cchksp( dotype, nn, nval, nns, nsval, thresh, tsterr,
868 $ lda, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
869 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ), work, rwork,
872 WRITE( nout, fmt = 9989 )path
876 CALL cdrvsp( dotype, nn, nval, nrhs, thresh, tsterr, lda,
877 $ a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), b( 1, 1 ),
878 $ b( 1, 2 ), b( 1, 3 ), work, rwork, iwork,
881 WRITE( nout, fmt = 9988 )path
884 ELSE IF( lsamen( 2, c2,
'TR' ) )
THEN 889 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
892 CALL cchktr( dotype, nn, nval, nnb2, nbval2, nns, nsval,
893 $ thresh, tsterr, lda, a( 1, 1 ), a( 1, 2 ),
894 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ), work, rwork,
897 WRITE( nout, fmt = 9989 )path
900 ELSE IF( lsamen( 2, c2,
'TP' ) )
THEN 905 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
908 CALL cchktp( dotype, nn, nval, nns, nsval, thresh, tsterr,
909 $ lda, a( 1, 1 ), a( 1, 2 ), b( 1, 1 ),
910 $ b( 1, 2 ), b( 1, 3 ), work, rwork, nout )
912 WRITE( nout, fmt = 9989 )path
915 ELSE IF( lsamen( 2, c2,
'TB' ) )
THEN 920 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
923 CALL cchktb( dotype, nn, nval, nns, nsval, thresh, tsterr,
924 $ lda, a( 1, 1 ), a( 1, 2 ), b( 1, 1 ),
925 $ b( 1, 2 ), b( 1, 3 ), work, rwork, nout )
927 WRITE( nout, fmt = 9989 )path
930 ELSE IF( lsamen( 2, c2,
'QR' ) )
THEN 935 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
938 CALL cchkqr( dotype, nm, mval, nn, nval, nnb, nbval, nxval,
939 $ nrhs, thresh, tsterr, nmax, a( 1, 1 ),
940 $ a( 1, 2 ), a( 1, 3 ), a( 1, 4 ), a( 1, 5 ),
941 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ), b( 1, 4 ),
942 $ work, rwork, iwork, nout )
944 WRITE( nout, fmt = 9989 )path
947 ELSE IF( lsamen( 2, c2,
'LQ' ) )
THEN 952 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
955 CALL cchklq( dotype, nm, mval, nn, nval, nnb, nbval, nxval,
956 $ nrhs, thresh, tsterr, nmax, a( 1, 1 ),
957 $ a( 1, 2 ), a( 1, 3 ), a( 1, 4 ), a( 1, 5 ),
958 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ), b( 1, 4 ),
959 $ work, rwork, nout )
961 WRITE( nout, fmt = 9989 )path
964 ELSE IF( lsamen( 2, c2,
'QL' ) )
THEN 969 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
972 CALL cchkql( dotype, nm, mval, nn, nval, nnb, nbval, nxval,
973 $ nrhs, thresh, tsterr, nmax, a( 1, 1 ),
974 $ a( 1, 2 ), a( 1, 3 ), a( 1, 4 ), a( 1, 5 ),
975 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ), b( 1, 4 ),
976 $ work, rwork, nout )
978 WRITE( nout, fmt = 9989 )path
981 ELSE IF( lsamen( 2, c2,
'RQ' ) )
THEN 986 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
989 CALL cchkrq( dotype, nm, mval, nn, nval, nnb, nbval, nxval,
990 $ nrhs, thresh, tsterr, nmax, a( 1, 1 ),
991 $ a( 1, 2 ), a( 1, 3 ), a( 1, 4 ), a( 1, 5 ),
992 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ), b( 1, 4 ),
993 $ work, rwork, iwork, nout )
995 WRITE( nout, fmt = 9989 )path
998 ELSE IF( lsamen( 2, c2,
'EQ' ) )
THEN 1004 CALL cchkeq( threq, nout )
1006 WRITE( nout, fmt = 9989 )path
1009 ELSE IF( lsamen( 2, c2,
'TZ' ) )
THEN 1014 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
1017 CALL cchktz( dotype, nm, mval, nn, nval, thresh, tsterr,
1018 $ a( 1, 1 ), a( 1, 2 ), s( 1 ),
1019 $ b( 1, 1 ), work, rwork, nout )
1021 WRITE( nout, fmt = 9989 )path
1024 ELSE IF( lsamen( 2, c2,
'QP' ) )
THEN 1029 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
1032 CALL cchkq3( dotype, nm, mval, nn, nval, nnb, nbval, nxval,
1033 $ thresh, a( 1, 1 ), a( 1, 2 ), s( 1 ),
1034 $ b( 1, 1 ), work, rwork, iwork, nout )
1036 WRITE( nout, fmt = 9989 )path
1039 ELSE IF( lsamen( 2, c2,
'LS' ) )
THEN 1044 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
1047 CALL cdrvls( dotype, nm, mval, nn, nval, nns, nsval, nnb,
1048 $ nbval, nxval, thresh, tsterr, a( 1, 1 ),
1049 $ a( 1, 2 ), a( 1, 3 ), a( 1, 4 ), a( 1, 5 ),
1050 $ s( 1 ), s( nmax+1 ), nout )
1052 WRITE( nout, fmt = 9989 )path
1055 ELSE IF( lsamen( 2, c2,
'QT' ) )
THEN 1060 CALL cchkqrt( thresh, tsterr, nm, mval, nn, nval, nnb,
1063 WRITE( nout, fmt = 9989 )path
1066 ELSE IF( lsamen( 2, c2,
'QX' ) )
THEN 1071 CALL cchkqrtp( thresh, tsterr, nm, mval, nn, nval, nnb,
1074 WRITE( nout, fmt = 9989 )path
1077 ELSE IF( lsamen( 2, c2,
'TQ' ) )
THEN 1082 CALL cchklqt( thresh, tsterr, nm, mval, nn, nval, nnb,
1085 WRITE( nout, fmt = 9989 )path
1088 ELSE IF( lsamen( 2, c2,
'XQ' ) )
THEN 1093 CALL cchklqtp( thresh, tsterr, nm, mval, nn, nval, nnb,
1096 WRITE( nout, fmt = 9989 )path
1099 ELSE IF( lsamen( 2, c2,
'TS' ) )
THEN 1104 CALL cchktsqr( thresh, tsterr, nm, mval, nn, nval, nnb,
1107 WRITE( nout, fmt = 9989 )path
1112 WRITE( nout, fmt = 9990 )path
1124 WRITE( nout, fmt = 9998 )
1125 WRITE( nout, fmt = 9997 )s2 - s1
1127 9999
FORMAT( /
' Execution not attempted due to input errors' )
1128 9998
FORMAT( /
' End of tests' )
1129 9997
FORMAT(
' Total time used = ', f12.2,
' seconds', / )
1130 9996
FORMAT(
' Invalid input value: ', a4,
'=', i6,
'; must be >=',
1132 9995
FORMAT(
' Invalid input value: ', a4,
'=', i6,
'; must be <=',
1134 9994
FORMAT(
' Tests of the COMPLEX LAPACK routines ',
1135 $ /
' LAPACK VERSION ', i1,
'.', i1,
'.', i1,
1136 $ / /
' The following parameter values will be used:' )
1137 9993
FORMAT( 4x, a4,
': ', 10i6, / 11x, 10i6 )
1138 9992
FORMAT( /
' Routines pass computational tests if test ratio is ',
1139 $
'less than', f8.2, / )
1140 9991
FORMAT(
' Relative machine ', a,
' is taken to be', e16.6 )
1141 9990
FORMAT( / 1x, a3,
': Unrecognized path name' )
1142 9989
FORMAT( / 1x, a3,
' routines were not tested' )
1143 9988
FORMAT( / 1x, a3,
' driver routines were not tested' )
subroutine cchksy_rook(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CCHKSY_ROOK
subroutine cchktb(DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, AB, AINV, B, X, XACT, WORK, RWORK, NOUT)
CCHKTB
subroutine cdrvhe_aa(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CDRVHE_AA
subroutine cchkps(DOTYPE, NN, NVAL, NNB, NBVAL, NRANK, RANKVAL, THRESH, TSTERR, NMAX, A, AFAC, PERM, PIV, WORK, RWORK, NOUT)
CCHKPS
subroutine cdrvpp(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, ASAV, B, BSAV, X, XACT, S, WORK, RWORK, NOUT)
CDRVPP
subroutine cchksy_aa(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CCHKSY_AA
subroutine cchkqrtp(THRESH, TSTERR, NM, MVAL, NN, NVAL, NNB, NBVAL, NOUT)
CCHKQRTP
subroutine cdrvsy_rook(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CDRVSY_ROOK
subroutine cdrvls(DOTYPE, NM, MVAL, NN, NVAL, NNS, NSVAL, NNB, NBVAL, NXVAL, THRESH, TSTERR, A, COPYA, B, COPYB, C, S, COPYS, NOUT)
CDRVLS
subroutine cdrvpo(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, ASAV, B, BSAV, X, XACT, S, WORK, RWORK, NOUT)
CDRVPO
subroutine cdrvpb(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, ASAV, B, BSAV, X, XACT, S, WORK, RWORK, NOUT)
CDRVPB
subroutine cchksy(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CCHKSY
subroutine cdrvhe_rk(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, E, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CDRVHE_RK
subroutine cchkeq(THRESH, NOUT)
CCHKEQ
subroutine cchkgt(DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, A, AF, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CCHKGT
subroutine alareq(PATH, NMATS, DOTYPE, NTYPES, NIN, NOUT)
ALAREQ
subroutine cchklqt(THRESH, TSTERR, NM, MVAL, NN, NVAL, NNB, NBVAL, NOUT)
CCHKLQT
subroutine cchktp(DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, AP, AINVP, B, X, XACT, WORK, RWORK, NOUT)
CCHKTP
subroutine cdrvge(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, ASAV, B, BSAV, X, XACT, S, WORK, RWORK, IWORK, NOUT)
CDRVGE
subroutine cchktsqr(THRESH, TSTERR, NM, MVAL, NN, NVAL, NNB, NBVAL, NOUT)
CCHKQRT
subroutine cdrvsy_aa(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CDRVSY_AA
subroutine cchkpt(DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, A, D, E, B, X, XACT, WORK, RWORK, NOUT)
CCHKPT
subroutine cchksy_rk(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, E, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CCHKSY_RK
subroutine cchkhp(DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CCHKHP
subroutine cchkhe_rook(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CCHKHE_ROOK
subroutine cdrvsy(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CDRVSY
subroutine cdrvgt(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, A, AF, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CDRVGT
subroutine cchktz(DOTYPE, NM, MVAL, NN, NVAL, THRESH, TSTERR, A, COPYA, S, TAU, WORK, RWORK, NOUT)
CCHKTZ
subroutine cdrvhe(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CDRVHE
subroutine ilaver(VERS_MAJOR, VERS_MINOR, VERS_PATCH)
ILAVER returns the LAPACK version.
subroutine cdrvsy_rk(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, E, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CDRVSY_RK
subroutine cdrvpt(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, A, D, E, B, X, XACT, WORK, RWORK, NOUT)
CDRVPT
subroutine cchkql(DOTYPE, NM, MVAL, NN, NVAL, NNB, NBVAL, NXVAL, NRHS, THRESH, TSTERR, NMAX, A, AF, AQ, AL, AC, B, X, XACT, TAU, WORK, RWORK, NOUT)
CCHKQL
subroutine cchkpo(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, NOUT)
CCHKPO
subroutine cdrvhp(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CDRVHP
subroutine cdrvsp(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CDRVSP
subroutine cchkqr(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)
CCHKQR
subroutine cchktr(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AINV, B, X, XACT, WORK, RWORK, NOUT)
CCHKTR
subroutine cchkpp(DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, NOUT)
CCHKPP
subroutine cchklqtp(THRESH, TSTERR, NM, MVAL, NN, NVAL, NNB, NBVAL, NOUT)
CCHKLQTP
subroutine cchkgb(DOTYPE, NM, MVAL, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, A, LA, AFAC, LAFAC, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CCHKGB
subroutine cchksp(DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CCHKSP
subroutine cchkpb(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, NOUT)
CCHKPB
subroutine cchkge(DOTYPE, NM, MVAL, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CCHKGE
subroutine cdrvhe_rook(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CDRVHE_ROOK
subroutine cchkhe(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CCHKHE
subroutine cchkqrt(THRESH, TSTERR, NM, MVAL, NN, NVAL, NNB, NBVAL, NOUT)
CCHKQRT
subroutine cchkrq(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)
CCHKRQ
subroutine cchkhe_aa(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CCHKHE_AA
subroutine cchklq(DOTYPE, NM, MVAL, NN, NVAL, NNB, NBVAL, NXVAL, NRHS, THRESH, TSTERR, NMAX, A, AF, AQ, AL, AC, B, X, XACT, TAU, WORK, RWORK, NOUT)
CCHKLQ
subroutine cdrvgb(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, A, LA, AFB, LAFB, ASAV, B, BSAV, X, XACT, S, WORK, RWORK, IWORK, NOUT)
CDRVGB
subroutine cchkq3(DOTYPE, NM, MVAL, NN, NVAL, NNB, NBVAL, NXVAL, THRESH, A, COPYA, S, TAU, WORK, RWORK, IWORK, NOUT)
CCHKQ3
subroutine cchkhe_rk(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, E, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CCHKHE_RK