SORMTR(3)

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

πŸ¦‹ SORMTR(3) β€” Library Functions Manual πŸ¦‹

okay bestie, welcome to SORMTR(3) β€” the LAPACK page that’s about applying a real orthogonal matrix Q to a matrix C. It’s giving linear algebra main character energy, and yes, we’re gonna get through every single parameter together. πŸ’…


πŸ“› NAME

/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/sormtr.f

Like, that’s literally the NAME section. The whole path. Iconic, honestly. πŸŽ€

✨ SYNOPSIS

🧚 Functions/Subroutines

subroutine SORMTR (side, uplo, trans, m, n, a, lda, tau, c, ldc, work,
           lwork, info)

SORMTR.

πŸ“š Function/Subroutine Documentation

πŸŽ€ subroutine SORMTR (character side, character uplo, character trans, integer m, integer n, real, dimension( lda, * ) a, integer lda, real, dimension( * ) tau, real, dimension( ldc, * ) c, integer ldc, real, dimension( * ) work, integer lwork, integer info)

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

SORMTR. periodt. 🌈

🌸 Purpose

okay so here’s the tea: SORMTR 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'. Q is defined as the product of nq-1 elementary reflectors, as returned by SSYTRD:

  • if UPLO = 'U', Q = H(nq-1) . . . H(2) H(1);
  • if UPLO = 'L', Q = H(1) H(2) . . . H(nq-1).

Lowkey beautiful. Highkey still a lot of indices. 😭

πŸŽ›οΈ Parameters

  • SIDE β€” SIDE is CHARACTER*1
    • = 'L': apply Q or Q**T from the Left;
    • = 'R': apply Q or Q**T from the Right.
  • UPLO β€” UPLO is CHARACTER*1
    • = 'U': Upper triangle of A contains elementary reflectors from SSYTRD;
    • = 'L': Lower triangle of A contains elementary reflectors from SSYTRD.
  • TRANS β€” TRANS is CHARACTER*1
    • = 'N': No transpose, apply Q;
    • = 'T': Transpose, apply Q**T.
  • M β€” M is INTEGER. It’s the number of rows of the matrix C. M >= 0 β€” no shady negative row counts here. 🫢
  • N β€” N is INTEGER. It’s the number of columns of the matrix C. N >= 0 β€” same vibe check, bestie. ✨
  • A β€” A is REAL array, dimension
    • (LDA,M) if SIDE = 'L'
    • (LDA,N) if SIDE = 'R'

The vectors which define the elementary reflectors, as returned by SSYTRD.

  • LDA β€” LDA is INTEGER. It’s the leading dimension of the array A. LDA >= max(1,M) if SIDE = 'L'; LDA >= max(1,N) if SIDE = 'R'. Respect the leading dimension, fr fr. πŸ’€
  • TAU β€” TAU is REAL array, dimension
    • (M-1) if SIDE = 'L'
    • (N-1) if SIDE = 'R'

TAU(i) must contain the scalar factor of the elementary reflector H(i), as returned by SSYTRD.

  • 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. So yeah, C gets a whole glow-up. πŸ’–
  • LDC β€” LDC is INTEGER. It’s the leading dimension of the array C. LDC >= max(1,M). That’s the rule, no cap. πŸŽ€
  • WORK β€” WORK is REAL array, dimension (MAX(1,LWORK)). On exit, if INFO = 0, WORK(1) returns the optimal LWORK. Cute little workspace behavior. 🧚
  • LWORK β€” LWORK is INTEGER. It’s the dimension of the array WORK.

If SIDE = 'L', LWORK >= max(1,N); if SIDE = 'R', LWORK >= max(1,M).

For optimum performance LWORK >= N*NB if SIDE = 'L', and LWORK >= M*NB if SIDE = 'R', where NB is the optimal blocksize.

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. Important little plot twist, bestie. ⭐

  • 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 170 of file sormtr.f.

πŸ‘‘ Author

Generated automatically by Doxygen for LAPACK from the source code.


mwah πŸ’‹ this page is from LAPACK Version 3.12.0, and the footer source path is /home/abui...RC/sormtr.f(3). Slay, bestie β€” go apply that Q responsibly. 🫢

πŸ“¦ where this page comes from