pinocchio  3.7.0
A fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives
 
Loading...
Searching...
No Matches
comparison-operators.hpp
1//
2// Copyright (c) 2019 INRIA
3//
4
5#ifndef __pinocchio_math_comparison_operators_hpp__
6#define __pinocchio_math_comparison_operators_hpp__
7
8namespace pinocchio
9{
10
11#define PINOCCHIO_DEFINE_COMPARISON_OP(name, OP) \
12 struct name \
13 { \
14 template<typename T1, typename T2> \
15 static bool call(const T1 & a, const T2 & b) \
16 { \
17 return a OP b; \
18 } \
19 }
20
21 PINOCCHIO_DEFINE_COMPARISON_OP(equal_to_op, ==);
22 PINOCCHIO_DEFINE_COMPARISON_OP(not_equal_to_op, !=);
23 PINOCCHIO_DEFINE_COMPARISON_OP(less_than_op, <);
24 PINOCCHIO_DEFINE_COMPARISON_OP(greater_than_op, >);
25 PINOCCHIO_DEFINE_COMPARISON_OP(less_than_or_equal_to_op, <=);
26 PINOCCHIO_DEFINE_COMPARISON_OP(greater_than_or_equal_to_op, >=);
27
28 template<class OP, bool condition, bool default_return_value>
30 {
31 template<typename T1, typename T2>
32 static bool op(const T1 & /*a*/, const T2 & /*b*/)
33 {
35 }
36 };
37
38 template<class OP, bool default_return_value>
40 {
41 template<typename T1, typename T2>
42 static bool op(const T1 & a, const T2 & b)
43 {
44 return OP::call(a, b);
45 }
46 };
47} // namespace pinocchio
48
49#endif // #ifndef __pinocchio_math_comparison_operators_hpp__
Main pinocchio namespace.
Definition treeview.dox:11