QMCPy: A Python Framework for (Quasi-)Monte Carlo Algorithms

QMCPy: A Python Framework for (Quasi-)Monte Carlo Algorithms - Published in JOSS (2026)

https://github.com/qmcsoftware/qmcsoftware

Science Score: 89.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
  • .zenodo.json file
  • DOI references
    Found 4 DOI reference(s) in README and JOSS metadata
  • Academic publication links
    Links to: zenodo.org
  • Committers with academic emails
    2 of 31 committers (6.5%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Keywords

mathematics monte-carlo python quasi-monte-carlo stopping-criterion

Keywords from Contributors

archival projection profiles interactive generic sequences autograding hacking shellcodes modular
Last synced: about 1 month ago · JSON representation

Repository

Quasi-Monte Carlo point generators, automatic transformations, and adaptive stopping criteria

Basic Info
Statistics
  • Stars: 77
  • Watchers: 8
  • Forks: 19
  • Open Issues: 42
  • Releases: 14
Topics
mathematics monte-carlo python quasi-monte-carlo stopping-criterion
Created over 7 years ago · Last pushed about 1 month ago
Metadata Files
Readme Contributing License

README.md

QMCPy: Quasi-Monte Carlo Community Software in Python

Docs Tests GitHub stars DOI codecov on All Tests codecov on Unit Tests

Quasi-Monte Carlo (QMC) methods are used to approximate multivariate integrals. They have four main components: a discrete distribution, a true measure of randomness, an integrand, and a stopping criterion. Information about the integrand is obtained as a sequence of values of the function sampled at the data-sites of the discrete distribution. The stopping criterion tells the algorithm when the user-specified error tolerance has been satisfied. We are developing a framework that allows collaborators in the QMC community to develop plug-and-play modules in an effort to produce more efficient and portable QMC software. Each of the above four components is an abstract class. Abstract classes specify the common properties and methods of all subclasses. The ways in which the four kinds of classes interact with each other are also specified. Subclasses then flesh out different integrands, sampling schemes, and stopping criteria. Besides providing developers a way to link their new ideas with those implemented by the rest of the QMC community, we also aim to provide practitioners with state-of-the-art QMC software for their applications.

Resources

The QMCPy documentation contains a detailed package reference documenting functions and classes including thorough doctests. A number of example notebook demos are also rendered into the documentation from QMCSoftware/demos/. We recommend the following resources to start learning more about QMCPy

Installation

bash pip install qmcpy

To install from source, please see the contributing guidelines.

Citation

If you find QMCPy helpful in your work, please support us by citing the following work, which is also available as a QMCPy BibTex citation

~~~ Sou-Cheng T. Choi, Fred J. Hickernell, Michael McCourt, Jagadeeswaran Rathinavel, Aleksei G. Sorokin, QMCPy: A Quasi-Monte Carlo Python Library. 2026. https://qmcsoftware.github.io/QMCSoftware/ ~~~

We maintain a list of publications on the development and use of QMCPy as well as a list of select references upon which QMCPy was built.

Development

Want to contribute to QMCPy? Please see our guidelines for contributors which includes instructions on installation for developers, running tests, and compiling documentation.

This software would not be possible without the efforts of the QMCPy community including our steering council, collaborators, contributors, and sponsors.

QMCPy is distributed under an Apache 2.0 license from the Illinois Institute of Technology.

Owner

  • Name: QMCSoftware
  • Login: QMCSoftware
  • Kind: organization

JOSS Publication

QMCPy: A Python Framework for (Quasi-)Monte Carlo Algorithms
Published
January 19, 2026
Volume 11, Issue 117, Page 9705
Authors
Aleksei G. Sorokin ORCID
Illinois Institute of Technology, USA, University of Chicago, USA
Fred J. Hickernell ORCID
Illinois Institute of Technology, USA
Sou-Cheng T. Choi ORCID
Illinois Institute of Technology, USA, SouLab LLC, USA
Jagadeeswaran Rathinavel ORCID
Torc Robotics, USA
Pieterjan Robbe ORCID
Sandia National Laboratories, USA
Aadit Jain ORCID
University of California San Diego, USA
Editor
Owen Lockwood ORCID
Tags
(quasi-)Monte Carlo numerical integration randomized low-discrepancy sequences automatic error estimation object oriented Python framework

Committers

Last synced: about 1 month ago

All Time
  • Total Commits: 2,191
  • Total Committers: 31
  • Avg Commits per committer: 70.677
  • Development Distribution Score (DDS): 0.433
Past Year
  • Commits: 524
  • Committers: 13
  • Avg Commits per committer: 40.308
  • Development Distribution Score (DDS): 0.445
Top Committers
Name Email Commits
alegresor a****3@g****m 1,243
Sou-Cheng Choi s****2@i****u 383
sou-cheng-choi s****i@s****g 112
Fred J Hickernell h****l@i****u 102
Sou-Cheng Choi t****a@1****8 80
aaditj1962161 a****n@g****m 53
Jagadeeswaran Rathinavel j****r@g****m 52
Joshua Herman 3****g 18
thegman108 6****8 16
dependabot[bot] 4****] 16
Sealybla l****8@g****m 15
Joey Coco b****7@g****m 14
galois777 g****7@g****m 13
jag.rathinavel j****l@w****m 12
PieterjanRobbe p****e@c****e 11
Ally Pascual Kwan a****l@g****m 11
galois777 9****7 7
Abdo Haji-Ali a****i@g****m 6
Sou Cheng s****i@k****m 4
Fred Hickernell f****T@g****m 4
Pieterjan Robbe p****e@k****e 3
Aleksei Sorokin a****r@A****l 2
Jags Rathinavel j****l@w****m 2
Lynn Matar 5****r 2
Larysa Matiukha 1****m 2
Fred J Hickernell f****l@g****m 2
Copilot 1****t 2
Nathan Kirk n****k@l****m 1
Jag Rathinavel j****l@w****m 1
Jungtaek Kim j****m@p****r 1
and 1 more...

Issues and Pull Requests

Last synced: about 1 month ago

All Time
  • Total issues: 61
  • Total pull requests: 154
  • Average time to close issues: over 1 year
  • Average time to close pull requests: 23 days
  • Total issue authors: 16
  • Total pull request authors: 17
  • Average comments per issue: 1.26
  • Average comments per pull request: 0.76
  • Merged pull requests: 104
  • Bot issues: 0
  • Bot pull requests: 18
Past Year
  • Issues: 9
  • Pull requests: 40
  • Average time to close issues: 1 day
  • Average time to close pull requests: 3 days
  • Issue authors: 7
  • Pull request authors: 9
  • Average comments per issue: 1.56
  • Average comments per pull request: 1.25
  • Merged pull requests: 21
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • alegresor (31)
  • zitterbewegung (6)
  • fjhickernell (4)
  • sou-cheng-choi (4)
  • mblaszkiewicz (3)
  • lmatar (3)
  • NielsRogge (1)
  • ahadzic7 (1)
  • dmetivie (1)
  • keithbriggs (1)
  • IanFla (1)
  • aaditj1962161 (1)
  • yding2 (1)
  • jungtaekkim (1)
  • ANaumann85 (1)
Pull Request Authors
  • alegresor (53)
  • sou-cheng-choi (30)
  • dependabot[bot] (18)
  • zitterbewegung (15)
  • jagadeesr (8)
  • CDHJ2000 (6)
  • aaditj1962161 (6)
  • fjhickernell (5)
  • rvare (2)
  • JimmyNguyenUCI (2)
  • ggraoigr (2)
  • nmkirk (2)
  • thegman108 (1)
  • Baronlegend27 (1)
  • galois777 (1)
Top Labels
Issue Labels
enhancement (2) bug (2) dependencies (1)
Pull Request Labels
dependencies (18)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 823 last-month
  • Total dependent packages: 3
  • Total dependent repositories: 2
  • Total versions: 34
  • Total maintainers: 1
pypi.org: qmcpy

Quasi-Monte Carlo point generators, automatic transformations, and adaptive stopping criteria

  • Versions: 34
  • Dependent Packages: 3
  • Dependent Repositories: 2
  • Downloads: 823 Last month
  • Docker Downloads: 0
Rankings
Docker downloads count: 3.1%
Downloads: 4.5%
Dependent packages count: 7.3%
Average: 7.6%
Forks count: 9.4%
Stargazers count: 9.6%
Dependent repos count: 11.8%
Maintainers (1)
Last synced: about 1 month ago

Dependencies

.github/workflows/python-package-conda.yml actions
  • actions/checkout v2 composite
  • conda-incubator/setup-miniconda v2 composite
Dockerfile docker
  • python 3.7.0 build
environment.yml pypi
  • coverage ==6.4.1
  • jupyter ==1.0.0
  • matplotlib ==3.5.2
  • numpy ==1.23.4
  • pandas ==1.4.3
  • pylint ==2.14.4
  • pytest ==7.1.2
  • recommonmark ==0.7.1
  • scikit-learn *
  • scipy ==1.9.3
  • sphinx-markdown-tables ==0.0.17
  • sphinx-math-dollar ==1.2.1
  • sphinx-rtd-theme ==1.0.0
  • umbridge ==1.2.1
setup.py pypi
  • numpy *
  • scipy *
deprecated/docs_bak/Gemfile rubygems
  • github-pages >= 0 development