On Monday, 25 July 2016 at 17:12:08 UTC, jmh530 wrote:
On Sunday, 24 July 2016 at 17:30:24 UTC, Ilya Yaroshenko wrote:
Hello,
I found a way how to correctly implement multidimensional
functional map for ndslices and for packed ndslices (tensors
composed of tensors). It allows
1. a compiler to use vectorisation with SIMD instructions
like `fabs` or `sqrt` for example. But first [1] should be
merged
2. to manage mapped ndslices as common ndslices.
In additional the future ndmap abstraction has zero
computational cost.
I'm a little confused. Why not just use slice.byElement.map!f?
Anyway, I hope this work is related to multi-dimensional
folding, as mentioned here
https://github.com/libmir/mir/issues/209
1. ndmap is N-Dimensional Slice composed of lazy elements. a user
can use all nslice package to manage it.
2. byElement can not be vectorized
3. byElement adds few additional operations for each element, it
is slower than direct index access.
Just opened PR for ndmap :
https://github.com/dlang/phobos/pull/4652
[1] https://github.com/dlang/phobos/pull/4652