ZGET23(3)
ZGET23(3) β Library Functions Manual energy π
Ok so bestie, this is ZGET23(3), and it is literally giving βtest driver for the nonsymmetric eigenvalue problem driver CGEEVXβ realness. Buckle up, because the facts are staying exactly where they are, no cap. β¨
πΈ NAME πΈ
The NAME slot is literally this file path, bestie:
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/TESTING/EIG/zget23.f
β¨ SYNOPSIS β¨
Functions/Subroutines
subroutine ZGET23 (comp, isrt, balanc, jtype, thresh, iseed, nounit, n,
a, lda, h, w, w1, vl, ldvl, vr, ldvr, lre, ldlre, rcondv, rcndv1,
rcdvin, rconde, rcnde1, rcdein, scale, scale1, result, work, lwork,
rwork, info)
ZGET23
π¦ Function/Subroutine Documentation π¦
subroutine ZGET23 (logical comp, integer isrt, character balanc, integer
jtype, double precision thresh, integer, dimension( 4 ) iseed, integer
nounit, integer n, complex*16, dimension( lda, * ) a, integer lda,
complex*16, dimension( lda, * ) h, complex*16, dimension( * ) w,
complex*16, dimension( * ) w1, complex*16, dimension( ldvl, * ) vl,
integer ldvl, complex*16, dimension( ldvr, * ) vr, integer ldvr,
complex*16, dimension( ldlre, * ) lre, integer ldlre, double precision,
dimension( * ) rcondv, double precision, dimension( * ) rcndv1, double
precision, dimension( * ) rcdvin, double precision, dimension( * )
rconde, double precision, dimension( * ) rcnde1, double precision,
dimension( * ) rcdein, double precision, dimension( * ) scale, double
precision, dimension( * ) scale1, double precision, dimension( 11 )
result, complex*16, dimension( * ) work, integer lwork, double
precision, dimension( * ) rwork, integer info)
ZGET23
π₯ Purpose π₯
Ok so ZGET23 checks the nonsymmetric eigenvalue problem driver CGEEVX. If COMP = .FALSE., the first 8 of the following tests will be performed on the input matrix A, and also test 9 if LWORK is sufficiently large. If COMP is .TRUE., all 11 tests will be performed. Periodt. π
Hereβs the test lineup, bestie β every formula, every label, every little detail:
(1)
| A * VR - VR * W | / ( n |A| ulp )
Here VR is the matrix of unit right eigenvectors. W is a diagonal matrix with diagonal entries W(j).
(2)
| A**H * VL - VL * W**H | / ( n |A| ulp )
Here VL is the matrix of unit left eigenvectors, A**H is the conjugate transpose of A, and W is as above.
(3)
| |VR(i)| - 1 | / ulp and largest component real
VR(i) denotes the i-th column of VR.
(4)
| |VL(i)| - 1 | / ulp and largest component real
VL(i) denotes the i-th column of VL.
(5)
0 if W(full) = W(partial), 1/ulp otherwise
W(full) denotes the eigenvalues computed when VR, VL, RCONDV and RCONDE are also computed, and W(partial) denotes the eigenvalues computed when only some of VR, VL, RCONDV, and RCONDE are computed.
(6)
0 if VR(full) = VR(partial), 1/ulp otherwise
VR(full) denotes the right eigenvectors computed when VL, RCONDV and RCONDE are computed, and VR(partial) denotes the result when only some of VL and RCONDV are computed.
(7)
0 if VL(full) = VL(partial), 1/ulp otherwise
VL(full) denotes the left eigenvectors computed when VR, RCONDV and RCONDE are computed, and VL(partial) denotes the result when only some of VR and RCONDV are computed.
(8)
0 if SCALE, ILO, IHI, ABNRM (full) =
SCALE, ILO, IHI, ABNRM (partial)
1/ulp otherwise
SCALE, ILO, IHI and ABNRM describe how the matrix is balanced. (full) is when VR, VL, RCONDE and RCONDV are also computed, and (partial) is when some are not computed.
(9)
0 if RCONDV(full) = RCONDV(partial), 1/ulp otherwise
RCONDV(full) denotes the reciprocal condition numbers of the right eigenvectors computed when VR, VL and RCONDE are also computed. RCONDV(partial) denotes the reciprocal condition numbers when only some of VR, VL and RCONDE are computed.
(10)
|RCONDV - RCDVIN| / cond(RCONDV)
RCONDV is the reciprocal right eigenvector condition number computed by ZGEEVX and RCDVIN (the precomputed true value) is supplied as input. cond(RCONDV) is the condition number of RCONDV, and takes errors in computing RCONDV into account, so that the resulting quantity should be O(ULP). cond(RCONDV) is essentially given by norm(A)/RCONDE.
(11)
|RCONDE - RCDEIN| / cond(RCONDE)
RCONDE is the reciprocal eigenvalue condition number computed by ZGEEVX and RCDEIN (the precomputed true value) is supplied as input. cond(RCONDE) is the condition number of RCONDE, and takes errors in computing RCONDE into account, so that the resulting quantity should be O(ULP). cond(RCONDE) is essentially given by norm(A)/RCONDV.
π«Ά Parameters π«Ά
COMPβCOMP is LOGICAL.COMPdescribes which input tests to perform:= .FALSE.if the computed condition numbers are not to be tested againstRCDVINandRCDEIN= .TRUE.if they are to be compared
ISRTβISRT is INTEGER. IfCOMP = .TRUE.,ISRTindicates in how the eigenvalues corresponding to values inRCDVINandRCDEINare ordered:= 0means the eigenvalues are sorted by increasing real part= 1means the eigenvalues are sorted by increasing imaginary part
If COMP = .FALSE., ISRT is not referenced.
BALANCβBALANC is CHARACTER. Describes the balancing option to be tested.= 'N'for no permuting or diagonal scaling= 'P'for permuting but no diagonal scaling= 'S'for no permuting but diagonal scaling= 'B'for permuting and diagonal scaling
JTYPEβJTYPE is INTEGER. Type of input matrix. Used to label output if error occurs.THRESHβTHRESH is DOUBLE PRECISION. A test counts as failed if the error, computed as described above, exceedsTHRESH. 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.ISEEDβISEED is INTEGER array, dimension (4). IfCOMP = .FALSE., the random number generator seed used to produce matrix. IfCOMP = .TRUE.,ISEED(1) = the number of the example. Used to label output if error occurs.NOUNITβNOUNIT is INTEGER. The FORTRAN unit number for printing out error messages (e.g., if a routine returnsINFOnot equal to0.)NβN is INTEGER. The dimension ofA.Nmust be at least0.AβA is COMPLEX*16 array, dimension (LDA,N). Used to hold the matrix whose eigenvalues are to be computed.LDAβLDA is INTEGER. The leading dimension ofA, andH.LDAmust be at least1and at leastN.HβH is COMPLEX*16 array, dimension (LDA,N). Another copy of the test matrixA, modified byZGEEVX.WβW is COMPLEX*16 array, dimension (N). Contains the eigenvalues ofA.W1βW1 is COMPLEX*16 array, dimension (N). LikeW, this array contains the eigenvalues ofA, but those computed whenZGEEVXonly computes a partial eigendecomposition, i.e. not the eigenvalues and left and right eigenvectors.VLβVL is COMPLEX*16 array, dimension (LDVL,N).VLholds the computed left eigenvectors.LDVLβLDVL is INTEGER. Leading dimension ofVL. Must be at leastmax(1,N).VRβVR is COMPLEX*16 array, dimension (LDVR,N).VRholds the computed right eigenvectors.LDVRβLDVR is INTEGER. Leading dimension ofVR. Must be at leastmax(1,N).LREβLRE is COMPLEX*16 array, dimension (LDLRE,N).LREholds the computed right or left eigenvectors.LDLREβLDLRE is INTEGER. Leading dimension ofLRE. Must be at leastmax(1,N).RCONDVβRCONDV is DOUBLE PRECISION array, dimension (N).RCONDVholds the computed reciprocal condition numbers for eigenvectors.RCNDV1βRCNDV1 is DOUBLE PRECISION array, dimension (N).RCNDV1holds more computed reciprocal condition numbers for eigenvectors.RCDVINβRCDVIN is DOUBLE PRECISION array, dimension (N). WhenCOMP = .TRUE.,RCDVINholds the precomputed reciprocal condition numbers for eigenvectors to be compared withRCONDV.RCONDEβRCONDE is DOUBLE PRECISION array, dimension (N).RCONDEholds the computed reciprocal condition numbers for eigenvalues.RCNDE1βRCNDE1 is DOUBLE PRECISION array, dimension (N).RCNDE1holds more computed reciprocal condition numbers for eigenvalues.RCDEINβRCDEIN is DOUBLE PRECISION array, dimension (N). WhenCOMP = .TRUE.,RCDEINholds the precomputed reciprocal condition numbers for eigenvalues to be compared withRCONDE.
SCALE
π SCALE
SCALE is a DOUBLE PRECISION array, dimension (N) β it holds information describing balancing of the matrix. lowkey just keeps the receipts of how the balancing went, y'know? π
π SCALE1
SCALE1 is a DOUBLE PRECISION array, dimension (N) β and same deal bestie, it also holds information describing balancing of the matrix. two arrays, one job, they're giving duo energy fr fr β¨
π¦ RESULT
RESULT is a DOUBLE PRECISION array, dimension (11) β this is where the values computed by the 11 tests described above land. it's literally the scoreboard π
heads up tho π the values are currently limited to 1/ulp, to avoid overflow. so don't come for her if the numbers look capped, she's just being safe.
πΈ WORK
WORK is a COMPLEX*16 array, dimension (LWORK). that's it. that's the whole vibe. the grind space π
π LWORK
LWORK is an INTEGER β the number of entries in WORK.
okay so the tea β this one has rules:
- it must be at least
2*N - and it must be
2*N+N**2if tests 9, 10 or 11 are to be performed
so if you're running the big tests, size her up properly or it's not gonna slay. π
π§ RWORK
RWORK is a DOUBLE PRECISION array, dimension (2*N). no notes, just vibes. π«Ά
π₯ INFO
INFO is an INTEGER, and this one's the group chat update on how everything went:
- If
0, successful exit. we ate. π β¨ - If
<0, input parameter-INFOhad an incorrect value. not me messing up an argument π - If
>0,ZGEEVXreturned an error code, and the absolute value of that code is what you get back. so the number you see is the magnitude of the oopsie π
π Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition at line 363 of file zget23.f.
π Author
Generated automatically by Doxygen for LAPACK from the source code. (yes bestie, a robot wrote the docs β she's iconic like that π€β¨)
okay that's the whole page, we made it π the source is LAPACK Version 3.12.0, and the header path situation is that little /home/abui...IG/zget23.f(3) number β dated and filed under zget23.f(3), exactly as the original footer says. mwah, go forth and test your matrices responsibly ππ¦πΈ
π¦ 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