inverse Interface

public interface inverse

Public interface for functions that calculate a matrix inverse.


Module Procedures

public pure function matrix_inverse_re(A) result(R)

Wrapper for matrix_inverse_cx that operates on real matrices.

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(in), dimension(:, :) :: A

Matrix A [n×n]

Return Value real(kind=wp), dimension(size(A, 1), size(A, 1))

Matrix R=A¯¹

public pure function matrix_inverse_cx(A) result(R)

Inverts a square matrix via Gauss-Jordan elimination with partial pivot (general) or a cofactoring algorithm (2x2 matrices). The implementation is based on Algorithm #2 in "Efficient matrix inversion via Gauss-Jordan elimination and its parallelization" by E.S. Quintana et al. (1998).

Arguments

Type IntentOptional Attributes Name
complex(kind=wp), intent(in), dimension(:, :) :: A

Matrix A [n×n]

Return Value complex(kind=wp), dimension(size(A, 1), size(A, 1))

Matrix R=A¯¹