www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.announce - Recently added ndslice API

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


- 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,
Mar 11