lu_factor Interface

public interface lu_factor

Module Procedures

private pure subroutine lu_factor_dbl(a, ipvt, lu, l, u, p)

Computes the LU factorization of an M-by-N matrix.

Arguments

Type IntentOptional Attributes Name
real(kind=real64), intent(inout), dimension(:,:) :: a

The N-by-N matrix to factor.

integer(kind=int32), intent(out), optional, allocatable, target, dimension(:) :: ipvt

An N-element array used to track row-pivot operations. The array stored pivot information such that row I is interchanged with row IPVT(I).

real(kind=real64), intent(out), optional, allocatable, target, dimension(:,:) :: lu

The N-by-N factored matrix in the form [\ ] where the unit diagonal elements of are not stored.

real(kind=real64), intent(out), optional, allocatable, target, dimension(:,:) :: l

The N-by-N lower triangular matrix .

real(kind=real64), intent(out), optional, allocatable, target, dimension(:,:) :: u

The N-by-N upper triangular matrix .

real(kind=real64), intent(out), optional, allocatable, target, dimension(:,:) :: p

The N-by-N row permutation matrix.

private pure subroutine lu_factor_cmplx(a, ipvt, lu, l, u, p)

Computes the LU factorization of an M-by-N matrix.

Arguments

Type IntentOptional Attributes Name
complex(kind=real64), intent(inout), dimension(:,:) :: a

The N-by-N matrix to factor.

integer(kind=int32), intent(out), optional, allocatable, target, dimension(:) :: ipvt

An N-element array used to track row-pivot operations. The array stored pivot information such that row I is interchanged with row IPVT(I).

complex(kind=real64), intent(out), optional, allocatable, target, dimension(:,:) :: lu

The N-by-N factored matrix in the form [\ ] where the unit diagonal elements of are not stored.

complex(kind=real64), intent(out), optional, allocatable, target, dimension(:,:) :: l

The N-by-N lower triangular matrix .

complex(kind=real64), intent(out), optional, allocatable, target, dimension(:,:) :: u

The N-by-N upper triangular matrix .

real(kind=real64), intent(out), optional, allocatable, target, dimension(:,:) :: p

The N-by-N row permutation matrix.

private pure subroutine csr_lu_factor(a, lu, ju, droptol)

Factors a matrix using an LU decomposition.

Arguments

Type IntentOptional Attributes Name
class(csr_matrix), intent(in) :: a

The matrix to factor.

type(msr_matrix), intent(out) :: lu

The LU matrix.

integer(kind=int32), intent(out), dimension(:) :: ju

The row tracking array.

real(kind=real64), intent(in), optional :: droptol

The drop tolerance for the ILUT factorization.