ZGSVJ1(3)
π ZGSVJ1(3) β Library Functions Manual π
okay so bestie, welcome to the ZGSVJ1(3) page from the Library Functions Manual. The header is literally /home/abui...RC/zgsvj1.f(3) on both sides β it's giving "file path but make it a title", and we're obsessed. This is the LAPACK Fortran page for ZGSVJ1, and we're keeping every technical crumb, no cap. π
πΈ NAME πΈ
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/zgsvj1.f
π¦ SYNOPSIS π¦
Functions/Subroutines
subroutine ZGSVJ1 (jobv, m, n, n1, a, lda, d, sva, mv, v, ldv, eps,
sfmin, tol, nsweep, work, lwork, info)
ZGSVJ1 pre-processor for the routine zgesvj, applies Jacobi
rotations targeting only particular pivots.
πΈ Function/Subroutine Documentation πΈ
subroutine ZGSVJ1 (character*1 jobv, integer m, integer n, integer n1,
complex*16, dimension( lda, * ) a, integer lda, complex*16, dimension( n
) d, double precision, dimension( n ) sva, integer mv, complex*16,
dimension( ldv, * ) v, integer ldv, double precision eps, double
precision sfmin, double precision tol, integer nsweep, complex*16,
dimension( lwork ) work, integer lwork, integer info)
ZGSVJ1 pre-processor for the routine zgesvj, applies Jacobi rotations
targeting only particular pivots.
π Purpose π
So ZGSVJ1 gets called from ZGESVJ as a pre-processor, and that's its whole main-character job. It applies Jacobi rotations exactly the way ZGESVJ does, but with a twist: it only targets particular pivots, and it does not check convergence (the stopping criterion). There are a few tuning parameters marked by [TP] available for whoever is implementing this. π«Ά
π¦ Further Details π¦
ZGSVJ1 does a few sweeps of Jacobi rotations in the column space of the input M-by-N matrix A. The pivot pairs come from the (1,2) off-diagonal block in the corresponding N-by-N Gram matrix A^T * A. The block-entries (tiles) of that (1,2) off-diagonal block are marked by the [x]'s in this exact scheme:
| * * * [x] [x] [x]|
| * * * [x] [x] [x]| Row-cycling in the nblr-by-nblc [x] blocks.
| * * * [x] [x] [x]| Row-cyclic pivoting inside each [x] block.
|[x] [x] [x] * * * |
|[x] [x] [x] * * * |
|[x] [x] [x] * * * |
In terms of the columns of A, the first N1 columns get rotated 'against' the remaining N-N1 columns, trying to increase the angle between the corresponding subspaces. That off-diagonal block is N1-by-(N-N1) and it's tiled using quadratic tiles of side KBL. Here, KBL is a tuning parameter. The number of sweeps is given in NSWEEP, and the orthogonality threshold is given in TOL. β¨
π Parameters π
JOBVβJOBV is CHARACTER*1. It specifies whether the output from this procedure is used to compute the matrixV:= 'V': the product of the Jacobi rotations is accumulated by postmultiplying theN-by-NarrayV. (See the description ofV.)= 'A': the product of the Jacobi rotations is accumulated by postmultiplying theMV-by-NarrayV. (See the descriptions ofMVandV.)= 'N': the Jacobi rotations are not accumulated.
MβM is INTEGER. The number of rows of the input matrixA.M >= 0.NβN is INTEGER. The number of columns of the input matrixA.M >= N >= 0.N1βN1 is INTEGER.N1specifies the2 x 2block partition; the firstN1columns are rotated 'against' the remainingN-N1columns ofA.AβA is COMPLEX*16 array, dimension (LDA,N). On entry,M-by-NmatrixA, such thatA*diag(D)represents the input matrix. On exit,A_onexit * D_onexitrepresents the input matrixA*diag(D)post-multiplied by a sequence of Jacobi rotations, where the rotation threshold and the total number of sweeps are given inTOLandNSWEEP, respectively. (See the descriptions ofN1,D,TOLandNSWEEP.)LDAβLDA is INTEGER. The leading dimension of the arrayA.LDA >= max(1,M).DβD is COMPLEX*16 array, dimension (N). The arrayDaccumulates the scaling factors from the fast scaled Jacobi rotations. On entry,A*diag(D)represents the input matrix. On exit,A_onexit*diag(D_onexit)represents the input matrix post-multiplied by a sequence of Jacobi rotations, where the rotation threshold and the total number of sweeps are given inTOLandNSWEEP, respectively. (See the descriptions ofN1,A,TOLandNSWEEP.)SVAβSVA is DOUBLE PRECISION array, dimension (N). On entry,SVAcontains the Euclidean norms of the columns of the matrixA*diag(D). On exit,SVAcontains the Euclidean norms of the columns of the matrixonexit*diag(D_onexit).MVβMV is INTEGER. IfJOBV = 'A', thenMVrows ofVare post-multiplied by a sequence of Jacobi rotations. IfJOBV = 'N', thenMVis not referenced.VβV is COMPLEX*16 array, dimension (LDV,N). IfJOBV = 'V', thenNrows ofVare post-multiplied by a sequence of Jacobi rotations. IfJOBV = 'A', thenMVrows ofVare post-multiplied by a sequence of Jacobi rotations. IfJOBV = 'N', thenVis not referenced.LDVβLDV is INTEGER. The leading dimension of the arrayV,LDV >= 1. IfJOBV = 'V',LDV >= N. IfJOBV = 'A',LDV >= MV.EPSβEPS is DOUBLE PRECISION.EPS = DLAMCH('Epsilon').SFMINβSFMIN is DOUBLE PRECISION.SFMIN = DLAMCH('Safe Minimum').TOLβTOL is DOUBLE PRECISION.TOLis the threshold for Jacobi rotations. For a pairA(:,p),A(:,q)of pivot columns, the Jacobi rotation is applied only ifABS(COS(angle(A(:,p),A(:,q)))) > TOL.NSWEEPβNSWEEP is INTEGER.NSWEEPis the number of sweeps of Jacobi rotations to be performed.WORKβWORK is COMPLEX*16 array, dimension (LWORK).LWORKβLWORK is INTEGER.LWORKis the dimension ofWORK.LWORK >= M.INFOβINFO is INTEGER.= 0: successful exit.< 0: ifINFO = -i, then thei-th argument had an illegal value.
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
π Contributor π
- Zlatko Drmac (Zagreb, Croatia)
π Definition at line 234 of file zgsvj1.f.
π Author π
Generated automatically by Doxygen for LAPACK from the source code.
okay that's the whole page, bestie. Cute sign-off: the footer gives source/version LAPACK, Version 3.12.0, and /home/abui...RC/zgsvj1.f(3) β that's the whole source/version/date line situation, exactly as it shows up, and we're not inventing anything extra. slay πβ¨π
π¦ 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