mir 0.16.0-alpha10

Numerical library 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:

codecov.io Latest version License Gitter Circle CI


Generic Numerical Library for Science and Machine Learning.


  • mir.ndslice Multidimensional Random Access Ranges and Arrays
  • mir.sparse Sparse Tensors
  • Sparse - DOK format
  • Different ranges for COO format
  • CompressedTensor - CSR/CSC formats
  • mir.sparse.blas - Sparse BLAS for CompressedTensor
  • mir.model.lda.hoffman - Online variational Bayes for latent Dirichlet allocation (Online VB LDA) for sparse documents. LDA is used for topic modeling.
  • mir.combinatorics Combinations, combinations with repeats, cartesian power, permutations.
  • mir.las.sum Functions and Output Ranges for Summation Algorithms. Works with user-defined types.
  • Precise algorithm: improved analog of Python's fsum
  • Pairwise algorithm: fast version for Input Ranges
  • Kahan, KBN, and KB2 algorithms
  • mir.blas - this is slow snail, it is for experiments with BLAS API. Don't use for now.

In progress

  • mir.random - non-uniform RNGs.
  • mir.blas - BLAS in D.


Alpha version of API is available here.


LinuxMac OS XWindows
DMD 64Build StatusBuild StatusBuild status
DMD 32Build StatusOS X >= 10.7 is x86-64 onlyBuild status
LDC 64Build StatusBuild StatusBuild status by ignoring issue #120
LDC 32Build StatusOS X >= 10.7 is x86-64 onlyBuild status by ignoring issue #120
  • DMD (reference D compiler) >= 2.070
  • LDC (LLVM D Compiler) >= 1.0.0.


Fast setup with the dub package manager

Dub version Dub downloads

Dub is the D's package manager. You can create a new project with:

dub init --format=json <project-name>

Now you need to edit the dub.json add mir as dependency and set its targetType to executable.

	"dependencies": {
		"mir": "~><current-version>"
	"targetType": "executable"

Now you can create a main file in the source and run your code with:


You can use a different compile with dub --compiler ldc. For a performance boost, add -b release to let the compiler perform additional optimizations, inlining, removal of bound checking and assert statements.

Arch Linux
Stablelibmirlibmir libmir


See our TODO List. Mir is very young and we are open for contributing to source code, documentation, examples and benchmarks.


  • Ilya Yaroshenko
3.2.3 2022-Jun-05
3.2.2 2020-Nov-15
3.2.1 2020-Mar-30
3.2.0 2019-Apr-13
3.1.2 2019-Mar-23
Show all 81 versions
Download Stats:
  • 5 downloads today

  • 38 downloads this week

  • 175 downloads this month

  • 16100 downloads total

Short URL: