NumericAnnex/docsets/NumericAnnex.docset/Contents/Resources/Documents/Extensions/BinaryInteger.html

486 lines
25 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>BinaryInteger Extension 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/Extension/BinaryInteger" class="dashAnchor"></a>
<a title="BinaryInteger Extension 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>BinaryInteger</h1>
<div class="declaration">
<div class="language">
<pre class="highlight"><code><span class="kd">protocol</span> <span class="kt">BinaryInteger</span> <span class="p">:</span> <span class="kt">Hashable</span><span class="p">,</span> <span class="kt">Numeric</span><span class="p">,</span> <span class="kt">CustomStringConvertible</span><span class="p">,</span> <span class="kt">Strideable</span></code></pre>
</div>
</div>
</div>
</div>
</section>
<section class="toc">
<details open>
<summary>Topics</summary>
<div class="wrapper">
<p><a href="#/Exponentiation">Exponentiation</a></p>
<ul>
<li><a href="#/s:s13BinaryIntegerP12NumericAnnexE3powxx_xtFZ">pow(_:_:)</a></li>
</ul>
<p><a href="#/Square%20Root">Square Root</a></p>
<ul>
<li><a href="#/s:s13BinaryIntegerP12NumericAnnexE4sqrtxxFZ">sqrt(_:)</a></li>
</ul>
<p><a href="#/Cube%20Root">Cube Root</a></p>
<ul>
<li><a href="#/s:s13BinaryIntegerP12NumericAnnexsAARzs08UnsignedB09MagnitudeRpzlE4cbrtxxFZ">cbrt(_:)</a></li>
</ul>
<p><a href="#/Factoring">Factoring</a></p>
<ul>
<li><a href="#/s:s13BinaryIntegerP12NumericAnnexsAARzs08UnsignedB09MagnitudeRpzlE3gcdxx_xtFZ">gcd(_:_:)</a></li>
<li><a href="#/s:s13BinaryIntegerP12NumericAnnexsAARzs08UnsignedB09MagnitudeRpzlE3lcmxx_xtFZ">lcm(_:_:)</a></li>
</ul>
<p><a href="#/Factoring%20(Fixed-Width)">Factoring (Fixed-Width)</a></p>
<ul>
<li><a href="#/s:s13BinaryIntegerP12NumericAnnexs010FixedWidthB0RzsAD9MagnitudeRpzs08UnsignedB0AFRQAE_AEs0C0PQZAFRSlE20gcdReportingOverflowx12partialValue_Sb8overflowtx_xtFZ">gcdReportingOverflow(_:_:)</a></li>
<li><a href="#/s:s13BinaryIntegerP12NumericAnnexs010FixedWidthB0RzsAD9MagnitudeRpzs08UnsignedB0AFRQAE_AEs0C0PQZAFRSlE20lcmReportingOverflowx12partialValue_Sb8overflowtx_xtFZ">lcmReportingOverflow(_:_:)</a></li>
<li><a href="#/s:s13BinaryIntegerP12NumericAnnexs010FixedWidthB0RzsAD9MagnitudeRpzs08UnsignedB0AFRQAE_AEs0C0PQZAFRSlE07lcmFullF0x4high_AF3lowtx_xtFZ">lcmFullWidth(_:_:)</a></li>
</ul>
<p><a href="#/Initializers">Initializers</a></p>
<ul>
<li><a href="#/s:s13BinaryIntegerP12NumericAnnexExSgAC8RationalVyqd__G7exactly_tcs9DecodableRd__s9EncodableRd__s06SignedB0Rd__s021_ExpressibleByBuiltinB7LiteralRd__s08UnsignedB09Magnitudes0C0PRpd__AnP_ANQYd__AQRSlufc">init(exactly:)</a></li>
<li><a href="#/s:s13BinaryIntegerP12NumericAnnexExAC8RationalVyqd__Gcs9DecodableRd__s9EncodableRd__s06SignedB0Rd__s021_ExpressibleByBuiltinB7LiteralRd__s08UnsignedB09Magnitudes0C0PRpd__AlN_ALQYd__AORSlufc">init(_:)</a></li>
</ul>
</div>
</details>
</section>
<section>
<div class="wrapper">
<div class="group">
<div>
<a name="/Exponentiation"></a>
<a name="//apple_ref/swift/Section/Exponentiation" class="dashAnchor"></a>
<h3>Exponentiation</h3>
</div>
<ul>
<li>
<div>
<a name="/s:s13BinaryIntegerP12NumericAnnexE3powxx_xtFZ"></a>
<a name="//apple_ref/swift/Method/pow(_:_:)" class="dashAnchor"></a>
<h4>
<code>pow(_:_:)</code>
</h4>
</div>
<div class="abstract">
<p>Returns the result of raising <code>base</code> to the power of <code>exponent</code>, rounded
to a representable value.</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="nf">pow</span><span class="p">(</span><span class="n">_</span> <span class="nv">base</span><span class="p">:</span> <span class="k">Self</span><span class="p">,</span> <span class="n">_</span> <span class="nv">exponent</span><span class="p">:</span> <span class="k">Self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="k">Self</span></code></pre>
</div>
</div>
</li>
</ul>
</div>
<div class="group">
<div>
<a name="/Square%20Root"></a>
<a name="//apple_ref/swift/Section/Square Root" class="dashAnchor"></a>
<h3>Square Root</h3>
</div>
<ul>
<li>
<div>
<a name="/s:s13BinaryIntegerP12NumericAnnexE4sqrtxxFZ"></a>
<a name="//apple_ref/swift/Method/sqrt(_:)" class="dashAnchor"></a>
<h4>
<code>sqrt(_:)</code>
</h4>
</div>
<div class="abstract">
<p>Returns the square root of <code>x</code>, rounding toward zero. If <code>x</code> is negative,
a runtime error may occur.</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="nf">sqrt</span><span class="p">(</span><span class="n">_</span> <span class="nv">x</span><span class="p">:</span> <span class="k">Self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="k">Self</span></code></pre>
</div>
</div>
</li>
</ul>
</div>
<div class="group">
<div>
<a name="/Cube%20Root"></a>
<a name="//apple_ref/swift/Section/Cube Root" class="dashAnchor"></a>
<h3>Cube Root</h3>
</div>
<ul>
<li>
<div>
<a name="/s:s13BinaryIntegerP12NumericAnnexsAARzs08UnsignedB09MagnitudeRpzlE4cbrtxxFZ"></a>
<a name="//apple_ref/swift/Method/cbrt(_:)" class="dashAnchor"></a>
<h4>
<code>cbrt(_:)</code>
</h4>
</div>
<div class="abstract">
<p>Returns the cube root of <code>x</code>, rounding toward zero.</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="nf">cbrt</span><span class="p">(</span><span class="n">_</span> <span class="nv">x</span><span class="p">:</span> <span class="k">Self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="k">Self</span></code></pre>
</div>
</div>
</li>
</ul>
</div>
<div class="group">
<div>
<a name="/Factoring"></a>
<a name="//apple_ref/swift/Section/Factoring" class="dashAnchor"></a>
<h3>Factoring</h3>
</div>
<ul>
<li>
<div>
<a name="/s:s13BinaryIntegerP12NumericAnnexsAARzs08UnsignedB09MagnitudeRpzlE3gcdxx_xtFZ"></a>
<a name="//apple_ref/swift/Method/gcd(_:_:)" class="dashAnchor"></a>
<h4>
<code>gcd(_:_:)</code>
</h4>
</div>
<div class="abstract">
<p>Returns the greatest common divisor of <code>a</code> and <code>b</code>.</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="nf">gcd</span><span class="p">(</span><span class="n">_</span> <span class="nv">a</span><span class="p">:</span> <span class="k">Self</span><span class="p">,</span> <span class="n">_</span> <span class="nv">b</span><span class="p">:</span> <span class="k">Self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="k">Self</span></code></pre>
</div>
</div>
</li>
<li>
<div>
<a name="/s:s13BinaryIntegerP12NumericAnnexsAARzs08UnsignedB09MagnitudeRpzlE3lcmxx_xtFZ"></a>
<a name="//apple_ref/swift/Method/lcm(_:_:)" class="dashAnchor"></a>
<h4>
<code>lcm(_:_:)</code>
</h4>
</div>
<div class="abstract">
<p>Returns the least common multiple of <code>a</code> and <code>b</code>.</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="nf">lcm</span><span class="p">(</span><span class="n">_</span> <span class="nv">a</span><span class="p">:</span> <span class="k">Self</span><span class="p">,</span> <span class="n">_</span> <span class="nv">b</span><span class="p">:</span> <span class="k">Self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="k">Self</span></code></pre>
</div>
</div>
</li>
</ul>
</div>
<div class="group">
<div>
<a name="/Factoring%20(Fixed-Width)"></a>
<a name="//apple_ref/swift/Section/Factoring (Fixed-Width)" class="dashAnchor"></a>
<h3>Factoring (Fixed-Width)</h3>
</div>
<ul>
<li>
<div>
<a name="/s:s13BinaryIntegerP12NumericAnnexs010FixedWidthB0RzsAD9MagnitudeRpzs08UnsignedB0AFRQAE_AEs0C0PQZAFRSlE20gcdReportingOverflowx12partialValue_Sb8overflowtx_xtFZ"></a>
<a name="//apple_ref/swift/Method/gcdReportingOverflow(_:_:)" class="dashAnchor"></a>
<h4>
<code>gcdReportingOverflow(_:_:)</code>
</h4>
</div>
<div class="abstract">
<p>Returns the greatest common divisor of <code>a</code> and <code>b</code> and a flag to indicate
whether overflow occurred during the operation.</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="nf">gcdReportingOverflow</span><span class="p">(</span><span class="n">_</span> <span class="nv">a</span><span class="p">:</span> <span class="k">Self</span><span class="p">,</span> <span class="n">_</span> <span class="nv">b</span><span class="p">:</span> <span class="k">Self</span><span class="p">)</span>
<span class="o">-&gt;</span> <span class="p">(</span><span class="nv">partialValue</span><span class="p">:</span> <span class="k">Self</span><span class="p">,</span> <span class="nv">overflow</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">)</span></code></pre>
</div>
</div>
</li>
<li>
<div>
<a name="/s:s13BinaryIntegerP12NumericAnnexs010FixedWidthB0RzsAD9MagnitudeRpzs08UnsignedB0AFRQAE_AEs0C0PQZAFRSlE20lcmReportingOverflowx12partialValue_Sb8overflowtx_xtFZ"></a>
<a name="//apple_ref/swift/Method/lcmReportingOverflow(_:_:)" class="dashAnchor"></a>
<h4>
<code>lcmReportingOverflow(_:_:)</code>
</h4>
</div>
<div class="abstract">
<p>Returns the least common multiple of <code>a</code> and <code>b</code> and a flag to indicate
whether overflow occurred during the operation.</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="nf">lcmReportingOverflow</span><span class="p">(</span><span class="n">_</span> <span class="nv">a</span><span class="p">:</span> <span class="k">Self</span><span class="p">,</span> <span class="n">_</span> <span class="nv">b</span><span class="p">:</span> <span class="k">Self</span><span class="p">)</span>
<span class="o">-&gt;</span> <span class="p">(</span><span class="nv">partialValue</span><span class="p">:</span> <span class="k">Self</span><span class="p">,</span> <span class="nv">overflow</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">)</span></code></pre>
</div>
</div>
</li>
<li>
<div>
<a name="/s:s13BinaryIntegerP12NumericAnnexs010FixedWidthB0RzsAD9MagnitudeRpzs08UnsignedB0AFRQAE_AEs0C0PQZAFRSlE07lcmFullF0x4high_AF3lowtx_xtFZ"></a>
<a name="//apple_ref/swift/Method/lcmFullWidth(_:_:)" class="dashAnchor"></a>
<h4>
<code>lcmFullWidth(_:_:)</code>
</h4>
</div>
<div class="abstract">
<p>Returns the high and low parts of the least common multiple of <code>a</code> and <code>b</code>
computed using full-width arithmetic.</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="nf">lcmFullWidth</span><span class="p">(</span><span class="n">_</span> <span class="nv">a</span><span class="p">:</span> <span class="k">Self</span><span class="p">,</span> <span class="n">_</span> <span class="nv">b</span><span class="p">:</span> <span class="k">Self</span><span class="p">)</span>
<span class="o">-&gt;</span> <span class="p">(</span><span class="nv">high</span><span class="p">:</span> <span class="k">Self</span><span class="p">,</span> <span class="nv">low</span><span class="p">:</span> <span class="k">Self</span><span class="o">.</span><span class="kt">Magnitude</span><span class="p">)</span></code></pre>
</div>
</div>
</li>
</ul>
</div>
<div class="group">
<div>
<a name="/Initializers"></a>
<a name="//apple_ref/swift/Section/Initializers" class="dashAnchor"></a>
<h3>Initializers</h3>
</div>
<ul>
<li>
<div>
<a name="/s:s13BinaryIntegerP12NumericAnnexExSgAC8RationalVyqd__G7exactly_tcs9DecodableRd__s9EncodableRd__s06SignedB0Rd__s021_ExpressibleByBuiltinB7LiteralRd__s08UnsignedB09Magnitudes0C0PRpd__AnP_ANQYd__AQRSlufc"></a>
<a name="//apple_ref/swift/Method/init(exactly:)" class="dashAnchor"></a>
<h4>
<code>init(exactly:)</code>
</h4>
</div>
<div class="abstract">
<p>Creates a new binary integer from the given rational value, if it can be
represented exactly.</p>
<p>If <code>source</code> is not representable exactly, 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="kd">public</span> <span class="kd">init</span><span class="p">?</span><span class="o">&lt;</span><span class="kt">U</span><span class="o">&gt;</span><span class="p">(</span><span class="n">exactly</span> <span class="nv">source</span><span class="p">:</span> <span class="kt"><a href="../Structs/Rational.html">Rational</a></span><span class="o">&lt;</span><span class="kt">U</span><span class="o">&gt;</span><span class="p">)</span></code></pre>
</div>
</div>
<div class="parameters">
<h5>Parameters</h5>
<dl>
<dt><code>source</code></dt>
<dd>
<p>A rational value to convert to a binary integer.</p>
</dd>
</dl>
</div>
</li>
<li>
<div>
<a name="/s:s13BinaryIntegerP12NumericAnnexExAC8RationalVyqd__Gcs9DecodableRd__s9EncodableRd__s06SignedB0Rd__s021_ExpressibleByBuiltinB7LiteralRd__s08UnsignedB09Magnitudes0C0PRpd__AlN_ALQYd__AORSlufc"></a>
<a name="//apple_ref/swift/Method/init(_:)" class="dashAnchor"></a>
<h4>
<code>init(_:)</code>
</h4>
</div>
<div class="abstract">
<p>Creates a new binary integer from the given rational value, rounding
toward zero.</p>
<p>If <code>source</code> is outside the bounds of this type after rounding toward zero,
a runtime error may occur.</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">init</span><span class="o">&lt;</span><span class="kt">U</span><span class="o">&gt;</span><span class="p">(</span><span class="n">_</span> <span class="nv">source</span><span class="p">:</span> <span class="kt"><a href="../Structs/Rational.html">Rational</a></span><span class="o">&lt;</span><span class="kt">U</span><span class="o">&gt;</span><span class="p">)</span></code></pre>
</div>
</div>
<div class="parameters">
<h5>Parameters</h5>
<dl>
<dt><code>source</code></dt>
<dd>
<p>A rational value to convert to a binary integer.</p>
</dd>
</dl>
</div>
</li>
</ul>
</div>
</div>
</section>
</article>
</div>
<footer>
<p>&copy; 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>