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 line 130 of file dgelqt3.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