3 SUBROUTINE pzseptst( DESCA, UPLO, N, MATTYPE, SUBTESTS, THRESH,
4 $ ORDER, ABSTOL, ISEED, A, COPYA, Z, LDA, WIN,
5 $ WNEW, IFAIL, ICLUSTR, GAP, IPREPAD, IPOSTPAD,
6 $ WORK, LWORK, RWORK, LRWORK, IWORK, LIWORK,
15 CHARACTER SUBTESTS, UPLO
16 INTEGER INFO, IPOSTPAD, IPREPAD, LDA, LIWORK, LRWORK,
17 $ LWORK, MATTYPE, N, NOUT, ORDER
18 DOUBLE PRECISION ABSTOL, THRESH
21 INTEGER DESCA( * ), ICLUSTR( * ), IFAIL( * ),
22 $ iseed( 4 ), iwork( * )
23 DOUBLE PRECISION GAP( * ), ( * ), WIN( * ), WNEW( * )
24 COMPLEX*16 A( LDA, * ), COPYA( LDA, * ), WORK( * ),
205 INTEGER BLOCK_CYCLIC_2D, DLEN_, DTYPE_, CTXT_, M_, N_,
206 $ MB_, NB_, RSRC_, CSRC_, LLD_
207 PARAMETER ( BLOCK_CYCLIC_2D = 1, dlen_ = 9, dtype_ = 1,
208 $ ctxt_ = 2, m_ = 3, n_ = 4, mb_ = 5, nb_ = 6,
209 $ rsrc_ = 7, csrc_ = 8, lld_ = 9 )
210 DOUBLE PRECISION ZERO, ONE, TEN, HALF
211 parameter( zero = 0.0d+0, one = 1.0d+0, ten = 10.0d+0,
214 parameter( padval = ( 19.25d+0, 1.1d+1 ) )
216 PARAMETER ( ZZERO = ( 0.0d+0, 0.0d+0 ) )
218 parameter( zone = ( 1.0d+0, 0.0d+0 ) )
220 parameter( maxtyp = 22 )
225 CHARACTER JOBZ, RANGE
227 INTEGER CONTEXT, I, IAM, IINFO, IL, IMODE, IN, INDD,
228 $ indrwork, indwork, isizeheevx, isizesubtst,
229 $ isizetst, itype, iu, j, lheevxsize, llrwork,
230 $ llwork, maxsize, mycol, myrow, nb, ngen, nloc,
231 $ nnodes, np, npcol, nprow, nq, res, rsizechk,
232 $ rsizeheevx, rsizeqtq, rsizesubtst, rsizetst,
233 $ sizeheevx, sizemqrleft, sizemqrright, sizeqrf,
234 $ sizesubtst, sizetms, sizetst, valsize, vecsize,
235 $ sizeheevd, rsizeheevd, isizeheevd, nq0, np0,
237 DOUBLE PRECISION ANINV, ANORM, , MAXQTQNRM, MAXTSTNRM, ,
238 $ QTQNRM, RTOVFL, RTUNFL, TEMP1, TSTNRM, ,
239 $ ULPINV, UNFL, VL, VU
242 INTEGER ISEEDIN( 4 ), KMAGN( MAXTYP ), KMODE( MAXTYP ),
244 DOUBLE PRECISION CTIME( 10 ), WTIME( 10 )
249 DOUBLE PRECISION DLARAN, PDLAMCH
250 EXTERNAL , NUMROC, DLARAN, PDLAMCH
260 INTRINSIC abs, dble, int,
max,
min, sqrt
263 DATA ktype / 1, 2, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 8,
264 $ 8, 8, 9, 9, 9, 9, 9, 10, 11 /
265 DATA kmagn / 1, 1, 1, 1, 1, 2, 3, 1, 1, 1, 2, 3, 1,
266 $ 2, 3, 1, 1, 1, 2, 3, 1, 1 /
267 DATA kmode / 0, 0, 4, 3, 1, 4, 4, 4, 3, 1, 4, 4, 0,
268 $ 0, 0, 4, 3, 1, 4, 4, 3, 0 /
272 IF( block_cyclic_2d*csrc_*ctxt_*dlen_*dtype_*lld_*mb_*m_*nb_*n_*
276 passed =
'PASSED EVX'
277 context = desca( ctxt_ )
280 CALL blacs_pinfo( iam, nnodes )
287 CALL pzlasizesep( desca, iprepad, ipostpad, sizemqrleft,
288 $ sizemqrright, sizeqrf, sizetms, rsizeqtq,
289 $ rsizechk, sizeheevx, rsizeheevx, isizeheevx,
290 $ sizeheevd, rsizeheevd, isizeheevd,
291 $ sizesubtst, rsizesubtst, isizesubtst, sizetst,
292 $ rsizetst, isizetst )
294 IF( lrwork.LT.rsizetst )
THEN
298 CALL igamx2d( context,
'a',
' ', 1, 1, info, 1, 1, 1, -1, -1, 0 )
305 llwork = lwork - indwork + 1
306 llrwork = lrwork - indrwork + 1
308 ulp = pdlamch( context,
'P' )
310 unfl = pdlamch( context,
'Safe min' )
313 rtunfl = sqrt( unfl )
314 rtovfl = sqrt( ovfl )
315 aninv = one / dble(
max( 1, n ) )
319 IF( myrow.EQ.0 .AND. mycol.EQ.0 )
THEN
320 CALL igebs2d( context,
'a',
' ', 4, 1, iseed, 4 )
322 CALL igebr2d( context,
'a',
' ', 4, 1, iseed, 4, 0, 0 )
324 iseedin( 1 ) = iseed( 1 )
325 iseedin( 2 ) = iseed( 2 )
326 iseedin( 3 ) = iseed( 3 )
327 iseedin( 4 ) = iseed( 4 )
346 itype = ktype( mattype )
347 imode = kmode( mattype )
351 GO TO ( 10, 20, 30 )kmagn( mattype )
358 anorm = ( rtovfl*ulp )*aninv
362 anorm = rtunfl*n*ulpinv
366 IF( mattype.LE.15 )
THEN
369 cond = ulpinv*aninv / ten
377 IF( itype.EQ.1 )
THEN
382 rwork( indd+i-1 ) = zero
384 CALL pzlaset(
'All', n, n, zzero, zzero, copya, 1, 1,
388 ELSE IF( itype.EQ.2 )
THEN
393 rwork( indd+i-1 ) = one
395 CALL pzlaset(
'All', n, n, zzero, zone, copya, 1, 1, desca )
398 ELSE IF( itype.EQ.4 )
THEN
402 CALL pzfillpad( desca( ctxt_ ), sizetms, 1, work( indwork ),
403 $ sizetms, iprepad, ipostpad, padval+1.0d+0 )
405 CALL pzlatms( n, n,
'S', iseed,
'S', rwork( indd ), imode,
406 $ cond, anorm, 0, 0,
'N', copya, 1, 1, desca,
407 $ order, work( indwork+iprepad ), sizetms,
411 CALL pzchekpad( desca( ctxt_ ),
'PZLATMS1-WORK', sizetms, 1,
412 $ work( indwork ), sizetms, iprepad, ipostpad,
415 ELSE IF( itype.EQ.5 )
THEN
419 CALL pzfillpad( desca( ctxt_ ), sizetms, 1, work( indwork ),
420 $ sizetms, iprepad, ipostpad, padval+2.0d+0 )
422 CALL pzlatms( n, n,
'S', iseed,
'S', rwork( indd ), imode,
423 $ cond, anorm, n, n,
'N', copya, 1, 1, desca,
424 $ order, work( indwork+iprepad ), sizetms,
427 CALL pzchekpad( desca( ctxt_ ),
'PZLATMS2-WORK', sizetms, 1,
428 $ work( indwork ), sizetms, iprepad, ipostpad,
433 ELSE IF( itype.EQ.8 )
THEN
437 np = numroc( n, desca( mb_ ), myrow, 0, nprow )
438 nq = numroc( n, desca( nb_ ), mycol, 0, npcol )
439 CALL pzmatgen( desca( ctxt_ ),
'H',
'N', n, n, desca( mb_ ),
440 $ desca( nb_ ), copya, desca( lld_ ),
441 $ desca( rsrc_ ), desca( csrc_ ), iseed( 1 ),
442 $ 0, np, 0, nq, myrow, mycol, nprow, npcol )
446 ELSE IF( itype.EQ.9 )
THEN
451 CALL pzfillpad( desca( ctxt_ ), sizetms, 1, work( indwork ),
452 $ sizetms, iprepad, ipostpad, padval+3.0d+0 )
454 CALL pzlatms( n, n,
'S', iseed,
'S', rwork( indd ), imode,
455 $ cond, anorm, n, n, 'n
', COPYA, 1, 1, DESCA,
456 $ ORDER, WORK( INDWORK+IPREPAD ), SIZETMS,
461 CALL PZCHEKPAD( DESCA( CTXT_ ), 'pzlatms3-work
', SIZETMS, 1,
462 $ WORK( INDWORK ), SIZETMS, IPREPAD, IPOSTPAD,
465.EQ.
ELSE IF( ITYPE10 ) THEN
470 CALL PZLASET( 'all
', N, N, ZZERO, ZZERO, COPYA, 1, 1,
472 NP = NUMROC( N, DESCA( MB_ ), 0, 0, NPROW )
473 NQ = NUMROC( N, DESCA( NB_ ), 0, 0, NPCOL )
479 IN = MIN( 1+INT( DLARAN( ISEED )*DBLE( NLOC ) ), N-NGEN )
481 CALL ZLATMS( IN, IN, 's
', ISEED, 'p
', RWORK( INDD ),
482 $ IMODE, COND, ANORM, 1, 1, 'n
', A, LDA,
483 $ WORK( INDWORK ), IINFO )
486 TEMP1 = ABS( A( I-1, I ) ) /
487 $ SQRT( ABS( A( I-1, I-1 )*A( I, I ) ) )
488.GT.
IF( TEMP1HALF ) THEN
489 A( I-1, I ) = HALF*SQRT( ABS( A( I-1, I-1 )*A( I,
491 A( I, I-1 ) = A( I-1, I )
494 CALL PZELSET( COPYA, NGEN+1, NGEN+1, DESCA, A( 1, 1 ) )
496 CALL PZELSET( COPYA, NGEN+I, NGEN+I, DESCA,
498 CALL PZELSET( COPYA, NGEN+I-1, NGEN+I, DESCA,
500 CALL PZELSET( COPYA, NGEN+I, NGEN+I-1, DESCA,
508.EQ.
ELSE IF( ITYPE11 ) THEN
517 IN = MIN( J, N-NGEN )
519 RWORK( INDD+NGEN+I ) = TEMP1
528 CALL PZFILLPAD( DESCA( CTXT_ ), SIZETMS, 1, WORK( INDWORK ),
529 $ SIZETMS, IPREPAD, IPOSTPAD, PADVAL+4.0D+0 )
531 CALL PZLATMS( N, N, 's
', ISEED, 's
', RWORK( INDD ), IMODE,
532 $ COND, ANORM, 0, 0, 'n
', COPYA, 1, 1, DESCA,
533 $ ORDER, WORK( INDWORK+IPREPAD ), SIZETMS,
536 CALL PZCHEKPAD( DESCA( CTXT_ ), 'pzlatms4-work
', SIZETMS, 1,
537 $ WORK( INDWORK ), SIZETMS, IPREPAD, IPOSTPAD,
549 $ CALL DLASRT( 'i
', N, RWORK( INDD ), IINFO )
559 CALL PZLASIZEHEEVX( WKNOWN, 'a
', N, DESCA, VL, VU, IL, IU,
560 $ ISEED, RWORK( INDD ), MAXSIZE, VECSIZE,
563 LHEEVXSIZE = MIN( MAXSIZE, LLRWORK )
565 CALL PZSEPSUBTST( WKNOWN, 'v
', 'a
', UPLO, N, VL, VU, IL, IU,
566 $ THRESH, ABSTOL, A, COPYA, Z, 1, 1, DESCA,
567 $ RWORK( INDD ), WIN, IFAIL, ICLUSTR, GAP,
568 $ IPREPAD, IPOSTPAD, WORK( INDWORK ), LLWORK,
569 $ RWORK( INDRWORK ), LLRWORK, LHEEVXSIZE,
570 $ IWORK, ISIZEHEEVX, RES, TSTNRM, QTQNRM,
579.LE.
IF( THRESHZERO ) THEN
582.NE.
ELSE IF( RES0 ) THEN
588.GT..AND.
IF( THRESHZERO LSAME( SUBTESTS, 'y
' ) ) THEN
596 CALL PZLASIZEHEEVX( .TRUE., RANGE, N, DESCA, VL, VU, IL, IU,
597 $ ISEED, WIN( 1+IPREPAD ), MAXSIZE,
602 CALL PZSEPSUBTST( .TRUE., JOBZ, RANGE, UPLO, N, VL, VU, IL,
603 $ IU, THRESH, ABSTOL, A, COPYA, Z, 1, 1,
604 $ DESCA, WIN( 1+IPREPAD ), WNEW, IFAIL,
605 $ ICLUSTR, GAP, IPREPAD, IPOSTPAD,
606 $ WORK( INDWORK ), LLWORK, RWORK, LRWORK,
607 $ LHEEVXSIZE, IWORK, ISIZEHEEVX, RES,
608 $ TSTNRM, QTQNRM, NOUT )
611 PASSED = 'failed
stest 1
'
612 MAXTSTNRM = MAX( TSTNRM, MAXTSTNRM )
613 MAXQTQNRM = MAX( QTQNRM, MAXQTQNRM )
623 CALL PZLASIZEHEEVX( .TRUE., RANGE, N, DESCA, VL, VU, IL, IU,
624 $ ISEED, WIN( 1+IPREPAD ), MAXSIZE,
627 LHEEVXSIZE = VECSIZE + INT( DLARAN( ISEED )*
628 $ DBLE( MAXSIZE-VECSIZE ) )
630 CALL PZSEPSUBTST( .TRUE., JOBZ, RANGE, UPLO, N, VL, VU, IL,
631 $ IU, THRESH, ABSTOL, A, COPYA, Z, 1, 1,
632 $ DESCA, WIN( 1+IPREPAD ), WNEW, IFAIL,
633 $ ICLUSTR, GAP, IPREPAD, IPOSTPAD,
634 $ WORK( INDWORK ), LLWORK, RWORK, LRWORK,
635 $ LHEEVXSIZE, IWORK, ISIZEHEEVX, RES,
636 $ TSTNRM, QTQNRM, NOUT )
639 PASSED = 'failed
stest 2
'
640 MAXTSTNRM = MAX( TSTNRM, MAXTSTNRM )
641 MAXQTQNRM = MAX( QTQNRM, MAXQTQNRM )
652 CALL PZLASIZEHEEVX( .TRUE., RANGE, N, DESCA, VL, VU, IL, IU,
653 $ ISEED, WIN( 1+IPREPAD ), MAXSIZE,
657 CALL PZSEPSUBTST( .TRUE., JOBZ, RANGE, UPLO, N, VL, VU, IL,
658 $ IU, THRESH, ABSTOL, A, COPYA, Z, 1, 1,
659 $ DESCA, WIN( 1+IPREPAD ), WNEW, IFAIL,
660 $ ICLUSTR, GAP, IPREPAD, IPOSTPAD,
661 $ WORK( INDWORK ), LLWORK, RWORK, LRWORK,
662 $ LHEEVXSIZE, IWORK, ISIZEHEEVX, RES,
663 $ TSTNRM, QTQNRM, NOUT )
666 MAXTSTNRM = MAX( TSTNRM, MAXTSTNRM )
667 MAXQTQNRM = MAX( QTQNRM, MAXQTQNRM )
668 PASSED = 'failed
stest 3
'
684 CALL PZLASIZEHEEVX( .TRUE., RANGE, N, DESCA, VL, VU, IL, IU,
685 $ ISEED, WIN( 1+IPREPAD ), MAXSIZE,
690 CALL PZSEPSUBTST( .TRUE., JOBZ, RANGE, UPLO, N, VL, VU, IL,
691 $ IU, THRESH, ABSTOL, A, COPYA, Z, 1, 1,
692 $ DESCA, WIN( 1+IPREPAD ), WNEW, IFAIL,
693 $ ICLUSTR, GAP, IPREPAD, IPOSTPAD,
694 $ WORK( INDWORK ), LLWORK, RWORK, LRWORK,
695 $ LHEEVXSIZE, IWORK, ISIZEHEEVX, RES,
696 $ TSTNRM, QTQNRM, NOUT )
699 MAXTSTNRM = MAX( TSTNRM, MAXTSTNRM )
700 MAXQTQNRM = MAX( QTQNRM, MAXQTQNRM )
701 PASSED = 'failed
stest 4
'
717 CALL PZLASIZEHEEVX( .TRUE., RANGE, N, DESCA, VL, VU, IL, IU,
718 $ ISEED, WIN( 1+IPREPAD ), MAXSIZE,
723 CALL PZSEPSUBTST( .TRUE., JOBZ, RANGE, UPLO, N, VL, VU, IL,
724 $ IU, THRESH, ABSTOL, A, COPYA, Z, 1, 1,
725 $ DESCA, WIN( 1+IPREPAD ), WNEW, IFAIL,
726 $ ICLUSTR, GAP, IPREPAD, IPOSTPAD,
727 $ WORK( INDWORK ), LLWORK, RWORK, LRWORK,
728 $ LHEEVXSIZE, IWORK, ISIZEHEEVX, RES,
729 $ TSTNRM, QTQNRM, NOUT )
732 MAXTSTNRM = MAX( TSTNRM, MAXTSTNRM )
733 MAXQTQNRM = MAX( QTQNRM, MAXQTQNRM )
734 PASSED = 'failed
stest 5
'
749 CALL PZLASIZEHEEVX( .TRUE., RANGE, N, DESCA, VL, VU, IL, IU,
750 $ ISEED, WIN( 1+IPREPAD ), MAXSIZE,
755 CALL PZSEPSUBTST( .TRUE., JOBZ, RANGE, UPLO, N, VL, VU, IL,
756 $ IU, THRESH, ABSTOL, A, COPYA, Z, 1, 1,
757 $ DESCA, WIN( 1+IPREPAD ), WNEW, IFAIL,
758 $ ICLUSTR, GAP, IPREPAD, IPOSTPAD,
759 $ WORK( INDWORK ), LLWORK, RWORK, LRWORK,
760 $ LHEEVXSIZE, IWORK, ISIZEHEEVX, RES,
761 $ TSTNRM, QTQNRM, NOUT )
764 MAXTSTNRM = MAX( TSTNRM, MAXTSTNRM )
765 MAXQTQNRM = MAX( QTQNRM, MAXQTQNRM )
766 PASSED = 'failed
stest 6
'
781 CALL PZLASIZEHEEVX( .TRUE., RANGE, N, DESCA, VL, VU, IL, IU,
782 $ ISEED, WIN( 1+IPREPAD ), MAXSIZE,
784 LHEEVXSIZE = VECSIZE + INT( DLARAN( ISEED )*
785 $ DBLE( MAXSIZE-VECSIZE ) )
787 CALL PZSEPSUBTST( .TRUE., JOBZ, RANGE, UPLO, N, VL, VU, IL,
788 $ IU, THRESH, ABSTOL, A, COPYA, Z, 1, 1,
789 $ DESCA, WIN( 1+IPREPAD ), WNEW, IFAIL,
790 $ ICLUSTR, GAP, IPREPAD, IPOSTPAD,
791 $ WORK( INDWORK ), LLWORK, RWORK, LRWORK,
792 $ LHEEVXSIZE, IWORK, ISIZEHEEVX, RES,
793 $ TSTNRM, QTQNRM, NOUT )
796 MAXTSTNRM = MAX( TSTNRM, MAXTSTNRM )
797 MAXQTQNRM = MAX( QTQNRM, MAXQTQNRM )
798 PASSED = 'failed
stest 7
'
813 CALL PZLASIZEHEEVX( .TRUE., RANGE, N, DESCA, VL, VU, IL, IU,
814 $ ISEED, WIN( 1+IPREPAD ), MAXSIZE,
819 CALL PZSEPSUBTST( .TRUE., JOBZ, RANGE, UPLO, N, VL, VU, IL,
820 $ IU, THRESH, ABSTOL, A, COPYA, Z, 1, 1,
821 $ DESCA, WIN( 1+IPREPAD ), WNEW, IFAIL,
822 $ ICLUSTR, GAP, IPREPAD, IPOSTPAD,
823 $ WORK( INDWORK ), LLWORK, RWORK, LRWORK,
824 $ LHEEVXSIZE, IWORK, ISIZEHEEVX, RES,
825 $ TSTNRM, QTQNRM, NOUT )
828 MAXTSTNRM = MAX( TSTNRM, MAXTSTNRM )
829 MAXQTQNRM = MAX( QTQNRM, MAXQTQNRM )
830 PASSED = 'failed
stest 8
'
845 CALL PZLASIZEHEEVX( .TRUE., RANGE, N, DESCA, VL, VU, IL, IU,
846 $ ISEED, WIN( 1+IPREPAD ), MAXSIZE,
851 CALL PZSEPSUBTST( .TRUE., JOBZ, RANGE, UPLO, N, VL, VU, IL,
852 $ IU, THRESH, ABSTOL, A, COPYA, Z, 1, 1,
853 $ DESCA, WIN( 1+IPREPAD ), WNEW, IFAIL,
854 $ ICLUSTR, GAP, IPREPAD, IPOSTPAD,
855 $ WORK( INDWORK ), LLWORK, RWORK, LRWORK,
856 $ LHEEVXSIZE, IWORK, ISIZEHEEVX, RES,
857 $ TSTNRM, QTQNRM, NOUT )
860 MAXTSTNRM = MAX( TSTNRM, MAXTSTNRM )
861 MAXQTQNRM = MAX( QTQNRM, MAXQTQNRM )
862 PASSED = 'failed
stest 9
'
878 CALL PZLASIZEHEEVX( .TRUE., RANGE, N, DESCA, VL, VU, IL, IU,
879 $ ISEED, WIN( 1+IPREPAD ), MAXSIZE,
884 CALL PZSEPSUBTST( .TRUE., JOBZ, RANGE, UPLO, N, VL, VU, IL,
885 $ IU, THRESH, ABSTOL, A, COPYA, Z, 1, 1,
886 $ DESCA, WIN( 1+IPREPAD ), WNEW, IFAIL,
887 $ ICLUSTR, GAP, IPREPAD, IPOSTPAD,
888 $ WORK( INDWORK ), LLWORK, RWORK, LRWORK,
889 $ LHEEVXSIZE, IWORK, ISIZEHEEVX, RES,
890 $ TSTNRM, QTQNRM, NOUT )
893 MAXTSTNRM = MAX( TSTNRM, MAXTSTNRM )
894 MAXQTQNRM = MAX( QTQNRM, MAXQTQNRM )
895 PASSED = 'failed stest10
'
912 CALL PZLASIZEHEEVX( .TRUE., RANGE, N, DESCA, VL, VU, IL, IU,
913 $ ISEED, WIN( 1+IPREPAD ), MAXSIZE,
917 CALL PZSEPSUBTST( .TRUE., JOBZ, RANGE, UPLO, N, VL, VU, IL,
918 $ IU, THRESH, ABSTOL, A, COPYA, Z, 1, 1,
919 $ DESCA, WIN( 1+IPREPAD ), WNEW, IFAIL,
920 $ ICLUSTR, GAP, IPREPAD, IPOSTPAD,
921 $ WORK( INDWORK ), LLWORK, RWORK, LRWORK,
922 $ LHEEVXSIZE, IWORK, ISIZEHEEVX, RES,
923 $ TSTNRM, QTQNRM, NOUT )
926 MAXTSTNRM = MAX( TSTNRM, MAXTSTNRM )
927 MAXQTQNRM = MAX( QTQNRM, MAXQTQNRM )
928 PASSED = 'failed stest11
'
944 CALL PZLASIZEHEEVX( .TRUE., RANGE, N, DESCA, VL, VU, IL, IU,
945 $ ISEED, WIN( 1+IPREPAD ), MAXSIZE,
950 CALL PZSEPSUBTST( .TRUE., JOBZ, RANGE, UPLO, N, VL, VU, IL,
951 $ IU, THRESH, ABSTOL, A, COPYA, Z, 1, 1,
952 $ DESCA, WIN( 1+IPREPAD ), WNEW, IFAIL,
953 $ ICLUSTR, GAP, IPREPAD, IPOSTPAD,
954 $ WORK( INDWORK ), LLWORK, RWORK, LRWORK,
955 $ LHEEVXSIZE, IWORK, ISIZEHEEVX, RES,
956 $ TSTNRM, QTQNRM, NOUT )
959 MAXTSTNRM = MAX( TSTNRM, MAXTSTNRM )
960 MAXQTQNRM = MAX( QTQNRM, MAXQTQNRM )
961 PASSED = 'failed stest12
'
978 CALL PZLASIZEHEEVX( .TRUE., RANGE, N, DESCA, VL, VU, IL, IU,
979 $ ISEED, WIN( 1+IPREPAD ), MAXSIZE,
983 CALL PZSEPSUBTST( .TRUE., JOBZ, RANGE, UPLO, N, VL, VU, IL,
984 $ IU, THRESH, ABSTOL, A, COPYA, Z, 1, 1,
985 $ DESCA, WIN( 1+IPREPAD ), WNEW, IFAIL,
986 $ ICLUSTR, GAP, IPREPAD, IPOSTPAD,
987 $ WORK( INDWORK ), LLWORK, RWORK, LRWORK,
988 $ LHEEVXSIZE, IWORK, ISIZEHEEVX, RES,
989 $ TSTNRM, QTQNRM, NOUT )
992 MAXTSTNRM = MAX( TSTNRM, MAXTSTNRM )
993 MAXQTQNRM = MAX( QTQNRM, MAXQTQNRM )
994 PASSED = 'failed stest13
'
1002 CALL IGAMX2D( CONTEXT, 'all
', ' ', 1, 1, INFO, 1, -1, -1, -1, -1,
1005.EQ.
IF( INFO1 ) THEN
1007 WRITE( NOUT, FMT = 9994 )'c
'
1008 WRITE( NOUT, FMT = 9993 )ISEEDIN( 1 )
1009 WRITE( NOUT, FMT = 9992 )ISEEDIN( 2 )
1010 WRITE( NOUT, FMT = 9991 )ISEEDIN( 3 )
1011 WRITE( NOUT, FMT = 9990 )ISEEDIN( 4 )
1012 IF( LSAME( UPLO, 'l
' ) ) THEN
1013 WRITE( NOUT, FMT = 9994 )' uplo=
''l
'' '
1015 WRITE( NOUT, FMT = 9994 )' uplo=
''u
'' '
1017 IF( LSAME( SUBTESTS, 'y
' ) ) THEN
1018 WRITE( NOUT, FMT = 9994 )' subtests=
''y
'' '
1020 WRITE( NOUT, FMT = 9994 )' subtests=
''n
'' '
1022 WRITE( NOUT, FMT = 9989 )N
1023 WRITE( NOUT, FMT = 9988 )NPROW
1024 WRITE( NOUT, FMT = 9987 )NPCOL
1025 WRITE( NOUT, FMT = 9986 )NB
1026 WRITE( NOUT, FMT = 9985 )MATTYPE
1027 WRITE( NOUT, FMT = 9982 )ABSTOL
1028 WRITE( NOUT, FMT = 9981 )THRESH
1029 WRITE( NOUT, FMT = 9994 )'c
'
1033 CALL SLCOMBINE( CONTEXT, 'all
', '>
', 'w
', 6, 1, WTIME )
1034 CALL SLCOMBINE( CONTEXT, 'all
', '>
', 'c
', 6, 1, CTIME )
1036.EQ..OR..EQ.
IF( INFO0 INFO1 ) THEN
1037.GE.
IF( WTIME( 1 )0.0 ) THEN
1038 WRITE( NOUT, FMT = 9999 )N, NB, NPROW, NPCOL, MATTYPE,
1039 $ SUBTESTS, WTIME( 1 ), CTIME( 1 ), MAXTSTNRM,
1042 WRITE( NOUT, FMT = 9998 )N, NB, NPROW, NPCOL, MATTYPE,
1043 $ SUBTESTS, CTIME( 1 ), MAXTSTNRM, MAXQTQNRM, PASSED
1045.EQ.
ELSE IF( INFO2 ) THEN
1046.GE.
IF( WTIME( 1 )0.0 ) THEN
1047 WRITE( NOUT, FMT = 9997 )N, NB, NPROW, NPCOL, MATTYPE,
1048 $ SUBTESTS, WTIME( 1 ), CTIME( 1 )
1050 WRITE( NOUT, FMT = 9996 )N, NB, NPROW, NPCOL, MATTYPE,
1051 $ SUBTESTS, CTIME( 1 )
1053.EQ.
ELSE IF( INFO3 ) THEN
1054 WRITE( NOUT, FMT = 9995 )N, NB, NPROW, NPCOL, MATTYPE,
1061 PASSED = 'passed eevd
'
1065.EQ.
IF( INFO0 ) THEN
1067 NP0 = NUMROC( N, NB, 0, 0, NPROW )
1068 NQ0 = NUMROC( MAX( N, 1 ), NB, 0, 0, NPCOL )
1069 LHEEVDSIZE = 1 + 9*N + 3*NP0*NQ0
1070 ISIZEHEEVD = MAX( 1, 2+7*N+8*NPCOL )
1072 CALL PZSDPSUBTST( WKNOWN, UPLO, N, THRESH, ABSTOL, A, COPYA, Z,
1073 $ 1, 1, DESCA, WIN, WNEW, IPREPAD, IPOSTPAD,
1074 $ WORK( INDWORK ), LLWORK, RWORK, LRWORK,
1075 $ LHEEVDSIZE, IWORK, ISIZEHEEVD, RES, TSTNRM,
1082 PASSED = 'failed eevd
'
1089 CALL IGAMX2D( CONTEXT, 'all
', ' ', 1, 1, INFO, 1, -1, -1, -1, -1,
1092.EQ.
IF( INFO1 ) THEN
1094 WRITE( NOUT, FMT = 9994 )'c
'
1095 WRITE( NOUT, FMT = 9993 )ISEEDIN( 1 )
1096 WRITE( NOUT, FMT = 9992 )ISEEDIN( 2 )
1097 WRITE( NOUT, FMT = 9991 )ISEEDIN( 3 )
1098 WRITE( NOUT, FMT = 9990 )ISEEDIN( 4 )
1099 IF( LSAME( UPLO, 'l
' ) ) THEN
1100 WRITE( NOUT, FMT = 9994 )' uplo=
''l
'' '
1102 WRITE( NOUT, FMT = 9994 )' uplo=
''u
'' '
1104 IF( LSAME( SUBTESTS, 'y
' ) ) THEN
1105 WRITE( NOUT, FMT = 9994 )' subtests=
''y
'' '
1107 WRITE( NOUT, FMT = 9994 )' subtests=
''n
'' '
1109 WRITE( NOUT, FMT = 9989 )N
1110 WRITE( NOUT, FMT = 9988 )NPROW
1111 WRITE( NOUT, FMT = 9987 )NPCOL
1112 WRITE( NOUT, FMT = 9986 )NB
1113 WRITE( NOUT, FMT = 9985 )MATTYPE
1114 WRITE( NOUT, FMT = 9982 )ABSTOL
1115 WRITE( NOUT, FMT = 9981 )THRESH
1116 WRITE( NOUT, FMT = 9994 )'c
'
1120 CALL SLCOMBINE( CONTEXT, 'all
', '>
', 'w
', 6, 1, WTIME )
1121 CALL SLCOMBINE( CONTEXT, 'all
', '>
', 'c
', 6, 1, CTIME )
1123.EQ..OR..EQ.
IF( INFO0 INFO1 ) THEN
1124.GE.
IF( WTIME( 1 )0.0 ) THEN
1125 WRITE( NOUT, FMT = 9999 )N, NB, NPROW, NPCOL, MATTYPE,
1126 $ SUBTESTS, WTIME( 1 ), CTIME( 1 ), MAXTSTNRM,
1129 WRITE( NOUT, FMT = 9998 )N, NB, NPROW, NPCOL, MATTYPE,
1130 $ SUBTESTS, CTIME( 1 ), MAXTSTNRM, MAXQTQNRM, PASSED
1132.EQ.
ELSE IF( INFO2 ) THEN
1133.GE.
IF( WTIME( 1 )0.0 ) THEN
1134 WRITE( NOUT, FMT = 9997 )N, NB, NPROW, NPCOL, MATTYPE,
1135 $ SUBTESTS, WTIME( 1 ), CTIME( 1 )
1137 WRITE( NOUT, FMT = 9996 )N, NB, NPROW, NPCOL, MATTYPE,
1138 $ SUBTESTS, CTIME( 1 )
1140.EQ.
ELSE IF( INFO3 ) THEN
1141 WRITE( NOUT, FMT = 9995 )N, NB, NPROW, NPCOL, MATTYPE,
1148 9999 FORMAT( 1X, I5, 1X, I3, 1X, I3, 1X, I3, 1X, I3, 3X, A1, 1X, F8.2,
1149 $ 1X, F8.2, 1X, G9.2, 1X, G9.2, 1X, A14 )
1150 9998 FORMAT( 1X, I5, 1X, I3, 1X, I3, 1X, I3, 1X, I3, 3X, A1, 1X, 8X,
1151 $ 1X, F8.2, 1X, G9.2, 1X, G9.2, A14 )
1152 9997 FORMAT( 1X, I5, 1X, I3, 1X, I3, 1X, I3, 1X, I3, 3X, A1, 1X, F8.2,
1153 $ 1X, F8.2, 21X, 'bypassed
' )
1154 9996 FORMAT( 1X, I5, 1X, I3, 1X, I3, 1X, I3, 1X, I3, 3X, A1, 1X, 8X,
1155 $ 1X, F8.2, 21X, 'bypassed
' )
1156 9995 FORMAT( 1X, I5, 1X, I3, 1X, I3, 1X, I3, 1X, I3, 3X, A1, 32X,
1157 $ 'bad memory parameters
' )
1159 9993 FORMAT( ' iseed( 1 ) =
', I8 )
1160 9992 FORMAT( ' iseed( 2 ) =
', I8 )
1161 9991 FORMAT( ' iseed( 3 ) =
', I8 )
1162 9990 FORMAT( ' iseed( 4 ) =
', I8 )
1163 9989 FORMAT( ' n=
', I8 )
1164 9988 FORMAT( ' nprow=
', I8 )
1165 9987 FORMAT( ' npcol=
', I8 )
1166 9986 FORMAT( ' nb=
', I8 )
1167 9985 FORMAT( ' mattype=
', I8 )
1168 9984 FORMAT( ' ibtype=
', I8 )
1169 9983 FORMAT( ' subtests=
', A1 )
1170 9982 FORMAT( ' abstol=
', D16.6 )
1171 9981 FORMAT( ' thresh=
', D16.6 )