# ?getc2

Computes the LU factorization with complete pivoting of the general n-by-n matrix.

## Syntax

call sgetc2( n, a, lda, ipiv, jpiv, info )

call dgetc2( n, a, lda, ipiv, jpiv, info )

call cgetc2( n, a, lda, ipiv, jpiv, info )

call zgetc2( n, a, lda, ipiv, jpiv, info )

## Description

This routine computes an LU factorization with complete pivoting of the n-by-n matrix A. The factorization has the form `A = P*L*U*Q`, where P and Q are permutation matrices, L is lower triangular with unit diagonal elements and U is upper triangular.

The LU factorization computed by this routine is used by ?latdf to compute a contribution to the reciprocal Dif-estimate.

## Input Parameters

n

  INTEGER. The order of the matrix A (`n ≥ 0`).

a

  REAL for sgetc2

  DOUBLE PRECISION for dgetc2

  COMPLEX for cgetc2

  COMPLEX*16 for zgetc2.

  Array `a(lda,*)` contains the n-by-n matrix A to be factored. The second dimension of a must be at least `max(1, n)`;

lda

  INTEGER. The first dimension of a; at least `max(1, n)`.

## Output Parameters

a

  On exit, the factors L and U from the factorization `A = P*L*U*Q`; the unit diagonal elements of L are not stored. If U(k, k) appears to be less than smin, U(k, k) is given the value of smin, that is giving a nonsingular perturbed system.

ipiv

  INTEGER.

  Array, DIMENSION at least `max(1,n)`.

  The pivot indices: for `1 ≤ i ≤ n` , row i of the matrix has been interchanged with row ipiv(i).

jpiv

  INTEGER.

  Array, DIMENSION at least `max(1,n)`.

  The pivot indices: for `1 ≤ j ≤ n` , column j of the matrix has been interchanged with column jpiv(j).

info

  INTEGER.

  If `info = 0`, the execution is successful.

  If `info = k` `>0`, U(k, k) is likely to produce overflow if we try to solve for x in `A*x = b`. So U is perturbed to avoid the overflow.

Parent topic: Auxiliary Routines