.. _program_listing_file__tmp_ws_src_eigenpy_include_eigenpy_decompositions_sparse_cholmod_CholmodSupernodalLLT.hpp: Program Listing for File CholmodSupernodalLLT.hpp ================================================= |exhale_lsh| :ref:`Return to documentation for file ` (``/tmp/ws/src/eigenpy/include/eigenpy/decompositions/sparse/cholmod/CholmodSupernodalLLT.hpp``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp /* * Copyright 2024 INRIA */ #ifndef __eigenpy_decomposition_sparse_cholmod_cholmod_supernodal_llt_hpp__ #define __eigenpy_decomposition_sparse_cholmod_cholmod_supernodal_llt_hpp__ #include "eigenpy/eigenpy.hpp" #include "eigenpy/decompositions/sparse/cholmod/CholmodDecomposition.hpp" #include "eigenpy/utils/scalar-name.hpp" namespace eigenpy { template struct CholmodSupernodalLLTVisitor : public boost::python::def_visitor< CholmodSupernodalLLTVisitor > { typedef MatrixType_ MatrixType; typedef typename MatrixType::Scalar Scalar; typedef typename MatrixType::RealScalar RealScalar; typedef Eigen::CholmodSupernodalLLT Solver; template void visit(PyClass &cl) const { cl .def(CholmodBaseVisitor()) .def(bp::init<>(bp::arg("self"), "Default constructor")) .def(bp::init(bp::args("self", "matrix"), "Constructs and performs the LLT " "factorization from a given matrix.")) ; } static void expose() { static const std::string classname = "CholmodSupernodalLLT_" + scalar_name::shortname(); expose(classname); } static void expose(const std::string &name) { bp::class_( name.c_str(), "A supernodal direct Cholesky (LLT) factorization and solver based on " "Cholmod.\n\n" "This class allows to solve for A.X = B sparse linear problems via a " "supernodal LL^T Cholesky factorization using the Cholmod library." "This supernodal variant performs best on dense enough problems, e.g., " "3D FEM, or very high order 2D FEM." "The sparse matrix A must be selfadjoint and positive definite. The " "vectors or matrices X and B can be either dense or sparse.", bp::no_init) .def(CholmodSupernodalLLTVisitor()); } }; } // namespace eigenpy #endif // ifndef // __eigenpy_decomposition_sparse_cholmod_cholmod_supernodal_llt_hpp__