sparse module: add preliminary support for direct sparse LU solver

using SuperLU. Calling SuperLU was very painful, but it was worth it,
it seems to be damn fast !
This commit is contained in:
Gael Guennebaud
2008-10-19 15:26:28 +00:00
parent 6be0131774
commit ecc6c43dba
5 changed files with 562 additions and 6 deletions

View File

@@ -247,7 +247,7 @@ class SparseMatrix
typedef typename ei_cleantype<OtherCopy>::type _OtherCopy;
resize(other.rows(), other.cols());
Map<VectorXi>(m_outerIndex,outerSize()).setZero();
Eigen::Map<VectorXi>(m_outerIndex,outerSize()).setZero();
// pass 1
// FIXME the above copy could be merged with that pass
for (int j=0; j<otherCopy.outerSize(); ++j)
@@ -317,6 +317,11 @@ class SparseMatrix
cholmod_sparse asCholmodMatrix();
#endif
#ifdef EIGEN_SUPERLU_SUPPORT
static SparseMatrix Map(SluMatrix& sluMatrix);
SluMatrix asSluMatrix();
#endif
/** Destructor */
inline ~SparseMatrix()
{