sparse module: add support for umfpack, the sparse direct LU

solver from suitesparse (as cholmod). It seems to be even faster
than SuperLU and it was much simpler to interface ! Well,
the factorization is faster, but for the solve part, SuperLU is
quite faster. On the other hand the solve part represents only a
fraction of the whole procedure. Moreover, I bench random matrices
that does not represents real cases, and I'm not sure at all
I use both libraries with their best settings !
This commit is contained in:
Gael Guennebaud
2008-10-19 22:44:21 +00:00
parent 64f7fbe3f2
commit 3a231c2349
4 changed files with 187 additions and 22 deletions

View File

@@ -311,8 +311,8 @@ void SparseLU<MatrixType,SuperLU>::compute(const MatrixType& a)
&m_sluStat, &info, Scalar());
StatFree(&m_sluStat);
// FIXME how to check for errors ???
Base::m_succeeded = true;
// FIXME how to better check for errors ???
Base::m_succeeded = (info == 0);
}
// template<typename MatrixType>
@@ -362,6 +362,8 @@ bool SparseLU<MatrixType,SuperLU>::solve(const MatrixBase<BDerived> &b, MatrixBa
&m_sluFerr[0], &m_sluBerr[0],
&m_sluStat, &info, Scalar());
StatFree(&m_sluStat);
return info==0;
}
#endif // EIGEN_SUPERLUSUPPORT_H