laqp2(3)

✨ laqp2(3) ✨

okay so this is laqp2(3), straight out of the Library Functions Manual, and bestie… it's a whole family of subroutines that all do the same iconic thing in different precisions. Think of it as the same slay outfit in four different colorways πŸ’…. It's one step of geqp3, and it's the one doing the QR-with-column-pivoting moment. Let's get into it 🫢


πŸŽ€ NAME πŸŽ€

laqp2 β€” literally just: laqp2: step of geqp3. That's the whole name section. Short, sweet, does what it says on the tin ✨.


πŸ¦‹ SYNOPSIS πŸ¦‹

πŸ’« Functions

  • subroutine claqp2 (m, n, offset, a, lda, jpvt, tau, vn1, vn2, work) β€” CLAQP2 computes a QR factorization with column pivoting of the matrix block. (complex era πŸ’œ)
  • subroutine dlaqp2 (m, n, offset, a, lda, jpvt, tau, vn1, vn2, work) β€” DLAQP2 computes a QR factorization with column pivoting of the matrix block. (double precision era πŸ”₯)
  • subroutine slaqp2 (m, n, offset, a, lda, jpvt, tau, vn1, vn2, work) β€” SLAQP2 computes a QR factorization with column pivoting of the matrix block. (real era 🌸)
  • subroutine zlaqp2 (m, n, offset, a, lda, jpvt, tau, vn1, vn2, work) β€” ZLAQP2 computes a QR factorization with column pivoting of the matrix block. (double complex era πŸ‘‘)

🌈 Detailed Description

(no cap, the original page just puts this heading here and then Beelines straight into the function docs β€” so that's exactly what we're doing too. all the real tea is below ⬇️)


πŸ’– Function Documentation πŸ’–

🌸 claqp2 🌸

subroutine claqp2 (integer m, integer n, integer offset, complex, dimension( lda, * ) a, integer lda, integer, dimension( * ) jpvt, complex, dimension( * ) tau, real, dimension( * ) vn1, real, dimension( * ) vn2, complex, dimension( * ) work)

CLAQP2 computes a QR factorization with column pivoting of the matrix block. The complex icon of the group πŸ’….

⭐ Purpose

ok so CLAQP2 computes a QR factorization with column pivoting of the block A(OFFSET+1:M,1:N).

And the block A(1:OFFSET,1:N)? It gets accordingly pivoted, but it does not get factorized. Pivoted yes, factorized no. Know the difference bestie 🫢

🎯 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.
  • OFFSET β€” OFFSET is INTEGER. The number of rows of the matrix A that must be pivoted but not factorized. OFFSET >= 0.
  • A β€” A is COMPLEX array, dimension (LDA,N). On entry: the M-by-N matrix A. On exit: the upper triangle of block A(OFFSET+1:M,1:N) is the triangular factor obtained; the elements in block A(OFFSET+1:M,1:N) below the diagonal, together with the array TAU, represent the orthogonal matrix Q as a product of elementary reflectors. Block A(1:OFFSET,1:N) has been accordingly pivoted, but not factorized.
  • LDA β€” LDA is INTEGER. The leading dimension of the array A. LDA >= max(1,M).
  • JPVT β€” JPVT is INTEGER array, dimension (N). On entry: if JPVT(i) .ne. 0, the i-th column of A is permuted to the front of A*P (a leading column); if JPVT(i) = 0, the i-th column of A is a free column. On exit: if JPVT(i) = k, then the i-th column of A*P was the k-th column of A.
  • TAU β€” TAU is COMPLEX array, dimension (min(M,N)). The scalar factors of the elementary reflectors.
  • VN1 β€” VN1 is REAL array, dimension (N). The vector with the partial column norms.
  • VN2 β€” VN2 is REAL array, dimension (N). The vector with the exact column norms.
  • WORK β€” WORK is COMPLEX array, dimension (N).

πŸ‘‘ Author

  • Univ. of Tennessee
  • Univ. of California Berkeley
  • Univ. of Colorado Denver
  • NAG Ltd.

🧚 Contributors:

  • G. Quintana-Orti, Depto. de Informatica, Universidad Jaime I, Spain
  • X. Sun, Computer Science Dept., Duke University, USA
  • Partial column norm updating strategy modified on April 2011 Z. Drmac and Z. Bujanovic, Dept. of Mathematics, University of Zagreb, Croatia.

πŸ“š References:

LAPACK Working Note 176

Definition at line 147 of file claqp2.f.


πŸ”₯ dlaqp2 πŸ”₯

subroutine dlaqp2 (integer m, integer n, integer offset, double precision, dimension( lda, * ) a, integer lda, integer, dimension( * ) jpvt, double precision, dimension( * ) tau, double precision, dimension( * ) vn1, double precision, dimension( * ) vn2, double precision, dimension( * ) work)

DLAQP2 computes a QR factorization with column pivoting of the matrix block. The double precision one, serving exact same energy, just with bigger vibes πŸ’œ.

⭐ Purpose

DLAQP2 computes a QR factorization with column pivoting of the block A(OFFSET+1:M,1:N).

The block A(1:OFFSET,1:N) is accordingly pivoted, but not factorized. That's it. That's the whole deal 🫢

🎯 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.
  • OFFSET β€” OFFSET is INTEGER. The number of rows of the matrix A that must be pivoted but not factorized. OFFSET >= 0.
  • A β€” A is DOUBLE PRECISION array, dimension (LDA,N). On entry: the M-by-N matrix A. On exit: the upper triangle of block A(OFFSET+1:M,1:N) is the triangular factor obtained; the elements in block A(OFFSET+1:M,1:N) below the diagonal, together with the array TAU, represent the orthogonal matrix Q as a product of elementary reflectors. Block A(1:OFFSET,1:N) has been accordingly pivoted, but not factorized.
  • LDA β€” LDA is INTEGER. The leading dimension of the array A. LDA >= max(1,M).
  • JPVT β€” JPVT is INTEGER array, dimension (N). On entry: if JPVT(i) .ne. 0, the i-th column of A is permuted to the front of A*P (a leading column); if JPVT(i) = 0, the i-th column of A is a free column. On exit: if JPVT(i) = k, then the i-th column of A*P was the k-th column of A.
  • TAU β€” TAU is DOUBLE PRECISION array, dimension (min(M,N)). The scalar factors of the elementary reflectors.
  • VN1 β€” VN1 is DOUBLE PRECISION array, dimension (N). The vector with the partial column norms.
  • VN2 β€” VN2 is DOUBLE PRECISION array, dimension (N). The vector with the exact column norms.
  • WORK β€” WORK is DOUBLE PRECISION array, dimension (N).

πŸ‘‘ Author

  • Univ. of Tennessee
  • Univ. of California Berkeley
  • Univ. of Colorado Denver
  • NAG Ltd.

🧚 Contributors:

  • G. Quintana-Orti, Depto. de Informatica, Universidad Jaime I, Spain
  • X. Sun, Computer Science Dept., Duke University, USA
  • Partial column norm updating strategy modified on April 2011 Z. Drmac and Z. Bujanovic, Dept. of Mathematics, University of Zagreb, Croatia.

πŸ“š References:

LAPACK Working Note 176

Definition at line 147 of file dlaqp2.f.


🌸 slaqp2 🌸

subroutine slaqp2 (integer m, integer n, integer offset, real, dimension( lda, * ) a, integer lda, integer, dimension( * ) jpvt, real, dimension( * ) tau, real, dimension( * ) vn1, real, dimension( * ) vn2, real, dimension( * ) work)

SLAQP2 computes a QR factorization with column pivoting of the matrix block. Real precision, real cute, same algorithm πŸŽ€.

⭐ Purpose

SLAQP2 computes a QR factorization with column pivoting of the block A(OFFSET+1:M,1:N).

And once again: the block A(1:OFFSET,1:N) is accordingly pivoted, but not factorized. It's the family motto at this point 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.
  • OFFSET β€” OFFSET is INTEGER. The number of rows of the matrix A that must be pivoted but not factorized. OFFSET >= 0.
  • A β€” A is REAL array, dimension (LDA,N). On entry: the M-by-N matrix A. On exit: the upper triangle of block A(OFFSET+1:M,1:N) is the triangular factor obtained; the elements in block A(OFFSET+1:M,1:N) below the diagonal, together with the array TAU, represent the orthogonal matrix Q as a product of elementary reflectors. Block A(1:OFFSET,1:N) has been accordingly pivoted, but not factorized.
  • LDA β€” LDA is INTEGER. The leading dimension of the array A. LDA >= max(1,M).
  • JPVT β€” JPVT is INTEGER array, dimension (N). On entry: if JPVT(i) .ne. 0, the i-th column of A is permuted to the front of A*P (a leading column); if JPVT(i) = 0, the i-th column of A is a free column. On exit: if JPVT(i) = k, then the i-th column of A*P was the k-th column of A.
  • TAU β€” TAU is REAL array, dimension (min(M,N)). The scalar factors of the elementary reflectors.
  • VN1 β€” VN1 is REAL array, dimension (N). The vector with the partial column norms.
  • VN2 β€” VN2 is REAL array, dimension (N). The vector with the exact column norms.
  • WORK β€” WORK is REAL array, dimension (N).

πŸ‘‘ Author

  • Univ. of Tennessee
  • Univ. of California Berkeley
  • Univ. of Colorado Denver
  • NAG Ltd.

🧚 Contributors:

  • G. Quintana-Orti, Depto. de Informatica, Universidad Jaime I, Spain
  • X. Sun, Computer Science Dept., Duke University, USA
  • Partial column norm updating strategy modified on April 2011 Z. Drmac and Z. Bujanovic, Dept. of Mathematics, University of Zagreb, Croatia.

πŸ“š References:

LAPACK Working Note 176

Definition at line 147 of file slaqp2.f.


πŸ‘‘ zlaqp2 πŸ‘‘

subroutine zlaqp2 (integer m, integer n, integer offset, complex*16, dimension( lda, * ) a, integer lda, integer, dimension( * ) jpvt, complex*16, dimension( * ) tau, double precision, dimension( * ) vn1, double precision, dimension( * ) vn2, complex*16, dimension( * ) work)

ZLAQP2 computes a QR factorization with column pivoting of the matrix block. The double complex main character of the family β€” note that a, tau and work are complex*16 but vn1 and vn2 stay double precision, because norms are real and they know it πŸ’….

⭐ Purpose

ZLAQP2 computes a QR factorization with column pivoting of the block A(OFFSET+1:M,1:N).

The block A(1:OFFSET,1:N) is accordingly pivoted, but not factorized. Same energy, double complex edition πŸ”₯

🎯 Parameters

  • M β€” M is INTEGER. The number of rows of the matrix A. M >= 0.
  • M β€” M is INTEGER. It’s the number of rows of matrix A. Constraint: M >= 0. Zero rows is valid, bestie, don’t panic ✨
  • N β€” N is INTEGER. Number of columns of matrix A. Constraint: N >= 0.
  • OFFSET β€” OFFSET is INTEGER. The number of rows of matrix A that must be pivoted but not factorized. Constraint: OFFSET >= 0.
  • A β€” A is COMPLEX*16 array, dimension (LDA,N). On entry, it’s the M-by-N matrix A. On exit, the upper triangle of block A(OFFSET+1:M,1:N) is the triangular factor obtained; the elements in block A(OFFSET+1:M,1:N) below the diagonal, together with the array TAU, represent the orthogonal matrix Q as a product of elementary reflectors. Block A(1:OFFSET,1:N) has been pivoted accordingly, but not factorized. Yes, the whole block gets shuffled; it just doesn’t get factorized 🫢
  • LDA β€” LDA is INTEGER. The leading dimension of the array A. Constraint: LDA >= max(1,M). Don’t skimp on the leading dimension, bestie 😭
  • JPVT β€” JPVT is INTEGER array, dimension (N). On entry, if JPVT(i) .ne. 0, the i-th column of A is permuted to the front of A*P (a leading column); if JPVT(i) = 0, the i-th column of A is a free column. On exit, if JPVT(i) = k, then the i-th column of A*P was the k-th column of A. The .ne. is Fortran for β€œnot equal,” iykyk πŸ’€
  • TAU β€” TAU is COMPLEX*16 array, dimension (min(M,N)). Holds the scalar factors of the elementary reflectors.
  • VN1 β€” VN1 is DOUBLE PRECISION array, dimension (N). The vector with the partial column norms.
  • VN2 β€” VN2 is DOUBLE PRECISION array, dimension (N). The vector with the exact column norms.
  • WORK β€” WORK is COMPLEX*16 array, dimension (N). That’s it, no extra lore πŸ’…

πŸ‘‘ Author

  • Univ. of Tennessee
  • Univ. of California Berkeley
  • Univ. of Colorado Denver
  • NAG Ltd.

🌸 Contributors

  • G. Quintana-Orti, Depto. de Informatica, Universidad Jaime I, Spain
  • X. Sun, Computer Science Dept., Duke University, USA
  • Partial column norm updating strategy modified on April 2011 Z. Drmac and Z. Bujanovic, Dept. of Mathematics, University of Zagreb, Croatia.

πŸ“š References

  • LAPACK Working Note 176

Definition at line 147 of file zlaqp2.f.

πŸ€– Author (the Doxygen one)

Generated automatically by Doxygen for LAPACK from the source code.


And that’s the footer tea, bestie: LAPACK Version 3.12.0, page laqp2(3) β€” no separate date shown on that line, so that’s the whole vibe πŸ™ˆπŸ’– Byeee ✨

πŸ“¦ where this page comes from