# lapackfix - Man Page

## Name

lapackfix — Fixed LAPACK routines

— Bugfix versions of LAPACK routines.

## Synopsis

### Functions

subroutine **cgetc2x** (n, a, lda, ipiv, jpiv, info)**CGETC2X** computes the LU factorization with complete pivoting of the general n-by-n matrix.

subroutine **dgetc2x** (n, a, lda, ipiv, jpiv, info)**DGETC2X** computes the LU factorization with complete pivoting of the general n-by-n matrix.

subroutine **sgetc2x** (n, a, lda, ipiv, jpiv, info)**SGETC2** computes the LU factorization with complete pivoting of the general n-by-n matrix.

subroutine **zgetc2** (n, a, lda, ipiv, jpiv, info)**ZGETC2** computes the LU factorization with complete pivoting of the general n-by-n matrix.

## Detailed Description

Bugfix versions of LAPACK routines.

During the development of MEPACK, some LAPACK routines show some bugs since they are used differently in MEPACK than in LAPACK. Therefore, MEPACK comes with patched version of this routines in order to avoid bugs. Newer LAPACK versions include the bugfixes as well but we do not rely on this.

## Function Documentation

### subroutine cgetc2x (integer n, complex, dimension( lda, * ) a, integer lda, integer, dimension( * ) ipiv, integer, dimension( * ) jpiv, integer info)

**CGETC2X** computes the LU factorization with complete pivoting of the general n-by-n matrix.

**Purpose:**

CGETC2 computes an LU factorization, using 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. This routine contains a fixed version of the forward/backward substitution if an old version of LAPACK is used. This is a level 1 BLAS version of the algorithm.

**Parameters***N*N is INTEGER The order of the matrix A. N >= 0.

*A*A is COMPLEX array, dimension (LDA, N) On entry, the n-by-n matrix to be factored. 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, giving a non singular perturbed system.

*LDA*LDA is INTEGER The leading dimension of the array A. LDA >= max(1, N).

*IPIV*IPIV is INTEGER array, dimension (N). The pivot indices; for 1 <= i <= N, row i of the matrix has been interchanged with row IPIV(i).

*JPIV*JPIV is INTEGER array, dimension (N). The pivot indices; for 1 <= j <= N, column j of the matrix has been interchanged with column JPIV(j).

*INFO*INFO is INTEGER == 0: successful exit > 0: if INFO = k, U(k, k) is likely to produce overflow if one tries to solve for x in Ax = b. So U is perturbed to avoid the overflow.

**Author**Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

**Date**January 2024

**Contributors:**Bo Kagstrom and Peter Poromaa, Department of Computing Science, Umea University, S-901 87 Umea, Sweden.

Definition at line **115** of file **cgetc2x.f90**.

### subroutine dgetc2x (integer n, double precision, dimension( lda, * ) a, integer lda, integer, dimension( * ) ipiv, integer, dimension( * ) jpiv, integer info)

**DGETC2X** computes the LU factorization with complete pivoting of the general n-by-n matrix.

**Purpose:**

DGETC2 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. This routine contains a fixed version of the forward/backward substitution if an old version of LAPACK is used. This is the Level 2 BLAS algorithm.

**Parameters***N*N is INTEGER The order of the matrix A. N >= 0.

*A*A is DOUBLE PRECISION array, dimension (LDA, N) On entry, the n-by-n matrix A to be factored. 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, i.e., giving a non singular perturbed system.

*LDA*LDA is INTEGER The leading dimension of the array A. LDA >= max(1,N).

*IPIV*IPIV is INTEGER array, dimension(N). The pivot indices; for 1 <= i <= N, row i of the matrix has been interchanged with row IPIV(i).

*JPIV*JPIV is INTEGER array, dimension(N). The pivot indices; for 1 <= j <= N, column j of the matrix has been interchanged with column JPIV(j).

*INFO*INFO is INTEGER == 0: successful exit > 0: if INFO = k, U(k, k) is likely to produce overflow if we try to solve for x in Ax = b. So U is perturbed to avoid the overflow.

**Author**Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

**Date**January 2024

**Contributors:**Bo Kagstrom and Peter Poromaa, Department of Computing Science, Umea University, S-901 87 Umea, Sweden.

Definition at line **115** of file **dgetc2x.f90**.

### subroutine sgetc2x (integer n, real, dimension( lda, * ) a, integer lda, integer, dimension( * ) ipiv, integer, dimension( * ) jpiv, integer info)

**SGETC2** computes the LU factorization with complete pivoting of the general n-by-n matrix.

**Purpose:**

SGETC2 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. This routine contains a fixed version of the forward/backward substitution if an old version of LAPACK is used. This is the Level 2 BLAS algorithm.

**Parameters***N*N is INTEGER The order of the matrix A. N >= 0.

*A*A is REAL array, dimension (LDA, N) On entry, the n-by-n matrix A to be factored. 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, i.e., giving a non singular perturbed system.

*LDA*LDA is INTEGER The leading dimension of the array A. LDA >= max(1,N).

*IPIV*IPIV is INTEGER array, dimension(N). The pivot indices; for 1 <= i <= N, row i of the matrix has been interchanged with row IPIV(i).

*JPIV*JPIV is INTEGER array, dimension(N). The pivot indices; for 1 <= j <= N, column j of the matrix has been interchanged with column JPIV(j).

*INFO*INFO is INTEGER == 0: successful exit > 0: if INFO = k, U(k, k) is likely to produce overflow if we try to solve for x in Ax = b. So U is perturbed to avoid the overflow.

**Author**Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

**Date**January 2024

**Contributors:**Bo Kagstrom and Peter Poromaa, Department of Computing Science, Umea University, S-901 87 Umea, Sweden.

Definition at line **115** of file **sgetc2x.f90**.

### subroutine zgetc2 (integer n, complex(kind=kind(1.0d0)), dimension( lda, * ) a, integer lda, integer, dimension( * ) ipiv, integer, dimension( * ) jpiv, integer info)

**ZGETC2** computes the LU factorization with complete pivoting of the general n-by-n matrix.

**Purpose:**

ZGETC2 computes an LU factorization, using 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. This routine contains a fixed version of the forward/backward substitution if an old version of LAPACK is used. This is a level 1 BLAS version of the algorithm.

**Parameters***N*N is INTEGER The order of the matrix A. N >= 0.

*A*A is COMPLEX*16 array, dimension (LDA, N) On entry, the n-by-n matrix to be factored. 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, giving a non singular perturbed system.

*LDA*LDA is INTEGER The leading dimension of the array A. LDA >= max(1, N).

*IPIV*IPIV is INTEGER array, dimension (N). The pivot indices; for 1 <= i <= N, row i of the matrix has been interchanged with row IPIV(i).

*JPIV*JPIV is INTEGER array, dimension (N). The pivot indices; for 1 <= j <= N, column j of the matrix has been interchanged with column JPIV(j).

*INFO*INFO is INTEGER == 0: successful exit > 0: if INFO = k, U(k, k) is likely to produce overflow if one tries to solve for x in Ax = b. So U is perturbed to avoid the overflow.

**Author**Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

**Date**January 2024

**Contributors:**

Definition at line **115** of file **zgetc2x.f90**.

## Author

Generated automatically by Doxygen for MEPACK from the source code.