SRC/sorm22.f(3)

🌸 SRC/sorm22.f β€” LAPACK Library Functions Manual, bestie edition 🌸

Okay so this is the Library Functions Manual page for SRC/sorm22.f, and it’s literally giving β€œI do linear algebra and I’m gonna explain it to my bestie without being boring.” πŸ‘‘ The whole vibe is technical but cute, fr fr.


πŸ’– NAME πŸ’–

SRC/sorm22.f β€” the page for the subroutine sorm22. SORM22 multiplies a general matrix by a banded orthogonal matrix. πŸ’…


✨ SYNOPSIS ✨

🧚 Functions/Subroutines

  • subroutine sorm22 (side, trans, m, n, n1, n2, q, ldq, c, ldc, work, lwork, info) β€” the actual call signature, no cap. And yeah, it does the β€œSORM22 multiplies a general matrix by a banded orthogonal matrix” thing. 🫢
subroutine sorm22 (side, trans, m, n, n1, n2, q, ldq, c, ldc, work,
    lwork, info)

SORM22 multiplies a general matrix by a banded orthogonal matrix. 🌸


πŸ”₯ Function/Subroutine Documentation πŸ”₯

Here’s the full tea on sorm22 β€” signature and all. πŸ’–

subroutine sorm22 (character side, character trans, integer m, integer n,
    integer n1, integer n2, real, dimension( ldq, * ) q, integer ldq, real,
    dimension( ldc, * ) c, integer ldc, real, dimension( * ) work, integer
    lwork, integer info)

SORM22 multiplies a general matrix by a banded orthogonal matrix. πŸ‘‘


πŸŽ€ Purpose πŸŽ€

Bestie, the routine overwrites the general real M-by-N matrix C with one of these depending on SIDE and TRANS. The source’s Purpose block is literally this, and I’m keeping the !> comment markers because that’s exactly how it shows up in the code:

!>
!>
!>  SORM22 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 of order NQ, with NQ = M if
!>  SIDE = 'L' and NQ = N if SIDE = 'R'.
!>  The orthogonal matrix Q processes a 2-by-2 block structure
!>
!>         [  Q11  Q12  ]
!>     Q = [            ]
!>         [  Q21  Q22  ],
!>
!>  where Q12 is an N1-by-N1 lower triangular matrix and Q21 is an
!>  N2-by-N2 upper triangular matrix.
!>

That’s the exact Purpose block, markers and all β€” and I’m not merging or β€œfixing” anything, bestie. Source tea stays source tea. 🫢


🌸 Parameters 🌸

  • SIDE β€” is CHARACTER*1. = 'L': apply Q or Q**T from the Left; = 'R': apply Q or Q**T from the Right. πŸ’…
  • TRANS β€” is CHARACTER*1. = 'N': apply Q (No transpose); = 'C': apply Q**T (Conjugate transpose). ✨
  • M β€” is INTEGER. The number of rows of the matrix C. M >= 0. πŸ“
  • N β€” is INTEGER. The number of columns of the matrix C. N >= 0. 🌸
  • N1, N2 β€” N1 is INTEGER; N2 is INTEGER. The dimension of Q12 and Q21, respectively. N1, N2 >= 0. The following requirement must be satisfied: N1 + N2 = M if SIDE = 'L' and N1 + N2 = N if SIDE = 'R'. 🫢
  • Q β€” is REAL array, dimension (LDQ,M) if SIDE = 'L', (LDQ,N) if SIDE = 'R'. πŸ’œ
  • LDQ β€” is INTEGER. The leading dimension of the array Q. LDQ >= max(1,M) if SIDE = 'L'; LDQ >= max(1,N) if SIDE = 'R'. ⭐
  • C β€” is 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. πŸ”₯
  • LDC β€” is INTEGER. The leading dimension of the array C. LDC >= max(1,M). 🌈
  • WORK β€” is REAL array, dimension (MAX(1,LWORK)). On exit, if INFO = 0, WORK(1) returns the optimal LWORK. ✨
  • LWORK β€” is INTEGER. The dimension of the array WORK. If SIDE = 'L', LWORK >= max(1,N); if SIDE = 'R', LWORK >= max(1,M). For optimum performance LWORK >= M*N. 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 β€” 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.

πŸ“ Definition at line 161 of file sorm22.f.


πŸ‘‘ Author πŸ‘‘

Generated automatically by Doxygen for LAPACK from the source code. πŸ€–


Okay that’s the whole page, bestie. Footer source/version tea: LAPACK Version 3.12.0, page SRC/sorm22.f(3) β€” and there’s no separate date shown there, so I’m not inventing one. Signing off with main character energy. πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from