SRC/dlaqp2.f(3)

πŸ’… SRC/dlaqp2.f(3) β€” a page from the LAPACK Library Functions Manual πŸŽ€

okay bestie, buckle up, because this is a whole Fortran situation and honestly? it slays.


✨ NAME ✨

SRC/dlaqp2.f β€” the file, the icon, the moment. πŸ’«


🌸 SYNOPSIS 🌸

Functions/Subroutines

subroutine dlaqp2 (m, n, offset, a, lda, jpvt, tau, vn1, vn2, work)

DLAQP2 computes a QR factorization with column pivoting of the matrix block. that's it, that's the vibe. πŸ¦‹


πŸ‘‘ Function/Subroutine Documentation πŸ‘‘

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. (yes, i said it twice, it's that important πŸ’…)

🎯 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.
!>

so like… the block A(OFFSET+1:M,1:N) gets the full glow-up, and A(1:OFFSET,1:N) gets pivoted but not factorized. she was invited to the party but she's not performing. πŸ™ˆ


🌈 Parameters

  • M
!>          M is INTEGER
!>          The number of rows of the matrix A. M >= 0.
!>

how many rows A has. M >= 0, no cap.

  • N
!>          N is INTEGER
!>          The number of columns of the matrix A. N >= 0.
!>

how many columns A has. N >= 0, fr fr.

  • OFFSET
!>          OFFSET is INTEGER
!>          The number of rows of the matrix A that must be pivoted
!>          but no factorized. OFFSET >= 0.
!>

the number of rows of A that get pivoted but not factorized. OFFSET >= 0. (yes the original says "no factorized" β€” i'm not fixing it, i don't make the rules 😭)

  • 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 no factorized.
!>

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 of 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 no factorized. main character energy honestly.

  • LDA
!>          LDA is INTEGER
!>          The leading dimension of the array A. LDA >= max(1,M).
!>

the leading dimension of A. LDA >= max(1,M) β€” max, bestie, don't forget. ⭐

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

INTEGER array, dimension (N). on entry: if JPVT(i) .ne. 0, the i-th column of A gets permuted to the front of A*P (a leading column, a VIP πŸ’…); if JPVT(i) = 0, the i-th column of A is a free column (living her truth πŸ¦‹). on exit: if JPVT(i) = k, then the i-th column of A*P was the k-th column of A. glow-up documented.

  • TAU
!>          TAU is DOUBLE PRECISION array, dimension (min(M,N))
!>          The scalar factors of the elementary reflectors.
!>

DOUBLE PRECISION array, dimension (min(M,N)) β€” note the min, she's petite ✨. holds the scalar factors of the elementary reflectors.

  • VN1
!>          VN1 is DOUBLE PRECISION array, dimension (N)
!>          The vector with the partial column norms.
!>

DOUBLE PRECISION array, dimension (N). the vector with the partial column norms β€” approximation queen.

  • VN2
!>          VN2 is DOUBLE PRECISION array, dimension (N)
!>          The vector with the exact column norms.
!>

DOUBLE PRECISION array, dimension (N). the vector with the exact column norms β€” no notes, flawless.

  • WORK
!>          WORK is DOUBLE PRECISION array, dimension (N)
!>

DOUBLE PRECISION array, dimension (N). that's it. that's the description. she works. πŸ’€


🧚 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.


😭 Author

Generated automatically by Doxygen for LAPACK from the source code. (not a human, not a vibe, just a doc generator doing its best 🫢)


ngl bestie, if you got all the way here you understand DLAQP2 better than most. go pivot something. 🌈

that's the whole page! πŸ’– this was LAPACK, Version 3.12.0, SRC/dlaqp2.f(3) β€” mwah, periodt. πŸŽ€βœ¨

πŸ“¦ where this page comes from