GCC Code Coverage Report


Directory: ./
File: include/crocoddyl/core/fwd.hpp
Date: 2025-03-26 19:23:43
Exec Total Coverage
Lines: 4 4 100.0%
Branches: 3 6 50.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 #ifndef CROCODDYL_CORE_FWD_HPP_
11 #define CROCODDYL_CORE_FWD_HPP_
12
13 #include "crocoddyl/config.hpp"
14 #include "crocoddyl/core/macros.hpp"
15 #include "crocoddyl/core/utils/conversions.hpp"
16 #include "crocoddyl/core/utils/deprecate.hpp"
17 #include "crocoddyl/core/utils/exception.hpp"
18 #include "crocoddyl/core/utils/math.hpp"
19 #include "crocoddyl/core/utils/scalar.hpp"
20
21 namespace crocoddyl {
22
23 361 inline bool& enableMultithreading() {
24 static bool enable = true;
25 361 return enable;
26 }
27
28 enum AssignmentOp { setto, addto, rmfrom };
29
30 112999 inline bool is_a_AssignmentOp(AssignmentOp op) {
31
3/6
✓ Branch 0 taken 23781 times.
✓ Branch 1 taken 89218 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 23781 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
112999 return (op == setto || op == addto || op == rmfrom);
32 }
33
34 // action
35 template <typename Scalar>
36 class ActionModelAbstractTpl;
37
38 template <typename Scalar>
39 struct ActionDataAbstractTpl;
40
41 template <typename Scalar>
42 class ActionModelUnicycleTpl;
43 template <typename Scalar>
44 struct ActionDataUnicycleTpl;
45
46 template <typename Scalar>
47 class ActionModelLQRTpl;
48 template <typename Scalar>
49 struct ActionDataLQRTpl;
50
51 // differential action
52 template <typename Scalar>
53 class DifferentialActionModelAbstractTpl;
54 template <typename Scalar>
55 struct DifferentialActionDataAbstractTpl;
56
57 template <typename Scalar>
58 class DifferentialActionModelLQRTpl;
59 template <typename Scalar>
60 struct DifferentialActionDataLQRTpl;
61
62 // integrated action
63 template <typename Scalar>
64 class IntegratedActionModelAbstractTpl;
65 template <typename Scalar>
66 struct IntegratedActionDataAbstractTpl;
67
68 template <typename Scalar>
69 class IntegratedActionModelEulerTpl;
70 template <typename Scalar>
71 struct IntegratedActionDataEulerTpl;
72
73 template <typename Scalar>
74 class IntegratedActionModelRKTpl;
75 template <typename Scalar>
76 struct IntegratedActionDataRKTpl;
77
78 // residual
79 template <typename Scalar>
80 class ResidualModelAbstractTpl;
81 template <typename Scalar>
82 struct ResidualDataAbstractTpl;
83
84 // activation
85 template <typename Scalar>
86 struct ActivationBoundsTpl;
87 template <typename Scalar>
88 class ActivationModelQuadraticBarrierTpl;
89 template <typename Scalar>
90 struct ActivationDataQuadraticBarrierTpl;
91
92 template <typename Scalar>
93 class ActivationModelWeightedQuadraticBarrierTpl;
94
95 template <typename Scalar>
96 class ActivationModelQuadTpl;
97
98 template <typename Scalar>
99 class ActivationModelQuadFlatExpTpl;
100 template <typename Scalar>
101 struct ActivationDataQuadFlatExpTpl;
102
103 template <typename Scalar>
104 class ActivationModelQuadFlatLogTpl;
105 template <typename Scalar>
106 struct ActivationDataQuadFlatLogTpl;
107
108 template <typename Scalar>
109 class ActivationModelWeightedQuadTpl;
110 template <typename Scalar>
111 struct ActivationDataWeightedQuadTpl;
112
113 template <typename Scalar>
114 class ActivationModelSmooth1NormTpl;
115 template <typename Scalar>
116 struct ActivationDataSmooth1NormTpl;
117
118 template <typename Scalar>
119 class ActivationModelSmooth2NormTpl;
120 template <typename Scalar>
121 struct ActivationDataSmooth2NormTpl;
122
123 template <typename Scalar>
124 class ActivationModel2NormBarrierTpl;
125 template <typename Scalar>
126 struct ActivationData2NormBarrierTpl;
127
128 template <typename Scalar>
129 class ActivationModelAbstractTpl;
130 template <typename Scalar>
131 struct ActivationDataAbstractTpl;
132
133 // state
134 template <typename Scalar>
135 class StateAbstractTpl;
136
137 template <typename Scalar>
138 class StateVectorTpl;
139
140 // control
141 template <typename Scalar>
142 class ControlParametrizationModelAbstractTpl;
143 template <typename Scalar>
144 struct ControlParametrizationDataAbstractTpl;
145
146 template <typename Scalar>
147 class ControlParametrizationModelPolyZeroTpl;
148
149 template <typename Scalar>
150 class ControlParametrizationModelPolyOneTpl;
151 template <typename Scalar>
152 struct ControlParametrizationDataPolyOneTpl;
153
154 template <typename Scalar>
155 class ControlParametrizationModelPolyTwoRKTpl;
156 template <typename Scalar>
157 struct ControlParametrizationDataPolyTwoRKTpl;
158
159 // actuation
160 template <typename Scalar>
161 class ActuationModelAbstractTpl;
162 template <typename Scalar>
163 struct ActuationDataAbstractTpl;
164
165 template <typename Scalar>
166 class ActuationSquashingModelTpl;
167 template <typename Scalar>
168 struct ActuationSquashingDataTpl;
169
170 // squashing
171 template <typename Scalar>
172 class SquashingModelAbstractTpl;
173 template <typename Scalar>
174 struct SquashingDataAbstractTpl;
175
176 template <typename Scalar>
177 class SquashingModelSmoothSatTpl;
178
179 // joint
180 template <typename Scalar>
181 struct JointDataAbstractTpl;
182
183 // data collector
184 template <typename Scalar>
185 struct DataCollectorAbstractTpl;
186
187 template <typename Scalar>
188 struct DataCollectorActuationTpl;
189
190 template <typename Scalar>
191 struct DataCollectorJointTpl;
192
193 template <typename Scalar>
194 struct DataCollectorJointActuationTpl;
195
196 // residual
197 template <typename Scalar>
198 class ResidualModelControlTpl;
199 template <typename Scalar>
200 struct ResidualDataControlTpl;
201
202 template <typename Scalar>
203 class ResidualModelJointEffortTpl;
204 template <typename Scalar>
205 struct ResidualDataJointEffortTpl;
206
207 template <typename Scalar>
208 class ResidualModelJointAccelerationTpl;
209 template <typename Scalar>
210 struct ResidualDataJointAccelerationTpl;
211
212 // cost
213 template <typename Scalar>
214 class CostModelAbstractTpl;
215 template <typename Scalar>
216 struct CostDataAbstractTpl;
217
218 template <typename Scalar>
219 struct CostItemTpl;
220 template <typename Scalar>
221 class CostModelSumTpl;
222 template <typename Scalar>
223 struct CostDataSumTpl;
224
225 template <typename Scalar>
226 class CostModelResidualTpl;
227 template <typename Scalar>
228 struct CostDataResidualTpl;
229
230 // constraint
231 template <typename Scalar>
232 class ConstraintModelAbstractTpl;
233 template <typename Scalar>
234 struct ConstraintDataAbstractTpl;
235
236 template <typename Scalar>
237 struct ConstraintItemTpl;
238 template <typename Scalar>
239 class ConstraintModelManagerTpl;
240 template <typename Scalar>
241 struct ConstraintDataManagerTpl;
242
243 template <typename Scalar>
244 class ConstraintModelResidualTpl;
245 template <typename Scalar>
246 struct ConstraintDataResidualTpl;
247
248 // shooting
249 template <typename Scalar>
250 class ShootingProblemTpl;
251
252 // Numdiff
253 template <typename Scalar>
254 class ActionModelNumDiffTpl;
255 template <typename Scalar>
256 struct ActionDataNumDiffTpl;
257
258 template <typename Scalar>
259 class DifferentialActionModelNumDiffTpl;
260 template <typename Scalar>
261 struct DifferentialActionDataNumDiffTpl;
262
263 template <typename Scalar>
264 class ActuationModelNumDiffTpl;
265 template <typename Scalar>
266 struct ActuationDataNumDiffTpl;
267
268 template <typename Scalar>
269 class ActivationModelNumDiffTpl;
270 template <typename Scalar>
271 struct ActivationDataNumDiffTpl;
272
273 template <typename Scalar>
274 class ResidualModelNumDiffTpl;
275 template <typename Scalar>
276 struct ResidualDataNumDiffTpl;
277
278 template <typename Scalar>
279 class ConstraintModelNumDiffTpl;
280 template <typename Scalar>
281 struct ConstraintDataNumDiffTpl;
282
283 template <typename Scalar>
284 class StateNumDiffTpl;
285
286 template <typename Scalar>
287 class ControlParametrizationModelNumDiffTpl;
288 template <typename Scalar>
289 struct ControlParametrizationDataNumDiffTpl;
290
291 template <typename Scalar>
292 class ActuationModelNumDiffTpl;
293 template <typename Scalar>
294 struct ActuationDataNumDiffTpl;
295
296 template <typename Scalar>
297 class ActionModelCodeGenTpl;
298
299 template <typename Scalar>
300 struct ActionDataCodeGenTpl;
301
302 /********************Template Instantiation*************/
303 typedef ActionModelAbstractTpl<double> ActionModelAbstract;
304 typedef ActionDataAbstractTpl<double> ActionDataAbstract;
305 typedef ActionModelUnicycleTpl<double> ActionModelUnicycle;
306 typedef ActionDataUnicycleTpl<double> ActionDataUnicycle;
307 typedef ActionModelLQRTpl<double> ActionModelLQR;
308 typedef ActionDataLQRTpl<double> ActionDataLQR;
309
310 typedef DifferentialActionModelAbstractTpl<double>
311 DifferentialActionModelAbstract;
312 typedef DifferentialActionDataAbstractTpl<double>
313 DifferentialActionDataAbstract;
314 typedef DifferentialActionModelLQRTpl<double> DifferentialActionModelLQR;
315 typedef DifferentialActionDataLQRTpl<double> DifferentialActionDataLQR;
316
317 typedef IntegratedActionModelAbstractTpl<double> IntegratedActionModelAbstract;
318 typedef IntegratedActionDataAbstractTpl<double> IntegratedActionDataAbstract;
319 typedef IntegratedActionModelEulerTpl<double> IntegratedActionModelEuler;
320 typedef IntegratedActionDataEulerTpl<double> IntegratedActionDataEuler;
321 typedef IntegratedActionModelRKTpl<double> IntegratedActionModelRK;
322 typedef IntegratedActionDataRKTpl<double> IntegratedActionDataRK;
323
324 typedef ResidualModelAbstractTpl<double> ResidualModelAbstract;
325 typedef ResidualDataAbstractTpl<double> ResidualDataAbstract;
326 typedef ResidualModelControlTpl<double> ResidualModelControl;
327 typedef ResidualDataControlTpl<double> ResidualDataControl;
328 typedef ResidualModelJointEffortTpl<double> ResidualModelJointEffort;
329 typedef ResidualDataJointEffortTpl<double> ResidualDataJointEffort;
330 typedef ResidualModelJointAccelerationTpl<double>
331 ResidualModelJointAcceleration;
332 typedef ResidualDataJointAccelerationTpl<double> ResidualDataJointAcceleration;
333
334 typedef ActivationDataQuadraticBarrierTpl<double>
335 ActivationDataQuadraticBarrier;
336 typedef ActivationModelQuadraticBarrierTpl<double>
337 ActivationModelQuadraticBarrier;
338 typedef ActivationBoundsTpl<double> ActivationBounds;
339 typedef ActivationModelWeightedQuadraticBarrierTpl<double>
340 ActivationModelWeightedQuadraticBarrier;
341 typedef ActivationModelQuadTpl<double> ActivationModelQuad;
342 typedef ActivationModelQuadFlatExpTpl<double> ActivationModelQuadFlatExp;
343 typedef ActivationDataQuadFlatExpTpl<double> ActivationDataQuadFlatExp;
344 typedef ActivationModelQuadFlatLogTpl<double> ActivationModelQuadFlatLog;
345 typedef ActivationDataQuadFlatLogTpl<double> ActivationDataQuadFlatLog;
346 typedef ActivationModelWeightedQuadTpl<double> ActivationModelWeightedQuad;
347 typedef ActivationDataWeightedQuadTpl<double> ActivationDataWeightedQuad;
348 DEPRECATED(
349 "Use ActivationModelSmooth1Norm",
350 typedef ActivationModelSmooth1NormTpl<double> ActivationModelSmoothAbs;)
351 DEPRECATED(
352 "Use ActivationDataSmooth1Norm",
353 typedef ActivationDataSmooth1NormTpl<double> ActivationDataSmoothAbs;)
354 typedef ActivationModelSmooth1NormTpl<double> ActivationModelSmooth1Norm;
355 typedef ActivationDataSmooth1NormTpl<double> ActivationDataSmooth1Norm;
356 typedef ActivationModelSmooth2NormTpl<double> ActivationModelSmooth2Norm;
357 typedef ActivationDataSmooth2NormTpl<double> ActivationDataSmooth2Norm;
358 typedef ActivationModel2NormBarrierTpl<double> ActivationModel2NormBarrier;
359 typedef ActivationData2NormBarrierTpl<double> ActivationData2NormBarrier;
360 typedef ActivationModelAbstractTpl<double> ActivationModelAbstract;
361 typedef ActivationDataAbstractTpl<double> ActivationDataAbstract;
362
363 typedef StateAbstractTpl<double> StateAbstract;
364 typedef StateVectorTpl<double> StateVector;
365
366 typedef ControlParametrizationModelAbstractTpl<double>
367 ControlParametrizationModelAbstract;
368 typedef ControlParametrizationDataAbstractTpl<double>
369 ControlParametrizationDataAbstract;
370 typedef ControlParametrizationModelPolyZeroTpl<double>
371 ControlParametrizationModelPolyZero;
372 typedef ControlParametrizationModelPolyOneTpl<double>
373 ControlParametrizationModelPolyOne;
374 typedef ControlParametrizationDataPolyOneTpl<double>
375 ControlParametrizationDataPolyOne;
376 typedef ControlParametrizationModelPolyTwoRKTpl<double>
377 ControlParametrizationModelPolyTwoRK;
378 typedef ControlParametrizationDataPolyTwoRKTpl<double>
379 ControlParametrizationDataPolyTwoRK;
380
381 typedef ActuationDataAbstractTpl<double> ActuationDataAbstract;
382 typedef ActuationModelAbstractTpl<double> ActuationModelAbstract;
383 typedef ActuationSquashingDataTpl<double> ActuationSquashingData;
384 typedef ActuationSquashingModelTpl<double> ActuationSquashingModel;
385
386 typedef SquashingDataAbstractTpl<double> SquashingDataAbstract;
387 typedef SquashingModelAbstractTpl<double> SquashingModelAbstract;
388 typedef SquashingModelSmoothSatTpl<double> SquashingModelSmoothSat;
389
390 typedef JointDataAbstractTpl<double> JointDataAbstract;
391
392 typedef DataCollectorAbstractTpl<double> DataCollectorAbstract;
393 typedef DataCollectorActuationTpl<double> DataCollectorActuation;
394 typedef DataCollectorJointTpl<double> DataCollectorJoint;
395 typedef DataCollectorJointActuationTpl<double> DataCollectorJointActuation;
396
397 typedef CostModelAbstractTpl<double> CostModelAbstract;
398 typedef CostDataAbstractTpl<double> CostDataAbstract;
399 typedef CostItemTpl<double> CostItem;
400 typedef CostModelSumTpl<double> CostModelSum;
401 typedef CostDataSumTpl<double> CostDataSum;
402 typedef CostModelResidualTpl<double> CostModelResidual;
403 typedef CostDataResidualTpl<double> CostDataResidual;
404
405 typedef ConstraintModelAbstractTpl<double> ConstraintModelAbstract;
406 typedef ConstraintDataAbstractTpl<double> ConstraintDataAbstract;
407 typedef ConstraintItemTpl<double> ConstraintItem;
408 typedef ConstraintModelManagerTpl<double> ConstraintModelManager;
409 typedef ConstraintDataManagerTpl<double> ConstraintDataManager;
410 typedef ConstraintModelResidualTpl<double> ConstraintModelResidual;
411 typedef ConstraintDataResidualTpl<double> ConstraintDataResidual;
412
413 typedef ShootingProblemTpl<double> ShootingProblem;
414
415 typedef ActionModelNumDiffTpl<double> ActionModelNumDiff;
416 typedef ActionDataNumDiffTpl<double> ActionDataNumDiff;
417 typedef ControlParametrizationModelNumDiffTpl<double>
418 ControlParametrizationModelNumDiff;
419 typedef ControlParametrizationDataNumDiffTpl<double>
420 ControlParametrizationDataNumDiff;
421 typedef DifferentialActionModelNumDiffTpl<double>
422 DifferentialActionModelNumDiff;
423 typedef ActuationModelNumDiffTpl<double> ActuationModelNumDiff;
424 typedef ActuationDataNumDiffTpl<double> ActuationDataNumDiff;
425 typedef DifferentialActionDataNumDiffTpl<double> DifferentialActionDataNumDiff;
426 typedef ActivationModelNumDiffTpl<double> ActivationModelNumDiff;
427 typedef ActivationDataNumDiffTpl<double> ActivationDataNumDiff;
428 typedef ResidualModelNumDiffTpl<double> ResidualModelNumDiff;
429 typedef ResidualDataNumDiffTpl<double> ResidualDataNumDiff;
430 typedef ConstraintModelNumDiffTpl<double> ConstraintModelNumDiff;
431 typedef ConstraintDataNumDiffTpl<double> ConstraintDataNumDiff;
432 typedef StateNumDiffTpl<double> StateNumDiff;
433 typedef ActuationModelNumDiffTpl<double> ActuationModelNumDiff;
434 typedef ActuationDataNumDiffTpl<double> ActuationDataNumDiff;
435
436 typedef ActionModelCodeGenTpl<double> ActionModelCodeGen;
437 typedef ActionDataCodeGenTpl<double> ActionDataCodeGen;
438
439 } // namespace crocoddyl
440
441 #endif // CROCODDYL_CORE_FWD_HPP_
442