#
# = Quasi-Random Sequences
#
# This chapter describes the quasi-random sequence generator <tt>GSL::QRng</tt>
# of arbitrary dimensions. 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.
#
# Contents:
# 1. {Quasi-random number generator initialization}[link:rdoc/qrng_rdoc.html#label-Quasi-random+number+generator+initialization]
# 1. {Sampling from a quasi-random number generator}[link:rdoc/qrng_rdoc.html#label-Sampling+from+a+quasi-random+number+generator]
# 1. {Auxiliary quasi-random number generator functions}[link:rdoc/qrng_rdoc.html#label-Auxiliary+quasi-random+number+generator+functions]
# 1. {Saving and resorting quasi-random number generator state}[link:rdoc/qrng_rdoc.html#label-Saving+and+resorting+quasi-random+number+generator+state]
# 1. {Quasi-random number generator algorithms}[link:rdoc/qrng_rdoc.html#label-Quasi-random+number+generator+algorithms]
#
# == Quasi-random number generator initialization
#
# ---
# * GSL::QRng.alloc(T, d)
#
#   This returns a GSL::QRng object, a quasi-random sequence generator of type <tt>T</tt> and dimension <tt>d</tt>.
#
# ---
# * GSL::QRng::init
#
#   This reinitializes the generator to its starting point.
#
# == Sampling from a quasi-random number generator
#
# ---
# * GSL::QRng::get(x)
#
#   This calculate the next point <tt>x</tt> from the sequence generator. Here <tt>x</tt> is an instance of the {GSL::Vector}[link:rdoc/vector_rdoc.html] class. The space available for <tt>x</tt> must match the dimension of the generator. The point <tt>x</tt> will lie in the range 0 < x_i < 1 for each x_i.
#
#   This is used as
#     q = QRng.alloc(QRng::SOBOL, dim)
#     v = Vector.alloc(dim)
#     for i in 0..1024 do
#       q.get(v)
#       printf("%.5f %.5f\n", v[0], v[1])
#     end
#
# == Auxiliary quasi-random number generator functions
#
# ---
# * GSL::QRng::name
#
#   Returns the name of the generator <tt>self</tt>.
#
# ---
# * GSL::QRng::size
#
#
# == Saving and resorting quasi-random number generator state
# ---
# * GSL::QRng::clone
# * GSL::QRng::duplicate
#
#   Return a newly created generator which is an exact copy of the generator <tt>self</tt>.
# == Quasi-random number generator algorithms
# In creating a generator by the method <tt>GSL::QRng.alloc(T, d)</tt>,
# the algorithm type <tt>T</tt> is given by a String or a Fixnum constant.
# The following quasi-random sequence algorithms are available,
#
# * "<tt>niederreiter_2</tt>" (String)
# * <tt>GSL::QRng::NIEDERREITER_2</tt> (Fixnum)
#
#   The generator of this type uses the algorithm described in Bratley, Fox, Niederreiter, ACM Trans. Model. Comp. Sim. 2, 195 (1992). It is valid up to 12 dimensions.
#
# * "<tt>sobol</tt>" (String)
# * <tt>GSL::QRng::SOBOL</tt> (Fixnum)
#
#   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.
#
# * "<tt>halton</tt>" (String)
# * <tt>GSL::QRng::HALTON</tt> (Fixnum)
# * "<tt>reversehalton</tt>" (String)
# * <tt>GSL::QRng::REVERSEHALTON</tt> (Fixnum)
#
#   (GSL-1.11 or later) These generators use the Halton and reverse Halton sequences described in J.H. Halton, Numerische Mathematik 2, 84-90 (1960) and B. Vandewoestyne and R. Cools Computational and Applied Mathematics 189, 1&2, 341-361 (2006). They are valid up to 1229 dimensions.
#
# {prev}[link:rdoc/rng_rdoc.html]
# {next}[link:rdoc/randist_rdoc.html]
#
# {Reference index}[link:rdoc/ref_rdoc.html]
# {top}[link:index.html]
#
#
