SRC/sgelqt.f(3)

๐Ÿ’– SRC/sgelqt.f(3) ๐Ÿ’–

okay bestie, this page is SRC/sgelqt.f(3) from the Library Functions Manual โ€” manual name folded in near the top, header line not copied, we are so efficient. ๐Ÿ’… This is the SGELQT subroutine tea, and it is literally giving blocked LQ factorization with the compact WY representation of Q. Let's go. โœจ


๐ŸŒธ NAME ๐ŸŒธ

SRC/sgelqt.f โ€” that's the name, bestie. Short, iconic, to the point. ๐ŸŽ€


โœจ SYNOPSIS โœจ

Functions/Subroutines

       subroutine sgelqt (m, n, mb, a, lda, t, ldt, work, info)
           SGELQT

๐Ÿงš Function/Subroutine Documentation ๐Ÿงš

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

SGELQT โ€” the main character, no cap. ๐Ÿ‘‘

๐ŸŽฏ Purpose:

SGELQT computes a blocked LQ factorization of a real M-by-N matrix A using the compact WY representation of Q. That's the whole purpose, and it ate. ๐Ÿ’…

๐Ÿงฎ Parameters

M

M is INTEGER. It's the number of rows of the matrix A. Constraint: M >= 0. Respect the row count. ๐Ÿซถ

N

N is INTEGER. It's the number of columns of the matrix A. Constraint: N >= 0. Respect the column count too. ๐ŸŒธ

MB

MB is INTEGER. It's the block size to be used in the blocked QR. Constraint: MIN(M,N) >= MB >= 1. Yes, the original says blocked QR right there โ€” we're not editing the lore. ๐ŸŽ€

A

A is a REAL array, dimension (LDA,N).

On entry, it's 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.

That's the glow-up, bestie. โœจ

LDA

LDA is INTEGER. It's the leading dimension of the array A. Constraint: LDA >= max(1,M). Respect the leading dimension. ๐Ÿ’œ

T

T is a REAL array, dimension (LDT,MIN(M,N)).

The upper triangular block reflectors are stored in compact form as a sequence of upper triangular blocks. See below for further details. It's giving compact storage excellence. ๐Ÿฆ‹

LDT

LDT is INTEGER. It's the leading dimension of the array T. Constraint: LDT >= MB. ๐ŸŽ€

WORK

WORK is a REAL array, dimension (MB*N). It's the workspace, doing background vocals. ๐ŸŽค

INFO

INFO is INTEGER. Exit status tea:

  • = 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:

Here's the deep lore. 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, 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).

Definition at line 123 of file sgelqt.f. ๐Ÿ“

๐Ÿค– Author

Generated automatically by Doxygen for LAPACK from the source code.


okay that's the whole page, bestie. Signing off from LAPACK Version 3.12.0 and this footer's own SRC/sgelqt.f(3) โ€” the footer doesn't give a date line, so no fake date here, periodt. ๐Ÿ’–โœจ๐ŸŒˆ

๐Ÿ“ฆ where this page comes from