GCC Code Coverage Report


Directory: ./
File: include/crocoddyl/core/actuation-base.hxx
Date: 2025-05-13 10:30:51
Exec Total Coverage
Lines: 0 25 0.0%
Branches: 0 44 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