Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. D
  3. mir

mir

BSL-1.0Dv3.0.0

A generic numerical library for D providing sparse tensors, linear algebra, and machine learning components.

Visit WebsiteGitHubGitHub
211 stars20 forks0 contributors

What is mir?

Mir is a generic numerical library for the D programming language, focused on scientific computing and machine learning. It provides sparse tensor operations, linear algebra routines, combinatorial utilities, and specialized machine learning models like LDA for topic modeling. The library is designed as a modular ecosystem with separate packages for algorithms, random number generation, and optimization.

Target Audience

D developers and researchers working on numerical computing, scientific simulations, data analysis, and machine learning projects who need high-performance sparse tensor operations and linear algebra.

Value Proposition

Mir offers a native D solution with seamless integration to optimized BLAS/LAPACK backends, modular design for flexibility, and specialized components like sparse tensors and topic modeling not commonly found in other D numerical libraries.

Overview

Mir (backports): Sparse tensors, Hoffman

Use Cases

Best For

  • Implementing sparse tensor computations in D applications
  • Building machine learning models that require topic modeling with LDA
  • Developing scientific simulations that need linear algebra with BLAS/LAPACK bindings
  • Creating numerical algorithms with combinatorial operations
  • Optimizing D code for specific CPU architectures using LDC
  • Research projects in computational science that require a modular numerical library

Not Ideal For

  • Projects requiring a wide range of pre-built machine learning models beyond topic modeling
  • Teams that need mature, fully-supported linear algebra libraries without experimental components
  • Applications integrated into ecosystems dominated by Python or C++ for numerical computing
  • Developers unwilling to manage modular dependencies across multiple repositories

Pros & Cons

Pros

Modular Ecosystem

Separated projects like Mir-Algorithm and Mir-Random allow for targeted use and easier maintenance, as highlighted in the README's list of core components.

Sparse Tensor Support

Provides DOK, COO, CSR, and CSC formats with sparse BLAS operations, enabling efficient handling of large-scale sparse data common in scientific computing.

Optimized BLAS/LAPACK Bindings

Integrates with libraries like OpenBLAS and Intel MKL via mir-blas and mir-lapack, ensuring high-performance linear algebra routines for critical computations.

Specialized Machine Learning

Includes Online VB LDA for topic modeling on sparse documents, a niche feature not widely available in other D numerical libraries.

CPU-Level Optimization

CPU identification routines and LDC compiler flags (e.g., -mcpu=native) allow fine-tuned performance optimizations for specific hardware, as recommended in the dub setup.

Cons

Experimental Linear Algebra

Mir GLAS is marked as experimental and not supported, making it unreliable for production use in linear algebra despite being a core feature.

Modular Fragmentation

Core functionality like ndslice was moved to separate repos (e.g., Mir-Algorithm), requiring users to manage multiple dependencies and increasing setup complexity.

Niche Language Ecosystem

Built for D, which has a smaller community and fewer third-party libraries compared to languages like Python, limiting integration and support options.

Setup Complexity

Requires configuring dub with specific flags and external BLAS/LAPACK libraries, which can be cumbersome and error-prone for newcomers, as noted in the installation instructions.

Frequently Asked Questions

Quick Stats

Stars211
Forks20
Contributors0
Open Issues0
Last commit4 years ago
CreatedSince 2015

Tags

#blas#d-language#scientific-computing#lapack#combinatorics#math#topic-modeling#linear-algebra#numeric#numerical-computing#llvm#machine-learning#mir

Built With

O
OpenBLAS
I
Intel MKL
L
LDC
D
D

Links & Resources

Website

Included in

D748
Auto-fetched 1 day ago

Related Projects

scidscid

Scientific library for the D programming language

Stars92
Forks31
Last commit6 years ago
mir-randommir-random

Advanced Random Number Generators

Stars32
Forks15
Last commit1 month ago
dstatsdstats

A statistics library for D.

Stars26
Forks9
Last commit3 years ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub