geqrf(3)

🌸 NAME 🌸

geqrf β€” the QR factor girlies' moment. Like, geqrf literally is the QR factor. That's the whole vibe. πŸ’…


✨ SYNOPSIS ✨

🫢 Functions

  • subroutine cgeqrf (m, n, a, lda, tau, work, lwork, info) β€” CGEQRF
  • subroutine dgeqrf (m, n, a, lda, tau, work, lwork, info) β€” DGEQRF
  • subroutine sgeqrf (m, n, a, lda, tau, work, lwork, info) β€” SGEQRF
  • subroutine zgeqrf (m, n, a, lda, tau, work, lwork, info) β€” ZGEQRF

πŸ’œ DESCRIPTION πŸ’œ

πŸ“– Detailed Description

Deadass, this is the whole rundown β€” every function gets its own lil spotlight below, with the full tea on purpose, parameters, authors, and the further-details lore. πŸ“

πŸŽ€ Function Documentation πŸŽ€


🌈 subroutine cgeqrf 🌈

subroutine cgeqrf (integer m, integer n, complex, dimension( lda, * ) a,
    integer lda, complex, dimension( * ) tau, complex, dimension( * ) work,
    integer lwork, integer info)
    CGEQRF

Purpose:

CGEQRF 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;
  • 0 is a (M-N)-by-N zero matrix, if M > N.

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 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 elements below the diagonal, with the array TAU, represent the unitary matrix Q as a product of min(m,n) elementary reflectors (see Further Details). πŸ’…
  • LDA β€” LDA is INTEGER. The leading dimension of the array A. LDA >= max(1,M). ⭐
  • 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 (MAX(1,LWORK)). On exit, if INFO = 0, WORK(1) returns the optimal LWORK. ✨
  • LWORK β€” LWORK is INTEGER. The dimension of the array WORK. LWORK >= 1, if MIN(M,N) = 0, and LWORK >= N, otherwise. For optimum performance LWORK >= N*NB, where NB is the optimal blocksize.

If LWORK = -1, then a workspace query is assumed; the routine only calculates the optimal size of the WORK array, returns this value as the first entry of the WORK array, and no error message related to LWORK is issued by XERBLA. πŸ”₯

  • 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). πŸ¦‹

Definition at line 145 of file cgeqrf.f.


🌸 subroutine dgeqrf 🌸

subroutine dgeqrf (integer m, integer n, double precision, dimension( lda, *
    ) a, integer lda, double precision, dimension( * ) tau, double
    precision, dimension( * ) work, integer lwork, integer info)
    DGEQRF

Purpose:

DGEQRF 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;
  • 0 is a (M-N)-by-N zero matrix, if M > N.

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 elements below the diagonal, with the array TAU, represent the orthogonal matrix Q as a product of min(m,n) 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 (MAX(1,LWORK)). On exit, if INFO = 0, WORK(1) returns the optimal LWORK. ✨
  • LWORK β€” LWORK is INTEGER. The dimension of the array WORK. LWORK >= 1, if MIN(M,N) = 0, and LWORK >= N, otherwise. For optimum performance LWORK >= N*NB, where NB is the optimal blocksize.

If LWORK = -1, then a workspace query is assumed; the routine only calculates the optimal size of the WORK array, returns this value as the first entry of the WORK array, and no error message related to LWORK is issued by XERBLA. πŸ”₯

  • 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). πŸ¦‹

Definition at line 145 of file dgeqrf.f.


🌼 subroutine sgeqrf 🌼

subroutine sgeqrf (integer m, integer n, real, dimension( lda, * ) a,
    integer lda, real, dimension( * ) tau, real, dimension( * ) work,
    integer lwork, integer info)
    SGEQRF

Purpose:

SGEQRF 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;
  • 0 is a (M-N)-by-N zero matrix, if M > N.

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 elements below the diagonal, with the array TAU, represent the orthogonal matrix Q as a product of min(m,n) 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 (MAX(1,LWORK)). On exit, if INFO = 0, WORK(1) returns the optimal LWORK. ✨
  • LWORK β€” LWORK is INTEGER. The dimension of the array WORK. LWORK >= 1, if MIN(M,N) = 0, and LWORK >= N, otherwise. For optimum performance LWORK >= N*NB, where NB is the optimal blocksize.

If LWORK = -1, then a workspace query is assumed; the routine only calculates the optimal size of the WORK array, returns this value as the first entry of the WORK array, and no error message related to LWORK is issued by XERBLA. πŸ”₯

  • 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). πŸ¦‹

Definition at line 145 of file sgeqrf.f.


πŸ‘‘ subroutine zgeqrf πŸ‘‘

subroutine zgeqrf (integer m, integer n, complex*16, dimension( lda, * ) a,
    integer lda, complex*16, dimension( * ) tau, complex*16, dimension( * )
    work, integer lwork, integer info)
    ZGEQRF

Purpose:

…bestie hold that thought β€” the ZGEQRF tea spills over into part 2 πŸ’–

okay so ZGEQRF 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;
  • 0 is a (M-N)-by-N zero matrix, if M > N.

Parameters ✨

  • M β€” M is INTEGER. It’s the number of rows of the matrix A. M >= 0.
  • N β€” N is INTEGER. It’s the number of columns of the matrix A. N >= 0.
  • A β€” A is COMPLEX*16 array, dimension (LDA,N). On entry, it’s 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 elements below the diagonal, with the array TAU, represent the unitary matrix Q as a product of min(m,n) elementary reflectors (see Further Details).
  • LDA β€” LDA is INTEGER. It’s the leading dimension of the array A. LDA >= max(1,M).
  • TAU β€” TAU is COMPLEX*16 array, dimension (min(M,N)). These are the scalar factors of the elementary reflectors (see Further Details).
  • WORK β€” WORK is COMPLEX*16 array, dimension (MAX(1,LWORK)). On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
  • LWORK β€” LWORK is INTEGER. It’s the dimension of the array WORK. LWORK >= 1, if MIN(M,N) = 0, and LWORK >= N, otherwise. For optimum performance LWORK >= N*NB, where NB is the optimal blocksize.

If LWORK = -1, then a workspace query is assumed; the routine only calculates the optimal size of the WORK array, returns this value as the first entry of the WORK array, and no error message related to LWORK is issued by XERBLA.

  • 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).


Definition at line 145 of file zgeqrf.f.

Author 🫢 (the auto-gen one)

Generated automatically by Doxygen for LAPACK from the source code.


and that’s the whole vibe: LAPACK Version 3.12.0, geqrf(3) β€” xoxo, the source code πŸ’…βœ¨

πŸ“¦ where this page comes from