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βMisINTEGER. The number of rows of the matrixA.M >= 0.NβNisINTEGER. The number of columns of the matrixA.N >= 0.OFFSETβOFFSETisINTEGER. The number of rows of the matrixAthat must be pivoted but not factorized.OFFSET >= 0.AβAisCOMPLEXarray, dimension(LDA,N). On entry: theM-by-NmatrixA. On exit: the upper triangle of blockA(OFFSET+1:M,1:N)is the triangular factor obtained; the elements in blockA(OFFSET+1:M,1:N)below the diagonal, together with the arrayTAU, represent the orthogonal matrixQas a product of elementary reflectors. BlockA(1:OFFSET,1:N)has been accordingly pivoted, but not factorized.LDAβLDAisINTEGER. The leading dimension of the arrayA.LDA >= max(1,M).JPVTβJPVTisINTEGERarray, dimension(N). On entry: ifJPVT(i) .ne. 0, thei-th column ofAis permuted to the front ofA*P(a leading column); ifJPVT(i) = 0, thei-th column ofAis a free column. On exit: ifJPVT(i) = k, then thei-th column ofA*Pwas thek-th column ofA.TAUβTAUisCOMPLEXarray, dimension(min(M,N)). The scalar factors of the elementary reflectors.VN1βVN1isREALarray, dimension(N). The vector with the partial column norms.VN2βVN2isREALarray, dimension(N). The vector with the exact column norms.WORKβWORKisCOMPLEXarray, 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βMisINTEGER. The number of rows of the matrixA.M >= 0.NβNisINTEGER. The number of columns of the matrixA.N >= 0.OFFSETβOFFSETisINTEGER. The number of rows of the matrixAthat must be pivoted but not factorized.OFFSET >= 0.AβAisDOUBLE PRECISIONarray, dimension(LDA,N). On entry: theM-by-NmatrixA. On exit: the upper triangle of blockA(OFFSET+1:M,1:N)is the triangular factor obtained; the elements in blockA(OFFSET+1:M,1:N)below the diagonal, together with the arrayTAU, represent the orthogonal matrixQas a product of elementary reflectors. BlockA(1:OFFSET,1:N)has been accordingly pivoted, but not factorized.LDAβLDAisINTEGER. The leading dimension of the arrayA.LDA >= max(1,M).JPVTβJPVTisINTEGERarray, dimension(N). On entry: ifJPVT(i) .ne. 0, thei-th column ofAis permuted to the front ofA*P(a leading column); ifJPVT(i) = 0, thei-th column ofAis a free column. On exit: ifJPVT(i) = k, then thei-th column ofA*Pwas thek-th column ofA.TAUβTAUisDOUBLE PRECISIONarray, dimension(min(M,N)). The scalar factors of the elementary reflectors.VN1βVN1isDOUBLE PRECISIONarray, dimension(N). The vector with the partial column norms.VN2βVN2isDOUBLE PRECISIONarray, dimension(N). The vector with the exact column norms.WORKβWORKisDOUBLE PRECISIONarray, 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βMisINTEGER. The number of rows of the matrixA.M >= 0.NβNisINTEGER. The number of columns of the matrixA.N >= 0.OFFSETβOFFSETisINTEGER. The number of rows of the matrixAthat must be pivoted but not factorized.OFFSET >= 0.AβAisREALarray, dimension(LDA,N). On entry: theM-by-NmatrixA. On exit: the upper triangle of blockA(OFFSET+1:M,1:N)is the triangular factor obtained; the elements in blockA(OFFSET+1:M,1:N)below the diagonal, together with the arrayTAU, represent the orthogonal matrixQas a product of elementary reflectors. BlockA(1:OFFSET,1:N)has been accordingly pivoted, but not factorized.LDAβLDAisINTEGER. The leading dimension of the arrayA.LDA >= max(1,M).JPVTβJPVTisINTEGERarray, dimension(N). On entry: ifJPVT(i) .ne. 0, thei-th column ofAis permuted to the front ofA*P(a leading column); ifJPVT(i) = 0, thei-th column ofAis a free column. On exit: ifJPVT(i) = k, then thei-th column ofA*Pwas thek-th column ofA.TAUβTAUisREALarray, dimension(min(M,N)). The scalar factors of the elementary reflectors.VN1βVN1isREALarray, dimension(N). The vector with the partial column norms.VN2βVN2isREALarray, dimension(N). The vector with the exact column norms.WORKβWORKisREALarray, 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βMisINTEGER. The number of rows of the matrixA.M >= 0.MβMisINTEGER. Itβs the number of rows of matrixA. Constraint:M >= 0. Zero rows is valid, bestie, donβt panic β¨NβNisINTEGER. Number of columns of matrixA. Constraint:N >= 0.OFFSETβOFFSETisINTEGER. The number of rows of matrixAthat must be pivoted but not factorized. Constraint:OFFSET >= 0.AβAisCOMPLEX*16 array, dimension (LDA,N). On entry, itβs theM-by-NmatrixA. On exit, the upper triangle of blockA(OFFSET+1:M,1:N)is the triangular factor obtained; the elements in blockA(OFFSET+1:M,1:N)below the diagonal, together with the arrayTAU, represent the orthogonal matrixQas a product of elementary reflectors. BlockA(1:OFFSET,1:N)has been pivoted accordingly, but not factorized. Yes, the whole block gets shuffled; it just doesnβt get factorized π«ΆLDAβLDAisINTEGER. The leading dimension of the arrayA. Constraint:LDA >= max(1,M). Donβt skimp on the leading dimension, bestie πJPVTβJPVTisINTEGER array, dimension (N). On entry, ifJPVT(i) .ne. 0, thei-th column ofAis permuted to the front ofA*P(a leading column); ifJPVT(i) = 0, thei-th column ofAis a free column. On exit, ifJPVT(i) = k, then thei-th column ofA*Pwas thek-th column ofA. The.ne.is Fortran for βnot equal,β iykyk πTAUβTAUisCOMPLEX*16 array, dimension (min(M,N)). Holds the scalar factors of the elementary reflectors.VN1βVN1isDOUBLE PRECISION array, dimension (N). The vector with the partial column norms.VN2βVN2isDOUBLE PRECISION array, dimension (N). The vector with the exact column norms.WORKβWORKisCOMPLEX*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
- arch rolling: lapack-doc 3.12.1-2 Β· custom
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms