GCC Code Coverage Report


Directory: ./
File: include/crocoddyl/core/control-base.hxx
Date: 2025-03-26 19:23:43
Exec Total Coverage
Lines: 6 23 26.1%
Branches: 0 16 0.0%

Line Branch Exec Source
1 ///////////////////////////////////////////////////////////////////////////////
2 // BSD 3-Clause License
3 //
4 // Copyright (C) 2021-2025, LAAS-CNRS, University of Edinburgh,
5 // University of Trento, Heriot-Watt University
6 // Copyright note valid unless otherwise stated in individual files.
7 // All rights reserved.
8 ///////////////////////////////////////////////////////////////////////////////
9
10 #include <boost/core/demangle.hpp>
11
12 namespace crocoddyl {
13
14 template <typename Scalar>
15 1130 ControlParametrizationModelAbstractTpl<
16 Scalar>::ControlParametrizationModelAbstractTpl(const std::size_t nw,
17 const std::size_t nu)
18 1130 : nw_(nw), nu_(nu) {}
19
20 template <typename Scalar>
21 std::shared_ptr<ControlParametrizationDataAbstractTpl<Scalar> >
22 ControlParametrizationModelAbstractTpl<Scalar>::createData() {
23 return std::allocate_shared<ControlParametrizationDataAbstract>(
24 Eigen::aligned_allocator<ControlParametrizationDataAbstract>(), this);
25 }
26
27 template <typename Scalar>
28 bool ControlParametrizationModelAbstractTpl<Scalar>::checkData(
29 const std::shared_ptr<ControlParametrizationDataAbstract>&) {
30 return false;
31 }
32
33 template <typename Scalar>
34 typename MathBaseTpl<Scalar>::MatrixXs
35 ControlParametrizationModelAbstractTpl<Scalar>::multiplyByJacobian_J(
36 const std::shared_ptr<ControlParametrizationDataAbstract>& data,
37 const Eigen::Ref<const MatrixXs>& A, const AssignmentOp op) const {
38 MatrixXs AJ(A.rows(), nu_);
39 multiplyByJacobian(data, A, AJ, op);
40 return AJ;
41 }
42
43 template <typename Scalar>
44 typename MathBaseTpl<Scalar>::MatrixXs
45 ControlParametrizationModelAbstractTpl<Scalar>::multiplyJacobianTransposeBy_J(
46 const std::shared_ptr<ControlParametrizationDataAbstract>& data,
47 const Eigen::Ref<const MatrixXs>& A, const AssignmentOp op) const {
48 MatrixXs JTA(nu_, A.cols());
49 multiplyJacobianTransposeBy(data, A, JTA, op);
50 return JTA;
51 }
52
53 template <typename Scalar>
54 std::ostream& operator<<(
55 std::ostream& os,
56 const ControlParametrizationModelAbstractTpl<Scalar>& model) {
57 model.print(os);
58 return os;
59 }
60
61 template <typename Scalar>
62 void ControlParametrizationModelAbstractTpl<Scalar>::print(
63 std::ostream& os) const {
64 os << boost::core::demangle(typeid(*this).name());
65 }
66
67 template <typename Scalar>
68 376195 std::size_t ControlParametrizationModelAbstractTpl<Scalar>::get_nw() const {
69 376195 return nw_;
70 }
71
72 template <typename Scalar>
73 223071 std::size_t ControlParametrizationModelAbstractTpl<Scalar>::get_nu() const {
74 223071 return nu_;
75 }
76
77 } // namespace crocoddyl
78