CholmodSimplicialLLT.hpp
Go to the documentation of this file.
1 /*
2  * Copyright 2024 INRIA
3  */
4 
5 #ifndef __eigenpy_decomposition_sparse_cholmod_cholmod_simplicial_llt_hpp__
6 #define __eigenpy_decomposition_sparse_cholmod_cholmod_simplicial_llt_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  CholmodSimplicialLLTVisitor<MatrixType_, UpLo_> > {
18  typedef MatrixType_ MatrixType;
19  typedef typename MatrixType::Scalar Scalar;
20  typedef typename MatrixType::RealScalar RealScalar;
21 
22  typedef Eigen::CholmodSimplicialLLT<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 LLT "
32  "factorization from a given matrix."))
33 
34  ;
35  }
36 
37  static void expose() {
38  static const std::string classname =
39  "CholmodSimplicialLLT_" + 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 (LLT) 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  "SimplicialLLT 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_llt_hpp__
eigenpy::CholmodSimplicialLLTVisitor::expose
static void expose()
Definition: CholmodSimplicialLLT.hpp:37
scalar-name.hpp
eigenpy::CholmodSimplicialLLTVisitor::expose
static void expose(const std::string &name)
Definition: CholmodSimplicialLLT.hpp:43
CholmodDecomposition.hpp
eigenpy
Definition: alignment.hpp:14
eigenpy::scalar_name::shortname
static std::string shortname()
eigenpy::CholmodSimplicialLLTVisitor::Solver
Eigen::CholmodSimplicialLLT< MatrixType_, UpLo_ > Solver
Definition: CholmodSimplicialLLT.hpp:22
eigenpy::CholmodSimplicialLLTVisitor
Definition: CholmodSimplicialLLT.hpp:15
setup.name
name
Definition: setup.in.py:179
eigenpy.hpp
eigenpy::CholmodSimplicialLLTVisitor::RealScalar
MatrixType::RealScalar RealScalar
Definition: CholmodSimplicialLLT.hpp:20
eigenpy::CholmodSimplicialLLTVisitor::visit
void visit(PyClass &cl) const
Definition: CholmodSimplicialLLT.hpp:25
eigenpy::CholmodSimplicialLLTVisitor::Scalar
MatrixType::Scalar Scalar
Definition: CholmodSimplicialLLT.hpp:19
eigenpy::CholmodBaseVisitor
Definition: CholmodBase.hpp:17
eigenpy::CholmodSimplicialLLTVisitor::MatrixType
MatrixType_ MatrixType
Definition: CholmodSimplicialLLT.hpp:18


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