GCC Code Coverage Report


Directory: ./
File: include/pinocchio/fwd.hpp
Date: 2024-08-27 18:20:05
Exec Total Coverage
Lines: 0 2 0.0%
Branches: 0 0 -%

Line Branch Exec Source
1 //
2 // Copyright (c) 2018-2024 CNRS INRIA
3 //
4
5 #ifndef __pinocchio_fwd_hpp__
6 #define __pinocchio_fwd_hpp__
7
8 // Forward declaration of the main pinocchio namespace
9 namespace pinocchio
10 {
11 }
12
13 #ifdef _WIN32
14 #include <windows.h>
15 #undef far
16 #undef near
17 #endif
18
19 #include <cassert>
20
21 #include "pinocchio/macros.hpp"
22 #include "pinocchio/deprecation.hpp"
23 #include "pinocchio/warning.hpp"
24 #include "pinocchio/config.hpp"
25 #include "pinocchio/unsupported.hpp"
26
27 #include "pinocchio/utils/helpers.hpp"
28 #include "pinocchio/utils/cast.hpp"
29 #include "pinocchio/utils/check.hpp"
30
31 #include "pinocchio/container/boost-container-limits.hpp"
32
33 #ifdef PINOCCHIO_EIGEN_CHECK_MALLOC
34 #ifndef EIGEN_RUNTIME_NO_MALLOC
35 #define EIGEN_RUNTIME_NO_MALLOC_WAS_NOT_DEFINED
36 #define EIGEN_RUNTIME_NO_MALLOC
37 #endif
38 #endif
39
40 #include <Eigen/Core>
41 #include <Eigen/Sparse>
42 #include <Eigen/SparseCholesky>
43
44 #ifdef PINOCCHIO_WITH_ACCELERATE_SUPPORT
45 #include <Eigen/AccelerateSupport>
46 #endif
47
48 #ifdef PINOCCHIO_EIGEN_CHECK_MALLOC
49 #ifdef EIGEN_RUNTIME_NO_MALLOC_WAS_NOT_DEFINED
50 #undef EIGEN_RUNTIME_NO_MALLOC
51 #undef EIGEN_RUNTIME_NO_MALLOC_WAS_NOT_DEFINED
52 #endif
53 #endif
54
55 #include "pinocchio/eigen-macros.hpp"
56 #ifdef PINOCCHIO_WITH_EIGEN_TENSOR_MODULE
57 #include <unsupported/Eigen/CXX11/Tensor>
58 #endif
59
60 #include "pinocchio/core/binary-op.hpp"
61 #include "pinocchio/core/unary-op.hpp"
62
63 #include <cstddef> // std::size_t
64
65 namespace pinocchio
66 {
67 ///
68 /// \brief Common traits structure to fully define base classes for CRTP.
69 ///
70 template<class C>
71 struct traits
72 {
73 };
74
75 /// \brief Blank type
76 struct Blank
77 {
78 };
79
80 namespace internal
81 {
82 template<typename T>
83 struct traits
84 {
85 };
86 } // namespace internal
87
88 template<class Derived>
89 struct NumericalBase
90 {
91 typedef typename traits<Derived>::Scalar Scalar;
92 };
93
94 ///
95 /// \brief Type of the cast of a class C templated by Scalar and Options, to a new NewScalar type.
96 /// This class should be specialized for each types.
97 ///
98 template<typename NewScalar, class C>
99 struct CastType;
100
101 ///
102 ///  \brief Cast scalar type from type FROM to type TO.
103 ///
104 template<typename To, typename From>
105 struct ScalarCast
106 {
107 static To cast(const From & value)
108 {
109 return static_cast<To>(value);
110 }
111 };
112
113 template<typename To, typename From>
114 To scalar_cast(const From & value)
115 {
116 return ScalarCast<To, From>::cast(value);
117 }
118
119 /// \brief Argument position.
120 /// Used as template parameter to refer to an argument.
121 enum ArgumentPosition
122 {
123 ARG0 = 0,
124 ARG1 = 1,
125 ARG2 = 2,
126 ARG3 = 3,
127 ARG4 = 4
128 };
129
130 enum AssignmentOperatorType
131 {
132 SETTO,
133 ADDTO,
134 RMTO
135 };
136
137 /** This value means that a positive quantity (e.g., a size) is not known at compile-time, and
138 * that instead the value is stored in some runtime variable.
139 */
140 const int Dynamic = -1;
141
142 /// \brief Return type undefined
143 /// This is an helper structure to help internal diagnosis.
144 struct ReturnTypeNotDefined;
145
146 typedef Eigen::Matrix<bool, Eigen::Dynamic, 1> VectorXb;
147 } // namespace pinocchio
148
149 #include "pinocchio/context.hpp"
150
151 #endif // #ifndef __pinocchio_fwd_hpp__
152