#ifndef PYTHONIC_INCLUDE_NUMPY_RANDOM_CHOICE_HPP #define PYTHONIC_INCLUDE_NUMPY_RANDOM_CHOICE_HPP #include "pythonic/include/utils/functor.hpp" #include "pythonic/include/numpy/random/randint.hpp" #include "pythonic/include/types/ndarray.hpp" #include "pythonic/include/types/tuple.hpp" PYTHONIC_NS_BEGIN namespace numpy { namespace random { template types::ndarray choice(long max, pS const &shape, bool replace, P const &p); template types::ndarray> choice(long max, long size, bool replace, P &&p); template auto choice(long max, T &&size) -> decltype(randint(0, max, std::forward(size))); long choice(long max); template typename T::dtype choice(T const &a); template types::ndarray choice(T const &a, pS const &shape); template types::ndarray> choice(T &&a, long size); template types::ndarray choice(T const &a, pS const &shape, bool replace, P const &p); template types::ndarray> choice(T &&a, long size, bool replace, P &&p); DEFINE_FUNCTOR(pythonic::numpy::random, choice); } } PYTHONIC_NS_END #endif