#ifndef PYTHONIC_INCLUDE_OPERATOR_MOD_HPP #define PYTHONIC_INCLUDE_OPERATOR_MOD_HPP #include "pythonic/include/utils/functor.hpp" PYTHONIC_NS_BEGIN namespace operator_ { template auto mod(A &&a, B &&b) -> typename std::enable_if< std::is_fundamental::type>::value && std::is_fundamental::type>::value, decltype(std::forward(a) % std::forward(b))>::type; inline double mod(double a, long b); inline double mod(double a, double b); template auto mod(A &&a, B &&b) // for ndarrays -> typename std::enable_if< !std::is_fundamental::type>::value || !std::is_fundamental::type>::value, decltype(std::forward(a) % std::forward(b))>::type; DEFINE_FUNCTOR(pythonic::operator_, mod); } PYTHONIC_NS_END #endif