Good project: stride() with constant stride value

Jonathan M Davis via Digitalmars-d digitalmars-d at puremagic.com
Fri Mar 4 20:34:21 PST 2016


On Friday, 4 March 2016 at 16:45:42 UTC, Andrei Alexandrescu 
wrote:
> Currently we have a very useful stride() function that allows 
> spanning a random access range with a specified step, e.g. 0, 
> 3, 6, 9, ... for step 3.
>
> I've run some measurements recently and it turns out a 
> compile-time-known stride is a lot faster than a variable. So I 
> was thinking to improve Stride(R) to take an additional 
> parameter: Stride(R, size_t step = 0). If step is 0, then use a 
> runtime-valued stride as until now. If nonzero, Stride should 
> use that compile-time step.
>
> Takers?

This makes me wonder if something like iota would benefit from a 
similar optimization. It's frequently the case that all of the 
arguments to iota are known at compile time. Now, iota isn't 
wrapping another range (unlike stride), so maybe that would make 
the difference, and iota wouldn't particularly benefit from 
having its arguments be template arguments, but I have to wonder.

- Jonathan M Davis


More information about the Digitalmars-d mailing list