❗️ ndslice was reworked and moved to Mir-Algorithm.
The last Mir version with old ndslice is v0.22.1.
❗️ Mir GLAS was moved to https://github.com/libmir/mir-glas.
Mir
Generic Numerical Library for Science and Machine Learning.
Separated Mir Projects
- Mir Algorithm - Multidimensional arrays (ndslice), iterators, algorithms.
- Mir Random - Professional Random Number Generators
- Mir GLAS - Linear Algebra Library (Experimental, not supported for now)
- Mir BLAS - Bindings to libraries with CBLAS API like OpenBLAS and Intel MKL.
- Mir LAPACK - Bindings to libraries with LAPACK API like OpenBLAS and Intel MKL.
- Mir Optim - Nonlinear Solvers.
- Mir CPUID - CPU Identification routines (less buggy then Phobos).
Documentation
Documentation API can be found here.
Contents
mir.glas- Generic Linear Algebra Subroutinesmir.sparseSparse TensorsSparse- DOK format- Different ranges for COO format
CompressedTensor- CSR/CSC formatsmir.sparse.blas- Sparse BLAS forCompressedTensormir.model.lda.hoffman- Online variational Bayes for latent Dirichlet allocation (Online VB LDA) for sparse documents. LDA is used for topic modeling.mir.combinatoricsCombinations, combinations with repeats, cartesian power, permutations.
Compatibility
| Linux | Mac OS X | Windows | |
|---|---|---|---|
| 64-bit | |||
| 32-bit | N/A | N/A |
Example
/+dub.sdl:
dependency "mir" version="~>3.1.0"
+/
import std.stdio;
import mir.combinatorics;
void main(string[] args)
{
writeln([1, 2].combinations);
}Fast setup with the dub package manager
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.
Contributing
See our TODO List. Mir is very young and we are open for contributing to source code, documentation, examples and benchmarks.

Formed in 2009, the Archive Team (not to be confused with the archive.org Archive-It Team) is a rogue archivist collective dedicated to saving copies of rapidly dying or deleted websites for the sake of history and digital heritage. The group is 100% composed of volunteers and interested parties, and has expanded into a large amount of related projects for saving online and digital history.
