Apply nan/inf handling patch from Sisyphus
[Math-GSL.git] / QRNG.i
blob7bcdc9d4a7fa342fff065bdbf844d1d332ead143
1 %module "Math::GSL::QRNG"
2 %include "typemaps.i"
3 %include "gsl_typemaps.i"
5 %apply double *OUTPUT { double x[] };
8 %typemap(argout) double x[] {
9 AV *tempav;
10 I32 len;
11 int i;
12 SV **tv;
13 if (argvi >= items) {
14 EXTEND(sp,1);
16 $result = sv_newmortal();
17 sv_setnv($result,(NV) *($1));
18 argvi++;
20 $result = sv_newmortal();
21 sv_setnv($result,(NV) *($1+1));
22 argvi++;
26 #include "gsl/gsl_types.h"
27 #include "gsl/gsl_qrng.h"
30 %include "gsl/gsl_types.h"
31 %include "gsl/gsl_qrng.h"
33 %perlcode %{
35 @EXPORT_OK = qw($gsl_qrng_niederreiter_2 $gsl_qrng_sobol $gsl_qrng_halton $gsl_qrng_reversehalton
36 gsl_qrng_alloc gsl_qrng_memcpy gsl_qrng_clone
37 gsl_qrng_free gsl_qrng_init gsl_qrng_name
38 gsl_qrng_size gsl_qrng_state gsl_qrng_get
40 %EXPORT_TAGS = ( all => [ @EXPORT_OK ] );
43 __END__
45 =head1 NAME
47 Math::GSL::QRNG - Quasi-random number generator
49 =head1 SYNOPSIS
51 use Math::GSL::QRNG qw/:all/;
53 =head1 DESCRIPTION
55 Here is a list of all the functions included in this module :
57 =over
59 =item C<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.
61 =item C<gsl_qrng_clone($q)> - This function returns a pointer to a newly created generator which is an exact copy of the generator $q.
63 =item C<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.
65 =item C<gsl_qrng_free($q)> - This function frees all the memory associated with the generator $q.
67 =item C<gsl_qrng_init($q)> - This function reinitializes the generator $q to its starting point. Note that quasi-random sequences do not use a seed and always produce the same set of values.
69 =item C<gsl_qrng_name($q)> - This function returns a pointer to the name of the generator $q.
71 =item C<gsl_qrng_size($q)> - This function returns the size of the state of generator r from the generator $q. You can use this information to access the state directly.
73 =item C<gsl_qrng_state($q)> - This function returns a pointer to the state of generator r from the generator $q. You can use this information to access the state directly.
75 =item C<gsl_qrng_get>
77 =back
79 This module also contains the following constants :
81 =over
83 =item C<$gsl_qrng_niederreiter_2>
85 =item C<$gsl_qrng_sobol>
87 =item C<$gsl_qrng_halton>
89 =item C<$gsl_qrng_reversehalton>
91 =back
93 For more informations on the functions, we refer you to the GSL offcial documentation: L<http://www.gnu.org/software/gsl/manual/html_node/>
95 Tip : search on google: site:http://www.gnu.org/software/gsl/manual/html_node/ name_of_the_function_you_want
98 =head1 EXAMPLES
100 =head1 AUTHORS
102 Jonathan Leto <jonathan@leto.net> and Thierry Moisan <thierry.moisan@gmail.com>
104 =head1 COPYRIGHT AND LICENSE
106 Copyright (C) 2008 Jonathan Leto and Thierry Moisan
108 This program is free software; you can redistribute it and/or modify it
109 under the same terms as Perl itself.
111 =cut