QMC Software Packages
This page lists software packages related to quasi-Monte Carlo methods.
Please send updates or additions with the package name, URL, programming language, status, and preferred contact to Fred Hickernell.
| Name | Language | Development Status | Contact |
|---|---|---|---|
|
Boost Random Number Library Part of the Boost C++ Libraries, offering a wide range of random number generators, including some LDS |
C++ | Mature | |
|
BoTorch Bayesian optimization library that leverages PyTorch's (Q)MC samplers |
Python | Active | Meta / BoTorch developers |
|
BRODA Commercial software offering a range of QMC methods for financial modeling and risk analysis |
C++ / Fortran | Mature | ✉ Sergei Kucherenko |
|
Chaospy Python library for uncertainty quantification with quasi-random sampling rules including Halton, Hammersley, Korobov, and Sobol sequences |
Python | Active | Chaospy developers |
|
Dakota Software toolkit for optimization and uncertainty quantification, including support for lattices and digital nets |
C++ | Mature | Pieterjan Robbe |
|
Fast CBC constructions Matlab/Octave routines for fast component-by-component construction of rank-1 lattice rules, lattice sequences, and polynomial lattice sequences |
MATLAB / Octave | Mature | Dirk Nuyens |
|
GAIL Guaranteed Automatic Integration Library for one-, multi-, and infinite-dimensional integration with rigorous error guarantees |
MATLAB | Mature |
Sou-Cheng Choi Fred Hickernell Yuhan Ding |
|
GNU Scientific Library C library providing quasi-random sequence generators including Niederreiter, Sobol, Halton, and reverse Halton sequences |
C | Mature | GSL Team |
|
Halton Random-start randomly permuted Halton sequences |
C++ | Mature | |
|
Intel oneMKL High-performance math library whose RNG domain includes Sobol and Niederreiter quasi-random number generators |
C++ / Data Parallel C++ | Mature | Intel / oneAPI developers |
|
LatNet Builder Library for constructing LD lattice rules and digital nets |
C++ / Python |
Active Collaboration welcome |
Pierre L’Ecuyer |
|
Lattice / Sobol' Generating vectors for Sobol' sequences and lattice rules |
plain text | Mature |
Frances Kuo Stephen Joe |
|
LDData Database of LD generators |
plain text |
Active Collaboration welcome |
Aleksei Sorokin |
|
Magic Point Shop QMC point generators and generating vectors for digital sequences and lattice sequences |
C++, MATLAB, Python, plain text | Mature | Dirk Nuyens |
|
MATLAB Statistics & Machine Learning Toolbox Produces quasi-random samples in the unit hypercube, including Sobol and Halton sequences |
MATLAB | Mature | ✉ Liam Walsh |
|
NAG Quasi-Random Number Generators NAG's implementation of quasi-random number generators for use in Monte Carlo simulations |
Fortran, C, C++ | Mature | |
|
NVIDIA cuRAND NVIDIA's library for generating random and quasi-random numbers on GPUs |
C++ / CUDA | Mature | |
|
OpenTURNS Open-source uncertainty quantification platform with LDS including Faure, Halton, reverse Halton, Haselgrove, and Sobol sequences |
Python / C++ | Active |
Michaël Baudin Anne Dutfoy Bertrand Iooss Anne-Laure Popelin |
|
Owen's Scrambled Points Nested uniform scrambling of Sobol' sequences and pointer to randomized Halton sequences |
R | Mature | Art Owen |
|
PyDOE3 Python design-of-experiments package with LD designs including Sukharev grids, Sobol, Halton, rank-1 lattices, Korobov sequences, and Cranley-Patterson randomization |
Python | Active | PyDOE3 developers |
|
PyTorch Sobol Engine PyTorch's implementation of the Sobol sequence for generating LD samples in machine learning applications |
Python | Active | |
|
QMC Algorithms for Graphics Software Reference with compact copy-and-paste algorithms for LDS |
C++ / CUDA-style pseudocode | Reference | Alexander Keller; Carsten Wächter; Nikolaus Binder |
|
QMC4PDE Software for constructing randomly shifted lattice rules and interlaced polynomial lattice rules for elliptic PDEs with random diffusion coefficients |
Python / MATLAB / C++ | Active | Frances Y. Kuo; Dirk Nuyens |
|
QMCPy Multi-purpose library featuring various LDS and data-driven error estimation |
Python |
Active Collaboration welcome |
Sou-Cheng Choi Fred Hickernell Aleksei Sorokin |
|
qrng R package for generating LDS, including Sobol and Halton sequences, for statistical computing and data analysis |
R | Active |
✉ Marius Hofert Christiane Lemieux |
|
QuasiMonteCarlo.jl Julia package for generating LDS and performing QMC integration, designed for high-performance scientific computing |
Julia | Active | Chris Rackauckas |
|
randtoolbox R package providing pseudo-random and quasi-random generators, including Torus, Sobol, Halton, and Van der Corput sequences |
R | Active | Christophe Dutang |
|
scipy.stats.qmc Part of the SciPy library, providing LDS generators and sampling methods for scientific computing in Python |
Python | Active | Pamphile Roy |
|
Stochastic Simulation in Java (SSJ) Java library for stochastic simulation, including LDS generators and sampling methods |
Java | Active | Pierre L’Ecuyer |
|
TensorFlow Probability TensorFlow function for generating deterministic or randomized Halton LDS |
Python | Active | TensorFlow Probability developers |
|
UM-Bridge Software framework for uncertainty quantification and modeling software packages |
Multiple | Active | UM-Bridge team |