CUNM2L(3)

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

πŸ’… CUNM2L (3) β€” like, the whole entire manual page, bestie

okay so real talk: this page lives at /home/abui...RC/cunm2l.f(3) and it's part of the LAPACK Library Functions Manual. yes, the LAPACK. the icon behavior. let's get into it 🫢


✨ NAME ✨

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

that's the file, that's the whole name section, she's just a girl standing in front of a build path asking you to love her πŸ’€ (it's the Fortran source for CUNM2L, iykyk)


🌸 SYNOPSIS 🌸

Functions/Subroutines

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

CUNM2L multiplies a general matrix by the unitary matrix from a QL factorization determined by cgeqlf (unblocked algorithm). lowkey the whole plot right there ✨


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

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

CUNM2L multiplies a general matrix by the unitary matrix from a QL factorization determined by cgeqlf (unblocked algorithm). no cap, that's the summary, and she's serving it twice because she can πŸ’…


πŸŽ€ Purpose πŸŽ€

!> !> CUNM2L overwrites the general complex m-by-n matrix C with !> !> Q * C if SIDE = 'L' and TRANS = 'N', or !> !> QH* C if SIDE = 'L' and TRANS = 'C', or !> !> C * Q if SIDE = 'R' and TRANS = 'N', or !> !> C * QH if SIDE = 'R' and TRANS = 'C', !> !> where Q is a complex unitary matrix defined as the product of k !> elementary reflectors !> !> Q = H(k) . . . H(2) H(1) !> !> as returned by CGEQLF. Q is of order m if SIDE = 'L' and of order n !> if SIDE = 'R'. !>

so basically C gets completely overwritten (rip to whatever was in there before, she did NOT survive πŸ™ˆ) and Q is out here being a product of k elementary reflectors, in that exact order Q = H(k) . . . H(2) H(1), straight from CGEQLF. and Q's order? m if SIDE = 'L', n if SIDE = 'R'. main character energy depending on which side she's on πŸ‘‘


🌈 Parameters 🌈

  • SIDE β€” SIDE is CHARACTER*1. = 'L': apply Q or Q**H from the Left. = 'R': apply Q or Q**H from the Right. pick a side, bestie, it's giving left-vs-right discourse ⭐
  • TRANS β€” TRANS is CHARACTER*1. = 'N': apply Q (No transpose). = 'C': apply Q**H (Conjugate transpose). nah because the conjugate transpose is right there πŸ¦‹
  • M β€” M is INTEGER. The number of rows of the matrix C. M >= 0. rows, periodt.
  • N β€” N is INTEGER. The number of columns of the matrix C. N >= 0. columns, also periodt.
  • 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. so K's limits are literally side-dependent, respect the boundaries 😌
  • A β€” A is COMPLEX 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 CGEQLF in the last k columns of its array argument A. A is modified by the routine but restored on exit. ok so she borrows your array, ✨ rearranges it ✨, and puts it back. iconic, courteous, no notes πŸ’–
  • LDA β€” LDA is INTEGER. The leading dimension of the array A. If SIDE = 'L', LDA >= max(1,M); if SIDE = 'R', LDA >= max(1,N). don't fumble the leading dimension, it WILL notice πŸ’€
  • TAU β€” TAU is COMPLEX array, dimension (K). TAU(i) must contain the scalar factor of the elementary reflector H(i), as returned by CGEQLF. one scalar factor per reflector, she's organized like that πŸŽ€
  • C β€” C is COMPLEX array, dimension (LDC,N). On entry, the m-by-n matrix C. On exit, C is overwritten by Q*C or Q**H*C or C*Q**H or C*Q. entry vs exit, glow-up arc, we love a transformation 🌸
  • LDC β€” LDC is INTEGER. The leading dimension of the array C. LDC >= max(1,M). yes it's M here, not N, don't come for me, that's what it says 🫢
  • WORK β€” WORK is COMPLEX array, dimension (N) if SIDE = 'L', (M) if SIDE = 'R'. scratch space that switches sizes based on the side. she's flexible ✨
  • INFO β€” INFO is INTEGER. = 0: successful exit. < 0: if INFO = -i, the i-th argument had an illegal value. so if INFO comes back negative, that's the universe telling you argument number i was a little chaotic πŸ™ˆ

πŸ‘‘ Author πŸ‘‘

  • Univ. of Tennessee
  • Univ. of California Berkeley
  • Univ. of Colorado Denver
  • NAG Ltd.

four legends, one subroutine. ate and left no crumbs πŸ”₯


⭐ Definition ⭐

Definition at line 157 of file cunm2l.f. that's the exact line, go look, i'll wait πŸ’…


πŸ’œ Author (the meta one) πŸ’œ

Generated automatically by Doxygen for LAPACK from the source code. not a human, just a very diligent little documentation machine 🧚


okay that's the whole page, nothing skipped, nothing merged, all facts intact β€” and to close out: this beauty is LAPACK Version 3.12.0, dated to that same /home/abui...RC/cunm2l.f(3) footer energy. bye bestie, go multiply something πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from