| Server IP : 217.160.0.212 / Your IP : 216.73.216.141 Web Server : Apache System : Linux www 6.18.51-i1-ampere #1196 SMP Fri Sep 11 20:43:55 CEST 2026 aarch64 User : sws1073854427 ( 1073854427) PHP Version : 8.4.23 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /lib/python3/dist-packages/pythran/pythonic/include/numpy/ |
Upload File : |
#ifndef PYTHONIC_INCLUDE_NUMPY_FROMFUNCTION_HPP
#define PYTHONIC_INCLUDE_NUMPY_FROMFUNCTION_HPP
#include "pythonic/include/utils/functor.hpp"
#include "pythonic/include/types/ndarray.hpp"
#include "pythonic/include/builtins/None.hpp"
#include "pythonic/include/utils/tags.hpp"
PYTHONIC_NS_BEGIN
namespace numpy
{
template <class F, size_t N, class dtype, class Tags>
struct fromfunction_helper;
template <class F, class dtype, class purity_tag>
struct fromfunction_helper<F, 1, dtype, purity_tag> {
template <class pS>
types::ndarray<typename std::remove_cv<typename std::remove_reference<
typename std::result_of<F(dtype)>::type>::type>::type,
pS>
operator()(F &&f, pS const &shape, dtype d = dtype());
};
template <class F, class dtype, class purity_tag>
struct fromfunction_helper<F, 2, dtype, purity_tag> {
template <class pS>
types::ndarray<
typename std::remove_cv<typename std::remove_reference<
typename std::result_of<F(dtype, dtype)>::type>::type>::type,
pS>
operator()(F &&f, pS const &shape, dtype d = dtype());
};
template <class F, class pS, class dtype = double>
auto fromfunction(F &&f, pS const &shape, dtype d = dtype())
-> decltype(fromfunction_helper<F, std::tuple_size<pS>::value, dtype,
typename pythonic::purity_of<F>::type>()(
std::forward<F>(f), shape));
/* TODO: must specialize for higher order */
DEFINE_FUNCTOR(pythonic::numpy, fromfunction);
}
PYTHONIC_NS_END
#endif