Skip to content
Go to file

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Documentation and code examples are available at The repository is located at

This repository contains a handful of data structures and algorithms for common mathematical operations in scientific computing.


To use the code, simply download the files into a folder named "math". Add this folder to the include path for the compiler, for example by using the -I flag.

This library depends on core and the data structures and procedures follow the same paradigm as core. Otherwise, there are no dependencies on external libraries. The code makes use of C++11 and is regularly tested with gcc 9 but I have previously compiled it with gcc 4.8, clang 4.0, and Microsoft Visual C++ 14.0 (2015). The code is intended to be platform-independent, so please create an issue if there are any compilation bugs.


This library contains the following files:

  • distributions.h contains structures that represent various probability distributions, such as the Dirichlet (both symmetric and general), categorical (implemented using a dense array or sparsely using a hash_map), discrete uniform, and sequence distributions. This file contains functions for computing the probabilities and log probabilities of events according to these distributions, as well as generating samples from them.
  • features.h contains structures for representing feature vectors, which are commonly used in machine learning.
  • multiset.h contains multiset data structures, which are structures that count the number of occurrences of distinct elements in a set.
  • log.h contains functions to perform arithmetic in log space, while avoiding loss of floating-point precision.


Small collection of data structures for performing common mathematical operations in scientific computing.





No releases published


No packages published


You can’t perform that action at this time.