QMC Software Directory

A community-maintained directory of software related to quasi-Monte Carlo methods.

This directory collects software related to quasi-Monte Carlo methods across organizations, programming languages, and application areas. It complements the QMCSoftware project pages, which describe software maintained by our organization.

The information is community-maintained. Please verify current capabilities, support, and licensing with each project. Development status reflects the information most recently contributed to this directory.

We use the following abbreviations:

Community-maintained directory of quasi-Monte Carlo software
Software Language Development status Contact
Boost Random Number LibraryPart of the Boost C++ Libraries, offering a wide range of random number generators, including some LDS C++ Mature
BoTorchBayesian optimization library that leverages PyTorch’s (Q)MC samplers Python Active Meta / BoTorch developers
BRODACommercial software offering a range of QMC methods for financial modeling and risk analysis C++ / Fortran Mature Sergei Kucherenko
ChaospyPython library for uncertainty quantification with quasi-random sampling rules including Halton, Hammersley, Korobov, and Sobol sequences Python Active Chaospy developers
DakotaSoftware toolkit for optimization and uncertainty quantification, including support for lattices and digital nets C++ Mature Pieterjan Robbe
Fast CBC constructionsMatlab/Octave routines for fast component-by-component construction of rank-1 lattice rules, lattice sequences, and polynomial lattice sequences MATLAB / Octave Mature Dirk Nuyens
GAILGuaranteed Automatic Integration Library for one-, multi-, and infinite-dimensional integration with rigorous error guarantees MATLAB Mature Sou-Cheng ChoiFred HickernellYuhan Ding
GNU Scientific LibraryC library providing quasi-random sequence generators including Niederreiter, Sobol, Halton, and reverse Halton sequences C Mature GSL Team
HaltonRandom-start randomly permuted Halton sequences C++ Mature
Intel oneMKLHigh-performance math library whose RNG domain includes Sobol and Niederreiter quasi-random number generators C++ / Data Parallel C++ Mature Intel / oneAPI developers
LatNet BuilderLibrary for constructing LD lattice rules and digital nets C++ / Python ActiveCollaboration welcome Pierre L’Ecuyer
Lattice / Sobol’Generating vectors for Sobol’ sequences and lattice rules plain text Mature Frances KuoStephen Joe
LDDataDatabase of LD generators plain text ActiveCollaboration welcome Aleksei Sorokin
Magic Point ShopQMC point generators and generating vectors for digital sequences and lattice sequences C++, MATLAB, Python, plain text Mature Dirk Nuyens
MATLAB Statistics & Machine Learning ToolboxProduces quasi-random samples in the unit hypercube, including Sobol and Halton sequences MATLAB Mature Liam Walsh
NAG Quasi-Random Number GeneratorsNAG’s implementation of quasi-random number generators for use in Monte Carlo simulations Fortran, C, C++ Mature
NVIDIA cuRANDNVIDIA’s library for generating random and quasi-random numbers on GPUs C++ / CUDA Mature
OpenTURNSOpen-source uncertainty quantification platform with LDS including Faure, Halton, reverse Halton, Haselgrove, and Sobol sequences Python / C++ Active Michaël BaudinAnne DutfoyBertrand IoossAnne-Laure Popelin
Owen’s Scrambled PointsNested uniform scrambling of Sobol’ sequences and pointer to randomized Halton sequences R Mature Art Owen
PyDOE3Python 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 EnginePyTorch’s implementation of the Sobol sequence for generating LD samples in machine learning applications Python Active
QMC Algorithms for Graphics SoftwareReference with compact copy-and-paste algorithms for LDS C++ / CUDA-style pseudocode Reference Alexander Keller; Carsten Wächter; Nikolaus Binder
QMC4PDESoftware 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
QMCPyRelated: QMCToolsCLMulti-purpose library featuring various LDS and data-driven error estimation Python ActiveCollaboration welcome Sou-Cheng ChoiFred HickernellAleksei Sorokin
qrngR package for generating LDS, including Sobol and Halton sequences, for statistical computing and data analysis R Active Marius HofertChristiane Lemieux
QuasiMonteCarlo.jlJulia package for generating LDS and performing QMC integration, designed for high-performance scientific computing Julia Active Chris Rackauckas
randtoolboxR package providing pseudo-random and quasi-random generators, including Torus, Sobol, Halton, and Van der Corput sequences R Active Christophe Dutang
scipy.stats.qmcPart 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 ProbabilityTensorFlow function for generating deterministic or randomized Halton LDS Python Active TensorFlow Probability developers
UM-BridgeSoftware framework for uncertainty quantification and modeling software packages Multiple Active UM-Bridge team
No matching items

Corrections and additions

Please submit a pull request to the Website repository with changes to data/qmc-software.yml, or email updates to Fred Hickernell.