launhr_col_getrfnp2(3)

πŸ’– NAME πŸ’–

ok so launhr_col_getrfnp2 β€” it's the whole la{un,or}hr_col_getrfnp2 situation, aka LU factor without pivoting, level 2. bestie it's giving "recursive LU but make it a family", iykyk πŸ’…


✨ SYNOPSIS ✨

🫢 Functions

  • recursive subroutine claunhr_col_getrfnp2 (m, n, a, lda, d, info) β€” no cap this is CLAUNHR_COL_GETRFNP2
  • recursive subroutine dlaorhr_col_getrfnp2 (m, n, a, lda, d, info) β€” DLAORHR_COL_GETRFNP2
  • recursive subroutine slaorhr_col_getrfnp2 (m, n, a, lda, d, info) β€” SLAORHR_COL_GETRFNP2
  • recursive subroutine zlaunhr_col_getrfnp2 (m, n, a, lda, d, info) β€” ZLAUNHR_COL_GETRFNP2

πŸ“– DETAILED DESCRIPTION πŸ“–

lowkey this section is just vibes in the original β€” no content, just the heading sitting there being iconic. the real tea is all under Function Documentation below 🫢


πŸ”₯ FUNCTION DOCUMENTATION πŸ”₯

πŸ’… claunhr_col_getrfnp2 β€” the complex one

recursive subroutine claunhr_col_getrfnp2 (integer m, integer n, complex,
    dimension( lda, * ) a, integer lda, complex, dimension( * ) d, integer
    info)

CLAUNHR_COL_GETRFNP2 β€” say that five times fast πŸ™ˆ

🎯 Purpose

ok so picture this: CLAUNHR_COL_GETRFNP2 computes the modified LU factorization without pivoting of a complex general M-by-N matrix A. and the factorization has the form:

    A - S = L * U,

where, let me break it down for you 🧚:

  • 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. Translation? 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 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 CUNHR_COL. In CUNHR_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]. periodt. πŸ’…

For more details on the Householder reconstruction algorithm, including the modified LU factorization, see [1].

This is the recursive version of the LU factorization algorithm. Denote A - S by B. The algorithm divides the matrix B into four submatrices:

       [  B11 | B12  ]  where B11 is n1 by n1,
   B = [ -----|----- ]        B21 is (m-n1) by n1,
       [  B21 | B22  ]        B12 is n1 by n2,
                              B22 is (m-n1) by n2,
                              with n1 = min(m,n)/2, n2 = n-n1.

The subroutine calls itself to factor B11, solves for B21, solves for B12, updates B22, then calls itself to factor B22. it's giving recursion, it's giving main character energy, honestly obsessed 😭

For more details on the recursive LU algorithm, see [2].

CLAUNHR_COL_GETRFNP2 is called to factorize a block by the blocked routine CLAUNHR_COL_GETRFNP, which uses blocked code calling Level 3 BLAS to update the submatrix. BUT β€” and this is the slay part β€” CLAUNHR_COL_GETRFNP2 is self-sufficient and can be used without CLAUNHR_COL_GETRFNP. independent queen πŸ‘‘

  • [1] , G. Ballard, J. Demmel, L. Grigori, M. Jacquelin, H.D. Nguyen, E. Solomonik, J. Parallel Distrib. Comput., vol. 85, pp. 3-31, 2015.
  • [2] , F. Gustavson, IBM J. of Res. and Dev., vol. 41, no. 6, pp. 737-755, 1997.

🧾 Parameters

  • M β€” M is INTEGER. The number of rows of the matrix A. M >= 0. no negatives bestie, we don't do that here ✨
  • N β€” N is INTEGER. The number of columns of the matrix A. N >= 0. same energy 🫢
  • A β€” A is COMPLEX 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. so don't go looking for them, they're not there πŸ’€
  • LDA β€” LDA is INTEGER. The leading dimension of the array A. LDA >= max(1,M). respect the boundary fr fr
  • D β€” D is COMPLEX 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 ( +1.0, 0.0 ) or (-1.0, 0.0 ). like, pick a lane, it's one or the other πŸ™ˆ
  • INFO β€” INFO is INTEGER.
    • = 0: successful exit πŸŽ‰
    • < 0: if INFO = -i, the i-th argument had an illegal value. not me passing a bad argument 😭

πŸ‘‘ 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

πŸ“ Definition

Definition at line 166 of file claunhr_col_getrfnp2.f.


πŸ¦‹ dlaorhr_col_getrfnp2 β€” the double precision one

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

DLAORHR_COL_GETRFNP2 πŸ’œ

🎯 Purpose

DLAORHR_COL_GETRFNP2 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 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 recursive version of the LU factorization algorithm. Denote A - S by B. The algorithm divides the matrix B into four submatrices:

       [  B11 | B12  ]  where B11 is n1 by n1,
   B = [ -----|----- ]        B21 is (m-n1) by n1,
       [  B21 | B22  ]        B12 is n1 by n2,
                              B22 is (m-n1) by n2,
                              with n1 = min(m,n)/2, n2 = n-n1.

The subroutine calls itself to factor B11, solves for B21, solves for B12, updates B22, then calls itself to factor B22.

For more details on the recursive LU algorithm, see [2].

DLAORHR_COL_GETRFNP2 is called to factorize a block by the blocked routine DLAORHR_COL_GETRFNP, which uses blocked code calling Level 3 BLAS to update the submatrix. However, DLAORHR_COL_GETRFNP2 is self-sufficient and can be used without DLAORHR_COL_GETRFNP. standing on its own two feet 🫢

  • [1] , G. Ballard, J. Demmel, L. Grigori, M. Jacquelin, H.D. Nguyen, E. Solomonik, J. Parallel Distrib. Comput., vol. 85, pp. 3-31, 2015.
  • [2] , F. Gustavson, IBM J. of Res. and Dev., vol. 41, no. 6, pp. 737-755, 1997.

🧾 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.
  • 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.
  • LDA β€” LDA is INTEGER. The leading dimension of the array A. 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. two options, that's it, that's the whole menu ✨
  • 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

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

πŸ“ Definition

Definition at line 166 of file dlaorhr_col_getrfnp2.f.


πŸ“ slaorhr_col_getrfnp2 β€” the real one

recursive subroutine slaorhr_col_getrfnp2 (integer m, integer n, real,
    dimension( lda, * ) a, integer lda, real, dimension( * ) d, integer
    info)

SLAORHR_COL_GETRFNP2 πŸŽ€

🎯 Purpose

aaaand that's where part 1 runs out πŸ’€ the rest of this one is waiting for you in part 2 bestie, keep scrolling 🫢

πŸ’– Parameters β€” SLAORHR_COL_GETRFNP2

  • M β€” M is INTEGER. It’s literally the number of rows of the matrix A. Constraint: M >= 0.
  • N β€” N is INTEGER. The number of columns of the matrix A. Constraint: N >= 0.
  • A β€” A is a REAL array with dimension (LDA,N). On entry, it’s the M-by-N matrix to be factored. On exit, it holds the factors L and U from the factorization A-S=L*U; the unit diagonal elements of L are not stored.
  • LDA β€” LDA is INTEGER. The leading dimension of the array A. Constraint: LDA >= max(1,M).
  • D β€” D is a REAL array with dimension min(M,N). These are 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.
  • INFO β€” INFO is INTEGER. Status check: = 0 means successful exit; < 0 means 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:

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

πŸ“ Definition at line 166 of file slaorhr_col_getrfnp2.f.


🧚 recursive subroutine zlaunhr_col_getrfnp2

ZLAUNHR_COL_GETRFNP2

recursive subroutine zlaunhr_col_getrfnp2 (integer m, integer n, complex*16,
    dimension( lda, * ) a, integer lda, complex*16, dimension( * ) d,
    integer info)

🎯 Purpose:

Okay bestie, this one is the complex*16 sibling of the routine above β€” no cap. ZLAUNHR_COL_GETRFNP2 computes the modified LU factorization without pivoting of a complex 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 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).
  • 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 ZUNHR_COL. In ZUNHR_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 recursive version of the LU factorization algorithm. Denote A - S by B. The algorithm divides the matrix B into four submatrices:

       [  B11 | B12  ]  where B11 is n1 by n1,
   B = [ -----|----- ]        B21 is (m-n1) by n1,
       [  B21 | B22  ]        B12 is n1 by n2,
                              B22 is (m-n1) by n2,
                              with n1 = min(m,n)/2, n2 = n-n1.

The subroutine calls itself to factor B11, solves for B21, solves for B12, updates B22, then calls itself to factor B22.

For more details on the recursive LU algorithm, see [2].

ZLAUNHR_COL_GETRFNP2 is called to factorize a block by the blocked routine ZLAUNHR_COL_GETRFNP, which uses blocked code calling Level 3 BLAS to update the submatrix. However, ZLAUNHR_COL_GETRFNP2 is self-sufficient and can be used without ZLAUNHR_COL_GETRFNP.

  • [1] G. Ballard, J. Demmel, L. Grigori, M. Jacquelin, H.D. Nguyen, E. Solomonik, J. Parallel Distrib. Comput., vol. 85, pp. 3-31, 2015.
  • [2] F. Gustavson, IBM J. of Res. and Dev., vol. 41, no. 6, pp. 737-755, 1997.

✨ Parameters β€” ZLAUNHR_COL_GETRFNP2

  • M β€” M is INTEGER. The number of rows of the matrix A. Constraint: M >= 0.
  • N β€” N is INTEGER. The number of columns of the matrix A. Constraint: N >= 0.
  • A β€” A is a COMPLEX*16 array with dimension (LDA,N). On entry, it’s the M-by-N matrix to be factored. On exit, it holds the factors L and U from the factorization A-S=L*U; the unit diagonal elements of L are not stored.
  • LDA β€” LDA is INTEGER. The leading dimension of the array A. Constraint: LDA >= max(1,M).
  • D β€” D is a COMPLEX*16 array with dimension min(M,N). These are 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 ( +1.0, 0.0 ) or (-1.0, 0.0 ).
  • INFO β€” INFO is INTEGER. Status check: = 0 means successful exit; < 0 means 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:

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

πŸ“ Definition at line 166 of file zlaunhr_col_getrfnp2.f.


And that’s the whole page, bestie. πŸ’… The footer energy is: auto-generated by Doxygen for LAPACK from the source code, LAPACK Version 3.12.0, page launhr_col_getrfnp2(3). Slay. ✨

πŸ“¦ where this page comes from