tplqt(3)

πŸ’… tplqt(3) β€” Library Functions Manual πŸŽ€

okay bestie so this is tplqt from the Library Functions Manual (that's section 3, the "library functions" girlies) β€” and before you ask, yes, the NAME section literally says:

✨ NAME ✨

tplqt β€” and the one-line description is "tplqt: QR factor". That's it. That's the whole summary. She's mysterious, she's concise, she contains multitudes. πŸ¦‹


🌸 SYNOPSIS 🌸

Functions

  • subroutine ctplqt (m, n, l, mb, a, lda, b, ldb, t, ldt, work, info) β€” CTPLQT πŸ’œ
  • subroutine dtplqt (m, n, l, mb, a, lda, b, ldb, t, ldt, work, info) β€” DTPLQT πŸ’œ
  • subroutine stplqt (m, n, l, mb, a, lda, b, ldb, t, ldt, work, info) β€” STPLQT πŸ’œ
  • subroutine ztplqt (m, n, l, mb, a, lda, b, ldb, t, ldt, work, info) β€” ZTPLQT πŸ’œ

so yeah, four of them β€” one per precision/flavour β€” and they all take the exact same argument list. iconic consistency, no notes. πŸ™ˆ


πŸ‘‘ Detailed Description πŸ‘‘

okay so the page has a whole Detailed Description heading and then... genuinely nothing under it. she's a blank canvas. a vibe. we move on to the good part. πŸ’€


πŸ”₯ Function Documentation πŸ”₯

⭐ subroutine ctplqt ⭐

subroutine ctplqt (integer m, integer n, integer l, integer mb, complex,
     dimension( lda, * ) a, integer lda, complex, dimension( ldb, * ) b,
     integer ldb, complex, dimension( ldt, * ) t, integer ldt, complex,
     dimension( * ) work, integer info)

CTPLQT β€” this is the complex one, bestie. 🫢

🌈 Purpose:

CTPLQT computes a blocked LQ factorization of a complex matrix C, and C is made of two pieces: a triangular block A and a pentagonal block B, all using the compact WY representation for Q. that's the whole assignment. periodt.

πŸ’– Parameters

  • M β€” M is INTEGER. it's the number of rows of the matrix B, and also the order of the triangular matrix A. M >= 0.
  • N β€” N is INTEGER. the number of columns of the matrix B. N >= 0.
  • L β€” L is INTEGER. the number of rows of the lower trapezoidal part of B. MIN(M,N) >= L >= 0. peep Further Details if you want the tea. πŸ“
  • MB β€” MB is INTEGER. the block size to be used in the blocked QR. M >= MB >= 1.
  • A β€” A is COMPLEX array, dimension (LDA,M). on entry, it's 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. glow-up fr fr ✨
  • LDA β€” LDA is INTEGER. the leading dimension of the array A. LDA >= max(1,M).
  • B β€” B is COMPLEX array, dimension (LDB,N). on entry, it's 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). she changed outfits mid-scene πŸ’…
  • LDB β€” LDB is INTEGER. the leading dimension of the array B. LDB >= max(1,M).
  • T β€” T is COMPLEX array, dimension (LDT,N). the lower triangular block reflectors stored in compact form as a sequence of upper triangular blocks. see Further Details.
  • LDT β€” LDT is INTEGER. the leading dimension of the array T. LDT >= MB.
  • WORK β€” WORK is COMPLEX array, dimension (MB*M).
  • 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.

πŸ¦‹ Further Details:

okay this is the part where she gets detailed. stay with me.

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

     C = [ A ] [ B ]

where A is a lower triangular M-by-M matrix, and B is a M-by-N pentagonal matrix consisting of a M-by-(N-L) rectangular matrix B1 on the 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 M-by-M 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. cute lil special cases, love that for her. πŸŽ€

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 the 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:

     [ V ] = [ 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 number of blocks is B = ceiling(M/MB), where each block is of order MB except for the last block, which is of order IB = M - (M-1)*MB. for each of the B blocks, an upper triangular block reflector factor is computed: T1, T2, ..., TB. the MB-by-MB (and IB-by-IB for the last block) T's are stored in the MB-by-N matrix T as:

     T = [T1 T2 ... TB].

Definition at line 172 of file ctplqt.f.


⭐ subroutine dtplqt ⭐

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

DTPLQT β€” same energy, but make it DOUBLE PRECISION. πŸ’―

🌈 Purpose:

DTPLQT computes a blocked LQ factorization of a real matrix C, which is composed of a triangular block A and a pentagonal block B, using the compact WY representation for Q. no cap.

πŸ’– Parameters

  • M β€” M is INTEGER. the number of rows of the matrix B, and the order of the triangular matrix A. M >= 0.
  • N β€” N is INTEGER. the number of columns of the matrix B. N >= 0.
  • L β€” L is INTEGER. the number of rows of the lower trapezoidal part of B. MIN(M,N) >= L >= 0. see Further Details.
  • MB β€” MB is INTEGER. the block size to be used in the blocked QR. M >= MB >= 1.
  • 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.
  • LDA β€” LDA is INTEGER. the leading dimension of the array A. 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.
  • LDB β€” LDB is INTEGER. the leading dimension of the array B. LDB >= max(1,M).
  • T β€” T is DOUBLE PRECISION array, dimension (LDT,N). the lower triangular block reflectors stored in compact form as a sequence of upper triangular blocks. see Further Details.
  • LDT β€” LDT is INTEGER. the leading dimension of the array T. LDT >= MB.
  • WORK β€” WORK is DOUBLE PRECISION array, dimension (MB*M).
  • 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.

πŸ¦‹ Further Details:

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

     C = [ A ] [ B ]

where A is a lower triangular M-by-M matrix, and B is a M-by-N pentagonal matrix consisting of a M-by-(N-L) rectangular matrix B1 on the 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 M-by-M 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 the 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:

     [ V ] = [ 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 number of blocks is B = ceiling(M/MB), where each block is of order MB except for the last block, which is of order IB = M - (M-1)*MB. for each of the B blocks, an upper triangular block reflector factor is computed: T1, T2, ..., TB. the MB-by-MB (and IB-by-IB for the last block) T's are stored in the MB-by-N matrix T as:

     T = [T1 T2 ... TB].

Definition at line 187 of file dtplqt.f.


⭐ subroutine stplqt ⭐

subroutine stplqt (integer m, integer n, integer l, integer mb, real,
     dimension( lda, * ) a, integer lda, real, dimension( ldb, * ) b, integer
     ldb, real, dimension( ldt, * ) t, integer ldt, real, dimension( * )
     work, integer info)

STPLQT β€” the single-precision one, and she's next up on the scroll, bestie...

🌈 Purpose:

(...and that's literally where this part of the page runs out β€” STPLQT's purpose and everything after it is coming in part 2, so don't go anywhere 🌸)

okay so we're back and we're literally right in the STPLQT parameter zone β€” no cap, no recap spam. Quick vibe check first: STPLQT computes a blocked LQ 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. That's the whole main-character plot. πŸ’…

✨ Parameters ✨

  • M β€” INTEGER. The number of rows of the matrix B, and the order of the triangular matrix A. M >= 0.
  • N β€” INTEGER. The number of columns of the matrix B. N >= 0.
  • L β€” INTEGER. The number of rows of the lower trapezoidal part of B. MIN(M,N) >= L >= 0. See Further Details.
  • MB β€” INTEGER. The block size to be used in the blocked QR. M >= MB >= 1.
  • A β€” REAL 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.
  • LDA β€” INTEGER. The leading dimension of the array A. LDA >= max(1,M).
  • B β€” REAL 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.
  • LDB β€” INTEGER. The leading dimension of the array B. LDB >= max(1,M).
  • T β€” REAL array, dimension (LDT,N). The lower triangular block reflectors stored in compact form as a sequence of upper triangular blocks. See Further Details.
  • LDT β€” INTEGER. The leading dimension of the array T. LDT >= MB.
  • WORK β€” REAL array, dimension (MB*M)
  • INFO β€” 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.

πŸ¦‹ Further Details: πŸ¦‹

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

  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 on 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
  M-by-M 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,
            [ V ] = [ 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 number of blocks is B = ceiling(M/MB), where each
  block is of order MB except for the last block, which is of order
  IB = M - (M-1)*MB.  For each of the B blocks, a upper triangular block
  reflector factor is computed: T1, T2, ..., TB.  The MB-by-MB (and IB-by-IB
  for the last block) T's are stored in the MB-by-N matrix T as

               T = [T1 T2 ... TB].

Definition at line 187 of file stplqt.f.


πŸ’œ ztplqt β€” the complex*16 twin πŸ’œ

subroutine ztplqt (integer m, integer n, integer l, integer mb, complex*16,
    dimension( lda, * ) a, integer lda, complex*16, dimension( ldb, * ) b,
    integer ldb, complex*16, dimension( ldt, * ) t, integer ldt, complex*16,
    dimension( * ) work, integer info)

ZTPLQT

✨ Purpose ✨

ZTPLQT computes a blocked LQ factorization of a complex matrix C, which is composed of a triangular block A and pentagonal block B, using the compact WY representation for Q.

✨ Parameters ✨

  • M β€” INTEGER. The number of rows of the matrix B, and the order of the triangular matrix A. M >= 0.
  • N β€” INTEGER. The number of columns of the matrix B. N >= 0.
  • L β€” INTEGER. The number of rows of the lower trapezoidal part of B. MIN(M,N) >= L >= 0. See Further Details.
  • MB β€” INTEGER. The block size to be used in the blocked QR. M >= MB >= 1.
  • A β€” COMPLEX*16 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.
  • LDA β€” INTEGER. The leading dimension of the array A. LDA >= max(1,M).
  • B β€” COMPLEX*16 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.
  • LDB β€” INTEGER. The leading dimension of the array B. LDB >= max(1,M).
  • T β€” COMPLEX*16 array, dimension (LDT,N). The lower triangular block reflectors stored in compact form as a sequence of upper triangular blocks. See Further Details.
  • LDT β€” INTEGER. The leading dimension of the array T. LDT >= MB.
  • WORK β€” COMPLEX*16 array, dimension (MB*M)
  • INFO β€” 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.

πŸ¦‹ Further Details: πŸ¦‹

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

  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 on 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
  M-by-M 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,
            [ V ] = [ 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 number of blocks is B = ceiling(M/MB), where each
  block is of order MB except for the last block, which is of order
  IB = M - (M-1)*MB.  For each of the B blocks, a upper triangular block
  reflector factor is computed: T1, T2, ..., TB.  The MB-by-MB (and IB-by-IB
  for the last block) T's are stored in the MB-by-N matrix T as

               T = [T1 T2 ... TB].

Definition at line 187 of file ztplqt.f.

✨ Author ✨

Generated automatically by Doxygen for LAPACK from the source code.


and that's the whole tplqt(3) page, bestie β€” the footer's whole flex is LAPACK Version 3.12.0 with the page name tplqt(3), and it ate. periodt. πŸ’…πŸ«Άβœ¨

πŸ“¦ where this page comes from