blob: 9d154335617c7e2e63b7c3debe1723da8c51b684 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html" charset="UTF-8">
<title>org.apache.commons.math3.random (Apache Commons Math 3.3 API)</title>
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="org.apache.commons.math3.random (Apache Commons Math 3.3 API)";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!-- -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li class="navBarCell1Rev">Package</li>
<li>Class</li>
<li><a href="package-use.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><em><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script></em></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/commons/math3/primes/package-summary.html">Prev Package</a></li>
<li><a href="../../../../../org/apache/commons/math3/special/package-summary.html">Next Package</a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/commons/math3/random/package-summary.html" target="_top">Frames</a></li>
<li><a href="package-summary.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip-navbar_top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h1 title="Package" class="title">Package&nbsp;org.apache.commons.math3.random</h1>
<div class="docSummary">
<div class="block">Random number and random data generators.</div>
</div>
<p>See:&nbsp;<a href="#package_description">Description</a></p>
</div>
<div class="contentContainer">
<ul class="blockList">
<li class="blockList">
<table class="packageSummary" border="0" cellpadding="3" cellspacing="0" summary="Interface Summary table, listing interfaces, and an explanation">
<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Interface</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/random/NormalizedRandomGenerator.html" title="interface in org.apache.commons.math3.random">NormalizedRandomGenerator</a></td>
<td class="colLast">
<div class="block">This interface represent a normalized random generator for
scalars.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/random/RandomData.html" title="interface in org.apache.commons.math3.random">RandomData</a></td>
<td class="colLast">Deprecated
<div class="block"><i>to be removed in 4.0.</i></div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/random/RandomGenerator.html" title="interface in org.apache.commons.math3.random">RandomGenerator</a></td>
<td class="colLast">
<div class="block">Interface extracted from <code>java.util.Random</code>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/random/RandomVectorGenerator.html" title="interface in org.apache.commons.math3.random">RandomVectorGenerator</a></td>
<td class="colLast">
<div class="block">This interface represents a random generator for whole vectors.</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList">
<table class="packageSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/random/AbstractRandomGenerator.html" title="class in org.apache.commons.math3.random">AbstractRandomGenerator</a></td>
<td class="colLast">
<div class="block">Abstract class implementing the <a href="../../../../../org/apache/commons/math3/random/RandomGenerator.html" title="interface in org.apache.commons.math3.random"><code>RandomGenerator</code></a> interface.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/random/AbstractWell.html" title="class in org.apache.commons.math3.random">AbstractWell</a></td>
<td class="colLast">
<div class="block">This abstract class implements the WELL class of pseudo-random number generator
from Fran&ccedil;ois Panneton, Pierre L'Ecuyer and Makoto Matsumoto.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/random/BitsStreamGenerator.html" title="class in org.apache.commons.math3.random">BitsStreamGenerator</a></td>
<td class="colLast">
<div class="block">Base class for random number generators that generates bits streams.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/random/CorrelatedRandomVectorGenerator.html" title="class in org.apache.commons.math3.random">CorrelatedRandomVectorGenerator</a></td>
<td class="colLast">
<div class="block">A <a href="../../../../../org/apache/commons/math3/random/RandomVectorGenerator.html" title="interface in org.apache.commons.math3.random"><code>RandomVectorGenerator</code></a> that generates vectors with with
correlated components.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/random/EmpiricalDistribution.html" title="class in org.apache.commons.math3.random">EmpiricalDistribution</a></td>
<td class="colLast">
<div class="block">Represents an <a href="http://http://en.wikipedia.org/wiki/Empirical_distribution_function">
empirical probability distribution</a> -- a probability distribution derived
from observed data without making any assumptions about the functional form
of the population distribution that the data come from.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/random/GaussianRandomGenerator.html" title="class in org.apache.commons.math3.random">GaussianRandomGenerator</a></td>
<td class="colLast">
<div class="block">This class is a gaussian normalized random generator for scalars.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/random/HaltonSequenceGenerator.html" title="class in org.apache.commons.math3.random">HaltonSequenceGenerator</a></td>
<td class="colLast">
<div class="block">Implementation of a Halton sequence.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/random/ISAACRandom.html" title="class in org.apache.commons.math3.random">ISAACRandom</a></td>
<td class="colLast">
<div class="block"><a href="http://burtleburtle.net/bob/rand/isaacafa.html">
ISAAC: a fast cryptographic pseudo-random number generator</a>
<br/>
ISAAC (Indirection, Shift, Accumulate, Add, and Count) generates 32-bit
random numbers.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/random/JDKRandomGenerator.html" title="class in org.apache.commons.math3.random">JDKRandomGenerator</a></td>
<td class="colLast">
<div class="block">Extension of <code>java.util.Random</code> to implement
<a href="../../../../../org/apache/commons/math3/random/RandomGenerator.html" title="interface in org.apache.commons.math3.random"><code>RandomGenerator</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/random/MersenneTwister.html" title="class in org.apache.commons.math3.random">MersenneTwister</a></td>
<td class="colLast">
<div class="block">This class implements a powerful pseudo-random number generator
developed by Makoto Matsumoto and Takuji Nishimura during
1996-1997.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/random/RandomAdaptor.html" title="class in org.apache.commons.math3.random">RandomAdaptor</a></td>
<td class="colLast">
<div class="block">Extension of <code>java.util.Random</code> wrapping a
<a href="../../../../../org/apache/commons/math3/random/RandomGenerator.html" title="interface in org.apache.commons.math3.random"><code>RandomGenerator</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/random/RandomDataGenerator.html" title="class in org.apache.commons.math3.random">RandomDataGenerator</a></td>
<td class="colLast">
<div class="block">Implements the <a href="../../../../../org/apache/commons/math3/random/RandomData.html" title="interface in org.apache.commons.math3.random"><code>RandomData</code></a> interface using a <a href="../../../../../org/apache/commons/math3/random/RandomGenerator.html" title="interface in org.apache.commons.math3.random"><code>RandomGenerator</code></a>
instance to generate non-secure data and a <a href="http://docs.oracle.com/javase/6/docs/api/java/security/SecureRandom.html?is-external=true" title="class or interface in java.security"><code>SecureRandom</code></a>
instance to provide data for the <code>nextSecureXxx</code> methods.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/random/RandomDataImpl.html" title="class in org.apache.commons.math3.random">RandomDataImpl</a></td>
<td class="colLast">Deprecated
<div class="block"><i>to be removed in 4.0.</i></div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/random/RandomGeneratorFactory.html" title="class in org.apache.commons.math3.random">RandomGeneratorFactory</a></td>
<td class="colLast">
<div class="block">Utilities for creating <a href="../../../../../org/apache/commons/math3/random/RandomGenerator.html" title="interface in org.apache.commons.math3.random"><code>RandomGenerator</code></a> instances.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/random/SobolSequenceGenerator.html" title="class in org.apache.commons.math3.random">SobolSequenceGenerator</a></td>
<td class="colLast">
<div class="block">Implementation of a Sobol sequence.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/random/StableRandomGenerator.html" title="class in org.apache.commons.math3.random">StableRandomGenerator</a></td>
<td class="colLast">
<div class="block">This class provides a stable normalized random generator.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/random/SynchronizedRandomGenerator.html" title="class in org.apache.commons.math3.random">SynchronizedRandomGenerator</a></td>
<td class="colLast">
<div class="block">Any <a href="../../../../../org/apache/commons/math3/random/RandomGenerator.html" title="interface in org.apache.commons.math3.random"><code>RandomGenerator</code></a> implementation can be thread-safe if it
is used through an instance of this class.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/random/UncorrelatedRandomVectorGenerator.html" title="class in org.apache.commons.math3.random">UncorrelatedRandomVectorGenerator</a></td>
<td class="colLast">
<div class="block">A <a href="../../../../../org/apache/commons/math3/random/RandomVectorGenerator.html" title="interface in org.apache.commons.math3.random"><code>RandomVectorGenerator</code></a> that generates vectors with uncorrelated
components.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/random/UniformRandomGenerator.html" title="class in org.apache.commons.math3.random">UniformRandomGenerator</a></td>
<td class="colLast">
<div class="block">This class implements a normalized uniform random generator.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/random/UnitSphereRandomVectorGenerator.html" title="class in org.apache.commons.math3.random">UnitSphereRandomVectorGenerator</a></td>
<td class="colLast">
<div class="block">Generate random vectors isotropically located on the surface of a sphere.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/random/ValueServer.html" title="class in org.apache.commons.math3.random">ValueServer</a></td>
<td class="colLast">
<div class="block">Generates values for use in simulation applications.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/random/Well1024a.html" title="class in org.apache.commons.math3.random">Well1024a</a></td>
<td class="colLast">
<div class="block">This class implements the WELL1024a pseudo-random number generator
from Fran&ccedil;ois Panneton, Pierre L'Ecuyer and Makoto Matsumoto.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/random/Well19937a.html" title="class in org.apache.commons.math3.random">Well19937a</a></td>
<td class="colLast">
<div class="block">This class implements the WELL19937a pseudo-random number generator
from Fran&ccedil;ois Panneton, Pierre L'Ecuyer and Makoto Matsumoto.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/random/Well19937c.html" title="class in org.apache.commons.math3.random">Well19937c</a></td>
<td class="colLast">
<div class="block">This class implements the WELL19937c pseudo-random number generator
from Fran&ccedil;ois Panneton, Pierre L'Ecuyer and Makoto Matsumoto.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/random/Well44497a.html" title="class in org.apache.commons.math3.random">Well44497a</a></td>
<td class="colLast">
<div class="block">This class implements the WELL44497a pseudo-random number generator
from Fran&ccedil;ois Panneton, Pierre L'Ecuyer and Makoto Matsumoto.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/random/Well44497b.html" title="class in org.apache.commons.math3.random">Well44497b</a></td>
<td class="colLast">
<div class="block">This class implements the WELL44497b pseudo-random number generator
from Fran&ccedil;ois Panneton, Pierre L'Ecuyer and Makoto Matsumoto.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/random/Well512a.html" title="class in org.apache.commons.math3.random">Well512a</a></td>
<td class="colLast">
<div class="block">This class implements the WELL512a pseudo-random number generator
from Fran&ccedil;ois Panneton, Pierre L'Ecuyer and Makoto Matsumoto.</div>
</td>
</tr>
</tbody>
</table>
</li>
</ul>
<a name="package_description">
<!-- -->
</a>
<h2 title="Package org.apache.commons.math3.random Description">Package org.apache.commons.math3.random Description</h2>
<div class="block"><p>Random number and random data generators.</p>
<p>Commons-math provides a few pseudo random number generators. The top level interface is RandomGenerator.
It is implemented by three classes:
<ul>
<li><a href="../../../../../org/apache/commons/math3/random/JDKRandomGenerator.html" title="class in org.apache.commons.math3.random"><code>JDKRandomGenerator</code></a>
that extends the JDK provided generator</li>
<li>AbstractRandomGenerator as a helper for users generators</li>
<li>BitStreamGenerator which is an abstract class for several generators and
which in turn is extended by:
<ul>
<li><a href="../../../../../org/apache/commons/math3/random/MersenneTwister.html" title="class in org.apache.commons.math3.random"><code>MersenneTwister</code></a></li>
<li><a href="../../../../../org/apache/commons/math3/random/Well512a.html" title="class in org.apache.commons.math3.random"><code>Well512a</code></a></li>
<li><a href="../../../../../org/apache/commons/math3/random/Well1024a.html" title="class in org.apache.commons.math3.random"><code>Well1024a</code></a></li>
<li><a href="../../../../../org/apache/commons/math3/random/Well19937a.html" title="class in org.apache.commons.math3.random"><code>Well19937a</code></a></li>
<li><a href="../../../../../org/apache/commons/math3/random/Well19937c.html" title="class in org.apache.commons.math3.random"><code>Well19937c</code></a></li>
<li><a href="../../../../../org/apache/commons/math3/random/Well44497a.html" title="class in org.apache.commons.math3.random"><code>Well44497a</code></a></li>
<li><a href="../../../../../org/apache/commons/math3/random/Well44497b.html" title="class in org.apache.commons.math3.random"><code>Well44497b</code></a></li>
</ul>
</li>
</ul>
</p>
<p>
The JDK provided generator is a simple one that can be used only for very simple needs.
The Mersenne Twister is a fast generator with very good properties well suited for
Monte-Carlo simulation. It is equidistributed for generating vectors up to dimension 623
and has a huge period: 2<sup>19937</sup> - 1 (which is a Mersenne prime). This generator
is described in a paper by Makoto Matsumoto and Takuji Nishimura in 1998: <a
href="http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/ARTICLES/mt.pdf">Mersenne Twister:
A 623-Dimensionally Equidistributed Uniform Pseudo-Random Number Generator</a>, ACM
Transactions on Modeling and Computer Simulation, Vol. 8, No. 1, January 1998, pp 3--30.
The WELL generators are a family of generators with period ranging from 2<sup>512</sup> - 1
to 2<sup>44497</sup> - 1 (this last one is also a Mersenne prime) with even better properties
than Mersenne Twister. These generators are described in a paper by Fran&ccedil;ois Panneton,
Pierre L'Ecuyer and Makoto Matsumoto <a
href="http://www.iro.umontreal.ca/~lecuyer/myftp/papers/wellrng.pdf">Improved Long-Period
Generators Based on Linear Recurrences Modulo 2</a> ACM Transactions on Mathematical Software,
32, 1 (2006). The errata for the paper are in <a
href="http://www.iro.umontreal.ca/~lecuyer/myftp/papers/wellrng-errata.txt">wellrng-errata.txt</a>.
</p>
<p>
For simple sampling, any of these generators is sufficient. For Monte-Carlo simulations the
JDK generator does not have any of the good mathematical properties of the other generators,
so it should be avoided. The Mersenne twister and WELL generators have equidistribution properties
proven according to their bits pool size which is directly linked to their period (all of them
have maximal period, i.e. a generator with size n pool has a period 2<sup>n</sup>-1). They also
have equidistribution properties for 32 bits blocks up to s/32 dimension where s is their pool size.
So WELL19937c for exemple is equidistributed up to dimension 623 (19937/32). This means a Monte-Carlo
simulation generating a vector of n variables at each iteration has some guarantees on the properties
of the vector as long as its dimension does not exceed the limit. However, since we use bits from two
successive 32 bits generated integers to create one double, this limit is smaller when the variables are
of type double. so for Monte-Carlo simulation where less the 16 doubles are generated at each round,
WELL1024 may be sufficient. If a larger number of doubles are needed a generator with a larger pool
would be useful.
</p>
<p>
The WELL generators are more modern then MersenneTwister (the paper describing than has been published
in 2006 instead of 1998) and fix some of its (few) drawbacks. If initialization array contains many
zero bits, MersenneTwister may take a very long time (several hundreds of thousands of iterations to
reach a steady state with a balanced number of zero and one in its bits pool). So the WELL generators
are better to <i>escape zeroland</i> as explained by the WELL generators creators. The Well19937a and
Well44497a generator are not maximally equidistributed (i.e. there are some dimensions or bits blocks
size for which they are not equidistributed). The Well512a, Well1024a, Well19937c and Well44497b are
maximally equidistributed for blocks size up to 32 bits (they should behave correctly also for double
based on more than 32 bits blocks, but equidistribution is not proven at these blocks sizes).
</p>
<p>
The MersenneTwister generator uses a 624 elements integer array, so it consumes less than 2.5 kilobytes.
The WELL generators use 6 integer arrays with a size equal to the pool size, so for example the
WELL44497b generator uses about 33 kilobytes. This may be important if a very large number of
generator instances were used at the same time.
</p>
<p>
All generators are quite fast. As an example, here are some comparisons, obtained on a 64 bits JVM on a
linux computer with a 2008 processor (AMD phenom Quad 9550 at 2.2 GHz). The generation rate for
MersenneTwister was about 27 millions doubles per second (remember we generate two 32 bits integers for
each double). Generation rates for other PRNG, relative to MersenneTwister:
</p>
<p>
<table border="1" align="center">
<tr BGCOLOR="#CCCCFF"><td colspan="2"><font size="+2">Example of performances</font></td></tr>
<tr BGCOLOR="#EEEEFF"><font size="+1"><td>Name</td><td>generation rate (relative to MersenneTwister)</td></font></tr>
<tr><td><a href="../../../../../org/apache/commons/math3/random/MersenneTwister.html" title="class in org.apache.commons.math3.random"><code>MersenneTwister</code></a></td><td>1</td></tr>
<tr><td><a href="../../../../../org/apache/commons/math3/random/JDKRandomGenerator.html" title="class in org.apache.commons.math3.random"><code>JDKRandomGenerator</code></a></td><td>between 0.96 and 1.16</td></tr>
<tr><td><a href="../../../../../org/apache/commons/math3/random/Well512a.html" title="class in org.apache.commons.math3.random"><code>Well512a</code></a></td><td>between 0.85 and 0.88</td></tr>
<tr><td><a href="../../../../../org/apache/commons/math3/random/Well1024a.html" title="class in org.apache.commons.math3.random"><code>Well1024a</code></a></td><td>between 0.63 and 0.73</td></tr>
<tr><td><a href="../../../../../org/apache/commons/math3/random/Well19937a.html" title="class in org.apache.commons.math3.random"><code>Well19937a</code></a></td><td>between 0.70 and 0.71</td></tr>
<tr><td><a href="../../../../../org/apache/commons/math3/random/Well19937c.html" title="class in org.apache.commons.math3.random"><code>Well19937c</code></a></td><td>between 0.57 and 0.71</td></tr>
<tr><td><a href="../../../../../org/apache/commons/math3/random/Well44497a.html" title="class in org.apache.commons.math3.random"><code>Well44497a</code></a></td><td>between 0.69 and 0.71</td></tr>
<tr><td><a href="../../../../../org/apache/commons/math3/random/Well44497b.html" title="class in org.apache.commons.math3.random"><code>Well44497b</code></a></td><td>between 0.65 and 0.71</td></tr>
</table>
</p>
<p>
So for most simulation problems, the better generators like <a href="../../../../../org/apache/commons/math3/random/Well19937c.html" title="class in org.apache.commons.math3.random"><code>Well19937c</code></a> and <a href="../../../../../org/apache/commons/math3/random/Well44497b.html" title="class in org.apache.commons.math3.random"><code>Well44497b</code></a> are probably very good choices.
</p>
<p>
Note that <em>none</em> of these generators are suitable for cryptography. They are devoted
to simulation, and to generate very long series with strong properties on the series as a whole
(equidistribution, no correlation ...). They do not attempt to create small series but with
very strong properties of unpredictability as needed in cryptography.
</p></div>
</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!-- -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li class="navBarCell1Rev">Package</li>
<li>Class</li>
<li><a href="package-use.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><em><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script></em></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/commons/math3/primes/package-summary.html">Prev Package</a></li>
<li><a href="../../../../../org/apache/commons/math3/special/package-summary.html">Next Package</a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/commons/math3/random/package-summary.html" target="_top">Frames</a></li>
<li><a href="package-summary.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip-navbar_bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2003&#x2013;2014 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>