MCPcopy Create free account
hub / github.com/Dobiasd/FunctionalPlus / stride

Function stride

include/fplus/split.hpp:662–677  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

660// stride(3, [0,1,2,3,4,5,6,7]) == [0,3,6]
661template <typename Container>
662Container 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

Callers 1

Calls 4

get_back_inserterFunction · 0.70
size_of_contFunction · 0.70
minFunction · 0.70
advance_iteratorFunction · 0.70

Tested by

no test coverage detected