# 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

NAG Ltd.

Date

Januar 2023

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

NAG Ltd.

Date

Januar 2023

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

NAG Ltd.

Date

Januar 2023

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

NAG Ltd.

Date

Januar 2023

Contributors:

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

Definition at line 115 of file zgetc2x.f90.

## Author

Generated automatically by Doxygen for MEPACK from the source code.

## Info

Tue Mar 7 2023 Version 1.0.3 MEPACK