| Directory: | ./ |
|---|---|
| File: | bindings/python/algorithm/expose-cholesky.cpp |
| Date: | 2025-02-12 21:03:38 |
| Exec | Total | Coverage | |
|---|---|---|---|
| Lines: | 10 | 13 | 76.9% |
| Branches: | 9 | 18 | 50.0% |
| Line | Branch | Exec | Source |
|---|---|---|---|
| 1 | // | ||
| 2 | // Copyright (c) 2019-2020 CNRS INRIA | ||
| 3 | // | ||
| 4 | |||
| 5 | #include "pinocchio/bindings/python/algorithm/algorithms.hpp" | ||
| 6 | #include "pinocchio/bindings/python/utils/namespace.hpp" | ||
| 7 | #include "pinocchio/algorithm/cholesky.hpp" | ||
| 8 | |||
| 9 | namespace pinocchio | ||
| 10 | { | ||
| 11 | namespace python | ||
| 12 | { | ||
| 13 | |||
| 14 | 69 | void exposeCholesky() | |
| 15 | { | ||
| 16 | using namespace Eigen; | ||
| 17 | using namespace pinocchio::cholesky; | ||
| 18 | |||
| 19 | { | ||
| 20 | typedef context::Scalar Scalar; | ||
| 21 | typedef context::VectorXs VectorXs; | ||
| 22 | enum | ||
| 23 | { | ||
| 24 | Options = context::Options | ||
| 25 | }; | ||
| 26 | |||
| 27 | // using the cholesky scope | ||
| 28 |
3/6✓ Branch 2 taken 69 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 69 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 69 times.
✗ Branch 9 not taken.
|
138 | bp::scope current_scope = getOrCreatePythonNamespace("cholesky"); |
| 29 | |||
| 30 |
1/2✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
|
69 | bp::def( |
| 31 | "decompose", &decompose<Scalar, Options, JointCollectionDefaultTpl>, | ||
| 32 |
1/2✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
|
138 | bp::args("Model", "Data"), |
| 33 | "Computes the Cholesky decomposition of the joint space inertia matrix M contained " | ||
| 34 | "in data.\n" | ||
| 35 | "The upper triangular part of data.M should have been filled first by calling " | ||
| 36 | "crba, or any related algorithms.", | ||
| 37 | ✗ | bp::return_value_policy<bp::return_by_value>()); | |
| 38 | |||
| 39 |
1/2✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
|
69 | bp::def( |
| 40 | "solve", &solve<Scalar, Options, JointCollectionDefaultTpl, VectorXs>, | ||
| 41 |
1/2✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
|
138 | bp::args("Model", "Data", "v"), |
| 42 | "Returns the solution \f$x\f$ of \f$ M x = y \f$ using the Cholesky decomposition " | ||
| 43 | "stored in data given the entry \f$ y \f$.", | ||
| 44 | ✗ | bp::return_value_policy<bp::return_by_value>()); | |
| 45 | |||
| 46 |
1/2✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
|
69 | bp::def( |
| 47 | "computeMinv", &computeMinv<Scalar, Options, JointCollectionDefaultTpl>, | ||
| 48 |
1/2✓ Branch 1 taken 69 times.
✗ Branch 2 not taken.
|
138 | bp::args("Model", "Data"), |
| 49 | "Returns the inverse of the joint space inertia matrix using the results of the " | ||
| 50 | "Cholesky decomposition\n" | ||
| 51 | "performed by cholesky.decompose. The result is stored in data.Minv.", | ||
| 52 | ✗ | bp::return_value_policy<bp::return_by_value>()); | |
| 53 | 69 | } | |
| 54 | 69 | } | |
| 55 | |||
| 56 | } // namespace python | ||
| 57 | } // namespace pinocchio | ||
| 58 |