1 #ifndef PYTHONIC_NUMPY_CLIP_HPP 2 #define PYTHONIC_NUMPY_CLIP_HPP 3 4 #include "pythonic/include/numpy/clip.hpp" 5 6 #include "pythonic/utils/functor.hpp" 7 #include "pythonic/types/ndarray.hpp" 8 9 PYTHONIC_NS_BEGIN 10 11 namespace numpy 12 { 13 namespace wrapper 14 { 15 template <class T, class Mi, class Ma> clip(T const & v,Mi a_min,Ma a_max)16 typename __combined<T, Mi, Ma>::type clip(T const &v, Mi a_min, Ma a_max) 17 { 18 if (v < a_min) 19 return a_min; 20 else if (v > a_max) 21 return a_max; 22 else 23 return v; 24 } 25 26 template <class T, class Mi> clip(T const & v,Mi a_min)27 typename __combined<T, Mi>::type clip(T const &v, Mi a_min) 28 { 29 if (v < a_min) 30 return a_min; 31 else 32 return v; 33 } 34 } 35 36 #define NUMPY_NARY_FUNC_NAME clip 37 #define NUMPY_NARY_FUNC_SYM wrapper::clip 38 #include "pythonic/types/numpy_nary_expr.hpp" 39 } 40 PYTHONIC_NS_END 41 42 #endif 43