/home/abui.../sgelqt3.f(3)

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

πŸ’… NAME πŸ’…

/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/sgelqt3.f β€” bestie, that's the whole name, it's literally the source file path and honestly? iconic of LAPACK to name things like that. This is the man page for SGELQT3, a recursive Fortran subroutine that lives in that file, and it comes to you courtesy of the LAPACK Library Functions Manual. πŸŽ€


✨ SYNOPSIS ✨

🌸 Functions/Subroutines 🌸

  • recursive subroutine SGELQT3 (m, n, a, lda, t, ldt, info) β€” say hi to SGELQT3 πŸ‘‹ that's the whole vibe, that's the subroutine.

πŸ¦‹ Function/Subroutine Documentation πŸ¦‹

πŸ’– recursive subroutine SGELQT3 (integer m, integer n, real, dimension( lda, * ) a, integer lda, real, dimension( ldt, * ) t, integer ldt, integer info) πŸ’–

Yes bestie, it's SGELQT3 again, now with the full glow-up: every argument typed out, m and n and lda and ldt and info as integer, a as real, dimension( lda, * ), t as real, dimension( ldt, * ). Recursive AND typed. She's got range. 🌈

πŸŽ€ Purpose:

!>
!> SGELQT3 recursively computes a LQ factorization of a real M-by-N
!> matrix A, using the compact WY representation of Q.
!>
!> Based on the algorithm of Elmroth and Gustavson,
!> IBM J. Res. Develop. Vol 44 No. 4 July 2000.
!>

So like β€” she recursively computes an LQ factorization of a real M-by-N matrix A, and she does it using the compact WY representation of Q. No cap. And she's not just vibing on her own invention either, she's based on the algorithm of Elmroth and Gustavson, from IBM J. Res. Develop. Vol 44 No. 4 July 2000. Respect the lineage. πŸ‘‘


🌟 Parameters 🌟

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

M is INTEGER, it's how many rows the matrix A has, and the constraint is M =< N β€” not "less than or equal to", literally written =< in the source, we keep it exactly as she is. πŸ’…

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

N is INTEGER, the number of columns of the matrix A, and N >= 0 β€” zero is fine, negative is not, we don't do that here. ✨

  • A
!>          A is REAL array, dimension (LDA,N)
!>          On entry, the real M-by-N matrix A.  On exit, the elements on and
!>          below the diagonal contain the N-by-N lower triangular matrix L; the
!>          elements above the diagonal are the rows of V.  See below for
!>          further details.
!>

A is a REAL array of dimension (LDA,N). On entry she's just your real M-by-N matrix A β€” innocent. On exit it's a whole transformation: the elements on and below the diagonal hold the N-by-N lower triangular matrix L, and the elements above the diagonal are the rows of V. See below for further details, bestie, don't panic. πŸ’€

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

LDA is INTEGER, the leading dimension of the array A, and the rule is LDA >= max(1,M). Respect the leading dimension or get wrecked. 🫢

  • T
!>          T is REAL array, dimension (LDT,N)
!>          The N-by-N upper triangular factor of the block reflector.
!>          The elements on and above the diagonal contain the block
!>          reflector T; the elements below the diagonal are not used.
!>          See below for further details.
!>

T is a REAL array of dimension (LDT,N), and she's the N-by-N upper triangular factor of the block reflector. Elements on and above the diagonal contain the block reflector T; the elements below the diagonal are literally not used β€” they're just there, existing, unused, main character energy of a different kind honestly. 😭 See below for further details!

  • LDT
!>          LDT is INTEGER
!>          The leading dimension of the array T.  LDT >= max(1,N).
!>

LDT is INTEGER, the leading dimension of the array T, and the requirement is LDT >= max(1,N). Same energy, different array. πŸ’œ

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

INFO is INTEGER and it's your little report card: = 0 means successful exit, we ate and left no crumbs πŸŽ‰; < 0 means if INFO = -i, the i-th argument had an illegal value β€” so go count your arguments and fix the one it's pointing at. πŸ”₯


πŸ‘‘ Author πŸ‘‘

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.


⭐ 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 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.  The
!>  block reflector H is then given by
!>
!>               H = I - V * T * V**T
!>
!>  where V**T is the transpose of V.
!>
!>  For details of the algorithm, see Elmroth and Gustavson (cited above).
!>

Okay so here's the tea β˜• β€” 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 looks exactly like that gorgeous little diagram above (yes, we kept every v1, v2, v3 and every blank space exactly where it was, bestie, we do not touch the code block). The vi's represent the vectors which define H(i), and those are returned in the matrix A. The 1's along the diagonal of V are not stored in A β€” they're implied, they're mysterious, they're doing a little off-screen cameo. πŸ™ˆ

Then the block reflector H is given by

H = I - V * T * V**T

where V**T is the transpose of V. Obsessed. πŸ¦‹

For details of the algorithm, see Elmroth and Gustavson (cited above) β€” go read the paper, iykyk. πŸ“š


Definition at line 115 of file sgelqt3.f. ⭐


🌈 Author 🌈

Generated automatically by Doxygen for LAPACK from the source code. Not a human, just a little robot doing her best, and honestly? She slayed. 🧚


LAPACK β€” Version 3.12.0 β€” /home/abui.../sgelqt3.f(3)

and that's the whole page, bestie, mwah πŸ’‹ go compute an LQ factorization, periodt. πŸ’…βœ¨πŸŽ€

πŸ“¦ where this page comes from