GCC Code Coverage Report
Directory: ./ Exec Total Coverage
File: src/matrix/integrator-euler-python-module-py.cc Lines: 11 21 52.4 %
Date: 2023-03-13 12:09:37 Branches: 7 26 26.9 %

Line Branch Exec Source
1
#include <boost/python/suite/indexing/vector_indexing_suite.hpp>
2
#include <dynamic-graph/python/dynamic-graph-py.hh>
3
#include <dynamic-graph/python/module.hh>
4
#include <sot/core/integrator-euler.hh>
5
6
namespace dg = dynamicgraph;
7
namespace dgc = dynamicgraph::command;
8
namespace dgs = dynamicgraph::sot;
9
using dg::Matrix;
10
using dg::Vector;
11
12
template <typename S, typename C>
13
6
void exposeIntegratorEuler() {
14
  typedef dgs::IntegratorEuler<S, C> IE_t;
15
16
6
  const std::string cName = dgc::Value::typeName(dgc::ValueHelper<C>::TypeID);
17
18
6
  dg::python::exposeEntity<IE_t>()
19
      .add_property(
20
          "numerators",
21
          +[](const IE_t &e) {
22
            return dg::python::to_py_list(e.numCoeffs().begin(),
23
                                          e.numCoeffs().end());
24
          },
25
          +[](IE_t &e, bp::object iterable) {
26
            e.numCoeffs(dg::python::to_std_vector<C>(iterable));
27
          })
28

12
      .add_property(
29
          "denominators",
30
          +[](const IE_t &e) {
31
            return dg::python::to_py_list(e.denomCoeffs().begin(),
32
                                          e.denomCoeffs().end());
33
          },
34
          +[](IE_t &e, bp::object iterable) {
35
            e.denomCoeffs(dg::python::to_std_vector<C>(iterable));
36
          });
37
6
}
38
39

4
BOOST_PYTHON_MODULE(wrap) {
40
2
  bp::import("dynamic_graph");
41
42
2
  exposeIntegratorEuler<double, double>();
43
2
  exposeIntegratorEuler<Vector, double>();
44
2
  exposeIntegratorEuler<Vector, Matrix>();
45
2
}