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

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

πŸ’… NAME πŸ’…

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

okay so bestie, that's the whole file path, like, the entire government name of this thing πŸŽ€ (and yes, this page lives in the Library Functions Manual, iykyk)


✨ SYNOPSIS ✨

Functions/Subroutines

recursive subroutine CGEQRT3 (m, n, a, lda, t, ldt, info)

so CGEQRT3 recursively computes a QR factorization of a general real or complex matrix using the compact WY representation of Q. that's the whole vibe. πŸ’–


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

recursive subroutine CGEQRT3 (integer m, integer n, complex, dimension( lda, * ) a, integer lda, complex, dimension( ldt, * ) t, integer ldt, integer info)

CGEQRT3 recursively computes a QR factorization of a general real or complex matrix using the compact WY representation of Q. periodt. ✨

🌸 Purpose:

!>
!> CGEQRT3 recursively computes a QR factorization of a complex M-by-N matrix A,
!> using the compact WY representation of Q.
!>
!> Based on the algorithm of Elmroth and Gustavson,
!> IBM J. Res. Develop. Vol 44 No. 4 July 2000.
!>

no cap, that's literally the purpose, and it's built on the algorithm of Elmroth and Gustavson, IBM J. Res. Develop. Vol 44 No. 4 July 2000. iconic lineage fr fr πŸ‘‘

πŸŽ€ Parameters πŸŽ€

  • M
!>          M is INTEGER
!>          The number of rows of the matrix A.  M >= N.
!>

so M is INTEGER, it's how many rows A has, and the rule is M >= N. don't break it πŸ™ˆ

  • N
!>          N is INTEGER
!>          The number of columns of the matrix A.  N >= 0.
!>

N is INTEGER too, it's the column count of A, and N >= 0. zero is allowed bestie, negative is not πŸ’…

  • A
!>          A is COMPLEX array, dimension (LDA,N)
!>          On entry, the complex M-by-N matrix A.  On exit, the elements on and
!>          above the diagonal contain the N-by-N upper triangular matrix R; the
!>          elements below the diagonal are the columns of V.  See below for
!>          further details.
!>

A is a COMPLEX array of dimension (LDA,N). on entry it's the complex M-by-N matrix A. on exit β€” plot twist β€” the elements on and above the diagonal hold the N-by-N upper triangular matrix R, and the elements below the diagonal are the columns of V. see below for further details, she's got lore πŸ‘€

  • LDA
!>          LDA is INTEGER
!>          The leading dimension of the array A.  LDA >= max(1,M).
!>

the leading dimension of A. and LDA >= max(1,M) β€” respect the leading dimension or perish 🫢

  • T
!>          T is COMPLEX array, dimension (LDT,N)
!>          The N-by-N upper triangular factor of the block reflector.
!>          The elements on and above the diagonal contain the block
!>          reflector T; the elements below the diagonal are not used.
!>          See below for further details.
!>

T is a COMPLEX array with dimension (LDT,N), and it's the N-by-N upper triangular factor of the block reflector. the on-and-above-diagonal elements contain the block reflector T; the below-diagonal elements are simply not used β€” they're just there, vibing, unemployed πŸ’€

  • LDT
!>          LDT is INTEGER
!>          The leading dimension of the array T.  LDT >= max(1,N).
!>

leading dimension of T, and it's LDT >= max(1,N), no exceptions ✨

  • INFO
!>          INFO is INTEGER
!>          = 0: successful exit
!>          < 0: if INFO = -i, the i-th argument had an illegal value
!>

the status report bestie:

  • = 0 β€” successful exit, we ate πŸ“
  • < 0 β€” if INFO = -i, the i-th argument had an illegal value. something was wrong and she's telling you exactly which one 😭

πŸ‘‘ Author πŸ‘‘

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

four whole institutions, they all showed up πŸ’œ

🌈 Further Details:

!>
!>  The matrix V stores the elementary reflectors H(i) in the i-th column
!>  below the diagonal. For example, if M=5 and N=3, the matrix V is
!>
!>               V = (  1       )
!>                   ( v1  1    )
!>                   ( v1 v2  1 )
!>                   ( v1 v2 v3 )
!>                   ( v1 v2 v3 )
!>
!>  where the vi's represent the vectors which define H(i), which are returned
!>  in the matrix A.  The 1's along the diagonal of V are not stored in A.  The
!>  block reflector H is then given by
!>
!>               H = I - V * T * V**H
!>
!>  where V**H is the conjugate transpose of V.
!>
!>  For details of the algorithm, see Elmroth and Gustavson (cited above).
!>

okay so let me break this down because it's giving main character math 🧚

the matrix V stores the elementary reflectors H(i) in the i-th column below the diagonal. for example, if M=5 and N=3, the matrix V is:

V = (  1       )
    ( v1  1    )
    ( v1 v2  1 )
    ( v1 v2 v3 )
    ( v1 v2 v3 )

where the vi's represent the vectors which define H(i), which are returned in the matrix A. the 1's along the diagonal of V are not stored in A (they're implied, she's lowkey shy). the block reflector H is then given by:

H = I - V * T * V**H

where V**H is the conjugate transpose of V. and for details of the algorithm, see Elmroth and Gustavson (cited above) β€” go read the source, bestie, it's all cited πŸ’…


Definition at line 131 of file cgeqrt3.f.


⭐ Author ⭐

Generated automatically by Doxygen for LAPACK from the source code. (yes the robot wrote this part, we respect the robot πŸ€–πŸ’–)


LAPACK β€” Version 3.12.0 πŸ¦‹

mwah, that's the whole page, you're so welcome, go factor some QR πŸ’œβœ¨πŸŽ€

πŸ“¦ where this page comes from