Skip to content

C++11 implementation of the ETF algorithm

License

Apache-2.0 and 2 other licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
BSL-1.0
LICENSE-BOOST
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

sbarral/etf-cpp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

<etf>: a C++ implementation of the Exclusive Top Floor algorithm

The ETF algorithm is a blazingly fast algorithm to sample arbitrary univariate continuous probability distributions solely from their probability density function and using marginally more than one random number per sample.

The <etf> library is a ready-to-use implementation of the ETF algorithm with optimized specializations for asymmetric, symmetric and central distributions.

Documentation

The <etf> library API is documented here. You may read more about the algorithm itself in the online overview of the method.

Installation

This is a header-only library: once installed locally, it is enough to make sure that the etf directory is in the include path.

Benchmarking

The benchmarking directory contains a timing benchmark as well as a statistical collision test benchmark. These are discussed in details in the ETF overview.

Note that the timing benchmark requires the nonius microbenchmarking library which in turn needs a couple of the Boost libraries.

Examples

A short tutorial will be coming soon. In the meantime, the benchmarking directory contains example applications of the <etf> library for the fast generation of normal and chi-squared variates.

License

This software is licensed under the Apache License version 2.0, the MIT license or the Boost license version 1.0, at your option.

Copyright © 2016 Serge Barral.

About

C++11 implementation of the ETF algorithm

Resources

License

Apache-2.0 and 2 other licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
BSL-1.0
LICENSE-BOOST
MIT
LICENSE-MIT

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages