247 lines
11 KiB
HTML
247 lines
11 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||
<title>Classes 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 title="Classes 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/DoubleWidth.html">DoubleWidth</a>
|
||
</li>
|
||
<li>
|
||
<a href="Extensions/Float.html">Float</a>
|
||
</li>
|
||
<li>
|
||
<a href="Extensions/FloatingPoint.html">FloatingPoint</a>
|
||
</li>
|
||
<li>
|
||
<a href="Extensions/Int.html">Int</a>
|
||
</li>
|
||
<li>
|
||
<a href="Extensions/Int16.html">Int16</a>
|
||
</li>
|
||
<li>
|
||
<a href="Extensions/Int32.html">Int32</a>
|
||
</li>
|
||
<li>
|
||
<a href="Extensions/Int64.html">Int64</a>
|
||
</li>
|
||
<li>
|
||
<a href="Extensions/Int8.html">Int8</a>
|
||
</li>
|
||
<li>
|
||
<a href="Extensions/UInt.html">UInt</a>
|
||
</li>
|
||
<li>
|
||
<a href="Extensions/UInt16.html">UInt16</a>
|
||
</li>
|
||
<li>
|
||
<a href="Extensions/UInt32.html">UInt32</a>
|
||
</li>
|
||
<li>
|
||
<a href="Extensions/UInt64.html">UInt64</a>
|
||
</li>
|
||
<li>
|
||
<a href="Extensions/UInt8.html">UInt8</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">Structures</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">Type Aliases</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>Classes</h1>
|
||
<p>The following classes are available globally.</p>
|
||
|
||
</div>
|
||
</div>
|
||
</section>
|
||
<section class="toc">
|
||
<details open>
|
||
<summary>Topics</summary>
|
||
<div class="wrapper">
|
||
<ul>
|
||
<li><a href="#/s:12NumericAnnex6RandomC">Random</a></li>
|
||
</ul>
|
||
</div>
|
||
</details>
|
||
</section>
|
||
<section>
|
||
<div class="wrapper">
|
||
<div class="group">
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<a name="/s:12NumericAnnex6RandomC"></a>
|
||
<a name="//apple_ref/swift/Class/Random" class="dashAnchor"></a>
|
||
<h4>
|
||
<code>Random</code>
|
||
</h4>
|
||
</div>
|
||
<div class="abstract">
|
||
<p>A pseudo-random number generator (PRNG) that implements
|
||
<a href="http://vigna.di.unimi.it/ftp/papers/xorshiftplus.pdf"><code>xorshift128+</code></a>, an efficient linear-feedback shift register.</p>
|
||
<div class="aside aside-warning">
|
||
<p class="aside-title">Warning</p>
|
||
Once seeded from cryptographically secure random bytes, an
|
||
instance of <code>Random</code> generates high-quality random numbers but is <em>not</em> a
|
||
cryptographically secure PRNG.
|
||
|
||
</div>
|
||
|
||
<p>To generate random numbers, create your own instance of <code>Random</code> with an
|
||
internal state seeded from cryptographically secure random bytes:</p>
|
||
<pre class="highlight swift"><code><span class="k">let</span> <span class="nv">random</span> <span class="o">=</span> <span class="kt">Random</span><span class="p">()</span><span class="o">!</span>
|
||
<span class="k">let</span> <span class="nv">x</span> <span class="o">=</span> <span class="n">random</span><span class="o">.</span><span class="nf">uniform</span><span class="p">()</span> <span class="k">as</span> <span class="kt">Int</span>
|
||
|
||
<span class="c1">// You can also pass the desired result type as an argument.</span>
|
||
<span class="k">let</span> <span class="nv">y</span> <span class="o">=</span> <span class="n">random</span><span class="o">.</span><span class="nf">uniform</span><span class="p">(</span><span class="kt">Int</span><span class="o">.</span><span class="k">self</span><span class="p">)</span>
|
||
|
||
<span class="k">if</span> <span class="n">x</span> <span class="o">></span> <span class="n">y</span> <span class="p">{</span>
|
||
<span class="nf">print</span><span class="p">(</span><span class="s">"Here's a random value between 0 and 42 (inclusive):"</span><span class="p">)</span>
|
||
<span class="nf">print</span><span class="p">(</span><span class="n">random</span><span class="o">.</span><span class="nf">uniform</span><span class="p">(</span><span class="nv">a</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span> <span class="nv">b</span><span class="p">:</span> <span class="mi">42</span><span class="p">))</span>
|
||
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
|
||
<span class="nf">print</span><span class="p">(</span><span class="s">"Here's a random value between -42 and 0 (inclusive):"</span><span class="p">)</span>
|
||
<span class="nf">print</span><span class="p">(</span><span class="n">random</span><span class="o">.</span><span class="nf">uniform</span><span class="p">(</span><span class="nv">a</span><span class="p">:</span> <span class="o">-</span><span class="mi">42</span><span class="p">,</span> <span class="nv">b</span><span class="p">:</span> <span class="mi">0</span><span class="p">))</span>
|
||
<span class="p">}</span>
|
||
</code></pre>
|
||
<div class="aside aside-see-also">
|
||
<p class="aside-title">See also</p>
|
||
<code><a href="Classes/Random/Xoroshiro.html">Random.Xoroshiro</a></code>, <code><a href="Protocols/PRNG.html">PRNG</a></code>
|
||
|
||
</div>
|
||
|
||
<a href="Classes/Random.html">See more…</a>
|
||
</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">final</span> <span class="kd">class</span> <span class="kt">Random</span> <span class="p">:</span> <span class="kt"><a href="Protocols/PRNG.html">PRNG</a></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-09-30)</p>
|
||
<p>Generated by <a href="https://github.com/realm/jazzy" target="_blank" rel="external">Jazzy</a> v0.8.4, a <a href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
|
||
</footer>
|
||
</body>
|
||
</div>
|
||
</html>
|