mir ~master

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:

❗️ 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.

Dub downloads License Bountysource Latest version codecov.io Circle CI

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 Subroutines
  • 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.

Compatibility

LinuxMac OS XWindows
64-bitBuild StatusBuild StatusBuild status
32-bitBuild StatusN/AN/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

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.

Contributing

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

Authors:
  • Ilya Yaroshenko
  • Sebastian Wilzbach
Dependencies:
mir-random
Versions:
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

  • 0 downloads this week

  • 8 downloads this month

  • 16730 downloads total

Score:
2.7
Short URL:
mir.dub.pm