comparison-operators.hpp
Go to the documentation of this file.
1 //
2 // Copyright (c) 2019 INRIA
3 //
4 
5 #ifndef __pinocchio_math_comparison_operators_hpp__
6 #define __pinocchio_math_comparison_operators_hpp__
7 
8 namespace 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  { return a OP b;} \
17  }
18 
19  PINOCCHIO_DEFINE_COMPARISON_OP(equal_to_op,==);
20  PINOCCHIO_DEFINE_COMPARISON_OP(not_equal_to_op,!=);
21  PINOCCHIO_DEFINE_COMPARISON_OP(less_than_op,<);
22  PINOCCHIO_DEFINE_COMPARISON_OP(greater_than_op,>);
23  PINOCCHIO_DEFINE_COMPARISON_OP(less_than_or_equal_to_op,<=);
24  PINOCCHIO_DEFINE_COMPARISON_OP(greater_than_or_equal_to_op,>=);
25 
26 
27  template<class OP, bool condition, bool default_return_value>
28  struct apply_op_if
29  {
30  template<typename T1, typename T2>
31  static bool op(const T1 & /*a*/, const T2 & /*b*/)
32  {
33  return default_return_value;
34  }
35  };
36 
37  template<class OP, bool default_return_value>
38  struct apply_op_if<OP,true,default_return_value>
39  {
40  template<typename T1, typename T2>
41  static bool op(const T1 & a, const T2 & b)
42  {
43  return OP::call(a,b);
44  }
45  };
46 }
47 
48 #endif //#ifndef __pinocchio_math_comparison_operators_hpp__
49 
Vec3f b
PINOCCHIO_DEFINE_COMPARISON_OP(equal_to_op,==)
static bool op(const T1 &, const T2 &)
Vec3f a
Main pinocchio namespace.
Definition: timings.cpp:28
auto call(R(*f)(Args...), typename convert_type< Args >::type... args)
Definition: pybind11.hpp:118


pinocchio
Author(s):
autogenerated on Fri Jun 23 2023 02:38:29