GCC Code Coverage Report


Directory: ./
File: include/crocoddyl/core/control-base.hxx
Date: 2025-05-13 10:30:51
Exec Total Coverage
Lines: 0 23 0.0%
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 namespace crocoddyl {
11
12 template <typename Scalar>
13 ControlParametrizationModelAbstractTpl<
14 Scalar>::ControlParametrizationModelAbstractTpl(const std::size_t nw,
15 const std::size_t nu)
16 : nw_(nw), nu_(nu) {}
17
18 template <typename Scalar>
19 std::shared_ptr<ControlParametrizationDataAbstractTpl<Scalar> >
20 ControlParametrizationModelAbstractTpl<Scalar>::createData() {
21 return std::allocate_shared<ControlParametrizationDataAbstract>(
22 Eigen::aligned_allocator<ControlParametrizationDataAbstract>(), this);
23 }
24
25 template <typename Scalar>
26 bool ControlParametrizationModelAbstractTpl<Scalar>::checkData(
27 const std::shared_ptr<ControlParametrizationDataAbstract>&) {
28 return false;
29 }
30
31 template <typename Scalar>
32 typename MathBaseTpl<Scalar>::MatrixXs
33 ControlParametrizationModelAbstractTpl<Scalar>::multiplyByJacobian_J(
34 const std::shared_ptr<ControlParametrizationDataAbstract>& data,
35 const Eigen::Ref<const MatrixXs>& A, const AssignmentOp op) const {
36 MatrixXs AJ(A.rows(), nu_);
37 multiplyByJacobian(data, A, AJ, op);
38 return AJ;
39 }
40
41 template <typename Scalar>
42 typename MathBaseTpl<Scalar>::MatrixXs
43 ControlParametrizationModelAbstractTpl<Scalar>::multiplyJacobianTransposeBy_J(
44 const std::shared_ptr<ControlParametrizationDataAbstract>& data,
45 const Eigen::Ref<const MatrixXs>& A, const AssignmentOp op) const {
46 MatrixXs JTA(nu_, A.cols());
47 multiplyJacobianTransposeBy(data, A, JTA, op);
48 return JTA;
49 }
50
51 template <typename Scalar>
52 std::ostream& operator<<(
53 std::ostream& os,
54 const ControlParametrizationModelAbstractTpl<Scalar>& model) {
55 model.print(os);
56 return os;
57 }
58
59 template <typename Scalar>
60 void ControlParametrizationModelAbstractTpl<Scalar>::print(
61 std::ostream& os) const {
62 os << boost::core::demangle(typeid(*this).name());
63 }
64
65 template <typename Scalar>
66 std::size_t ControlParametrizationModelAbstractTpl<Scalar>::get_nw() const {
67 return nw_;
68 }
69
70 template <typename Scalar>
71 std::size_t ControlParametrizationModelAbstractTpl<Scalar>::get_nu() const {
72 return nu_;
73 }
74
75 } // namespace crocoddyl
76