SRC/dgelqt3.f(3)
β¨ SRC/dgelqt3.f β¨
okay so bestie, this is a page from the LAPACK manual β it's SRC/dgelqt3.f, and honestly? it's giving recursive linear algebra icon. let's get into it π
πΈ SYNOPSIS πΈ
Functions/Subroutines
- recursive subroutine
dgelqt3(m,n,a,lda,t,ldt,info) β DGELQT3 recursively computes a LQ factorization of a general real or complex matrix using the compact WY representation of Q.
π¦ Function/Subroutine Documentation π¦
recursive subroutine dgelqt3 (integer m, integer n, double precision, dimension( lda, * ) a, integer lda, double precision, dimension( ldt, * ) t, integer ldt, integer info)
DGELQT3 recursively computes a LQ factorization of a general real or complex matrix using the compact WY representation of Q. periodt. π₯
Purpose:
!>
!> DGELQT3 recursively computes a LQ factorization of a real 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.
!>
Parameters
M
!> M is INTEGER
!> The number of rows of the matrix A. M =< N.
!>
N
!> N is INTEGER
!> The number of columns of the matrix A. N >= 0.
!>
A
!> A is DOUBLE PRECISION array, dimension (LDA,N)
!> On entry, the real M-by-N matrix A. On exit, the elements on and
!> below the diagonal contain the N-by-N lower triangular matrix L; the
!> elements above the diagonal are the rows of V. See below for
!> further details.
!>
LDA
!> LDA is INTEGER
!> The leading dimension of the array A. LDA >= max(1,M).
!>
T
!> T is DOUBLE PRECISION 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.
!>
LDT
!> LDT is INTEGER
!> The leading dimension of the array T. LDT >= max(1,N).
!>
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 matrix V stores the elementary reflectors H(i) in the i-th row
!> above the diagonal. For example, if M=5 and N=3, the matrix V is
!>
!> V = ( 1 v1 v1 v1 v1 )
!> ( 1 v2 v2 v2 )
!> ( 1 v3 v3 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**T
!>
!> where V**T is the transpose of V.
!>
!> For details of the algorithm, see Elmroth and Gustavson (cited above).
!>
so yeah, that V = I - V * T * V**T situation is literally the whole block reflector vibe β the 1's on the diagonal of V are not stored in A, which is lowkey efficient of her tbh π
Definition at line130of filedgelqt3.f. π«Ά
π Author π
Generated automatically by Doxygen for LAPACK from the source code. no cap, the robots did this one π€β¨
and that's the whole page bestie!! π this beauty comes to you from LAPACK, Version 3.12.0 β <rainbow>slay, iconic, mathematically flawless</rainbow> πβπ
π¦ where this page comes from
- arch rolling: lapack-doc 3.12.1-2 Β· custom
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms