DGETRF(3)

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

πŸ’… DGETRF(3) πŸ’…

okay so bestie, this is DGETRF(3) from the Library Functions Manual β€” the page path is literally /home/abui...EC/dgetrf.f(3), and yes, the source path is a whole journey. Buckle up, we're doing LU factorization and it's giving main character energy. ✨


πŸŽ€ NAME πŸŽ€

/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/VARIANTS/lu/REC/dgetrf.f


πŸ¦‹ SYNOPSIS πŸ¦‹

✨ Functions/Subroutines ✨

subroutine DGETRF (m, n, a, lda, ipiv, info)

DGETRF VARIANT: iterative version of Sivan Toledo's recursive LU algorithm


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

subroutine DGETRF (integer m, integer n, double precision, dimension( lda, * ) a, integer lda, integer, dimension( * ) ipiv, integer info)

DGETRF VARIANT: iterative version of Sivan Toledo's recursive LU algorithm

🎯 Purpose 🎯

DGETRF computes an LU factorization of a general M-by-N matrix A using partial pivoting with row interchanges. Periodt.

The factorization has the form

A = P * L * U

where P is a permutation matrix, L is lower triangular with unit diagonal elements (lower trapezoidal if m > n), and U is upper triangular (upper trapezoidal if m < n).

This code implements an iterative version of Sivan Toledo's recursive LU algorithm[1]. For square matrices, this iterative versions should be within a factor of two of the optimum number of memory transfers.

The pattern is as follows, with the large blocks of U being updated in one call to DTRSM, and the dotted lines denoting sections that have had all pending permutations applied:

 1 2 3 4 5 6 7 8
+-+-+-+-+-------+------
| |1|   |       |
|.+-+ 2 |       |
| | |   |       |
|.|.+-+-+   4   |
| | | |1|       |
| | |.+-+       |
| | | | |       |
|.|.|.|.+-+-+---+  8
| | | | | |1|   |
| | | | |.+-+ 2 |
| | | | | | |   |
| | | | |.|.+-+-+
| | | | | | | |1|
| | | | | | |.+-+
| | | | | | | | |
|.|.|.|.|.|.|.|.+-----
| | | | | | | | |

The 1-2-1-4-1-2-1-8-... pattern is the position of the last 1 bit in the binary expansion of the current column. Each Schur update is applied as soon as the necessary portion of U is available.

[1] Toledo, S. 1997. Locality of Reference in LU Decomposition with Partial Pivoting. SIAM J. Matrix Anal. Appl. 18, 4 (Oct. 1997), 1065-1081. http://dx.doi.org/10.1137/S0895479896297744

🌸 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 = P*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).
  • IPIV β€” IPIV is INTEGER array, dimension (min(M,N)). The pivot indices; for 1 <= i <= min(M,N), row i of the matrix was interchanged with row IPIV(i).
  • INFO β€” INFO is INTEGER
    • = 0: successful exit
    • < 0: if INFO = -i, the i-th argument had an illegal value
    • > 0: if INFO = i, U(i,i) is exactly zero. The factorization has been completed, but the factor U is exactly singular, and division by zero will occur if it is used to solve a system of equations.

🫢 Author 🫢

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

πŸŽ€ Date πŸŽ€

December 2016

Definition at line 135 of file dgetrf.f.


πŸ“ Author πŸ“

Generated automatically by Doxygen for LAPACK from the source code.


✨ mwah πŸ’‹ β€” this page is from LAPACK Version 3.12.0, page path /home/abui...EC/dgetrf.f(3), and the date is December 2016. ✨

πŸ“¦ where this page comes from