geql2(3)

πŸ’… geql2(3) β€” QL factor, level 2 ✨

okay so this is geql2(3) from the Library Functions Manual, and it's giving QL factor, level 2 energy. bestie, we're literally about to vibe-check some Fortran subroutines. πŸ¦‹


🌸 NAME 🌸

geql2 β€” geql2: QL factor, level 2


✨ SYNOPSIS ✨

🫢 Functions 🫢

  • subroutine cgeql2 (m, n, a, lda, tau, work, info) β€” CGEQL2 does the QL factorization of a general rectangular matrix using an unblocked algorithm. πŸ’–
  • subroutine dgeql2 (m, n, a, lda, tau, work, info) β€” DGEQL2 does the QL factorization of a general rectangular matrix using an unblocked algorithm. πŸŽ€
  • subroutine sgeql2 (m, n, a, lda, tau, work, info) β€” SGEQL2 does the QL factorization of a general rectangular matrix using an unblocked algorithm. 🌸
  • subroutine zgeql2 (m, n, a, lda, tau, work, info) β€” ZGEQL2 does the QL factorization of a general rectangular matrix using an unblocked algorithm. 🫢

🌈 Detailed Description 🌈

bestie, there's literally nothing listed under this heading in this part β€” it's empty, no cap. πŸ’€

πŸ’– FUNCTION DOCUMENTATION πŸ’–

okay bestie, this is where it gets good β€” four whole routines, one for each flavour of your data. same energy, different types. let's go πŸ’…


🌸 subroutine cgeql2

subroutine cgeql2 (integer m, integer n, complex, dimension( lda, * ) a,
    integer lda, complex, dimension( * ) tau, complex, dimension( * ) work,
    integer info)

CGEQL2 computes the QL factorization of a general rectangular matrix using an unblocked algorithm. ✨

πŸŽ€ Purpose:

!>
!> CGEQL2 computes a QL factorization of a complex m by n matrix A:
!> A = Q * L.
!>

πŸ¦‹ Parameters

  • M β€” M is INTEGER. it's the number of rows of the matrix A. rule: M >= 0. no negativity allowed, she's got boundaries πŸ’€
  • N β€” N is INTEGER. the number of columns of the matrix A. rule: N >= 0. same deal 🫢
  • A β€” A is COMPLEX array, dimension (LDA,N).
    • on entry: the m by n matrix A. hi bestie πŸ‘‹
    • on exit, if m >= n, the lower triangle of the subarray A(m-n+1:m,1:n) holds the n by n lower triangular matrix L;
    • if m <= n, the elements on and below the (n-m)-th superdiagonal hold the m by n lower trapezoidal matrix L;
    • the remaining elements, together with the array TAU, represent the unitary matrix Q as a product of elementary reflectors (peep Further Details below, it's giving lore πŸ‘€)
  • LDA β€” LDA is INTEGER. the leading dimension of the array A. rule: LDA >= max(1,M). respect the constraint or she WILL be mad 😀
  • TAU β€” TAU is COMPLEX array, dimension (min(M,N)). the scalar factors of the elementary reflectors β€” Further Details has the receipts ✨
  • WORK β€” WORK is COMPLEX array, dimension (N). that's it. that's the whole job πŸŽ€
  • INFO β€” INFO is INTEGER. the vibe check at the end:
    • = 0: successful exit, slay πŸ’…
    • < 0: if INFO = -i, the i-th argument had an illegal value β€” bestie you passed something cursed πŸ™ˆ

πŸ‘‘ Author

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

🌈 Further Details:

!>
!>  The matrix Q is represented as a product of elementary reflectors
!>
!>     Q = H(k) . . . H(2) H(1), where k = min(m,n).
!>
!>  Each H(i) has the form
!>
!>     H(i) = I - tau * v * v**H
!>
!>  where tau is a complex scalar, and v is a complex vector with
!>  v(m-k+i+1:m) = 0 and v(m-k+i) = 1; v(1:m-k+i-1) is stored on exit in
!>  A(1:m-k+i-1,n-k+i), and tau in TAU(i).
!>

note the v**H β€” that's the conjugate transpose, because complex numbers are dramatic like that πŸ’œ

Definition at line 122 of file cgeql2.f.


⭐ subroutine dgeql2

subroutine dgeql2 (integer m, integer n, double precision, dimension( lda, *
) a, integer lda, double precision, dimension( * ) tau, double
precision, dimension( * ) work, integer info)

DGEQL2 computes the QL factorization of a general rectangular matrix using an unblocked algorithm. same girl, double precision edition πŸ”₯

πŸŽ€ Purpose:

!>
!> DGEQL2 computes a QL factorization of a real m by n matrix A:
!> A = Q * L.
!>

πŸ¦‹ Parameters

  • M β€” M is INTEGER. the number of rows of the matrix A. M >= 0. yes it's the same as before, no she didn't change, she's consistent ✨
  • N β€” N is INTEGER. the number of columns of the matrix A. N >= 0. 🫢
  • A β€” A is DOUBLE PRECISION array, dimension (LDA,N).
    • on entry: the m by n matrix A.
    • on exit, if m >= n, the lower triangle of the subarray A(m-n+1:m,1:n) contains the n by n lower triangular matrix L;
    • if m <= n, the elements on and below the (n-m)-th superdiagonal contain the m by n lower trapezoidal matrix L;
    • the remaining elements, plus the array TAU, represent the orthogonal matrix Q as a product of elementary reflectors (see Further Details). note: orthogonal here, not unitary β€” real numbers keep it simple πŸŽ€
  • LDA β€” LDA is INTEGER. the leading dimension of the array A. LDA >= max(1,M). periodt πŸ’…
  • TAU β€” TAU is DOUBLE PRECISION array, dimension (min(M,N)). the scalar factors of the elementary reflectors (Further Details, go look πŸ”)
  • WORK β€” WORK is DOUBLE PRECISION array, dimension (N). tiny but mighty 🌸
  • INFO β€” INFO is INTEGER.
    • = 0: successful exit πŸŽ‰
    • < 0: if INFO = -i, the i-th argument had an illegal value 😭

πŸ‘‘ Author

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

🌈 Further Details:

!>
!>  The matrix Q is represented as a product of elementary reflectors
!>
!>     Q = H(k) . . . H(2) H(1), where k = min(m,n).
!>
!>  Each H(i) has the form
!>
!>     H(i) = I - tau * v * v**T
!>
!>  where tau is a real scalar, and v is a real vector with
!>  v(m-k+i+1:m) = 0 and v(m-k+i) = 1; v(1:m-k+i-1) is stored on exit in
!>  A(1:m-k+i-1,n-k+i), and tau in TAU(i).
!>

see that? v**T instead of v**H β€” no conjugate here, because everything's real and honest πŸ¦‹

Definition at line 122 of file dgeql2.f.


πŸ’« subroutine sgeql2

subroutine sgeql2 (integer m, integer n, real, dimension( lda, * ) a,
    integer lda, real, dimension( * ) tau, real, dimension( * ) work,
    integer info)

SGEQL2 computes the QL factorization of a general rectangular matrix using an unblocked algorithm. single precision baddie incoming ⭐

πŸŽ€ Purpose:

!>
!> SGEQL2 computes a QL factorization of a real m by n matrix A:
!> A = Q * L.
!>

πŸ¦‹ Parameters

  • M β€” M is INTEGER. number of rows of the matrix A. M >= 0. 🫢
  • N β€” N is INTEGER. number of columns of the matrix A. N >= 0. πŸ’–
  • A β€” A is REAL array, dimension (LDA,N).
    • on entry: the m by n matrix A.
    • on exit, if m >= n, the lower triangle of the subarray A(m-n+1:m,1:n) contains the n by n lower triangular matrix L;
    • if m <= n, the elements on and below the (n-m)-th superdiagonal contain the m by n lower trapezoidal matrix L;
    • the remaining elements, with the array TAU, represent the orthogonal matrix Q as a product of elementary reflectors (see Further Details). yep, orthogonal again β€” real is real 😌
  • LDA β€” LDA is INTEGER. the leading dimension of the array A. LDA >= max(1,M). don't test her 🌸
  • TAU β€” TAU is REAL array, dimension (min(M,N)). scalar factors of the elementary reflectors (see Further Details) ✨
  • WORK β€” WORK is REAL array, dimension (N). πŸŽ€
  • INFO β€” INFO is INTEGER.
    • = 0: successful exit, we love to see it πŸ’…
    • < 0: if INFO = -i, the i-th argument had an illegal value, tragic 😭

πŸ‘‘ Author

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

🌈 Further Details:

!>
!>  The matrix Q is represented as a product of elementary reflectors
!>
!>     Q = H(k) . . . H(2) H(1), where k = min(m,n).
!>
!>  Each H(i) has the form
!>
!>     H(i) = I - tau * v * v**T
!>
!>  where tau is a real scalar, and v is a real vector with
!>  v(m-k+i+1:m) = 0 and v(m-k+i) = 1; v(1:m-k+i-1) is stored on exit in
!>  A(1:m-k+i-1,n-k+i), and tau in TAU(i).
!>

Definition at line 122 of file sgeql2.f.


πŸ”₯ subroutine zgeql2

subroutine zgeql2 (integer m, integer n, complex*16, dimension( lda, * ) a,
    integer lda, complex*16, dimension( * ) tau, complex*16, dimension( * )
    work, integer info)

ZGEQL2 computes the QL factorization of a general rectangular matrix using an unblocked algorithm. double complex, double drama, double slay πŸ‘‘

πŸŽ€ Purpose:

!>
!> ZGEQL2 computes a QL factorization of a complex m by n matrix A:
!> A = Q * L.
!>

πŸ¦‹ Parameters

  • M β€” M is INTEGER. the number of rows of the matrix A. M >= 0. 🫢
  • N β€” N is INTEGER. the number of columns of the matrix A. N >= 0. πŸ’œ
  • A β€” A is COMPLEX*16 array, dimension (LDA,N).
    • on entry: the m by n matrix A.
    • on exit, if m >= n, the lower triangle of the subarray A(m-n+1:m,1:n) contains the n by n lower triangular matrix L;
    • if m <= n, the elements on and below the (n-m)-th superdiagonal contain the m by n lower trapezoidal matrix L;
    • the remaining elements, with the array TAU, represent the unitary matrix Q as a product of elementary reflectors (see Further Details). unitary! fancy! ✨
  • LDA β€” LDA is INTEGER. the leading dimension of the array A. LDA >= max(1,M). non-negotiable πŸŽ€
  • TAU β€” TAU is COMPLEX*16 array, dimension (min(M,N)). the scalar factors of the elementary reflectors (see Further Details) πŸ¦‹
  • WORK β€” WORK is COMPLEX*16 array, dimension (N). 🌸
  • INFO β€” INFO is INTEGER.
    • = 0: successful exit πŸŽ‰
    • < 0: if INFO = -i, the i-th argument had an illegal value β€” check your args bestie πŸ’€

πŸ‘‘ Author

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

🌈 Further Details:

!>
!>  The matrix Q is represented as a product of elementary reflectors
!>
!>     Q = H(k) . . . H(2) H(1), where k = min(m,n).
!>
!>  Each H(i) has the form
!>
!>     H(i) = I - tau * v * v**H
!>
!>  where tau is a complex scalar, and v is a complex vector with
!>  v(m-k+i+1:m) = 0 and v(m-k+i) = 1; v(1:m-k+i-1) is stored on exit in
!>  A(1:m-k+i-1,n-k+i), and tau in TAU(i).
!>

v**H is back for the complex case β€” conjugate transpose, the full glamour treatment πŸ’…

Definition at line 122 of file zgeql2.f.


🧚 Author

Generated automatically by Doxygen for LAPACK from the source code.


okay that's the whole page bestie!! four routines, all chilling at line 122 of their own .f files, all doing QL factorization and serving looks πŸ’– you literally know this now, i'm so proud 🫢

LAPACK, Version 3.12.0 β€” that's the source & version info, and this manual page is the geql2(3) one πŸŽ€ go be iconic with your factorizations, mwah πŸ’‹βœ¨

πŸ“¦ where this page comes from