mir-algorithm 0.3.0

Standard algorithms, ranges and ndslices (tensors) for Dlang


To use this package, run the following command in your project's root directory:

Manual usage
Put the following dependency into your project's dependences section:

Dub downloads License Bountysource Gitter

Latest version

codecov.io Circle CI

mir-algorithm

  1. Generic Multidimensional arrays of three kinds
  2. std.range, std.functional, and partially std.algorithm alternative suitable for fast executaion and multidimensional algorithms.
  3. Iterators like random access iterators in C++, Fields, and ndFields.

API Documentation

http://docs.algorithm.dlang.io

Scheme of basic elements

https://rawgit.com/libmir/mir-algorithm/master/ndslice.svg

New ndslice

ndslice design was changed. New ndslices can be created on top of random access iterators including pointers. There are three kinds of ndslice:

  • Contiguous - Contiguous in memory representation. It does not store strides and can be always flattened to 1 dimensional ndslice on top of the same iterator type.
  • Canonical - BLAS like. Stride for row dimension assumed to be equal to 1.
  • Universal - Numpy like. Each dimension has strides. All dimensions can be exchanged without reallocation. The old ndslice ABI corresponds to to the Universal ndslice.

Known bugs

  • With LDC <=1.1.0 mir.ndslice.topology.map may not work because LDC has deprecated DMD FE.
  • With LDC ==1.2.0-beta1 compiled with LLVM 4.0 some code from mir.algorithm may not work because https://github.com/ldc-developers/ldc/issues/2037.

Old ndslice

If you are looking for old ndslice, please use the main repo with old tag v0.22.1.

Authors:
  • Ilya Yaroshenko
Dependencies:
none
Versions:
3.22.3 2024-Dec-17
3.22.2 2024-Dec-17
3.22.1 2024-Apr-23
3.22.0 2023-Aug-09
3.21.0 2023-Aug-02
Show all 634 versions
Download Stats:
  • 56 downloads today

  • 601 downloads this week

  • 2632 downloads this month

  • 751393 downloads total

Score:
4.9
Short URL:
mir-algorithm.dub.pm