zgetrf.f(3)

๐Ÿ“ฆ version 3.9.0, in centos-stream 9

๐ŸŒธ NAME ๐ŸŒธ

Okay so bestie, this is zgetrf.f(3), and the manual name is LAPACK โ€” weโ€™re folding that in right here so you donโ€™t miss it. This page is all about zgetrf.f, the ZGETRF variant thatโ€™s an iterative version of Sivan Toledoโ€™s recursive LU algorithm. Slay. ๐Ÿ’…


โœจ SYNOPSIS โœจ

Functions/Subroutines

  • subroutine zgetrf (M, N, A, LDA, IPIV, INFO) โ€” ZGETRF VARIANT: iterative version of Sivan Toledoโ€™s recursive LU algorithm. Periodt.

๐Ÿ’– Function/Subroutine Documentation ๐Ÿ’–

subroutine zgetrf (integer M, integer N, complex*16, dimension( lda, * ) A,
    integer LDA, integer, dimension( * ) IPIV, integer INFO)

ZGETRF VARIANT: iterative version of Sivan Toledoโ€™s recursive LU algorithm.

Purpose:

ZGETRF computes an LU factorization of a general M-by-N matrix A using partial pivoting with row interchanges. Iconic behavior, honestly.

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. Obsessed with the bit lore, ngl. ๐Ÿงš

[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 COMPLEX*16 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. No cap. ๐Ÿซถ
  • 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. ๐Ÿšจ Bestie, thatโ€™s the serious one โ€” do not ignore it.

Author:

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

Date:

December 2016

Definition at line 136 of file VARIANTS/lu/REC/zgetrf.f.


๐Ÿซถ Author ๐Ÿซถ

Generated automatically by Doxygen for LAPACK from the source code.


Byeeee bestie ๐Ÿ’‹ this page is from LAPACK Version 3.8.0, dated Tue Nov 14 2017, and itโ€™s zgetrf.f(3) โ€” mwah. ๐ŸŽ€๐Ÿฆ‹

๐Ÿ“ฆ where this page comes from