ZDRGVX(3)
π ZDRGVX(3) β bestieβs LAPACK era π
okay so this is the Library Functions Manual page for ZDRGVX(3), and we are absolutely in LAPACK test-driver territory. Buckle up, queen π
πΈ NAME πΈ
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/TESTING/EIG/zdrgvx.f
β¨ SYNOPSIS β¨
π§ Functions/Subroutines
subroutine ZDRGVX (nsize, thresh, nin, nout, a, lda, b, ai, bi, alpha,
beta, vl, vr, ilo, ihi, lscale, rscale, s, dtru, dif, diftru, work,
lwork, rwork, iwork, liwork, result, bwork, info)
ZDRGVX
π¦ FUNCTION/SUBROUTINE DOCUMENTATION π¦
π subroutine ZDRGVX
subroutine ZDRGVX (integer nsize, double precision thresh, integer nin,
integer nout, complex*16, dimension( lda, * ) a, integer lda,
complex*16, dimension( lda, * ) b, complex*16, dimension( lda, * ) ai,
complex*16, dimension( lda, * ) bi, complex*16, dimension( * ) alpha,
complex*16, dimension( * ) beta, complex*16, dimension( lda, * ) vl,
complex*16, dimension( lda, * ) vr, integer ilo, integer ihi, double
precision, dimension( * ) lscale, double precision, dimension( * )
rscale, double precision, dimension( * ) s, double precision, dimension(
* ) dtru, double precision, dimension( * ) dif, double precision,
dimension( * ) diftru, complex*16, dimension( * ) work, integer lwork,
double precision, dimension( * ) rwork, integer, dimension( * ) iwork,
integer liwork, double precision, dimension( 4 ) result, logical,
dimension( * ) bwork, integer info)
ZDRGVX
π― Purpose
Bestie, this one checks the nonsymmetric generalized eigenvalue problem expert driver ZGGEVX. π
ZGGEVX computes the generalized eigenvalues, (optionally) the left and/or right eigenvectors, (optionally) computes a balancing transformation to improve the conditioning, and (optionally) reciprocal condition numbers for the eigenvalues and eigenvectors.
When ZDRGVX is called with NSIZE > 0, two types of test matrix pairs are generated by the subroutine DLATM6 and test the driver ZGGEVX. The test matrices have the known exact condition numbers for eigenvalues. For the condition numbers of the eigenvectors corresponding the first and last eigenvalues are also know βexactlyβ (see ZLATM6). For each matrix pair, the following tests will be performed and compared with the threshold THRESH.
- max over all left eigenvalue/-vector pairs
(beta/alpha,l)of
| l**H * (beta A - alpha B) | / ( ulp max( |beta A|, |alpha B| ) )
where l**H is the conjugate transpose of l.
- max over all right eigenvalue/-vector pairs
(beta/alpha,r)of
| (beta A - alpha B) r | / ( ulp max( |beta A|, |alpha B| ) )
- The condition number
S(i)of eigenvalues computed byZGGEVXdiffers less than a factorTHRESHfrom the exactS(i)(seeZLATM6). DIF(i)computed byZTGSNAdiffers less than a factor10*THRESHfrom the exact value (for the 1st and 5th vectors only).
π§ͺ Test Matrices
The original has the whole Test Matrices / ============= banner moment, and hereβs the tea:
Two kinds of test matrix pairs
(A, B) = inverse(YH) * (Da, Db) * inverse(X)
are used in the tests:
1: Da = 1+a 0 0 0 0 Db = 1 0 0 0 0
0 2+a 0 0 0 0 1 0 0 0
0 0 3+a 0 0 0 0 1 0 0
0 0 0 4+a 0 0 0 0 1 0
0 0 0 0 5+a , 0 0 0 0 1 , and
2: Da = 1 -1 0 0 0 Db = 1 0 0 0 0
1 1 0 0 0 0 1 0 0 0
0 0 1 0 0 0 0 1 0 0
0 0 0 1+a 1+b 0 0 0 1 0
0 0 0 -1-b 1+a , 0 0 0 0 1 .
In both cases the same inverse(YH) and inverse(X) are used to compute (A, B), giving the exact eigenvectors to (A,B) as (YH, X):
YH: = 1 0 -y y -y X = 1 0 -x -x x
0 1 -y y -y 0 1 x -x -x
0 0 1 0 0 0 0 1 0 0
0 0 0 1 0 0 0 0 1 0
0 0 0 0 1, 0 0 0 0 1 , where
a, b, x and y will have all values independently of each other from { sqrt(sqrt(ULP)), 0.1, 1, 10, 1/sqrt(sqrt(ULP)) }.
π Parameters π
NSIZEβINTEGER. The number of sizes of matrices to use.NSIZEmust be at least zero. If it is zero, no randomly generated matrices are tested, but any test matrices read fromNINwill be tested. If it is not zero, thenN = 5.THRESHβDOUBLE PRECISION. The source page has a lil gap here bestie π: βA test will count as[blank]if the[blank], computed as described above, exceedsTHRESH.β Then: βNote that the error is scaled to beO(1), soTHRESHshould be a reasonably small multiple of1, e.g.,10or100. In particular, it should not depend on the precision (single vs. double) or the size of the matrix. It must be at least zero.βNINβINTEGER. The FORTRAN unit number for reading in the data file of problems to solve.NOUTβINTEGER. The FORTRAN unit number for printing out error messages (e.g., if a routine returnsIINFOnot equal to0.)AβCOMPLEX*16 array, dimension (LDA, NSIZE). Used to hold the matrix whose eigenvalues are to be computed. On exit,Acontains the last matrix actually used.LDAβINTEGER. The leading dimension ofA,B,AI,BI,Ao, andBo. It must be at least1and at leastNSIZE.BβCOMPLEX*16 array, dimension (LDA, NSIZE). Used to hold the matrix whose eigenvalues are to be computed. On exit,Bcontains the last matrix actually used.AIβCOMPLEX*16 array, dimension (LDA, NSIZE). Copy ofA, modified byZGGEVX.BIβCOMPLEX*16 array, dimension (LDA, NSIZE). Copy ofB, modified byZGGEVX.ALPHAβCOMPLEX*16 array, dimension (NSIZE).BETAβCOMPLEX*16 array, dimension (NSIZE). On exit,ALPHA/BETAare the eigenvalues.VLβCOMPLEX*16 array, dimension (LDA, NSIZE).VLholds the left eigenvectors computed byZGGEVX.VRβCOMPLEX*16 array, dimension (LDA, NSIZE).VRholds the right eigenvectors computed byZGGEVX.ILOβINTEGER.IHIβINTEGER.LSCALEβDOUBLE PRECISION array, dimension (N).RSCALEβDOUBLE PRECISION array, dimension (N).SβDOUBLE PRECISION array, dimension (N).DTRUβDOUBLE PRECISION array, dimension (N).DIFβDOUBLE PRECISION array, dimension (N).DIFTRUβDOUBLE PRECISION array, dimension (N).WORKβCOMPLEX*16 array, dimension (LWORK).LWORKβINTEGER. Leading dimension ofWORK.LWORK >= 2*N*N + 2*N.RWORKβDOUBLE PRECISION array, dimension (6*N).IWORKβINTEGER array, dimension (LIWORK).LIWORKβINTEGER. Leading dimension ofIWORK.LIWORK >= N+2.RESULTβDOUBLE PRECISION array, dimension (4).BWORKβLOGICAL array, dimension (N).INFOβINTEGER.
= 0: successful exit
< 0: if INFO = -i, the i-th argument had an illegal value.
> 0: A routine returned an error code.
π Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Definition at line 293 of file zdrgvx.f.
π AUTHOR π
Generated automatically by Doxygen for LAPACK from the source code.
cute sign-off: this iconic page isLAPACKVersion 3.12.0, from/home/abui...IG/zdrgvx.f(3). Go be brilliant with your generalized eigenvalue testing, bestie π«Άπ
π¦ where this page comes from
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms