%PDF- %PDF-
Direktori : /proc/thread-self/root/lib/python3/dist-packages/pythran/pythonic/builtins/ |
Current File : //proc/thread-self/root/lib/python3/dist-packages/pythran/pythonic/builtins/pow.hpp |
#ifndef PYTHONIC_BUILTIN_POW_HPP #define PYTHONIC_BUILTIN_POW_HPP #include "pythonic/include/builtins/pow.hpp" #include "pythonic/numpy/power.hpp" #include "pythonic/utils/functor.hpp" PYTHONIC_NS_BEGIN namespace builtins { double pow(long x, long y) { return std::pow((double)x, (double)y); } template <long N> long pow(long x, std::integral_constant<long, N>) { if (N == 0) return 1; if (N == 1) return x; long tmp = pow(x, std::integral_constant<long, N / 2>{}); if (N % 2 == 0) return tmp * tmp; else return tmp * tmp * x; } template <class... Types> auto pow(Types &&... args) -> decltype(numpy::functor::power{}(std::forward<Types>(args)...)) { return numpy::functor::power{}(std::forward<Types>(args)...); } } PYTHONIC_NS_END #endif