/lintsampler

Efficient random sampling via linear interpolation.

Primary LanguagePythonMIT LicenseMIT

lintsampler

Efficient random sampling via linear interpolation.

Test Coverage Status Documentation Status License: MIT

When you know densities on the 2 endpoints of 1D interval, or the 4 corners of a 2D rectangle, or generally the $2^k$ vertices of a $k$-dimensional hyperbox (or a series of such hyperboxes, e.g., the cells of a $k$-dimensional grid), linear interpolant sampling provides a technique to draw random samples within the hyperbox. lintsampler provides a Python implementation of this.

See the documentation or the linear interpolant sampling paper for further details.

Documentation

The documentation, including some example notebooks, is available at lintsampler.readthedocs.io/.

Installation

Three ways of installing lintsampler:

  • pip:
pip install lintsampler
  • conda:
conda install -c conda-forge lintsampler
  • Simply cloning this repository.

Attribution

If using lintsampler for a research publication, please cite our paper: link to come.

License

lintsampler is available under the MIT license. See the LICENSE file for specifics.