374 SUBROUTINE zdrvsg2stg( NSIZES, NN, NTYPES, DOTYPE, ISEED, THRESH,
375 $ NOUNIT, A, LDA, B, LDB, D, D2, Z, LDZ, AB,
376 $ BB, AP, BP, WORK, NWORK, RWORK, LRWORK,
377 $ IWORK, LIWORK, RESULT, INFO )
387 INTEGER INFO, LDA, LDB, LDZ, LIWORK, LRWORK, NOUNIT,
388 $ nsizes, ntypes, nwork
389 DOUBLE PRECISION THRESH
393 INTEGER ISEED( 4 ), IWORK( * ), NN( * )
394 DOUBLE PRECISION D( * ), D2( * ), RESULT( * ), RWORK( * )
395 COMPLEX*16 A( lda, * ), AB( lda, * ), AP( * ),
396 $ b( ldb, * ), bb( ldb, * ), bp( * ), work( * ),
403 DOUBLE PRECISION ZERO, ONE, TEN
404 parameter( zero = 0.0d+0, one = 1.0d+0, ten = 10.0d+0 )
405 COMPLEX*16 CZERO, CONE
406 parameter( czero = ( 0.0d+0, 0.0d+0 ),
407 $ cone = ( 1.0d+0, 0.0d+0 ) )
409 parameter( maxtyp = 21 )
414 INTEGER I, IBTYPE, IBUPLO, IINFO, IJ, IL, IMODE, ITEMP,
415 $ itype, iu, j, jcol, jsize, jtype, ka, ka9, kb,
416 $ kb9, m, mtypes, n, nerrs, nmats, nmax, ntest,
418 DOUBLE PRECISION ABSTOL, ANINV, ANORM, COND, OVFL, RTOVFL,
419 $ rtunfl, ulp, ulpinv, unfl, vl, vu, temp1, temp2
422 INTEGER IDUMMA( 1 ), IOLDSD( 4 ), ISEED2( 4 ),
423 $ kmagn( maxtyp ), kmode( maxtyp ),
428 DOUBLE PRECISION DLAMCH, DLARND
429 EXTERNAL lsame, dlamch, dlarnd
438 INTRINSIC abs, dble, max, min, sqrt
441 DATA ktype / 1, 2, 5*4, 5*5, 3*8, 6*9 /
442 DATA kmagn / 2*1, 1, 1, 1, 2, 3, 1, 1, 1, 2, 3, 1,
444 DATA kmode / 2*0, 4, 3, 1, 4, 4, 4, 3, 1, 4, 4, 0,
457 nmax = max( nmax, nn( j ) )
464 IF( nsizes.LT.0 )
THEN 466 ELSE IF( badnn )
THEN 468 ELSE IF( ntypes.LT.0 )
THEN 470 ELSE IF( lda.LE.1 .OR. lda.LT.nmax )
THEN 472 ELSE IF( ldz.LE.1 .OR. ldz.LT.nmax )
THEN 474 ELSE IF( 2*max( nmax, 2 )**2.GT.nwork )
THEN 476 ELSE IF( 2*max( nmax, 2 )**2.GT.lrwork )
THEN 478 ELSE IF( 2*max( nmax, 2 )**2.GT.liwork )
THEN 483 CALL xerbla(
'ZDRVSG2STG', -info )
489 IF( nsizes.EQ.0 .OR. ntypes.EQ.0 )
494 unfl = dlamch(
'Safe minimum' )
495 ovfl = dlamch(
'Overflow' )
497 ulp = dlamch(
'Epsilon' )*dlamch(
'Base' )
499 rtunfl = sqrt( unfl )
500 rtovfl = sqrt( ovfl )
503 iseed2( i ) = iseed( i )
511 DO 650 jsize = 1, nsizes
513 aninv = one / dble( max( 1, n ) )
515 IF( nsizes.NE.1 )
THEN 516 mtypes = min( maxtyp, ntypes )
518 mtypes = min( maxtyp+1, ntypes )
523 DO 640 jtype = 1, mtypes
524 IF( .NOT.dotype( jtype ) )
530 ioldsd( j ) = iseed( j )
548 IF( mtypes.GT.maxtyp )
551 itype = ktype( jtype )
552 imode = kmode( jtype )
556 GO TO ( 40, 50, 60 )kmagn( jtype )
563 anorm = ( rtovfl*ulp )*aninv
567 anorm = rtunfl*n*ulpinv
577 IF( itype.EQ.1 )
THEN 583 CALL zlaset(
'Full', lda, n, czero, czero, a, lda )
585 ELSE IF( itype.EQ.2 )
THEN 591 CALL zlaset(
'Full', lda, n, czero, czero, a, lda )
593 a( jcol, jcol ) = anorm
596 ELSE IF( itype.EQ.4 )
THEN 602 CALL zlatms( n, n,
'S', iseed,
'H', rwork, imode, cond,
603 $ anorm, 0, 0,
'N', a, lda, work, iinfo )
605 ELSE IF( itype.EQ.5 )
THEN 611 CALL zlatms( n, n,
'S', iseed,
'H', rwork, imode, cond,
612 $ anorm, n, n,
'N', a, lda, work, iinfo )
614 ELSE IF( itype.EQ.7 )
THEN 620 CALL zlatmr( n, n,
'S', iseed,
'H', work, 6, one, cone,
621 $
'T',
'N', work( n+1 ), 1, one,
622 $ work( 2*n+1 ), 1, one,
'N', idumma, 0, 0,
623 $ zero, anorm,
'NO', a, lda, iwork, iinfo )
625 ELSE IF( itype.EQ.8 )
THEN 631 CALL zlatmr( n, n,
'S', iseed,
'H', work, 6, one, cone,
632 $
'T',
'N', work( n+1 ), 1, one,
633 $ work( 2*n+1 ), 1, one,
'N', idumma, n, n,
634 $ zero, anorm,
'NO', a, lda, iwork, iinfo )
636 ELSE IF( itype.EQ.9 )
THEN 650 IF( kb9.GT.ka9 )
THEN 654 ka = max( 0, min( n-1, ka9 ) )
655 kb = max( 0, min( n-1, kb9 ) )
656 CALL zlatms( n, n,
'S', iseed,
'H', rwork, imode, cond,
657 $ anorm, ka, ka,
'N', a, lda, work, iinfo )
664 IF( iinfo.NE.0 )
THEN 665 WRITE( nounit, fmt = 9999 )
'Generator', iinfo, n, jtype,
678 il = 1 + int( ( n-1 )*dlarnd( 1, iseed2 ) )
679 iu = 1 + int( ( n-1 )*dlarnd( 1, iseed2 ) )
708 CALL zlatms( n, n,
'U', iseed,
'P', rwork, 5, ten,
709 $ one, kb, kb, uplo, b, ldb, work( n+1 ),
716 CALL zlacpy(
' ', n, n, a, lda, z, ldz )
717 CALL zlacpy( uplo, n, n, b, ldb, bb, ldb )
719 CALL zhegv( ibtype,
'V', uplo, n, z, ldz, bb, ldb, d,
720 $ work, nwork, rwork, iinfo )
721 IF( iinfo.NE.0 )
THEN 722 WRITE( nounit, fmt = 9999 )
'ZHEGV(V,' // uplo //
723 $
')', iinfo, n, jtype, ioldsd
725 IF( iinfo.LT.0 )
THEN 728 result( ntest ) = ulpinv
735 CALL zsgt01( ibtype, uplo, n, n, a, lda, b, ldb, z,
736 $ ldz, d, work, rwork, result( ntest ) )
742 CALL zlacpy(
' ', n, n, a, lda, z, ldz )
743 CALL zlacpy( uplo, n, n, b, ldb, bb, ldb )
746 $ bb, ldb, d2, work, nwork, rwork,
748 IF( iinfo.NE.0 )
THEN 749 WRITE( nounit, fmt = 9999 )
750 $
'ZHEGV_2STAGE(V,' // uplo //
751 $
')', iinfo, n, jtype, ioldsd
753 IF( iinfo.LT.0 )
THEN 756 result( ntest ) = ulpinv
773 temp1 = max( temp1, abs( d( j ) ),
775 temp2 = max( temp2, abs( d( j )-d2( j ) ) )
778 result( ntest ) = temp2 /
779 $ max( unfl, ulp*max( temp1, temp2 ) )
785 CALL zlacpy(
' ', n, n, a, lda, z, ldz )
786 CALL zlacpy( uplo, n, n, b, ldb, bb, ldb )
788 CALL zhegvd( ibtype,
'V', uplo, n, z, ldz, bb, ldb, d,
789 $ work, nwork, rwork, lrwork, iwork,
791 IF( iinfo.NE.0 )
THEN 792 WRITE( nounit, fmt = 9999 )
'ZHEGVD(V,' // uplo //
793 $
')', iinfo, n, jtype, ioldsd
795 IF( iinfo.LT.0 )
THEN 798 result( ntest ) = ulpinv
805 CALL zsgt01( ibtype, uplo, n, n, a, lda, b, ldb, z,
806 $ ldz, d, work, rwork, result( ntest ) )
812 CALL zlacpy(
' ', n, n, a, lda, ab, lda )
813 CALL zlacpy( uplo, n, n, b, ldb, bb, ldb )
815 CALL zhegvx( ibtype,
'V',
'A', uplo, n, ab, lda, bb,
816 $ ldb, vl, vu, il, iu, abstol, m, d, z,
817 $ ldz, work, nwork, rwork, iwork( n+1 ),
819 IF( iinfo.NE.0 )
THEN 820 WRITE( nounit, fmt = 9999 )
'ZHEGVX(V,A' // uplo //
821 $
')', iinfo, n, jtype, ioldsd
823 IF( iinfo.LT.0 )
THEN 826 result( ntest ) = ulpinv
833 CALL zsgt01( ibtype, uplo, n, n, a, lda, b, ldb, z,
834 $ ldz, d, work, rwork, result( ntest ) )
838 CALL zlacpy(
' ', n, n, a, lda, ab, lda )
839 CALL zlacpy( uplo, n, n, b, ldb, bb, ldb )
848 CALL zhegvx( ibtype,
'V',
'V', uplo, n, ab, lda, bb,
849 $ ldb, vl, vu, il, iu, abstol, m, d, z,
850 $ ldz, work, nwork, rwork, iwork( n+1 ),
852 IF( iinfo.NE.0 )
THEN 853 WRITE( nounit, fmt = 9999 )
'ZHEGVX(V,V,' //
854 $ uplo //
')', iinfo, n, jtype, ioldsd
856 IF( iinfo.LT.0 )
THEN 859 result( ntest ) = ulpinv
866 CALL zsgt01( ibtype, uplo, n, m, a, lda, b, ldb, z,
867 $ ldz, d, work, rwork, result( ntest ) )
871 CALL zlacpy(
' ', n, n, a, lda, ab, lda )
872 CALL zlacpy( uplo, n, n, b, ldb, bb, ldb )
874 CALL zhegvx( ibtype,
'V',
'I', uplo, n, ab, lda, bb,
875 $ ldb, vl, vu, il, iu, abstol, m, d, z,
876 $ ldz, work, nwork, rwork, iwork( n+1 ),
878 IF( iinfo.NE.0 )
THEN 879 WRITE( nounit, fmt = 9999 )
'ZHEGVX(V,I,' //
880 $ uplo //
')', iinfo, n, jtype, ioldsd
882 IF( iinfo.LT.0 )
THEN 885 result( ntest ) = ulpinv
892 CALL zsgt01( ibtype, uplo, n, m, a, lda, b, ldb, z,
893 $ ldz, d, work, rwork, result( ntest ) )
903 IF( lsame( uplo,
'U' ) )
THEN 923 CALL zhpgv( ibtype,
'V', uplo, n, ap, bp, d, z, ldz,
924 $ work, rwork, iinfo )
925 IF( iinfo.NE.0 )
THEN 926 WRITE( nounit, fmt = 9999 )
'ZHPGV(V,' // uplo //
927 $
')', iinfo, n, jtype, ioldsd
929 IF( iinfo.LT.0 )
THEN 932 result( ntest ) = ulpinv
939 CALL zsgt01( ibtype, uplo, n, n, a, lda, b, ldb, z,
940 $ ldz, d, work, rwork, result( ntest ) )
948 IF( lsame( uplo,
'U' ) )
THEN 968 CALL zhpgvd( ibtype,
'V', uplo, n, ap, bp, d, z, ldz,
969 $ work, nwork, rwork, lrwork, iwork,
971 IF( iinfo.NE.0 )
THEN 972 WRITE( nounit, fmt = 9999 )
'ZHPGVD(V,' // uplo //
973 $
')', iinfo, n, jtype, ioldsd
975 IF( iinfo.LT.0 )
THEN 978 result( ntest ) = ulpinv
985 CALL zsgt01( ibtype, uplo, n, n, a, lda, b, ldb, z,
986 $ ldz, d, work, rwork, result( ntest ) )
994 IF( lsame( uplo,
'U' ) )
THEN 1007 ap( ij ) = a( i, j )
1008 bp( ij ) = b( i, j )
1014 CALL zhpgvx( ibtype,
'V',
'A', uplo, n, ap, bp, vl,
1015 $ vu, il, iu, abstol, m, d, z, ldz, work,
1016 $ rwork, iwork( n+1 ), iwork, info )
1017 IF( iinfo.NE.0 )
THEN 1018 WRITE( nounit, fmt = 9999 )
'ZHPGVX(V,A' // uplo //
1019 $
')', iinfo, n, jtype, ioldsd
1021 IF( iinfo.LT.0 )
THEN 1024 result( ntest ) = ulpinv
1031 CALL zsgt01( ibtype, uplo, n, n, a, lda, b, ldb, z,
1032 $ ldz, d, work, rwork, result( ntest ) )
1038 IF( lsame( uplo,
'U' ) )
THEN 1042 ap( ij ) = a( i, j )
1043 bp( ij ) = b( i, j )
1051 ap( ij ) = a( i, j )
1052 bp( ij ) = b( i, j )
1060 CALL zhpgvx( ibtype,
'V',
'V', uplo, n, ap, bp, vl,
1061 $ vu, il, iu, abstol, m, d, z, ldz, work,
1062 $ rwork, iwork( n+1 ), iwork, info )
1063 IF( iinfo.NE.0 )
THEN 1064 WRITE( nounit, fmt = 9999 )
'ZHPGVX(V,V' // uplo //
1065 $
')', iinfo, n, jtype, ioldsd
1067 IF( iinfo.LT.0 )
THEN 1070 result( ntest ) = ulpinv
1077 CALL zsgt01( ibtype, uplo, n, m, a, lda, b, ldb, z,
1078 $ ldz, d, work, rwork, result( ntest ) )
1084 IF( lsame( uplo,
'U' ) )
THEN 1088 ap( ij ) = a( i, j )
1089 bp( ij ) = b( i, j )
1097 ap( ij ) = a( i, j )
1098 bp( ij ) = b( i, j )
1104 CALL zhpgvx( ibtype,
'V',
'I', uplo, n, ap, bp, vl,
1105 $ vu, il, iu, abstol, m, d, z, ldz, work,
1106 $ rwork, iwork( n+1 ), iwork, info )
1107 IF( iinfo.NE.0 )
THEN 1108 WRITE( nounit, fmt = 9999 )
'ZHPGVX(V,I' // uplo //
1109 $
')', iinfo, n, jtype, ioldsd
1111 IF( iinfo.LT.0 )
THEN 1114 result( ntest ) = ulpinv
1121 CALL zsgt01( ibtype, uplo, n, m, a, lda, b, ldb, z,
1122 $ ldz, d, work, rwork, result( ntest ) )
1126 IF( ibtype.EQ.1 )
THEN 1134 IF( lsame( uplo,
'U' ) )
THEN 1136 DO 320 i = max( 1, j-ka ), j
1137 ab( ka+1+i-j, j ) = a( i, j )
1139 DO 330 i = max( 1, j-kb ), j
1140 bb( kb+1+i-j, j ) = b( i, j )
1145 DO 350 i = j, min( n, j+ka )
1146 ab( 1+i-j, j ) = a( i, j )
1148 DO 360 i = j, min( n, j+kb )
1149 bb( 1+i-j, j ) = b( i, j )
1154 CALL zhbgv(
'V', uplo, n, ka, kb, ab, lda, bb, ldb,
1155 $ d, z, ldz, work, rwork, iinfo )
1156 IF( iinfo.NE.0 )
THEN 1157 WRITE( nounit, fmt = 9999 )
'ZHBGV(V,' //
1158 $ uplo //
')', iinfo, n, jtype, ioldsd
1160 IF( iinfo.LT.0 )
THEN 1163 result( ntest ) = ulpinv
1170 CALL zsgt01( ibtype, uplo, n, n, a, lda, b, ldb, z,
1171 $ ldz, d, work, rwork, result( ntest ) )
1179 IF( lsame( uplo,
'U' ) )
THEN 1181 DO 380 i = max( 1, j-ka ), j
1182 ab( ka+1+i-j, j ) = a( i, j )
1184 DO 390 i = max( 1, j-kb ), j
1185 bb( kb+1+i-j, j ) = b( i, j )
1190 DO 410 i = j, min( n, j+ka )
1191 ab( 1+i-j, j ) = a( i, j )
1193 DO 420 i = j, min( n, j+kb )
1194 bb( 1+i-j, j ) = b( i, j )
1199 CALL zhbgvd(
'V', uplo, n, ka, kb, ab, lda, bb,
1200 $ ldb, d, z, ldz, work, nwork, rwork,
1201 $ lrwork, iwork, liwork, iinfo )
1202 IF( iinfo.NE.0 )
THEN 1203 WRITE( nounit, fmt = 9999 )
'ZHBGVD(V,' //
1204 $ uplo //
')', iinfo, n, jtype, ioldsd
1206 IF( iinfo.LT.0 )
THEN 1209 result( ntest ) = ulpinv
1216 CALL zsgt01( ibtype, uplo, n, n, a, lda, b, ldb, z,
1217 $ ldz, d, work, rwork, result( ntest ) )
1225 IF( lsame( uplo,
'U' ) )
THEN 1227 DO 440 i = max( 1, j-ka ), j
1228 ab( ka+1+i-j, j ) = a( i, j )
1230 DO 450 i = max( 1, j-kb ), j
1231 bb( kb+1+i-j, j ) = b( i, j )
1236 DO 470 i = j, min( n, j+ka )
1237 ab( 1+i-j, j ) = a( i, j )
1239 DO 480 i = j, min( n, j+kb )
1240 bb( 1+i-j, j ) = b( i, j )
1245 CALL zhbgvx(
'V',
'A', uplo, n, ka, kb, ab, lda,
1246 $ bb, ldb, bp, max( 1, n ), vl, vu, il,
1247 $ iu, abstol, m, d, z, ldz, work, rwork,
1248 $ iwork( n+1 ), iwork, iinfo )
1249 IF( iinfo.NE.0 )
THEN 1250 WRITE( nounit, fmt = 9999 )
'ZHBGVX(V,A' //
1251 $ uplo //
')', iinfo, n, jtype, ioldsd
1253 IF( iinfo.LT.0 )
THEN 1256 result( ntest ) = ulpinv
1263 CALL zsgt01( ibtype, uplo, n, n, a, lda, b, ldb, z,
1264 $ ldz, d, work, rwork, result( ntest ) )
1270 IF( lsame( uplo,
'U' ) )
THEN 1272 DO 500 i = max( 1, j-ka ), j
1273 ab( ka+1+i-j, j ) = a( i, j )
1275 DO 510 i = max( 1, j-kb ), j
1276 bb( kb+1+i-j, j ) = b( i, j )
1281 DO 530 i = j, min( n, j+ka )
1282 ab( 1+i-j, j ) = a( i, j )
1284 DO 540 i = j, min( n, j+kb )
1285 bb( 1+i-j, j ) = b( i, j )
1292 CALL zhbgvx(
'V',
'V', uplo, n, ka, kb, ab, lda,
1293 $ bb, ldb, bp, max( 1, n ), vl, vu, il,
1294 $ iu, abstol, m, d, z, ldz, work, rwork,
1295 $ iwork( n+1 ), iwork, iinfo )
1296 IF( iinfo.NE.0 )
THEN 1297 WRITE( nounit, fmt = 9999 )
'ZHBGVX(V,V' //
1298 $ uplo //
')', iinfo, n, jtype, ioldsd
1300 IF( iinfo.LT.0 )
THEN 1303 result( ntest ) = ulpinv
1310 CALL zsgt01( ibtype, uplo, n, m, a, lda, b, ldb, z,
1311 $ ldz, d, work, rwork, result( ntest ) )
1317 IF( lsame( uplo,
'U' ) )
THEN 1319 DO 560 i = max( 1, j-ka ), j
1320 ab( ka+1+i-j, j ) = a( i, j )
1322 DO 570 i = max( 1, j-kb ), j
1323 bb( kb+1+i-j, j ) = b( i, j )
1328 DO 590 i = j, min( n, j+ka )
1329 ab( 1+i-j, j ) = a( i, j )
1331 DO 600 i = j, min( n, j+kb )
1332 bb( 1+i-j, j ) = b( i, j )
1337 CALL zhbgvx(
'V',
'I', uplo, n, ka, kb, ab, lda,
1338 $ bb, ldb, bp, max( 1, n ), vl, vu, il,
1339 $ iu, abstol, m, d, z, ldz, work, rwork,
1340 $ iwork( n+1 ), iwork, iinfo )
1341 IF( iinfo.NE.0 )
THEN 1342 WRITE( nounit, fmt = 9999 )
'ZHBGVX(V,I' //
1343 $ uplo //
')', iinfo, n, jtype, ioldsd
1345 IF( iinfo.LT.0 )
THEN 1348 result( ntest ) = ulpinv
1355 CALL zsgt01( ibtype, uplo, n, m, a, lda, b, ldb, z,
1356 $ ldz, d, work, rwork, result( ntest ) )
1365 ntestt = ntestt + ntest
1366 CALL dlafts(
'ZSG', n, n, jtype, ntest, result, ioldsd,
1367 $ thresh, nounit, nerrs )
1373 CALL dlasum(
'ZSG', nounit, nerrs, ntestt )
1377 9999
FORMAT(
' ZDRVSG2STG: ', a,
' returned INFO=', i6,
'.', / 9x,
1378 $
'N=', i6,
', JTYPE=', i6,
', ISEED=(', 3( i5,
',' ), i5,
')' )
subroutine zhbgvd(JOBZ, UPLO, N, KA, KB, AB, LDAB, BB, LDBB, W, Z, LDZ, WORK, LWORK, RWORK, LRWORK, IWORK, LIWORK, INFO)
ZHBGVD
subroutine zhpgvx(ITYPE, JOBZ, RANGE, UPLO, N, AP, BP, VL, VU, IL, IU, ABSTOL, M, W, Z, LDZ, WORK, RWORK, IWORK, IFAIL, INFO)
ZHPGVX
subroutine zhpgvd(ITYPE, JOBZ, UPLO, N, AP, BP, W, Z, LDZ, WORK, LWORK, RWORK, LRWORK, IWORK, LIWORK, INFO)
ZHPGVD
subroutine zhegvx(ITYPE, JOBZ, RANGE, UPLO, N, A, LDA, B, LDB, VL, VU, IL, IU, ABSTOL, M, W, Z, LDZ, WORK, LWORK, RWORK, IWORK, IFAIL, INFO)
ZHEGVX
subroutine zdrvsg2stg(NSIZES, NN, NTYPES, DOTYPE, ISEED, THRESH, NOUNIT, A, LDA, B, LDB, D, D2, Z, LDZ, AB, BB, AP, BP, WORK, NWORK, RWORK, LRWORK, IWORK, LIWORK, RESULT, INFO)
ZDRVSG2STG
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 zhbgvx(JOBZ, RANGE, UPLO, N, KA, KB, AB, LDAB, BB, LDBB, Q, LDQ, VL, VU, IL, IU, ABSTOL, M, W, Z, LDZ, WORK, RWORK, IWORK, IFAIL, INFO)
ZHBGVX
subroutine zlacpy(UPLO, M, N, A, LDA, B, LDB)
ZLACPY copies all or part of one two-dimensional array to another.
subroutine zhpgv(ITYPE, JOBZ, UPLO, N, AP, BP, W, Z, LDZ, WORK, RWORK, INFO)
ZHPGV
subroutine zhegvd(ITYPE, JOBZ, UPLO, N, A, LDA, B, LDB, W, WORK, LWORK, RWORK, LRWORK, IWORK, LIWORK, INFO)
ZHEGVD
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine zlatms(M, N, DIST, ISEED, SYM, D, MODE, COND, DMAX, KL, KU, PACK, A, LDA, WORK, INFO)
ZLATMS
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 dlabad(SMALL, LARGE)
DLABAD
subroutine dlasum(TYPE, IOUNIT, IE, NRUN)
DLASUM
subroutine zhegv_2stage(ITYPE, JOBZ, UPLO, N, A, LDA, B, LDB, W, WORK, LWORK, RWORK, INFO)
ZHEGV_2STAGE
subroutine zhbgv(JOBZ, UPLO, N, KA, KB, AB, LDAB, BB, LDBB, W, Z, LDZ, WORK, RWORK, INFO)
ZHBGV
subroutine zsgt01(ITYPE, UPLO, N, M, A, LDA, B, LDB, Z, LDZ, D, WORK, RWORK, RESULT)
ZSGT01
subroutine dlafts(TYPE, M, N, IMAT, NTESTS, RESULT, ISEED, THRESH, IOUNIT, IE)
DLAFTS
subroutine zhegv(ITYPE, JOBZ, UPLO, N, A, LDA, B, LDB, W, WORK, LWORK, RWORK, INFO)
ZHEGV