Sparse LU solver

Inverse of sparse matrix are modelled in a “lazy” manner. When creating an object \(\texttt{invA}\) that models the inverse \(A^{-1}\) of a sparse matrix \(A\), the LU factorization \(A = L\cdot U\) is computed and stored according to an algorithm that takes advantage of the sparsity.

After creation of this “lazy inverse” \(\texttt{invA}\), only matrix-vector products \(y \mapsto x = \texttt{invA}(y)\) can be performed, and each matrix-vector product triggers the solution of a linear system \(A(x)=y\) by means of the sparse LU factorization.

Sparse LU factorizations are performed relying on the routines of the Eigen3 library.

template<typename VALUE_TYPE>
class InvCooMatrix

Lazy inverse of CooMatrix objects.

Objects of type InvCooMatrix model the inverse of a CooMatrix by computing and storing its sparse LU factorization.