5#ifndef __pinocchio_autodiff_casadi_utils_static_if_hpp__
6#define __pinocchio_autodiff_casadi_utils_static_if_hpp__
8#include "pinocchio/utils/static-if.hpp"
15 template<
typename Scalar,
typename ThenType,
typename ElseType>
16 struct if_then_else_impl<::casadi::Matrix<Scalar>, ::casadi::Matrix<Scalar>, ThenType, ElseType>
18 typedef typename internal::traits<if_then_else_impl>::ReturnType ReturnType;
20 typedef ::casadi::Matrix<Scalar> CasadiType;
22 static inline ReturnType run(
23 const ComparisonOperators op,
24 const CasadiType & lhs_value,
25 const CasadiType & rhs_value,
26 const ThenType & then_value,
27 const ElseType & else_value)
32 return ::casadi::Matrix<Scalar>::if_else(lhs_value < rhs_value, then_value, else_value);
35 return ::casadi::Matrix<Scalar>::if_else(lhs_value <= rhs_value, then_value, else_value);
38 return ::casadi::Matrix<Scalar>::if_else(lhs_value == rhs_value, then_value, else_value);
41 return ::casadi::Matrix<Scalar>::if_else(lhs_value >= rhs_value, then_value, else_value);
44 return ::casadi::Matrix<Scalar>::if_else(lhs_value > rhs_value, then_value, else_value);
50 template<
typename Scalar>
51 struct comparison_eq_impl<::casadi::Matrix<Scalar>, ::casadi::Matrix<Scalar>>
53 typedef ::casadi::Matrix<Scalar> CasadiType;
55 static inline bool run(
const CasadiType & lhs_value,
const CasadiType & rhs_value)
57 return (lhs_value == rhs_value).is_zero();
67 template<
typename Scalar>
68 struct equal_to<::casadi::Matrix<Scalar>>
71 const ::casadi::Matrix<Scalar> & lhs_value, const ::casadi::Matrix<Scalar> & rhs_value)
const
73 return (lhs_value == rhs_value).is_zero();
Main pinocchio namespace.