/home/abui..._getrfnp.f(3)

πŸ“¦ version 3.12.0, in opensuse-leap 16.0

πŸŽ€ /home/abui..._getrfnp.f β€” Library Functions Manual πŸŽ€

okay bestie, buckle up, because this one's a LAPACK deep cut from the lapack-static-3.12.0-build era, and she's serving auxiliary routine realness πŸ’…


✨ NAME ✨

/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/dlaorhr_col_getrfnp.f

that's the whole name, no cap. it's a whole-ass file path and honestly? iconic. 🫢


🌸 SYNOPSIS 🌸

Functions/Subroutines

subroutine DLAORHR_COL_GETRFNP (m, n, a, lda, d, info)

DLAORHR_COL_GETRFNP β€” that's her. that's the whole vibe.


πŸ¦‹ Function/Subroutine Documentation πŸ¦‹

subroutine DLAORHR_COL_GETRFNP (integer m, integer n, double precision,
    dimension( lda, * ) a, integer lda, double precision, dimension( * ) d,
    integer info)

DLAORHR_COL_GETRFNP ✨ (yes she's named twice, she's that girl)

πŸ’œ Purpose:

!> !> DLAORHR_COL_GETRFNP computes the modified LU factorization without !> pivoting of a real general M-by-N matrix A. The factorization has !> the form: !> !> A - S = L * U, !> !> where: !> S is a m-by-n diagonal sign matrix with the diagonal D, so that !> D(i) = S(i,i), 1 <= i <= min(M,N). The diagonal D is constructed !> as D(i)=-SIGN(A(i,i)), where A(i,i) is the value after performing !> i-1 steps of Gaussian elimination. This means that the diagonal !> element at each step of Gaussian elimination is !> at least one in absolute value (so that division-by-zero not !> not possible during the division by the diagonal element); !> !> L is a M-by-N lower triangular matrix with unit diagonal elements !> (lower trapezoidal if M > N); !> !> and U is a M-by-N upper triangular matrix !> (upper trapezoidal if M < N). !> !> This routine is an auxiliary routine used in the Householder !> reconstruction routine DORHR_COL. In DORHR_COL, this routine is !> applied to an M-by-N matrix A with orthonormal columns, where each !> element is bounded by one in absolute value. With the choice of !> the matrix S above, one can show that the diagonal element at each !> step of Gaussian elimination is the largest (in absolute value) in !> the column on or below the diagonal, so that no pivoting is required !> for numerical stability [1]. !> !> For more details on the Householder reconstruction algorithm, !> including the modified LU factorization, see [1]. !> !> This is the blocked right-looking version of the algorithm, !> calling Level 3 BLAS to update the submatrix. To factorize a block, !> this routine calls the recursive routine DLAORHR_COL_GETRFNP2. !> !> [1] , !> G. Ballard, J. Demmel, L. Grigori, M. Jacquelin, H.D. Nguyen, !> E. Solomonik, J. Parallel Distrib. Comput., !> vol. 85, pp. 3-31, 2015. !>

so like, real talk: this bad girl does a modified LU factorization with zero pivoting of a real general M-by-N matrix A, and the form is literally A - S = L * U. πŸ“βœ¨

  • S is an m-by-n diagonal sign matrix with diagonal D, so D(i) = S(i,i) for 1 <= i <= min(M,N). D gets built as D(i)=-SIGN(A(i,i)), where A(i,i) is the value after doing i-1 steps of Gaussian elimination. translation: the diagonal element at each step of Gaussian elimination is at least one in absolute value β€” so division-by-zero is not possible during the division by the diagonal element πŸš«βž—
  • L is an M-by-N lower triangular matrix with unit diagonal elements (lower trapezoidal if M > N) πŸ‘‘
  • U is an M-by-N upper triangular matrix (upper trapezoidal if M < N) πŸ’«

she's an auxiliary routine used inside the Householder reconstruction routine DORHR_COL. In DORHR_COL she gets applied to an M-by-N matrix A with orthonormal columns, where every element is bounded by one in absolute value. and with that choice of matrix S above, you can show that the diagonal element at each step of Gaussian elimination is the largest (in absolute value) in the column on or below the diagonal β€” so no pivoting is needed for numerical stability [1]. ate and left no crumbs πŸ”₯

for more details on the Householder reconstruction algorithm, including the modified LU factorization, see [1] (she's in the references, bestie, iykyk πŸ“š).

also she's the blocked right-looking version of the algorithm, calling Level 3 BLAS to update the submatrix. and to factorize a block, she calls the recursive routine DLAORHR_COL_GETRFNP2 β€” recursion queen behavior 🧚

reference [1]: G. Ballard, J. Demmel, L. Grigori, M. Jacquelin, H.D. Nguyen, E. Solomonik, J. Parallel Distrib. Comput., vol. 85, pp. 3-31, 2015.


πŸ“ Parameters πŸ“

  • M β€” !> M is INTEGER / !> The number of rows of the matrix A. M >= 0. β€” the row count, never negative, we don't do that here ✨
  • N β€” !> N is INTEGER / !> The number of columns of the matrix A. N >= 0. β€” the column count, also never negative πŸ’œ
  • A β€” !> A is DOUBLE PRECISION array, dimension (LDA,N) / !> On entry, the M-by-N matrix to be factored. / !> On exit, the factors L and U from the factorization / !> A-S=L*U; the unit diagonal elements of L are not stored. β€” main character energy fr, she goes in as your matrix and comes out as L and U from A-S=L*U. the unit diagonal elements of L are just… not stored. we don't keep receipts on those 🫢
  • LDA β€” !> LDA is INTEGER / !> The leading dimension of the array A. LDA >= max(1,M). β€” leading dimension of A, and she must satisfy LDA >= max(1,M) ⭐
  • D β€” !> D is DOUBLE PRECISION array, dimension min(M,N) / !> The diagonal elements of the diagonal M-by-N sign matrix S, / !> D(i) = S(i,i), where 1 <= i <= min(M,N). The elements can / !> be only plus or minus one. β€” the diagonal entries of that M-by-N sign matrix S, where D(i) = S(i,i) for 1 <= i <= min(M,N). and here's the vibe check: the elements can only be plus or minus one. no in-between, no "it's complicated" 😭
  • INFO β€” !> INFO is INTEGER / !> = 0: successful exit / !> < 0: if INFO = -i, the i-th argument had an illegal value β€” 0 means successful exit πŸ’–, and < 0 means if INFO = -i, the i-th argument had an illegal value πŸ’€ (rude of it, honestly)

🌈 Author

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

🧚 Contributors:

!> !> November 2019, Igor Kozachenko, !> Computer Science Division, !> University of California, Berkeley !> !>

shoutout Igor, Nov 2019, Computer Science Division, University of California, Berkeley β€” we see you and we appreciate you πŸ‘‘

Definition at line 145 of file dlaorhr_col_getrfnp.f. πŸ“ (yes, line 145, exact coordinates, no guessing)


πŸŽ€ Author

Generated automatically by Doxygen for LAPACK from the source code. so like, a robot wrote this one but the vibe is all hers πŸ€–πŸ’…


and that's the page, bestie! πŸ¦‹ this little baddie is from LAPACK Version 3.12.0, filed under /home/abui..._getrfnp.f(3), and she said periodt. πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from