File: t_RandomGenerator_std.py

package info (click to toggle)
openturns 1.7-3
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 38,588 kB
  • ctags: 26,495
  • sloc: cpp: 144,032; python: 26,855; ansic: 7,868; sh: 419; makefile: 263; yacc: 123; lex: 44
file content (70 lines) | stat: -rwxr-xr-x 2,449 bytes parent folder | download
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#! /usr/bin/env python

from __future__ import print_function
from openturns import *

TESTPREAMBLE()

try:
    # Test the initialization method
    RandomGenerator.SetSeed(0)

    # Test the state accessor for reading
    initialState = RandomGenerator.GetState()
    print("initialState=", repr(initialState))
    # Test the generation of one realization
    realization = RandomGenerator.Generate()
    print("one realization=%.6f" % realization)
    state = RandomGenerator.GetState()
    print("state=", repr(state))
    print("new state index=", state.getIndex())

    # Test the generation of several realizations
    size = 10000
    several = RandomGenerator.Generate(size)
    print(size, " realizations, first=%.6f" %
          several[0], ", last=%.6f" % several[size - 1])

    # Test the state accessor for writing
    RandomGenerator.SetState(initialState)
    print("restoring initial state, one realization=%.6f" %
          RandomGenerator.Generate())
    # Test the uniformity of the random generator
    size = 100000
    manyPoints = RandomGenerator.Generate(size)
    slice = 10
    frequencies = NumericalPoint(slice, 0.0)
    mean = 0.0
    for i in range(size):
        frequencies[int(slice * manyPoints[i])] = frequencies[
            int(slice * manyPoints[i])] + 1
        mean = mean + manyPoints[i]

    mean = mean / size
    print("mean of", size, "realizations= %.12f" % mean)
    for i in range(slice):
        frequencies[i] = frequencies[i] / size
        print("frequency in slice [", (
            1.0 * i) / slice, ",", (i + 1.0) / slice, "]=", frequencies[i])

    print("One integer generation in [[0, ", slice - 1, "]]=",
          RandomGenerator.IntegerGenerate(slice))
    print("Another integer generation in [[0, ", slice - 1, "]]=",
          RandomGenerator.IntegerGenerate(slice))
    manyUnsignedInteger = RandomGenerator.IntegerGenerate(size, slice)
    frequencies = NumericalPoint(slice, 0.0)
    mean = 0.0
    for i in range(size):
        frequencies[manyUnsignedInteger[i]] = frequencies[
            manyUnsignedInteger[i]] + 1
        mean = mean + manyUnsignedInteger[i]

    mean = mean / size
    print("mean of ", size, " integer realizations=", mean)
    for i in range(slice):
        frequencies[i] = frequencies[i] / size
        print("frequency for value ", i, "=", frequencies[i])

except:
    import sys
    print("t_RandomGenerator.py", sys.exc_info()[0], sys.exc_info()[1])