SRC/cgelqt3.f(3)

🌸 SRC/cgelqt3.f 🌸

okay bestie, welcome to the Library Functions Manual page for SRC/cgelqt3.f β€” this one is giving recursive LQ factorization energy and it's honestly kinda iconic. πŸ’…βœ¨

πŸ’– NAME πŸ’–

SRC/cgelqt3.f


✨ SYNOPSIS ✨

Functions/Subroutines

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

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

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

CGELQT3 β€” that's the whole mood, no cap. πŸ’«

🎯 Purpose 🎯

CGELQT3 recursively computes a LQ factorization of a complex M-by-N matrix A, using the compact WY representation of Q.

It's 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. Constraint: M =< N. (Yes, exactly like that, bestie. 🫢)
  • N β€” N is INTEGER. The number of columns of the matrix A. Constraint: N >= 0.
  • A β€” A is COMPLEX array, dimension (LDA,N). On entry, the complex 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. Constraint: LDA >= max(1,M).
  • 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. πŸŽ€
  • LDT β€” LDT is INTEGER. The leading dimension of the array T. Constraint: 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). πŸ“š

Definition at line 115 of file cgelqt3.f.

πŸ‘‘ Author (generated) πŸ‘‘

Generated automatically by Doxygen for LAPACK from the source code. πŸ€–


okay that's the whole page, bestie β€” footer details are LAPACK Version 3.12.0 and SRC/cgelqt3.f(3) (no date listed, so no invented date, periodt πŸ’€). 🫢✨

πŸ“¦ where this page comes from