mir-algorithm 0.5.2

Multidimensional arrays (ndslice), ranges, iterators, and algorithms 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.
  4. LLVM oriented math functions.

API Documentation

http://docs.algorithm.dlang.io

New ndslice

Scheme

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

Features

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.1 mir.ndslice.topology.map may not work because LDC has deprecated DMD FE

Old ndslice

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

Authors:
  • Ilya Yaroshenko
  • Andrei Alexandrescu
  • Walter Bright
  • Phobos developers (see information per file)
Dependencies:
none
Versions:
3.20.1 2023-Mar-10
3.20.0 2023-Mar-10
3.19.3 2023-Mar-09
3.19.2 2023-Mar-04
3.19.1 2023-Feb-07
Show all 625 versions
Download Stats:
  • 0 downloads today

  • 0 downloads this week

  • 0 downloads this month

  • 0 downloads total

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