374 SUBROUTINE cdrvsg2stg( 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
393 INTEGER ISEED( 4 ), IWORK( * ), NN( * )
394 REAL D( * ), D2( * ), RESULT( * ), RWORK( * )
395 COMPLEX A( lda, * ), AB( lda, * ), AP( * ),
396 $ b( ldb, * ), bb( ldb, * ), bp( * ), work( * ),
404 parameter( zero = 0.0e+0, one = 1.0e+0, ten = 10.0e+0 )
406 parameter( czero = ( 0.0e+0, 0.0e+0 ),
407 $ cone = ( 1.0e+0, 0.0e+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 REAL 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 ),
429 EXTERNAL lsame, slamch, slarnd
438 INTRINSIC abs,
REAL, 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(
'CDRVSG2STG', -info )
489 IF( nsizes.EQ.0 .OR. ntypes.EQ.0 )
494 unfl = slamch(
'Safe minimum' )
495 ovfl = slamch(
'Overflow' )
497 ulp = slamch(
'Epsilon' )*slamch(
'Base' )
499 rtunfl = sqrt( unfl )
500 rtovfl = sqrt( ovfl )
503 iseed2( i ) = iseed( i )
511 DO 650 jsize = 1, nsizes
513 aninv = one /
REAL( 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 claset(
'Full', lda, n, czero, czero, a, lda )
585 ELSE IF( itype.EQ.2 )
THEN 591 CALL claset(
'Full', lda, n, czero, czero, a, lda )
593 a( jcol, jcol ) = anorm
596 ELSE IF( itype.EQ.4 )
THEN 602 CALL clatms( 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 clatms( 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 clatmr( 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 clatmr( 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 clatms( 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 )*slarnd( 1, iseed2 ) )
679 iu = 1 + int( ( n-1 )*slarnd( 1, iseed2 ) )
708 CALL clatms( n, n,
'U', iseed,
'P', rwork, 5, ten,
709 $ one, kb, kb, uplo, b, ldb, work( n+1 ),
716 CALL clacpy(
' ', n, n, a, lda, z, ldz )
717 CALL clacpy( uplo, n, n, b, ldb, bb, ldb )
719 CALL chegv( 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 )
'CHEGV(V,' // uplo //
723 $
')', iinfo, n, jtype, ioldsd
725 IF( iinfo.LT.0 )
THEN 728 result( ntest ) = ulpinv
735 CALL csgt01( ibtype, uplo, n, n, a, lda, b, ldb, z,
736 $ ldz, d, work, rwork, result( ntest ) )
742 CALL clacpy(
' ', n, n, a, lda, z, ldz )
743 CALL clacpy( 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 $
'CHEGV_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 clacpy(
' ', n, n, a, lda, z, ldz )
786 CALL clacpy( uplo, n, n, b, ldb, bb, ldb )
788 CALL chegvd( 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 )
'CHEGVD(V,' // uplo //
793 $
')', iinfo, n, jtype, ioldsd
795 IF( iinfo.LT.0 )
THEN 798 result( ntest ) = ulpinv
805 CALL csgt01( ibtype, uplo, n, n, a, lda, b, ldb, z,
806 $ ldz, d, work, rwork, result( ntest ) )
812 CALL clacpy(
' ', n, n, a, lda, ab, lda )
813 CALL clacpy( uplo, n, n, b, ldb, bb, ldb )
815 CALL chegvx( 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 )
'CHEGVX(V,A' // uplo //
821 $
')', iinfo, n, jtype, ioldsd
823 IF( iinfo.LT.0 )
THEN 826 result( ntest ) = ulpinv
833 CALL csgt01( ibtype, uplo, n, n, a, lda, b, ldb, z,
834 $ ldz, d, work, rwork, result( ntest ) )
838 CALL clacpy(
' ', n, n, a, lda, ab, lda )
839 CALL clacpy( uplo, n, n, b, ldb, bb, ldb )
848 CALL chegvx( 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 )
'CHEGVX(V,V,' //
854 $ uplo //
')', iinfo, n, jtype, ioldsd
856 IF( iinfo.LT.0 )
THEN 859 result( ntest ) = ulpinv
866 CALL csgt01( ibtype, uplo, n, m, a, lda, b, ldb, z,
867 $ ldz, d, work, rwork, result( ntest ) )
871 CALL clacpy(
' ', n, n, a, lda, ab, lda )
872 CALL clacpy( uplo, n, n, b, ldb, bb, ldb )
874 CALL chegvx( 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 )
'CHEGVX(V,I,' //
880 $ uplo //
')', iinfo, n, jtype, ioldsd
882 IF( iinfo.LT.0 )
THEN 885 result( ntest ) = ulpinv
892 CALL csgt01( ibtype, uplo, n, m, a, lda, b, ldb, z,
893 $ ldz, d, work, rwork, result( ntest ) )
903 IF( lsame( uplo,
'U' ) )
THEN 923 CALL chpgv( ibtype,
'V', uplo, n, ap, bp, d, z, ldz,
924 $ work, rwork, iinfo )
925 IF( iinfo.NE.0 )
THEN 926 WRITE( nounit, fmt = 9999 )
'CHPGV(V,' // uplo //
927 $
')', iinfo, n, jtype, ioldsd
929 IF( iinfo.LT.0 )
THEN 932 result( ntest ) = ulpinv
939 CALL csgt01( ibtype, uplo, n, n, a, lda, b, ldb, z,
940 $ ldz, d, work, rwork, result( ntest ) )
948 IF( lsame( uplo,
'U' ) )
THEN 968 CALL chpgvd( 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 )
'CHPGVD(V,' // uplo //
973 $
')', iinfo, n, jtype, ioldsd
975 IF( iinfo.LT.0 )
THEN 978 result( ntest ) = ulpinv
985 CALL csgt01( 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 chpgvx( 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 )
'CHPGVX(V,A' // uplo //
1019 $
')', iinfo, n, jtype, ioldsd
1021 IF( iinfo.LT.0 )
THEN 1024 result( ntest ) = ulpinv
1031 CALL csgt01( 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 chpgvx( 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 )
'CHPGVX(V,V' // uplo //
1065 $
')', iinfo, n, jtype, ioldsd
1067 IF( iinfo.LT.0 )
THEN 1070 result( ntest ) = ulpinv
1077 CALL csgt01( 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 chpgvx( 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 )
'CHPGVX(V,I' // uplo //
1109 $
')', iinfo, n, jtype, ioldsd
1111 IF( iinfo.LT.0 )
THEN 1114 result( ntest ) = ulpinv
1121 CALL csgt01( 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 chbgv(
'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 )
'CHBGV(V,' //
1158 $ uplo //
')', iinfo, n, jtype, ioldsd
1160 IF( iinfo.LT.0 )
THEN 1163 result( ntest ) = ulpinv
1170 CALL csgt01( 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 chbgvd(
'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 )
'CHBGVD(V,' //
1204 $ uplo //
')', iinfo, n, jtype, ioldsd
1206 IF( iinfo.LT.0 )
THEN 1209 result( ntest ) = ulpinv
1216 CALL csgt01( 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 chbgvx(
'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 )
'CHBGVX(V,A' //
1251 $ uplo //
')', iinfo, n, jtype, ioldsd
1253 IF( iinfo.LT.0 )
THEN 1256 result( ntest ) = ulpinv
1263 CALL csgt01( 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 chbgvx(
'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 )
'CHBGVX(V,V' //
1298 $ uplo //
')', iinfo, n, jtype, ioldsd
1300 IF( iinfo.LT.0 )
THEN 1303 result( ntest ) = ulpinv
1310 CALL csgt01( 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 chbgvx(
'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 )
'CHBGVX(V,I' //
1343 $ uplo //
')', iinfo, n, jtype, ioldsd
1345 IF( iinfo.LT.0 )
THEN 1348 result( ntest ) = ulpinv
1355 CALL csgt01( ibtype, uplo, n, m, a, lda, b, ldb, z,
1356 $ ldz, d, work, rwork, result( ntest ) )
1365 ntestt = ntestt + ntest
1366 CALL slafts(
'CSG', n, n, jtype, ntest, result, ioldsd,
1367 $ thresh, nounit, nerrs )
1373 CALL slasum(
'CSG', nounit, nerrs, ntestt )
1377 9999
FORMAT(
' CDRVSG2STG: ', a,
' returned INFO=', i6,
'.', / 9x,
1378 $
'N=', i6,
', JTYPE=', i6,
', ISEED=(', 3( i5,
',' ), i5,
')' )
subroutine chbgv(JOBZ, UPLO, N, KA, KB, AB, LDAB, BB, LDBB, W, Z, LDZ, WORK, RWORK, INFO)
CHBGV
subroutine csgt01(ITYPE, UPLO, N, M, A, LDA, B, LDB, Z, LDZ, D, WORK, RWORK, RESULT)
CSGT01
subroutine chpgv(ITYPE, JOBZ, UPLO, N, AP, BP, W, Z, LDZ, WORK, RWORK, INFO)
CHPGV
subroutine chbgvx(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)
CHBGVX
subroutine clatmr(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)
CLATMR
subroutine claset(UPLO, M, N, ALPHA, BETA, A, LDA)
CLASET initializes the off-diagonal elements and the diagonal elements of a matrix to given values...
subroutine chpgvx(ITYPE, JOBZ, RANGE, UPLO, N, AP, BP, VL, VU, IL, IU, ABSTOL, M, W, Z, LDZ, WORK, RWORK, IWORK, IFAIL, INFO)
CHPGVX
subroutine slafts(TYPE, M, N, IMAT, NTESTS, RESULT, ISEED, THRESH, IOUNIT, IE)
SLAFTS
subroutine chegvd(ITYPE, JOBZ, UPLO, N, A, LDA, B, LDB, W, WORK, LWORK, RWORK, LRWORK, IWORK, LIWORK, INFO)
CHEGVD
subroutine cdrvsg2stg(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)
CDRVSG2STG
subroutine chpgvd(ITYPE, JOBZ, UPLO, N, AP, BP, W, Z, LDZ, WORK, LWORK, RWORK, LRWORK, IWORK, LIWORK, INFO)
CHPGVD
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine clacpy(UPLO, M, N, A, LDA, B, LDB)
CLACPY copies all or part of one two-dimensional array to another.
subroutine slabad(SMALL, LARGE)
SLABAD
subroutine clatms(M, N, DIST, ISEED, SYM, D, MODE, COND, DMAX, KL, KU, PACK, A, LDA, WORK, INFO)
CLATMS
subroutine chbgvd(JOBZ, UPLO, N, KA, KB, AB, LDAB, BB, LDBB, W, Z, LDZ, WORK, LWORK, RWORK, LRWORK, IWORK, LIWORK, INFO)
CHBGVD
subroutine chegv_2stage(ITYPE, JOBZ, UPLO, N, A, LDA, B, LDB, W, WORK, LWORK, RWORK, INFO)
CHEGV_2STAGE
subroutine chegvx(ITYPE, JOBZ, RANGE, UPLO, N, A, LDA, B, LDB, VL, VU, IL, IU, ABSTOL, M, W, Z, LDZ, WORK, LWORK, RWORK, IWORK, IFAIL, INFO)
CHEGVX
subroutine slasum(TYPE, IOUNIT, IE, NRUN)
SLASUM
subroutine chegv(ITYPE, JOBZ, UPLO, N, A, LDA, B, LDB, W, WORK, LWORK, RWORK, INFO)
CHEGV