File: vtkminimalstandardrandomsequence.mdc

package info (click to toggle)
freemat 4.2%2Bdfsg1-4
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 141,800 kB
  • ctags: 14,082
  • sloc: ansic: 126,788; cpp: 62,046; python: 2,080; perl: 1,255; sh: 1,146; yacc: 1,019; lex: 239; makefile: 100
file content (97 lines) | stat: -rw-r--r-- 3,739 bytes parent folder | download | duplicates (2)
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97

 Usage

vtkMinimalStandardRandomSequence is a sequence of
statistically independent pseudo random numbers uniformly
distributed between 0.0 and 1.0.
The sequence is generated by a prime modulus multiplicative
linear congruential generator (PMMLCG) or "Lehmer generator"
with multiplier 16807 and prime modulus 2^(31)-1. The
authors calls it "minimal standard random number generator"
ref: "Random Number Generators: Good Ones are Hard to Find,"
by Stephen K. Park and Keith W. Miller in Communications of
the ACM, 31, 10 (Oct. 1988) pp. 1192-1201. Code is at page
1195, "Integer version 2"
Correctness test is described in first column, page 1195: A
seed of 1 at step 1 should give a seed of 1043618065 at step
10001.
To create an instance of class
vtkMinimalStandardRandomSequence, simply invoke its
constructor as follows

    obj = vtkMinimalStandardRandomSequence



 Methods

The class vtkMinimalStandardRandomSequence has several
methods that can be used. They are listed below. Note that
the documentation is translated automatically from the VTK
sources, and may not be completely intelligible. When in
doubt, consult the VTK website. In the methods listed below,
obj is an instance of the vtkMinimalStandardRandomSequence
class.

* string = obj.GetClassName ()
* int = obj.IsA (string name)
* vtkMinimalStandardRandomSequence = obj.NewInstance ()
* vtkMinimalStandardRandomSequence = obj.SafeDownCast
  (vtkObject o)
* obj.SetSeed (int value) - Set the seed of the random
  sequence. The following pre-condition is stated page 1197,
  second column: valid_seed: value>=1 &&
  value<=2147483646 2147483646=(2^31)-2 This method does not
  have this criterium as a pre-condition (ie it will not
  fail if an incorrect seed value is passed) but the value
  is silently changed to fit in the valid range
  [1,2147483646]. 2147483646 is added to a null or negative
  value. 2147483647 is changed to be 1 (ie 2147483646 is
  substracted). Implementation note: it also performs 3
  calls to Next() to avoid the bad property that the first
  random number is proportional to the seed value.
* obj.SetSeedOnly (int value) - Set the seed of the random
  sequence. There is no extra internal ajustment. Only
  useful for writing correctness test. The following pre-
  condition is stated page 1197, second column 2147483646=
  (2^31)-2 This method does not have this criterium as a
  pre-condition (ie it will not fail if an incorrect seed
  value is passed) but the value is silently changed to fit
  in the valid range [1,2147483646]. 2147483646 is added to
  a null or negative value. 2147483647 is changed to be 1
  (ie 2147483646 is substracted).
* int = obj.GetSeed () - Get the seed of the random
  sequence. Only useful for writing correctness test.
* double = obj.GetValue () - Current value


    Postcondition:
        unit_range: result>=0.0 &amp;&amp; result<=1.0

* obj.Next () - Move to the next number in the random
  sequence.
* double = obj.GetRangeValue (double rangeMin, double
  rangeMax) - Convenient method to return a value in a
  specific range from the range [0,1. There is an initial
  implementation that can be overridden by a subclass. There
  is no pre-condition on the range:

  o it can be in increasing order: rangeMin<rangeMax
  o it can be empty: rangeMin=rangeMax
  o it can be in decreasing order: rangeMin>rangeMax


      Postcondition:
          result_in_range: (rangeMin<=rangeMax &amp;&amp;
          result>=rangeMin &amp;&amp; result<=rangeMax) ||
          (rangeMax<=rangeMin &amp;&amp; result>=rangeMax
          &amp;&amp; result<=rangeMin)




* FreeMat_Documentation
* Visualization_Toolkit_Common_Classes
* Generated on Thu Jul 25 2013 17:18:30 for FreeMat by
  doxygen_ 1.8.1.1