SRC/cgsvj0.f(3)

🌈 SRC/cgsvj0.f(3) 🌈

okay bestie, this page is from the Library Functions Manual, and it’s all about SRC/cgsvj0.f β€” a Fortran situation with main-character energy. πŸ’…


✨ NAME ✨

SRC/cgsvj0.f β€” literally the file name, and that’s the name section, periodt. πŸŽ€

✨ SYNOPSIS ✨

πŸ¦‹ Functions/Subroutines πŸ¦‹

subroutine cgsvj0 (jobv, m, n, a, lda, d, sva, mv, v, ldv, eps, sfmin, tol, nsweep, work, lwork, info)

CGSVJ0 pre-processor for the routine cgesvj.

✨ Function/Subroutine Documentation ✨

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

CGSVJ0 pre-processor for the routine cgesvj. No cap. ✨

🎯 Purpose 🎯

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

🧚 Parameters 🧚

  • JOBV β€” CHARACTER*1. This 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 β€” INTEGER. The number of rows of the input matrix A. M >= 0.
  • N β€” INTEGER. The number of columns of the input matrix A. M >= N >= 0.
  • A β€” COMPLEX array, dimension (LDA,N). On entry, M-by-N matrix A, such that A*diag(D) represents the input matrix. On exit, A_onexit * diag(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 β€” INTEGER. The leading dimension of the array A. LDA >= max(1,M).
  • D β€” COMPLEX array, dimension (N). The array D accumulates the scaling factors from the complex 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 β€” REAL 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 A_onexit*diag(D_onexit).
  • MV β€” 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 β€” COMPLEX 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 β€” INTEGER. The leading dimension of the array V, LDV >= 1. If JOBV = 'V', LDV >= N. If JOBV = 'A', LDV >= MV.
  • EPS β€” REAL. EPS = SLAMCH('Epsilon').
  • SFMIN β€” REAL. SFMIN = SLAMCH('Safe Minimum').
  • TOL β€” REAL. TOL is the threshold for Jacobi rotations. For a pair A(:,p), A(:,q) of pivot columns, the Jacobi rotation is applied only if ABS(COS(angle(A(:,p),A(:,q)))) > TOL.
  • NSWEEP β€” INTEGER. NSWEEP is the number of sweeps of Jacobi rotations to be performed.
  • WORK β€” COMPLEX array, dimension (LWORK).
  • LWORK β€” INTEGER. LWORK is the dimension of WORK. LWORK >= M.
  • INFO β€” 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 πŸ”

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

πŸ’Œ Contributor πŸ’Œ

Zlatko Drmac (Zagreb, Croatia)

🐞 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 cgsvj0.f.

🫢 Author 🫢

Generated automatically by Doxygen for LAPACK from the source code.


πŸ’– okay that’s the whole page! signing off from LAPACK Version 3.12.0, source SRC/cgsvj0.f(3) β€” go slay your linear algebra, bestie. 🌈✨

πŸ“¦ where this page comes from