Ranges to deal with corner cases and "random access"

9il ilyayaroshenko at gmail.com
Sun Oct 6 05:43:41 UTC 2019


On Saturday, 5 October 2019 at 00:38:06 UTC, Brett wrote:
> Typically a lot of algorithms have corner cases such as 
> referencing elements that end up out of bounds at the start or 
> end (k-c or k+c).
>
> [...]

mir-algorithm package provides lazy padding and concatenation 
routines

http://mir-algorithm.libmir.org/mir_ndslice_concatenation.html

It may be slightly more complex then you expect as the library 
was created for a multidimensional random-access ranges 
(ndslices).

Lazy `Concatenation` structure can be effectively eagerly 
evaluated to a memory allocated ndslice or be lazily iterated 
using `opIndex` for random access or input range primitives for 
sequential access. It doesn't provide a backward range primitive 
but you are welcome to open PR to add them if required.

Best,
Ilya


More information about the Digitalmars-d-learn mailing list