SRC/dgsvj0.f(3)

🌸 NAME 🌸

okay so bestie, this is SRC/dgsvj0.f(3) from the Library Functions Manual, section 3 β€” the whole page is about the dgsvj0 subroutine. πŸ’–

✨ SYNOPSIS ✨

πŸ’… Functions/Subroutines πŸ’…

subroutine dgsvj0 (jobv, m, n, a, lda, d, sva, mv, v, ldv, eps, sfmin, tol, nsweep, work, lwork, info)
    DGSVJ0 pre-processor for the routine dgesvj.

πŸŽ€ Function/Subroutine Documentation πŸŽ€

subroutine dgsvj0 (character*1 jobv, integer m, integer n, double precision, dimension( lda, * ) a, integer lda, double precision, dimension( n ) d, double precision, dimension( n ) sva, integer mv, double precision, dimension( ldv, * ) v, integer ldv, double precision eps, double precision sfmin, double precision tol, integer nsweep, double precision, dimension( lwork ) work, integer lwork, integer info)

DGSVJ0 pre-processor for the routine dgesvj.

πŸ’– Purpose πŸ’–

Okay so DGSVJ0 is called from DGESVJ as a pre-processor, and that is its main purpose. It applies Jacobi rotations in the same way as DGESVJ does, but it does not check convergence (stopping criterion). Few tuning parameters (marked by [TP]) are available for the implementer. πŸ’«

🌈 Parameters 🌈

  • JOBV β€” JOBV is CHARACTER*1. It specifies whether the output from this procedure is used to compute the matrix V:
    • = 'V': the product of the Jacobi rotations is accumulated by postmultiplying the N-by-N array V. (See the description of V.)
    • = 'A': the product of the Jacobi rotations is accumulated by postmultiplying the MV-by-N array V. (See the descriptions of MV and V.)
    • = 'N': the Jacobi rotations are not accumulated.
  • M β€” M is INTEGER. The number of rows of the input matrix A. M >= 0.
  • N β€” N is INTEGER. The number of columns of the input matrix A. M >= N >= 0.
  • A β€” A is DOUBLE PRECISION array, dimension (LDA,N). On entry, M-by-N matrix A, such that A*diag(D) represents the input matrix. On exit, A_onexit * D_onexit represents the input matrix A*diag(D) post-multiplied by a sequence of Jacobi rotations, where the rotation threshold and the total number of sweeps are given in TOL and NSWEEP, respectively. (See the descriptions of D, TOL and NSWEEP.)
  • LDA β€” LDA is INTEGER. The leading dimension of the array A. LDA >= max(1,M).
  • D β€” D is DOUBLE PRECISION array, dimension (N). The array D accumulates 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 in TOL and NSWEEP, respectively. (See the descriptions of A, TOL and NSWEEP.)
  • SVA β€” SVA is DOUBLE PRECISION array, dimension (N). On entry, SVA contains the Euclidean norms of the columns of the matrix A*diag(D). On exit, SVA contains the Euclidean norms of the columns of the matrix onexit*diag(D_onexit).
  • MV β€” MV is INTEGER. If JOBV = 'A', then MV rows of V are post-multiplied by a sequence of Jacobi rotations. If JOBV = 'N', then MV is not referenced.
  • V β€” V is DOUBLE PRECISION array, dimension (LDV,N). If JOBV = 'V' then N rows of V are post-multiplied by a sequence of Jacobi rotations. If JOBV = 'A' then MV rows of V are post-multiplied by a sequence of Jacobi rotations. If JOBV = 'N', then V is not referenced.
  • LDV β€” LDV is INTEGER. The leading dimension of the array V, LDV >= 1. If JOBV = 'V', LDV >= N. If JOBV = '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. TOL is the threshold for Jacobi rotations. For a pair A(:,p), A(:,q) of pivot columns, the Jacobi rotation is applied only if DABS(COS(angle(A(:,p),A(:,q)))) > TOL.
  • NSWEEP β€” NSWEEP is INTEGER. NSWEEP is the number of sweeps of Jacobi rotations to be performed.
  • WORK β€” WORK is DOUBLE PRECISION array, dimension (LWORK).
  • LWORK β€” LWORK is INTEGER. LWORK is the dimension of WORK. LWORK >= M.
  • INFO β€” INFO is INTEGER.
    • = 0: successful exit.
    • < 0: if INFO = -i, then the i-th argument had an illegal value.

🫢 Author 🫢

  • Univ. of Tennessee
  • Univ. of California Berkeley
  • Univ. of Colorado Denver
  • NAG Ltd.

πŸ”­ Further Details πŸ”­

DGSVJ0 is used just to enable DGESVJ to call a simplified version of itself to work on a submatrix of the original matrix.

🧚 Contributors 🧚

Zlatko Drmac (Zagreb, Croatia) and Kresimir Veselic (Hagen, Germany)

🐞 Bugs, Examples and Comments 🐞

Please report all bugs and send interesting test examples and comments to drmac@math.hr. Thank you.

Definition at line 216 of file dgsvj0.f.

🫢 Author 🫢

Generated automatically by Doxygen for LAPACK from the source code.


okay bestie, that's the whole page. The footer's source/version/date slot says LAPACK β€” Version 3.12.0 β€” source SRC/dgsvj0.f(3). No extra date shown in that footer, just the version and the page, so that's the cute sign-off. Mwah, go slay those Jacobi rotations. πŸ’…βœ¨

πŸ“¦ where this page comes from