# # = Quasi-Random Sequences # # This chapter describes the quasi-random sequence generator GSL::QRng # 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 T and dimension d. # # --- # * 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 x from the sequence generator. Here x is an instance of the {GSL::Vector}[link:rdoc/vector_rdoc.html] class. The space available for x must match the dimension of the generator. The point x 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 self. # # --- # * 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 self. # == Quasi-random number generator algorithms # In creating a generator by the method GSL::QRng.alloc(T, d), # the algorithm type T is given by a String or a Fixnum constant. # The following quasi-random sequence algorithms are available, # # * "niederreiter_2" (String) # * GSL::QRng::NIEDERREITER_2 (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. # # * "sobol" (String) # * GSL::QRng::SOBOL (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. # # * "halton" (String) # * GSL::QRng::HALTON (Fixnum) # * "reversehalton" (String) # * GSL::QRng::REVERSEHALTON (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] # #