Scroll to navigation

Math::GSL::QRNG(3pm) User Contributed Perl Documentation Math::GSL::QRNG(3pm)

NAME

Math::GSL::QRNG - Quasi-random number generators

SYNOPSIS

    # use OO approach
    use Math::GSL::QRNG;
    my $QRNG = Math::GSL::QRNG::Sobol->new(2);
    my @samples = $QRNG->get();
    # use GSL interface
    use Math::GSL::QRNG qw/:all/;

DESCRIPTION

This module interfaces with GNU Scientific Library quasi-random number generators (QRNG).

OO Interface

The OO Interface described in this documentation is available to all different subclasses, namely:

reinit

Reinitializes the generator to its starting point. Note that quasi-random sequences do not use a seed and always produce the same set of values.

        $qrng->reinit();

get

Retrieves the next point from the sequence generator. Returns "undef" on error.

        my @points = $qrng->get();

name

Retrieves the QRNG name.

    my $name = $qrng->name();

state_size

Returns the size of the QRNG state.

clone

Returns an exact copy of the current QRNG.

GSL API

Here is a list of all the functions included in this module :

"gsl_qrng_alloc($T, $n)" - This function returns a pointer to a newly-created instance of a quasi-random sequence generator of type $T and dimension $d. The type $T must be one of the constants included in this module.
"gsl_qrng_memcpy($dest, $src)" - This function copies the quasi-random sequence generator $src into the pre-existing generator $dest, making $dest into an exact copy of $src. The two generators must be of the same type.
"gsl_qrng_get"

This module also contains the following constants :

$gsl_qrng_niederreiter_2
$gsl_qrng_sobol
$gsl_qrng_halton
$gsl_qrng_reversehalton

For more information on the functions, we refer you to the GSL official documentation: <http://www.gnu.org/software/gsl/manual/html_node/>

EXAMPLES

AUTHORS

Jonathan "Duke" Leto <jonathan@leto.net> Thierry Moisan <thierry.moisan@gmail.com> Alberto Simões <ambs@cpan.org>

COPYRIGHT AND LICENSE

Copyright (C) 2008-2023 Jonathan "Duke" Leto and Thierry Moisan

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

2024-03-07 perl v5.38.2