TESTING/EIG/zdrgvx.f(3)
okay so bestie, welcome to TESTING/EIG/zdrgvx.f(3) from the Library Functions Manual β it's giving LAPACK test-driver main character energy, no cap. π
π¦
π NAME π
TESTING/EIG/zdrgvx.f β literally the page for the zdrgvx test subroutine. π
β¨ 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 (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 πΈ
ZDRGVX checks the nonsymmetric generalized eigenvalue problem expert driver ZGGEVX. slay. β¨
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 π§
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βNSIZE is 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βTHRESH is DOUBLE PRECISION. A test will count as if the , computed as described above, exceedsTHRESH. Note that the error is scaled to beO(1), soTHRESHshould be a reasonably small multiple of 1, 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βNIN is INTEGER. The FORTRAN unit number for reading in the data file of problems to solve.NOUTβNOUT is INTEGER. The FORTRAN unit number for printing out error messages (e.g., if a routine returnsIINFOnot equal to0.)AβA is 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βLDA is INTEGER. The leading dimension ofA,B,AI,BI,Ao, andBo. It must be at least1and at leastNSIZE.BβB is 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βAI is COMPLEX*16 array, dimension (LDA, NSIZE). Copy ofA, modified byZGGEVX.BIβBI is COMPLEX*16 array, dimension (LDA, NSIZE). Copy ofB, modified byZGGEVX.ALPHAβALPHA is COMPLEX*16 array, dimension (NSIZE).BETAβBETA is COMPLEX*16 array, dimension (NSIZE). On exit,ALPHA/BETAare the eigenvalues.VLβVL is COMPLEX*16 array, dimension (LDA, NSIZE).VLholds the left eigenvectors computed byZGGEVX.VRβVR is COMPLEX*16 array, dimension (LDA, NSIZE).VRholds the right eigenvectors computed byZGGEVX.ILOβILO is INTEGER.IHIβIHI is INTEGER.LSCALEβLSCALE is DOUBLE PRECISION array, dimension (N).RSCALEβRSCALE is DOUBLE PRECISION array, dimension (N).SβS is DOUBLE PRECISION array, dimension (N).DTRUβDTRU is DOUBLE PRECISION array, dimension (N).DIFβDIF is DOUBLE PRECISION array, dimension (N).DIFTRUβDIFTRU is DOUBLE PRECISION array, dimension (N).WORKβWORK is COMPLEX*16 array, dimension (LWORK).LWORKβLWORK is INTEGER. Leading dimension ofWORK.LWORK >= 2*N*N + 2*N.RWORKβRWORK is DOUBLE PRECISION array, dimension (6*N).IWORKβIWORK is INTEGER array, dimension (LIWORK).LIWORKβLIWORK is INTEGER. Leading dimension ofIWORK.LIWORK >= N+2.RESULTβRESULT is DOUBLE PRECISION array, dimension (4).BWORKβBWORK is LOGICAL array, dimension (N).INFOβINFO is INTEGER.= 0: successful exit.< 0: ifINFO = -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.
and thatβs the tea β β the footer didnβt hand us a date, but it did say LAPACK, Version 3.12.0, page TESTING/EIG/zdrgvx.f(3). bye bestie, ily! πβ¨π
π¦ where this page comes from
- arch rolling: lapack-doc 3.12.1-2 Β· custom
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms