CholmodSimplicialLDLT.hpp
Go to the documentation of this file.
1 /*
2  * Copyright 2024 INRIA
3  */
4 
5 #ifndef __eigenpy_decomposition_sparse_cholmod_cholmod_simplicial_ldlt_hpp__
6 #define __eigenpy_decomposition_sparse_cholmod_cholmod_simplicial_ldlt_hpp__
7 
8 #include "eigenpy/eigenpy.hpp"
11 
12 namespace eigenpy {
13 
14 template <typename MatrixType_, int UpLo_ = Eigen::Lower>
16  : public boost::python::def_visitor<
17  CholmodSimplicialLDLTVisitor<MatrixType_, UpLo_> > {
18  typedef MatrixType_ MatrixType;
19  typedef typename MatrixType::Scalar Scalar;
20  typedef typename MatrixType::RealScalar RealScalar;
21 
22  typedef Eigen::CholmodSimplicialLDLT<MatrixType_, UpLo_> Solver;
23 
24  template <class PyClass>
25  void visit(PyClass &cl) const {
26  cl
27 
29  .def(bp::init<>(bp::arg("self"), "Default constructor"))
30  .def(bp::init<MatrixType>(bp::args("self", "matrix"),
31  "Constructs and performs the LDLT "
32  "factorization from a given matrix."))
33 
34  ;
35  }
36 
37  static void expose() {
38  static const std::string classname =
39  "CholmodSimplicialLDLT_" + scalar_name<Scalar>::shortname();
40  expose(classname);
41  }
42 
43  static void expose(const std::string &name) {
44  bp::class_<Solver, boost::noncopyable>(
45  name.c_str(),
46  "A simplicial direct Cholesky (LDLT) factorization and solver based on "
47  "Cholmod.\n\n"
48  "This class allows to solve for A.X = B sparse linear problems via a "
49  "simplicial LL^T Cholesky factorization using the Cholmod library."
50  "This simplicial variant is equivalent to Eigen's built-in "
51  "SimplicialLDLT class."
52  "Therefore, it has little practical interest. The sparse matrix A must "
53  "be selfadjoint and positive definite."
54  "The vectors or matrices X and B can be either dense or sparse.",
55  bp::no_init)
57  }
58 };
59 
60 } // namespace eigenpy
61 
62 #endif // ifndef
63  // __eigenpy_decomposition_sparse_cholmod_cholmod_simplicial_ldlt_hpp__
eigenpy::CholmodSimplicialLDLTVisitor::MatrixType
MatrixType_ MatrixType
Definition: CholmodSimplicialLDLT.hpp:18
eigenpy::CholmodSimplicialLDLTVisitor::Solver
Eigen::CholmodSimplicialLDLT< MatrixType_, UpLo_ > Solver
Definition: CholmodSimplicialLDLT.hpp:22
scalar-name.hpp
eigenpy::CholmodSimplicialLDLTVisitor::visit
void visit(PyClass &cl) const
Definition: CholmodSimplicialLDLT.hpp:25
eigenpy::CholmodSimplicialLDLTVisitor::Scalar
MatrixType::Scalar Scalar
Definition: CholmodSimplicialLDLT.hpp:19
CholmodDecomposition.hpp
eigenpy::CholmodSimplicialLDLTVisitor
Definition: CholmodSimplicialLDLT.hpp:15
eigenpy
Definition: alignment.hpp:14
eigenpy::CholmodSimplicialLDLTVisitor::RealScalar
MatrixType::RealScalar RealScalar
Definition: CholmodSimplicialLDLT.hpp:20
eigenpy::scalar_name::shortname
static std::string shortname()
eigenpy::CholmodSimplicialLDLTVisitor::expose
static void expose()
Definition: CholmodSimplicialLDLT.hpp:37
eigenpy::CholmodSimplicialLDLTVisitor::expose
static void expose(const std::string &name)
Definition: CholmodSimplicialLDLT.hpp:43
setup.name
name
Definition: setup.in.py:179
eigenpy.hpp
eigenpy::CholmodBaseVisitor
Definition: CholmodBase.hpp:17


eigenpy
Author(s): Justin Carpentier, Nicolas Mansard
autogenerated on Fri Jun 14 2024 02:15:58