Skip to content

Commit ed33189

Browse files
committed
feat: Add Random Number Generator module
1 parent b49af33 commit ed33189

13 files changed

Lines changed: 1408 additions & 18 deletions

doc/source/gsl-ffi-rng.rst

Lines changed: 285 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,285 @@
1+
The GSL-FFI-RNG module
2+
**********************
3+
4+
.. current-library:: dylan-gsl
5+
.. current-module:: gsl-ffi-rng
6+
7+
The Random Number Generator interface
8+
-------------------------------------
9+
10+
.. class:: <gsl-rng-type*>
11+
12+
Type of generator.
13+
14+
.. class:: <gsl-rng-type**>
15+
16+
A pointer to an array of random number generator types.
17+
18+
.. class:: <gsl-rng*>
19+
20+
Random number generator.
21+
22+
Random number generator initialization
23+
--------------------------------------
24+
25+
.. function:: gsl-rng-default
26+
27+
Returns the default random number generator.
28+
29+
:signature:
30+
31+
gsl-rng-default () => (generator)
32+
33+
:value generator:
34+
35+
An instance of :class:`<gsl-rng*>`
36+
37+
:seealso:
38+
39+
https://www.gnu.org/software/gsl/doc/html/rng.html#c.gsl_rng_default
40+
41+
.. function:: gsl-rng-types-setup
42+
43+
Returns a pointer to an array of all available generator types.
44+
Should be called before using any other function in this module.
45+
46+
:signature:
47+
48+
gsl-rng-types-setup () => (types)
49+
50+
:values types:
51+
52+
An instance of :class:`<gsl-rng-type**>`.
53+
54+
:seealso:
55+
56+
https://www.gnu.org/software/gsl/doc/html/rng.html#c.gsl_rng_types_setup
57+
58+
.. function:: gsl-rng-type-element
59+
60+
Returns the type of the random number generator at the given index.
61+
62+
:signature:
63+
64+
gsl-rng-type-element (types, index) => (generator)
65+
66+
:param types:
67+
68+
An instance of :class:`<gsl-rng-type**>`.
69+
70+
:param index:
71+
72+
The index of the type to return.
73+
74+
:value generator:
75+
76+
An instance of :class:`<gsl-rng-type*>`.
77+
78+
:seealso:
79+
80+
https://www.gnu.org/software/gsl/doc/html/rng.html#c.gsl_rng_type_name
81+
82+
83+
.. function:: gsl-rng-alloc
84+
85+
Allocates a random number generator of the given type.
86+
87+
:signature:
88+
89+
gsl-rng-alloc (type) => (generator)
90+
91+
:param type:
92+
93+
An instance of :class:`<gsl-rng-type*>`.
94+
95+
:value generator:
96+
97+
An instance of :class:`<gsl-rng*>`
98+
99+
:seealso:
100+
101+
https://www.gnu.org/software/gsl/doc/html/rng.html#c.gsl_rng_alloc
102+
103+
.. function:: gsl-rng-free
104+
105+
Free a random number generator.
106+
107+
:signature: gsl-rng-free (generator) => ()
108+
109+
:param generator: An instance of :class:`<gsl-rng*>`.
110+
111+
:seealso:
112+
113+
https://www.gnu.org/software/gsl/doc/html/rng.html#c.gsl_rng_free
114+
115+
Auxiliary functions
116+
-------------------
117+
118+
.. function:: gsl-rng-set
119+
120+
Set the seed for the random number generator.
121+
122+
:signature:
123+
124+
gsl-rng-set (generator, seed) => ()
125+
126+
:param generator:
127+
128+
An instance of :class:`<gsl-rng*>`.
129+
130+
:param seed:
131+
132+
An instance of :class:`<c-integer>`.
133+
The seed for the random number generator.
134+
135+
:seealso:
136+
137+
https://www.gnu.org/software/gsl/doc/html/rng.html#c.gsl_rng_set
138+
139+
.. function:: gsl-rng-max
140+
141+
Return the maximum value of the random number generator.
142+
143+
:signature:
144+
145+
gsl-rng-max (generator) => (max)
146+
147+
:param generator:
148+
149+
An instance of :class:`<gsl-rng*>`.
150+
151+
:value max:
152+
153+
An instance of :class:`<c-integer>`.
154+
155+
:seealso:
156+
157+
https://www.gnu.org/software/gsl/doc/html/rng.html#c.gsl_rng_max
158+
159+
.. function:: gsl-rng-min
160+
161+
Return the minimum value of the random number generator.
162+
163+
:signature:
164+
165+
gsl-rng-min (generator) => (min)
166+
167+
:param generator:
168+
169+
An instance of :class:`<gsl-rng*>`.
170+
171+
:value min:
172+
173+
An instance of :class:`<c-integer>`.
174+
175+
:seealso:
176+
177+
https://www.gnu.org/software/gsl/doc/html/rng.html#c.gsl_rng_min
178+
179+
.. function:: gsl-rng-name
180+
181+
Return the name of the random number generator.
182+
183+
:signature:
184+
185+
gsl-rng-name (generator) => (name)
186+
187+
:param generator:
188+
189+
An instance of :class:`<gsl-rng*>`.
190+
191+
:value name:
192+
193+
An instance of :class:`<c-string>`.
194+
195+
:seealso:
196+
197+
https://www.gnu.org/software/gsl/doc/html/rng.html#c.gsl_rng_name
198+
199+
Sampling from a random number generator
200+
---------------------------------------
201+
202+
.. function:: gsl-rng-get
203+
204+
Returns a random number between the minimum and maximum value of the random number generator.
205+
206+
:signature:
207+
208+
gsl-rng-get (generator) => (number)
209+
210+
:param generator:
211+
212+
An instance of :class:`<gsl-rng*>`.
213+
214+
:value number:
215+
216+
A random number between the minimum and maximum value of the random number generator as an instance of :class:`<c-double>`.
217+
218+
:seealso:
219+
220+
https://www.gnu.org/software/gsl/doc/html/rng.html#c.gsl_rng_get
221+
222+
223+
.. function:: gsl-rng-uniform
224+
225+
Returns a random number between the minimum and maximum value of the random number generator.
226+
227+
:signature:
228+
229+
gsl-rng-uniform (generator) => (number)
230+
231+
:param generator:
232+
233+
An instance of :class:`<gsl-rng*>`.
234+
235+
:value number:
236+
237+
A random number between the minimum and maximum value of the random number generator as an instance of :class:`<c-double>`.
238+
239+
:seealso:
240+
241+
https://www.gnu.org/software/gsl/doc/html/rng.html#c.gsl_rng_uniform
242+
243+
.. function:: gsl-rng-uniform-pos
244+
245+
Returns a random number between 0 and the maximum value of the random number generator.
246+
247+
:signature:
248+
249+
gsl-rng-uniform-pos (generator) => (number)
250+
251+
:param generator:
252+
253+
An instance of :class:`<gsl-rng*>`.
254+
255+
:value number:
256+
257+
A random number between 0 and the maximum value of the random number generator as an instance of :class:`<c-double>`.
258+
259+
:seealso:
260+
261+
https://www.gnu.org/software/gsl/doc/html/rng.html#c.gsl_rng_uniform_pos
262+
263+
.. function:: gsl-rng-uniform-int
264+
265+
Returns a random number between 0 and n-1 of the random number generator.
266+
267+
:signature:
268+
269+
gsl-rng-uniform-int (generator, n) => (number)
270+
271+
:param generator:
272+
273+
An instance of :class:`<gsl-rng*>`.
274+
275+
:param n:
276+
277+
An instance of :class:`<c-integer>`.
278+
279+
:value number:
280+
281+
A random number between 0 and n-1 of the random number generator as an instance of :class:`<c-integer>`.
282+
283+
:seealso:
284+
285+
https://www.gnu.org/software/gsl/doc/html/rng.html#c.gsl_rng_uniform_int

0 commit comments

Comments
 (0)