825 lines
51 KiB
HTML
825 lines
51 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||
<title>PRNG Protocol Reference</title>
|
||
<link rel="stylesheet" type="text/css" href="../css/highlight.css">
|
||
<link rel="stylesheet" type="text/css" href="../css/jazzy.css">
|
||
<script src="../js/jquery.min.js" defer></script>
|
||
<script src="../js/jazzy.js" defer></script>
|
||
|
||
</head>
|
||
<body>
|
||
<a name="//apple_ref/swift/Protocol/PRNG" class="dashAnchor"></a>
|
||
<a title="PRNG Protocol Reference"></a>
|
||
<header>
|
||
<p class="primary">
|
||
<a href="../index.html">NumericAnnex Reference</a>
|
||
(100% documented)
|
||
</p>
|
||
<p>
|
||
<a href="https://github.com/xwu/NumericAnnex">View on GitHub</a>
|
||
</p>
|
||
<p>
|
||
<a href="dash-feed://https%3A%2F%2Fxwu%2Egithub%2Eio%2FNumericAnnex%2Fdocsets%2FNumericAnnex%2Exml">Install in Dash</a>
|
||
</p>
|
||
</header>
|
||
<div class="wrapper">
|
||
<nav>
|
||
<ul>
|
||
<li>
|
||
<p><a href="../Classes.html">Classes</a></p>
|
||
<ul>
|
||
<li>
|
||
<a href="../Classes/Random.html">Random</a>
|
||
</li>
|
||
<li>
|
||
<a href="../Classes/Random/Xoroshiro.html">– Xoroshiro</a>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li>
|
||
<p><a href="../Extensions.html">Extensions</a></p>
|
||
<ul>
|
||
<li>
|
||
<a href="../Extensions/BinaryInteger.html">BinaryInteger</a>
|
||
</li>
|
||
<li>
|
||
<a href="../Extensions/Double.html">Double</a>
|
||
</li>
|
||
<li>
|
||
<a href="../Extensions/Float.html">Float</a>
|
||
</li>
|
||
<li>
|
||
<a href="../Extensions/FloatingPoint.html">FloatingPoint</a>
|
||
</li>
|
||
<li>
|
||
<a href="../Extensions/UnsignedInteger.html">UnsignedInteger</a>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li>
|
||
<p><a href="../Functions.html">Functions</a></p>
|
||
<ul>
|
||
<li>
|
||
<a href="../Functions.html#/s:12NumericAnnex3absAA7ComplexVyxGAeA4RealRzs9DecodableRzs9EncodableRzs33_ExpressibleByBuiltinFloatLiteralRzlF">abs(_:)</a>
|
||
</li>
|
||
<li>
|
||
<a href="../Functions.html#/s:12NumericAnnex3absAA8RationalVyxGAEs9DecodableRzs9EncodableRzs13SignedIntegerRzs021_ExpressibleByBuiltinH7LiteralRzs08UnsignedH09Magnitudes0A0PRpzAkM_AKQZANRSlF">abs(_:)</a>
|
||
</li>
|
||
<li>
|
||
<a href="../Functions.html#/s:12NumericAnnex4ceilAA8RationalVyxGAEs9DecodableRzs9EncodableRzs13SignedIntegerRzs021_ExpressibleByBuiltinH7LiteralRzs08UnsignedH09Magnitudes0A0PRpzAkM_AKQZANRSlF">ceil(_:)</a>
|
||
</li>
|
||
<li>
|
||
<a href="../Functions.html#/s:12NumericAnnex5floorAA8RationalVyxGAEs9DecodableRzs9EncodableRzs13SignedIntegerRzs021_ExpressibleByBuiltinH7LiteralRzs08UnsignedH09Magnitudes0A0PRpzAkM_AKQZANRSlF">floor(_:)</a>
|
||
</li>
|
||
<li>
|
||
<a href="../Functions.html#/s:12NumericAnnex5roundAA8RationalVyxGAEs9DecodableRzs9EncodableRzs13SignedIntegerRzs021_ExpressibleByBuiltinH7LiteralRzs08UnsignedH09Magnitudes0A0PRpzAkM_AKQZANRSlF">round(_:)</a>
|
||
</li>
|
||
<li>
|
||
<a href="../Functions.html#/s:12NumericAnnex4sqrtAA7ComplexVyxGAeA4RealRzs9DecodableRzs9EncodableRzs33_ExpressibleByBuiltinFloatLiteralRzlF">sqrt(_:)</a>
|
||
</li>
|
||
<li>
|
||
<a href="../Functions.html#/s:12NumericAnnex5truncAA8RationalVyxGAEs9DecodableRzs9EncodableRzs13SignedIntegerRzs021_ExpressibleByBuiltinH7LiteralRzs08UnsignedH09Magnitudes0A0PRpzAkM_AKQZANRSlF">trunc(_:)</a>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li>
|
||
<p><a href="../Protocols.html">Protocols</a></p>
|
||
<ul>
|
||
<li>
|
||
<a href="../Protocols/Math.html">Math</a>
|
||
</li>
|
||
<li>
|
||
<a href="../Protocols/PRNG.html">PRNG</a>
|
||
</li>
|
||
<li>
|
||
<a href="../Protocols/Real.html">Real</a>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li>
|
||
<p><a href="../Structs.html">Structs</a></p>
|
||
<ul>
|
||
<li>
|
||
<a href="../Structs/Complex.html">Complex</a>
|
||
</li>
|
||
<li>
|
||
<a href="../Structs/Rational.html">Rational</a>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li>
|
||
<p><a href="../Typealiases.html">Typealiases</a></p>
|
||
<ul>
|
||
<li>
|
||
<a href="../Typealiases.html#/s:12NumericAnnex12RoundingRulea">RoundingRule</a>
|
||
</li>
|
||
<li>
|
||
<a href="../Typealiases.html#/s:12NumericAnnex4Signa">Sign</a>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</nav>
|
||
<article>
|
||
<section>
|
||
<div class="wrapper">
|
||
<div class="overview">
|
||
<h1>PRNG</h1>
|
||
<div class="declaration">
|
||
<div class="language">
|
||
<pre class="highlight"><code><span class="kd">public</span> <span class="kd">protocol</span> <span class="kt">PRNG</span> <span class="p">:</span> <span class="kd">class</span><span class="p">,</span> <span class="kt">IteratorProtocol</span><span class="p">,</span> <span class="kt">Sequence</span>
|
||
<span class="k">where</span> <span class="kt">Element</span> <span class="p">:</span> <span class="kt">FixedWidthInteger</span> <span class="o">&</span> <span class="kt">UnsignedInteger</span><span class="p">,</span>
|
||
<span class="kt">SubSequence</span> <span class="p">:</span> <span class="kt">Sequence</span><span class="p">,</span>
|
||
<span class="kt">Element</span> <span class="o">==</span> <span class="kt">SubSequence</span><span class="o">.</span><span class="kt">Element</span></code></pre>
|
||
|
||
</div>
|
||
</div>
|
||
<p>A pseudo-random number generator (PRNG).</p>
|
||
|
||
<p>Reference types that conform to <code>PRNG</code> are infinite sequences of
|
||
pseudo-random elements. Protocol extension methods iterate over such a
|
||
sequence as necessary to generate pseudo-random values from the desired
|
||
distribution.</p>
|
||
<h2 id='considerations-for-conforming-types' class='heading'>Considerations for Conforming Types</h2>
|
||
|
||
<p>For clarity to end users, custom PRNGs may be implemented in an extension to
|
||
<code><a href="../Classes/Random.html">Random</a></code>. For instance, the <code>xoroshiro128+</code> algorithm is implemented in a
|
||
final class named <code><a href="../Classes/Random/Xoroshiro.html">Random.Xoroshiro</a></code>.</p>
|
||
|
||
<p>The static methods <code>_entropy(_:)</code> and <code>_entropy(_:count:)</code> return
|
||
cryptographically secure random bytes that may be useful for seeding your
|
||
custom PRNG. However, these methods may return <code>nil</code> if the requested number
|
||
of random bytes is not available, and they are not recommended as a routine
|
||
source of random data.</p>
|
||
<h2 id='adding-other-probability-distributions' class='heading'>Adding Other Probability Distributions</h2>
|
||
|
||
<p>Many built-in protocol extension methods make use of the primitive,
|
||
overloaded method <code>_random(_:bitCount:)</code>. You may wish to use the same
|
||
method in new protocol extension methods that return pseudo-random
|
||
values from other probability distributions.</p>
|
||
|
||
<p>The method <code>_random(_:bitCount:)</code> generates uniformly distributed binary
|
||
floating-point values in the half-open range [0, 1) with a precision of
|
||
either <code>bitCount</code> or the significand bit count of the floating-point type,
|
||
whichever is less. Additionally, this method generates uniformly distributed
|
||
unsigned integers in the half-open range [0, 2 ** <em>x</em>), where ** is the
|
||
exponentiation operator and <em>x</em> is the lesser of <code>bitCount</code> and the bit
|
||
width of the integer type.</p>
|
||
|
||
<p>For end users, however, the recommended spelling for a uniformly distributed
|
||
numeric value is <code>uniform()</code>; that method is overloaded to permit custom
|
||
minimum and maximum values for the uniform distribution.</p>
|
||
|
||
</div>
|
||
</div>
|
||
</section>
|
||
<section class="toc">
|
||
<details open>
|
||
<summary>Topics</summary>
|
||
<div class="wrapper">
|
||
<ul>
|
||
<li><a href="#/s:12NumericAnnex4PRNGP5State">State</a></li>
|
||
<li><a href="#/s:12NumericAnnex4PRNGP5state5StateQzv">state</a></li>
|
||
<li><a href="#/s:12NumericAnnex4PRNGPx5StateQz5state_tcfc">init(state:)</a></li>
|
||
<li><a href="#/s:12NumericAnnex4PRNGPxSgycfc">init()</a></li>
|
||
<li><a href="#/s:12NumericAnnex4PRNGP3max7ElementQzvZ">max</a></li>
|
||
<li><a href="#/s:12NumericAnnex4PRNGP3min7ElementQzvZ">min</a></li>
|
||
</ul>
|
||
<ul>
|
||
<li><a href="#/s:12NumericAnnex4PRNGPAAE15_randomBitWidthSivZ">_randomBitWidth</a></li>
|
||
<li><a href="#/s:12NumericAnnex4PRNGPAAE8_entropyqd__Sgqd__ms17FixedWidthIntegerRd__s08UnsignedG0Rd__lFZ">_entropy(_:)</a></li>
|
||
<li><a href="#/s:12NumericAnnex4PRNGPAAE8_entropySayqd__GSgqd__m_Si5countts17FixedWidthIntegerRd__s08UnsignedH0Rd__lFZ">_entropy(_:count:)</a></li>
|
||
</ul>
|
||
<ul>
|
||
<li><a href="#/s:12NumericAnnex4PRNGPAAE7_randomqd__qd__m_Si8bitCountts17FixedWidthIntegerRd__s08UnsignedI0Rd__lF">_random(_:bitCount:)</a></li>
|
||
<li><a href="#/s:12NumericAnnex4PRNGPAAE7uniformqd__qd__m_qd__1aqd__1bts17FixedWidthIntegerRd__s08UnsignedG0Rd__lF">uniform(_:a:b:)</a></li>
|
||
<li><a href="#/s:12NumericAnnex4PRNGPAAE7uniformqd__qd__ms17FixedWidthIntegerRd__s08UnsignedG0Rd__lF">uniform(_:)</a></li>
|
||
<li><a href="#/s:12NumericAnnex4PRNGPAAE7uniforms14UnfoldSequenceVyqd__SiGqd__m_qd__1aqd__1bSi5countts17FixedWidthIntegerRd__s08UnsignedJ0Rd__lF">uniform(_:a:b:count:)</a></li>
|
||
<li><a href="#/s:12NumericAnnex4PRNGPAAE7uniforms14UnfoldSequenceVyqd__SiGqd__m_Si5countts17FixedWidthIntegerRd__s08UnsignedJ0Rd__lF">uniform(_:count:)</a></li>
|
||
<li><a href="#/s:12NumericAnnex4PRNGPAAE7uniformqd__qd__m_qd__1aqd__1bts17FixedWidthIntegerRd__s06SignedG0Rd__sAG9Magnitudes0A0PRpd__s08UnsignedG0ALRQlF">uniform(_:a:b:)</a></li>
|
||
<li><a href="#/s:12NumericAnnex4PRNGPAAE7uniformqd__qd__ms17FixedWidthIntegerRd__s06SignedG0Rd__sAE9Magnitudes0A0PRpd__s08UnsignedG0AJRQlF">uniform(_:)</a></li>
|
||
<li><a href="#/s:12NumericAnnex4PRNGPAAE7uniforms14UnfoldSequenceVyqd__SiGqd__m_qd__1aqd__1bSi5countts17FixedWidthIntegerRd__s06SignedJ0Rd__sAK9Magnitudes0A0PRpd__s08UnsignedJ0APRQlF">uniform(_:a:b:count:)</a></li>
|
||
<li><a href="#/s:12NumericAnnex4PRNGPAAE7uniforms14UnfoldSequenceVyqd__SiGqd__m_Si5countts17FixedWidthIntegerRd__s06SignedJ0Rd__sAI9Magnitudes0A0PRpd__s08UnsignedJ0ANRQlF">uniform(_:count:)</a></li>
|
||
</ul>
|
||
<ul>
|
||
<li><a href="#/s:12NumericAnnex4PRNGPA2aBRzs6UInt64V7ElementRtzlE7_randomqd__qd__m_Si8bitCountts19BinaryFloatingPointRd__lF">_random(_:bitCount:)</a></li>
|
||
<li><a href="#/s:12NumericAnnex4PRNGPA2aBRzs6UInt64V7ElementRtzlE7uniformqd__qd__m_qd__1aqd__1bts19BinaryFloatingPointRd__lF">uniform(_:a:b:)</a></li>
|
||
<li><a href="#/s:12NumericAnnex4PRNGPA2aBRzs6UInt64V7ElementRtzlE7uniformqd__qd__ms19BinaryFloatingPointRd__lF">uniform(_:)</a></li>
|
||
<li><a href="#/s:12NumericAnnex4PRNGPA2aBRzs6UInt64V7ElementRtzlE7uniforms14UnfoldSequenceVyqd__SiGqd__m_qd__1aqd__1bSi5countts19BinaryFloatingPointRd__lF">uniform(_:a:b:count:)</a></li>
|
||
<li><a href="#/s:12NumericAnnex4PRNGPA2aBRzs6UInt64V7ElementRtzlE7uniforms14UnfoldSequenceVyqd__SiGqd__m_Si5countts19BinaryFloatingPointRd__lF">uniform(_:count:)</a></li>
|
||
</ul>
|
||
</div>
|
||
</details>
|
||
</section>
|
||
<section>
|
||
<div class="wrapper">
|
||
<div class="group">
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<a name="/s:12NumericAnnex4PRNGP5State"></a>
|
||
<a name="//apple_ref/swift/Alias/State" class="dashAnchor"></a>
|
||
<h4>
|
||
<code>State</code>
|
||
</h4>
|
||
</div>
|
||
<div class="abstract">
|
||
<p>A type that can represent the internal state of the pseudo-random number
|
||
generator.</p>
|
||
|
||
</div>
|
||
<div class="declaration">
|
||
<h5>Declaration</h5>
|
||
<div class="language">
|
||
<p class="aside-title">Swift</p>
|
||
<pre class="highlight"><code><span class="k">associatedtype</span> <span class="kt">State</span></code></pre>
|
||
|
||
</div>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a name="/s:12NumericAnnex4PRNGP5state5StateQzv"></a>
|
||
<a name="//apple_ref/swift/Property/state" class="dashAnchor"></a>
|
||
<h4>
|
||
<code>state</code>
|
||
</h4>
|
||
</div>
|
||
<div class="abstract">
|
||
<p>The internal state of the pseudo-random number generator.</p>
|
||
|
||
</div>
|
||
<div class="declaration">
|
||
<h5>Declaration</h5>
|
||
<div class="language">
|
||
<p class="aside-title">Swift</p>
|
||
<pre class="highlight"><code><span class="k">var</span> <span class="nv">state</span><span class="p">:</span> <span class="kt"><a href="../Protocols/PRNG.html#/s:12NumericAnnex4PRNGP5State">State</a></span></code></pre>
|
||
|
||
</div>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a name="/s:12NumericAnnex4PRNGPx5StateQz5state_tcfc"></a>
|
||
<a name="//apple_ref/swift/Method/init(state:)" class="dashAnchor"></a>
|
||
<h4>
|
||
<code>init(state:)</code>
|
||
</h4>
|
||
</div>
|
||
<div class="abstract">
|
||
<p>Creates a pseudo-random number generator with the given internal state.</p>
|
||
|
||
</div>
|
||
<div class="declaration">
|
||
<h5>Declaration</h5>
|
||
<div class="language">
|
||
<p class="aside-title">Swift</p>
|
||
<pre class="highlight"><code><span class="nf">init</span><span class="p">(</span><span class="nv">state</span><span class="p">:</span> <span class="kt"><a href="../Protocols/PRNG.html#/s:12NumericAnnex4PRNGP5State">State</a></span><span class="p">)</span></code></pre>
|
||
|
||
</div>
|
||
</div>
|
||
<div class="parameters">
|
||
<h5>Parameters</h5>
|
||
<dl>
|
||
<dt><code>state</code></dt>
|
||
<dd>
|
||
<p>The value to be used as the generator’s internal state.</p>
|
||
</dd>
|
||
</dl>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a name="/s:12NumericAnnex4PRNGPxSgycfc"></a>
|
||
<a name="//apple_ref/swift/Method/init()" class="dashAnchor"></a>
|
||
<h4>
|
||
<code>init()</code>
|
||
</h4>
|
||
</div>
|
||
<div class="abstract">
|
||
<p>Creates a pseudo-random number generator with an internal state seeded
|
||
using cryptographically secure random bytes.</p>
|
||
|
||
<p>If cryptographically secure random bytes are unavailable, the result is
|
||
<code>nil</code>.</p>
|
||
|
||
</div>
|
||
<div class="declaration">
|
||
<h5>Declaration</h5>
|
||
<div class="language">
|
||
<p class="aside-title">Swift</p>
|
||
<pre class="highlight"><code><span class="nf">init</span><span class="p">?()</span></code></pre>
|
||
|
||
</div>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a name="/s:12NumericAnnex4PRNGP3max7ElementQzvZ"></a>
|
||
<a name="//apple_ref/swift/Variable/max" class="dashAnchor"></a>
|
||
<h4>
|
||
<code>max</code>
|
||
<span class="declaration-note">Default implementation</span>
|
||
</h4>
|
||
</div>
|
||
<div class="abstract">
|
||
<p>The maximum value that may be generated by the pseudo-random number
|
||
generator.</p>
|
||
|
||
</div>
|
||
<div class="declaration">
|
||
<h5>Declaration</h5>
|
||
<div class="language">
|
||
<p class="aside-title">Swift</p>
|
||
<pre class="highlight"><code><span class="kd">static</span> <span class="k">var</span> <span class="nv">max</span><span class="p">:</span> <span class="kt">Element</span></code></pre>
|
||
|
||
</div>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a name="/s:12NumericAnnex4PRNGP3min7ElementQzvZ"></a>
|
||
<a name="//apple_ref/swift/Variable/min" class="dashAnchor"></a>
|
||
<h4>
|
||
<code>min</code>
|
||
<span class="declaration-note">Default implementation</span>
|
||
</h4>
|
||
</div>
|
||
<div class="abstract">
|
||
<p>The minimum value that may be generated by the pseudo-random number
|
||
generator.</p>
|
||
|
||
</div>
|
||
<div class="declaration">
|
||
<h5>Declaration</h5>
|
||
<div class="language">
|
||
<p class="aside-title">Swift</p>
|
||
<pre class="highlight"><code><span class="kd">static</span> <span class="k">var</span> <span class="nv">min</span><span class="p">:</span> <span class="kt">Element</span></code></pre>
|
||
|
||
</div>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div class="group">
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<a name="/s:12NumericAnnex4PRNGPAAE15_randomBitWidthSivZ"></a>
|
||
<a name="//apple_ref/swift/Variable/_randomBitWidth" class="dashAnchor"></a>
|
||
<h4>
|
||
<code>_randomBitWidth</code>
|
||
<span class="declaration-note">Extension method</span>
|
||
</h4>
|
||
</div>
|
||
<div class="abstract">
|
||
<p>The number of pseudo-random bits available from a value generated by the
|
||
pseudo-random number generator.</p>
|
||
|
||
</div>
|
||
<div class="declaration">
|
||
<h5>Declaration</h5>
|
||
<div class="language">
|
||
<p class="aside-title">Swift</p>
|
||
<pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="k">var</span> <span class="nv">_randomBitWidth</span><span class="p">:</span> <span class="kt">Int</span></code></pre>
|
||
|
||
</div>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a name="/s:12NumericAnnex4PRNGPAAE8_entropyqd__Sgqd__ms17FixedWidthIntegerRd__s08UnsignedG0Rd__lFZ"></a>
|
||
<a name="//apple_ref/swift/Method/_entropy(_:)" class="dashAnchor"></a>
|
||
<h4>
|
||
<code>_entropy(_:)</code>
|
||
<span class="declaration-note">Extension method</span>
|
||
</h4>
|
||
</div>
|
||
<div class="abstract">
|
||
<p>Returns a value filled with data from a source of cryptographically secure
|
||
random bytes, or <code>nil</code> if a sufficient number of cryptographically secure
|
||
random bytes is unavailable.</p>
|
||
|
||
</div>
|
||
<div class="declaration">
|
||
<h5>Declaration</h5>
|
||
<div class="language">
|
||
<p class="aside-title">Swift</p>
|
||
<pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="n">_entropy</span><span class="o"><</span>
|
||
<span class="kt">T</span> <span class="p">:</span> <span class="kt">FixedWidthInteger</span> <span class="o">&</span> <span class="kt">UnsignedInteger</span>
|
||
<span class="o">></span><span class="p">(</span><span class="nv">_</span><span class="p">:</span> <span class="kt">T</span><span class="o">.</span><span class="k">Type</span> <span class="o">=</span> <span class="kt">T</span><span class="o">.</span><span class="k">self</span><span class="p">)</span> <span class="o">-></span> <span class="kt">T</span><span class="p">?</span></code></pre>
|
||
|
||
</div>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a name="/s:12NumericAnnex4PRNGPAAE8_entropySayqd__GSgqd__m_Si5countts17FixedWidthIntegerRd__s08UnsignedH0Rd__lFZ"></a>
|
||
<a name="//apple_ref/swift/Method/_entropy(_:count:)" class="dashAnchor"></a>
|
||
<h4>
|
||
<code>_entropy(_:count:)</code>
|
||
<span class="declaration-note">Extension method</span>
|
||
</h4>
|
||
</div>
|
||
<div class="abstract">
|
||
<p>Returns an array of <code>count</code> values filled with data from a source of
|
||
cryptographically secure random bytes, or <code>nil</code> if a sufficient number of
|
||
cryptographically secure random bytes is unavailable.</p>
|
||
|
||
</div>
|
||
<div class="declaration">
|
||
<h5>Declaration</h5>
|
||
<div class="language">
|
||
<p class="aside-title">Swift</p>
|
||
<pre class="highlight"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="n">_entropy</span><span class="o"><</span>
|
||
<span class="kt">T</span> <span class="p">:</span> <span class="kt">FixedWidthInteger</span> <span class="o">&</span> <span class="kt">UnsignedInteger</span>
|
||
<span class="o">></span><span class="p">(</span><span class="nv">_</span><span class="p">:</span> <span class="kt">T</span><span class="o">.</span><span class="k">Type</span> <span class="o">=</span> <span class="kt">T</span><span class="o">.</span><span class="k">self</span><span class="p">,</span> <span class="nv">count</span><span class="p">:</span> <span class="kt">Int</span><span class="p">)</span> <span class="o">-></span> <span class="p">[</span><span class="kt">T</span><span class="p">]?</span></code></pre>
|
||
|
||
</div>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div class="group">
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<a name="/s:12NumericAnnex4PRNGPAAE7_randomqd__qd__m_Si8bitCountts17FixedWidthIntegerRd__s08UnsignedI0Rd__lF"></a>
|
||
<a name="//apple_ref/swift/Method/_random(_:bitCount:)" class="dashAnchor"></a>
|
||
<h4>
|
||
<code>_random(_:bitCount:)</code>
|
||
<span class="declaration-note">Extension method</span>
|
||
</h4>
|
||
</div>
|
||
<div class="abstract">
|
||
<p>Generates a pseudo-random unsigned integer of type <code>T</code> in the range from 0
|
||
to <code>2 ** min(bitCount, T.bitWidth)</code> (exclusive), where <code>**</code> is the
|
||
exponentiation operator.</p>
|
||
|
||
</div>
|
||
<div class="declaration">
|
||
<h5>Declaration</h5>
|
||
<div class="language">
|
||
<p class="aside-title">Swift</p>
|
||
<pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="n">_random</span><span class="o"><</span><span class="kt">T</span> <span class="p">:</span> <span class="kt">FixedWidthInteger</span> <span class="o">&</span> <span class="kt">UnsignedInteger</span><span class="o">></span><span class="p">(</span>
|
||
<span class="nv">_</span><span class="p">:</span> <span class="kt">T</span><span class="o">.</span><span class="k">Type</span> <span class="o">=</span> <span class="kt">T</span><span class="o">.</span><span class="k">self</span><span class="p">,</span> <span class="nv">bitCount</span><span class="p">:</span> <span class="kt">Int</span> <span class="o">=</span> <span class="kt">T</span><span class="o">.</span><span class="n">bitWidth</span>
|
||
<span class="p">)</span> <span class="o">-></span> <span class="kt">T</span></code></pre>
|
||
|
||
</div>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a name="/s:12NumericAnnex4PRNGPAAE7uniformqd__qd__m_qd__1aqd__1bts17FixedWidthIntegerRd__s08UnsignedG0Rd__lF"></a>
|
||
<a name="//apple_ref/swift/Method/uniform(_:a:b:)" class="dashAnchor"></a>
|
||
<h4>
|
||
<code>uniform(_:a:b:)</code>
|
||
<span class="declaration-note">Extension method</span>
|
||
</h4>
|
||
</div>
|
||
<div class="abstract">
|
||
<p>Generates a pseudo-random unsigned integer of type <code>T</code> in the range from
|
||
<code>a</code> through <code>b</code> (inclusive) from the discrete uniform distribution.</p>
|
||
|
||
</div>
|
||
<div class="declaration">
|
||
<h5>Declaration</h5>
|
||
<div class="language">
|
||
<p class="aside-title">Swift</p>
|
||
<pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="n">uniform</span><span class="o"><</span><span class="kt">T</span> <span class="p">:</span> <span class="kt">FixedWidthInteger</span> <span class="o">&</span> <span class="kt">UnsignedInteger</span><span class="o">></span><span class="p">(</span>
|
||
<span class="nv">_</span><span class="p">:</span> <span class="kt">T</span><span class="o">.</span><span class="k">Type</span> <span class="o">=</span> <span class="kt">T</span><span class="o">.</span><span class="k">self</span><span class="p">,</span> <span class="nv">a</span><span class="p">:</span> <span class="kt">T</span><span class="p">,</span> <span class="nv">b</span><span class="p">:</span> <span class="kt">T</span>
|
||
<span class="p">)</span> <span class="o">-></span> <span class="kt">T</span></code></pre>
|
||
|
||
</div>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a name="/s:12NumericAnnex4PRNGPAAE7uniformqd__qd__ms17FixedWidthIntegerRd__s08UnsignedG0Rd__lF"></a>
|
||
<a name="//apple_ref/swift/Method/uniform(_:)" class="dashAnchor"></a>
|
||
<h4>
|
||
<code>uniform(_:)</code>
|
||
<span class="declaration-note">Extension method</span>
|
||
</h4>
|
||
</div>
|
||
<div class="abstract">
|
||
<p>Generates a pseudo-random unsigned integer of type <code>T</code> in the range from
|
||
<code>T.min</code> through <code>T.max</code> (inclusive) from the discrete uniform
|
||
distribution.</p>
|
||
|
||
</div>
|
||
<div class="declaration">
|
||
<h5>Declaration</h5>
|
||
<div class="language">
|
||
<p class="aside-title">Swift</p>
|
||
<pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="n">uniform</span><span class="o"><</span><span class="kt">T</span> <span class="p">:</span> <span class="kt">FixedWidthInteger</span> <span class="o">&</span> <span class="kt">UnsignedInteger</span><span class="o">></span><span class="p">(</span>
|
||
<span class="nv">_</span><span class="p">:</span> <span class="kt">T</span><span class="o">.</span><span class="k">Type</span> <span class="o">=</span> <span class="kt">T</span><span class="o">.</span><span class="k">self</span>
|
||
<span class="p">)</span> <span class="o">-></span> <span class="kt">T</span></code></pre>
|
||
|
||
</div>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a name="/s:12NumericAnnex4PRNGPAAE7uniforms14UnfoldSequenceVyqd__SiGqd__m_qd__1aqd__1bSi5countts17FixedWidthIntegerRd__s08UnsignedJ0Rd__lF"></a>
|
||
<a name="//apple_ref/swift/Method/uniform(_:a:b:count:)" class="dashAnchor"></a>
|
||
<h4>
|
||
<code>uniform(_:a:b:count:)</code>
|
||
<span class="declaration-note">Extension method</span>
|
||
</h4>
|
||
</div>
|
||
<div class="abstract">
|
||
<p>Generates a sequence of <code>count</code> pseudo-random unsigned integers of type
|
||
<code>T</code> in the range from <code>a</code> through <code>b</code> (inclusive) from the discrete
|
||
uniform distribution.</p>
|
||
|
||
</div>
|
||
<div class="declaration">
|
||
<h5>Declaration</h5>
|
||
<div class="language">
|
||
<p class="aside-title">Swift</p>
|
||
<pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="n">uniform</span><span class="o"><</span><span class="kt">T</span> <span class="p">:</span> <span class="kt">FixedWidthInteger</span> <span class="o">&</span> <span class="kt">UnsignedInteger</span><span class="o">></span><span class="p">(</span>
|
||
<span class="nv">_</span><span class="p">:</span> <span class="kt">T</span><span class="o">.</span><span class="k">Type</span> <span class="o">=</span> <span class="kt">T</span><span class="o">.</span><span class="k">self</span><span class="p">,</span> <span class="nv">a</span><span class="p">:</span> <span class="kt">T</span><span class="p">,</span> <span class="nv">b</span><span class="p">:</span> <span class="kt">T</span><span class="p">,</span> <span class="nv">count</span><span class="p">:</span> <span class="kt">Int</span>
|
||
<span class="p">)</span> <span class="o">-></span> <span class="kt">UnfoldSequence</span><span class="o"><</span><span class="kt">T</span><span class="p">,</span> <span class="kt">Int</span><span class="o">></span></code></pre>
|
||
|
||
</div>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a name="/s:12NumericAnnex4PRNGPAAE7uniforms14UnfoldSequenceVyqd__SiGqd__m_Si5countts17FixedWidthIntegerRd__s08UnsignedJ0Rd__lF"></a>
|
||
<a name="//apple_ref/swift/Method/uniform(_:count:)" class="dashAnchor"></a>
|
||
<h4>
|
||
<code>uniform(_:count:)</code>
|
||
<span class="declaration-note">Extension method</span>
|
||
</h4>
|
||
</div>
|
||
<div class="abstract">
|
||
<p>Generates a sequence of <code>count</code> pseudo-random unsigned integers of type
|
||
<code>T</code> in the range from <code>T.min</code> through <code>T.max</code> (inclusive) from the
|
||
discrete uniform distribution.</p>
|
||
|
||
</div>
|
||
<div class="declaration">
|
||
<h5>Declaration</h5>
|
||
<div class="language">
|
||
<p class="aside-title">Swift</p>
|
||
<pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="n">uniform</span><span class="o"><</span><span class="kt">T</span> <span class="p">:</span> <span class="kt">FixedWidthInteger</span> <span class="o">&</span> <span class="kt">UnsignedInteger</span><span class="o">></span><span class="p">(</span>
|
||
<span class="nv">_</span><span class="p">:</span> <span class="kt">T</span><span class="o">.</span><span class="k">Type</span> <span class="o">=</span> <span class="kt">T</span><span class="o">.</span><span class="k">self</span><span class="p">,</span> <span class="nv">count</span><span class="p">:</span> <span class="kt">Int</span>
|
||
<span class="p">)</span> <span class="o">-></span> <span class="kt">UnfoldSequence</span><span class="o"><</span><span class="kt">T</span><span class="p">,</span> <span class="kt">Int</span><span class="o">></span></code></pre>
|
||
|
||
</div>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a name="/s:12NumericAnnex4PRNGPAAE7uniformqd__qd__m_qd__1aqd__1bts17FixedWidthIntegerRd__s06SignedG0Rd__sAG9Magnitudes0A0PRpd__s08UnsignedG0ALRQlF"></a>
|
||
<a name="//apple_ref/swift/Method/uniform(_:a:b:)" class="dashAnchor"></a>
|
||
<h4>
|
||
<code>uniform(_:a:b:)</code>
|
||
<span class="declaration-note">Extension method</span>
|
||
</h4>
|
||
</div>
|
||
<div class="abstract">
|
||
<p>Generates a pseudo-random signed integer of type <code>T</code> in the range from <code>a</code>
|
||
through <code>b</code> (inclusive) from the discrete uniform distribution.</p>
|
||
|
||
</div>
|
||
<div class="declaration">
|
||
<h5>Declaration</h5>
|
||
<div class="language">
|
||
<p class="aside-title">Swift</p>
|
||
<pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="n">uniform</span><span class="o"><</span><span class="kt">T</span> <span class="p">:</span> <span class="kt">FixedWidthInteger</span> <span class="o">&</span> <span class="kt">SignedInteger</span><span class="o">></span><span class="p">(</span>
|
||
<span class="nv">_</span><span class="p">:</span> <span class="kt">T</span><span class="o">.</span><span class="k">Type</span> <span class="o">=</span> <span class="kt">T</span><span class="o">.</span><span class="k">self</span><span class="p">,</span> <span class="nv">a</span><span class="p">:</span> <span class="kt">T</span><span class="p">,</span> <span class="nv">b</span><span class="p">:</span> <span class="kt">T</span>
|
||
<span class="p">)</span> <span class="o">-></span> <span class="kt">T</span> <span class="k">where</span> <span class="kt">T</span><span class="o">.</span><span class="kt">Magnitude</span> <span class="p">:</span> <span class="kt">FixedWidthInteger</span> <span class="o">&</span> <span class="kt">UnsignedInteger</span></code></pre>
|
||
|
||
</div>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a name="/s:12NumericAnnex4PRNGPAAE7uniformqd__qd__ms17FixedWidthIntegerRd__s06SignedG0Rd__sAE9Magnitudes0A0PRpd__s08UnsignedG0AJRQlF"></a>
|
||
<a name="//apple_ref/swift/Method/uniform(_:)" class="dashAnchor"></a>
|
||
<h4>
|
||
<code>uniform(_:)</code>
|
||
<span class="declaration-note">Extension method</span>
|
||
</h4>
|
||
</div>
|
||
<div class="abstract">
|
||
<p>Generates a pseudo-random signed integer of type <code>T</code> in the range from
|
||
<code>T.min</code> through <code>T.max</code> (inclusive) from the discrete uniform
|
||
distribution.</p>
|
||
|
||
</div>
|
||
<div class="declaration">
|
||
<h5>Declaration</h5>
|
||
<div class="language">
|
||
<p class="aside-title">Swift</p>
|
||
<pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="n">uniform</span><span class="o"><</span><span class="kt">T</span> <span class="p">:</span> <span class="kt">FixedWidthInteger</span> <span class="o">&</span> <span class="kt">SignedInteger</span><span class="o">></span><span class="p">(</span>
|
||
<span class="nv">_</span><span class="p">:</span> <span class="kt">T</span><span class="o">.</span><span class="k">Type</span> <span class="o">=</span> <span class="kt">T</span><span class="o">.</span><span class="k">self</span>
|
||
<span class="p">)</span> <span class="o">-></span> <span class="kt">T</span> <span class="k">where</span> <span class="kt">T</span><span class="o">.</span><span class="kt">Magnitude</span> <span class="p">:</span> <span class="kt">FixedWidthInteger</span> <span class="o">&</span> <span class="kt">UnsignedInteger</span></code></pre>
|
||
|
||
</div>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a name="/s:12NumericAnnex4PRNGPAAE7uniforms14UnfoldSequenceVyqd__SiGqd__m_qd__1aqd__1bSi5countts17FixedWidthIntegerRd__s06SignedJ0Rd__sAK9Magnitudes0A0PRpd__s08UnsignedJ0APRQlF"></a>
|
||
<a name="//apple_ref/swift/Method/uniform(_:a:b:count:)" class="dashAnchor"></a>
|
||
<h4>
|
||
<code>uniform(_:a:b:count:)</code>
|
||
<span class="declaration-note">Extension method</span>
|
||
</h4>
|
||
</div>
|
||
<div class="abstract">
|
||
<p>Generates a sequence of <code>count</code> pseudo-random signed integers of type <code>T</code>
|
||
in the range from <code>a</code> through <code>b</code> (inclusive) from the discrete uniform
|
||
distribution.</p>
|
||
|
||
</div>
|
||
<div class="declaration">
|
||
<h5>Declaration</h5>
|
||
<div class="language">
|
||
<p class="aside-title">Swift</p>
|
||
<pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="n">uniform</span><span class="o"><</span><span class="kt">T</span> <span class="p">:</span> <span class="kt">FixedWidthInteger</span> <span class="o">&</span> <span class="kt">SignedInteger</span><span class="o">></span><span class="p">(</span>
|
||
<span class="nv">_</span><span class="p">:</span> <span class="kt">T</span><span class="o">.</span><span class="k">Type</span> <span class="o">=</span> <span class="kt">T</span><span class="o">.</span><span class="k">self</span><span class="p">,</span> <span class="nv">a</span><span class="p">:</span> <span class="kt">T</span><span class="p">,</span> <span class="nv">b</span><span class="p">:</span> <span class="kt">T</span><span class="p">,</span> <span class="nv">count</span><span class="p">:</span> <span class="kt">Int</span>
|
||
<span class="p">)</span> <span class="o">-></span> <span class="kt">UnfoldSequence</span><span class="o"><</span><span class="kt">T</span><span class="p">,</span> <span class="kt">Int</span><span class="o">></span>
|
||
<span class="k">where</span> <span class="kt">T</span><span class="o">.</span><span class="kt">Magnitude</span> <span class="p">:</span> <span class="kt">FixedWidthInteger</span> <span class="o">&</span> <span class="kt">UnsignedInteger</span></code></pre>
|
||
|
||
</div>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a name="/s:12NumericAnnex4PRNGPAAE7uniforms14UnfoldSequenceVyqd__SiGqd__m_Si5countts17FixedWidthIntegerRd__s06SignedJ0Rd__sAI9Magnitudes0A0PRpd__s08UnsignedJ0ANRQlF"></a>
|
||
<a name="//apple_ref/swift/Method/uniform(_:count:)" class="dashAnchor"></a>
|
||
<h4>
|
||
<code>uniform(_:count:)</code>
|
||
<span class="declaration-note">Extension method</span>
|
||
</h4>
|
||
</div>
|
||
<div class="abstract">
|
||
<p>Generates a sequence of <code>count</code> pseudo-random signed integers of type <code>T</code>
|
||
in the range from <code>T.min</code> through <code>T.max</code> (inclusive) from the discrete
|
||
uniform distribution.</p>
|
||
|
||
</div>
|
||
<div class="declaration">
|
||
<h5>Declaration</h5>
|
||
<div class="language">
|
||
<p class="aside-title">Swift</p>
|
||
<pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="n">uniform</span><span class="o"><</span><span class="kt">T</span> <span class="p">:</span> <span class="kt">FixedWidthInteger</span> <span class="o">&</span> <span class="kt">SignedInteger</span><span class="o">></span><span class="p">(</span>
|
||
<span class="nv">_</span><span class="p">:</span> <span class="kt">T</span><span class="o">.</span><span class="k">Type</span> <span class="o">=</span> <span class="kt">T</span><span class="o">.</span><span class="k">self</span><span class="p">,</span> <span class="nv">count</span><span class="p">:</span> <span class="kt">Int</span>
|
||
<span class="p">)</span> <span class="o">-></span> <span class="kt">UnfoldSequence</span><span class="o"><</span><span class="kt">T</span><span class="p">,</span> <span class="kt">Int</span><span class="o">></span>
|
||
<span class="k">where</span> <span class="kt">T</span><span class="o">.</span><span class="kt">Magnitude</span> <span class="p">:</span> <span class="kt">FixedWidthInteger</span> <span class="o">&</span> <span class="kt">UnsignedInteger</span></code></pre>
|
||
|
||
</div>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div class="group">
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<a name="/s:12NumericAnnex4PRNGPA2aBRzs6UInt64V7ElementRtzlE7_randomqd__qd__m_Si8bitCountts19BinaryFloatingPointRd__lF"></a>
|
||
<a name="//apple_ref/swift/Method/_random(_:bitCount:)" class="dashAnchor"></a>
|
||
<h4>
|
||
<code>_random(_:bitCount:)</code>
|
||
<span class="declaration-note">Extension method</span>
|
||
</h4>
|
||
</div>
|
||
<div class="abstract">
|
||
<p>Generates a pseudo-random binary floating-point value of type <code>T</code> in the
|
||
range from 0 to 1 (exclusive) with <code>min(bitCount, T.significandBitCount)</code>
|
||
bits of precision.</p>
|
||
|
||
</div>
|
||
<div class="declaration">
|
||
<h5>Declaration</h5>
|
||
<div class="language">
|
||
<p class="aside-title">Swift</p>
|
||
<pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="n">_random</span><span class="o"><</span><span class="kt">T</span> <span class="p">:</span> <span class="kt">BinaryFloatingPoint</span><span class="o">></span><span class="p">(</span>
|
||
<span class="nv">_</span><span class="p">:</span> <span class="kt">T</span><span class="o">.</span><span class="k">Type</span> <span class="o">=</span> <span class="kt">T</span><span class="o">.</span><span class="k">self</span><span class="p">,</span> <span class="nv">bitCount</span><span class="p">:</span> <span class="kt">Int</span> <span class="o">=</span> <span class="kt">T</span><span class="o">.</span><span class="n">significandBitCount</span>
|
||
<span class="p">)</span> <span class="o">-></span> <span class="kt">T</span></code></pre>
|
||
|
||
</div>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a name="/s:12NumericAnnex4PRNGPA2aBRzs6UInt64V7ElementRtzlE7uniformqd__qd__m_qd__1aqd__1bts19BinaryFloatingPointRd__lF"></a>
|
||
<a name="//apple_ref/swift/Method/uniform(_:a:b:)" class="dashAnchor"></a>
|
||
<h4>
|
||
<code>uniform(_:a:b:)</code>
|
||
<span class="declaration-note">Extension method</span>
|
||
</h4>
|
||
</div>
|
||
<div class="abstract">
|
||
<p>Generates a pseudo-random binary floating-point value of type <code>T</code> in the
|
||
range from <code>a</code> to <code>b</code> (exclusive) from the uniform distribution.</p>
|
||
|
||
</div>
|
||
<div class="declaration">
|
||
<h5>Declaration</h5>
|
||
<div class="language">
|
||
<p class="aside-title">Swift</p>
|
||
<pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="n">uniform</span><span class="o"><</span><span class="kt">T</span> <span class="p">:</span> <span class="kt">BinaryFloatingPoint</span><span class="o">></span><span class="p">(</span>
|
||
<span class="nv">_</span><span class="p">:</span> <span class="kt">T</span><span class="o">.</span><span class="k">Type</span> <span class="o">=</span> <span class="kt">T</span><span class="o">.</span><span class="k">self</span><span class="p">,</span> <span class="nv">a</span><span class="p">:</span> <span class="kt">T</span><span class="p">,</span> <span class="nv">b</span><span class="p">:</span> <span class="kt">T</span>
|
||
<span class="p">)</span> <span class="o">-></span> <span class="kt">T</span></code></pre>
|
||
|
||
</div>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a name="/s:12NumericAnnex4PRNGPA2aBRzs6UInt64V7ElementRtzlE7uniformqd__qd__ms19BinaryFloatingPointRd__lF"></a>
|
||
<a name="//apple_ref/swift/Method/uniform(_:)" class="dashAnchor"></a>
|
||
<h4>
|
||
<code>uniform(_:)</code>
|
||
<span class="declaration-note">Extension method</span>
|
||
</h4>
|
||
</div>
|
||
<div class="abstract">
|
||
<p>Generates a pseudo-random binary floating-point value of type <code>T</code> in the
|
||
range from 0 to 1 (exclusive) from the uniform distribution.</p>
|
||
|
||
</div>
|
||
<div class="declaration">
|
||
<h5>Declaration</h5>
|
||
<div class="language">
|
||
<p class="aside-title">Swift</p>
|
||
<pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="n">uniform</span><span class="o"><</span><span class="kt">T</span> <span class="p">:</span> <span class="kt">BinaryFloatingPoint</span><span class="o">></span><span class="p">(</span><span class="nv">_</span><span class="p">:</span> <span class="kt">T</span><span class="o">.</span><span class="k">Type</span> <span class="o">=</span> <span class="kt">T</span><span class="o">.</span><span class="k">self</span><span class="p">)</span> <span class="o">-></span> <span class="kt">T</span></code></pre>
|
||
|
||
</div>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a name="/s:12NumericAnnex4PRNGPA2aBRzs6UInt64V7ElementRtzlE7uniforms14UnfoldSequenceVyqd__SiGqd__m_qd__1aqd__1bSi5countts19BinaryFloatingPointRd__lF"></a>
|
||
<a name="//apple_ref/swift/Method/uniform(_:a:b:count:)" class="dashAnchor"></a>
|
||
<h4>
|
||
<code>uniform(_:a:b:count:)</code>
|
||
<span class="declaration-note">Extension method</span>
|
||
</h4>
|
||
</div>
|
||
<div class="abstract">
|
||
<p>Generates a sequence of <code>count</code> pseudo-random binary floating-point values
|
||
of type <code>T</code> in the range from <code>a</code> to <code>b</code> (exclusive) from the uniform
|
||
distribution.</p>
|
||
|
||
</div>
|
||
<div class="declaration">
|
||
<h5>Declaration</h5>
|
||
<div class="language">
|
||
<p class="aside-title">Swift</p>
|
||
<pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="n">uniform</span><span class="o"><</span><span class="kt">T</span> <span class="p">:</span> <span class="kt">BinaryFloatingPoint</span><span class="o">></span><span class="p">(</span>
|
||
<span class="nv">_</span><span class="p">:</span> <span class="kt">T</span><span class="o">.</span><span class="k">Type</span> <span class="o">=</span> <span class="kt">T</span><span class="o">.</span><span class="k">self</span><span class="p">,</span> <span class="nv">a</span><span class="p">:</span> <span class="kt">T</span><span class="p">,</span> <span class="nv">b</span><span class="p">:</span> <span class="kt">T</span><span class="p">,</span> <span class="nv">count</span><span class="p">:</span> <span class="kt">Int</span>
|
||
<span class="p">)</span> <span class="o">-></span> <span class="kt">UnfoldSequence</span><span class="o"><</span><span class="kt">T</span><span class="p">,</span> <span class="kt">Int</span><span class="o">></span></code></pre>
|
||
|
||
</div>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a name="/s:12NumericAnnex4PRNGPA2aBRzs6UInt64V7ElementRtzlE7uniforms14UnfoldSequenceVyqd__SiGqd__m_Si5countts19BinaryFloatingPointRd__lF"></a>
|
||
<a name="//apple_ref/swift/Method/uniform(_:count:)" class="dashAnchor"></a>
|
||
<h4>
|
||
<code>uniform(_:count:)</code>
|
||
<span class="declaration-note">Extension method</span>
|
||
</h4>
|
||
</div>
|
||
<div class="abstract">
|
||
<p>Generates a sequence of <code>count</code> pseudo-random binary floating-point values
|
||
of type <code>T</code> in the range from 0 to 1 (exclusive) from the uniform
|
||
distribution.</p>
|
||
|
||
</div>
|
||
<div class="declaration">
|
||
<h5>Declaration</h5>
|
||
<div class="language">
|
||
<p class="aside-title">Swift</p>
|
||
<pre class="highlight"><code><span class="kd">public</span> <span class="kd">func</span> <span class="n">uniform</span><span class="o"><</span><span class="kt">T</span> <span class="p">:</span> <span class="kt">BinaryFloatingPoint</span><span class="o">></span><span class="p">(</span>
|
||
<span class="nv">_</span><span class="p">:</span> <span class="kt">T</span><span class="o">.</span><span class="k">Type</span> <span class="o">=</span> <span class="kt">T</span><span class="o">.</span><span class="k">self</span><span class="p">,</span> <span class="nv">count</span><span class="p">:</span> <span class="kt">Int</span>
|
||
<span class="p">)</span> <span class="o">-></span> <span class="kt">UnfoldSequence</span><span class="o"><</span><span class="kt">T</span><span class="p">,</span> <span class="kt">Int</span><span class="o">></span></code></pre>
|
||
|
||
</div>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
</article>
|
||
</div>
|
||
<footer>
|
||
<p>© 2017 <a class="link" href="https://diploid.ca" target="_blank" rel="external">Xiaodi Wu</a>. All rights reserved. (Last updated: 2017-08-12)</p>
|
||
<p>Generated by <a href="https://github.com/realm/jazzy" target="_blank" rel="external">Jazzy</a> v0.8.3, a <a href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
|
||
</footer>
|
||
</body>
|
||
</div>
|
||
</html>
|