SRC/sormql.f(3)

πŸ’– SRC/sormql.f(3) πŸ’–

okay so this is a page from the Library Functions Manual and it's literally all about sormql β€” one Fortran subroutine that's lowkey a legend. buckle up bestie πŸŽ€


✨ NAME ✨

SRC/sormql.f β€” yes that's the whole name section, it's giving minimalist icon behavior πŸ’…


🌸 SYNOPSIS 🌸

Functions/Subroutines

subroutine sormql (side, trans, m, n, k, a, lda, tau, c, ldc, work,
    lwork, info)
    SORMQL

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

subroutine sormql (character side, character trans, integer m, integer n,
    integer k, real, dimension( lda, * ) a, integer lda, real, dimension( *
    ) tau, real, dimension( ldc, * ) c, integer ldc, real, dimension( * )
    work, integer lwork, integer info)

SORMQL 🫢 (say it with me: ess-oh-arr-em-cue-ell)

🧚 Purpose

!>
!> SORMQL overwrites the general real M-by-N matrix C with
!>
!>                 SIDE = 'L'     SIDE = 'R'
!> TRANS = 'N':      Q * C          C * Q
!> TRANS = 'T':      Q**T * C       C * Q**T
!>
!> where Q is a real orthogonal matrix defined as the product of k
!> elementary reflectors
!>
!>       Q = H(k) . . . H(2) H(1)
!>
!> as returned by SGEQLF. Q is of order M if SIDE = 'L' and of order N
!> if SIDE = 'R'.
!>

so basically it takes your matrix C and overwrites it with Q times C (or C times Q, depending on SIDE), and Q is that real orthogonal glow-up built from k elementary reflectors stacked like Q = H(k) . . . H(2) H(1) β€” exactly the ones SGEQLF handed you. Q is order M when SIDE = 'L' and order N when SIDE = 'R'. no cap, that's the whole vibe πŸ”₯


πŸ’œ Parameters πŸ’œ

  • SIDE β€” CHARACTER*1, bestie, pick a side:
    • = 'L': apply Q or Q**T from the Left;
    • = 'R': apply Q or Q**T from the Right.
  • TRANS β€” CHARACTER*1, the transpose mood:
    • = 'N': No transpose, apply Q;
    • = 'T': Transpose, apply Q**T.
  • M β€” INTEGER. The number of rows of the matrix C. M >= 0. πŸ“
  • N β€” INTEGER. The number of columns of the matrix C. N >= 0.
  • K β€” INTEGER. The number of elementary reflectors whose product defines the matrix Q. If SIDE = 'L', M >= K >= 0; if SIDE = 'R', N >= K >= 0.
  • A β€” REAL array, dimension (LDA,K). The i-th column must contain the vector which defines the elementary reflector H(i), for i = 1,2,...,k, as returned by SGEQLF in the last k columns of its array argument A. πŸ‘‘
  • LDA β€” INTEGER. The leading dimension of the array A. If SIDE = 'L', LDA >= max(1,M); if SIDE = 'R', LDA >= max(1,N).
  • TAU β€” REAL array, dimension (K). TAU(i) must contain the scalar factor of the elementary reflector H(i), as returned by SGEQLF. ✨
  • C β€” REAL array, dimension (LDC,N). On entry, the M-by-N matrix C. On exit, C is overwritten by Q*C or Q**T*C or C*Q**T or C*Q. (yes she gets fully rewritten, that's her whole arc 😭)
  • LDC β€” INTEGER. The leading dimension of the array C. LDC >= max(1,M).
  • WORK β€” REAL array, dimension (MAX(1,LWORK)). On exit, if INFO = 0, WORK(1) returns the optimal LWORK. 🌈
  • LWORK β€” INTEGER. The dimension of the array WORK. If SIDE = 'L', LWORK >= max(1,N); if SIDE = 'R', LWORK >= max(1,M). For good performance, LWORK should generally be larger.

If LWORK = -1, then a workspace query is assumed; the routine only calculates the optimal size of the WORK array, returns this value as the first entry of the WORK array, and no error message related to LWORK is issued by XERBLA. 🧠✨

  • INFO β€” INTEGER. The receipts:
    • = 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.

Definition at line 166 of file sormql.f.


πŸŽ€ Author (again, but the meta one) πŸŽ€

Generated automatically by Doxygen for LAPACK from the source code. not a human, just a very enthusiastic robot doing its little thing πŸ€–πŸ’–


lowkey a whole serve. go forth and orthogonalize, bestie. πŸ¦‹πŸ’…

LAPACK, Version 3.12.0, SRC/sormql.f(3) β€” mwah, that's the whole page, love u, bye! πŸ«ΆπŸ’œπŸŒΈ

πŸ“¦ where this page comes from