| 660 | // stride(3, [0,1,2,3,4,5,6,7]) == [0,3,6] |
| 661 | template <typename Container> |
| 662 | Container stride(std::size_t step, const Container& xs) |
| 663 | { |
| 664 | assert(step > 0); |
| 665 | Container ys; |
| 666 | auto it = internal::get_back_inserter(ys); |
| 667 | auto it_in = std::begin(xs); |
| 668 | std::size_t i = 0; |
| 669 | const auto xs_size = size_of_cont(xs); |
| 670 | while (it_in != std::end(xs)) { |
| 671 | *it = *it_in; |
| 672 | std::size_t increment = std::min(step, xs_size - i); |
| 673 | internal::advance_iterator(it_in, increment); |
| 674 | i += increment; |
| 675 | } |
| 676 | return ys; |
| 677 | } |
| 678 | |
| 679 | // API search type: winsorize : (Float, [Float]) -> [Float] |
| 680 | // fwd bind count: 1 |
no test coverage detected