File: uniform_random_generator.rst

package info (click to toggle)
openturns 1.24-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 66,204 kB
  • sloc: cpp: 256,662; python: 63,381; ansic: 4,414; javascript: 406; sh: 180; xml: 164; yacc: 123; makefile: 98; lex: 55
file content (53 lines) | stat: -rw-r--r-- 2,194 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
.. _uniform_random_generator:

Uniform Random Generator
------------------------

| Generating simulations according to a distribution is based on
  generating simulations according to a Uniform distribution on
  :math:`[0,1]` : several techniques exist then to transform a
  realization according to a uniform distribution onto a realization
  according to a distribution which cumulative distribution function is
  :math:`F` (refer to for each distribution).
| Thus, the quality of the random generation of simulation is entirely
  based on the quality of the *deterministic* algorithm which simulates
  realizations of the Uniform(0,1) distribution.
| We use the DSFTM algorithm described here, which is the
  acronym of **D**\ ouble precision **S**\ IMD oriented **F**\ ast
  **M**\ ersenne **T**\ wister.

Each character is detailed of the acronym is detailed :

-  **S = SIMD = Single Instruction Multiple Data**: the DSFMT algorithm
   is able to detect and take profit of the capacity of the
   microprocessor to realise several operations at a time.

-  **F = Fast**: the transformation of the :math:`k`-th state vector of
   the random generator into the :math:`(k+1)`-th state vector is
   written in order to optimize its performance.

-  **MT = Mersenne Twister**: the algorithm characteristics are the
   following ones :

   #. the algorithm is initialized with a high Mersenne Number, of type
      :math:`2^{2^n}-1`, with :math:`n=19937`.

   #. the algorithm period :math:`T` depends on that initial point :
      :math:`T = 2^{19937} \simeq 10^{6000}`. As a general way, the bad
      effects of the periodicity of the algorithm arise as soon as the
      number of simulations is greater than :math:`\, \simeq \sqrt{T}`
      simulations. Here, we have :
      :math:`\sqrt{T} =2^{9968}\simeq 10^{3000}`.

   #. the realizations of the DSFMT algorithm are uniformly distributed
      within :math:`[0,1]^n` until :math:`n=624`.

.. topic:: API:

    - See :class:`~openturns.RandomGenerator`
    - See :class:`~openturns.RandomGeneratorState` to save the generator state

.. topic:: Examples:

    - See :doc:`/auto_numerical_methods/general_methods/plot_random_generator`