CGELQT(3)

πŸ“¦ version 3.12.0, in opensuse-leap 16.0

πŸ’… CGELQT(3) β€” like, the LAPACK manual page, but make it make sense

okay so this is a page from the Library Functions Manual, and it lives at /home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/cgelqt.f (yes the header abbreviates it as /home/abui...RC/cgelqt.f(3), we love a shortcut ✨). She's a Fortran file, she's iconic, let's get into it.


✨ NAME ✨

/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/cgelqt.f β€” that's the whole name bestie, that's the file, that's her πŸŽ€


πŸ¦‹ SYNOPSIS πŸ¦‹

Functions/Subroutines

  • subroutine CGELQT (m, n, mb, a, lda, t, ldt, work, info) β€” CGELQT. that's it. that's the function. slay πŸ’…

🌸 Function/Subroutine Documentation 🌸

subroutine CGELQT (integer m, integer n, integer mb, complex, dimension(
    lda, * ) a, integer lda, complex, dimension( ldt, * ) t, integer ldt,
    complex, dimension( * ) work, integer info)

CGELQT ✨

πŸ’– Purpose:

!>
!> CGELQT computes a blocked LQ factorization of a complex M-by-N matrix A
!> using the compact WY representation of Q.
!>

so literally, CGELQT computes a blocked LQ factorization of a complex M-by-N matrix A, using the compact WY representation of Q. that's the whole vibe. no cap. πŸ”₯


πŸ‘‘ Parameters

  • M
!>          M is INTEGER
!>          The number of rows of the matrix A.  M >= 0.
!>

M is INTEGER, it's the number of rows of the matrix A, and M >= 0. respect the constraint bestie 🫢

  • N
!>          N is INTEGER
!>          The number of columns of the matrix A.  N >= 0.
!>

N is INTEGER β€” number of columns of the matrix A, and N >= 0. same energy, different axis πŸ’œ

  • MB
!>          MB is INTEGER
!>          The block size to be used in the blocked QR.  MIN(M,N) >= MB >= 1.
!>

MB is INTEGER β€” the block size used in the blocked QR, with MIN(M,N) >= MB >= 1. (yes it says QR right there in the LQ routine, that's what the original says, i don't make the rules 😭)

  • A
!>          A is COMPLEX array, dimension (LDA,N)
!>          On entry, the M-by-N matrix A.
!>          On exit, the elements on and below the diagonal of the array
!>          contain the M-by-MIN(M,N) lower trapezoidal matrix L (L is
!>          lower triangular if M <= N); the elements above the diagonal
!>          are the rows of V.
!>

A is a COMPLEX array, dimension (LDA,N). On entry it's the M-by-N matrix A. On exit the elements on and below the diagonal contain the M-by-MIN(M,N) lower trapezoidal matrix L (which is lower triangular if M <= N), and the elements above the diagonal are the rows of V. glow-up on exit, honestly ✨

  • LDA
!>          LDA is INTEGER
!>          The leading dimension of the array A.  LDA >= max(1,M).
!>

LDA is INTEGER β€” leading dimension of the array A, and LDA >= max(1,M). don't forget the max(1,...) or it's over for you πŸ’€

  • T
!>          T is COMPLEX array, dimension (LDT,MIN(M,N))
!>          The upper triangular block reflectors stored in compact form
!>          as a sequence of upper triangular blocks.  See below
!>          for further details.
!>

T is a COMPLEX array, dimension (LDT,MIN(M,N)) β€” the upper triangular block reflectors, stored in compact form as a sequence of upper triangular blocks. "see below for further details" and yes, we DO go below, keep scrolling 🧚

  • LDT
!>          LDT is INTEGER
!>          The leading dimension of the array T.  LDT >= MB.
!>

LDT is INTEGER β€” the leading dimension of the array T, and LDT >= MB. ⭐

  • WORK
!>          WORK is COMPLEX array, dimension (MB*N)
!>

WORK is a COMPLEX array, dimension (MB*N). she works, that's literally her name πŸ’…

  • INFO
!>          INFO is INTEGER
!>          = 0:  successful exit
!>          < 0:  if INFO = -i, the i-th argument had an illegal value
!>

INFO is INTEGER:

  • = 0: successful exit, we love a zero πŸŽ‰
  • < 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.

the whole squad wrote this, give them their flowers πŸ’


πŸ”₯ Further Details:

!>
!>  The matrix V stores the elementary reflectors H(i) in the i-th row
!>  above the diagonal. For example, if M=5 and N=3, the matrix V is
!>
!>               V = (  1  v1 v1 v1 v1 )
!>                   (     1  v2 v2 v2 )
!>                   (         1 v3 v3 )
!>
!>
!>  where the vi's represent the vectors which define H(i), which are returned
!>  in the matrix A.  The 1's along the diagonal of V are not stored in A.
!>  Let K=MIN(M,N).  The number of blocks is B = ceiling(K/MB), where each
!>  block is of order MB except for the last block, which is of order
!>  IB = K - (B-1)*MB.  For each of the B blocks, a upper triangular block
!>  reflector factor is computed: T1, T2, ..., TB.  The MB-by-MB (and IB-by-IB
!>  for the last block) T's are stored in the MB-by-K matrix T as
!>
!>               T = (T1 T2 ... TB).
!>

okay bestie this is the part you screenshot πŸ“Έ β€” let me walk you through it:

the matrix V stores the elementary reflectors H(i) in the i-th row above the diagonal. for example, if M=5 and N=3, the matrix V is:

             V = (  1  v1 v1 v1 v1 )
                 (     1  v2 v2 v2 )
                 (         1 v3 v3 )

where the vi's represent the vectors which define H(i), which are returned in the matrix A. the 1's along the diagonal of V are not stored in A. (not me being obsessed with the fact that the ones are implied 🫢)

let K=MIN(M,N). the number of blocks is B = ceiling(K/MB), where each block is of order MB except for the last block, which is of order IB = K - (B-1)*MB. for each of the B blocks, an upper triangular block reflector factor is computed: T1, T2, ..., TB. the MB-by-MB (and IB-by-IB for the last block) T's are stored in the MB-by-K matrix T as:

             T = (T1 T2 ... TB).

literally the whole system. main character energy πŸ‘‘


πŸŽ€ Definition

Definition at line 123 of file cgelqt.f. line one-two-three, periodt. ✨


πŸ¦‹ Author

Generated automatically by Doxygen for LAPACK from the source code. (the robots did this one, not a human, and honestly? they ate πŸ€–πŸ’–)


and that's the page bestie!! every flag, every constraint, every !> comment β€” all of it, none of it skipped. LAPACK, Version 3.12.0, and this whole glorious thing lives at /home/abui...RC/cgelqt.f(3) β€” mwah, catch you in the next manpage πŸŒΈπŸ’œ
πŸ“¦ where this page comes from