#ifndef PYTHONIC_NUMPY_SPLIT_HPP #define PYTHONIC_NUMPY_SPLIT_HPP #include "pythonic/include/numpy/split.hpp" #include "pythonic/numpy/array_split.hpp" #include "pythonic/builtins/ValueError.hpp" PYTHONIC_NS_BEGIN namespace numpy { template types::list::value>>> split(types::ndarray const &a, long nb_split) { if (a.flat_size() % nb_split != 0) throw types::ValueError("array split does ! result in an equal division"); return array_split(a, nb_split); } template typename std::enable_if< types::is_iterable::value, types::list::value>>>>::type split(types::ndarray const &a, I const &split_mask) { return array_split(a, split_mask); } template types::list>> split(E const &a, I const &) { throw std::runtime_error("split only partially implemented"); } } PYTHONIC_NS_END #endif