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 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>FreeMat: vtkMinimalStandardRandomSequence</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">FreeMat
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.1.1 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main Page</span></a></li>
<li class="current"><a href="pages.html"><span>Related Pages</span></a></li>
</ul>
</div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('vtkcommon_vtkminimalstandardrandomsequence.html','');});
</script>
<div id="doc-content">
<div class="header">
<div class="headertitle">
<div class="title">vtkMinimalStandardRandomSequence </div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><p>Section: <a class="el" href="sec_vtkcommon.html">Visualization Toolkit Common Classes</a> </p>
<h1><a class="anchor" id="Usage"></a>
Usage</h1>
<p>vtkMinimalStandardRandomSequence is a sequence of statistically independent pseudo random numbers uniformly distributed between 0.0 and 1.0.</p>
<p>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"</p>
<p>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"</p>
<p>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.</p>
<p>To create an instance of class vtkMinimalStandardRandomSequence, simply invoke its constructor as follows </p>
<pre class="fragment"> obj = vtkMinimalStandardRandomSequence
</pre> <h1><a class="anchor" id="Methods"></a>
Methods</h1>
<p>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, <code>obj</code> is an instance of the vtkMinimalStandardRandomSequence class. </p>
<ul>
<li>
<code>string = obj.GetClassName ()</code> </li>
<li>
<code>int = obj.IsA (string name)</code> </li>
<li>
<code>vtkMinimalStandardRandomSequence = obj.NewInstance ()</code> </li>
<li>
<code>vtkMinimalStandardRandomSequence = obj.SafeDownCast (vtkObject o)</code> </li>
<li>
<code>obj.SetSeed (int value)</code> - 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. </li>
<li>
<code>obj.SetSeedOnly (int value)</code> - 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). </li>
<li>
<code>int = obj.GetSeed ()</code> - Get the seed of the random sequence. Only useful for writing correctness test. </li>
<li>
<code>double = obj.GetValue ()</code> - Current value <dl class="section post"><dt>Postcondition:</dt><dd>unit_range: result>=0.0 && result<=1.0 </dd></dl>
</li>
<li>
<code>obj.Next ()</code> - Move to the next number in the random sequence. </li>
<li>
<code>double = obj.GetRangeValue (double rangeMin, double rangeMax)</code> - 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:<ul>
<li>it can be in increasing order: rangeMin<rangeMax</li>
<li>it can be empty: rangeMin=rangeMax</li>
<li>it can be in decreasing order: rangeMin>rangeMax <dl class="section post"><dt>Postcondition:</dt><dd>result_in_range: (rangeMin<=rangeMax && result>=rangeMin && result<=rangeMax) || (rangeMax<=rangeMin && result>=rangeMax && result<=rangeMin) </dd></dl>
</li>
</ul>
</li>
</ul>
</div></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="index.html">FreeMat Documentation</a></li><li class="navelem"><a class="el" href="sec_vtkcommon.html">Visualization Toolkit Common Classes</a></li>
<li class="footer">Generated on Thu Jul 25 2013 17:18:30 for FreeMat by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.1.1 </li>
</ul>
</div>
</body>
</html>
|