ZLATDF(3)
π ZLATDF(3) β like, the whole entire manual page, bestie π
okay so first things first: this is a page from the LAPACK Library Functions Manual, and the file it lives in is literally
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/zlatdf.f
and it's the man page zlatdf.f(3). that's the header situation, we move π«Ά
β¨ NAME β¨
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/zlatdf.f
(yeah. that's the name. it's a whole path. iconic of Fortran, honestly π )
πΈ SYNOPSIS πΈ
Functions/Subroutines
subroutine ZLATDF (ijob, n, z, ldz, rhs, rdsum, rdscal, ipiv, jpiv)
ZLATDF takes the LU factorization of the n-by-n matrix that was computed by sgetc2 and computes a contribution to the reciprocal Dif-estimate. slay.
π Function/Subroutine Documentation π
subroutine ZLATDF (integer ijob, integer n, complex*16, dimension( ldz, * )
z, integer ldz, complex*16, dimension( * ) rhs, double precision rdsum,
double precision rdscal, integer, dimension( * ) ipiv, integer,
dimension( * ) jpiv)
so ZLATDF uses the LU factorization of the n-by-n matrix computed by sgetc2, and computes a contribution to the reciprocal Dif-estimate. that's the whole vibe of this subroutine β¨
π Purpose π
!> !> ZLATDF computes the contribution to the reciprocal Dif-estimate !> by solving for x in Z * x = b, where b is chosen such that the norm !> of x is as large as possible. It is assumed that LU decomposition !> of Z has been computed by ZGETC2. On entry RHS = f holds the !> contribution from earlier solved sub-systems, and on return RHS = x. !> !> The factorization of Z returned by ZGETC2 has the form !> Z = P * L * U * Q, where P and Q are permutation matrices. L is lower !> triangular with unit diagonal elements and U is upper triangular. !>
so bestie, we're solving Z * x = b where b is picked so the norm of x is as big as it can possibly be π it needs the LU decomposition of Z from ZGETC2, and the factorization it hands back looks like Z = P * L * U * Q β P and Q are permutation matrices, L is lower triangular with unit diagonal, U is upper triangular. periodt.
π¦ Parameters π¦
IJOBβ this is anINTEGER. the whole personality of the routine changes based on it:
!> IJOB is INTEGER !> IJOB = 2: First compute an approximative null-vector e !> of Z using ZGECON, e is normalized and solve for !> Zx = +-e - f with the sign giving the greater value of !> 2-norm(x). About 5 times as expensive as Default. !> IJOB .ne. 2: Local look ahead strategy where !> all entries of the r.h.s. b is chosen as either +1 or !> -1. Default. !>
so like: IJOB = 2 means first compute an approximative null-vector e of Z using ZGECON, normalize e, and solve for Zx = +-e - f β picking whichever sign gives the greater value of 2-norm(x). heads up though, that path is about 5 times as expensive as the default π IJOB .ne. 2 is the local look ahead strategy where all the entries of the r.h.s. b are chosen as either +1 or -1. that one's the Default.
NβINTEGER. the number of columns of the matrixZ. that's it, that's the whole job π
!> N is INTEGER !> The number of columns of the matrix Z. !>
ZβCOMPLEX*16array, dimension(LDZ, N). on entry it holds the LU part of the factorization of the n-by-n matrixZcomputed byZGETC2:Z = P * L * U * Qβ¨
!> Z is COMPLEX*16 array, dimension (LDZ, N) !> On entry, the LU part of the factorization of the n-by-n !> matrix Z computed by ZGETC2: Z = P * L * U * Q !>
LDZβINTEGER. the leading dimension of the arrayZ. and it saysLDA >= max(1, N)β yes it literally saysLDA, that's the original text, we do not edit, we do not fix, we respect the source π
!> LDZ is INTEGER !> The leading dimension of the array Z. LDA >= max(1, N). !>
RHSβCOMPLEX*16array, dimension(N). on entry it contains contributions from other subsystems; on exit it contains the solution of the subsystem, with entries according to the value ofIJOB(see above π)
!> RHS is COMPLEX*16 array, dimension (N). !> On entry, RHS contains contributions from other subsystems. !> On exit, RHS contains the solution of the subsystem with !> entries according to the value of IJOB (see above). !>
RDSUMβDOUBLE PRECISION. on entry, the sum of squares of computed contributions to the Dif-estimate under computation byZTGSYL, where the scaling factorRDSCAL(see below) has been factored out. on exit, the corresponding sum of squares updated with the contributions from the current sub-system. ifTRANS = 'T',RDSUMis not touched. and a NOTE, bestie:RDSUMonly makes sense whenZTGSY2is called byCTGSYLπ
!> RDSUM is DOUBLE PRECISION !> On entry, the sum of squares of computed contributions to !> the Dif-estimate under computation by ZTGSYL, where the !> scaling factor RDSCAL (see below) has been factored out. !> On exit, the corresponding sum of squares updated with the !> contributions from the current sub-system. !> If TRANS = 'T' RDSUM is not touched. !> NOTE: RDSUM only makes sense when ZTGSY2 is called by CTGSYL. !>
RDSCALβDOUBLE PRECISION. on entry, the scaling factor used to prevent overflow inRDSUM. on exit,RDSCALis updated w.r.t. the current contributions inRDSUM. ifTRANS = 'T',RDSCALis not touched. NOTE again:RDSCALonly makes sense whenZTGSY2is called byZTGSYLπ§
!> RDSCAL is DOUBLE PRECISION !> On entry, scaling factor used to prevent overflow in RDSUM. !> On exit, RDSCAL is updated w.r.t. the current contributions !> in RDSUM. !> If TRANS = 'T', RDSCAL is not touched. !> NOTE: RDSCAL only makes sense when ZTGSY2 is called by !> ZTGSYL. !>
IPIVβINTEGERarray, dimension(N). the pivot indices; for1 <= i <= N, rowiof the matrix has been interchanged with rowIPIV(i)π₯
!> IPIV is INTEGER array, dimension (N). !> The pivot indices; for 1 <= i <= N, row i of the !> matrix has been interchanged with row IPIV(i). !>
JPIVβINTEGERarray, dimension(N). the pivot indices; for1 <= j <= N, columnjof the matrix has been interchanged with columnJPIV(j)π«
!> JPIV is INTEGER array, dimension (N). !> The pivot indices; for 1 <= j <= N, column j of the !> matrix has been interchanged with column JPIV(j). !>
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
all four of them, credited, no cap π«Ά
β Further Details β
this routine is a further developed implementation of algorithm BSOLVE in [1] using complete pivoting in the LU factorization. that's the tea β
π Contributors: π
Bo Kagstrom and Peter Poromaa, Department of Computing Science, Umea University, S-901 87 Umea, Sweden.
π References: π
[1]Bo Kagstrom and Lars Westin, Generalized Schur Methods with Condition Estimators for Solving the Generalized Sylvester Equation, IEEE Transactions on Automatic Control, Vol. 34, No. 7, July 1989, pp 745-751.[2]Peter Poromaa, On Efficient and Robust Estimators for the Separation between two Regular Matrix Pairs with Applications in Condition Estimation. Report UMINF-95.05, Department of Computing Science, Umea University, S-901 87 Umea, Sweden, 1995.
π₯ Definition π₯
Definition at line 167 of file zlatdf.f. iykyk π
π Author π
Generated automatically by Doxygen for LAPACK from the source code. (not me, Doxygen did that. i just added the sparkles β¨)
aaaand that's the whole page, bestie β no options skipped, no numbers fudged, no lore lost π this was LAPACK, Version 3.12.0, living at /home/abui...RC/zlatdf.f(3), and i'm obsessed with her. mwah ππ
π¦ 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