tzrzf(3)

πŸŽ€ NAME πŸŽ€

okay so, bestie, welcome to the Library Functions Manual page for tzrzf β€” the RZ factor routine. That's the whole name section, short and sweet, but the rest of this page? It's giving long. Buckle in. πŸ’…


✨ SYNOPSIS ✨

Here's the whole squad of routines on this page, all with the exact same argument list (m, n, a, lda, tau, work, lwork, info) β€” just different precisions and real-vs-complex. Iconic.

  • subroutine ctzrzf (m, n, a, lda, tau, work, lwork, info) β€” CTZRZF, the complex one
  • subroutine dtzrzf (m, n, a, lda, tau, work, lwork, info) β€” DTZRZF, the double precision one
  • subroutine stzrzf (m, n, a, lda, tau, work, lwork, info) β€” STZRZF, the single precision real one
  • subroutine ztzrzf (m, n, a, lda, tau, work, lwork, info) β€” ZTZRZF, the double complex one (more on that one later πŸ‘€)

🌸 Detailed Description 🌸

This is the "Detailed Description" zone, and then under it we get into the actual Function Documentation for each and every routine. Let's go, one at a time. 🫢


πŸ‘‘ Function Documentation πŸ‘‘

πŸ’œ ctzrzf β€” CTZRZF

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

⭐ Purpose

okay so CTZRZF reduces the M-by-N ( M<=N ) complex upper trapezoidal matrix A to upper triangular form by means of unitary transformations. No cap.

The upper trapezoidal matrix A is factored as

   A = ( R  0 ) * Z,

where Z is an N-by-N unitary matrix and R is an M-by-M upper triangular matrix. Slay. πŸ”₯

πŸ¦‹ 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 >= M.
  • A β€” A is COMPLEX array, dimension (LDA,N). On entry, the leading M-by-N upper trapezoidal part of the array A must contain the matrix to be factorized. On exit, the leading M-by-M upper triangular part of A contains the upper triangular matrix R, and elements M+1 to N of the first M rows of A, with the array TAU, represent the unitary matrix Z as a product of M elementary reflectors. πŸ’«
  • LDA β€” LDA is INTEGER. It's the leading dimension of the array A. LDA >= max(1,M).
  • TAU β€” TAU is COMPLEX array, dimension (M). These are the scalar factors of the elementary reflectors.
  • WORK β€” WORK is COMPLEX 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 >= max(1,M). For optimum performance LWORK >= M*NB, where NB is the optimal blocksize.
okay this next bit matters, bestie: 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.

πŸ“ Contributors:

  • A. Petitet, Computer Science Dept., Univ. of Tenn., Knoxville, USA

πŸ’€ Further Details:

The N-by-N matrix Z can be computed by

     Z =  Z(1)*Z(2)* ... *Z(M)

where each N-by-N Z(k) is given by

     Z(k) = I - tau(k)*v(k)*v(k)**H

with v(k) is the kth row vector of the M-by-N matrix

     V = ( I   A(:,M+1:N) )

I is the M-by-M identity matrix, A(:,M+1:N) is the output stored in A on exit from CTZRZF, and tau(k) is the kth element of the array TAU. πŸŽ€

Definition at line 150 of file ctzrzf.f.


πŸ’œ dtzrzf β€” DTZRZF

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

⭐ Purpose

DTZRZF reduces the M-by-N ( M<=N ) real upper trapezoidal matrix A to upper triangular form by means of orthogonal transformations.

The upper trapezoidal matrix A is factored as

   A = ( R  0 ) * Z,

where Z is an N-by-N orthogonal matrix and R is an M-by-M upper triangular matrix. Same energy, different field type. πŸ’…

πŸ¦‹ 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 >= M.
  • A β€” A is DOUBLE PRECISION array, dimension (LDA,N). On entry, the leading M-by-N upper trapezoidal part of the array A must contain the matrix to be factorized. On exit, the leading M-by-M upper triangular part of A contains the upper triangular matrix R, and elements M+1 to N of the first M rows of A, with the array TAU, represent the orthogonal matrix Z as a product of M elementary reflectors. ✨
  • LDA β€” LDA is INTEGER. The leading dimension of the array A. LDA >= max(1,M).
  • TAU β€” TAU is DOUBLE PRECISION array, dimension (M). The scalar factors of the elementary reflectors.
  • 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 >= max(1,M). For optimum performance LWORK >= M*NB, where NB is the optimal blocksize.
again, important: 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.

πŸ“ Contributors:

  • A. Petitet, Computer Science Dept., Univ. of Tenn., Knoxville, USA

πŸ’€ Further Details:

The N-by-N matrix Z can be computed by

     Z =  Z(1)*Z(2)* ... *Z(M)

where each N-by-N Z(k) is given by

     Z(k) = I - tau(k)*v(k)*v(k)**T

with v(k) is the kth row vector of the M-by-N matrix

     V = ( I   A(:,M+1:N) )

I is the M-by-M identity matrix, A(:,M+1:N) is the output stored in A on exit from DTZRZF, and tau(k) is the kth element of the array TAU. πŸŽ€

tiny detail check, bestie: this one's the transpose **T, not the conjugate **H. The complex one gets **H. ikyk. πŸ‘€

Definition at line 150 of file dtzrzf.f.


πŸ’œ stzrzf β€” STZRZF

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

⭐ Purpose

STZRZF reduces the M-by-N ( M<=N ) real upper trapezoidal matrix A to upper triangular form by means of orthogonal transformations.

The upper trapezoidal matrix A is factored as

   A = ( R  0 ) * Z,

where Z is an N-by-N orthogonal matrix and R is an M-by-M upper triangular matrix. Bestie this is literally the single-precision twin of DTZRZF. πŸ”₯

πŸ¦‹ 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 >= M.
  • A β€” A is REAL array, dimension (LDA,N). On entry, the leading M-by-N upper trapezoidal part of the array A must contain the matrix to be factorized. On exit, the leading M-by-M upper triangular part of A contains the upper triangular matrix R, and elements M+1 to N of the first M rows of A, with the array TAU, represent the orthogonal matrix Z as a product of M elementary reflectors. 🌸
  • LDA β€” LDA is INTEGER. The leading dimension of the array A. LDA >= max(1,M).
  • TAU β€” TAU is REAL array, dimension (M). The scalar factors of the elementary reflectors.
  • 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 >= max(1,M). For optimum performance LWORK >= M*NB, where NB is the optimal blocksize.
say it with me: 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.

πŸ“ Contributors:

  • A. Petitet, Computer Science Dept., Univ. of Tenn., Knoxville, USA

πŸ’€ Further Details:

The N-by-N matrix Z can be computed by

     Z =  Z(1)*Z(2)* ... *Z(M)

where each N-by-N Z(k) is given by

     Z(k) = I - tau(k)*v(k)*v(k)**T

with v(k) is the kth row vector of the M-by-N matrix

     V = ( I   A(:,M+1:N) )

I is the M-by-M identity matrix, A(:,M+1:N) is the output stored in A on exit from STZRZF, and tau(k) is the kth element of the array TAU. πŸŽ€

Definition at line 150 of file stzrzf.f.


okay and there's still ztzrzf waiting for us β€” keep scrolling bestie, it's coming up next πŸ’…βœ¨

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

🌟 ZTZRZF 🌟

πŸ’– Purpose πŸ’–

okay so ZTZRZF reduces the M-by-N ( M<=N ) complex upper trapezoidal matrix A to upper triangular form by means of unitary transformations. literally iconic behavior.

The upper trapezoidal matrix A is factored as

A = ( R  0 ) * Z,

where Z is an N-by-N unitary matrix and R is an M-by-M upper triangular matrix. slay. πŸ’…


πŸŽ€ 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 >= M. 🌸
  • A β€” A is COMPLEX*16 array, dimension (LDA,N).
    • On entry, the leading M-by-N upper trapezoidal part of the array A must contain the matrix to be factorized.
    • On exit, the leading M-by-M upper triangular part of A contains the upper triangular matrix R, and elements M+1 to N of the first M rows of A, with the array TAU, represent the unitary matrix Z as a product of M elementary reflectors. πŸ¦‹
  • LDA β€” LDA is INTEGER. the leading dimension of the array A. LDA >= max(1,M). πŸ“
  • TAU β€” TAU is COMPLEX*16 array, dimension (M). the scalar factors of the elementary reflectors. πŸŽ€
  • 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. the dimension of the array WORK. LWORK >= max(1,M). For optimum performance LWORK >= M*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. bestie that’s a whole mood, but it’s important. 😭
  • 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.

🫢 Contributors 🫢

  • A. Petitet, Computer Science Dept., Univ. of Tenn., Knoxville, USA

🌈 Further Details 🌈

The N-by-N matrix Z can be computed by

Z =  Z(1)*Z(2)* ... *Z(M)

where each N-by-N Z(k) is given by

Z(k) = I - tau(k)*v(k)*v(k)**H

with v(k) is the kth row vector of the M-by-N matrix

V = ( I   A(:,M+1:N) )

I is the M-by-M identity matrix, A(:,M+1:N) is the output stored in A on exit from ZTZRZF, and tau(k) is the kth element of the array TAU. 🧚✨

Definition at line 150 of file ztzrzf.f.

πŸ€– Author πŸ€–

Generated automatically by Doxygen for LAPACK from the source code.


✨ that’s the whole page, bestie β€” source/version: LAPACK, version 3.12.0, page tzrzf(3). periodt. πŸ’…πŸŽ€

πŸ“¦ where this page comes from