/home/abui.../dtplqt2.f(3)

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

πŸ¦‹ DTPLQT2 🌸

ok so this is a manpage from LAPACK, bestie β€” the Library Functions Manual situation β€” and we're talking about /home/abui.../dtplqt2.f(3). buckle up, it's a Fortran girlie and she's iconic πŸ’…


✨ NAME ✨

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

like, that's the whole path, that's her address, no cap 🏠


πŸŽ€ SYNOPSIS πŸŽ€

Functions/Subroutines

  • subroutine DTPLQT2 (m, n, l, a, lda, b, ldb, t, ldt, info) β€” DTPLQT2 computes a LQ factorization of a real or complex triangular-pentagonal "matrix", which is composed of a triangular block and a pentagonal block, using the compact WY representation for Q.

(i'm not gonna lie the original strings those words together with zero spaces, but you get the vibe ✨)


πŸ’– Function/Subroutine Documentation πŸ’–

subroutine DTPLQT2 (integer m, integer n, integer l, double precision,
    dimension( lda, * ) a, integer lda, double precision, dimension( ldb, *
    ) b, integer ldb, double precision, dimension( ldt, * ) t, integer ldt,
    integer info)

so DTPLQT2 computes a LQ factorization of a real or complex "triangular-pentagonal" matrix, which is composed of a triangular block and a pentagonal block, using the compact WY representation for Q. that's the whole personality 🫢

🌈 Purpose 🌈

!> !> DTPLQT2 computes a LQ a factorization of a real !> matrix C, which is composed of a triangular block A and pentagonal block B, !> using the compact WY representation for Q. !>

(yes the source really does say "a factorization", we are respecting her choices πŸ™ˆ)


πŸ“ Parameters πŸ“

  • M β€” !> !> M is INTEGER !> The total number of rows of the matrix B. !> M >= 0. !> β€” like, the row count of B, and it's gotta be zero or more, periodt πŸ’―
  • N β€” !> !> N is INTEGER !> The number of columns of the matrix B, and the order of !> the triangular matrix A. !> N >= 0. !> β€” columns of B and the order of A, she's doing double duty, main character energy πŸ‘‘
  • L β€” !> !> L is INTEGER !> The number of rows of the lower trapezoidal part of B. !> MIN(M,N) >= L >= 0. See Further Details. !> β€” the row count of B's lower trapezoidal part, and MIN(M,N) >= L >= 0, and yes go read Further Details, i'm serious πŸ“–
  • A β€” !> !> A is DOUBLE PRECISION array, dimension (LDA,M) !> On entry, the lower triangular M-by-M matrix A. !> On exit, the elements on and below the diagonal of the array !> contain the lower triangular matrix L. !> β€” comes in as the lower triangular M-by-M matrix A, leaves with the lower triangular matrix L living on and below the diagonal. glow-up fr ✨
  • LDA β€” !> !> LDA is INTEGER !> The leading dimension of the array A. LDA >= max(1,M). !> β€” leading dimension of A, gotta be LDA >= max(1,M) 🫑
  • B β€” !> !> B is DOUBLE PRECISION array, dimension (LDB,N) !> On entry, the pentagonal M-by-N matrix B. The first N-L columns !> are rectangular, and the last L columns are lower trapezoidal. !> On exit, B contains the pentagonal matrix V. See Further Details. !> β€” enters as the pentagonal M-by-N matrix B, first N-L columns rectangular, last L columns lower trapezoidal; exits holding the pentagonal matrix V. again: Further Details, bestie πŸ’€
  • LDB β€” !> !> LDB is INTEGER !> The leading dimension of the array B. LDB >= max(1,M). !> β€” leading dimension of B, LDB >= max(1,M) πŸ’œ
  • T β€” !> !> T is DOUBLE PRECISION array, dimension (LDT,M) !> The N-by-N upper triangular factor T of the block reflector. !> See Further Details. !> β€” the N-by-N upper triangular factor T of the block reflector. Further Details. you know the drill πŸŽ€
  • LDT β€” !> !> LDT is INTEGER !> The leading dimension of the array T. LDT >= max(1,M) !> β€” leading dimension of T, LDT >= max(1,M) (no period on that one, she's quirky like that) πŸ™ˆ
  • INFO β€” !> !> INFO is INTEGER !> = 0: successful exit !> < 0: if INFO = -i, the i-th argument had an illegal value !> β€” = 0 means we ate and left no crumbs 🍽️; < 0 means if INFO = -i, the i-th argument had an illegal value, and someone's getting read πŸ’€

πŸ‘‘ Author πŸ‘‘

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

the whole squad showed up, we love a collab 🌈


🧚 Further Details 🧚

ok this is the part where it gets math. stay with me πŸ’–

The input matrix C is a M-by-(M+N) matrix

         C = [ A ][ B ]

where A is an lower triangular M-by-M matrix, and B is M-by-N pentagonal matrix consisting of a M-by-(N-L) rectangular matrix B1 left of a M-by-L upper trapezoidal matrix B2:

         B = [ B1 ][ B2 ]
             [ B1 ]  <-     M-by-(N-L) rectangular
             [ B2 ]  <-     M-by-L lower trapezoidal.

The lower trapezoidal matrix B2 consists of the first L columns of a N-by-N lower triangular matrix, where 0 <= L <= MIN(M,N). If L=0, B is rectangular M-by-N; if M=L=N, B is lower triangular.

The matrix W stores the elementary reflectors H(i) in the i-th row above the diagonal (of A) in the M-by-(M+N) input matrix C

         C = [ A ][ B ]
             [ A ]  <- lower triangular M-by-M
             [ B ]  <- M-by-N pentagonal

so that W can be represented as

         W = [ I ][ V ]
             [ I ]  <- identity, M-by-M
             [ V ]  <- M-by-N, same form as B.

Thus, all of information needed for W is contained on exit in B, which we call V above. Note that V has the same form as B; that is,

         W = [ V1 ][ V2 ]
             [ V1 ] <-     M-by-(N-L) rectangular
             [ V2 ] <-     M-by-L lower trapezoidal.

The rows of V represent the vectors which define the H(i)'s. The (M+N)-by-(M+N) block reflector H is then given by

         H = I - W**T * T * W

where W^H is the conjugate transpose of W and T is the upper triangular factor of the block reflector.

ngl that last line is giving "the source says W^H but the formula says W**T" and we are simply not going to fight her about it 😭 the manpage said what it said

⭐ Definition ⭐

Definition at line 176 of file dtplqt2.f.


πŸ’« Author πŸ’«

Generated automatically by Doxygen for LAPACK from the source code.

(i didn't write this, a robot did, and honestly? she understood the assignment πŸ€–βœ¨)


LAPACK Β· Version 3.12.0 Β· /home/abui.../dtplqt2.f(3) β€” that's a wrap bestie, go factor something LQ-shaped, ily, bye πŸ«ΆπŸ’–πŸŽ€

πŸ“¦ where this page comes from