31 #if defined(EigenSupport_RECURSES)
32 #error Recursive header files inclusion detected in EigenSupport.h
35 #define EigenSupport_RECURSES
37 #if !defined EigenSupport_h
39 #define EigenSupport_h
45 #define EIGEN_DENSEBASE_PLUGIN "DGtal/math/linalg/EigenDenseBaseAddons.h"
46 #define EIGEN_SPARSEMATRIX_PLUGIN "DGtal/math/linalg/EigenSparseMatrixAddons.h"
52 #if defined(__GNUG__) && !defined(__clang__)
53 #pragma GCC diagnostic push
54 #pragma GCC diagnostic ignored "-Wpragmas"
55 #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
56 #pragma GCC diagnostic ignored "-Wignored-attributes"
57 #pragma GCC diagnostic ignored "-Wshadow"
59 #if defined(__clang__)
60 #pragma clang diagnostic push
61 #pragma clang diagnostic ignored "-Wdocumentation"
62 #pragma clang diagnostic ignored "-Wignored-attributes"
64 #include <Eigen/Dense>
65 #include <Eigen/Sparse>
66 #include <Eigen/SparseCholesky>
67 #include <Eigen/IterativeLinearSolvers>
68 #include <Eigen/SparseLU>
69 #include <Eigen/SparseQR>
70 #if defined(__clang__)
71 #pragma clang diagnostic pop
73 #if defined(__GNUG__) && !defined(__clang__)
74 #pragma GCC diagnostic pop
101 typedef Eigen::SparseMatrix<DenseVector::Scalar, Eigen::ColMajor, DenseVector::Index>
SparseMatrix;
102 typedef Eigen::Triplet<double, SparseMatrix::StorageIndex>
Triplet;
110 typedef Eigen::SparseQR<SparseMatrix, Eigen::COLAMDOrdering<SparseMatrix::Index> >
SolverSparseQR;
123 operator<<(std::ostream & os,
const Eigen::ComputationInfo& info)
130 case Eigen::NumericalIssue:
131 os <<
"numerical_issue";
133 case Eigen::NoConvergence:
134 os <<
"no_convergence";
136 case Eigen::InvalidInput:
137 os <<
"invalid_input";
148 #undef EigenSupport_RECURSES
DGtal is the top-level namespace which contains all DGtal functions and types.
std::ostream & operator<<(std::ostream &out, const ATu0v1< TKSpace, TLinearAlgebra > &object)
Aim: Provide linear algebra backend using Eigen dense and sparse matrix as well as dense vector....
Eigen::VectorXd DenseVector
Eigen::SimplicialLLT< SparseMatrix > SolverSimplicialLLT
Solvers on sparse matrices.
Eigen::SimplicialLDLT< SparseMatrix > SolverSimplicialLDLT
Eigen::Triplet< double, SparseMatrix::StorageIndex > Triplet
Eigen::MatrixXd DenseMatrix
Eigen::BiCGSTAB< SparseMatrix > SolverBiCGSTAB
Eigen::VectorXi IntegerVector
Eigen::SparseQR< SparseMatrix, Eigen::COLAMDOrdering< SparseMatrix::Index > > SolverSparseQR
Eigen::SparseMatrix< DenseVector::Scalar, Eigen::ColMajor, DenseVector::Index > SparseMatrix
Eigen::SparseLU< SparseMatrix > SolverSparseLU
Eigen::ConjugateGradient< SparseMatrix > SolverConjugateGradient