mainwp.dev/deploy-test/source-code/child/classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html

6783 lines
385 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>MainWP Child Documentation</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<base href="../">
<link rel="icon" href="images/favicon.ico"/>
<link rel="stylesheet" href="css/normalize.css">
<link rel="stylesheet" href="css/base.css">
<link rel="preconnect" href="https://fonts.gstatic.com">
<link href="https://fonts.googleapis.com/css2?family=Open+Sans:wght@100;200;300;400;600;700&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Source+Code+Pro:wght@400;600;700&display=swap" rel="stylesheet">
<link rel="stylesheet" href="css/template.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.0/css/all.min.css" integrity="sha256-ybRkN9dBjhcS2qrW1z+hfCxq+1aBdwyQM5wlQoQVt/0=" crossorigin="anonymous" />
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/themes/prism-okaidia.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/line-numbers/prism-line-numbers.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/line-highlight/prism-line-highlight.css">
<script src="https://cdn.jsdelivr.net/npm/fuse.js@3.4.6"></script>
<script src="https://cdn.jsdelivr.net/npm/css-vars-ponyfill@2"></script>
<script src="js/template.js"></script>
<script src="js/search.js"></script>
<script defer src="js/searchIndex.js"></script>
</head>
<body id="top">
<header class="phpdocumentor-header phpdocumentor-section">
<h1 class="phpdocumentor-title"><a href="" class="phpdocumentor-title__link">MainWP Child Documentation</a></h1>
<input class="phpdocumentor-header__menu-button" type="checkbox" id="menu-button" name="menu-button" />
<label class="phpdocumentor-header__menu-icon" for="menu-button">
<i class="fas fa-bars"></i>
</label>
<section data-search-form class="phpdocumentor-search">
<label>
<span class="visually-hidden">Search for</span>
<svg class="phpdocumentor-search__icon" width="21" height="20" viewBox="0 0 21 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="7.5" cy="7.5" r="6.5" stroke="currentColor" stroke-width="2"/>
<line x1="12.4892" y1="12.2727" x2="19.1559" y2="18.9393" stroke="currentColor" stroke-width="3"/>
</svg>
<input type="search" class="phpdocumentor-field phpdocumentor-search__field" placeholder="Loading .." disabled />
</label>
</section>
<nav class="phpdocumentor-topnav">
<ul class="phpdocumentor-topnav__menu">
</ul>
</nav>
</header>
<main class="phpdocumentor">
<div class="phpdocumentor-section">
<input class="phpdocumentor-sidebar__menu-button" type="checkbox" id="sidebar-button" name="sidebar-button" />
<label class="phpdocumentor-sidebar__menu-icon" for="sidebar-button">
Menu
</label>
<aside class="phpdocumentor-column -three phpdocumentor-sidebar">
<section class="phpdocumentor-sidebar__category -namespaces">
<h2 class="phpdocumentor-sidebar__category-header">Namespaces</h2>
<h4 class="phpdocumentor-sidebar__root-namespace">
<a href="namespaces/mainwp.html" class="">MainWP</a>
</h4>
<ul class="phpdocumentor-list">
<li>
<a href="namespaces/mainwp-child.html" class="">Child</a>
</li>
</ul>
<h4 class="phpdocumentor-sidebar__root-namespace">
<a href="namespaces/paragonie.html" class="">ParagonIE</a>
</h4>
<ul class="phpdocumentor-list">
<li>
<a href="namespaces/paragonie-constanttime.html" class="">ConstantTime</a>
</li>
</ul>
<h4 class="phpdocumentor-sidebar__root-namespace">
<a href="namespaces/phpseclib3.html" class="">phpseclib3</a>
</h4>
<ul class="phpdocumentor-list">
<li>
<a href="namespaces/phpseclib3-common.html" class="">Common</a>
</li>
<li>
<a href="namespaces/phpseclib3-crypt.html" class="">Crypt</a>
</li>
<li>
<a href="namespaces/phpseclib3-exception.html" class="">Exception</a>
</li>
<li>
<a href="namespaces/phpseclib3-file.html" class="">File</a>
</li>
<li>
<a href="namespaces/phpseclib3-math.html" class="">Math</a>
</li>
<li>
<a href="namespaces/phpseclib3-net.html" class="">Net</a>
</li>
<li>
<a href="namespaces/phpseclib3-system.html" class="">System</a>
</li>
</ul>
</section>
<section class="phpdocumentor-sidebar__category -packages">
<h2 class="phpdocumentor-sidebar__category-header">Packages</h2>
<h4 class="phpdocumentor-sidebar__root-namespace">
<a href="packages/MainWP.html" class="">MainWP</a>
</h4>
<ul class="phpdocumentor-list">
<li>
<a href="packages/MainWP-Child.html" class="">Child</a>
</li>
<li>
<a href="packages/MainWP-ChildCreditsPlugin.html" class="">ChildCreditsPlugin</a>
</li>
<li>
<a href="packages/MainWP-Dashboard.html" class="">Dashboard</a>
</li>
</ul>
<h4 class="phpdocumentor-sidebar__root-namespace">
<a href="packages/MainWPChild.html" class="">MainWPChild</a>
</h4>
<h4 class="phpdocumentor-sidebar__root-namespace">
<a href="packages/ParagonIE.html" class="">ParagonIE</a>
</h4>
<ul class="phpdocumentor-list">
<li>
<a href="packages/ParagonIE-ConstantTime.html" class="">ConstantTime</a>
</li>
</ul>
</section>
<section class="phpdocumentor-sidebar__category -reports">
<h2 class="phpdocumentor-sidebar__category-header">Reports</h2>
<h3 class="phpdocumentor-sidebar__root-package"><a href="graphs/classes.html">Class Diagram</a></h3>
<h3 class="phpdocumentor-sidebar__root-package"><a href="reports/deprecated.html">Deprecated</a></h3>
<h3 class="phpdocumentor-sidebar__root-package"><a href="reports/errors.html">Errors</a></h3>
<h3 class="phpdocumentor-sidebar__root-package"><a href="reports/markers.html">Markers</a></h3>
</section>
<section class="phpdocumentor-sidebar__category -indices">
<h2 class="phpdocumentor-sidebar__category-header">Indices</h2>
<h3 class="phpdocumentor-sidebar__root-package"><a href="indices/files.html">Files</a></h3>
</section>
</aside>
<div class="phpdocumentor-column -nine phpdocumentor-content">
<section>
<ul class="phpdocumentor-breadcrumbs">
<li class="phpdocumentor-breadcrumb"><a href="namespaces/phpseclib3.html">phpseclib3</a></li>
<li class="phpdocumentor-breadcrumb"><a href="namespaces/phpseclib3-math.html">Math</a></li>
<li class="phpdocumentor-breadcrumb"><a href="namespaces/phpseclib3-math-biginteger.html">BigInteger</a></li>
<li class="phpdocumentor-breadcrumb"><a href="namespaces/phpseclib3-math-biginteger-engines.html">Engines</a></li>
<li class="phpdocumentor-breadcrumb"><a href="namespaces/phpseclib3-math-biginteger-engines-php.html">PHP</a></li>
<li class="phpdocumentor-breadcrumb"><a href="namespaces/phpseclib3-math-biginteger-engines-php-reductions.html">Reductions</a></li>
</ul>
<article class="phpdocumentor-element -class">
<h2 class="phpdocumentor-content__title">
Barrett
<span class="phpdocumentor-element__extends">
extends <a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Base.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\PHP\Base">Base</abbr></a>
</span>
<div class="phpdocumentor-element__package">
in package
<ul class="phpdocumentor-breadcrumbs">
<li class="phpdocumentor-breadcrumb"><a href="packages/MainWP.html">MainWP</a></li>
<li class="phpdocumentor-breadcrumb"><a href="packages/MainWP-Child.html">Child</a></li>
</ul>
</div>
</h2>
<div class="phpdocumentor-label-line">
<div class="phpdocumentor-label phpdocumentor-label--success"><span>Abstract</span><span>Yes</span></div>
</div>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP/Reductions/Barrett.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-php-reductions-barrett.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP/Reductions/Barrett.php">Barrett.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">24</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.24" class="phpdocumentor-element-found-in__source" data-line="24" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP/Reductions/Barrett.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">PHP Barrett Modular Exponentiation Engine</p>
<h5 class="phpdocumentor-tag-list__heading" id="tags">
Tags
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#tags" class="headerlink"><i class="fas fa-link"></i></a>
</h5>
<dl class="phpdocumentor-tag-list">
<dt class="phpdocumentor-tag-list__entry">
<span class="phpdocumentor-tag__name">author</span>
</dt>
<dd class="phpdocumentor-tag-list__definition">
<section class="phpdocumentor-description"><p>Jim Wigginton <a href="mailto:terrafrost@php.net">terrafrost@php.net</a></p>
</section>
</dd>
</dl>
<h3 id="toc">
Table of Contents
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#toc" class="headerlink"><i class="fas fa-link"></i></a>
</h3>
<h4 id="toc-constants">
Constants
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#toc-constants" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<dl class="phpdocumentor-table-of-contents">
<dt class="phpdocumentor-table-of-contents__entry -constant -public">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Base.html#constant_DATA">DATA</a>
<span>
&nbsp;= 1 </span>
</dt>
<dd>$cache[self::DATA] contains the cached data.</dd>
<dt class="phpdocumentor-table-of-contents__entry -constant -public">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#constant_ENGINE_DIR">ENGINE_DIR</a>
<span>
&nbsp;= &#039;PHP&#039; </span>
</dt>
<dd>Engine Directory</dd>
<dt class="phpdocumentor-table-of-contents__entry -constant -public">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#constant_FAST_BITWISE">FAST_BITWISE</a>
<span>
&nbsp;= true </span>
</dt>
<dd>Can Bitwise operations be done fast?</dd>
<dt class="phpdocumentor-table-of-contents__entry -constant -public">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#constant_KARATSUBA_CUTOFF">KARATSUBA_CUTOFF</a>
<span>
&nbsp;= 25 </span>
</dt>
<dd>Karatsuba Cutoff</dd>
<dt class="phpdocumentor-table-of-contents__entry -constant -public">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#constant_PRIMES">PRIMES</a>
<span>
&nbsp;= [3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691, 701, 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997] </span>
</dt>
<dt class="phpdocumentor-table-of-contents__entry -constant -public">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#constant_SIGN">SIGN</a>
<span>
&nbsp;= 1 </span>
</dt>
<dd>$result[self::SIGN] contains the sign.</dd>
<dt class="phpdocumentor-table-of-contents__entry -constant -public">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#constant_VALUE">VALUE</a>
<span>
&nbsp;= 0 </span>
</dt>
<dd>$result[self::VALUE] contains the value.</dd>
<dt class="phpdocumentor-table-of-contents__entry -constant -public">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Base.html#constant_VARIABLE">VARIABLE</a>
<span>
&nbsp;= 0 </span>
</dt>
<dd>Cache constants</dd>
</dl>
<h4 id="toc-properties">
Properties
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#toc-properties" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<dl class="phpdocumentor-table-of-contents">
<dt class="phpdocumentor-table-of-contents__entry -property -protected">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#property_bitmask">$bitmask</a>
<span>
&nbsp;: static|false </span>
</dt>
<dd>Precision Bitmask</dd>
<dt class="phpdocumentor-table-of-contents__entry -property -protected">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#property_hex">$hex</a>
<span>
&nbsp;: string </span>
</dt>
<dd>Mode independent value used for serialization.</dd>
<dt class="phpdocumentor-table-of-contents__entry -property -protected">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#property_is_negative">$is_negative</a>
<span>
&nbsp;: bool </span>
</dt>
<dd>Holds the BigInteger&#039;s sign</dd>
<dt class="phpdocumentor-table-of-contents__entry -property -protected">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#property_isValidEngine">$isValidEngine</a>
<span>
&nbsp;: mixed </span>
</dt>
<dd>Engine Validity Flag</dd>
<dt class="phpdocumentor-table-of-contents__entry -property -protected">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#property_modexpEngine">$modexpEngine</a>
<span>
&nbsp;: mixed </span>
</dt>
<dd>Modular Exponentiation Engine</dd>
<dt class="phpdocumentor-table-of-contents__entry -property -protected">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#property_one">$one</a>
<span>
&nbsp;: mixed </span>
</dt>
<dd>BigInteger(1)</dd>
<dt class="phpdocumentor-table-of-contents__entry -property -protected">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#property_precision">$precision</a>
<span>
&nbsp;: int </span>
</dt>
<dd>Precision</dd>
<dt class="phpdocumentor-table-of-contents__entry -property -protected">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#property_reduce">$reduce</a>
<span>
&nbsp;: callable </span>
</dt>
<dd>Recurring Modulo Function</dd>
<dt class="phpdocumentor-table-of-contents__entry -property -protected">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#property_two">$two</a>
<span>
&nbsp;: mixed </span>
</dt>
<dd>BigInteger(2)</dd>
<dt class="phpdocumentor-table-of-contents__entry -property -protected">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#property_value">$value</a>
<span>
&nbsp;: <abbr title="\GMP">GMP</abbr>|string|array&lt;string|int, mixed&gt;|int </span>
</dt>
<dd>Holds the BigInteger&#039;s value</dd>
<dt class="phpdocumentor-table-of-contents__entry -property -protected">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#property_zero">$zero</a>
<span>
&nbsp;: mixed </span>
</dt>
<dd>BigInteger(0)</dd>
</dl>
<h4 id="toc-methods">
Methods
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#toc-methods" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<dl class="phpdocumentor-table-of-contents">
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method___construct">__construct()</a>
<span>
&nbsp;: <a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\PHP">PHP</abbr></a> </span>
</dt>
<dd>Default constructor</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method___debugInfo">__debugInfo()</a>
<span>
&nbsp;: array&lt;string|int, mixed&gt; </span>
</dt>
<dd>__debugInfo() magic method</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method___sleep">__sleep()</a>
<span>
&nbsp;: array&lt;string|int, mixed&gt; </span>
</dt>
<dd>Serialize</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method___toString">__toString()</a>
<span>
&nbsp;: string </span>
</dt>
<dd>Converts a BigInteger to a base-10 number.</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method___wakeup">__wakeup()</a>
<span>
&nbsp;: void </span>
</dt>
<dd>Serialize</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_abs">abs()</a>
<span>
&nbsp;: <a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\PHP">PHP</abbr></a> </span>
</dt>
<dd>Absolute value.</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_bitwise_leftRotate">bitwise_leftRotate()</a>
<span>
&nbsp;: <a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a> </span>
</dt>
<dd>Logical Left Rotate</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_bitwise_leftShift">bitwise_leftShift()</a>
<span>
&nbsp;: <a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\PHP">PHP</abbr></a> </span>
</dt>
<dd>Logical Left Shift</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_bitwise_not">bitwise_not()</a>
<span>
&nbsp;: <a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a>|string </span>
</dt>
<dd>Logical Not</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_bitwise_rightRotate">bitwise_rightRotate()</a>
<span>
&nbsp;: <a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a> </span>
</dt>
<dd>Logical Right Rotate</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_bitwise_rightShift">bitwise_rightShift()</a>
<span>
&nbsp;: <a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\PHP">PHP</abbr></a> </span>
</dt>
<dd>Logical Right Shift</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_bitwise_split">bitwise_split()</a>
<span>
&nbsp;: array&lt;int, static&gt; </span>
</dt>
<dd>Bitwise Split</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_createRecurringModuloFunction">createRecurringModuloFunction()</a>
<span>
&nbsp;: callable </span>
</dt>
<dd>Create Recurring Modulo Function</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_getLength">getLength()</a>
<span>
&nbsp;: int </span>
</dt>
<dd>Return the size of a BigInteger in bits</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_getLengthInBytes">getLengthInBytes()</a>
<span>
&nbsp;: int </span>
</dt>
<dd>Return the size of a BigInteger in bytes</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_getPrecision">getPrecision()</a>
<span>
&nbsp;: int </span>
</dt>
<dd>Get Precision</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_isNegative">isNegative()</a>
<span>
&nbsp;: bool </span>
</dt>
<dd>Is Negative?</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_isOdd">isOdd()</a>
<span>
&nbsp;: bool </span>
</dt>
<dd>Is Odd?</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_isPrime">isPrime()</a>
<span>
&nbsp;: bool </span>
</dt>
<dd>Checks a numer to see if it&#039;s prime</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Base.html#method_isValidEngine">isValidEngine()</a>
<span>
&nbsp;: bool </span>
</dt>
<dd>Test for engine validity</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_jsonSerialize">jsonSerialize()</a>
<span>
&nbsp;: mixed </span>
</dt>
<dd>JSON Serialize</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_minMaxBits">minMaxBits()</a>
<span>
&nbsp;: array{min: static, max: static} </span>
</dt>
<dd>Returns the smallest and largest n-bit number</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_negate">negate()</a>
<span>
&nbsp;: static </span>
</dt>
<dd>Negate</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_random">random()</a>
<span>
&nbsp;: <a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a> </span>
</dt>
<dd>Generates a random number of a certain size</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_randomPrime">randomPrime()</a>
<span>
&nbsp;: <a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a> </span>
</dt>
<dd>Generates a random prime number of a certain size</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_root">root()</a>
<span>
&nbsp;: <a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a> </span>
</dt>
<dd>Calculates the nth root of a biginteger.</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_scan1divide">scan1divide()</a>
<span>
&nbsp;: int </span>
</dt>
<dd>Scan for 1 and right shift by that amount</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_setModExpEngine">setModExpEngine()</a>
<span>
&nbsp;: mixed </span>
</dt>
<dd>Sets engine type.</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_setPrecision">setPrecision()</a>
<span>
&nbsp;: mixed </span>
</dt>
<dd>Set Precision</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_subtractHelper">subtractHelper()</a>
<span>
&nbsp;: array&lt;string|int, mixed&gt; </span>
</dt>
<dd>Performs subtraction.</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_testBit">testBit()</a>
<span>
&nbsp;: bool </span>
</dt>
<dd>Tests if a bit is set</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_toBits">toBits()</a>
<span>
&nbsp;: string </span>
</dt>
<dd>Converts a BigInteger to a bit string (eg. base-2).</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_toBytes">toBytes()</a>
<span>
&nbsp;: string </span>
</dt>
<dd>Converts a BigInteger to a byte string (eg. base-256).</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_toHex">toHex()</a>
<span>
&nbsp;: string </span>
</dt>
<dd>Converts a BigInteger to a hex string (eg. base-16).</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_toString">toString()</a>
<span>
&nbsp;: string </span>
</dt>
<dd>Converts a BigInteger to a base-10 number.</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -protected">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_addHelper">addHelper()</a>
<span>
&nbsp;: array&lt;string|int, mixed&gt; </span>
</dt>
<dd>Performs addition.</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -protected">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_array_repeat">array_repeat()</a>
<span>
&nbsp;: array&lt;string|int, mixed&gt; </span>
</dt>
<dd>Array Repeat</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -protected">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_base256_lshift">base256_lshift()</a>
<span>
&nbsp;: void </span>
</dt>
<dd>Logical Left Shift</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -protected">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_baseSquare">baseSquare()</a>
<span>
&nbsp;: array&lt;string|int, mixed&gt; </span>
</dt>
<dd>Performs traditional squaring on two BigIntegers</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -protected">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_bitwiseAndHelper">bitwiseAndHelper()</a>
<span>
&nbsp;: <a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a> </span>
</dt>
<dd>Logical And</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -protected">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_bitwiseOrHelper">bitwiseOrHelper()</a>
<span>
&nbsp;: <a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a> </span>
</dt>
<dd>Logical Or</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -protected">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_bitwiseXorHelper">bitwiseXorHelper()</a>
<span>
&nbsp;: <a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a> </span>
</dt>
<dd>Logical Exclusive Or</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -protected">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_compareHelper">compareHelper()</a>
<span>
&nbsp;: int </span>
</dt>
<dd>Compares two numbers.</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -protected">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_convertToObj">convertToObj()</a>
<span>
&nbsp;: static </span>
</dt>
<dd>Convert an array / boolean to a PHP BigInteger object</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -protected">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_extendedGCDHelper">extendedGCDHelper()</a>
<span>
&nbsp;: <abbr title="array{gcd: \phpseclib3\Math\BigInteger\Engines\Engine, x: \phpseclib3\Math\BigInteger\Engines\Engine, y: \phpseclib3\Math\BigInteger\Engines\Engine}">Engine}</abbr> </span>
</dt>
<dd>Calculates the greatest common divisor and Bezout&#039;s identity.</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -protected">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_initialize">initialize()</a>
<span>
&nbsp;: mixed </span>
</dt>
<dd>Initialize a PHP BigInteger Engine instance</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -protected">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_karatsubaSquare">karatsubaSquare()</a>
<span>
&nbsp;: array&lt;string|int, mixed&gt; </span>
</dt>
<dd>Performs Karatsuba &quot;squaring&quot; on two BigIntegers</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -protected">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_lshift">lshift()</a>
<span>
&nbsp;: mixed </span>
</dt>
<dd>Logical Left Shift</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -protected">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_make_odd">make_odd()</a>
<span>
&nbsp;: mixed </span>
</dt>
<dd>Make the current number odd</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -protected">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_maxHelper">maxHelper()</a>
<span>
&nbsp;: <a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a> </span>
</dt>
<dd>Return the minimum BigInteger between an arbitrary number of BigIntegers.</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -protected">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_minHelper">minHelper()</a>
<span>
&nbsp;: <a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a> </span>
</dt>
<dd>Return the minimum BigInteger between an arbitrary number of BigIntegers.</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -protected">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_modInverseHelper">modInverseHelper()</a>
<span>
&nbsp;: static|false </span>
</dt>
<dd>Calculates modular inverses.</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -protected">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_multiplyHelper">multiplyHelper()</a>
<span>
&nbsp;: array&lt;string|int, mixed&gt; </span>
</dt>
<dd>Performs multiplication.</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -protected">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Base.html#method_multiplyReduce">multiplyReduce()</a>
<span>
&nbsp;: array&lt;string|int, mixed&gt; </span>
</dt>
<dd>Modular multiply</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -protected">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_normalize">normalize()</a>
<span>
&nbsp;: static </span>
</dt>
<dd>Normalize</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -protected">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_pad">pad()</a>
<span>
&nbsp;: string </span>
</dt>
<dd>Pads strings so that unpack may be used on them</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -protected">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_powHelper">powHelper()</a>
<span>
&nbsp;: <a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\PHP">PHP</abbr></a> </span>
</dt>
<dd>Performs exponentiation.</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -protected">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Base.html#method_powModHelper">powModHelper()</a>
<span>
&nbsp;: <a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\PHP">PHP</abbr></a> </span>
</dt>
<dd>Performs modular exponentiation.</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -protected">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_powModInner">powModInner()</a>
<span>
&nbsp;: <a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\PHP">PHP</abbr></a> </span>
</dt>
<dd>Performs modular exponentiation.</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -protected">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_powModOuter">powModOuter()</a>
<span>
&nbsp;: static|false </span>
</dt>
<dd>Performs some pre-processing for powMod</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -protected">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Base.html#method_prepareReduce">prepareReduce()</a>
<span>
&nbsp;: array&lt;string|int, mixed&gt; </span>
</dt>
<dd>Modular reduction preparation</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -protected">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_randomRangeHelper">randomRangeHelper()</a>
<span>
&nbsp;: <a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a> </span>
</dt>
<dd>Generate a random number between a range</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -protected">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_randomRangePrimeInner">randomRangePrimeInner()</a>
<span>
&nbsp;: static|false </span>
</dt>
<dd>Performs some post-processing for randomRangePrime</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -protected">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_randomRangePrimeOuter">randomRangePrimeOuter()</a>
<span>
&nbsp;: static|false </span>
</dt>
<dd>Performs some pre-processing for randomRangePrime</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -protected">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#method_reduce">reduce()</a>
<span>
&nbsp;: array&lt;string|int, mixed&gt; </span>
</dt>
<dd>Barrett Modular Reduction</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -protected">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_regularMultiply">regularMultiply()</a>
<span>
&nbsp;: array&lt;string|int, mixed&gt; </span>
</dt>
<dd>Performs long multiplication on two BigIntegers</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -protected">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_rootHelper">rootHelper()</a>
<span>
&nbsp;: <a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a> </span>
</dt>
<dd>Performs a few preliminary checks on root</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -protected">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_rootInner">rootInner()</a>
<span>
&nbsp;: <a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a> </span>
</dt>
<dd>Calculates the nth root of a biginteger.</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -protected">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_rshift">rshift()</a>
<span>
&nbsp;: mixed </span>
</dt>
<dd>Logical Right Shift</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -protected">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_setBitmask">setBitmask()</a>
<span>
&nbsp;: static </span>
</dt>
<dd>Set Bitmask</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -protected">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_setupIsPrime">setupIsPrime()</a>
<span>
&nbsp;: int </span>
</dt>
<dd>Sets the $t parameter for primality testing</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -protected">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_slidingWindow">slidingWindow()</a>
<span>
&nbsp;: <abbr title="\phpseclib3\Math\BigInteger\Engines\T">T</abbr> </span>
</dt>
<dd>Sliding Window k-ary Modular Exponentiation</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -protected">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_square">square()</a>
<span>
&nbsp;: array&lt;int, static&gt; </span>
</dt>
<dd>Performs squaring</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -protected">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Base.html#method_squareReduce">squareReduce()</a>
<span>
&nbsp;: array&lt;string|int, mixed&gt; </span>
</dt>
<dd>Modular square</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -protected">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_testJITOnWindows">testJITOnWindows()</a>
<span>
&nbsp;: bool </span>
</dt>
<dt class="phpdocumentor-table-of-contents__entry -method -protected">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_testPrimality">testPrimality()</a>
<span>
&nbsp;: bool </span>
</dt>
<dd>Tests Primality</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -protected">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_testSmallPrimes">testSmallPrimes()</a>
<span>
&nbsp;: mixed </span>
</dt>
<dd>Test the number against small primes.</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -protected">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_toBytesHelper">toBytesHelper()</a>
<span>
&nbsp;: string </span>
</dt>
<dd>Converts a BigInteger to a byte string (eg. base-256).</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -protected">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_trim">trim()</a>
<span>
&nbsp;: array&lt;int, static&gt; </span>
</dt>
<dd>Trim</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -private">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_bitwise_small_split">bitwise_small_split()</a>
<span>
&nbsp;: array&lt;int, int&gt; </span>
</dt>
<dd>Bitwise Split where $split &lt; static::BASE</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -private">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_divide_digit">divide_digit()</a>
<span>
&nbsp;: array&lt;string|int, mixed&gt; </span>
</dt>
<dd>Divides a BigInteger by a regular integer</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -private">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_int2bytes">int2bytes()</a>
<span>
&nbsp;: string </span>
</dt>
<dd>Converts 32-bit integers to bytes.</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -private">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_karatsuba">karatsuba()</a>
<span>
&nbsp;: array&lt;string|int, mixed&gt; </span>
</dt>
<dd>Performs Karatsuba multiplication on two BigIntegers</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -private">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#method_multiplyLower">multiplyLower()</a>
<span>
&nbsp;: array&lt;string|int, mixed&gt; </span>
</dt>
<dd>Performs long multiplication up to $stop digits</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -private">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#method_regularBarrett">regularBarrett()</a>
<span>
&nbsp;: array&lt;string|int, mixed&gt; </span>
</dt>
<dd>(Regular) Barrett Modular Reduction</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -private">
<a class="" href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_safe_divide">safe_divide()</a>
<span>
&nbsp;: int </span>
</dt>
<dd>Single digit division</dd>
</dl>
<section class="phpdocumentor-constants">
<h3 class="phpdocumentor-elements__header" id="constants">
Constants
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#constants" class="headerlink"><i class="fas fa-link"></i></a>
</h3>
<article class="phpdocumentor-element -constant -public ">
<h4 class="phpdocumentor-element__name" id="constant_DATA">
DATA
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Base.html#constant_DATA" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP/Base.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-php-base.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP/Base.php">Base.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">36</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.36" class="phpdocumentor-element-found-in__source" data-line="36" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP/Base.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">$cache[self::DATA] contains the cached data.</p>
<code class="phpdocumentor-signature phpdocumentor-code ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__type">mixed</span>
<span class="phpdocumentor-signature__name">DATA</span>
= <span class="phpdocumentor-signature__default-value">1</span>
</code>
</article>
<article class="phpdocumentor-element -constant -public ">
<h4 class="phpdocumentor-element__name" id="constant_ENGINE_DIR">
ENGINE_DIR
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#constant_ENGINE_DIR" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-php.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php">PHP.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">64</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.64" class="phpdocumentor-element-found-in__source" data-line="64" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Engine Directory</p>
<code class="phpdocumentor-signature phpdocumentor-code ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__type">mixed</span>
<span class="phpdocumentor-signature__name">ENGINE_DIR</span>
= <span class="phpdocumentor-signature__default-value">&#039;PHP&#039;</span>
</code>
<h5 class="phpdocumentor-tag-list__heading" id="tags">
Tags
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#constant_ENGINE_DIR#tags" class="headerlink"><i class="fas fa-link"></i></a>
</h5>
<dl class="phpdocumentor-tag-list">
<dt class="phpdocumentor-tag-list__entry">
<span class="phpdocumentor-tag__name">see</span>
</dt>
<dd class="phpdocumentor-tag-list__definition">
<span class="phpdocumentor-tag-link"><abbr title="\phpseclib3\Math\BigInteger\Engines\parent::setModExpEngine">parent::setModExpEngine</abbr></span>
</dd>
</dl>
</article>
<article class="phpdocumentor-element -constant -public ">
<h4 class="phpdocumentor-element__name" id="constant_FAST_BITWISE">
FAST_BITWISE
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#constant_FAST_BITWISE" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-php.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php">PHP.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">57</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.57" class="phpdocumentor-element-found-in__source" data-line="57" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Can Bitwise operations be done fast?</p>
<code class="phpdocumentor-signature phpdocumentor-code ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__type">mixed</span>
<span class="phpdocumentor-signature__name">FAST_BITWISE</span>
= <span class="phpdocumentor-signature__default-value">true</span>
</code>
<h5 class="phpdocumentor-tag-list__heading" id="tags">
Tags
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#constant_FAST_BITWISE#tags" class="headerlink"><i class="fas fa-link"></i></a>
</h5>
<dl class="phpdocumentor-tag-list">
<dt class="phpdocumentor-tag-list__entry">
<span class="phpdocumentor-tag__name">see</span>
</dt>
<dd class="phpdocumentor-tag-list__definition">
<span class="phpdocumentor-tag-link"><abbr title="\phpseclib3\Math\BigInteger\Engines\parent::bitwise_leftRotate()">parent::bitwise_leftRotate()</abbr></span>
</dd>
<dt class="phpdocumentor-tag-list__entry">
<span class="phpdocumentor-tag__name">see</span>
</dt>
<dd class="phpdocumentor-tag-list__definition">
<span class="phpdocumentor-tag-link"><abbr title="\phpseclib3\Math\BigInteger\Engines\parent::bitwise_rightRotate()">parent::bitwise_rightRotate()</abbr></span>
</dd>
</dl>
</article>
<article class="phpdocumentor-element -constant -public ">
<h4 class="phpdocumentor-element__name" id="constant_KARATSUBA_CUTOFF">
KARATSUBA_CUTOFF
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#constant_KARATSUBA_CUTOFF" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-php.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php">PHP.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">49</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.49" class="phpdocumentor-element-found-in__source" data-line="49" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Karatsuba Cutoff</p>
<code class="phpdocumentor-signature phpdocumentor-code ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__type">mixed</span>
<span class="phpdocumentor-signature__name">KARATSUBA_CUTOFF</span>
= <span class="phpdocumentor-signature__default-value">25</span>
</code>
<section class="phpdocumentor-description"><p>At what point do we switch between Karatsuba multiplication and schoolbook long multiplication?</p>
</section>
</article>
<article class="phpdocumentor-element -constant -public ">
<h4 class="phpdocumentor-element__name" id="constant_PRIMES">
PRIMES
<a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#constant_PRIMES" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-engine.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php">Engine.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">28</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.28" class="phpdocumentor-element-found-in__source" data-line="28" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php.txt"></a>
</aside>
<code class="phpdocumentor-signature phpdocumentor-code ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__type">mixed</span>
<span class="phpdocumentor-signature__name">PRIMES</span>
= <span class="phpdocumentor-signature__default-value">[3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691, 701, 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997]</span>
</code>
</article>
<article class="phpdocumentor-element -constant -public ">
<h4 class="phpdocumentor-element__name" id="constant_SIGN">
SIGN
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#constant_SIGN" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-php.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php">PHP.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">40</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.40" class="phpdocumentor-element-found-in__source" data-line="40" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">$result[self::SIGN] contains the sign.</p>
<code class="phpdocumentor-signature phpdocumentor-code ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__type">mixed</span>
<span class="phpdocumentor-signature__name">SIGN</span>
= <span class="phpdocumentor-signature__default-value">1</span>
</code>
</article>
<article class="phpdocumentor-element -constant -public ">
<h4 class="phpdocumentor-element__name" id="constant_VALUE">
VALUE
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#constant_VALUE" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-php.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php">PHP.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">36</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.36" class="phpdocumentor-element-found-in__source" data-line="36" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">$result[self::VALUE] contains the value.</p>
<code class="phpdocumentor-signature phpdocumentor-code ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__type">mixed</span>
<span class="phpdocumentor-signature__name">VALUE</span>
= <span class="phpdocumentor-signature__default-value">0</span>
</code>
</article>
<article class="phpdocumentor-element -constant -public ">
<h4 class="phpdocumentor-element__name" id="constant_VARIABLE">
VARIABLE
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Base.html#constant_VARIABLE" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP/Base.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-php-base.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP/Base.php">Base.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">31</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.31" class="phpdocumentor-element-found-in__source" data-line="31" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP/Base.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Cache constants</p>
<code class="phpdocumentor-signature phpdocumentor-code ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__type">mixed</span>
<span class="phpdocumentor-signature__name">VARIABLE</span>
= <span class="phpdocumentor-signature__default-value">0</span>
</code>
<section class="phpdocumentor-description"><p>$cache[self::VARIABLE] tells us whether or not the cached data is still valid.</p>
</section>
</article>
</section>
<section class="phpdocumentor-properties">
<h3 class="phpdocumentor-elements__header" id="properties">
Properties
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#properties" class="headerlink"><i class="fas fa-link"></i></a>
</h3>
<article
class="
phpdocumentor-element
-property
-protected
"
>
<h4 class="phpdocumentor-element__name" id="property_bitmask">
$bitmask
<a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#property_bitmask" class="headerlink"><i class="fas fa-link"></i></a>
<span class="phpdocumentor-element__modifiers">
</span>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-engine.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php">Engine.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">105</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.105" class="phpdocumentor-element-found-in__source" data-line="105" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Precision Bitmask</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">protected</span>
<span class="phpdocumentor-signature__type">static|false</span>
<span class="phpdocumentor-signature__name">$bitmask</span>
= <span class="phpdocumentor-signature__default-value">false</span></code>
<h5 class="phpdocumentor-tag-list__heading" id="tags">
Tags
<a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#property_bitmask#tags" class="headerlink"><i class="fas fa-link"></i></a>
</h5>
<dl class="phpdocumentor-tag-list">
<dt class="phpdocumentor-tag-list__entry">
<span class="phpdocumentor-tag__name">see</span>
</dt>
<dd class="phpdocumentor-tag-list__definition">
<span class="phpdocumentor-tag-link"><abbr title="\phpseclib3\Math\BigInteger\Engines\static::setPrecision()">static::setPrecision()</abbr></span>
</dd>
</dl>
</article>
<article
class="
phpdocumentor-element
-property
-protected
"
>
<h4 class="phpdocumentor-element__name" id="property_hex">
$hex
<a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#property_hex" class="headerlink"><i class="fas fa-link"></i></a>
<span class="phpdocumentor-element__modifiers">
</span>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-engine.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php">Engine.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">121</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.121" class="phpdocumentor-element-found-in__source" data-line="121" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Mode independent value used for serialization.</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">protected</span>
<span class="phpdocumentor-signature__type">string</span>
<span class="phpdocumentor-signature__name">$hex</span>
</code>
<h5 class="phpdocumentor-tag-list__heading" id="tags">
Tags
<a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#property_hex#tags" class="headerlink"><i class="fas fa-link"></i></a>
</h5>
<dl class="phpdocumentor-tag-list">
<dt class="phpdocumentor-tag-list__entry">
<span class="phpdocumentor-tag__name">see</span>
</dt>
<dd class="phpdocumentor-tag-list__definition">
<span class="phpdocumentor-tag-link"><abbr title="\phpseclib3\Math\BigInteger\Engines\self::__sleep()">self::__sleep()</abbr></span>
</dd>
<dt class="phpdocumentor-tag-list__entry">
<span class="phpdocumentor-tag__name">see</span>
</dt>
<dd class="phpdocumentor-tag-list__definition">
<span class="phpdocumentor-tag-link"><abbr title="\phpseclib3\Math\BigInteger\Engines\self::__wakeup()">self::__wakeup()</abbr></span>
</dd>
</dl>
</article>
<article
class="
phpdocumentor-element
-property
-protected
"
>
<h4 class="phpdocumentor-element__name" id="property_is_negative">
$is_negative
<a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#property_is_negative" class="headerlink"><i class="fas fa-link"></i></a>
<span class="phpdocumentor-element__modifiers">
</span>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-engine.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php">Engine.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">89</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.89" class="phpdocumentor-element-found-in__source" data-line="89" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Holds the BigInteger&#039;s sign</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">protected</span>
<span class="phpdocumentor-signature__type">bool</span>
<span class="phpdocumentor-signature__name">$is_negative</span>
</code>
</article>
<article
class="
phpdocumentor-element
-property
-protected
-static "
>
<h4 class="phpdocumentor-element__name" id="property_isValidEngine">
$isValidEngine
<a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#property_isValidEngine" class="headerlink"><i class="fas fa-link"></i></a>
<span class="phpdocumentor-element__modifiers">
</span>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-engine.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php">Engine.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">75</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.75" class="phpdocumentor-element-found-in__source" data-line="75" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Engine Validity Flag</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">protected</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__type">mixed</span>
<span class="phpdocumentor-signature__name">$isValidEngine</span>
</code>
</article>
<article
class="
phpdocumentor-element
-property
-protected
-static "
>
<h4 class="phpdocumentor-element__name" id="property_modexpEngine">
$modexpEngine
<a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#property_modexpEngine" class="headerlink"><i class="fas fa-link"></i></a>
<span class="phpdocumentor-element__modifiers">
</span>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-engine.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php">Engine.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">68</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.68" class="phpdocumentor-element-found-in__source" data-line="68" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Modular Exponentiation Engine</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">protected</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__type">mixed</span>
<span class="phpdocumentor-signature__name">$modexpEngine</span>
</code>
</article>
<article
class="
phpdocumentor-element
-property
-protected
-static "
>
<h4 class="phpdocumentor-element__name" id="property_one">
$one
<a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#property_one" class="headerlink"><i class="fas fa-link"></i></a>
<span class="phpdocumentor-element__modifiers">
</span>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-engine.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php">Engine.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">54</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.54" class="phpdocumentor-element-found-in__source" data-line="54" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">BigInteger(1)</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">protected</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__type">mixed</span>
<span class="phpdocumentor-signature__name">$one</span>
= <span class="phpdocumentor-signature__default-value">[]</span></code>
</article>
<article
class="
phpdocumentor-element
-property
-protected
"
>
<h4 class="phpdocumentor-element__name" id="property_precision">
$precision
<a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#property_precision" class="headerlink"><i class="fas fa-link"></i></a>
<span class="phpdocumentor-element__modifiers">
</span>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-engine.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php">Engine.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">97</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.97" class="phpdocumentor-element-found-in__source" data-line="97" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Precision</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">protected</span>
<span class="phpdocumentor-signature__type">int</span>
<span class="phpdocumentor-signature__name">$precision</span>
= <span class="phpdocumentor-signature__default-value">-1</span></code>
<h5 class="phpdocumentor-tag-list__heading" id="tags">
Tags
<a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#property_precision#tags" class="headerlink"><i class="fas fa-link"></i></a>
</h5>
<dl class="phpdocumentor-tag-list">
<dt class="phpdocumentor-tag-list__entry">
<span class="phpdocumentor-tag__name">see</span>
</dt>
<dd class="phpdocumentor-tag-list__definition">
<span class="phpdocumentor-tag-link"><abbr title="\phpseclib3\Math\BigInteger\Engines\static::setPrecision()">static::setPrecision()</abbr></span>
</dd>
</dl>
</article>
<article
class="
phpdocumentor-element
-property
-protected
"
>
<h4 class="phpdocumentor-element__name" id="property_reduce">
$reduce
<a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#property_reduce" class="headerlink"><i class="fas fa-link"></i></a>
<span class="phpdocumentor-element__modifiers">
</span>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-engine.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php">Engine.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">112</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.112" class="phpdocumentor-element-found-in__source" data-line="112" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Recurring Modulo Function</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">protected</span>
<span class="phpdocumentor-signature__type">callable</span>
<span class="phpdocumentor-signature__name">$reduce</span>
</code>
</article>
<article
class="
phpdocumentor-element
-property
-protected
-static "
>
<h4 class="phpdocumentor-element__name" id="property_two">
$two
<a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#property_two" class="headerlink"><i class="fas fa-link"></i></a>
<span class="phpdocumentor-element__modifiers">
</span>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-engine.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php">Engine.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">61</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.61" class="phpdocumentor-element-found-in__source" data-line="61" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">BigInteger(2)</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">protected</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__type">mixed</span>
<span class="phpdocumentor-signature__name">$two</span>
= <span class="phpdocumentor-signature__default-value">[]</span></code>
</article>
<article
class="
phpdocumentor-element
-property
-protected
"
>
<h4 class="phpdocumentor-element__name" id="property_value">
$value
<a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#property_value" class="headerlink"><i class="fas fa-link"></i></a>
<span class="phpdocumentor-element__modifiers">
</span>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-engine.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php">Engine.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">82</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.82" class="phpdocumentor-element-found-in__source" data-line="82" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Holds the BigInteger&#039;s value</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">protected</span>
<span class="phpdocumentor-signature__type"><abbr title="\GMP">GMP</abbr>|string|array&lt;string|int, mixed&gt;|int</span>
<span class="phpdocumentor-signature__name">$value</span>
</code>
</article>
<article
class="
phpdocumentor-element
-property
-protected
-static "
>
<h4 class="phpdocumentor-element__name" id="property_zero">
$zero
<a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#property_zero" class="headerlink"><i class="fas fa-link"></i></a>
<span class="phpdocumentor-element__modifiers">
</span>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-engine.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php">Engine.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">47</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.47" class="phpdocumentor-element-found-in__source" data-line="47" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">BigInteger(0)</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">protected</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__type">mixed</span>
<span class="phpdocumentor-signature__name">$zero</span>
= <span class="phpdocumentor-signature__default-value">[]</span></code>
</article>
</section>
<section class="phpdocumentor-methods">
<h3 class="phpdocumentor-elements__header" id="methods">
Methods
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#methods" class="headerlink"><i class="fas fa-link"></i></a>
</h3>
<article
class="phpdocumentor-element
-method
-public
"
>
<h4 class="phpdocumentor-element__name" id="method___construct">
__construct()
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method___construct" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-php.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php">PHP.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">74</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.74" class="phpdocumentor-element-found-in__source" data-line="74" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Default constructor</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__name">__construct</span><span>(</span><span class="phpdocumentor-signature__argument"><span>[</span><span class="phpdocumentor-signature__argument__return-type">mixed&nbsp;</span><span class="phpdocumentor-signature__argument__name">$x</span><span> = </span><span class="phpdocumentor-signature__argument__default-value">0</span><span> ]</span></span><span class="phpdocumentor-signature__argument"><span>[</span><span>, </span><span class="phpdocumentor-signature__argument__return-type">int&nbsp;</span><span class="phpdocumentor-signature__argument__name">$base</span><span> = </span><span class="phpdocumentor-signature__argument__default-value">10</span><span> ]</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type"><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\PHP">PHP</abbr></a></span></code>
<div class="phpdocumentor-label-line">
</div>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$x</span>
: <span class="phpdocumentor-signature__argument__return-type">mixed</span>
= <span class="phpdocumentor-signature__argument__default-value">0</span> </dt>
<dd class="phpdocumentor-argument-list__definition">
<section class="phpdocumentor-description"><p>integer Base-10 number or base-$base number if $base set.</p>
</section>
</dd>
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$base</span>
: <span class="phpdocumentor-signature__argument__return-type">int</span>
= <span class="phpdocumentor-signature__argument__default-value">10</span> </dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
<h5 class="phpdocumentor-tag-list__heading" id="tags">
Tags
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method___construct#tags" class="headerlink"><i class="fas fa-link"></i></a>
</h5>
<dl class="phpdocumentor-tag-list">
<dt class="phpdocumentor-tag-list__entry">
<span class="phpdocumentor-tag__name">see</span>
</dt>
<dd class="phpdocumentor-tag-list__definition">
<span class="phpdocumentor-tag-link"><abbr title="\phpseclib3\Math\BigInteger\Engines\parent::__construct()">parent::__construct()</abbr></span>
</dd>
</dl>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type"><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\PHP">PHP</abbr></a></span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-public
"
>
<h4 class="phpdocumentor-element__name" id="method___debugInfo">
__debugInfo()
<a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method___debugInfo" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-engine.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php">Engine.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">403</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.403" class="phpdocumentor-element-found-in__source" data-line="403" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">__debugInfo() magic method</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__name">__debugInfo</span><span>(</span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">array&lt;string|int, mixed&gt;</span></code>
<div class="phpdocumentor-label-line">
</div>
<section class="phpdocumentor-description"><p>Will be called, automatically, when print_r() or var_dump() are called</p>
</section>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">array&lt;string|int, mixed&gt;</span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-public
"
>
<h4 class="phpdocumentor-element__name" id="method___sleep">
__sleep()
<a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method___sleep" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-engine.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php">Engine.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">341</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.341" class="phpdocumentor-element-found-in__source" data-line="341" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Serialize</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__name">__sleep</span><span>(</span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">array&lt;string|int, mixed&gt;</span></code>
<div class="phpdocumentor-label-line">
</div>
<section class="phpdocumentor-description"><p>Will be called, automatically, when serialize() is called on a BigInteger object.</p>
</section>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">array&lt;string|int, mixed&gt;</span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-public
"
>
<h4 class="phpdocumentor-element__name" id="method___toString">
__toString()
<a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method___toString" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-engine.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php">Engine.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">391</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.391" class="phpdocumentor-element-found-in__source" data-line="391" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Converts a BigInteger to a base-10 number.</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__name">__toString</span><span>(</span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">string</span></code>
<div class="phpdocumentor-label-line">
</div>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">string</span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-public
"
>
<h4 class="phpdocumentor-element__name" id="method___wakeup">
__wakeup()
<a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method___wakeup" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-engine.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php">Engine.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">358</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.358" class="phpdocumentor-element-found-in__source" data-line="358" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Serialize</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__name">__wakeup</span><span>(</span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">void</span></code>
<div class="phpdocumentor-label-line">
</div>
<section class="phpdocumentor-description"><p>Will be called, automatically, when unserialize() is called on a BigInteger object.</p>
</section>
</article>
<article
class="phpdocumentor-element
-method
-public
"
>
<h4 class="phpdocumentor-element__name" id="method_abs">
abs()
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_abs" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-php.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php">PHP.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">813</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.813" class="phpdocumentor-element-found-in__source" data-line="813" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Absolute value.</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__name">abs</span><span>(</span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type"><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\PHP">PHP</abbr></a></span></code>
<div class="phpdocumentor-label-line">
</div>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type"><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\PHP">PHP</abbr></a></span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-public
"
>
<h4 class="phpdocumentor-element__name" id="method_bitwise_leftRotate">
bitwise_leftRotate()
<a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_bitwise_leftRotate" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-engine.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php">Engine.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">532</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.532" class="phpdocumentor-element-found-in__source" data-line="532" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Logical Left Rotate</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__name">bitwise_leftRotate</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type">int&nbsp;</span><span class="phpdocumentor-signature__argument__name">$shift</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type"><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a></span></code>
<div class="phpdocumentor-label-line">
</div>
<section class="phpdocumentor-description"><p>Instead of the top x bits being dropped they're appended to the shifted bit string.</p>
</section>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$shift</span>
: <span class="phpdocumentor-signature__argument__return-type">int</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type"><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a></span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-public
"
>
<h4 class="phpdocumentor-element__name" id="method_bitwise_leftShift">
bitwise_leftShift()
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_bitwise_leftShift" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-php.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php">PHP.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">869</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.869" class="phpdocumentor-element-found-in__source" data-line="869" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Logical Left Shift</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__name">bitwise_leftShift</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type">int&nbsp;</span><span class="phpdocumentor-signature__argument__name">$shift</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type"><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\PHP">PHP</abbr></a></span></code>
<div class="phpdocumentor-label-line">
</div>
<section class="phpdocumentor-description"><p>Shifts BigInteger's by $shift bits, effectively multiplying by 2**$shift.</p>
</section>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$shift</span>
: <span class="phpdocumentor-signature__argument__return-type">int</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type"><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\PHP">PHP</abbr></a></span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-public
"
>
<h4 class="phpdocumentor-element__name" id="method_bitwise_not">
bitwise_not()
<a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_bitwise_not" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-engine.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php">Engine.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">463</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.463" class="phpdocumentor-element-found-in__source" data-line="463" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Logical Not</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__name">bitwise_not</span><span>(</span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type"><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a>|string</span></code>
<div class="phpdocumentor-label-line">
</div>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type"><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a>|string</span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-public
"
>
<h4 class="phpdocumentor-element__name" id="method_bitwise_rightRotate">
bitwise_rightRotate()
<a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_bitwise_rightRotate" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-engine.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php">Engine.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">576</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.576" class="phpdocumentor-element-found-in__source" data-line="576" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Logical Right Rotate</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__name">bitwise_rightRotate</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type">int&nbsp;</span><span class="phpdocumentor-signature__argument__name">$shift</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type"><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a></span></code>
<div class="phpdocumentor-label-line">
</div>
<section class="phpdocumentor-description"><p>Instead of the bottom x bits being dropped they're prepended to the shifted bit string.</p>
</section>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$shift</span>
: <span class="phpdocumentor-signature__argument__return-type">int</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type"><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a></span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-public
"
>
<h4 class="phpdocumentor-element__name" id="method_bitwise_rightShift">
bitwise_rightShift()
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_bitwise_rightShift" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-php.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php">PHP.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">849</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.849" class="phpdocumentor-element-found-in__source" data-line="849" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Logical Right Shift</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__name">bitwise_rightShift</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type">int&nbsp;</span><span class="phpdocumentor-signature__argument__name">$shift</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type"><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\PHP">PHP</abbr></a></span></code>
<div class="phpdocumentor-label-line">
</div>
<section class="phpdocumentor-description"><p>Shifts BigInteger's by $shift bits, effectively dividing by 2**$shift.</p>
</section>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$shift</span>
: <span class="phpdocumentor-signature__argument__return-type">int</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type"><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\PHP">PHP</abbr></a></span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-public
"
>
<h4 class="phpdocumentor-element__name" id="method_bitwise_split">
bitwise_split()
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_bitwise_split" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-php.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php">PHP.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">1222</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.1222" class="phpdocumentor-element-found-in__source" data-line="1222" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Bitwise Split</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__name">bitwise_split</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type">int&nbsp;</span><span class="phpdocumentor-signature__argument__name">$split</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">array&lt;int, static&gt;</span></code>
<div class="phpdocumentor-label-line">
</div>
<section class="phpdocumentor-description"><p>Splits BigInteger's into chunks of $split bits</p>
</section>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$split</span>
: <span class="phpdocumentor-signature__argument__return-type">int</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">array&lt;int, static&gt;</span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-public
"
>
<h4 class="phpdocumentor-element__name" id="method_createRecurringModuloFunction">
createRecurringModuloFunction()
<a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_createRecurringModuloFunction" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-engine.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php">Engine.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">1151</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.1151" class="phpdocumentor-element-found-in__source" data-line="1151" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Create Recurring Modulo Function</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__name">createRecurringModuloFunction</span><span>(</span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">callable</span></code>
<div class="phpdocumentor-label-line">
</div>
<section class="phpdocumentor-description"><p>Sometimes it may be desirable to do repeated modulos with the same number outside of
modular exponentiation</p>
</section>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">callable</span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-public
"
>
<h4 class="phpdocumentor-element__name" id="method_getLength">
getLength()
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_getLength" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-php.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php">PHP.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">1350</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.1350" class="phpdocumentor-element-found-in__source" data-line="1350" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Return the size of a BigInteger in bits</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__name">getLength</span><span>(</span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">int</span></code>
<div class="phpdocumentor-label-line">
</div>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">int</span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-public
"
>
<h4 class="phpdocumentor-element__name" id="method_getLengthInBytes">
getLengthInBytes()
<a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_getLengthInBytes" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-engine.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php">Engine.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">620</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.620" class="phpdocumentor-element-found-in__source" data-line="620" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Return the size of a BigInteger in bytes</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__name">getLengthInBytes</span><span>(</span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">int</span></code>
<div class="phpdocumentor-label-line">
</div>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">int</span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-public
"
>
<h4 class="phpdocumentor-element__name" id="method_getPrecision">
getPrecision()
<a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_getPrecision" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-engine.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php">Engine.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">442</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.442" class="phpdocumentor-element-found-in__source" data-line="442" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Get Precision</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__name">getPrecision</span><span>(</span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">int</span></code>
<div class="phpdocumentor-label-line">
</div>
<section class="phpdocumentor-description"><p>Returns the precision if it exists, -1 if it doesn't</p>
</section>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">int</span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-public
"
>
<h4 class="phpdocumentor-element__name" id="method_isNegative">
isNegative()
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_isNegative" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-php.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php">PHP.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">1194</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.1194" class="phpdocumentor-element-found-in__source" data-line="1194" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Is Negative?</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__name">isNegative</span><span>(</span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">bool</span></code>
<div class="phpdocumentor-label-line">
</div>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">bool</span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-public
"
>
<h4 class="phpdocumentor-element__name" id="method_isOdd">
isOdd()
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_isOdd" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-php.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php">PHP.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">1167</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.1167" class="phpdocumentor-element-found-in__source" data-line="1167" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Is Odd?</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__name">isOdd</span><span>(</span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">bool</span></code>
<div class="phpdocumentor-label-line">
</div>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">bool</span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-public
"
>
<h4 class="phpdocumentor-element__name" id="method_isPrime">
isPrime()
<a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_isPrime" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-engine.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php">Engine.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">996</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.996" class="phpdocumentor-element-found-in__source" data-line="996" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Checks a numer to see if it&#039;s prime</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__name">isPrime</span><span>(</span><span class="phpdocumentor-signature__argument"><span>[</span><span class="phpdocumentor-signature__argument__return-type">int|bool&nbsp;</span><span class="phpdocumentor-signature__argument__name">$t</span><span> = </span><span class="phpdocumentor-signature__argument__default-value">false</span><span> ]</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">bool</span></code>
<div class="phpdocumentor-label-line">
</div>
<section class="phpdocumentor-description"><p>Assuming the $t parameter is not set, this function has an error rate of 2**-80. The main motivation for the
$t parameter is distributability. BigInteger::randomPrime() can be distributed across multiple pageloads
on a website instead of just one.</p>
</section>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$t</span>
: <span class="phpdocumentor-signature__argument__return-type">int|bool</span>
= <span class="phpdocumentor-signature__argument__default-value">false</span> </dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">bool</span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-public
-static "
>
<h4 class="phpdocumentor-element__name" id="method_isValidEngine">
isValidEngine()
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Base.html#method_isValidEngine" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP/Base.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-php-base.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP/Base.php">Base.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">43</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.43" class="phpdocumentor-element-found-in__source" data-line="43" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP/Base.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Test for engine validity</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">isValidEngine</span><span>(</span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">bool</span></code>
<div class="phpdocumentor-label-line">
</div>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">bool</span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-public
"
>
<h4 class="phpdocumentor-element__name" id="method_jsonSerialize">
jsonSerialize()
<a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_jsonSerialize" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-engine.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php">Engine.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">376</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.376" class="phpdocumentor-element-found-in__source" data-line="376" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">JSON Serialize</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__name">jsonSerialize</span><span>(</span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">mixed</span></code>
<div class="phpdocumentor-label-line">
</div>
<section class="phpdocumentor-description"><p>Will be called, automatically, when json_encode() is called on a BigInteger object.</p>
</section>
<h5 class="phpdocumentor-tag-list__heading" id="tags">
Tags
<a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_jsonSerialize#tags" class="headerlink"><i class="fas fa-link"></i></a>
</h5>
<dl class="phpdocumentor-tag-list">
<dt class="phpdocumentor-tag-list__entry">
<span class="phpdocumentor-tag__name">@return</span>
</dt>
<dd class="phpdocumentor-tag-list__definition">
<section class="phpdocumentor-description"><p>array{hex: string, precision?: int]</p>
</section>
</dd>
</dl>
<section class="phpdocumentor-attributes">
<h5 class="phpdocumentor-elements__header" id="attributes">
Attributes <a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_jsonSerialize#attributes" class="headerlink"><i class="fas fa-link"></i></a>
</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
#[<abbr title="\ReturnTypeWillChange">ReturnTypeWillChange</abbr>]
</dt>
</dl>
</section>
</article>
<article
class="phpdocumentor-element
-method
-public
-static "
>
<h4 class="phpdocumentor-element__name" id="method_minMaxBits">
minMaxBits()
<a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_minMaxBits" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-engine.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php">Engine.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">587</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.587" class="phpdocumentor-element-found-in__source" data-line="587" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Returns the smallest and largest n-bit number</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">minMaxBits</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type">int&nbsp;</span><span class="phpdocumentor-signature__argument__name">$bits</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">array{min: static, max: static}</span></code>
<div class="phpdocumentor-label-line">
</div>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$bits</span>
: <span class="phpdocumentor-signature__argument__return-type">int</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">array{min: static, max: static}</span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-public
"
>
<h4 class="phpdocumentor-element__name" id="method_negate">
negate()
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_negate" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-php.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php">PHP.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">1206</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.1206" class="phpdocumentor-element-found-in__source" data-line="1206" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Negate</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__name">negate</span><span>(</span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">static</span></code>
<div class="phpdocumentor-label-line">
</div>
<section class="phpdocumentor-description"><p>Given $k, returns -$k</p>
</section>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">static</span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-public
-static "
>
<h4 class="phpdocumentor-element__name" id="method_random">
random()
<a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_random" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-engine.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php">Engine.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">741</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.741" class="phpdocumentor-element-found-in__source" data-line="741" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Generates a random number of a certain size</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">random</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type">int&nbsp;</span><span class="phpdocumentor-signature__argument__name">$size</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type"><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a></span></code>
<div class="phpdocumentor-label-line">
</div>
<section class="phpdocumentor-description"><p>Bit length is equal to $size</p>
</section>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$size</span>
: <span class="phpdocumentor-signature__argument__return-type">int</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type"><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a></span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-public
-static "
>
<h4 class="phpdocumentor-element__name" id="method_randomPrime">
randomPrime()
<a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_randomPrime" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-engine.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php">Engine.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">759</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.759" class="phpdocumentor-element-found-in__source" data-line="759" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Generates a random prime number of a certain size</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">randomPrime</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type">int&nbsp;</span><span class="phpdocumentor-signature__argument__name">$size</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type"><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a></span></code>
<div class="phpdocumentor-label-line">
</div>
<section class="phpdocumentor-description"><p>Bit length is equal to $size</p>
</section>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$size</span>
: <span class="phpdocumentor-signature__argument__return-type">int</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type"><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a></span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-public
"
>
<h4 class="phpdocumentor-element__name" id="method_root">
root()
<a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_root" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-engine.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php">Engine.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">1102</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.1102" class="phpdocumentor-element-found-in__source" data-line="1102" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Calculates the nth root of a biginteger.</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__name">root</span><span>(</span><span class="phpdocumentor-signature__argument"><span>[</span><span class="phpdocumentor-signature__argument__return-type">int&nbsp;</span><span class="phpdocumentor-signature__argument__name">$n</span><span> = </span><span class="phpdocumentor-signature__argument__default-value">2</span><span> ]</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type"><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a></span></code>
<div class="phpdocumentor-label-line">
</div>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$n</span>
: <span class="phpdocumentor-signature__argument__return-type">int</span>
= <span class="phpdocumentor-signature__argument__default-value">2</span> </dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type"><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a></span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-public
-static "
>
<h4 class="phpdocumentor-element__name" id="method_scan1divide">
scan1divide()
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_scan1divide" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-php.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php">PHP.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">1125</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.1125" class="phpdocumentor-element-found-in__source" data-line="1125" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Scan for 1 and right shift by that amount</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">scan1divide</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type"><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\PHP">PHP</abbr></a>&nbsp;</span><span class="phpdocumentor-signature__argument__name">$r</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">int</span></code>
<div class="phpdocumentor-label-line">
</div>
<section class="phpdocumentor-description"><p>ie. $s = gmp_scan1($n, 0) and $r = gmp_div_q($n, gmp_pow(gmp_init('2'), $s));</p>
</section>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$r</span>
: <span class="phpdocumentor-signature__argument__return-type"><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\PHP">PHP</abbr></a></span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
<h5 class="phpdocumentor-tag-list__heading" id="tags">
Tags
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_scan1divide#tags" class="headerlink"><i class="fas fa-link"></i></a>
</h5>
<dl class="phpdocumentor-tag-list">
<dt class="phpdocumentor-tag-list__entry">
<span class="phpdocumentor-tag__name">see</span>
</dt>
<dd class="phpdocumentor-tag-list__definition">
<span class="phpdocumentor-tag-link"><abbr title="\phpseclib3\Math\BigInteger\Engines\self::isPrime()">self::isPrime()</abbr></span>
</dd>
</dl>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">int</span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-public
-static "
>
<h4 class="phpdocumentor-element__name" id="method_setModExpEngine">
setModExpEngine()
<a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_setModExpEngine" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-engine.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php">Engine.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">224</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.224" class="phpdocumentor-element-found-in__source" data-line="224" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Sets engine type.</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">setModExpEngine</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type"><abbr title="class-string<\phpseclib3\Math\BigInteger\Engines\Engine>">Engine></abbr>&nbsp;</span><span class="phpdocumentor-signature__argument__name">$engine</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">mixed</span></code>
<div class="phpdocumentor-label-line">
</div>
<section class="phpdocumentor-description"><p>Throws an exception if the type is invalid</p>
</section>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$engine</span>
: <span class="phpdocumentor-signature__argument__return-type"><abbr title="class-string<\phpseclib3\Math\BigInteger\Engines\Engine>">Engine></abbr></span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
</article>
<article
class="phpdocumentor-element
-method
-public
"
>
<h4 class="phpdocumentor-element__name" id="method_setPrecision">
setPrecision()
<a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_setPrecision" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-engine.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php">Engine.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">420</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.420" class="phpdocumentor-element-found-in__source" data-line="420" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Set Precision</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__name">setPrecision</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type">int&nbsp;</span><span class="phpdocumentor-signature__argument__name">$bits</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">mixed</span></code>
<div class="phpdocumentor-label-line">
</div>
<section class="phpdocumentor-description"><p>Some bitwise operations give different results depending on the precision being used. Examples include left
shift, not, and rotates.</p>
</section>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$bits</span>
: <span class="phpdocumentor-signature__argument__return-type">int</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
</article>
<article
class="phpdocumentor-element
-method
-public
-static "
>
<h4 class="phpdocumentor-element__name" id="method_subtractHelper">
subtractHelper()
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_subtractHelper" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-php.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php">PHP.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">307</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.307" class="phpdocumentor-element-found-in__source" data-line="307" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Performs subtraction.</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">subtractHelper</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;&nbsp;</span><span class="phpdocumentor-signature__argument__name">$x_value</span></span><span class="phpdocumentor-signature__argument"><span>, </span><span class="phpdocumentor-signature__argument__return-type">bool&nbsp;</span><span class="phpdocumentor-signature__argument__name">$x_negative</span></span><span class="phpdocumentor-signature__argument"><span>, </span><span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;&nbsp;</span><span class="phpdocumentor-signature__argument__name">$y_value</span></span><span class="phpdocumentor-signature__argument"><span>, </span><span class="phpdocumentor-signature__argument__return-type">bool&nbsp;</span><span class="phpdocumentor-signature__argument__name">$y_negative</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">array&lt;string|int, mixed&gt;</span></code>
<div class="phpdocumentor-label-line">
</div>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$x_value</span>
: <span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$x_negative</span>
: <span class="phpdocumentor-signature__argument__return-type">bool</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$y_value</span>
: <span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$y_negative</span>
: <span class="phpdocumentor-signature__argument__return-type">bool</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">array&lt;string|int, mixed&gt;</span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-public
"
>
<h4 class="phpdocumentor-element__name" id="method_testBit">
testBit()
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_testBit" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-php.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php">PHP.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">1177</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.1177" class="phpdocumentor-element-found-in__source" data-line="1177" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Tests if a bit is set</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__name">testBit</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type">mixed&nbsp;</span><span class="phpdocumentor-signature__argument__name">$x</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">bool</span></code>
<div class="phpdocumentor-label-line">
</div>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$x</span>
: <span class="phpdocumentor-signature__argument__return-type">mixed</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">bool</span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-public
"
>
<h4 class="phpdocumentor-element__name" id="method_toBits">
toBits()
<a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_toBits" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-engine.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php">Engine.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">284</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.284" class="phpdocumentor-element-found-in__source" data-line="284" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Converts a BigInteger to a bit string (eg. base-2).</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__name">toBits</span><span>(</span><span class="phpdocumentor-signature__argument"><span>[</span><span class="phpdocumentor-signature__argument__return-type">bool&nbsp;</span><span class="phpdocumentor-signature__argument__name">$twos_compliment</span><span> = </span><span class="phpdocumentor-signature__argument__default-value">false</span><span> ]</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">string</span></code>
<div class="phpdocumentor-label-line">
</div>
<section class="phpdocumentor-description"><p>Negative numbers are saved as positive numbers, unless $twos_compliment is set to true, at which point, they're
saved as two's compliment.</p>
</section>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$twos_compliment</span>
: <span class="phpdocumentor-signature__argument__return-type">bool</span>
= <span class="phpdocumentor-signature__argument__default-value">false</span> </dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">string</span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-public
"
>
<h4 class="phpdocumentor-element__name" id="method_toBytes">
toBytes()
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_toBytes" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-php.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php">PHP.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">190</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.190" class="phpdocumentor-element-found-in__source" data-line="190" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Converts a BigInteger to a byte string (eg. base-256).</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__name">toBytes</span><span>(</span><span class="phpdocumentor-signature__argument"><span>[</span><span class="phpdocumentor-signature__argument__return-type">bool&nbsp;</span><span class="phpdocumentor-signature__argument__name">$twos_compliment</span><span> = </span><span class="phpdocumentor-signature__argument__default-value">false</span><span> ]</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">string</span></code>
<div class="phpdocumentor-label-line">
</div>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$twos_compliment</span>
: <span class="phpdocumentor-signature__argument__return-type">bool</span>
= <span class="phpdocumentor-signature__argument__default-value">false</span> </dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">string</span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-public
"
>
<h4 class="phpdocumentor-element__name" id="method_toHex">
toHex()
<a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_toHex" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-engine.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php">Engine.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">270</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.270" class="phpdocumentor-element-found-in__source" data-line="270" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Converts a BigInteger to a hex string (eg. base-16).</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__name">toHex</span><span>(</span><span class="phpdocumentor-signature__argument"><span>[</span><span class="phpdocumentor-signature__argument__return-type">bool&nbsp;</span><span class="phpdocumentor-signature__argument__name">$twos_compliment</span><span> = </span><span class="phpdocumentor-signature__argument__default-value">false</span><span> ]</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">string</span></code>
<div class="phpdocumentor-label-line">
</div>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$twos_compliment</span>
: <span class="phpdocumentor-signature__argument__return-type">bool</span>
= <span class="phpdocumentor-signature__argument__default-value">false</span> </dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">string</span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-public
"
>
<h4 class="phpdocumentor-element__name" id="method_toString">
toString()
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_toString" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-php.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php">PHP.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">150</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.150" class="phpdocumentor-element-found-in__source" data-line="150" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Converts a BigInteger to a base-10 number.</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__name">toString</span><span>(</span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">string</span></code>
<div class="phpdocumentor-label-line">
</div>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">string</span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-protected
-static "
>
<h4 class="phpdocumentor-element__name" id="method_addHelper">
addHelper()
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_addHelper" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-php.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php">PHP.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">222</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.222" class="phpdocumentor-element-found-in__source" data-line="222" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Performs addition.</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">protected</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">addHelper</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;&nbsp;</span><span class="phpdocumentor-signature__argument__name">$x_value</span></span><span class="phpdocumentor-signature__argument"><span>, </span><span class="phpdocumentor-signature__argument__return-type">bool&nbsp;</span><span class="phpdocumentor-signature__argument__name">$x_negative</span></span><span class="phpdocumentor-signature__argument"><span>, </span><span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;&nbsp;</span><span class="phpdocumentor-signature__argument__name">$y_value</span></span><span class="phpdocumentor-signature__argument"><span>, </span><span class="phpdocumentor-signature__argument__return-type">bool&nbsp;</span><span class="phpdocumentor-signature__argument__name">$y_negative</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">array&lt;string|int, mixed&gt;</span></code>
<div class="phpdocumentor-label-line">
</div>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$x_value</span>
: <span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$x_negative</span>
: <span class="phpdocumentor-signature__argument__return-type">bool</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$y_value</span>
: <span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$y_negative</span>
: <span class="phpdocumentor-signature__argument__return-type">bool</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">array&lt;string|int, mixed&gt;</span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-protected
-static "
>
<h4 class="phpdocumentor-element__name" id="method_array_repeat">
array_repeat()
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_array_repeat" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-php.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php">PHP.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">898</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.898" class="phpdocumentor-element-found-in__source" data-line="898" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Array Repeat</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">protected</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">array_repeat</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type">int&nbsp;</span><span class="phpdocumentor-signature__argument__name">$input</span></span><span class="phpdocumentor-signature__argument"><span>, </span><span class="phpdocumentor-signature__argument__return-type">int&nbsp;</span><span class="phpdocumentor-signature__argument__name">$multiplier</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">array&lt;string|int, mixed&gt;</span></code>
<div class="phpdocumentor-label-line">
</div>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$input</span>
: <span class="phpdocumentor-signature__argument__return-type">int</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$multiplier</span>
: <span class="phpdocumentor-signature__argument__return-type">int</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">array&lt;string|int, mixed&gt;</span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-protected
-static "
>
<h4 class="phpdocumentor-element__name" id="method_base256_lshift">
base256_lshift()
<a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_base256_lshift" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-engine.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php">Engine.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">505</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.505" class="phpdocumentor-element-found-in__source" data-line="505" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Logical Left Shift</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">protected</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">base256_lshift</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type">string&nbsp;</span><span class="phpdocumentor-signature__argument__reference-operator">&amp;</span><span class="phpdocumentor-signature__argument__name">$x</span></span><span class="phpdocumentor-signature__argument"><span>, </span><span class="phpdocumentor-signature__argument__return-type">int&nbsp;</span><span class="phpdocumentor-signature__argument__name">$shift</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">void</span></code>
<div class="phpdocumentor-label-line">
</div>
<section class="phpdocumentor-description"><p>Shifts binary strings $shift bits, essentially multiplying by 2**$shift.</p>
</section>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$x</span>
: <span class="phpdocumentor-signature__argument__return-type">string</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$shift</span>
: <span class="phpdocumentor-signature__argument__return-type">int</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
</article>
<article
class="phpdocumentor-element
-method
-protected
-static "
>
<h4 class="phpdocumentor-element__name" id="method_baseSquare">
baseSquare()
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_baseSquare" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-php.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php">PHP.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">1010</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.1010" class="phpdocumentor-element-found-in__source" data-line="1010" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Performs traditional squaring on two BigIntegers</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">protected</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">baseSquare</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;&nbsp;</span><span class="phpdocumentor-signature__argument__name">$value</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">array&lt;string|int, mixed&gt;</span></code>
<div class="phpdocumentor-label-line">
</div>
<section class="phpdocumentor-description"><p>Squaring can be done faster than multiplying a number by itself can be. See
<a href="http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf#page=7">HAC 14.2.4</a> /
<a href="http://math.libtomcrypt.com/files/tommath.pdf#page=141">MPM 5.3</a> for more information.</p>
</section>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$value</span>
: <span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">array&lt;string|int, mixed&gt;</span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-protected
"
>
<h4 class="phpdocumentor-element__name" id="method_bitwiseAndHelper">
bitwiseAndHelper()
<a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_bitwiseAndHelper" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-engine.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php">Engine.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">1249</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.1249" class="phpdocumentor-element-found-in__source" data-line="1249" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Logical And</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">protected</span>
<span class="phpdocumentor-signature__name">bitwiseAndHelper</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type"><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a>&nbsp;</span><span class="phpdocumentor-signature__argument__name">$x</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type"><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a></span></code>
<div class="phpdocumentor-label-line">
</div>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$x</span>
: <span class="phpdocumentor-signature__argument__return-type"><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a></span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type"><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a></span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-protected
"
>
<h4 class="phpdocumentor-element__name" id="method_bitwiseOrHelper">
bitwiseOrHelper()
<a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_bitwiseOrHelper" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-engine.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php">Engine.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">1268</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.1268" class="phpdocumentor-element-found-in__source" data-line="1268" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Logical Or</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">protected</span>
<span class="phpdocumentor-signature__name">bitwiseOrHelper</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type"><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a>&nbsp;</span><span class="phpdocumentor-signature__argument__name">$x</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type"><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a></span></code>
<div class="phpdocumentor-label-line">
</div>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$x</span>
: <span class="phpdocumentor-signature__argument__return-type"><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a></span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type"><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a></span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-protected
"
>
<h4 class="phpdocumentor-element__name" id="method_bitwiseXorHelper">
bitwiseXorHelper()
<a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_bitwiseXorHelper" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-engine.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php">Engine.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">1287</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.1287" class="phpdocumentor-element-found-in__source" data-line="1287" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Logical Exclusive Or</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">protected</span>
<span class="phpdocumentor-signature__name">bitwiseXorHelper</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type"><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a>&nbsp;</span><span class="phpdocumentor-signature__argument__name">$x</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type"><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a></span></code>
<div class="phpdocumentor-label-line">
</div>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$x</span>
: <span class="phpdocumentor-signature__argument__return-type"><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a></span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type"><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a></span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-protected
-static "
>
<h4 class="phpdocumentor-element__name" id="method_compareHelper">
compareHelper()
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_compareHelper" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-php.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php">PHP.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">783</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.783" class="phpdocumentor-element-found-in__source" data-line="783" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Compares two numbers.</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">protected</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">compareHelper</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;&nbsp;</span><span class="phpdocumentor-signature__argument__name">$x_value</span></span><span class="phpdocumentor-signature__argument"><span>, </span><span class="phpdocumentor-signature__argument__return-type">bool&nbsp;</span><span class="phpdocumentor-signature__argument__name">$x_negative</span></span><span class="phpdocumentor-signature__argument"><span>, </span><span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;&nbsp;</span><span class="phpdocumentor-signature__argument__name">$y_value</span></span><span class="phpdocumentor-signature__argument"><span>, </span><span class="phpdocumentor-signature__argument__return-type">bool&nbsp;</span><span class="phpdocumentor-signature__argument__name">$y_negative</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">int</span></code>
<div class="phpdocumentor-label-line">
</div>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$x_value</span>
: <span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$x_negative</span>
: <span class="phpdocumentor-signature__argument__return-type">bool</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$y_value</span>
: <span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$y_negative</span>
: <span class="phpdocumentor-signature__argument__return-type">bool</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
<h5 class="phpdocumentor-tag-list__heading" id="tags">
Tags
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_compareHelper#tags" class="headerlink"><i class="fas fa-link"></i></a>
</h5>
<dl class="phpdocumentor-tag-list">
<dt class="phpdocumentor-tag-list__entry">
<span class="phpdocumentor-tag__name">see</span>
</dt>
<dd class="phpdocumentor-tag-list__definition">
<span class="phpdocumentor-tag-link"><abbr title="\phpseclib3\Math\BigInteger\Engines\static::compare()">static::compare()</abbr></span>
</dd>
</dl>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">int</span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-protected
"
>
<h4 class="phpdocumentor-element__name" id="method_convertToObj">
convertToObj()
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_convertToObj" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-php.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php">PHP.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">728</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.728" class="phpdocumentor-element-found-in__source" data-line="728" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Convert an array / boolean to a PHP BigInteger object</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">protected</span>
<span class="phpdocumentor-signature__name">convertToObj</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;&nbsp;</span><span class="phpdocumentor-signature__argument__name">$arr</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">static</span></code>
<div class="phpdocumentor-label-line">
</div>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$arr</span>
: <span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">static</span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-protected
"
>
<h4 class="phpdocumentor-element__name" id="method_extendedGCDHelper">
extendedGCDHelper()
<a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_extendedGCDHelper" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-engine.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php">Engine.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">1180</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.1180" class="phpdocumentor-element-found-in__source" data-line="1180" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Calculates the greatest common divisor and Bezout&#039;s identity.</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">protected</span>
<span class="phpdocumentor-signature__name">extendedGCDHelper</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type"><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a>&nbsp;</span><span class="phpdocumentor-signature__argument__name">$n</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type"><abbr title="array{gcd: \phpseclib3\Math\BigInteger\Engines\Engine, x: \phpseclib3\Math\BigInteger\Engines\Engine, y: \phpseclib3\Math\BigInteger\Engines\Engine}">Engine}</abbr></span></code>
<div class="phpdocumentor-label-line">
</div>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$n</span>
: <span class="phpdocumentor-signature__argument__return-type"><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a></span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type"><abbr title="array{gcd: \phpseclib3\Math\BigInteger\Engines\Engine, x: \phpseclib3\Math\BigInteger\Engines\Engine, y: \phpseclib3\Math\BigInteger\Engines\Engine}">Engine}</abbr></span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-protected
"
>
<h4 class="phpdocumentor-element__name" id="method_initialize">
initialize()
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_initialize" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-php.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php">PHP.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">93</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.93" class="phpdocumentor-element-found-in__source" data-line="93" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Initialize a PHP BigInteger Engine instance</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">protected</span>
<span class="phpdocumentor-signature__name">initialize</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type">int&nbsp;</span><span class="phpdocumentor-signature__argument__name">$base</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">mixed</span></code>
<div class="phpdocumentor-label-line">
</div>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$base</span>
: <span class="phpdocumentor-signature__argument__return-type">int</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
<h5 class="phpdocumentor-tag-list__heading" id="tags">
Tags
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_initialize#tags" class="headerlink"><i class="fas fa-link"></i></a>
</h5>
<dl class="phpdocumentor-tag-list">
<dt class="phpdocumentor-tag-list__entry">
<span class="phpdocumentor-tag__name">see</span>
</dt>
<dd class="phpdocumentor-tag-list__definition">
<span class="phpdocumentor-tag-link"><abbr title="\phpseclib3\Math\BigInteger\Engines\parent::__construct()">parent::__construct()</abbr></span>
</dd>
</dl>
</article>
<article
class="phpdocumentor-element
-method
-protected
-static "
>
<h4 class="phpdocumentor-element__name" id="method_karatsubaSquare">
karatsubaSquare()
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_karatsubaSquare" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-php.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php">PHP.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">1048</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.1048" class="phpdocumentor-element-found-in__source" data-line="1048" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Performs Karatsuba &quot;squaring&quot; on two BigIntegers</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">protected</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">karatsubaSquare</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;&nbsp;</span><span class="phpdocumentor-signature__argument__name">$value</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">array&lt;string|int, mixed&gt;</span></code>
<div class="phpdocumentor-label-line">
</div>
<section class="phpdocumentor-description"><p>See <a href="http://en.wikipedia.org/wiki/Karatsuba_algorithm">Karatsuba algorithm</a> and
<a href="http://math.libtomcrypt.com/files/tommath.pdf#page=151">MPM 5.3.4</a>.</p>
</section>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$value</span>
: <span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">array&lt;string|int, mixed&gt;</span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-protected
"
>
<h4 class="phpdocumentor-element__name" id="method_lshift">
lshift()
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_lshift" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-php.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php">PHP.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">910</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.910" class="phpdocumentor-element-found-in__source" data-line="910" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Logical Left Shift</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">protected</span>
<span class="phpdocumentor-signature__name">lshift</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type">int&nbsp;</span><span class="phpdocumentor-signature__argument__name">$shift</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">mixed</span></code>
<div class="phpdocumentor-label-line">
</div>
<section class="phpdocumentor-description"><p>Shifts BigInteger's by $shift bits.</p>
</section>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$shift</span>
: <span class="phpdocumentor-signature__argument__return-type">int</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
</article>
<article
class="phpdocumentor-element
-method
-protected
"
>
<h4 class="phpdocumentor-element__name" id="method_make_odd">
make_odd()
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_make_odd" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-php.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php">PHP.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">1083</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.1083" class="phpdocumentor-element-found-in__source" data-line="1083" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Make the current number odd</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">protected</span>
<span class="phpdocumentor-signature__name">make_odd</span><span>(</span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">mixed</span></code>
<div class="phpdocumentor-label-line">
</div>
<section class="phpdocumentor-description"><p>If the current number is odd it'll be unchanged. If it's even, one will be added to it.</p>
</section>
<h5 class="phpdocumentor-tag-list__heading" id="tags">
Tags
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_make_odd#tags" class="headerlink"><i class="fas fa-link"></i></a>
</h5>
<dl class="phpdocumentor-tag-list">
<dt class="phpdocumentor-tag-list__entry">
<span class="phpdocumentor-tag__name">see</span>
</dt>
<dd class="phpdocumentor-tag-list__definition">
<span class="phpdocumentor-tag-link"><abbr title="\phpseclib3\Math\BigInteger\Engines\self::randomPrime()">self::randomPrime()</abbr></span>
</dd>
</dl>
</article>
<article
class="phpdocumentor-element
-method
-protected
-static "
>
<h4 class="phpdocumentor-element__name" id="method_maxHelper">
maxHelper()
<a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_maxHelper" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-engine.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php">Engine.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">1131</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.1131" class="phpdocumentor-element-found-in__source" data-line="1131" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Return the minimum BigInteger between an arbitrary number of BigIntegers.</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">protected</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">maxHelper</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;&nbsp;</span><span class="phpdocumentor-signature__argument__name">$nums</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type"><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a></span></code>
<div class="phpdocumentor-label-line">
</div>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$nums</span>
: <span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type"><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a></span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-protected
-static "
>
<h4 class="phpdocumentor-element__name" id="method_minHelper">
minHelper()
<a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_minHelper" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-engine.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php">Engine.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">1113</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.1113" class="phpdocumentor-element-found-in__source" data-line="1113" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Return the minimum BigInteger between an arbitrary number of BigIntegers.</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">protected</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">minHelper</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;&nbsp;</span><span class="phpdocumentor-signature__argument__name">$nums</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type"><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a></span></code>
<div class="phpdocumentor-label-line">
</div>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$nums</span>
: <span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type"><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a></span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-protected
"
>
<h4 class="phpdocumentor-element__name" id="method_modInverseHelper">
modInverseHelper()
<a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_modInverseHelper" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-engine.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php">Engine.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">308</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.308" class="phpdocumentor-element-found-in__source" data-line="308" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Calculates modular inverses.</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">protected</span>
<span class="phpdocumentor-signature__name">modInverseHelper</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type"><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a>&nbsp;</span><span class="phpdocumentor-signature__argument__name">$n</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">static|false</span></code>
<div class="phpdocumentor-label-line">
</div>
<section class="phpdocumentor-description"><p>Say you have (30 mod 17 * x mod 17) mod 17 == 1. x can be found using modular inverses.</p>
</section>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$n</span>
: <span class="phpdocumentor-signature__argument__return-type"><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a></span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">static|false</span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-protected
-static "
>
<h4 class="phpdocumentor-element__name" id="method_multiplyHelper">
multiplyHelper()
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_multiplyHelper" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-php.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php">PHP.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">397</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.397" class="phpdocumentor-element-found-in__source" data-line="397" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Performs multiplication.</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">protected</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">multiplyHelper</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;&nbsp;</span><span class="phpdocumentor-signature__argument__name">$x_value</span></span><span class="phpdocumentor-signature__argument"><span>, </span><span class="phpdocumentor-signature__argument__return-type">bool&nbsp;</span><span class="phpdocumentor-signature__argument__name">$x_negative</span></span><span class="phpdocumentor-signature__argument"><span>, </span><span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;&nbsp;</span><span class="phpdocumentor-signature__argument__name">$y_value</span></span><span class="phpdocumentor-signature__argument"><span>, </span><span class="phpdocumentor-signature__argument__return-type">bool&nbsp;</span><span class="phpdocumentor-signature__argument__name">$y_negative</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">array&lt;string|int, mixed&gt;</span></code>
<div class="phpdocumentor-label-line">
</div>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$x_value</span>
: <span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$x_negative</span>
: <span class="phpdocumentor-signature__argument__return-type">bool</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$y_value</span>
: <span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$y_negative</span>
: <span class="phpdocumentor-signature__argument__return-type">bool</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">array&lt;string|int, mixed&gt;</span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-protected
-static "
>
<h4 class="phpdocumentor-element__name" id="method_multiplyReduce">
multiplyReduce()
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Base.html#method_multiplyReduce" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP/Base.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-php-base.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP/Base.php">Base.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">124</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.124" class="phpdocumentor-element-found-in__source" data-line="124" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP/Base.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Modular multiply</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">protected</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">multiplyReduce</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;&nbsp;</span><span class="phpdocumentor-signature__argument__name">$x</span></span><span class="phpdocumentor-signature__argument"><span>, </span><span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;&nbsp;</span><span class="phpdocumentor-signature__argument__name">$y</span></span><span class="phpdocumentor-signature__argument"><span>, </span><span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;&nbsp;</span><span class="phpdocumentor-signature__argument__name">$n</span></span><span class="phpdocumentor-signature__argument"><span>, </span><span class="phpdocumentor-signature__argument__return-type">string&nbsp;</span><span class="phpdocumentor-signature__argument__name">$class</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">array&lt;string|int, mixed&gt;</span></code>
<div class="phpdocumentor-label-line">
</div>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$x</span>
: <span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$y</span>
: <span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$n</span>
: <span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$class</span>
: <span class="phpdocumentor-signature__argument__return-type">string</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
<h5 class="phpdocumentor-tag-list__heading" id="tags">
Tags
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Base.html#method_multiplyReduce#tags" class="headerlink"><i class="fas fa-link"></i></a>
</h5>
<dl class="phpdocumentor-tag-list">
<dt class="phpdocumentor-tag-list__entry">
<span class="phpdocumentor-tag__name">see</span>
</dt>
<dd class="phpdocumentor-tag-list__definition">
<span class="phpdocumentor-tag-link"><abbr title="\phpseclib3\Math\BigInteger\Engines\PHP\self::slidingWindow()">self::slidingWindow()</abbr></span>
</dd>
</dl>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">array&lt;string|int, mixed&gt;</span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-protected
"
>
<h4 class="phpdocumentor-element__name" id="method_normalize">
normalize()
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_normalize" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-php.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php">PHP.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">745</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.745" class="phpdocumentor-element-found-in__source" data-line="745" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Normalize</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">protected</span>
<span class="phpdocumentor-signature__name">normalize</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type"><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\PHP">PHP</abbr></a>&nbsp;</span><span class="phpdocumentor-signature__argument__name">$result</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">static</span></code>
<div class="phpdocumentor-label-line">
</div>
<section class="phpdocumentor-description"><p>Removes leading zeros and truncates (if necessary) to maintain the appropriate precision</p>
</section>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$result</span>
: <span class="phpdocumentor-signature__argument__return-type"><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\PHP">PHP</abbr></a></span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">static</span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-protected
"
>
<h4 class="phpdocumentor-element__name" id="method_pad">
pad()
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_pad" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-php.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php">PHP.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">136</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.136" class="phpdocumentor-element-found-in__source" data-line="136" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Pads strings so that unpack may be used on them</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">protected</span>
<span class="phpdocumentor-signature__name">pad</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type">string&nbsp;</span><span class="phpdocumentor-signature__argument__name">$str</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">string</span></code>
<div class="phpdocumentor-label-line">
</div>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$str</span>
: <span class="phpdocumentor-signature__argument__return-type">string</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">string</span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-protected
"
>
<h4 class="phpdocumentor-element__name" id="method_powHelper">
powHelper()
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_powHelper" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-php.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php">PHP.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">1147</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.1147" class="phpdocumentor-element-found-in__source" data-line="1147" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Performs exponentiation.</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">protected</span>
<span class="phpdocumentor-signature__name">powHelper</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type"><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\PHP">PHP</abbr></a>&nbsp;</span><span class="phpdocumentor-signature__argument__name">$n</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type"><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\PHP">PHP</abbr></a></span></code>
<div class="phpdocumentor-label-line">
</div>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$n</span>
: <span class="phpdocumentor-signature__argument__return-type"><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\PHP">PHP</abbr></a></span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type"><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\PHP">PHP</abbr></a></span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-protected
-static "
>
<h4 class="phpdocumentor-element__name" id="method_powModHelper">
powModHelper()
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Base.html#method_powModHelper" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP/Base.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-php-base.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP/Base.php">Base.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">77</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.77" class="phpdocumentor-element-found-in__source" data-line="77" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP/Base.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Performs modular exponentiation.</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">protected</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">powModHelper</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type"><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\PHP">PHP</abbr></a>&nbsp;</span><span class="phpdocumentor-signature__argument__name">$x</span></span><span class="phpdocumentor-signature__argument"><span>, </span><span class="phpdocumentor-signature__argument__return-type"><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\PHP">PHP</abbr></a>&nbsp;</span><span class="phpdocumentor-signature__argument__name">$e</span></span><span class="phpdocumentor-signature__argument"><span>, </span><span class="phpdocumentor-signature__argument__return-type"><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\PHP">PHP</abbr></a>&nbsp;</span><span class="phpdocumentor-signature__argument__name">$n</span></span><span class="phpdocumentor-signature__argument"><span>, </span><span class="phpdocumentor-signature__argument__return-type">string&nbsp;</span><span class="phpdocumentor-signature__argument__name">$class</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type"><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\PHP">PHP</abbr></a></span></code>
<div class="phpdocumentor-label-line">
</div>
<section class="phpdocumentor-description"><p>The most naive approach to modular exponentiation has very unreasonable requirements, and
and although the approach involving repeated squaring does vastly better, it, too, is impractical
for our purposes. The reason being that division - by far the most complicated and time-consuming
of the basic operations (eg. +,-,*,/) - occurs multiple times within it.</p>
<p>Modular reductions resolve this issue. Although an individual modular reduction takes more time
then an individual division, when performed in succession (with the same modulo), they're a lot faster.</p>
<p>The two most commonly used modular reductions are Barrett and Montgomery reduction. Montgomery reduction,
although faster, only works when the gcd of the modulo and of the base being used is 1. In RSA, when the
base is a power of two, the modulo - a product of two primes - is always going to have a gcd of 1 (because
the product of two odd numbers is odd), but what about when RSA isn't used?</p>
<p>In contrast, Barrett reduction has no such constraint. As such, some bigint implementations perform a
Barrett reduction after every operation in the modpow function. Others perform Barrett reductions when the
modulo is even and Montgomery reductions when the modulo is odd. BigInteger.java's modPow method, however,
uses a trick involving the Chinese Remainder Theorem to factor the even modulo into two numbers - one odd and
the other, a power of two - and recombine them, later. This is the method that this modPow function uses.
<a href="http://islab.oregonstate.edu/papers/j34monex.pdf">Montgomery Reduction with Even Modulus</a> elaborates.</p>
</section>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$x</span>
: <span class="phpdocumentor-signature__argument__return-type"><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\PHP">PHP</abbr></a></span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$e</span>
: <span class="phpdocumentor-signature__argument__return-type"><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\PHP">PHP</abbr></a></span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$n</span>
: <span class="phpdocumentor-signature__argument__return-type"><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\PHP">PHP</abbr></a></span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$class</span>
: <span class="phpdocumentor-signature__argument__return-type">string</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type"><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\PHP">PHP</abbr></a></span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-protected
"
>
<h4 class="phpdocumentor-element__name" id="method_powModInner">
powModInner()
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_powModInner" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-php.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php">PHP.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">977</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.977" class="phpdocumentor-element-found-in__source" data-line="977" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Performs modular exponentiation.</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">protected</span>
<span class="phpdocumentor-signature__name">powModInner</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type"><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\PHP">PHP</abbr></a>&nbsp;</span><span class="phpdocumentor-signature__argument__name">$e</span></span><span class="phpdocumentor-signature__argument"><span>, </span><span class="phpdocumentor-signature__argument__return-type"><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\PHP">PHP</abbr></a>&nbsp;</span><span class="phpdocumentor-signature__argument__name">$n</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type"><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\PHP">PHP</abbr></a></span></code>
<div class="phpdocumentor-label-line">
</div>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$e</span>
: <span class="phpdocumentor-signature__argument__return-type"><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\PHP">PHP</abbr></a></span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$n</span>
: <span class="phpdocumentor-signature__argument__return-type"><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\PHP">PHP</abbr></a></span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type"><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\PHP">PHP</abbr></a></span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-protected
"
>
<h4 class="phpdocumentor-element__name" id="method_powModOuter">
powModOuter()
<a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_powModOuter" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-engine.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php">Engine.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">632</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.632" class="phpdocumentor-element-found-in__source" data-line="632" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Performs some pre-processing for powMod</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">protected</span>
<span class="phpdocumentor-signature__name">powModOuter</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type"><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a>&nbsp;</span><span class="phpdocumentor-signature__argument__name">$e</span></span><span class="phpdocumentor-signature__argument"><span>, </span><span class="phpdocumentor-signature__argument__return-type"><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a>&nbsp;</span><span class="phpdocumentor-signature__argument__name">$n</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">static|false</span></code>
<div class="phpdocumentor-label-line">
</div>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$e</span>
: <span class="phpdocumentor-signature__argument__return-type"><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a></span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$n</span>
: <span class="phpdocumentor-signature__argument__return-type"><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a></span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">static|false</span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-protected
-static "
>
<h4 class="phpdocumentor-element__name" id="method_prepareReduce">
prepareReduce()
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Base.html#method_prepareReduce" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP/Base.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-php-base.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP/Base.php">Base.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">109</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.109" class="phpdocumentor-element-found-in__source" data-line="109" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP/Base.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Modular reduction preparation</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">protected</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">prepareReduce</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;&nbsp;</span><span class="phpdocumentor-signature__argument__name">$x</span></span><span class="phpdocumentor-signature__argument"><span>, </span><span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;&nbsp;</span><span class="phpdocumentor-signature__argument__name">$n</span></span><span class="phpdocumentor-signature__argument"><span>, </span><span class="phpdocumentor-signature__argument__return-type">string&nbsp;</span><span class="phpdocumentor-signature__argument__name">$class</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">array&lt;string|int, mixed&gt;</span></code>
<div class="phpdocumentor-label-line">
</div>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$x</span>
: <span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$n</span>
: <span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$class</span>
: <span class="phpdocumentor-signature__argument__return-type">string</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
<h5 class="phpdocumentor-tag-list__heading" id="tags">
Tags
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Base.html#method_prepareReduce#tags" class="headerlink"><i class="fas fa-link"></i></a>
</h5>
<dl class="phpdocumentor-tag-list">
<dt class="phpdocumentor-tag-list__entry">
<span class="phpdocumentor-tag__name">see</span>
</dt>
<dd class="phpdocumentor-tag-list__definition">
<span class="phpdocumentor-tag-link"><abbr title="\phpseclib3\Math\BigInteger\Engines\PHP\self::slidingWindow()">self::slidingWindow()</abbr></span>
</dd>
</dl>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">array&lt;string|int, mixed&gt;</span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-protected
-static "
>
<h4 class="phpdocumentor-element__name" id="method_randomRangeHelper">
randomRangeHelper()
<a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_randomRangeHelper" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-engine.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php">Engine.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">812</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.812" class="phpdocumentor-element-found-in__source" data-line="812" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Generate a random number between a range</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">protected</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">randomRangeHelper</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type"><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a>&nbsp;</span><span class="phpdocumentor-signature__argument__name">$min</span></span><span class="phpdocumentor-signature__argument"><span>, </span><span class="phpdocumentor-signature__argument__return-type"><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a>&nbsp;</span><span class="phpdocumentor-signature__argument__name">$max</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type"><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a></span></code>
<div class="phpdocumentor-label-line">
</div>
<section class="phpdocumentor-description"><p>Returns a random number between $min and $max where $min and $max
can be defined using one of the two methods:</p>
<p>BigInteger::randomRange($min, $max)
BigInteger::randomRange($max, $min)</p>
</section>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$min</span>
: <span class="phpdocumentor-signature__argument__return-type"><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a></span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$max</span>
: <span class="phpdocumentor-signature__argument__return-type"><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a></span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type"><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a></span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-protected
-static "
>
<h4 class="phpdocumentor-element__name" id="method_randomRangePrimeInner">
randomRangePrimeInner()
<a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_randomRangePrimeInner" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-engine.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php">Engine.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">876</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.876" class="phpdocumentor-element-found-in__source" data-line="876" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Performs some post-processing for randomRangePrime</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">protected</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">randomRangePrimeInner</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type"><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a>&nbsp;</span><span class="phpdocumentor-signature__argument__name">$x</span></span><span class="phpdocumentor-signature__argument"><span>, </span><span class="phpdocumentor-signature__argument__return-type"><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a>&nbsp;</span><span class="phpdocumentor-signature__argument__name">$min</span></span><span class="phpdocumentor-signature__argument"><span>, </span><span class="phpdocumentor-signature__argument__return-type"><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a>&nbsp;</span><span class="phpdocumentor-signature__argument__name">$max</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">static|false</span></code>
<div class="phpdocumentor-label-line">
</div>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$x</span>
: <span class="phpdocumentor-signature__argument__return-type"><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a></span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$min</span>
: <span class="phpdocumentor-signature__argument__return-type"><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a></span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$max</span>
: <span class="phpdocumentor-signature__argument__return-type"><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a></span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">static|false</span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-protected
-static "
>
<h4 class="phpdocumentor-element__name" id="method_randomRangePrimeOuter">
randomRangePrimeOuter()
<a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_randomRangePrimeOuter" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-engine.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php">Engine.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">776</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.776" class="phpdocumentor-element-found-in__source" data-line="776" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Performs some pre-processing for randomRangePrime</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">protected</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">randomRangePrimeOuter</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type"><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a>&nbsp;</span><span class="phpdocumentor-signature__argument__name">$min</span></span><span class="phpdocumentor-signature__argument"><span>, </span><span class="phpdocumentor-signature__argument__return-type"><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a>&nbsp;</span><span class="phpdocumentor-signature__argument__name">$max</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">static|false</span></code>
<div class="phpdocumentor-label-line">
</div>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$min</span>
: <span class="phpdocumentor-signature__argument__return-type"><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a></span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$max</span>
: <span class="phpdocumentor-signature__argument__return-type"><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a></span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">static|false</span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-protected
-static "
>
<h4 class="phpdocumentor-element__name" id="method_reduce">
reduce()
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#method_reduce" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP/Reductions/Barrett.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-php-reductions-barrett.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP/Reductions/Barrett.php">Barrett.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">49</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.49" class="phpdocumentor-element-found-in__source" data-line="49" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP/Reductions/Barrett.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Barrett Modular Reduction</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">protected</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">reduce</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;&nbsp;</span><span class="phpdocumentor-signature__argument__name">$n</span></span><span class="phpdocumentor-signature__argument"><span>, </span><span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;&nbsp;</span><span class="phpdocumentor-signature__argument__name">$m</span></span><span class="phpdocumentor-signature__argument"><span>, </span><span class="phpdocumentor-signature__argument__return-type"><abbr title="class-string<\phpseclib3\Math\BigInteger\Engines\PHP>">PHP></abbr>&nbsp;</span><span class="phpdocumentor-signature__argument__name">$class</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">array&lt;string|int, mixed&gt;</span></code>
<div class="phpdocumentor-label-line">
</div>
<section class="phpdocumentor-description"><p>See <a href="http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf#page=14">HAC 14.3.3</a> /
<a href="http://math.libtomcrypt.com/files/tommath.pdf#page=165">MPM 6.2.5</a> for more information. Modified slightly,
so as not to require negative numbers (initially, this script didn't support negative numbers).</p>
<p>Employs &quot;folding&quot;, as described at
<a href="http://www.cosic.esat.kuleuven.be/publications/thesis-149.pdf#page=66">thesis-149.pdf#page=66</a>. To quote from
it, &quot;the idea [behind folding] is to find a value x' such that x (mod m) = x' (mod m), with x' being smaller than x.&quot;</p>
<p>Unfortunately, the &quot;Barrett Reduction with Folding&quot; algorithm described in thesis-149.pdf is not, as written, all that
usable on account of (1) its not using reasonable radix points as discussed in
<a href="http://math.libtomcrypt.com/files/tommath.pdf#page=162">MPM 6.2.2</a> and (2) the fact that, even with reasonable
radix points, it only works when there are an even number of digits in the denominator. The reason for (2) is that
(x &gt;&gt; 1) + (x &gt;&gt; 1) != x / 2 + x / 2. If x is even, they're the same, but if x is odd, they're not. See the in-line
comments for details.</p>
</section>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$n</span>
: <span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$m</span>
: <span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$class</span>
: <span class="phpdocumentor-signature__argument__return-type"><abbr title="class-string<\phpseclib3\Math\BigInteger\Engines\PHP>">PHP></abbr></span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">array&lt;string|int, mixed&gt;</span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-protected
-static "
>
<h4 class="phpdocumentor-element__name" id="method_regularMultiply">
regularMultiply()
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_regularMultiply" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-php.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php">PHP.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">474</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.474" class="phpdocumentor-element-found-in__source" data-line="474" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Performs long multiplication on two BigIntegers</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">protected</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">regularMultiply</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;&nbsp;</span><span class="phpdocumentor-signature__argument__name">$x_value</span></span><span class="phpdocumentor-signature__argument"><span>, </span><span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;&nbsp;</span><span class="phpdocumentor-signature__argument__name">$y_value</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">array&lt;string|int, mixed&gt;</span></code>
<div class="phpdocumentor-label-line">
</div>
<section class="phpdocumentor-description"><p>Modeled after 'multiply' in MutableBigInteger.java.</p>
</section>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$x_value</span>
: <span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$y_value</span>
: <span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">array&lt;string|int, mixed&gt;</span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-protected
"
>
<h4 class="phpdocumentor-element__name" id="method_rootHelper">
rootHelper()
<a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_rootHelper" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-engine.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php">Engine.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">1019</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.1019" class="phpdocumentor-element-found-in__source" data-line="1019" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Performs a few preliminary checks on root</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">protected</span>
<span class="phpdocumentor-signature__name">rootHelper</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type">int&nbsp;</span><span class="phpdocumentor-signature__argument__name">$n</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type"><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a></span></code>
<div class="phpdocumentor-label-line">
</div>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$n</span>
: <span class="phpdocumentor-signature__argument__return-type">int</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type"><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a></span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-protected
"
>
<h4 class="phpdocumentor-element__name" id="method_rootInner">
rootInner()
<a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_rootInner" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-engine.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php">Engine.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">1044</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.1044" class="phpdocumentor-element-found-in__source" data-line="1044" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Calculates the nth root of a biginteger.</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">protected</span>
<span class="phpdocumentor-signature__name">rootInner</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type">int&nbsp;</span><span class="phpdocumentor-signature__argument__name">$n</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type"><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a></span></code>
<div class="phpdocumentor-label-line">
</div>
<section class="phpdocumentor-description"><p>Returns the nth root of a positive biginteger, where n defaults to 2</p>
</section>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$n</span>
: <span class="phpdocumentor-signature__argument__return-type">int</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type"><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a></span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-protected
"
>
<h4 class="phpdocumentor-element__name" id="method_rshift">
rshift()
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_rshift" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-php.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php">PHP.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">944</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.944" class="phpdocumentor-element-found-in__source" data-line="944" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Logical Right Shift</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">protected</span>
<span class="phpdocumentor-signature__name">rshift</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type">int&nbsp;</span><span class="phpdocumentor-signature__argument__name">$shift</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">mixed</span></code>
<div class="phpdocumentor-label-line">
</div>
<section class="phpdocumentor-description"><p>Shifts BigInteger's by $shift bits.</p>
</section>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$shift</span>
: <span class="phpdocumentor-signature__argument__return-type">int</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
</article>
<article
class="phpdocumentor-element
-method
-protected
-static "
>
<h4 class="phpdocumentor-element__name" id="method_setBitmask">
setBitmask()
<a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_setBitmask" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-engine.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php">Engine.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">453</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.453" class="phpdocumentor-element-found-in__source" data-line="453" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Set Bitmask</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">protected</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">setBitmask</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type">int&nbsp;</span><span class="phpdocumentor-signature__argument__name">$bits</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">static</span></code>
<div class="phpdocumentor-label-line">
</div>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$bits</span>
: <span class="phpdocumentor-signature__argument__return-type">int</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
<h5 class="phpdocumentor-tag-list__heading" id="tags">
Tags
<a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_setBitmask#tags" class="headerlink"><i class="fas fa-link"></i></a>
</h5>
<dl class="phpdocumentor-tag-list">
<dt class="phpdocumentor-tag-list__entry">
<span class="phpdocumentor-tag__name">see</span>
</dt>
<dd class="phpdocumentor-tag-list__definition">
<span class="phpdocumentor-tag-link"><abbr title="\phpseclib3\Math\BigInteger\Engines\self::setPrecision()">self::setPrecision()</abbr></span>
</dd>
</dl>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">static</span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-protected
"
>
<h4 class="phpdocumentor-element__name" id="method_setupIsPrime">
setupIsPrime()
<a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_setupIsPrime" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-engine.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php">Engine.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">920</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.920" class="phpdocumentor-element-found-in__source" data-line="920" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Sets the $t parameter for primality testing</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">protected</span>
<span class="phpdocumentor-signature__name">setupIsPrime</span><span>(</span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">int</span></code>
<div class="phpdocumentor-label-line">
</div>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">int</span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-protected
-static "
>
<h4 class="phpdocumentor-element__name" id="method_slidingWindow">
slidingWindow()
<a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_slidingWindow" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-engine.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php">Engine.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">670</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.670" class="phpdocumentor-element-found-in__source" data-line="670" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Sliding Window k-ary Modular Exponentiation</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">protected</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">slidingWindow</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type"><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a>&nbsp;</span><span class="phpdocumentor-signature__argument__name">$x</span></span><span class="phpdocumentor-signature__argument"><span>, </span><span class="phpdocumentor-signature__argument__return-type"><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a>&nbsp;</span><span class="phpdocumentor-signature__argument__name">$e</span></span><span class="phpdocumentor-signature__argument"><span>, </span><span class="phpdocumentor-signature__argument__return-type"><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a>&nbsp;</span><span class="phpdocumentor-signature__argument__name">$n</span></span><span class="phpdocumentor-signature__argument"><span>, </span><span class="phpdocumentor-signature__argument__return-type"><abbr title="class-string<\phpseclib3\Math\BigInteger\Engines\T>">T></abbr>&nbsp;</span><span class="phpdocumentor-signature__argument__name">$class</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type"><abbr title="\phpseclib3\Math\BigInteger\Engines\T">T</abbr></span></code>
<div class="phpdocumentor-label-line">
</div>
<section class="phpdocumentor-description"><p>Based on <a href="http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf#page=27">HAC 14.85</a> /
<a href="http://math.libtomcrypt.com/files/tommath.pdf#page=210">MPM 7.7</a>. In a departure from those algorithims,
however, this function performs a modular reduction after every multiplication and squaring operation.
As such, this function has the same preconditions that the reductions being used do.</p>
</section>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$x</span>
: <span class="phpdocumentor-signature__argument__return-type"><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a></span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$e</span>
: <span class="phpdocumentor-signature__argument__return-type"><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a></span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$n</span>
: <span class="phpdocumentor-signature__argument__return-type"><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html"><abbr title="\phpseclib3\Math\BigInteger\Engines\Engine">Engine</abbr></a></span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$class</span>
: <span class="phpdocumentor-signature__argument__return-type"><abbr title="class-string<\phpseclib3\Math\BigInteger\Engines\T>">T></abbr></span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
<h5 class="phpdocumentor-tag-list__heading" id="tags">
Tags
<a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_slidingWindow#tags" class="headerlink"><i class="fas fa-link"></i></a>
</h5>
<dl class="phpdocumentor-tag-list">
<dt class="phpdocumentor-tag-list__entry">
<span class="phpdocumentor-tag__name">template</span>
</dt>
<dd class="phpdocumentor-tag-list__definition">
</dd>
</dl>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type"><abbr title="\phpseclib3\Math\BigInteger\Engines\T">T</abbr></span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-protected
-static "
>
<h4 class="phpdocumentor-element__name" id="method_square">
square()
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_square" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-php.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php">PHP.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">993</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.993" class="phpdocumentor-element-found-in__source" data-line="993" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Performs squaring</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">protected</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">square</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type">array&lt;int, static&gt;&nbsp;</span><span class="phpdocumentor-signature__argument__name">$x</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">array&lt;int, static&gt;</span></code>
<div class="phpdocumentor-label-line">
</div>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$x</span>
: <span class="phpdocumentor-signature__argument__return-type">array&lt;int, static&gt;</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">array&lt;int, static&gt;</span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-protected
-static "
>
<h4 class="phpdocumentor-element__name" id="method_squareReduce">
squareReduce()
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Base.html#method_squareReduce" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP/Base.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-php-base.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP/Base.php">Base.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">139</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.139" class="phpdocumentor-element-found-in__source" data-line="139" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP/Base.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Modular square</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">protected</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">squareReduce</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;&nbsp;</span><span class="phpdocumentor-signature__argument__name">$x</span></span><span class="phpdocumentor-signature__argument"><span>, </span><span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;&nbsp;</span><span class="phpdocumentor-signature__argument__name">$n</span></span><span class="phpdocumentor-signature__argument"><span>, </span><span class="phpdocumentor-signature__argument__return-type">string&nbsp;</span><span class="phpdocumentor-signature__argument__name">$class</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">array&lt;string|int, mixed&gt;</span></code>
<div class="phpdocumentor-label-line">
</div>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$x</span>
: <span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$n</span>
: <span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$class</span>
: <span class="phpdocumentor-signature__argument__return-type">string</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
<h5 class="phpdocumentor-tag-list__heading" id="tags">
Tags
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Base.html#method_squareReduce#tags" class="headerlink"><i class="fas fa-link"></i></a>
</h5>
<dl class="phpdocumentor-tag-list">
<dt class="phpdocumentor-tag-list__entry">
<span class="phpdocumentor-tag__name">see</span>
</dt>
<dd class="phpdocumentor-tag-list__definition">
<span class="phpdocumentor-tag-link"><abbr title="\phpseclib3\Math\BigInteger\Engines\PHP\self::slidingWindow()">self::slidingWindow()</abbr></span>
</dd>
</dl>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">array&lt;string|int, mixed&gt;</span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-protected
-static "
>
<h4 class="phpdocumentor-element__name" id="method_testJITOnWindows">
testJITOnWindows()
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_testJITOnWindows" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-php.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php">PHP.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">1333</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.1333" class="phpdocumentor-element-found-in__source" data-line="1333" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php.txt"></a>
</aside>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">protected</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">testJITOnWindows</span><span>(</span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">bool</span></code>
<div class="phpdocumentor-label-line">
</div>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">bool</span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-protected
"
>
<h4 class="phpdocumentor-element__name" id="method_testPrimality">
testPrimality()
<a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_testPrimality" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-engine.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php">Engine.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">952</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.952" class="phpdocumentor-element-found-in__source" data-line="952" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Tests Primality</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">protected</span>
<span class="phpdocumentor-signature__name">testPrimality</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type">int&nbsp;</span><span class="phpdocumentor-signature__argument__name">$t</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">bool</span></code>
<div class="phpdocumentor-label-line">
</div>
<section class="phpdocumentor-description"><p>Uses the <a href="http://en.wikipedia.org/wiki/Miller%E2%80%93Rabin_primality_test">Miller-Rabin primality test</a>.
See <a href="http://www.cacr.math.uwaterloo.ca/hac/about/chap4.pdf#page=8">HAC 4.24</a> for more info.</p>
</section>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$t</span>
: <span class="phpdocumentor-signature__argument__return-type">int</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">bool</span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-protected
"
>
<h4 class="phpdocumentor-element__name" id="method_testSmallPrimes">
testSmallPrimes()
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_testSmallPrimes" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-php.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php">PHP.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">1093</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.1093" class="phpdocumentor-element-found-in__source" data-line="1093" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Test the number against small primes.</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">protected</span>
<span class="phpdocumentor-signature__name">testSmallPrimes</span><span>(</span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">mixed</span></code>
<div class="phpdocumentor-label-line">
</div>
<h5 class="phpdocumentor-tag-list__heading" id="tags">
Tags
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_testSmallPrimes#tags" class="headerlink"><i class="fas fa-link"></i></a>
</h5>
<dl class="phpdocumentor-tag-list">
<dt class="phpdocumentor-tag-list__entry">
<span class="phpdocumentor-tag__name">see</span>
</dt>
<dd class="phpdocumentor-tag-list__definition">
<span class="phpdocumentor-tag-link"><abbr title="\phpseclib3\Math\BigInteger\Engines\self::isPrime()">self::isPrime()</abbr></span>
</dd>
</dl>
</article>
<article
class="phpdocumentor-element
-method
-protected
"
>
<h4 class="phpdocumentor-element__name" id="method_toBytesHelper">
toBytesHelper()
<a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_toBytesHelper" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-engine.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php">Engine.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">243</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.243" class="phpdocumentor-element-found-in__source" data-line="243" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/Engine.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Converts a BigInteger to a byte string (eg. base-256).</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">protected</span>
<span class="phpdocumentor-signature__name">toBytesHelper</span><span>(</span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">string</span></code>
<div class="phpdocumentor-label-line">
</div>
<section class="phpdocumentor-description"><p>Negative numbers are saved as positive numbers, unless $twos_compliment is set to true, at which point, they're
saved as two's compliment.</p>
</section>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">string</span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-protected
-static "
>
<h4 class="phpdocumentor-element__name" id="method_trim">
trim()
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_trim" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-php.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php">PHP.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">829</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.829" class="phpdocumentor-element-found-in__source" data-line="829" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Trim</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">protected</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">trim</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type">array&lt;int, static&gt;&nbsp;</span><span class="phpdocumentor-signature__argument__name">$value</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">array&lt;int, static&gt;</span></code>
<div class="phpdocumentor-label-line">
</div>
<section class="phpdocumentor-description"><p>Removes leading zeros</p>
</section>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$value</span>
: <span class="phpdocumentor-signature__argument__return-type">array&lt;int, static&gt;</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">array&lt;int, static&gt;</span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-private
"
>
<h4 class="phpdocumentor-element__name" id="method_bitwise_small_split">
bitwise_small_split()
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_bitwise_small_split" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-php.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php">PHP.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">1289</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.1289" class="phpdocumentor-element-found-in__source" data-line="1289" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Bitwise Split where $split &lt; static::BASE</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">private</span>
<span class="phpdocumentor-signature__name">bitwise_small_split</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type">int&nbsp;</span><span class="phpdocumentor-signature__argument__name">$split</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">array&lt;int, int&gt;</span></code>
<div class="phpdocumentor-label-line">
</div>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$split</span>
: <span class="phpdocumentor-signature__argument__return-type">int</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">array&lt;int, int&gt;</span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-private
-static "
>
<h4 class="phpdocumentor-element__name" id="method_divide_digit">
divide_digit()
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_divide_digit" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-php.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php">PHP.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">685</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.685" class="phpdocumentor-element-found-in__source" data-line="685" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Divides a BigInteger by a regular integer</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">private</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">divide_digit</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;&nbsp;</span><span class="phpdocumentor-signature__argument__name">$dividend</span></span><span class="phpdocumentor-signature__argument"><span>, </span><span class="phpdocumentor-signature__argument__return-type">int&nbsp;</span><span class="phpdocumentor-signature__argument__name">$divisor</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">array&lt;string|int, mixed&gt;</span></code>
<div class="phpdocumentor-label-line">
</div>
<section class="phpdocumentor-description"><p>abc / x = a00 / x + b0 / x + c / x</p>
</section>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$dividend</span>
: <span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$divisor</span>
: <span class="phpdocumentor-signature__argument__return-type">int</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">array&lt;string|int, mixed&gt;</span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-private
-static "
>
<h4 class="phpdocumentor-element__name" id="method_int2bytes">
int2bytes()
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_int2bytes" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-php.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php">PHP.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">886</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.886" class="phpdocumentor-element-found-in__source" data-line="886" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Converts 32-bit integers to bytes.</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">private</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">int2bytes</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type">int&nbsp;</span><span class="phpdocumentor-signature__argument__name">$x</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">string</span></code>
<div class="phpdocumentor-label-line">
</div>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$x</span>
: <span class="phpdocumentor-signature__argument__return-type">int</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">string</span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-private
-static "
>
<h4 class="phpdocumentor-element__name" id="method_karatsuba">
karatsuba()
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_karatsuba" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-php.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php">PHP.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">434</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.434" class="phpdocumentor-element-found-in__source" data-line="434" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Performs Karatsuba multiplication on two BigIntegers</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">private</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">karatsuba</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;&nbsp;</span><span class="phpdocumentor-signature__argument__name">$x_value</span></span><span class="phpdocumentor-signature__argument"><span>, </span><span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;&nbsp;</span><span class="phpdocumentor-signature__argument__name">$y_value</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">array&lt;string|int, mixed&gt;</span></code>
<div class="phpdocumentor-label-line">
</div>
<section class="phpdocumentor-description"><p>See <a href="http://en.wikipedia.org/wiki/Karatsuba_algorithm">Karatsuba algorithm</a> and
<a href="http://math.libtomcrypt.com/files/tommath.pdf#page=120">MPM 5.2.3</a>.</p>
</section>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$x_value</span>
: <span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$y_value</span>
: <span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">array&lt;string|int, mixed&gt;</span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-private
-static "
>
<h4 class="phpdocumentor-element__name" id="method_multiplyLower">
multiplyLower()
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#method_multiplyLower" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP/Reductions/Barrett.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-php-reductions-barrett.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP/Reductions/Barrett.php">Barrett.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">218</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.218" class="phpdocumentor-element-found-in__source" data-line="218" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP/Reductions/Barrett.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Performs long multiplication up to $stop digits</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">private</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">multiplyLower</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;&nbsp;</span><span class="phpdocumentor-signature__argument__name">$x_value</span></span><span class="phpdocumentor-signature__argument"><span>, </span><span class="phpdocumentor-signature__argument__return-type">bool&nbsp;</span><span class="phpdocumentor-signature__argument__name">$x_negative</span></span><span class="phpdocumentor-signature__argument"><span>, </span><span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;&nbsp;</span><span class="phpdocumentor-signature__argument__name">$y_value</span></span><span class="phpdocumentor-signature__argument"><span>, </span><span class="phpdocumentor-signature__argument__return-type">bool&nbsp;</span><span class="phpdocumentor-signature__argument__name">$y_negative</span></span><span class="phpdocumentor-signature__argument"><span>, </span><span class="phpdocumentor-signature__argument__return-type">int&nbsp;</span><span class="phpdocumentor-signature__argument__name">$stop</span></span><span class="phpdocumentor-signature__argument"><span>, </span><span class="phpdocumentor-signature__argument__return-type">string&nbsp;</span><span class="phpdocumentor-signature__argument__name">$class</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">array&lt;string|int, mixed&gt;</span></code>
<div class="phpdocumentor-label-line">
</div>
<section class="phpdocumentor-description"><p>If you're going to be doing array_slice($product-&gt;value, 0, $stop), some cycles can be saved.</p>
</section>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$x_value</span>
: <span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$x_negative</span>
: <span class="phpdocumentor-signature__argument__return-type">bool</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$y_value</span>
: <span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$y_negative</span>
: <span class="phpdocumentor-signature__argument__return-type">bool</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$stop</span>
: <span class="phpdocumentor-signature__argument__return-type">int</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$class</span>
: <span class="phpdocumentor-signature__argument__return-type">string</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
<h5 class="phpdocumentor-tag-list__heading" id="tags">
Tags
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#method_multiplyLower#tags" class="headerlink"><i class="fas fa-link"></i></a>
</h5>
<dl class="phpdocumentor-tag-list">
<dt class="phpdocumentor-tag-list__entry">
<span class="phpdocumentor-tag__name">see</span>
</dt>
<dd class="phpdocumentor-tag-list__definition">
<span class="phpdocumentor-tag-link"><abbr title="\phpseclib3\Math\BigInteger\Engines\PHP\Reductions\self::regularBarrett()">self::regularBarrett()</abbr></span>
</dd>
</dl>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">array&lt;string|int, mixed&gt;</span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-private
-static "
>
<h4 class="phpdocumentor-element__name" id="method_regularBarrett">
regularBarrett()
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#method_regularBarrett" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP/Reductions/Barrett.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-php-reductions-barrett.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP/Reductions/Barrett.php">Barrett.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">144</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.144" class="phpdocumentor-element-found-in__source" data-line="144" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP/Reductions/Barrett.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">(Regular) Barrett Modular Reduction</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">private</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">regularBarrett</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;&nbsp;</span><span class="phpdocumentor-signature__argument__name">$x</span></span><span class="phpdocumentor-signature__argument"><span>, </span><span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;&nbsp;</span><span class="phpdocumentor-signature__argument__name">$n</span></span><span class="phpdocumentor-signature__argument"><span>, </span><span class="phpdocumentor-signature__argument__return-type">string&nbsp;</span><span class="phpdocumentor-signature__argument__name">$class</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">array&lt;string|int, mixed&gt;</span></code>
<div class="phpdocumentor-label-line">
</div>
<section class="phpdocumentor-description"><p>For numbers with more than four digits BigInteger::_barrett() is faster. The difference between that and this
is that this function does not fold the denominator into a smaller form.</p>
</section>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$x</span>
: <span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$n</span>
: <span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$class</span>
: <span class="phpdocumentor-signature__argument__return-type">string</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">array&lt;string|int, mixed&gt;</span>
</section>
</article>
<article
class="phpdocumentor-element
-method
-private
-static "
>
<h4 class="phpdocumentor-element__name" id="method_safe_divide">
safe_divide()
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_safe_divide" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php"><a href="files/libs-phpseclib-vendor-phpseclib-phpseclib-phpseclib-math-biginteger-engines-php.html"><abbr title="libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php">PHP.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">711</span>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#source-view.711" class="phpdocumentor-element-found-in__source" data-line="711" data-modal="source-view" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Single digit division</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">private</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">safe_divide</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type">int&nbsp;</span><span class="phpdocumentor-signature__argument__name">$x</span></span><span class="phpdocumentor-signature__argument"><span>, </span><span class="phpdocumentor-signature__argument__return-type">int&nbsp;</span><span class="phpdocumentor-signature__argument__name">$y</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">int</span></code>
<div class="phpdocumentor-label-line">
</div>
<section class="phpdocumentor-description"><p>Even if int64 is being used the division operator will return a float64 value
if the dividend is not evenly divisible by the divisor. Since a float64 doesn't
have the precision of int64 this is a problem so, when int64 is being used,
we'll guarantee that the dividend is divisible by first subtracting the remainder.</p>
</section>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$x</span>
: <span class="phpdocumentor-signature__argument__return-type">int</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$y</span>
: <span class="phpdocumentor-signature__argument__return-type">int</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
<section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">int</span>
</section>
</article>
</section>
<div class="phpdocumentor-modal" id="source-view">
<div class="phpdocumentor-modal-bg" data-exit-button></div>
<div class="phpdocumentor-modal-container">
<div class="phpdocumentor-modal-content">
<pre style="max-height: 500px; overflow-y: scroll" data-src="files/libs/phpseclib/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/PHP/Reductions/Barrett.php.txt" class="language-php line-numbers linkable-line-numbers"></pre>
</div>
<button data-exit-button class="phpdocumentor-modal__close">&times;</button>
</div>
</div>
<script type="text/javascript">
(function () {
function loadExternalCodeSnippet(el, url, line) {
Array.prototype.slice.call(el.querySelectorAll('pre[data-src]')).forEach((pre) => {
const src = url || pre.getAttribute('data-src').replace(/\\/g, '/');
const language = 'php';
const code = document.createElement('code');
code.className = 'language-' + language;
pre.textContent = '';
pre.setAttribute('data-line', line)
code.textContent = 'Loading…';
pre.appendChild(code);
var xhr = new XMLHttpRequest();
xhr.open('GET', src, true);
xhr.onreadystatechange = function () {
if (xhr.readyState !== 4) {
return;
}
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
Prism.highlightElement(code);
return;
}
if (xhr.status === 404) {
code.textContent = '✖ Error: File could not be found';
return;
}
if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
return;
}
code.textContent = '✖ Error: An unknown error occurred';
};
xhr.send(null);
});
}
const modalButtons = document.querySelectorAll("[data-modal]");
const openedAsLocalFile = window.location.protocol === 'file:';
if (modalButtons.length > 0 && openedAsLocalFile) {
console.warn(
'Viewing the source code is unavailable because you are opening this page from the file:// scheme; ' +
'browsers block XHR requests when a page is opened this way'
);
}
modalButtons.forEach(function (trigger) {
if (openedAsLocalFile) {
trigger.setAttribute("hidden", "hidden");
}
trigger.addEventListener("click", function (event) {
event.preventDefault();
const modal = document.getElementById(trigger.dataset.modal);
if (!modal) {
console.error(`Modal with id "${trigger.dataset.modal}" could not be found`);
return;
}
modal.classList.add("phpdocumentor-modal__open");
loadExternalCodeSnippet(modal, trigger.dataset.src || null, trigger.dataset.line)
const exits = modal.querySelectorAll("[data-exit-button]");
exits.forEach(function (exit) {
exit.addEventListener("click", function (event) {
event.preventDefault();
modal.classList.remove("phpdocumentor-modal__open");
});
});
});
});
})();
</script>
</article>
</section>
<section class="phpdocumentor-on-this-page__sidebar">
<section class="phpdocumentor-on-this-page__content">
<strong class="phpdocumentor-on-this-page__title">On this page</strong>
<ul class="phpdocumentor-list -clean">
<li class="phpdocumentor-on-this-page-section__title">Table Of Contents</li>
<li>
<ul class="phpdocumentor-list -clean">
<li><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#toc-constants">Constants</a></li>
<li><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#toc-properties">Properties</a></li>
<li><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#toc-methods">Methods</a></li>
</ul>
</li>
<li class="phpdocumentor-on-this-page-section__title">Constants</li>
<li>
<ul class="phpdocumentor-list -clean">
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Base.html#constant_DATA">DATA</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#constant_ENGINE_DIR">ENGINE_DIR</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#constant_FAST_BITWISE">FAST_BITWISE</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#constant_KARATSUBA_CUTOFF">KARATSUBA_CUTOFF</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#constant_PRIMES">PRIMES</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#constant_SIGN">SIGN</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#constant_VALUE">VALUE</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Base.html#constant_VARIABLE">VARIABLE</a></li>
</ul>
</li>
<li class="phpdocumentor-on-this-page-section__title">Properties</li>
<li>
<ul class="phpdocumentor-list -clean">
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#property_bitmask">$bitmask</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#property_hex">$hex</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#property_is_negative">$is_negative</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#property_isValidEngine">$isValidEngine</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#property_modexpEngine">$modexpEngine</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#property_one">$one</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#property_precision">$precision</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#property_reduce">$reduce</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#property_two">$two</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#property_value">$value</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#property_zero">$zero</a></li>
</ul>
</li>
<li class="phpdocumentor-on-this-page-section__title">Methods</li>
<li>
<ul class="phpdocumentor-list -clean">
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method___construct">__construct()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method___debugInfo">__debugInfo()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method___sleep">__sleep()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method___toString">__toString()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method___wakeup">__wakeup()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_abs">abs()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_bitwise_leftRotate">bitwise_leftRotate()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_bitwise_leftShift">bitwise_leftShift()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_bitwise_not">bitwise_not()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_bitwise_rightRotate">bitwise_rightRotate()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_bitwise_rightShift">bitwise_rightShift()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_bitwise_split">bitwise_split()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_createRecurringModuloFunction">createRecurringModuloFunction()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_getLength">getLength()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_getLengthInBytes">getLengthInBytes()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_getPrecision">getPrecision()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_isNegative">isNegative()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_isOdd">isOdd()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_isPrime">isPrime()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Base.html#method_isValidEngine">isValidEngine()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_jsonSerialize">jsonSerialize()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_minMaxBits">minMaxBits()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_negate">negate()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_random">random()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_randomPrime">randomPrime()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_root">root()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_scan1divide">scan1divide()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_setModExpEngine">setModExpEngine()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_setPrecision">setPrecision()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_subtractHelper">subtractHelper()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_testBit">testBit()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_toBits">toBits()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_toBytes">toBytes()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_toHex">toHex()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_toString">toString()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_addHelper">addHelper()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_array_repeat">array_repeat()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_base256_lshift">base256_lshift()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_baseSquare">baseSquare()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_bitwiseAndHelper">bitwiseAndHelper()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_bitwiseOrHelper">bitwiseOrHelper()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_bitwiseXorHelper">bitwiseXorHelper()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_compareHelper">compareHelper()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_convertToObj">convertToObj()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_extendedGCDHelper">extendedGCDHelper()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_initialize">initialize()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_karatsubaSquare">karatsubaSquare()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_lshift">lshift()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_make_odd">make_odd()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_maxHelper">maxHelper()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_minHelper">minHelper()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_modInverseHelper">modInverseHelper()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_multiplyHelper">multiplyHelper()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Base.html#method_multiplyReduce">multiplyReduce()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_normalize">normalize()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_pad">pad()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_powHelper">powHelper()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Base.html#method_powModHelper">powModHelper()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_powModInner">powModInner()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_powModOuter">powModOuter()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Base.html#method_prepareReduce">prepareReduce()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_randomRangeHelper">randomRangeHelper()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_randomRangePrimeInner">randomRangePrimeInner()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_randomRangePrimeOuter">randomRangePrimeOuter()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#method_reduce">reduce()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_regularMultiply">regularMultiply()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_rootHelper">rootHelper()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_rootInner">rootInner()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_rshift">rshift()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_setBitmask">setBitmask()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_setupIsPrime">setupIsPrime()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_slidingWindow">slidingWindow()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_square">square()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Base.html#method_squareReduce">squareReduce()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_testJITOnWindows">testJITOnWindows()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_testPrimality">testPrimality()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_testSmallPrimes">testSmallPrimes()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-Engine.html#method_toBytesHelper">toBytesHelper()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_trim">trim()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_bitwise_small_split">bitwise_small_split()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_divide_digit">divide_digit()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_int2bytes">int2bytes()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_karatsuba">karatsuba()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#method_multiplyLower">multiplyLower()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#method_regularBarrett">regularBarrett()</a></li>
<li class=""><a href="classes/phpseclib3-Math-BigInteger-Engines-PHP.html#method_safe_divide">safe_divide()</a></li>
</ul>
</li>
</ul>
</section>
</section>
</div>
<section data-search-results class="phpdocumentor-search-results phpdocumentor-search-results--hidden">
<section class="phpdocumentor-search-results__dialog">
<header class="phpdocumentor-search-results__header">
<h2 class="phpdocumentor-search-results__title">Search results</h2>
<button class="phpdocumentor-search-results__close"><i class="fas fa-times"></i></button>
</header>
<section class="phpdocumentor-search-results__body">
<ul class="phpdocumentor-search-results__entries"></ul>
</section>
</section>
</section>
</div>
<a href="classes/phpseclib3-Math-BigInteger-Engines-PHP-Reductions-Barrett.html#top" class="phpdocumentor-back-to-top"><i class="fas fa-chevron-circle-up"></i></a>
</main>
<script>
cssVars({});
</script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/prism.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/autoloader/prism-autoloader.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/line-numbers/prism-line-numbers.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/line-highlight/prism-line-highlight.min.js"></script>
</body>
</html>