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 |