mir 0.20.1

LLVM-accelerated Generic Numerical Library for Science and Machine Learning

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



Generic Numerical Library for Science and Machine Learning.

Open Source Projects based on Mir


Documentation API can be found here. Read also the Mir blog.


  • mir.glas - Generic Linear Algebra Subroutines
  • 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.random.flex - Tinfex non-uniform RNG implementation.
  • 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 can be compiled with LDC (LLVM D Compiler) >= 1.1.0-beta2 only. DMD is not supported anymore (v0.17-aplha9 is the last release with DMD support).

LinuxMac OS XWindows
64-bitBuild StatusBuild StatusBuild status
32-bitBuild StatusN/AN/A

Fast setup with the dub package manager

Latest version

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

dub init <project-name>

Now you need to edit the dub.json add mir as dependency.

	"dependencies": {
		"mir": "~><current-version>"
	"dflags-ldc": ["-mcpu=native"]

Now you can create an app.d file in the source folder and run your code with

dub --compiler=ldmd2

Flag --build=release and can be added for a performance boost:

dub --compiler=ldmd2 --build=release

ldmd2 is a shell on top of LDC (LLVM D Compiler).

"dflags-ldc": ["-mcpu=native"] allows LDC to optimize Mir for your CPU.


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


  • Ilya Yaroshenko
  • Sebastian Wilzbach
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:
  • 0 downloads today

  • 2 downloads this week

  • 13 downloads this month

  • 16342 downloads total

Short URL: