SRC/sorml2.f(3)

🌸 SRC/sorml2.f(3) 🌸

okay so this is a Library Functions Manual page, and the title is SRC/sorml2.f(3) β€” yes bestie, we're deep in the LAPACK Fortran zone and it's lowkey iconic. πŸ’…


✨ NAME ✨

SRC/sorml2.f β€” that's the whole name, no cap. πŸŽ€

✨ SYNOPSIS ✨

πŸ’« Functions/Subroutines πŸ’«

subroutine sorml2 (side, trans, m, n, k, a, lda, tau, c, ldc, work,
    info)
  • sorml2 β€” SORML2 multiplies a general matrix by the orthogonal matrix from a LQ factorization determined by sgelqf (unblocked algorithm). slay.

πŸŽ€ Function/Subroutine Documentation πŸŽ€

subroutine sorml2 (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 info)

SORML2 multiplies a general matrix by the orthogonal matrix from a LQ factorization determined by sgelqf (unblocked algorithm).

🎯 Purpose 🎯

okay so here's the vibe: SORML2 overwrites the general real m by n matrix C with β€” and now the equations, bestie:

      Q * C  if SIDE = 'L' and TRANS = 'N', or
      Q**T* C  if SIDE = 'L' and TRANS = 'T', or
      C * Q  if SIDE = 'R' and TRANS = 'N', or
      C * Q**T if SIDE = 'R' and TRANS = '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 SGELQF. Q is of order m if SIDE = 'L' and of order n if SIDE = 'R'. 🫢

πŸ’« Parameters πŸ’«

πŸ¦‹ SIDE

  • SIDE is CHARACTER*1
    • = 'L': apply Q or Q**T from the Left
    • = 'R': apply Q or Q**T from the Right

πŸ¦‹ TRANS

  • TRANS is CHARACTER*1
    • = 'N': apply Q (No transpose)
    • = 'T': apply Q**T (Transpose)

πŸ¦‹ M

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

πŸ¦‹ N

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

πŸ¦‹ K

  • K is 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

  • A is REAL array, dimension
    • (LDA,M) if SIDE = 'L',
    • (LDA,N) if SIDE = 'R'
  • The i-th row must contain the vector which defines the elementary reflector H(i), for i = 1,2,...,k, as returned by SGELQF in the first k rows of its array argument A.
  • A is modified by the routine but restored on exit. πŸ™ˆ

πŸ¦‹ LDA

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

πŸ¦‹ TAU

  • TAU is REAL array, dimension (K)
  • TAU(i) must contain the scalar factor of the elementary reflector H(i), as returned by SGELQF.

πŸ¦‹ C

  • 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

  • LDC is INTEGER
  • The leading dimension of the array C. LDC >= max(1,M).

πŸ¦‹ WORK

  • WORK is REAL array, dimension
    • (N) if SIDE = 'L',
    • (M) if SIDE = 'R'

πŸ¦‹ INFO

  • 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 157 of file sorml2.f.

πŸ’… Author πŸ’…

Generated automatically by Doxygen for LAPACK from the source code. ✨


πŸ’– okay that's the whole page, bestie β€” LAPACK Version 3.12.0, SRC/sorml2.f(3) β€” mwah! πŸ’–

πŸ“¦ where this page comes from