Example #1
0
 types::ndarray<long, 1> flatnonzero(E const& expr) {
     long n = expr.size();
     long *buffer = (long*)malloc(sizeof(long) * n);
     long *iter = buffer;
     long i = 0;
     _flatnonzero(expr.begin(), expr.end(), iter, i, utils::int_<types::numpy_expr_to_ndarray<E>::N>());
     long shape[1] = { iter - buffer };
     return types::ndarray<long, 1>(buffer, shape);
 }
Example #2
0
 types::ndarray<long, 1> flatnonzero(E const &expr)
 {
   long n = expr.flat_size();
   utils::shared_ref<types::raw_array<long>> buffer(n);
   long *iter = buffer->data;
   long i = 0;
   _flatnonzero(expr.begin(), expr.end(), iter, i, utils::int_<E::value>());
   types::array<long, 1> shape = {iter - buffer->data};
   return types::ndarray<long, 1>(std::move(buffer), shape);
 }
Example #3
0
 void _flatnonzero(I begin, I end, O& out, long& i, utils::int_<N>)
 {
     for(; begin != end; ++begin)
         _flatnonzero((*begin).begin(), (*begin).end(), out, i, utils::int_<N - 1>());
 }