This project has moved and is read-only. For the latest updates, please go here.
Set of C++11 header files providing support for---mainly probabilistic and statistical---mathematical tasks, such as pseudorandom number generation.

Currently contains the following sections:
  • algebra Some generic math that might or might not be useful at times.
  • numerics Provides sse/avx implementation for matrices and simple mathematical operations, such as addition / multiplication.
  • probability Contains some basic distribution types; as opposed to standard c++, the intention is to provide a framework for working with mathematical/statistical properties of said distributions; (pseudo-) random number generation is dealt with in the next section (random).
  • random (depends on probability) Provides sampling methods from some probability distributions. It features an implementation of ziggurat method (see Marsaglia and Tsang [undated] and Doornik [1997]) for generating normal and exponential random variables, offering a significant speed-up compared to the default c++ implementation.

Note on the deviation from standard c++ distribution/sampling. The current standard is to let distribution types perform sampling via operator (); we, on the other hand, introduce sampler types to perform the sampling via the same operator () interface, and let distribution types expose just the mathematical properties of the distributions. We think this is an important distinction; it also covers the standard case in that c++ distribution types are also sampler types.

Last edited Jul 25, 2015 at 2:10 PM by Gregory, version 7