Source code for pygsl.qrng

#!/usr/bin/python3
"""    
A quasi-random sequence progressively covers a d-dimensional space with a
set of points that are uniformly distributed.  Quasi-random sequences are
also  known  as  low-discrepancy  sequences.  The  quasi-random  sequence
generators use an  interface that is similar to  the interface for random
number generators.

Currently two implementations are available: sobol and niederreiter_base_2.

The generators provide the following methods:
    __init__(dim)    ... intalizes the random generator to dim dimensions.
    __call__(sample) ... returns a two dimensional array with the shape
                         (sample, dim).
    init()           ... initalizes the random generator to the original state.
    name()           ... get the name of the used generator
    __copy___()      ... returns an identical copy of the current generator.
"""
import pygsl._qrng as _qrng

[docs] def sobol(dimension): """ This generator uses the Sobol sequence described in Antonov, Saleev, `USSR Comput. Maths. Math. Phys.' 19, 252 (1980). It is valid up to 40 dimensions. """ return _qrng.sobol(dimension)
[docs] def niederreiter_base_2(dimension): """ This generator uses the algorithm described in Bratley, Fox, Niederreiter, `ACM Trans. Model. Comp. Sim.' 2, 195 (1992). It is valid up to 12 dimensions. """ return _qrng.niederreiter_2(dimension)