All Projects → libmir → Mir

libmir / Mir

Licence: bsl-1.0
Mir (backports): Sparse tensors, Hoffman

Programming Languages

d
599 projects

Projects that are alternatives of or similar to Mir

sblas
Scala Native BLAS (Basic Linear Algebra Subprograms) supporting Linux and macOS
Stars: ✭ 25 (-87.75%)
Mutual labels:  math, blas
How To Write An Llvm Register Allocator
This repository contains a tutorial for a quick start in how to write a register allocator using LLVM
Stars: ✭ 197 (-3.43%)
Mutual labels:  llvm
Clang Expand
🐉 A clang tool for happy refactoring without source-code gymnastics
Stars: ✭ 182 (-10.78%)
Mutual labels:  llvm
Gfm
3D maths for D gamedev. This library is deprecated, see README.md
Stars: ✭ 190 (-6.86%)
Mutual labels:  math
Awesome Llvm
A curated list of awesome LLVM related docs, tools, and other resources.
Stars: ✭ 184 (-9.8%)
Mutual labels:  llvm
Primecount
🚀 Fast prime counting function implementations
Stars: ✭ 193 (-5.39%)
Mutual labels:  math
Llvm Guide Zh
User Guides For those new to the LLVM system.(LLVM系统的新用户指南,中文翻译版)
Stars: ✭ 180 (-11.76%)
Mutual labels:  llvm
Nxdk
The cross-platform, open-source SDK to develop for original Xbox: *new* xdk
Stars: ✭ 200 (-1.96%)
Mutual labels:  llvm
Mppp
Multiprecision for modern C++
Stars: ✭ 196 (-3.92%)
Mutual labels:  math
Laser
The HPC toolbox: fused matrix multiplication, convolution, data-parallel strided tensor primitives, OpenMP facilities, SIMD, JIT Assembler, CPU detection, state-of-the-art vectorized BLAS for floats and integers
Stars: ✭ 191 (-6.37%)
Mutual labels:  blas
Reopt
A tool for analyzing x86-64 binaries.
Stars: ✭ 190 (-6.86%)
Mutual labels:  llvm
Jlang
JLang: Ahead-of-time compilation of Java programs to LLVM
Stars: ✭ 186 (-8.82%)
Mutual labels:  llvm
Myscript Math Web
✏️ ☁️ The easy way to integrate mathematical expressions handwriting recognition in your web app.
Stars: ✭ 194 (-4.9%)
Mutual labels:  math
Yansollvm
Yet Another Not So Obfuscated LLVM
Stars: ✭ 180 (-11.76%)
Mutual labels:  llvm
Mathmodel
研究生数学建模,本科生数学建模、数学建模竞赛优秀论文,数学建模算法,LaTeX论文模板,算法思维导图,参考书籍,Matlab软件教程,PPT
Stars: ✭ 3,834 (+1779.41%)
Mutual labels:  math
Javascript Biginteger
A big integer library for JavaScript
Stars: ✭ 181 (-11.27%)
Mutual labels:  math
Lhc
The LLVM LHC Haskell Optimization System
Stars: ✭ 188 (-7.84%)
Mutual labels:  llvm
Pybotics
The Python Toolbox for Robotics
Stars: ✭ 192 (-5.88%)
Mutual labels:  math
Alive2
Automatic verification of LLVM optimizations
Stars: ✭ 199 (-2.45%)
Mutual labels:  llvm
Jekyll Spaceship
🚀 A Jekyll plugin to provide powerful supports for table, mathjax, plantuml, mermaid, emoji, video, audio, youtube, vimeo, dailymotion, soundcloud, spotify, etc.
Stars: ✭ 196 (-3.92%)
Mutual labels:  math

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

Linux Mac OS X Windows
64-bit Build Status Build Status Build status
32-bit Build Status 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

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].