11 ndslice and ndField constructors was added since ndslice API had been reworked. All of them do not perform any memory allocations.


- slicedNdField - Creates full featured n-dimensional ndslice over an ndField. ndField is a simple user-defined multidimensional view that may have only
`auto ref opIndex(size_t[N] indexes...)` primitive.


- cartesian - Multidimensional Cartesian product

- kronecker - Multidimensional Kronecker product

- bitwise - Bitwise slice over an unsigned integral slice. (used in tamediadigital/lincount)

- bitpack - Bitpack slice over an unsigned integral slice. (used in tamediadigital/hll-d)

- indexed - Multidimensional std.range.indexed analog for ndslice. It works like map, e.g. indexes may have any type that can be accepted by source's `opIndex` API.

- linspace - Multidimensional evenly spaced numbers over specified intervals. It is numpy and matlab analog. linspace does not have floating-point related std.range.iota bug (Issue 6531).

mir.ndslice.concatenation (new):

- concatenation, Creates a concatenated view of multiple slices.

- pad, Pads with a constant value.

- padEdge, Pads with the edge values of slice.

- padSymmetric, Pads with the reflection of the slice mirrored along the edge of the slice.

- padWrap - Pads with the wrap of the slice along the axis. The first values are used to pad the end and the end values are used to pad the beginning.

Know bugs:
- `mir.ndslice.topology.map` may not work with LDC because it has deprecated DMD FE.

Best regards,

Reply via email to