From f43de8e75d91399fe8d642d70307986e9f09841c Mon Sep 17 00:00:00 2001 From: SimonRohou Date: Fri, 28 Jan 2022 10:38:58 +0100 Subject: [PATCH] [py] added binding for CtcNewton --- python/CMakeLists.txt | 1 + python/codac_py.cpp | 2 + .../contractors/static/codac_py_CtcNewton.cpp | 44 +++++++++++++++++++ 3 files changed, 47 insertions(+) create mode 100644 python/src/core/contractors/static/codac_py_CtcNewton.cpp diff --git a/python/CMakeLists.txt b/python/CMakeLists.txt index cc83d9d9..76437f24 100644 --- a/python/CMakeLists.txt +++ b/python/CMakeLists.txt @@ -63,6 +63,7 @@ src/core/contractors/static/codac_py_CtcDist.cpp src/core/contractors/static/codac_py_CtcFunction.cpp src/core/contractors/static/codac_py_CtcConstell.cpp + src/core/contractors/static/codac_py_CtcNewton.cpp src/core/contractors/dyn/codac_py_DynCtc.cpp src/core/contractors/dyn/codac_py_CtcDelay.cpp diff --git a/python/codac_py.cpp b/python/codac_py.cpp index b2649a49..e2a3037a 100644 --- a/python/codac_py.cpp +++ b/python/codac_py.cpp @@ -32,6 +32,7 @@ void export_IntervalVectorVar(py::module& m); void export_CtcDist(py::module& m); void export_CtcFunction(py::module& m); void export_CtcConstell(py::module& m); +void export_CtcNewton(py::module& m); py::class_ export_DynCtc(py::module& m); void export_CtcDelay(py::module& m, py::class_& dyn_ctc); @@ -77,6 +78,7 @@ PYBIND11_MODULE(tube, m) export_CtcDist(m); export_CtcFunction(m); export_CtcConstell(m); + export_CtcNewton(m); py::class_ dyn_ctc = export_DynCtc(m); export_CtcDelay(m, dyn_ctc); diff --git a/python/src/core/contractors/static/codac_py_CtcNewton.cpp b/python/src/core/contractors/static/codac_py_CtcNewton.cpp new file mode 100644 index 00000000..8758f8d1 --- /dev/null +++ b/python/src/core/contractors/static/codac_py_CtcNewton.cpp @@ -0,0 +1,44 @@ +/** + * \file + * CtcNewton Python binding + * ---------------------------------------------------------------------------- + * \date 2022 + * \author Simon Rohou + * \copyright Copyright 2022 Codac Team + * \license This program is distributed under the terms of + * the GNU Lesser General Public License (LGPL). + */ + +#include +#include +#include +#include +#include "pyIbex_type_caster.h" + +#include "ibex_Domain.h" +#include "ibex_Newton.h" // for default values of the Ctc +#include "ibex_CtcNewton.h" +// Generated file from Doxygen XML (doxygen2docstring.py): +// todo: #include "codac_py_CtcNewton_docs.h" + +using namespace std; +using namespace ibex; +using namespace codac; +namespace py = pybind11; +using namespace pybind11::literals; + + +void export_CtcNewton(py::module& m) +{ + py::class_ ctc_newton(m, "CtcNewton", "todo"); + ctc_newton + + .def(py::init(), + "todo", + "f"_a, "ceil"_a=CtcNewton::default_ceil, "prec"_a=default_newton_prec, "ratio"_a=default_gauss_seidel_ratio) + + .def("contract", (void (CtcNewton::*)(IntervalVector&))&CtcNewton::contract, + "todo", + "x"_a.noconvert()); + ; +} \ No newline at end of file