SRC/cgetrf2.f(3)

πŸ’… SRC/cgetrf2.f πŸ’…

okay so bestie, welcome to the Library Functions Manual β€” this page is SRC/cgetrf2.f, and it's giving recursive Fortran subroutine energy. Let's get into it. ✨

🌸 NAME 🌸

SRC/cgetrf2.f β€” that's the page name, and the star of the show is CGETRF2. πŸŽ€

✨ SYNOPSIS ✨

πŸ¦‹ Functions/Subroutines πŸ¦‹

  • recursive subroutine cgetrf2 (m, n, a, lda, ipiv, info) β€” CGETRF2.

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

πŸ‘‘ CGETRF2

recursive subroutine cgetrf2 (integer m, integer n, complex, dimension( lda,
* ) a, integer lda, integer, dimension( * ) ipiv, integer info)

πŸ’– Purpose πŸ’–

CGETRF2 computes an LU factorization of a general M-by-N matrix A using partial pivoting with row interchanges. Slay. πŸ’…

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). Iconic. πŸ‘‘

This is the recursive version of the algorithm. It divides the matrix into four submatrices:

       [  A11 | A12  ]  where A11 is n1 by n1 and A22 is n2 by n2
   A = [ -----|----- ]  with n1 = min(m,n)/2
       [  A21 | A22  ]       n2 = n-n1

                                      [ A11 ]
The subroutine calls itself to factor [ --- ],
                                      [ A12 ]
                [ A12 ]
do the swaps on [ --- ], solve A12, update A22,
                [ A22 ]

then calls itself to factor A22 and do the swaps on A21.
bestie, this is recursion doing its main character thing β€” it calls itself, does swaps, solves A12, updates A22, then calls itself again for A22 and does the swaps on A21. periodt. πŸ’«

🌈 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 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.
okay so that > 0 case is the dramatic one: the factorization finished, but U is singular, and using it to solve a system is a division-by-zero situation. not cute. πŸ’€

πŸ‘‘ Author πŸ‘‘

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Definition at line 112 of file cgetrf2.f.

πŸ‘‘ Author πŸ‘‘

Generated automatically by Doxygen for LAPACK from the source code.


That's the whole page, bestie. Footer energy: LAPACK Version 3.12.0, page SRC/cgetrf2.f(3). mwah πŸ’‹βœ¨

πŸ“¦ where this page comes from