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 cdrvgb(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, A, LA, AFB, LAFB, ASAV, B, BSAV, X, XACT, S, WORK, RWORK, IWORK, NOUT)
CDRVGB
subroutine cdrvhp(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CDRVHP
subroutine cchksy(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CCHKSY
subroutine cdrvpb(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, ASAV, B, BSAV, X, XACT, S, WORK, RWORK, NOUT)
CDRVPB
subroutine cdrvsy(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CDRVSY
subroutine cchklqtp(THRESH, TSTERR, NM, MVAL, NN, NVAL, NNB, NBVAL, NOUT)
CCHKLQTP
subroutine cchklqt(THRESH, TSTERR, NM, MVAL, NN, NVAL, NNB, NBVAL, NOUT)
CCHKLQT
subroutine cdrvsy_aa(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CDRVSY_AA
subroutine cchktsqr(THRESH, TSTERR, NM, MVAL, NN, NVAL, NNB, NBVAL, NOUT)
CCHKQRT
subroutine cdrvls(DOTYPE, NM, MVAL, NN, NVAL, NNS, NSVAL, NNB, NBVAL, NXVAL, THRESH, TSTERR, A, COPYA, B, COPYB, C, S, COPYS, NOUT)
CDRVLS
subroutine cdrvsy_rk(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, E, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CDRVSY_RK
subroutine cdrvhe_rk(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, E, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CDRVHE_RK
subroutine cdrvhe(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CDRVHE
subroutine cchkpp(DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, NOUT)
CCHKPP
subroutine cchkeq(THRESH, NOUT)
CCHKEQ
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 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 alareq(PATH, NMATS, DOTYPE, NTYPES, NIN, NOUT)
ALAREQ
subroutine cdrvhe_aa(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CDRVHE_AA
subroutine cchktr(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AINV, B, X, XACT, WORK, RWORK, NOUT)
CCHKTR
subroutine cdrvhe_rook(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CDRVHE_ROOK
subroutine cdrvsy_rook(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CDRVSY_ROOK
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 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 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 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 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
subroutine cdrvsp(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CDRVSP
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 cchkgt(DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, A, AF, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CCHKGT
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 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 cdrvgt(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, A, AF, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CDRVGT
subroutine cchktb(DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, AB, AINV, B, X, XACT, WORK, RWORK, NOUT)
CCHKTB
subroutine cchkqrtp(THRESH, TSTERR, NM, MVAL, NN, NVAL, NNB, NBVAL, NOUT)
CCHKQRTP
subroutine cdrvpt(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, A, D, E, B, X, XACT, WORK, RWORK, NOUT)
CDRVPT
subroutine cchkpt(DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, A, D, E, B, X, XACT, WORK, RWORK, NOUT)
CCHKPT
subroutine cchktz(DOTYPE, NM, MVAL, NN, NVAL, THRESH, TSTERR, A, COPYA, S, TAU, WORK, RWORK, NOUT)
CCHKTZ
subroutine cchkhe(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CCHKHE
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 ilaver(VERS_MAJOR, VERS_MINOR, VERS_PATCH)
ILAVER returns the LAPACK version.
subroutine cchkps(DOTYPE, NN, NVAL, NNB, NBVAL, NRANK, RANKVAL, THRESH, TSTERR, NMAX, A, AFAC, PERM, PIV, WORK, RWORK, NOUT)
CCHKPS
subroutine cdrvpo(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, ASAV, B, BSAV, X, XACT, S, WORK, RWORK, NOUT)
CDRVPO
subroutine cdrvpp(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, ASAV, B, BSAV, X, XACT, S, WORK, RWORK, NOUT)
CDRVPP
subroutine cchkpb(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, NOUT)
CCHKPB
subroutine cchkq3(DOTYPE, NM, MVAL, NN, NVAL, NNB, NBVAL, NXVAL, THRESH, A, COPYA, S, TAU, WORK, RWORK, IWORK, NOUT)
CCHKQ3
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 cchksp(DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CCHKSP
subroutine cchkpo(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, NOUT)
CCHKPO
subroutine cchkqrt(THRESH, TSTERR, NM, MVAL, NN, NVAL, NNB, NBVAL, NOUT)
CCHKQRT
subroutine cchkhp(DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CCHKHP