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

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

πŸ’– zgeqrt2.f β€” LAPACK Library Functions Manual πŸ’–

okay bestie, so this one lives at /home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/zgeqrt2.f and it's part of the LAPACK manual, and honestly? she's a whole icon. it's giving linear algebra but make it fashion. let's get into it ✨


🌸 NAME 🌸

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

that's her. that's the file. no cap, that whole path is a mouthful but we respect the build directory aesthetic πŸŽ€


πŸ¦‹ SYNOPSIS πŸ¦‹

Functions/Subroutines

subroutine ZGEQRT2 (m, n, a, lda, t, ldt, info)

ZGEQRT2 computes a QR factorization of a general real or complex matrix using the compact WY representation of Q.


πŸ’… Function/Subroutine Documentation πŸ’…

subroutine ZGEQRT2 (integer m, integer n, complex*16, dimension( lda, * ) a,
    integer lda, complex*16, dimension( ldt, * ) t, integer ldt, integer
    info)

ZGEQRT2 computes a QR factorization of a general real or complex matrix using the compact WY representation of Q.

⭐ Purpose:

!>
!> ZGEQRT2 computes a QR factorization of a complex M-by-N matrix A,
!> using the compact WY representation of Q.
!>

like literally she takes your matrix and does the whole QR glow-up with the compact WY representation of Q. main character energy fr fr πŸ”₯

πŸŽ€ Parameters

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

the row count, bestie. and yes, M >= N β€” that's not a suggestion, that's the law πŸ’€

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

column count. N >= 0, so zero is allowed, we love a low-maintenance dimension πŸ™ˆ

  • A
!>          A is COMPLEX*16 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.
!>

okay so on entry it's just your cute little complex M-by-N matrix A. on exit? transformation. the elements on and above the diagonal? that's R, the N-by-N upper triangular queen πŸ‘‘. the elements below the diagonal? those are the columns of V. see below for the details, iykyk πŸ’œ

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

leading dimension of A. must be LDA >= max(1,M). respect the boundary or else 😭

  • T
!>          T is COMPLEX*16 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 the N-by-N upper triangular factor of the block reflector, slay. elements on and above the diagonal = the block reflector T. elements below the diagonal = not used, they're just vibing, leave them alone 🫢

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

leading dimension of T, and it's gotta be LDT >= max(1,N). periodt.

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

the vibe check of return codes:

  • = 0 β†’ successful exit, we ate, no notes ✨
  • < 0 β†’ if INFO = -i, the i-th argument had an illegal value. not me pointing fingers at argument number i πŸ’€

🌈 Author

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

four whole institutions collaborated on this. collaborative queen behavior 🧚

πŸ”₯ 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.
!>

okay so here's the tea β˜• β€” the matrix V stores the elementary reflectors H(i) in the i-th column below the diagonal. example time: if M=5 and N=3, the matrix V is:

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

the vi's are the vectors that define H(i), and they get returned inside the matrix A. the 1's along the diagonal of V are not stored in A β€” they're implied, they don't need a whole storage slot, lowkey iconic 🌟

and then the block reflector H is given by:

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

where V**H is the conjugate transpose of V. conjugate transpose!! she's fancy πŸ’…


⭐ Definition ⭐

Definition at line 126 of file zgeqrt2.f.


🫢 Author

Generated automatically by Doxygen for LAPACK from the source code.


and that's the whole page bestie, no crumbs left behind πŸ“

LAPACK, Version 3.12.0 β€” and this blessed page for /home/abui.../zgeqrt2.f(3) was brought to you by the fine folks above. bye bye, go factor something πŸ’–βœ¨

πŸ“¦ where this page comes from