334 SUBROUTINE zdrvst2stg( NSIZES, NN, NTYPES, DOTYPE, ISEED, THRESH,
335 $ NOUNIT, A, LDA, D1, D2, D3, WA1, WA2, WA3, U,
336 $ LDU, V, TAU, Z, WORK, LWORK, RWORK, LRWORK,
337 $ IWORK, LIWORK, RESULT, INFO )
344 INTEGER INFO, LDA, LDU, LIWORK, LRWORK, , NOUNIT,
346 DOUBLE PRECISION THRESH
350 INTEGER ISEED( 4 ), IWORK( * ), NN( * )
351 DOUBLE PRECISION D1( * ), D2( * ), D3( * ), RESULT( * ),
352 $ rwork( * ), wa1( * ), wa2( * ), wa3( * )
353 COMPLEX*16 A( LDA, * ), TAU( * ), U( LDU, * ),
354 $ v( ldu, * ), work( * ), z( ldu, * )
361 DOUBLE PRECISION ZERO, ONE, TWO, TEN
362 PARAMETER ( ZERO = 0.0d+0, one = 1.0d+0, two = 2.0d+0,
364 DOUBLE PRECISION HALF
365 parameter( half = one / two )
366 COMPLEX*16 CZERO, CONE
367 parameter( czero = ( 0.0d+0, 0.0d+0 ),
368 $ cone = ( 1.0d+0, 0.0d+0 ) )
370 parameter( maxtyp = 18 )
375 INTEGER I, IDIAG, IHBW, IINFO, IL, IMODE, INDWRK, ,
376 $ irow, itemp, itype, iu, iuplo, j, j1, j2, jcol,
377 $ jsize, jtype, kd, lgn, liwedc, lrwedc, lwedc,
378 $ m, m2, m3, mtypes, n, nerrs, nmats, nmax,
380 DOUBLE PRECISION ABSTOL, ANINV, ANORM, COND, OVFL, RTOVFL,
381 $ RTUNFL, TEMP1, , TEMP3, ULP, ULPINV, UNFL,
385 INTEGER IDUMMA( 1 ), IOLDSD( 4 ), ISEED2( 4 ),
386 $ ISEED3( 4 ), KMAGN( MAXTYP ), KMODE( MAXTYP ),
390 DOUBLE PRECISION DLAMCH, DLARND, DSXT1
391 EXTERNAL DLAMCH, DLARND, DSXT1
402 INTRINSIC abs, dble, int, log,
max
405 DATA ktype / 1, 2, 5*4, 5*5, 3*8, 3*9 /
406 DATA kmagn / 2*1, 1, 1, 1, 2, 3, 1, 1, 1, 2, 3, 1,
408 DATA kmode / 2*0, 4, 3, 1, 4, 4, 4, 3, 1, 4, 4, 0,
421 nmax =
max( nmax, nn( j ) )
428 IF( nsizes.LT.0 )
THEN
430 ELSE IF( badnn )
THEN
432 ELSE IF( ntypes.LT.0 )
THEN
434 ELSE IF( lda.LT.nmax )
THEN
436 ELSE IF( ldu.LT.nmax )
THEN
438 ELSE IF( 2*
max( 2, nmax )**2.GT.lwork )
THEN
443 CALL xerbla(
'ZDRVST2STG', -info )
449 IF( nsizes.EQ.0 .OR. ntypes.EQ.0 )
454 unfl = dlamch(
'Safe minimum' )
455 ovfl = dlamch(
'Overflow' )
457 ulp = dlamch(
'Epsilon' )*dlamch(
'Base' )
459 rtunfl = sqrt( unfl )
460 rtovfl = sqrt( ovfl )
465 iseed2( i ) = iseed( i )
466 iseed3( i ) = iseed( i )
472 DO 1220 jsize = 1, nsizes
475 lgn = int( log( dble( n ) ) / log( two ) )
480 lwedc =
max( 2*n+n*n, 2*n*n )
481 lrwedc = 1 + 4*n + 2*n*lgn + 3*n**2
488 aninv = one / dble(
max( 1, n ) )
490 IF( nsizes.NE.1 )
THEN
491 mtypes =
min( maxtyp, ntypes )
493 mtypes =
min( maxtyp+1, ntypes )
496 DO 1210 jtype = 1, mtypes
497 IF( .NOT.dotype( jtype ) )
503 ioldsd( j ) = iseed( j )
521 IF( mtypes.GT.maxtyp )
524 itype = ktype( jtype )
525 imode = kmode( jtype )
529 GO TO ( 40, 50, 60 )kmagn( jtype )
536 anorm = ( rtovfl*ulp )*aninv
540 anorm = rtunfl*n*ulpinv
545 CALL zlaset( 'full
', LDA, N, CZERO, CZERO, A, LDA )
553.EQ.
IF( ITYPE1 ) THEN
556.EQ.
ELSE IF( ITYPE2 ) THEN
561 A( JCOL, JCOL ) = ANORM
564.EQ.
ELSE IF( ITYPE4 ) THEN
568 CALL ZLATMS( N, N, 's
', ISEED, 'h
', RWORK, IMODE, COND,
569 $ ANORM, 0, 0, 'n
', A, LDA, WORK, IINFO )
571.EQ.
ELSE IF( ITYPE5 ) THEN
575 CALL ZLATMS( N, N, 's
', ISEED, 'h
', RWORK, IMODE, COND,
576 $ ANORM, N, N, 'n
', A, LDA, WORK, IINFO )
578.EQ.
ELSE IF( ITYPE7 ) THEN
582 CALL ZLATMR( N, N, 's
', ISEED, 'h
', WORK, 6, ONE, CONE,
583 $ 't
', 'n
', WORK( N+1 ), 1, ONE,
584 $ WORK( 2*N+1 ), 1, ONE, 'n
', IDUMMA, 0, 0,
585 $ ZERO, ANORM, 'no
', A, LDA, IWORK, IINFO )
587.EQ.
ELSE IF( ITYPE8 ) THEN
591 CALL ZLATMR( N, N, 's
', ISEED, 'h
', WORK, 6, ONE, CONE,
592 $ 't
', 'n
', WORK( N+1 ), 1, ONE,
593 $ WORK( 2*N+1 ), 1, ONE, 'n
', IDUMMA, N, N,
594 $ ZERO, ANORM, 'no
', A, LDA, IWORK, IINFO )
596.EQ.
ELSE IF( ITYPE9 ) THEN
600 IHBW = INT( ( N-1 )*DLARND( 1, ISEED3 ) )
601 CALL ZLATMS( N, N, 's
', ISEED, 'h
', RWORK, IMODE, COND,
602 $ ANORM, IHBW, IHBW, 'z
', U, LDU, WORK,
607 CALL ZLASET( 'full
', LDA, N, CZERO, CZERO, A, LDA )
608 DO 100 IDIAG = -IHBW, IHBW
609 IROW = IHBW - IDIAG + 1
610 J1 = MAX( 1, IDIAG+1 )
611 J2 = MIN( N, N+IDIAG )
614 A( I, J ) = U( IROW, J )
621.NE.
IF( IINFO0 ) THEN
622 WRITE( NOUNIT, FMT = 9999 )'generator
', IINFO, N, JTYPE,
635 IL = 1 + INT( ( N-1 )*DLARND( 1, ISEED2 ) )
636 IU = 1 + INT( ( N-1 )*DLARND( 1, ISEED2 ) )
648.EQ.
IF( IUPLO0 ) THEN
656 CALL ZLACPY( ' ', N, N, A, LDA, V, LDU )
659 CALL ZHEEVD( 'v
', UPLO, N, A, LDU, D1, WORK, LWEDC,
660 $ RWORK, LRWEDC, IWORK, LIWEDC, IINFO )
661.NE.
IF( IINFO0 ) THEN
662 WRITE( NOUNIT, FMT = 9999 )'zheevd(v,
' // UPLO //
663 $ ')
', IINFO, N, JTYPE, IOLDSD
665.LT.
IF( IINFO0 ) THEN
668 RESULT( NTEST ) = ULPINV
669 RESULT( NTEST+1 ) = ULPINV
670 RESULT( NTEST+2 ) = ULPINV
677 CALL ZHET21( 1, UPLO, N, 0, V, LDU, D1, D2, A, LDU, Z,
678 $ LDU, TAU, WORK, RWORK, RESULT( NTEST ) )
680 CALL ZLACPY( ' ', N, N, V, LDU, A, LDA )
683 CALL ZHEEVD_2STAGE( 'n
', UPLO, N, A, LDU, D3, WORK,
684 $ LWORK, RWORK, LRWEDC, IWORK, LIWEDC, IINFO )
685.NE.
IF( IINFO0 ) THEN
686 WRITE( NOUNIT, FMT = 9999 )
688 $ ')
', IINFO, N, JTYPE, IOLDSD
690.LT.
IF( IINFO0 ) THEN
693 RESULT( NTEST ) = ULPINV
703 TEMP1 = MAX( TEMP1, ABS( D1( J ) ), ABS( D3( J ) ) )
704 TEMP2 = MAX( TEMP2, ABS( D1( J )-D3( J ) ) )
706 RESULT( NTEST ) = TEMP2 / MAX( UNFL,
707 $ ULP*MAX( TEMP1, TEMP2 ) )
710 CALL ZLACPY( ' ', N, N, V, LDU, A, LDA )
715 TEMP3 = MAX( ABS( D1( 1 ) ), ABS( D1( N ) ) )
717 VL = D1( IL ) - MAX( HALF*( D1( IL )-D1( IL-1 ) ),
718 $ TEN*ULP*TEMP3, TEN*RTUNFL )
719.GT.
ELSE IF( N0 ) THEN
720 VL = D1( 1 ) - MAX( HALF*( D1( N )-D1( 1 ) ),
721 $ TEN*ULP*TEMP3, TEN*RTUNFL )
724 VU = D1( IU ) + MAX( HALF*( D1( IU+1 )-D1( IU ) ),
725 $ TEN*ULP*TEMP3, TEN*RTUNFL )
726.GT.
ELSE IF( N0 ) THEN
727 VU = D1( N ) + MAX( HALF*( D1( N )-D1( 1 ) ),
728 $ TEN*ULP*TEMP3, TEN*RTUNFL )
736 CALL ZHEEVX( 'v
', 'a
', UPLO, N, A, LDU, VL, VU, IL, IU,
737 $ ABSTOL, M, WA1, Z, LDU, WORK, LWORK, RWORK,
738 $ IWORK, IWORK( 5*N+1 ), IINFO )
739.NE.
IF( IINFO0 ) THEN
740 WRITE( NOUNIT, FMT = 9999 )'zheevx(v,a,
' // UPLO //
741 $ ')
', IINFO, N, JTYPE, IOLDSD
743.LT.
IF( IINFO0 ) THEN
746 RESULT( NTEST ) = ULPINV
747 RESULT( NTEST+1 ) = ULPINV
748 RESULT( NTEST+2 ) = ULPINV
755 CALL ZLACPY( ' ', N, N, V, LDU, A, LDA )
757 CALL ZHET21( 1, UPLO, N, 0, A, LDU, WA1, D2, Z, LDU, V,
758 $ LDU, TAU, WORK, RWORK, RESULT( NTEST ) )
761 CALL ZHEEVX_2STAGE( 'n
', 'a
', UPLO, N, A, LDU, VL, VU,
762 $ IL, IU, ABSTOL, M2, WA2, Z, LDU,
763 $ WORK, LWORK, RWORK, IWORK,
764 $ IWORK( 5*N+1 ), IINFO )
765.NE.
IF( IINFO0 ) THEN
766 WRITE( NOUNIT, FMT = 9999 )
768 $ ')
', IINFO, N, JTYPE, IOLDSD
770.LT.
IF( IINFO0 ) THEN
773 RESULT( NTEST ) = ULPINV
783 TEMP1 = MAX( TEMP1, ABS( WA1( J ) ), ABS( WA2( J ) ) )
784 TEMP2 = MAX( TEMP2, ABS( WA1( J )-WA2( J ) ) )
786 RESULT( NTEST ) = TEMP2 / MAX( UNFL,
787 $ ULP*MAX( TEMP1, TEMP2 ) )
790 CALL ZLACPY( ' ', N, N, V, LDU, A, LDA )
794 CALL ZHEEVX( 'v
', 'i
', UPLO, N, A, LDU, VL, VU, IL, IU,
795 $ ABSTOL, M2, WA2, Z, LDU, WORK, LWORK, RWORK,
796 $ IWORK, IWORK( 5*N+1 ), IINFO )
797.NE.
IF( IINFO0 ) THEN
798 WRITE( NOUNIT, FMT = 9999 )'zheevx(v,i,
' // UPLO //
799 $ ')
', IINFO, N, JTYPE, IOLDSD
801.LT.
IF( IINFO0 ) THEN
804 RESULT( NTEST ) = ULPINV
811 CALL ZLACPY( ' ', N, N, V, LDU, A, LDA )
813 CALL ZHET22( 1, UPLO, N, M2, 0, A, LDU, WA2, D2, Z, LDU,
814 $ V, LDU, TAU, WORK, RWORK, RESULT( NTEST ) )
818 CALL ZHEEVX_2STAGE( 'n
', 'i
', UPLO, N, A, LDU, VL, VU,
819 $ IL, IU, ABSTOL, M3, WA3, Z, LDU,
820 $ WORK, LWORK, RWORK, IWORK,
821 $ IWORK( 5*N+1 ), IINFO )
822.NE.
IF( IINFO0 ) THEN
823 WRITE( NOUNIT, FMT = 9999 )
825 $ ')
', IINFO, N, JTYPE, IOLDSD
827.LT.
IF( IINFO0 ) THEN
830 RESULT( NTEST ) = ULPINV
837 TEMP1 = DSXT1( 1, WA2, M2, WA3, M3, ABSTOL, ULP, UNFL )
838 TEMP2 = DSXT1( 1, WA3, M3, WA2, M2, ABSTOL, ULP, UNFL )
840 TEMP3 = MAX( ABS( WA1( 1 ) ), ABS( WA1( N ) ) )
844 RESULT( NTEST ) = ( TEMP1+TEMP2 ) /
845 $ MAX( UNFL, TEMP3*ULP )
848 CALL ZLACPY( ' ', N, N, V, LDU, A, LDA )
852 CALL ZHEEVX( 'v
', 'v
', UPLO, N, A, LDU, VL, VU, IL, IU,
853 $ ABSTOL, M2, WA2, Z, LDU, WORK, LWORK, RWORK,
854 $ IWORK, IWORK( 5*N+1 ), IINFO )
855.NE.
IF( IINFO0 ) THEN
856 WRITE( NOUNIT, FMT = 9999 )'zheevx(v,v,
' // UPLO //
857 $ ')
', IINFO, N, JTYPE, IOLDSD
859.LT.
IF( IINFO0 ) THEN
862 RESULT( NTEST ) = ULPINV
869 CALL ZLACPY( ' ', N, N, V, LDU, A, LDA )
871 CALL ZHET22( 1, UPLO, N, M2, 0, A, LDU, WA2, D2, Z, LDU,
872 $ V, LDU, TAU, WORK, RWORK, RESULT( NTEST ) )
876 CALL ZHEEVX_2STAGE( 'n
', 'v
', UPLO, N, A, LDU, VL, VU,
877 $ IL, IU, ABSTOL, M3, WA3, Z, LDU,
878 $ WORK, LWORK, RWORK, IWORK,
879 $ IWORK( 5*N+1 ), IINFO )
880.NE.
IF( IINFO0 ) THEN
881 WRITE( NOUNIT, FMT = 9999 )
883 $ ')
', IINFO, N, JTYPE, IOLDSD
885.LT.
IF( IINFO0 ) THEN
888 RESULT( NTEST ) = ULPINV
893.EQ..AND..GT.
IF( M30 N0 ) THEN
894 RESULT( NTEST ) = ULPINV
900 TEMP1 = DSXT1( 1, WA2, M2, WA3, M3, ABSTOL, ULP, UNFL )
901 TEMP2 = DSXT1( 1, WA3, M3, WA2, M2, ABSTOL, ULP, UNFL )
903 TEMP3 = MAX( ABS( WA1( 1 ) ), ABS( WA1( N ) ) )
907 RESULT( NTEST ) = ( TEMP1+TEMP2 ) /
908 $ MAX( UNFL, TEMP3*ULP )
914 CALL ZLACPY( ' ', N, N, V, LDU, A, LDA )
919.EQ.
IF( IUPLO1 ) THEN
923 WORK( INDX ) = A( I, J )
931 WORK( INDX ) = A( I, J )
938 INDWRK = N*( N+1 ) / 2 + 1
939 CALL ZHPEVD( 'v
', UPLO, N, WORK, D1, Z, LDU,
940 $ WORK( INDWRK ), LWEDC, RWORK, LRWEDC, IWORK,
942.NE.
IF( IINFO0 ) THEN
943 WRITE( NOUNIT, FMT = 9999 )'zhpevd(v,
' // UPLO //
944 $ ')
', IINFO, N, JTYPE, IOLDSD
946.LT.
IF( IINFO0 ) THEN
949 RESULT( NTEST ) = ULPINV
950 RESULT( NTEST+1 ) = ULPINV
951 RESULT( NTEST+2 ) = ULPINV
958 CALL ZHET21( 1, UPLO, N, 0, A, LDA, D1, D2, Z, LDU, V,
959 $ LDU, TAU, WORK, RWORK, RESULT( NTEST ) )
961.EQ.
IF( IUPLO1 ) THEN
965 WORK( INDX ) = A( I, J )
973 WORK( INDX ) = A( I, J )
980 INDWRK = N*( N+1 ) / 2 + 1
981 CALL ZHPEVD( 'n
', UPLO, N, WORK, D3, Z, LDU,
982 $ WORK( INDWRK ), LWEDC, RWORK, LRWEDC, IWORK,
984.NE.
IF( IINFO0 ) THEN
985 WRITE( NOUNIT, FMT = 9999 )'zhpevd(n,
' // UPLO //
986 $ ')
', IINFO, N, JTYPE, IOLDSD
988.LT.
IF( IINFO0 ) THEN
991 RESULT( NTEST ) = ULPINV
1001 TEMP1 = MAX( TEMP1, ABS( D1( J ) ), ABS( D3( J ) ) )
1002 TEMP2 = MAX( TEMP2, ABS( D1( J )-D3( J ) ) )
1004 RESULT( NTEST ) = TEMP2 / MAX( UNFL,
1005 $ ULP*MAX( TEMP1, TEMP2 ) )
1011.EQ.
IF( IUPLO1 ) THEN
1015 WORK( INDX ) = A( I, J )
1023 WORK( INDX ) = A( I, J )
1032 TEMP3 = MAX( ABS( D1( 1 ) ), ABS( D1( N ) ) )
1034 VL = D1( IL ) - MAX( HALF*( D1( IL )-D1( IL-1 ) ),
1035 $ TEN*ULP*TEMP3, TEN*RTUNFL )
1036.GT.
ELSE IF( N0 ) THEN
1037 VL = D1( 1 ) - MAX( HALF*( D1( N )-D1( 1 ) ),
1038 $ TEN*ULP*TEMP3, TEN*RTUNFL )
1041 VU = D1( IU ) + MAX( HALF*( D1( IU+1 )-D1( IU ) ),
1042 $ TEN*ULP*TEMP3, TEN*RTUNFL )
1043.GT.
ELSE IF( N0 ) THEN
1044 VU = D1( N ) + MAX( HALF*( D1( N )-D1( 1 ) ),
1045 $ TEN*ULP*TEMP3, TEN*RTUNFL )
1053 CALL ZHPEVX( 'v
', 'a
', UPLO, N, WORK, VL, VU, IL, IU,
1054 $ ABSTOL, M, WA1, Z, LDU, V, RWORK, IWORK,
1055 $ IWORK( 5*N+1 ), IINFO )
1056.NE.
IF( IINFO0 ) THEN
1057 WRITE( NOUNIT, FMT = 9999 )'zhpevx(v,a,
' // UPLO //
1058 $ ')
', IINFO, N, JTYPE, IOLDSD
1060.LT.
IF( IINFO0 ) THEN
1063 RESULT( NTEST ) = ULPINV
1064 RESULT( NTEST+1 ) = ULPINV
1065 RESULT( NTEST+2 ) = ULPINV
1072 CALL ZHET21( 1, UPLO, N, 0, A, LDU, WA1, D2, Z, LDU, V,
1073 $ LDU, TAU, WORK, RWORK, RESULT( NTEST ) )
1077.EQ.
IF( IUPLO1 ) THEN
1081 WORK( INDX ) = A( I, J )
1089 WORK( INDX ) = A( I, J )
1095 CALL ZHPEVX( 'n
', 'a
', UPLO, N, WORK, VL, VU, IL, IU,
1096 $ ABSTOL, M2, WA2, Z, LDU, V, RWORK, IWORK,
1097 $ IWORK( 5*N+1 ), IINFO )
1098.NE.
IF( IINFO0 ) THEN
1099 WRITE( NOUNIT, FMT = 9999 )'zhpevx(n,a,
' // UPLO //
1100 $ ')
', IINFO, N, JTYPE, IOLDSD
1102.LT.
IF( IINFO0 ) THEN
1105 RESULT( NTEST ) = ULPINV
1115 TEMP1 = MAX( TEMP1, ABS( WA1( J ) ), ABS( WA2( J ) ) )
1116 TEMP2 = MAX( TEMP2, ABS( WA1( J )-WA2( J ) ) )
1118 RESULT( NTEST ) = TEMP2 / MAX( UNFL,
1119 $ ULP*MAX( TEMP1, TEMP2 ) )
1123.EQ.
IF( IUPLO1 ) THEN
1127 WORK( INDX ) = A( I, J )
1135 WORK( INDX ) = A( I, J )
1141 CALL ZHPEVX( 'v
', 'i
', UPLO, N, WORK, VL, VU, IL, IU,
1142 $ ABSTOL, M2, WA2, Z, LDU, V, RWORK, IWORK,
1143 $ IWORK( 5*N+1 ), IINFO )
1144.NE.
IF( IINFO0 ) THEN
1145 WRITE( NOUNIT, FMT = 9999 )'zhpevx(v,i,
' // UPLO //
1146 $ ')
', IINFO, N, JTYPE, IOLDSD
1148.LT.
IF( IINFO0 ) THEN
1151 RESULT( NTEST ) = ULPINV
1152 RESULT( NTEST+1 ) = ULPINV
1153 RESULT( NTEST+2 ) = ULPINV
1160 CALL ZHET22( 1, UPLO, N, M2, 0, A, LDU, WA2, D2, Z, LDU,
1161 $ V, LDU, TAU, WORK, RWORK, RESULT( NTEST ) )
1165.EQ.
IF( IUPLO1 ) THEN
1169 WORK( INDX ) = A( I, J )
1177 WORK( INDX ) = A( I, J )
1183 CALL ZHPEVX( 'n
', 'i
', UPLO, N, WORK, VL, VU, IL, IU,
1184 $ ABSTOL, M3, WA3, Z, LDU, V, RWORK, IWORK,
1185 $ IWORK( 5*N+1 ), IINFO )
1186.NE.
IF( IINFO0 ) THEN
1187 WRITE( NOUNIT, FMT = 9999 )'zhpevx(n,i,
' // UPLO //
1188 $ ')
', IINFO, N, JTYPE, IOLDSD
1190.LT.
IF( IINFO0 ) THEN
1193 RESULT( NTEST ) = ULPINV
1200 TEMP1 = DSXT1( 1, WA2, M2, WA3, M3, ABSTOL, ULP, UNFL )
1201 TEMP2 = DSXT1( 1, WA3, M3, WA2, M2, ABSTOL, ULP, UNFL )
1203 TEMP3 = MAX( ABS( WA1( 1 ) ), ABS( WA1( N ) ) )
1207 RESULT( NTEST ) = ( TEMP1+TEMP2 ) /
1208 $ MAX( UNFL, TEMP3*ULP )
1212.EQ.
IF( IUPLO1 ) THEN
1216 WORK( INDX ) = A( I, J )
1224 WORK( INDX ) = A( I, J )
1230 CALL ZHPEVX( 'v
', 'v
', UPLO, N, WORK, VL, VU, IL, IU,
1231 $ ABSTOL, M2, WA2, Z, LDU, V, RWORK, IWORK,
1232 $ IWORK( 5*N+1 ), IINFO )
1233.NE.
IF( IINFO0 ) THEN
1234 WRITE( NOUNIT, FMT = 9999 )'zhpevx(v,v,
' // UPLO //
1235 $ ')
', IINFO, N, JTYPE, IOLDSD
1237.LT.
IF( IINFO0 ) THEN
1240 RESULT( NTEST ) = ULPINV
1241 RESULT( NTEST+1 ) = ULPINV
1242 RESULT( NTEST+2 ) = ULPINV
1249 CALL ZHET22( 1, UPLO, N, M2, 0, A, LDU, WA2, D2, Z, LDU,
1250 $ V, LDU, TAU, WORK, RWORK, RESULT( NTEST ) )
1254.EQ.
IF( IUPLO1 ) THEN
1258 WORK( INDX ) = A( I, J )
1266 WORK( INDX ) = A( I, J )
1272 CALL ZHPEVX( 'n
', 'v
', UPLO, N, WORK, VL, VU, IL, IU,
1273 $ ABSTOL, M3, WA3, Z, LDU, V, RWORK, IWORK,
1274 $ IWORK( 5*N+1 ), IINFO )
1275.NE.
IF( IINFO0 ) THEN
1276 WRITE( NOUNIT, FMT = 9999 )'zhpevx(n,v,
' // UPLO //
1277 $ ')
', IINFO, N, JTYPE, IOLDSD
1279.LT.
IF( IINFO0 ) THEN
1282 RESULT( NTEST ) = ULPINV
1287.EQ..AND..GT.
IF( M30 N0 ) THEN
1288 RESULT( NTEST ) = ULPINV
1294 TEMP1 = DSXT1( 1, WA2, M2, WA3, M3, ABSTOL, ULP, UNFL )
1295 TEMP2 = DSXT1( 1, WA3, M3, WA2, M2, ABSTOL, ULP, UNFL )
1297 TEMP3 = MAX( ABS( WA1( 1 ) ), ABS( WA1( N ) ) )
1301 RESULT( NTEST ) = ( TEMP1+TEMP2 ) /
1302 $ MAX( UNFL, TEMP3*ULP )
1308.LE.
IF( JTYPE7 ) THEN
1310.GE..AND..LE.
ELSE IF( JTYPE8 JTYPE15 ) THEN
1319.EQ.
IF( IUPLO1 ) THEN
1321 DO 560 I = MAX( 1, J-KD ), J
1322 V( KD+1+I-J, J ) = A( I, J )
1327 DO 580 I = J, MIN( N, J+KD )
1328 V( 1+I-J, J ) = A( I, J )
1334 CALL ZHBEVD( 'v
', UPLO, N, KD, V, LDU, D1, Z, LDU, WORK,
1335 $ LWEDC, RWORK, LRWEDC, IWORK, LIWEDC, IINFO )
1336.NE.
IF( IINFO0 ) THEN
1337 WRITE( NOUNIT, FMT = 9998 )'zhbevd(v,
' // UPLO //
1338 $ ')
', IINFO, N, KD, JTYPE, IOLDSD
1340.LT.
IF( IINFO0 ) THEN
1343 RESULT( NTEST ) = ULPINV
1344 RESULT( NTEST+1 ) = ULPINV
1345 RESULT( NTEST+2 ) = ULPINV
1352 CALL ZHET21( 1, UPLO, N, 0, A, LDA, D1, D2, Z, LDU, V,
1353 $ LDU, TAU, WORK, RWORK, RESULT( NTEST ) )
1355.EQ.
IF( IUPLO1 ) THEN
1357 DO 600 I = MAX( 1, J-KD ), J
1358 V( KD+1+I-J, J ) = A( I, J )
1363 DO 620 I = J, MIN( N, J+KD )
1364 V( 1+I-J, J ) = A( I, J )
1370 CALL ZHBEVD_2STAGE( 'n
', UPLO, N, KD, V, LDU, D3,
1371 $ Z, LDU, WORK, LWORK, RWORK,
1372 $ LRWEDC, IWORK, LIWEDC, IINFO )
1373.NE.
IF( IINFO0 ) THEN
1374 WRITE( NOUNIT, FMT = 9998 )
1376 $ ')
', IINFO, N, KD, JTYPE, IOLDSD
1378.LT.
IF( IINFO0 ) THEN
1381 RESULT( NTEST ) = ULPINV
1391 TEMP1 = MAX( TEMP1, ABS( D1( J ) ), ABS( D3( J ) ) )
1392 TEMP2 = MAX( TEMP2, ABS( D1( J )-D3( J ) ) )
1394 RESULT( NTEST ) = TEMP2 / MAX( UNFL,
1395 $ ULP*MAX( TEMP1, TEMP2 ) )
1401.EQ.
IF( IUPLO1 ) THEN
1403 DO 660 I = MAX( 1, J-KD ), J
1404 V( KD+1+I-J, J ) = A( I, J )
1409 DO 680 I = J, MIN( N, J+KD )
1410 V( 1+I-J, J ) = A( I, J )
1416 CALL ZHBEVX( 'v
', 'a
', UPLO, N, KD, V, LDU, U, LDU, VL,
1417 $ VU, IL, IU, ABSTOL, M, WA1, Z, LDU, WORK,
1418 $ RWORK, IWORK, IWORK( 5*N+1 ), IINFO )
1419.NE.
IF( IINFO0 ) THEN
1420 WRITE( NOUNIT, FMT = 9999 )'zhbevx(v,a,
' // UPLO //
1421 $ ')
', IINFO, N, KD, JTYPE, IOLDSD
1423.LT.
IF( IINFO0 ) THEN
1426 RESULT( NTEST ) = ULPINV
1427 RESULT( NTEST+1 ) = ULPINV
1428 RESULT( NTEST+2 ) = ULPINV
1435 CALL ZHET21( 1, UPLO, N, 0, A, LDU, WA1, D2, Z, LDU, V,
1436 $ LDU, TAU, WORK, RWORK, RESULT( NTEST ) )
1440.EQ.
IF( IUPLO1 ) THEN
1442 DO 700 I = MAX( 1, J-KD ), J
1443 V( KD+1+I-J, J ) = A( I, J )
1448 DO 720 I = J, MIN( N, J+KD )
1449 V( 1+I-J, J ) = A( I, J )
1454 CALL ZHBEVX_2STAGE( 'n
', 'a
', UPLO, N, KD, V, LDU,
1455 $ U, LDU, VL, VU, IL, IU, ABSTOL,
1456 $ M2, WA2, Z, LDU, WORK, LWORK,
1457 $ RWORK, IWORK, IWORK( 5*N+1 ), IINFO )
1458.NE.
IF( IINFO0 ) THEN
1459 WRITE( NOUNIT, FMT = 9998 )
1461 $ ')
', IINFO, N, KD, JTYPE, IOLDSD
1463.LT.
IF( IINFO0 ) THEN
1466 RESULT( NTEST ) = ULPINV
1476 TEMP1 = MAX( TEMP1, ABS( WA1( J ) ), ABS( WA2( J ) ) )
1477 TEMP2 = MAX( TEMP2, ABS( WA1( J )-WA2( J ) ) )
1479 RESULT( NTEST ) = TEMP2 / MAX( UNFL,
1480 $ ULP*MAX( TEMP1, TEMP2 ) )
1487.EQ.
IF( IUPLO1 ) THEN
1489 DO 760 I = MAX( 1, J-KD ), J
1490 V( KD+1+I-J, J ) = A( I, J )
1495 DO 780 I = J, MIN( N, J+KD )
1496 V( 1+I-J, J ) = A( I, J )
1501 CALL ZHBEVX( 'v
', 'i
', UPLO, N, KD, V, LDU, U, LDU, VL,
1502 $ VU, IL, IU, ABSTOL, M2, WA2, Z, LDU, WORK,
1503 $ RWORK, IWORK, IWORK( 5*N+1 ), IINFO )
1504.NE.
IF( IINFO0 ) THEN
1505 WRITE( NOUNIT, FMT = 9998 )'zhbevx(v,i,
' // UPLO //
1506 $ ')
', IINFO, N, KD, JTYPE, IOLDSD
1508.LT.
IF( IINFO0 ) THEN
1511 RESULT( NTEST ) = ULPINV
1512 RESULT( NTEST+1 ) = ULPINV
1513 RESULT( NTEST+2 ) = ULPINV
1520 CALL ZHET22( 1, UPLO, N, M2, 0, A, LDU, WA2, D2, Z, LDU,
1521 $ V, LDU, TAU, WORK, RWORK, RESULT( NTEST ) )
1525.EQ.
IF( IUPLO1 ) THEN
1527 DO 800 I = MAX( 1, J-KD ), J
1528 V( KD+1+I-J, J ) = A( I, J )
1533 DO 820 I = J, MIN( N, J+KD )
1534 V( 1+I-J, J ) = A( I, J )
1538 CALL ZHBEVX_2STAGE( 'n
', 'i
', UPLO, N, KD, V, LDU,
1539 $ U, LDU, VL, VU, IL, IU, ABSTOL,
1540 $ M3, WA3, Z, LDU, WORK, LWORK,
1541 $ RWORK, IWORK, IWORK( 5*N+1 ), IINFO )
1542.NE.
IF( IINFO0 ) THEN
1543 WRITE( NOUNIT, FMT = 9998 )
1545 $ ')
', IINFO, N, KD, JTYPE, IOLDSD
1547.LT.
IF( IINFO0 ) THEN
1550 RESULT( NTEST ) = ULPINV
1557 TEMP1 = DSXT1( 1, WA2, M2, WA3, M3, ABSTOL, ULP, UNFL )
1558 TEMP2 = DSXT1( 1, WA3, M3, WA2, M2, ABSTOL, ULP, UNFL )
1560 TEMP3 = MAX( ABS( WA1( 1 ) ), ABS( WA1( N ) ) )
1564 RESULT( NTEST ) = ( TEMP1+TEMP2 ) /
1565 $ MAX( UNFL, TEMP3*ULP )
1572.EQ.
IF( IUPLO1 ) THEN
1574 DO 850 I = MAX( 1, J-KD ), J
1575 V( KD+1+I-J, J ) = A( I, J )
1580 DO 870 I = J, MIN( N, J+KD )
1581 V( 1+I-J, J ) = A( I, J )
1585 CALL ZHBEVX( 'v
', 'v
', UPLO, N, KD, V, LDU, U, LDU, VL,
1586 $ VU, IL, IU, ABSTOL, M2, WA2, Z, LDU, WORK,
1587 $ RWORK, IWORK, IWORK( 5*N+1 ), IINFO )
1588.NE.
IF( IINFO0 ) THEN
1589 WRITE( NOUNIT, FMT = 9998 )'zhbevx(v,v,
' // UPLO //
1590 $ ')
', IINFO, N, KD, JTYPE, IOLDSD
1592.LT.
IF( IINFO0 ) THEN
1595 RESULT( NTEST ) = ULPINV
1596 RESULT( NTEST+1 ) = ULPINV
1597 RESULT( NTEST+2 ) = ULPINV
1604 CALL ZHET22( 1, UPLO, N, M2, 0, A, LDU, WA2, D2, Z, LDU,
1605 $ V, LDU, TAU, WORK, RWORK, RESULT( NTEST ) )
1609.EQ.
IF( IUPLO1 ) THEN
1611 DO 890 I = MAX( 1, J-KD ), J
1612 V( KD+1+I-J, J ) = A( I, J )
1617 DO 910 I = J, MIN( N, J+KD )
1618 V( 1+I-J, J ) = A( I, J )
1622 CALL ZHBEVX_2STAGE( 'n
', 'v
', UPLO, N, KD, V, LDU,
1623 $ U, LDU, VL, VU, IL, IU, ABSTOL,
1624 $ M3, WA3, Z, LDU, WORK, LWORK,
1625 $ RWORK, IWORK, IWORK( 5*N+1 ), IINFO )
1626.NE.
IF( IINFO0 ) THEN
1627 WRITE( NOUNIT, FMT = 9998 )
1629 $ ')
', IINFO, N, KD, JTYPE, IOLDSD
1631.LT.
IF( IINFO0 ) THEN
1634 RESULT( NTEST ) = ULPINV
1639.EQ..AND..GT.
IF( M30 N0 ) THEN
1640 RESULT( NTEST ) = ULPINV
1646 TEMP1 = DSXT1( 1, WA2, M2, WA3, M3, ABSTOL, ULP, UNFL )
1647 TEMP2 = DSXT1( 1, WA3, M3, WA2, M2, ABSTOL, ULP, UNFL )
1649 TEMP3 = MAX( ABS( WA1( 1 ) ), ABS( WA1( N ) ) )
1653 RESULT( NTEST ) = ( TEMP1+TEMP2 ) /
1654 $ MAX( UNFL, TEMP3*ULP )
1660 CALL ZLACPY( ' ', N, N, A, LDA, V, LDU )
1663 CALL ZHEEV( 'v
', UPLO, N, A, LDU, D1, WORK, LWORK, RWORK,
1665.NE.
IF( IINFO0 ) THEN
1666 WRITE( NOUNIT, FMT = 9999 )'zheev(v,
' // UPLO // ')
',
1667 $ IINFO, N, JTYPE, IOLDSD
1669.LT.
IF( IINFO0 ) THEN
1672 RESULT( NTEST ) = ULPINV
1673 RESULT( NTEST+1 ) = ULPINV
1674 RESULT( NTEST+2 ) = ULPINV
1681 CALL ZHET21( 1, UPLO, N, 0, V, LDU, D1, D2, A, LDU, Z,
1682 $ LDU, TAU, WORK, RWORK, RESULT( NTEST ) )
1684 CALL ZLACPY( ' ', N, N, V, LDU, A, LDA )
1687 CALL ZHEEV_2STAGE( 'n
', UPLO, N, A, LDU, D3,
1688 $ WORK, LWORK, RWORK, IINFO )
1689.NE.
IF( IINFO0 ) THEN
1690 WRITE( NOUNIT, FMT = 9999 )
1692 $ IINFO, N, JTYPE, IOLDSD
1694.LT.
IF( IINFO0 ) THEN
1697 RESULT( NTEST ) = ULPINV
1707 TEMP1 = MAX( TEMP1, ABS( D1( J ) ), ABS( D3( J ) ) )
1708 TEMP2 = MAX( TEMP2, ABS( D1( J )-D3( J ) ) )
1710 RESULT( NTEST ) = TEMP2 / MAX( UNFL,
1711 $ ULP*MAX( TEMP1, TEMP2 ) )
1715 CALL ZLACPY( ' ', N, N, V, LDU, A, LDA )
1722.EQ.
IF( IUPLO1 ) THEN
1726 WORK( INDX ) = A( I, J )
1734 WORK( INDX ) = A( I, J )
1741 INDWRK = N*( N+1 ) / 2 + 1
1742 CALL ZHPEV( 'v
', UPLO, N, WORK, D1, Z, LDU,
1743 $ WORK( INDWRK ), RWORK, IINFO )
1744.NE.
IF( IINFO0 ) THEN
1745 WRITE( NOUNIT, FMT = 9999 )'zhpev(v,
' // UPLO // ')
',
1746 $ IINFO, N, JTYPE, IOLDSD
1748.LT.
IF( IINFO0 ) THEN
1751 RESULT( NTEST ) = ULPINV
1752 RESULT( NTEST+1 ) = ULPINV
1753 RESULT( NTEST+2 ) = ULPINV
1760 CALL ZHET21( 1, UPLO, N, 0, A, LDA, D1, D2, Z, LDU, V,
1761 $ LDU, TAU, WORK, RWORK, RESULT( NTEST ) )
1763.EQ.
IF( IUPLO1 ) THEN
1767 WORK( INDX ) = A( I, J )
1775 WORK( INDX ) = A( I, J )
1782 INDWRK = N*( N+1 ) / 2 + 1
1783 CALL ZHPEV( 'n
', UPLO, N, WORK, D3, Z, LDU,
1784 $ WORK( INDWRK ), RWORK, IINFO )
1785.NE.
IF( IINFO0 ) THEN
1786 WRITE( NOUNIT, FMT = 9999 )'zhpev(n,
' // UPLO // ')
',
1787 $ IINFO, N, JTYPE, IOLDSD
1789.LT.
IF( IINFO0 ) THEN
1792 RESULT( NTEST ) = ULPINV
1802 TEMP1 = MAX( TEMP1, ABS( D1( J ) ), ABS( D3( J ) ) )
1803 TEMP2 = MAX( TEMP2, ABS( D1( J )-D3( J ) ) )
1805 RESULT( NTEST ) = TEMP2 / MAX( UNFL,
1806 $ ULP*MAX( TEMP1, TEMP2 ) )
1812.LE.
IF( JTYPE7 ) THEN
1814.GE..AND..LE.
ELSE IF( JTYPE8 JTYPE15 ) THEN
1823.EQ.
IF( IUPLO1 ) THEN
1825 DO 1060 I = MAX( 1, J-KD ), J
1826 V( KD+1+I-J, J ) = A( I, J )
1831 DO 1080 I = J, MIN( N, J+KD )
1832 V( 1+I-J, J ) = A( I, J )
1838 CALL ZHBEV( 'v
', UPLO, N, KD, V, LDU, D1, Z, LDU, WORK,
1840.NE.
IF( IINFO0 ) THEN
1841 WRITE( NOUNIT, FMT = 9998 )'zhbev(v,
' // UPLO // ')
',
1842 $ IINFO, N, KD, JTYPE, IOLDSD
1844.LT.
IF( IINFO0 ) THEN
1847 RESULT( NTEST ) = ULPINV
1848 RESULT( NTEST+1 ) = ULPINV
1849 RESULT( NTEST+2 ) = ULPINV
1856 CALL ZHET21( 1, UPLO, N, 0, A, LDA, D1, D2, Z, LDU, V,
1857 $ LDU, TAU, WORK, RWORK, RESULT( NTEST ) )
1859.EQ.
IF( IUPLO1 ) THEN
1861 DO 1100 I = MAX( 1, J-KD ), J
1862 V( KD+1+I-J, J ) = A( I, J )
1867 DO 1120 I = J, MIN( N, J+KD )
1868 V( 1+I-J, J ) = A( I, J )
1874 CALL ZHBEV_2STAGE( 'n
', UPLO, N, KD, V, LDU, D3, Z, LDU,
1875 $ WORK, LWORK, RWORK, IINFO )
1876.NE.
IF( IINFO0 ) THEN
1877 WRITE( NOUNIT, FMT = 9998 )
1879 $ IINFO, N, KD, JTYPE, IOLDSD
1881.LT.
IF( IINFO0 ) THEN
1884 RESULT( NTEST ) = ULPINV
1896 TEMP1 = MAX( TEMP1, ABS( D1( J ) ), ABS( D3( J ) ) )
1897 TEMP2 = MAX( TEMP2, ABS( D1( J )-D3( J ) ) )
1899 RESULT( NTEST ) = TEMP2 / MAX( UNFL,
1900 $ ULP*MAX( TEMP1, TEMP2 ) )
1902 CALL ZLACPY( '', N, N, A, LDA, V, LDU )
1904 CALL ZHEEVR( 'v
', 'a
', UPLO, N, A, LDU, VL, VU, IL, IU,
1905 $ ABSTOL, M, WA1, Z, LDU, IWORK, WORK, LWORK,
1906 $ RWORK, LRWORK, IWORK( 2*N+1 ), LIWORK-2*N,
1908.NE.
IF( IINFO0 ) THEN
1909 WRITE( NOUNIT, FMT = 9999 )'zheevr(v,a,
' // UPLO //
1910 $ ')
', IINFO, N, JTYPE, IOLDSD
1912.LT.
IF( IINFO0 ) THEN
1915 RESULT( NTEST ) = ULPINV
1916 RESULT( NTEST+1 ) = ULPINV
1917 RESULT( NTEST+2 ) = ULPINV
1924 CALL ZLACPY( ' ', N, N, V, LDU, A, LDA )
1926 CALL ZHET21( 1, UPLO, N, 0, A, LDU, WA1, D2, Z, LDU, V,
1927 $ LDU, TAU, WORK, RWORK, RESULT( NTEST ) )
1930 CALL ZHEEVR_2STAGE( 'n
', 'a
', UPLO, N, A, LDU, VL, VU,
1931 $ IL, IU, ABSTOL, M2, WA2, Z, LDU,
1932 $ IWORK, WORK, LWORK, RWORK, LRWORK,
1933 $ IWORK( 2*N+1 ), LIWORK-2*N, IINFO )
1934.NE.
IF( IINFO0 ) THEN
1935 WRITE( NOUNIT, FMT = 9999 )
1937 $ ')
', IINFO, N, JTYPE, IOLDSD
1939.LT.
IF( IINFO0 ) THEN
1942 RESULT( NTEST ) = ULPINV
1952 TEMP1 = MAX( TEMP1, ABS( WA1( J ) ), ABS( WA2( J ) ) )
1953 TEMP2 = MAX( TEMP2, ABS( WA1( J )-WA2( J ) ) )
1955 RESULT( NTEST ) = TEMP2 / MAX( UNFL,
1956 $ ULP*MAX( TEMP1, TEMP2 ) )
1961 CALL ZLACPY( ' ', N, N, V, LDU, A, LDA )
1962 CALL ZHEEVR( 'v',
'I', uplo, n, a, ldu, vl, vu, il, iu,
1963 $ abstol, m2, wa2, z, ldu, iwork, work, lwork,
1964 $ rwork, lrwork, iwork( 2*n+1 ), liwork-2*n,
1966 IF( iinfo.NE.0 )
THEN
1967 WRITE( nounit, fmt = 9999 )
'ZHEEVR(V,I,' // uplo //
1968 $
')', iinfo, n, jtype, ioldsd
1970 IF( iinfo.LT.0 )
THEN
1973 result( ntest ) = ulpinv
1974 result( ntest+1 ) = ulpinv
1975 result( ntest+2 ) = ulpinv
1982 CALL zlacpy(
' ', n, n, v, ldu, a, lda )
1984 CALL zhet22( 1, uplo, n, m2, 0, a, ldu, wa2, d2, z, ldu,
1985 $ v, ldu, tau, work, rwork, result( ntest ) )
1988 CALL zlacpy(
' ', n, n, v, ldu, a, lda )
1990 $ il, iu, abstol, m3, wa3, z, ldu,
1991 $ iwork, work, lwork, rwork, lrwork,
1992 $ iwork( 2*n+1 ), liwork-2*n, iinfo )
1993 IF( iinfo.NE.0 )
THEN
1994 WRITE( nounit, fmt = 9999 )
1995 $
'ZHEEVR_2STAGE(N,I,' // uplo //
1996 $
')', iinfo, n, jtype, ioldsd
1998 IF( iinfo.LT.0 )
THEN
2001 result( ntest ) = ulpinv
2008 temp1 = dsxt1( 1, wa2, m2, wa3, m3, abstol, ulp, unfl )
2009 temp2 = dsxt1( 1, wa3, m3, wa2, m2, abstol, ulp, unfl )
2010 result( ntest ) = ( temp1+temp2 ) /
2011 $
max( unfl, ulp*temp3 )
2015 CALL zlacpy(
' ', n, n, v, ldu, a, lda )
2016 CALL zheevr(
'V',
'V', uplo, n, a, ldu, vl, vu, il, iu,
2017 $ abstol, m2, wa2, z, ldu, iwork, work, lwork,
2018 $ rwork, lrwork, iwork( 2*n+1 ), liwork-2*n,
2020 IF( iinfo.NE.0 )
THEN
2021 WRITE( nounit, fmt = 9999 )
'ZHEEVR(V,V,' // uplo //
2022 $
')', iinfo, n, jtype, ioldsd
2024 IF( iinfo.LT.0 )
THEN
2027 result( ntest ) = ulpinv
2028 result( ntest+1 ) = ulpinv
2029 result( ntest+2 ) = ulpinv
2036 CALL zlacpy(
' ', n, n, v, ldu, a, lda )
2038 CALL zhet22( 1, uplo, n, m2
2039 $ v, ldu, tau, work, rwork, result( ntest ) )
2042 CALL zlacpy(
' ', n, n, v, ldu, a, lda )
2044 $ il, iu, abstol, m3, wa3, z, ldu,
2045 $ iwork, work, lwork, rwork, lrwork
2046 $ iwork( 2*n+1 ), liwork-2*n, iinfo )
2047 IF( iinfo.NE.0 )
THEN
2048 WRITE( nounit, fmt = 9999 )
2049 $
'ZHEEVR_2STAGE(N,V,' // uplo //
2050 $
')', iinfo, n, jtype, ioldsd
2052 IF( iinfo.LT.0 )
THEN
2055 result( ntest ) = ulpinv
2060 IF( m3.EQ.0 .AND. n.GT.0 )
THEN
2061 result( ntest ) = ulpinv
2067 temp1 = dsxt1( 1, wa2, m2, wa3, m3, abstol, ulp, unfl )
2068 temp2 = dsxt1( 1, wa3, m3, wa2, m2, abstol
2070 temp3 =
max( abs( wa1( 1 ) ), abs( wa1( n ) ) )
2074 result( ntest ) = ( temp1+temp2 ) /
2075 $
max( unfl, temp3*ulp )
2077 CALL zlacpy(
' ', n, n, v, ldu, a, lda )
2091 ntestt = ntestt + ntest
2092 CALL dlafts(
'ZST', n, n, jtype, ntest, result, ioldsd,
2093 $ thresh, nounit, nerrs )
2100 CALL alasvm(
'ZST', nounit, nerrs, ntestt, 0 )
2102 9999
FORMAT(
' ZDRVST2STG: ', a,
' returned INFO=', i6, / 9x,
'N=', i6,
2103 $
', JTYPE=', i6,
', ISEED=(', 3( i5,
',' ), i5,
')' )
2104 9998
FORMAT(
' ZDRVST2STG: ', a,
' returned INFO=', i6, / 9x,
'N=', i6,
2105 $
', KD=', i6,
', JTYPE=', i6,
', ISEED=(', 3( i5,
',' ), i5,
subroutine dlabad(small, large)
DLABAD
subroutine xerbla(srname, info)
XERBLA
subroutine alasvm(type, nout, nfail, nrun, nerrs)
ALASVM
subroutine zhetrd_2stage(vect, uplo, n, a, lda, d, e, tau, hous2, lhous2, work, lwork, info)
ZHETRD_2STAGE
subroutine zheevr_2stage(jobz, range, uplo, n, a, lda, vl, vu, il, iu, abstol, m, w, z, ldz, isuppz, work, lwork, rwork, lrwork, iwork, liwork, info)
ZHEEVR_2STAGE computes the eigenvalues and, optionally, the left and/or right eigenvectors for HE mat...
subroutine zheevr(jobz, range, uplo, n, a, lda, vl, vu, il, iu, abstol, m, w, z, ldz, isuppz, work, lwork, rwork, lrwork, iwork, liwork, info)
ZHEEVR computes the eigenvalues and, optionally, the left and/or right eigenvectors for HE matrices
subroutine zheev_2stage(jobz, uplo, n, a, lda, w, work, lwork, rwork, info)
ZHEEV_2STAGE computes the eigenvalues and, optionally, the left and/or right eigenvectors for HE matr...
subroutine zheevx_2stage(jobz, range, uplo, n, a, lda, vl, vu, il, iu, abstol, m, w, z, ldz, work, lwork, rwork, iwork, ifail, info)
ZHEEVX_2STAGE computes the eigenvalues and, optionally, the left and/or right eigenvectors for HE mat...
subroutine zheevx(jobz, range, uplo, n, a, lda, vl, vu, il, iu, abstol, m, w, z, ldz, work, lwork, rwork, iwork, ifail, info)
ZHEEVX computes the eigenvalues and, optionally, the left and/or right eigenvectors for HE matrices
subroutine zheevd_2stage(jobz, uplo, n, a, lda, w, work, lwork, rwork, lrwork, iwork, liwork, info)
ZHEEVD_2STAGE computes the eigenvalues and, optionally, the left and/or right eigenvectors for HE mat...
subroutine zheev(jobz, uplo, n, a, lda, w, work, lwork, rwork, info)
ZHEEV computes the eigenvalues and, optionally, the left and/or right eigenvectors for HE matrices
subroutine zheevd(jobz, uplo, n, a, lda, w, work, lwork, rwork, lrwork, iwork, liwork, info)
ZHEEVD computes the eigenvalues and, optionally, the left and/or right eigenvectors for HE matrices
subroutine zlacpy(uplo, m, n, a, lda, b, ldb)
ZLACPY copies all or part of one two-dimensional array to another.
subroutine zlaset(uplo, m, n, alpha, beta, a, lda)
ZLASET initializes the off-diagonal elements and the diagonal elements of a matrix to given values.
subroutine zhbevd_2stage(jobz, uplo, n, kd, ab, ldab, w, z, ldz, work, lwork, rwork, lrwork, iwork, liwork, info)
ZHBEVD_2STAGE computes the eigenvalues and, optionally, the left and/or right eigenvectors for OTHER ...
subroutine zhpevd(jobz, uplo, n, ap, w, z, ldz, work, lwork, rwork, lrwork, iwork, liwork, info)
ZHPEVD computes the eigenvalues and, optionally, the left and/or right eigenvectors for OTHER matrice...
subroutine zhbev(jobz, uplo, n, kd, ab, ldab, w, z, ldz, work, rwork, info)
ZHBEV computes the eigenvalues and, optionally, the left and/or right eigenvectors for OTHER matrices
subroutine zhbevd(jobz, uplo, n, kd, ab, ldab, w, z, ldz, work, lwork, rwork, lrwork, iwork, liwork, info)
ZHBEVD computes the eigenvalues and, optionally, the left and/or right eigenvectors for OTHER matrice...
subroutine zhbev_2stage(jobz, uplo, n, kd, ab, ldab, w, z, ldz, work, lwork, rwork, info)
ZHBEV_2STAGE computes the eigenvalues and, optionally, the left and/or right eigenvectors for OTHER m...
subroutine zhpevx(jobz, range, uplo, n, ap, vl, vu, il, iu, abstol, m, w, z, ldz, work, rwork, iwork, ifail, info)
ZHPEVX computes the eigenvalues and, optionally, the left and/or right eigenvectors for OTHER matrice...
subroutine zhbevx(jobz, range, uplo, n, kd, ab, ldab, q, ldq, vl, vu, il, iu, abstol, m, w, z, ldz, work, rwork, iwork, ifail, info)
ZHBEVX computes the eigenvalues and, optionally, the left and/or right eigenvectors for OTHER matrice...
subroutine zhpev(jobz, uplo, n, ap, w, z, ldz, work, rwork, info)
ZHPEV computes the eigenvalues and, optionally, the left and/or right eigenvectors for OTHER matrices
subroutine zhbevx_2stage(jobz, range, uplo, n, kd, ab, ldab, q, ldq, vl, vu, il, iu, abstol, m, w, z, ldz, work, lwork, rwork, iwork, ifail, info)
ZHBEVX_2STAGE computes the eigenvalues and, optionally, the left and/or right eigenvectors for OTHER ...
subroutine zhet21(itype, uplo, n, kband, a, lda, d, e, u, ldu, v, ldv, tau, work, rwork, result)
ZHET21
subroutine zhet22(itype, uplo, n, m, kband, a, lda, d, e, u, ldu, v, ldv, tau, work, rwork, result)
ZHET22
subroutine zdrvst2stg(nsizes, nn, ntypes, dotype, iseed, thresh, nounit, a, lda, d1, d2, d3, wa1, wa2, wa3, u, ldu, v, tau, z, work, lwork, rwork, lrwork, iwork, liwork, result, info)
ZDRVST2STG
subroutine zlatmr(m, n, dist, iseed, sym, d, mode, cond, dmax, rsign, grade, dl, model, condl, dr, moder, condr, pivtng, ipivot, kl, ku, sparse, anorm, pack, a, lda, iwork, info)
ZLATMR
subroutine zlatms(m, n, dist, iseed, sym, d, mode, cond, dmax, kl, ku, pack, a, lda, work, info)
ZLATMS
subroutine dlafts(type, m, n, imat, ntests, result, iseed, thresh, iounit, ie)
DLAFTS