GCC Code Coverage Report


Directory: ./
File: include/crocoddyl/core/actuation-base.hxx
Date: 2025-06-03 08:14:12
Exec Total Coverage
Lines: 0 27 0.0%
Functions: 0 18 0.0%
Branches: 0 46 0.0%

Line Branch Exec Source
1 ///////////////////////////////////////////////////////////////////////////////
2 // BSD 3-Clause License
3 //
4 // Copyright (C) 2019-2025, LAAS-CNRS, University of Edinburgh,
5 // Heriot-Watt University
6 // Copyright note valid unless otherwise stated in individual files.
7 // All rights reserved.
8 ///////////////////////////////////////////////////////////////////////////////
9
10 namespace crocoddyl {
11
12 template <typename Scalar>
13 ✗ ActuationModelAbstractTpl<Scalar>::ActuationModelAbstractTpl(
14 std::shared_ptr<StateAbstract> state, const std::size_t nu)
15 ✗ : nu_(nu), state_(state) {}
16
17 template <typename Scalar>
18 std::shared_ptr<ActuationDataAbstractTpl<Scalar> >
19 ✗ ActuationModelAbstractTpl<Scalar>::createData() {
20 return std::allocate_shared<ActuationDataAbstract>(
21 ✗ Eigen::aligned_allocator<ActuationDataAbstract>(), this);
22 }
23
24 template <typename Scalar>
25 ✗ void ActuationModelAbstractTpl<Scalar>::calc(
26 const std::shared_ptr<ActuationDataAbstract>&,
27 ✗ const Eigen::Ref<const VectorXs>&) {}
28
29 template <typename Scalar>
30 ✗ void ActuationModelAbstractTpl<Scalar>::calcDiff(
31 const std::shared_ptr<ActuationDataAbstract>&,
32 ✗ const Eigen::Ref<const VectorXs>&) {}
33
34 template <typename Scalar>
35 ✗ void ActuationModelAbstractTpl<Scalar>::torqueTransform(
36 const std::shared_ptr<ActuationDataAbstract>& data,
37 const Eigen::Ref<const VectorXs>& x, const Eigen::Ref<const VectorXs>& u) {
38 ✗ if (static_cast<std::size_t>(x.size()) != state_->get_nx()) {
39 ✗ throw_pretty(
40 "Invalid argument: " << "x has wrong dimension (it should be " +
41 std::to_string(state_->get_nx()) + ")");
42 }
43 ✗ if (static_cast<std::size_t>(u.size()) != nu_) {
44 ✗ throw_pretty(
45 "Invalid argument: " << "u has wrong dimension (it should be " +
46 std::to_string(nu_) + ")");
47 }
48 ✗ calc(data, x, u);
49 ✗ calcDiff(data, x, u);
50 ✗ data->Mtau = pseudoInverse(data->dtau_du);
51 ✗ }
52
53 template <typename Scalar>
54 ✗ std::size_t ActuationModelAbstractTpl<Scalar>::get_nu() const {
55 ✗ return nu_;
56 }
57
58 template <typename Scalar>
59 const std::shared_ptr<StateAbstractTpl<Scalar> >&
60 ✗ ActuationModelAbstractTpl<Scalar>::get_state() const {
61 ✗ return state_;
62 }
63
64 template <typename Scalar>
65 ✗ std::ostream& operator<<(std::ostream& os,
66 const ActuationModelAbstractTpl<Scalar>& model) {
67 ✗ model.print(os);
68 ✗ return os;
69 }
70
71 template <typename Scalar>
72 ✗ void ActuationModelAbstractTpl<Scalar>::print(std::ostream& os) const {
73 ✗ os << boost::core::demangle(typeid(*this).name());
74 ✗ }
75
76 } // namespace crocoddyl
77