#ifndef PYTHONIC_NUMPY_VSTACK_HPP #define PYTHONIC_NUMPY_VSTACK_HPP #include #include PYTHONIC_NS_BEGIN namespace numpy { template auto vstack(ArraySequence &&seq) -> typename std::enable_if<(impl::vstack_helper::value > 1), impl::vstack_helper>::type { return concatenate(std::forward(seq), 0); } template auto vstack(ArraySequence &&seq) -> typename std::enable_if< (impl::vstack_helper::value == 1), decltype(std::declval>().reshape( std::declval>()))>::type { auto &&temp = concatenate(std::forward(seq), 0); long const seq_size = seq.size(), temp_size = temp.size(); types::array new_shape{{seq_size, temp_size / seq_size}}; return temp.reshape(new_shape); } } PYTHONIC_NS_END #endif