Program Listing for File static-if.hpp
↰ Return to documentation for file (include/pinocchio/autodiff/casadi/utils/static-if.hpp
)
//
// Copyright (c) 2019-2020 INRIA
//
#ifndef __pinocchio_autodiff_casadi_utils_static_if_hpp__
#define __pinocchio_autodiff_casadi_utils_static_if_hpp__
#include "pinocchio/utils/static-if.hpp"
namespace pinocchio
{
namespace internal
{
template<typename Scalar, typename ThenType, typename ElseType>
struct if_then_else_impl<::casadi::Matrix<Scalar>,::casadi::Matrix<Scalar>,ThenType,ElseType>
{
typedef typename internal::traits<if_then_else_impl>::ReturnType ReturnType;
typedef ::casadi::Matrix<Scalar> CasadiType;
static inline ReturnType run(const ComparisonOperators op,
const CasadiType & lhs_value,
const CasadiType & rhs_value,
const ThenType & then_value,
const ElseType & else_value)
{
switch(op)
{
case LT:
return ::casadi::Matrix<Scalar>::if_else(lhs_value < rhs_value,then_value,else_value);
break;
case LE:
return ::casadi::Matrix<Scalar>::if_else(lhs_value <= rhs_value,then_value,else_value);
break;
case EQ:
return ::casadi::Matrix<Scalar>::if_else(lhs_value == rhs_value,then_value,else_value);
break;
case GE:
return ::casadi::Matrix<Scalar>::if_else(lhs_value >= rhs_value,then_value,else_value);
break;
case GT:
return ::casadi::Matrix<Scalar>::if_else(lhs_value > rhs_value,then_value,else_value);
break;
}
}
};
} // namespace internal
} // namespace pinocchio
#endif // ifndef __pinocchio_autodiff_casadi_utils_static_if_hpp__