31 #if defined(EigenSupport_RECURSES) 32 #error Recursive header files inclusion detected in EigenSupport.h 33 #else // defined(EigenSupport_RECURSES) 35 #define EigenSupport_RECURSES 37 #if !defined EigenSupport_h 39 #define EigenSupport_h 42 #if defined(WITH_EIGEN) 46 #define EIGEN_DENSEBASE_PLUGIN "DGtal/math/linalg/EigenDenseBaseAddons.h" 47 #define EIGEN_SPARSEMATRIX_PLUGIN "DGtal/math/linalg/EigenSparseMatrixAddons.h" 53 #if defined(__GNUG__) && !defined(__clang__) 54 #pragma GCC diagnostic push 55 #pragma GCC diagnostic ignored "-Wpragmas" 56 #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 57 #pragma GCC diagnostic ignored "-Wignored-attributes" 58 #pragma GCC diagnostic ignored "-Wshadow" 60 #if defined(__clang__) 61 #pragma clang diagnostic push 62 #pragma clang diagnostic ignored "-Wdocumentation" 63 #pragma clang diagnostic ignored "-Wignored-attributes" 65 #include <Eigen/Dense> 66 #include <Eigen/Sparse> 67 #include <Eigen/SparseCholesky> 68 #include <Eigen/IterativeLinearSolvers> 69 #include <Eigen/SparseLU> 70 #include <Eigen/SparseQR> 71 #if defined(__clang__) 72 #pragma clang diagnostic pop 74 #if defined(__GNUG__) && !defined(__clang__) 75 #pragma GCC diagnostic pop 104 typedef Eigen::SparseMatrix<DenseVector::Scalar, Eigen::ColMajor, DenseVector::Index>
SparseMatrix;
111 typedef Eigen::SparseQR<SparseMatrix, Eigen::COLAMDOrdering<SparseMatrix::Index> >
SolverSparseQR;
124 operator<<(std::ostream & os,
const Eigen::ComputationInfo& info)
131 case Eigen::NumericalIssue:
132 os <<
"numerical_issue";
134 case Eigen::NoConvergence:
135 os <<
"no_convergence";
137 case Eigen::InvalidInput:
138 os <<
"invalid_input";
147 #else // defined WITH_EIGEN 148 #error "DGtal Eigen support hasn't been enabled" 149 #endif // defined WITH_EIGEN 150 #endif // !defined EigenSupport_h 152 #undef EigenSupport_RECURSES 153 #endif // else defined(EigenSupport_RECURSES) Aim: Provide linear algebra backend using Eigen dense and sparse matrix as well as dense vector...
Eigen::SparseQR< SparseMatrix, Eigen::COLAMDOrdering< SparseMatrix::Index > > SolverSparseQR
Eigen::VectorXi IntegerVector
Eigen::ConjugateGradient< SparseMatrix > SolverConjugateGradient
Eigen::SimplicialLLT< SparseMatrix > SolverSimplicialLLT
Eigen::MatrixXd DenseMatrix
Eigen::VectorXd DenseVector
Eigen::BiCGSTAB< SparseMatrix > SolverBiCGSTAB
std::ostream & operator<<(std::ostream &out, const ClosedIntegerHalfPlane< TSpace > &object)
Eigen::Triplet< double > Triplet
DGtal is the top-level namespace which contains all DGtal functions and types.
Eigen::SimplicialLDLT< SparseMatrix > SolverSimplicialLDLT
Eigen::SparseMatrix< DenseVector::Scalar, Eigen::ColMajor, DenseVector::Index > SparseMatrix
Eigen::SparseLU< SparseMatrix > SolverSparseLU