geqr2p(3)

✨ NAME ✨

okay so this is geqr2p(3) β€” the whole family of geqr2p routines β€” and the tagline the page gives it is literally geqr2p: QR factor, diag( R ) β‰₯ 0, level 2. bestie that's QR factorization with a non-negative diagonal, level 2, no cap πŸ’…

✨ SYNOPSIS ✨

🌸 Functions 🌸

  • subroutine cgeqr2p (m, n, a, lda, tau, work, info) β€” CGEQR2P computes the QR factorization of a general rectangular matrix with non-negative diagonal elements using an unblocked algorithm. πŸ’–
  • subroutine dgeqr2p (m, n, a, lda, tau, work, info) β€” DGEQR2P computes the QR factorization of a general rectangular matrix with non-negative diagonal elements using an unblocked algorithm.
  • subroutine sgeqr2p (m, n, a, lda, tau, work, info) β€” SGEQR2P computes the QR factorization of a general rectangular matrix with non-negative diagonal elements using an unblocked algorithm.
  • subroutine zgeqr2p (m, n, a, lda, tau, work, info) β€” ZGEQR2P computes the QR factorization of a general rectangular matrix with non-negative diagonal elements using an unblocked algorithm. πŸ¦‹

✨ Detailed Description ✨

so like, four routines, same energy, different precision. each one does the same unblocked QR thing but with non-negative diagonal entries β€” that's the whole p situation, iykyk πŸ‘‘

✨ Function Documentation ✨

πŸ’œ subroutine cgeqr2p (integer m, integer n, complex, dimension( lda, * ) a, integer lda, complex, dimension( * ) tau, complex, dimension( * ) work, integer info) πŸ’œ

CGEQR2P computes the QR factorization of a general rectangular matrix with non-negative diagonal elements using an unblocked algorithm.

πŸŽ€ Purpose: πŸŽ€

so CGEQR2P computes a QR factorization of a complex m-by-n matrix A, like this:

   A = Q * ( R ),
           ( 0 )

where, in the page's own words:

  • Q is a m-by-m orthogonal matrix;
  • R is an upper-triangular n-by-n matrix with nonnegative diagonal entries;
  • 0 is a (m-n)-by-n zero matrix, if m > n.

that's it, that's the whole vibe ✨

🌈 Parameters 🌈

  • M β€” M is INTEGER. The number of rows of the matrix A. M >= 0. lowkey the most important number here, no pressure 🫢
  • N β€” N is INTEGER. The number of columns of the matrix A. N >= 0.
  • A β€” A is COMPLEX array, dimension (LDA,N). On entry, the m by n matrix A. On exit, the elements on and above the diagonal of the array contain the min(m,n) by n upper trapezoidal matrix R (R is upper triangular if m >= n). The diagonal entries of R are real and nonnegative; the elements below the diagonal, with the array TAU, represent the unitary matrix Q as a product of elementary reflectors (see Further Details). πŸ’€ like she does a whole transformation on the way out
  • LDA β€” LDA is INTEGER. The leading dimension of the array A. LDA >= max(1,M). respect the leading dimension bestie 🚨
  • TAU β€” TAU is COMPLEX array, dimension (min(M,N)). The scalar factors of the elementary reflectors (see Further Details).
  • WORK β€” WORK is COMPLEX array, dimension (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 Q is represented as a product of elementary reflectors:

   Q = H(1) H(2) . . . H(k), where k = min(m,n).

Each H(i) has the form

   H(i) = I - tau * v * v**H

where tau is a complex scalar, and v is a complex vector with v(1:i-1) = 0 and v(i) = 1; v(i+1:m) is stored on exit in A(i+1:m,i), and tau in TAU(i).

See Lapack Working Note 203 for details. ⭐

Definition at line 133 of file cgeqr2p.f.


πŸ¦‹ subroutine dgeqr2p (integer m, integer n, double precision, dimension( lda, * ) a, integer lda, double precision, dimension( * ) tau, double precision, dimension( * ) work, integer info) πŸ¦‹

DGEQR2P computes the QR factorization of a general rectangular matrix with non-negative diagonal elements using an unblocked algorithm.

πŸŽ€ Purpose: πŸŽ€

DGEQR2P computes a QR factorization of a real m-by-n matrix A:

   A = Q * ( R ),
           ( 0 )

where:

  • Q is a m-by-m orthogonal matrix;
  • R is an upper-triangular n-by-n matrix with nonnegative diagonal entries;
  • 0 is a (m-n)-by-n zero matrix, if m > n.

same energy, double the precision, we love to see it πŸ’–

🌈 Parameters 🌈

  • M β€” M is INTEGER. The number of rows of the matrix A. M >= 0.
  • 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 m by n matrix A. On exit, the elements on and above the diagonal of the array contain the min(m,n) by n upper trapezoidal matrix R (R is upper triangular if m >= n). The diagonal entries of R are nonnegative; the elements below the diagonal, with the array TAU, represent the orthogonal matrix Q as a product of elementary reflectors (see Further Details).
  • LDA β€” LDA is INTEGER. The leading dimension of the array A. LDA >= max(1,M).
  • TAU β€” TAU is DOUBLE PRECISION array, dimension (min(M,N)). The scalar factors of the elementary reflectors (see Further Details).
  • WORK β€” WORK is DOUBLE PRECISION array, dimension (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 Q is represented as a product of elementary reflectors:

   Q = H(1) H(2) . . . H(k), where k = min(m,n).

Each H(i) has the form

   H(i) = I - tau * v * v**T

where tau is a real scalar, and v is a real vector with v(1:i-1) = 0 and v(i) = 1; v(i+1:m) is stored on exit in A(i+1:m,i), and tau in TAU(i).

See Lapack Working Note 203 for details. 🌸

Definition at line 133 of file dgeqr2p.f.


🌟 subroutine sgeqr2p (integer m, integer n, real, dimension( lda, * ) a, integer lda, real, dimension( * ) tau, real, dimension( * ) work, integer info) 🌟

SGEQR2P computes the QR factorization of a general rectangular matrix with non-negative diagonal elements using an unblocked algorithm.

πŸŽ€ Purpose: πŸŽ€

SGEQR2P computes a QR factorization of a real m-by-n matrix A:

   A = Q * ( R ),
           ( 0 )

where:

  • Q is a m-by-m orthogonal matrix;
  • R is an upper-triangular n-by-n matrix with nonnegative diagonal entries;
  • 0 is a (m-n)-by-n zero matrix, if m > n.

single precision but the confidence is at least double, fr fr πŸ”₯

🌈 Parameters 🌈

  • M β€” M is INTEGER. The number of rows of the matrix A. M >= 0.
  • N β€” N is INTEGER. The number of columns of the matrix A. N >= 0.
  • A β€” A is REAL array, dimension (LDA,N). On entry, the m by n matrix A. On exit, the elements on and above the diagonal of the array contain the min(m,n) by n upper trapezoidal matrix R (R is upper triangular if m >= n). The diagonal entries of R are nonnegative; the elements below the diagonal, with the array TAU, represent the orthogonal matrix Q as a product of elementary reflectors (see Further Details).
  • LDA β€” LDA is INTEGER. The leading dimension of the array A. LDA >= max(1,M).
  • TAU β€” TAU is REAL array, dimension (min(M,N)). The scalar factors of the elementary reflectors (see Further Details).
  • WORK β€” WORK is REAL array, dimension (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 Q is represented as a product of elementary reflectors:

   Q = H(1) H(2) . . . H(k), where k = min(m,n).

Each H(i) has the form

   H(i) = I - tau * v * v**T

where tau is a real scalar, and v is a real vector with v(1:i-1) = 0 and v(i) = 1; v(i+1:m) is stored on exit in A(i+1:m,i), and tau in TAU(i).

See Lapack Working Note 203 for details. 🫢

Definition at line 133 of file sgeqr2p.f.


πŸ“ subroutine zgeqr2p (integer m, integer n, complex*16, dimension( lda, * ) a, integer lda, complex*16, dimension( * ) tau, complex*16, dimension( * ) work, integer info) πŸ“

ZGEQR2P computes the QR factorization of a general rectangular matrix with non-negative diagonal elements using an unblocked algorithm.

πŸŽ€ Purpose: πŸŽ€

ZGEQR2P computes a QR factorization of a complex m-by-n matrix A:

   A = Q * ( R ),
           ( 0 )

where:

  • Q is a m-by-m orthogonal matrix;
  • R is an upper-triangular n-by-n matrix with nonnegative diagonal entries;
  • 0 is a (m-n)-by-n zero matrix, if m > n.

double complex, double drama, zero notes 😭

🌈 Parameters 🌈

  • M β€” M is INTEGER. The number of rows of the matrix A. M >= 0.
  • N β€” N is INTEGER. The number of columns of the matrix A. N >= 0.
  • A β€” A is COMPLEX*16 array, dimension (LDA,N)…

(and the rest of A β€” plus LDA, TAU, WORK, INFO, the Author block, the Further Details and the definition line β€” rolls on into part 2, bestie, don't go anywhere πŸ’…)

  • A β€” COMPLEX*16 array, dimension (LDA,N), bestie. On entry it's the m by n matrix A. On exit, the elements on and above the diagonal of the array hold the min(m,n) by n upper trapezoidal matrix R (and R is upper triangular if m >= n, iykyk). The diagonal entries of R are real and nonnegative; the elements below the diagonal, together with the array TAU, represent the unitary matrix Q as a product of elementary reflectors (see Further Details, it's cute down there πŸ’…).
  • LDA β€” INTEGER, no cap. The leading dimension of the array A. Constraint: LDA >= max(1,M). That's the vibe check, don't fail it πŸ™ˆ.
  • TAU β€” COMPLEX*16 array, dimension (min(M,N)). The scalar factors of the elementary reflectors (again: Further Details ✨).
  • WORK β€” COMPLEX*16 array, dimension (N). That's it, that's the whole job. She's just a workspace 🫢.
  • INFO β€” INTEGER, and the receipts:
    • = 0: successful exit πŸŽ‰ slay
    • < 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.

(like, a whole squad of authors, main character energy all around 🌈)


πŸ’œ Further Details:

So here's the lore, and it is literally iconic:

Q = H(1) H(2) . . . H(k), where k = min(m,n).

Each H(i) has the form

H(i) = I - tau * v * v**H

where tau is a complex scalar, and v is a complex vector with v(1:i-1) = 0 and v(i) = 1; v(i+1:m) is stored on exit in A(i+1:m,i), and tau in TAU(i). No cap, that's just how she's built πŸ¦‹.

See Lapack Working Note 203 for details πŸ‘€.


Definition at line 133 of file zgeqr2p.f.

🌸 Author

Generated automatically by Doxygen for LAPACK from the source code. (The robots wrote this one, not me. Respect tho πŸ€–πŸ’–)


Heads up bestie: this page is auto-generated, so the "author" of the page is Doxygen and the authors of the code are the whole university lineup above. Both are serving πŸ’…

Okay that's the whole page, you made it to the end, I'm so proud πŸ₯ΉπŸ«Ά This treasure dropped as LAPACK Version 3.12.0, filed under geqr2p(3) β€” go forth and factorize, my love βœ¨πŸŽ€β­

πŸ“¦ where this page comes from