CholmodSupernodalLLT.hpp
Go to the documentation of this file.
1 /*
2  * Copyright 2024 INRIA
3  */
4 
5 #ifndef __eigenpy_decomposition_sparse_cholmod_cholmod_supernodal_llt_hpp__
6 #define __eigenpy_decomposition_sparse_cholmod_cholmod_supernodal_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  CholmodSupernodalLLTVisitor<MatrixType_, UpLo_> > {
18  typedef MatrixType_ MatrixType;
19  typedef typename MatrixType::Scalar Scalar;
20  typedef typename MatrixType::RealScalar RealScalar;
21 
22  typedef Eigen::CholmodSupernodalLLT<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  "CholmodSupernodalLLT_" + 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 supernodal 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  "supernodal LL^T Cholesky factorization using the Cholmod library."
50  "This supernodal variant performs best on dense enough problems, e.g., "
51  "3D FEM, or very high order 2D FEM."
52  "The sparse matrix A must be selfadjoint and positive definite. The "
53  "vectors or matrices X and B can be either dense or sparse.",
54  bp::no_init)
56  }
57 };
58 
59 } // namespace eigenpy
60 
61 #endif // ifndef
62  // __eigenpy_decomposition_sparse_cholmod_cholmod_supernodal_llt_hpp__
scalar-name.hpp
CholmodDecomposition.hpp
eigenpy::CholmodSupernodalLLTVisitor::visit
void visit(PyClass &cl) const
Definition: CholmodSupernodalLLT.hpp:25
eigenpy
Definition: alignment.hpp:14
eigenpy::CholmodSupernodalLLTVisitor::expose
static void expose()
Definition: CholmodSupernodalLLT.hpp:37
eigenpy::scalar_name::shortname
static std::string shortname()
eigenpy::CholmodSupernodalLLTVisitor::RealScalar
MatrixType::RealScalar RealScalar
Definition: CholmodSupernodalLLT.hpp:20
eigenpy::CholmodSupernodalLLTVisitor::MatrixType
MatrixType_ MatrixType
Definition: CholmodSupernodalLLT.hpp:18
setup.name
name
Definition: setup.in.py:179
eigenpy.hpp
eigenpy::CholmodSupernodalLLTVisitor::Solver
Eigen::CholmodSupernodalLLT< MatrixType_, UpLo_ > Solver
Definition: CholmodSupernodalLLT.hpp:22
eigenpy::CholmodSupernodalLLTVisitor::Scalar
MatrixType::Scalar Scalar
Definition: CholmodSupernodalLLT.hpp:19
eigenpy::CholmodSupernodalLLTVisitor::expose
static void expose(const std::string &name)
Definition: CholmodSupernodalLLT.hpp:43
eigenpy::CholmodSupernodalLLTVisitor
Definition: CholmodSupernodalLLT.hpp:15
eigenpy::CholmodBaseVisitor
Definition: CholmodBase.hpp:17


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