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