DOPMTR(3)

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

πŸ¦‹ DOPMTR(3) β€” bestie, it's the packed-reflector apply routine πŸ¦‹

okay so this page lives at /home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/dopmtr.f β€” that's the NAME bit, bestie, that whole entire path is literally the name of this page πŸ’… and yes it's from the LAPACK Library Functions Manual, we love a glow-up πŸŽ€


✨ SYNOPSIS ✨

Functions/Subroutines

subroutine DOPMTR (side, uplo, trans, m, n, ap, tau, c, ldc, work, info)

DOPMTR β€” that's the whole vibe, no cap 🫢


🌸 Function/Subroutine Documentation 🌸

subroutine DOPMTR (character side, character uplo, character trans, integer
    m, integer n, double precision, dimension( * ) ap, double precision,
    dimension( * ) tau, double precision, dimension( ldc, * ) c, integer
    ldc, double precision, dimension( * ) work, integer info)

DOPMTR ✨ (again, iconic, we stan a self-titled moment)

πŸ’– Purpose:

okay so here's the tea, bestie β€” DOPMTR 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 DSPTRD using packed storage 🌈:

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

like, it's giving "I'm just gonna quietly replace your matrix and then leave" 😭 main character energy fr fr

πŸŽ€ 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 triangular packed storage used in previous call to DSPTRD;
    • = 'L': Lower triangular packed storage used in previous call to DSPTRD.
  • TRANS β€” TRANS is CHARACTER*1 ⭐
    • = 'N': No transpose, apply Q;
    • = 'T': Transpose, apply Q**T.
  • 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.
  • AP β€” AP is DOUBLE PRECISION array, dimension
    • (M*(M+1)/2) if SIDE = 'L'
    • (N*(N+1)/2) if SIDE = 'R'

The vectors which define the elementary reflectors, as returned by DSPTRD. AP is modified by the routine but restored on exit. (so like, it goes out, has a little adventure, comes back exactly the same β€” we love a routine that puts things back where it found them 🫢)

  • TAU β€” TAU is DOUBLE PRECISION array, dimension (M-1) if SIDE = 'L' or (N-1) if SIDE = 'R' πŸ’œ
    • TAU(i) must contain the scalar factor of the elementary reflector H(i), as returned by DSPTRD.
  • C β€” C is DOUBLE PRECISION 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. (she's been transformed, she's a whole new woman πŸ’…)
  • LDC β€” LDC is INTEGER πŸ‘‘
    • The leading dimension of the array C. LDC >= max(1,M).
  • WORK β€” WORK is DOUBLE PRECISION 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

Definition at line 148 of file dopmtr.f.


🌈 Author

Generated automatically by Doxygen for LAPACK from the source code. (yes bestie, a robot wrote it, and honestly? it ate πŸ™ˆ)


okay so that's the whole page πŸ’– cute little sign-off time: this was LAPACK, Version 3.12.0, and the file is /home/abui...RC/dopmtr.f(3) β€” go forth and apply those reflectors, bestie, you've got this πŸ§šπŸŽ€πŸ’œ

πŸ“¦ where this page comes from