mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-04-19 08:09:36 +08:00

That means a lot of features which were available for sparse matrices via the dense (and super slow) implemention are no longer available. All features which make sense for sparse matrices (aka can be implemented efficiently) will be implemented soon, but don't expect to see an API as rich as for the dense path. Other changes: * no block(), row(), col() anymore. * instead use .innerVector() to get a col or row vector of a matrix. * .segment(), start(), end() will be back soon, not sure for block() * faster cwise product
118 lines
2.4 KiB
Plaintext
118 lines
2.4 KiB
Plaintext
#ifndef EIGEN_SPARSE_MODULE_H
|
|
#define EIGEN_SPARSE_MODULE_H
|
|
|
|
#include "Core"
|
|
|
|
#include "src/Core/util/DisableMSVCWarnings.h"
|
|
|
|
#include <vector>
|
|
#include <map>
|
|
#include <cstdlib>
|
|
#include <cstring>
|
|
#include <algorithm>
|
|
|
|
#ifdef EIGEN_GOOGLEHASH_SUPPORT
|
|
#include <google/dense_hash_map>
|
|
#endif
|
|
|
|
#ifdef EIGEN_CHOLMOD_SUPPORT
|
|
extern "C" {
|
|
#include "cholmod.h"
|
|
}
|
|
#endif
|
|
|
|
#ifdef EIGEN_TAUCS_SUPPORT
|
|
|
|
// taucs.h declares a lot of mess
|
|
#define isnan
|
|
#define finite
|
|
#define isinf
|
|
extern "C" {
|
|
#include "taucs.h"
|
|
}
|
|
#undef isnan
|
|
#undef finite
|
|
#undef isinf
|
|
|
|
#ifdef min
|
|
#undef min
|
|
#endif
|
|
#ifdef max
|
|
#undef max
|
|
#endif
|
|
|
|
#endif
|
|
|
|
#ifdef EIGEN_SUPERLU_SUPPORT
|
|
typedef int int_t;
|
|
#include "superlu/slu_Cnames.h"
|
|
#include "superlu/supermatrix.h"
|
|
#include "superlu/slu_util.h"
|
|
|
|
namespace SuperLU_S {
|
|
#include "superlu/slu_sdefs.h"
|
|
}
|
|
namespace SuperLU_D {
|
|
#include "superlu/slu_ddefs.h"
|
|
}
|
|
namespace SuperLU_C {
|
|
#include "superlu/slu_cdefs.h"
|
|
}
|
|
namespace SuperLU_Z {
|
|
#include "superlu/slu_zdefs.h"
|
|
}
|
|
namespace Eigen { struct SluMatrix; }
|
|
#endif
|
|
|
|
#ifdef EIGEN_UMFPACK_SUPPORT
|
|
#include "umfpack.h"
|
|
#endif
|
|
|
|
namespace Eigen {
|
|
|
|
#include "src/Sparse/SparseUtil.h"
|
|
#include "src/Sparse/SparseMatrixBase.h"
|
|
#include "src/Sparse/SparseArray.h"
|
|
#include "src/Sparse/AmbiVector.h"
|
|
#include "src/Sparse/RandomSetter.h"
|
|
#include "src/Sparse/SparseBlock.h"
|
|
#include "src/Sparse/SparseMatrix.h"
|
|
#include "src/Sparse/SparseVector.h"
|
|
#include "src/Sparse/CoreIterators.h"
|
|
#include "src/Sparse/SparseTranspose.h"
|
|
#include "src/Sparse/SparseCwise.h"
|
|
#include "src/Sparse/SparseCwiseUnaryOp.h"
|
|
#include "src/Sparse/SparseCwiseBinaryOp.h"
|
|
#include "src/Sparse/SparseDot.h"
|
|
#include "src/Sparse/SparseAssign.h"
|
|
#include "src/Sparse/SparseRedux.h"
|
|
#include "src/Sparse/SparseFuzzy.h"
|
|
#include "src/Sparse/SparseFlagged.h"
|
|
#include "src/Sparse/SparseProduct.h"
|
|
#include "src/Sparse/TriangularSolver.h"
|
|
#include "src/Sparse/SparseLLT.h"
|
|
#include "src/Sparse/SparseLDLT.h"
|
|
#include "src/Sparse/SparseLU.h"
|
|
|
|
#ifdef EIGEN_CHOLMOD_SUPPORT
|
|
# include "src/Sparse/CholmodSupport.h"
|
|
#endif
|
|
|
|
#ifdef EIGEN_TAUCS_SUPPORT
|
|
# include "src/Sparse/TaucsSupport.h"
|
|
#endif
|
|
|
|
#ifdef EIGEN_SUPERLU_SUPPORT
|
|
# include "src/Sparse/SuperLUSupport.h"
|
|
#endif
|
|
|
|
#ifdef EIGEN_UMFPACK_SUPPORT
|
|
# include "src/Sparse/UmfPackSupport.h"
|
|
#endif
|
|
|
|
} // namespace Eigen
|
|
|
|
#include "src/Core/util/EnableMSVCWarnings.h"
|
|
|
|
#endif // EIGEN_SPARSE_MODULE_H
|