-
Justin Carpentier authoredJustin Carpentier authored
main.cpp 1.56 KiB
/*
* Copyright 2014-2019, CNRS
* Copyright 2018-2022, INRIA
*/
#include "eigenpy/eigenpy.hpp"
#include "eigenpy/version.hpp"
#include "eigenpy/geometry.hpp"
#include "eigenpy/computation-info.hpp"
#include "eigenpy/solvers/solvers.hpp"
#include "eigenpy/solvers/preconditioners.hpp"
#include "eigenpy/decompositions/decompositions.hpp"
#include "eigenpy/utils/is-approx.hpp"
#include <boost/python/scope.hpp>
using namespace eigenpy;
BOOST_PYTHON_MODULE(eigenpy_pywrap)
{
namespace bp = boost::python;
enableEigenPy();
bp::scope().attr("__version__") = eigenpy::printVersion();
bp::scope().attr("__raw_version__") = bp::str(EIGENPY_VERSION);
bp::def("checkVersionAtLeast",&eigenpy::checkVersionAtLeast,
bp::args("major_version","minor_version","patch_version"),
"Checks if the current version of EigenPy is at least the version provided by the input arguments.");
exposeAngleAxis();
exposeQuaternion();
exposeGeometryConversion();
exposeComputationInfo();
{
bp::scope solvers = boost::python::class_<SolversScope>("solvers");
exposeSolvers();
exposePreconditioners();
register_symbolic_link_to_registered_type<Eigen::ComputationInfo>();
}
{
using namespace Eigen;
bp::def("is_approx",(bool (*)(const Eigen::MatrixBase<MatrixXd> &, const Eigen::MatrixBase<MatrixXd> &, const double &))&is_approx<MatrixXd,MatrixXd>,
(bp::arg("A"),bp::arg("B"),bp::arg("prec") = 1e-12),
"Returns True if A is approximately equal to B, within the precision determined by prec.");
}
exposeDecompositions();
}