Sophie

Sophie

distrib > Mageia > 7 > armv7hl > media > core-updates > by-pkgid > 17f48c047155a7d4c992d6a672acd57f > files > 1078

libcryptopp-devel-7.0.0-1.1.mga7.armv7hl.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.15"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Crypto++: Integer Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Crypto++
   &#160;<span id="projectnumber">7.0</span>
   </div>
   <div id="projectbrief">Free&nbsp;C&#43;&#43;&nbsp;class&nbsp;library&nbsp;of&nbsp;cryptographic&nbsp;schemes</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.15 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',false,false,'search.php','Search');
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#friends">Friends</a> &#124;
<a href="class_integer-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">Integer Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Multiple precision integer with arithmetic operations.  
 <a href="class_integer.html#details">More...</a></p>
<div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-0-trigger" src="closed.png" alt="+"/> Inheritance diagram for Integer:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
 <div class="center">
  <img src="class_integer.png" usemap="#Integer_map" alt=""/>
  <map id="Integer_map" name="Integer_map">
<area href="struct_initialize_integer.html" title="Performs static initialization of the Integer class." alt="InitializeInteger" shape="rect" coords="0,0,96,24"/>
<area href="class_a_s_n1_object.html" title="Interface for encoding and decoding ASN1 objects." alt="ASN1Object" shape="rect" coords="106,0,202,24"/>
  </map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer_1_1_divide_by_zero.html">DivideByZero</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="class_exception.html" title="Base class for all exceptions thrown by the library.">Exception</a> thrown when division by 0 is encountered.  <a href="class_integer_1_1_divide_by_zero.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer_1_1_open_p_g_p_decode_err.html">OpenPGPDecodeErr</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="class_exception.html" title="Base class for all exceptions thrown by the library.">Exception</a> thrown when an error is encountered decoding an OpenPGP integer.  <a href="class_integer_1_1_open_p_g_p_decode_err.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer_1_1_random_number_not_found.html">RandomNumberNotFound</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="class_exception.html" title="Base class for all exceptions thrown by the library.">Exception</a> thrown when a random number cannot be found that satisfies the condition.  <a href="class_integer_1_1_random_number_not_found.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
Friends</h2></td></tr>
<tr class="memitem:ac030bf1a90f1feb05d18c6b09e37db38"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_integer.html">Integer</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#ac030bf1a90f1feb05d18c6b09e37db38">a_times_b_mod_c</a> (const <a class="el" href="class_integer.html">Integer</a> &amp;x, const <a class="el" href="class_integer.html">Integer</a> &amp;y, const <a class="el" href="class_integer.html">Integer</a> &amp;m)</td></tr>
<tr class="memdesc:ac030bf1a90f1feb05d18c6b09e37db38"><td class="mdescLeft">&#160;</td><td class="mdescRight">Modular multiplication.  <a href="#ac030bf1a90f1feb05d18c6b09e37db38">More...</a><br /></td></tr>
<tr class="separator:ac030bf1a90f1feb05d18c6b09e37db38"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a45068a431797e59f7876e7d64e0f8dbb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_integer.html">Integer</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a45068a431797e59f7876e7d64e0f8dbb">a_exp_b_mod_c</a> (const <a class="el" href="class_integer.html">Integer</a> &amp;x, const <a class="el" href="class_integer.html">Integer</a> &amp;e, const <a class="el" href="class_integer.html">Integer</a> &amp;m)</td></tr>
<tr class="memdesc:a45068a431797e59f7876e7d64e0f8dbb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Modular exponentiation.  <a href="#a45068a431797e59f7876e7d64e0f8dbb">More...</a><br /></td></tr>
<tr class="separator:a45068a431797e59f7876e7d64e0f8dbb"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
ENUMS, EXCEPTIONS, and TYPEDEFS</h2></td></tr>
<tr class="memitem:ae0d4d9975fb6ab7667aab6f7ab8612d2"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#ae0d4d9975fb6ab7667aab6f7ab8612d2">Sign</a> { <a class="el" href="class_integer.html#ae0d4d9975fb6ab7667aab6f7ab8612d2ad10299fe0b190d3de927db776b8dc42d">POSITIVE</a> =0, 
<a class="el" href="class_integer.html#ae0d4d9975fb6ab7667aab6f7ab8612d2a8f19e88ce9bdf42cea3e070d5aa26f14">NEGATIVE</a> =1
 }</td></tr>
<tr class="memdesc:ae0d4d9975fb6ab7667aab6f7ab8612d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Used internally to represent the integer.  <a href="class_integer.html#ae0d4d9975fb6ab7667aab6f7ab8612d2">More...</a><br /></td></tr>
<tr class="separator:ae0d4d9975fb6ab7667aab6f7ab8612d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa9712040ccab541e30c00e0f3ae39926"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#aa9712040ccab541e30c00e0f3ae39926">Signedness</a> { <a class="el" href="class_integer.html#aa9712040ccab541e30c00e0f3ae39926ab4fe86ca57cc3668213b99032ca274df">UNSIGNED</a>, 
<a class="el" href="class_integer.html#aa9712040ccab541e30c00e0f3ae39926a4a42c6ec9823d7d75dcfd97ef6276ccb">SIGNED</a>
 }</td></tr>
<tr class="memdesc:aa9712040ccab541e30c00e0f3ae39926"><td class="mdescLeft">&#160;</td><td class="mdescRight">Used when importing and exporting integers.  <a href="class_integer.html#aa9712040ccab541e30c00e0f3ae39926">More...</a><br /></td></tr>
<tr class="separator:aa9712040ccab541e30c00e0f3ae39926"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9b4088ac01abf76b9ba60060abccb7a3"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a9b4088ac01abf76b9ba60060abccb7a3">RandomNumberType</a> { <a class="el" href="class_integer.html#a9b4088ac01abf76b9ba60060abccb7a3ad9b396a7ba736a4ca02db0125cc8c6a4">ANY</a>, 
<a class="el" href="class_integer.html#a9b4088ac01abf76b9ba60060abccb7a3afe686f55e5b6768b20009a12522bd0d9">PRIME</a>
 }</td></tr>
<tr class="memdesc:a9b4088ac01abf76b9ba60060abccb7a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Properties of a random integer.  <a href="class_integer.html#a9b4088ac01abf76b9ba60060abccb7a3">More...</a><br /></td></tr>
<tr class="separator:a9b4088ac01abf76b9ba60060abccb7a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
CREATORS</h2></td></tr>
<tr class="memitem:a7fcab0564d7270017ebcca55bae1a17a"><td class="memItemLeft" align="right" valign="top"><a id="a7fcab0564d7270017ebcca55bae1a17a"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a7fcab0564d7270017ebcca55bae1a17a">Integer</a> ()</td></tr>
<tr class="memdesc:a7fcab0564d7270017ebcca55bae1a17a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates the zero integer. <br /></td></tr>
<tr class="separator:a7fcab0564d7270017ebcca55bae1a17a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9e86175b4b1fb79321736974846fce70"><td class="memItemLeft" align="right" valign="top"><a id="a9e86175b4b1fb79321736974846fce70"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a9e86175b4b1fb79321736974846fce70">Integer</a> (const <a class="el" href="class_integer.html">Integer</a> &amp;t)</td></tr>
<tr class="memdesc:a9e86175b4b1fb79321736974846fce70"><td class="mdescLeft">&#160;</td><td class="mdescRight">copy constructor <br /></td></tr>
<tr class="separator:a9e86175b4b1fb79321736974846fce70"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab0536c16f441f1b5abcb2019f7d52e17"><td class="memItemLeft" align="right" valign="top"><a id="ab0536c16f441f1b5abcb2019f7d52e17"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#ab0536c16f441f1b5abcb2019f7d52e17">Integer</a> (signed long value)</td></tr>
<tr class="memdesc:ab0536c16f441f1b5abcb2019f7d52e17"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert from signed long. <br /></td></tr>
<tr class="separator:ab0536c16f441f1b5abcb2019f7d52e17"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6dd06a5b5677a45d6f7bbbb0d80ed60a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a6dd06a5b5677a45d6f7bbbb0d80ed60a">Integer</a> (<a class="el" href="class_integer.html#ae0d4d9975fb6ab7667aab6f7ab8612d2">Sign</a> sign, lword value)</td></tr>
<tr class="memdesc:a6dd06a5b5677a45d6f7bbbb0d80ed60a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert from lword.  <a href="#a6dd06a5b5677a45d6f7bbbb0d80ed60a">More...</a><br /></td></tr>
<tr class="separator:a6dd06a5b5677a45d6f7bbbb0d80ed60a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aadc32f35a8fad433c206d6c8cbb64123"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#aadc32f35a8fad433c206d6c8cbb64123">Integer</a> (<a class="el" href="class_integer.html#ae0d4d9975fb6ab7667aab6f7ab8612d2">Sign</a> sign, word highWord, word lowWord)</td></tr>
<tr class="memdesc:aadc32f35a8fad433c206d6c8cbb64123"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert from two words.  <a href="#aadc32f35a8fad433c206d6c8cbb64123">More...</a><br /></td></tr>
<tr class="separator:aadc32f35a8fad433c206d6c8cbb64123"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa5f24aab6821fe59b7b161682b9a40cd"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#aa5f24aab6821fe59b7b161682b9a40cd">Integer</a> (const char *str, <a class="el" href="cryptlib_8h.html#aaeb92d42f5a6e27b8ba19f18d69d142b">ByteOrder</a> order=<a class="el" href="cryptlib_8h.html#aaeb92d42f5a6e27b8ba19f18d69d142baf0c3bb6c718cc7ff0bffef4e8f178c57">BIG_ENDIAN_ORDER</a>)</td></tr>
<tr class="memdesc:aa5f24aab6821fe59b7b161682b9a40cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert from a C-string.  <a href="#aa5f24aab6821fe59b7b161682b9a40cd">More...</a><br /></td></tr>
<tr class="separator:aa5f24aab6821fe59b7b161682b9a40cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae40a2310e74454ae4e93252b169b9560"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#ae40a2310e74454ae4e93252b169b9560">Integer</a> (const wchar_t *str, <a class="el" href="cryptlib_8h.html#aaeb92d42f5a6e27b8ba19f18d69d142b">ByteOrder</a> order=<a class="el" href="cryptlib_8h.html#aaeb92d42f5a6e27b8ba19f18d69d142baf0c3bb6c718cc7ff0bffef4e8f178c57">BIG_ENDIAN_ORDER</a>)</td></tr>
<tr class="memdesc:ae40a2310e74454ae4e93252b169b9560"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert from a wide C-string.  <a href="#ae40a2310e74454ae4e93252b169b9560">More...</a><br /></td></tr>
<tr class="separator:ae40a2310e74454ae4e93252b169b9560"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a248589e28fdebaa3d33a828904e38a59"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a248589e28fdebaa3d33a828904e38a59">Integer</a> (const byte *encodedInteger, size_t byteCount, <a class="el" href="class_integer.html#aa9712040ccab541e30c00e0f3ae39926">Signedness</a> sign=<a class="el" href="class_integer.html#aa9712040ccab541e30c00e0f3ae39926ab4fe86ca57cc3668213b99032ca274df">UNSIGNED</a>, <a class="el" href="cryptlib_8h.html#aaeb92d42f5a6e27b8ba19f18d69d142b">ByteOrder</a> order=<a class="el" href="cryptlib_8h.html#aaeb92d42f5a6e27b8ba19f18d69d142baf0c3bb6c718cc7ff0bffef4e8f178c57">BIG_ENDIAN_ORDER</a>)</td></tr>
<tr class="memdesc:a248589e28fdebaa3d33a828904e38a59"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert from a big-endian byte array.  <a href="#a248589e28fdebaa3d33a828904e38a59">More...</a><br /></td></tr>
<tr class="separator:a248589e28fdebaa3d33a828904e38a59"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1f8c139b8ddabfaad3fc6e69ab765317"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a1f8c139b8ddabfaad3fc6e69ab765317">Integer</a> (<a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;bt, size_t byteCount, <a class="el" href="class_integer.html#aa9712040ccab541e30c00e0f3ae39926">Signedness</a> sign=<a class="el" href="class_integer.html#aa9712040ccab541e30c00e0f3ae39926ab4fe86ca57cc3668213b99032ca274df">UNSIGNED</a>, <a class="el" href="cryptlib_8h.html#aaeb92d42f5a6e27b8ba19f18d69d142b">ByteOrder</a> order=<a class="el" href="cryptlib_8h.html#aaeb92d42f5a6e27b8ba19f18d69d142baf0c3bb6c718cc7ff0bffef4e8f178c57">BIG_ENDIAN_ORDER</a>)</td></tr>
<tr class="memdesc:a1f8c139b8ddabfaad3fc6e69ab765317"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert from a big-endian array.  <a href="#a1f8c139b8ddabfaad3fc6e69ab765317">More...</a><br /></td></tr>
<tr class="separator:a1f8c139b8ddabfaad3fc6e69ab765317"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a81d3973655b9f9d358de31ca4d0215c1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a81d3973655b9f9d358de31ca4d0215c1">Integer</a> (<a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;bt)</td></tr>
<tr class="memdesc:a81d3973655b9f9d358de31ca4d0215c1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert from a BER encoded byte array.  <a href="#a81d3973655b9f9d358de31ca4d0215c1">More...</a><br /></td></tr>
<tr class="separator:a81d3973655b9f9d358de31ca4d0215c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aed27750675aede3f613d63bca91c0b1e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#aed27750675aede3f613d63bca91c0b1e">Integer</a> (<a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &amp;rng, size_t bitCount)</td></tr>
<tr class="memdesc:aed27750675aede3f613d63bca91c0b1e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a random integer.  <a href="#aed27750675aede3f613d63bca91c0b1e">More...</a><br /></td></tr>
<tr class="separator:aed27750675aede3f613d63bca91c0b1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a88a110cb9f89a8810c228ad00cea18c2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a88a110cb9f89a8810c228ad00cea18c2">Integer</a> (<a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &amp;rng, const <a class="el" href="class_integer.html">Integer</a> &amp;min, const <a class="el" href="class_integer.html">Integer</a> &amp;max, <a class="el" href="class_integer.html#a9b4088ac01abf76b9ba60060abccb7a3">RandomNumberType</a> rnType=<a class="el" href="class_integer.html#a9b4088ac01abf76b9ba60060abccb7a3ad9b396a7ba736a4ca02db0125cc8c6a4">ANY</a>, const <a class="el" href="class_integer.html">Integer</a> &amp;equiv=<a class="el" href="class_integer.html#a19b7e6d48b1b57bd4846160ea2928175">Zero</a>(), const <a class="el" href="class_integer.html">Integer</a> &amp;mod=<a class="el" href="class_integer.html#a8c070592581bf6c2f928c72bfa1c1638">One</a>())</td></tr>
<tr class="memdesc:a88a110cb9f89a8810c228ad00cea18c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a random integer of special form.  <a href="#a88a110cb9f89a8810c228ad00cea18c2">More...</a><br /></td></tr>
<tr class="separator:a88a110cb9f89a8810c228ad00cea18c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a19b7e6d48b1b57bd4846160ea2928175"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="class_integer.html">Integer</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a19b7e6d48b1b57bd4846160ea2928175">Zero</a> ()</td></tr>
<tr class="memdesc:a19b7e6d48b1b57bd4846160ea2928175"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> representing 0.  <a href="#a19b7e6d48b1b57bd4846160ea2928175">More...</a><br /></td></tr>
<tr class="separator:a19b7e6d48b1b57bd4846160ea2928175"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8c070592581bf6c2f928c72bfa1c1638"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="class_integer.html">Integer</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a8c070592581bf6c2f928c72bfa1c1638">One</a> ()</td></tr>
<tr class="memdesc:a8c070592581bf6c2f928c72bfa1c1638"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> representing 1.  <a href="#a8c070592581bf6c2f928c72bfa1c1638">More...</a><br /></td></tr>
<tr class="separator:a8c070592581bf6c2f928c72bfa1c1638"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af0cb74a45a48e677952166bdac9d82d7"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="class_integer.html">Integer</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#af0cb74a45a48e677952166bdac9d82d7">Two</a> ()</td></tr>
<tr class="memdesc:af0cb74a45a48e677952166bdac9d82d7"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> representing 2.  <a href="#af0cb74a45a48e677952166bdac9d82d7">More...</a><br /></td></tr>
<tr class="separator:af0cb74a45a48e677952166bdac9d82d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ade53248f5dbb520273a70856b975417c"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="class_integer.html">Integer</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#ade53248f5dbb520273a70856b975417c">Power2</a> (size_t e)</td></tr>
<tr class="memdesc:ade53248f5dbb520273a70856b975417c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Exponentiates to a power of 2.  <a href="#ade53248f5dbb520273a70856b975417c">More...</a><br /></td></tr>
<tr class="separator:ade53248f5dbb520273a70856b975417c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
ENCODE/DECODE</h2></td></tr>
<tr class="memitem:a82bf50f0f9011b2285cd13f181f04a5c"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a82bf50f0f9011b2285cd13f181f04a5c">MinEncodedSize</a> (<a class="el" href="class_integer.html#aa9712040ccab541e30c00e0f3ae39926">Signedness</a> sign=<a class="el" href="class_integer.html#aa9712040ccab541e30c00e0f3ae39926ab4fe86ca57cc3668213b99032ca274df">UNSIGNED</a>) const</td></tr>
<tr class="memdesc:a82bf50f0f9011b2285cd13f181f04a5c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Minimum number of bytes to encode this integer.  <a href="#a82bf50f0f9011b2285cd13f181f04a5c">More...</a><br /></td></tr>
<tr class="separator:a82bf50f0f9011b2285cd13f181f04a5c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af7f7a3d1250efd10d84d51ba53297535"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#af7f7a3d1250efd10d84d51ba53297535">Encode</a> (byte *output, size_t outputLen, <a class="el" href="class_integer.html#aa9712040ccab541e30c00e0f3ae39926">Signedness</a> sign=<a class="el" href="class_integer.html#aa9712040ccab541e30c00e0f3ae39926ab4fe86ca57cc3668213b99032ca274df">UNSIGNED</a>) const</td></tr>
<tr class="memdesc:af7f7a3d1250efd10d84d51ba53297535"><td class="mdescLeft">&#160;</td><td class="mdescRight">Encode in big-endian format.  <a href="#af7f7a3d1250efd10d84d51ba53297535">More...</a><br /></td></tr>
<tr class="separator:af7f7a3d1250efd10d84d51ba53297535"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6f5bff64518937ab18c6ff656516b7a2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a6f5bff64518937ab18c6ff656516b7a2">Encode</a> (<a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;bt, size_t outputLen, <a class="el" href="class_integer.html#aa9712040ccab541e30c00e0f3ae39926">Signedness</a> sign=<a class="el" href="class_integer.html#aa9712040ccab541e30c00e0f3ae39926ab4fe86ca57cc3668213b99032ca274df">UNSIGNED</a>) const</td></tr>
<tr class="memdesc:a6f5bff64518937ab18c6ff656516b7a2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Encode in big-endian format.  <a href="#a6f5bff64518937ab18c6ff656516b7a2">More...</a><br /></td></tr>
<tr class="separator:a6f5bff64518937ab18c6ff656516b7a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0671bd1dbe49e2eecdaaa65ffcb5b6ec"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a0671bd1dbe49e2eecdaaa65ffcb5b6ec">DEREncode</a> (<a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;bt) const</td></tr>
<tr class="memdesc:a0671bd1dbe49e2eecdaaa65ffcb5b6ec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Encode in DER format.  <a href="#a0671bd1dbe49e2eecdaaa65ffcb5b6ec">More...</a><br /></td></tr>
<tr class="separator:a0671bd1dbe49e2eecdaaa65ffcb5b6ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ae92eed64cdb0e2b5b64687fe8a52c9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a4ae92eed64cdb0e2b5b64687fe8a52c9">DEREncodeAsOctetString</a> (<a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;bt, size_t length) const</td></tr>
<tr class="memdesc:a4ae92eed64cdb0e2b5b64687fe8a52c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Encode absolute value as big-endian octet string.  <a href="#a4ae92eed64cdb0e2b5b64687fe8a52c9">More...</a><br /></td></tr>
<tr class="separator:a4ae92eed64cdb0e2b5b64687fe8a52c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab500131b85c053ba982a0864e2bf7d33"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#ab500131b85c053ba982a0864e2bf7d33">OpenPGPEncode</a> (byte *output, size_t bufferSize) const</td></tr>
<tr class="memdesc:ab500131b85c053ba982a0864e2bf7d33"><td class="mdescLeft">&#160;</td><td class="mdescRight">Encode absolute value in OpenPGP format.  <a href="#ab500131b85c053ba982a0864e2bf7d33">More...</a><br /></td></tr>
<tr class="separator:ab500131b85c053ba982a0864e2bf7d33"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab1572e9d1dd447e15486f22c71a3f3ed"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#ab1572e9d1dd447e15486f22c71a3f3ed">OpenPGPEncode</a> (<a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;bt) const</td></tr>
<tr class="memdesc:ab1572e9d1dd447e15486f22c71a3f3ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Encode absolute value in OpenPGP format.  <a href="#ab1572e9d1dd447e15486f22c71a3f3ed">More...</a><br /></td></tr>
<tr class="separator:ab1572e9d1dd447e15486f22c71a3f3ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adb253c918b7cf401a074bd1b4a4427c4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#adb253c918b7cf401a074bd1b4a4427c4">Decode</a> (const byte *input, size_t inputLen, <a class="el" href="class_integer.html#aa9712040ccab541e30c00e0f3ae39926">Signedness</a> sign=<a class="el" href="class_integer.html#aa9712040ccab541e30c00e0f3ae39926ab4fe86ca57cc3668213b99032ca274df">UNSIGNED</a>)</td></tr>
<tr class="memdesc:adb253c918b7cf401a074bd1b4a4427c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decode from big-endian byte array.  <a href="#adb253c918b7cf401a074bd1b4a4427c4">More...</a><br /></td></tr>
<tr class="separator:adb253c918b7cf401a074bd1b4a4427c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae953df06dfaa312a50f7b35c68f677f8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#ae953df06dfaa312a50f7b35c68f677f8">Decode</a> (<a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;bt, size_t inputLen, <a class="el" href="class_integer.html#aa9712040ccab541e30c00e0f3ae39926">Signedness</a> sign=<a class="el" href="class_integer.html#aa9712040ccab541e30c00e0f3ae39926ab4fe86ca57cc3668213b99032ca274df">UNSIGNED</a>)</td></tr>
<tr class="memdesc:ae953df06dfaa312a50f7b35c68f677f8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decode nonnegative value from big-endian byte array.  <a href="#ae953df06dfaa312a50f7b35c68f677f8">More...</a><br /></td></tr>
<tr class="separator:ae953df06dfaa312a50f7b35c68f677f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a810fc0382f8928893fe192ab79b1972c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a810fc0382f8928893fe192ab79b1972c">BERDecode</a> (const byte *input, size_t inputLen)</td></tr>
<tr class="memdesc:a810fc0382f8928893fe192ab79b1972c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decode from BER format.  <a href="#a810fc0382f8928893fe192ab79b1972c">More...</a><br /></td></tr>
<tr class="separator:a810fc0382f8928893fe192ab79b1972c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8736cc41b06596c9c04328d2f0238db7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a8736cc41b06596c9c04328d2f0238db7">BERDecode</a> (<a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;bt)</td></tr>
<tr class="memdesc:a8736cc41b06596c9c04328d2f0238db7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decode from BER format.  <a href="#a8736cc41b06596c9c04328d2f0238db7">More...</a><br /></td></tr>
<tr class="separator:a8736cc41b06596c9c04328d2f0238db7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a59f2e3f759fb252da8ce4bd718fb6487"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a59f2e3f759fb252da8ce4bd718fb6487">BERDecodeAsOctetString</a> (<a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;bt, size_t length)</td></tr>
<tr class="memdesc:a59f2e3f759fb252da8ce4bd718fb6487"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decode nonnegative value from big-endian octet string.  <a href="#a59f2e3f759fb252da8ce4bd718fb6487">More...</a><br /></td></tr>
<tr class="separator:a59f2e3f759fb252da8ce4bd718fb6487"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4b2415221b6eb9ffde8c9c495ae098f2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a4b2415221b6eb9ffde8c9c495ae098f2">OpenPGPDecode</a> (const byte *input, size_t inputLen)</td></tr>
<tr class="memdesc:a4b2415221b6eb9ffde8c9c495ae098f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decode from OpenPGP format.  <a href="#a4b2415221b6eb9ffde8c9c495ae098f2">More...</a><br /></td></tr>
<tr class="separator:a4b2415221b6eb9ffde8c9c495ae098f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9ff99fc6723da5a45c98212de5cf4f3d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a9ff99fc6723da5a45c98212de5cf4f3d">OpenPGPDecode</a> (<a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;bt)</td></tr>
<tr class="memdesc:a9ff99fc6723da5a45c98212de5cf4f3d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decode from OpenPGP format.  <a href="#a9ff99fc6723da5a45c98212de5cf4f3d">More...</a><br /></td></tr>
<tr class="separator:a9ff99fc6723da5a45c98212de5cf4f3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
ACCESSORS</h2></td></tr>
<tr class="memitem:a6b20fdbc800c7ba12db483eba866bd21"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a6b20fdbc800c7ba12db483eba866bd21">IsConvertableToLong</a> () const</td></tr>
<tr class="memdesc:a6b20fdbc800c7ba12db483eba866bd21"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines if the <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> is convertable to Long.  <a href="#a6b20fdbc800c7ba12db483eba866bd21">More...</a><br /></td></tr>
<tr class="separator:a6b20fdbc800c7ba12db483eba866bd21"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2e90d8f4c5a13e203b94f9abc24d733f"><td class="memItemLeft" align="right" valign="top">signed long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a2e90d8f4c5a13e203b94f9abc24d733f">ConvertToLong</a> () const</td></tr>
<tr class="memdesc:a2e90d8f4c5a13e203b94f9abc24d733f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert the <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> to Long.  <a href="#a2e90d8f4c5a13e203b94f9abc24d733f">More...</a><br /></td></tr>
<tr class="separator:a2e90d8f4c5a13e203b94f9abc24d733f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a867356d88074424328d0ebb9bea63254"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a867356d88074424328d0ebb9bea63254">BitCount</a> () const</td></tr>
<tr class="memdesc:a867356d88074424328d0ebb9bea63254"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines the number of bits required to represent the <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a>.  <a href="#a867356d88074424328d0ebb9bea63254">More...</a><br /></td></tr>
<tr class="separator:a867356d88074424328d0ebb9bea63254"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae7ee3f1bbea2b3138c6d8f1ce1aa2bf9"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#ae7ee3f1bbea2b3138c6d8f1ce1aa2bf9">ByteCount</a> () const</td></tr>
<tr class="memdesc:ae7ee3f1bbea2b3138c6d8f1ce1aa2bf9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines the number of bytes required to represent the <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a>.  <a href="#ae7ee3f1bbea2b3138c6d8f1ce1aa2bf9">More...</a><br /></td></tr>
<tr class="separator:ae7ee3f1bbea2b3138c6d8f1ce1aa2bf9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8c04a3308dd546cac819835922ee8db6"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a8c04a3308dd546cac819835922ee8db6">WordCount</a> () const</td></tr>
<tr class="memdesc:a8c04a3308dd546cac819835922ee8db6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines the number of words required to represent the <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a>.  <a href="#a8c04a3308dd546cac819835922ee8db6">More...</a><br /></td></tr>
<tr class="separator:a8c04a3308dd546cac819835922ee8db6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0e377d23bde55fc7dc6ea2208c587d19"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a0e377d23bde55fc7dc6ea2208c587d19">GetBit</a> (size_t i) const</td></tr>
<tr class="memdesc:a0e377d23bde55fc7dc6ea2208c587d19"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides the i-th bit of the <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a>.  <a href="#a0e377d23bde55fc7dc6ea2208c587d19">More...</a><br /></td></tr>
<tr class="separator:a0e377d23bde55fc7dc6ea2208c587d19"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5bbe765e1c3a9c6036d31bb1a8de5f07"><td class="memItemLeft" align="right" valign="top">byte&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a5bbe765e1c3a9c6036d31bb1a8de5f07">GetByte</a> (size_t i) const</td></tr>
<tr class="memdesc:a5bbe765e1c3a9c6036d31bb1a8de5f07"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides the i-th byte of the <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a>.  <a href="#a5bbe765e1c3a9c6036d31bb1a8de5f07">More...</a><br /></td></tr>
<tr class="separator:a5bbe765e1c3a9c6036d31bb1a8de5f07"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a75ebf0ce73fba3c81aa915c497e7c876"><td class="memItemLeft" align="right" valign="top">lword&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a75ebf0ce73fba3c81aa915c497e7c876">GetBits</a> (size_t i, size_t n) const</td></tr>
<tr class="memdesc:a75ebf0ce73fba3c81aa915c497e7c876"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides the low order bits of the <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a>.  <a href="#a75ebf0ce73fba3c81aa915c497e7c876">More...</a><br /></td></tr>
<tr class="separator:a75ebf0ce73fba3c81aa915c497e7c876"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acca1f2de6c0bfa91c49950daf681b678"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#acca1f2de6c0bfa91c49950daf681b678">IsZero</a> () const</td></tr>
<tr class="memdesc:acca1f2de6c0bfa91c49950daf681b678"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines if the <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> is 0.  <a href="#acca1f2de6c0bfa91c49950daf681b678">More...</a><br /></td></tr>
<tr class="separator:acca1f2de6c0bfa91c49950daf681b678"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5364029d13bf6d21e7b578127160dbed"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a5364029d13bf6d21e7b578127160dbed">NotZero</a> () const</td></tr>
<tr class="memdesc:a5364029d13bf6d21e7b578127160dbed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines if the <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> is non-0.  <a href="#a5364029d13bf6d21e7b578127160dbed">More...</a><br /></td></tr>
<tr class="separator:a5364029d13bf6d21e7b578127160dbed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad767ae81c89be3804da8785e132d2d1f"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#ad767ae81c89be3804da8785e132d2d1f">IsNegative</a> () const</td></tr>
<tr class="memdesc:ad767ae81c89be3804da8785e132d2d1f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines if the <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> is negative.  <a href="#ad767ae81c89be3804da8785e132d2d1f">More...</a><br /></td></tr>
<tr class="separator:ad767ae81c89be3804da8785e132d2d1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a880ab53116f2b9f527489d86ee806896"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a880ab53116f2b9f527489d86ee806896">NotNegative</a> () const</td></tr>
<tr class="memdesc:a880ab53116f2b9f527489d86ee806896"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines if the <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> is non-negative.  <a href="#a880ab53116f2b9f527489d86ee806896">More...</a><br /></td></tr>
<tr class="separator:a880ab53116f2b9f527489d86ee806896"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a13ddbfd8e9729932c2a99b0dff530978"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a13ddbfd8e9729932c2a99b0dff530978">IsPositive</a> () const</td></tr>
<tr class="memdesc:a13ddbfd8e9729932c2a99b0dff530978"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines if the <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> is positive.  <a href="#a13ddbfd8e9729932c2a99b0dff530978">More...</a><br /></td></tr>
<tr class="separator:a13ddbfd8e9729932c2a99b0dff530978"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a82c26b308640b25c35213da4c315f3ce"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a82c26b308640b25c35213da4c315f3ce">NotPositive</a> () const</td></tr>
<tr class="memdesc:a82c26b308640b25c35213da4c315f3ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines if the <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> is non-positive.  <a href="#a82c26b308640b25c35213da4c315f3ce">More...</a><br /></td></tr>
<tr class="separator:a82c26b308640b25c35213da4c315f3ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afedf9af097a3417d8bd3742ec53f9593"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#afedf9af097a3417d8bd3742ec53f9593">IsEven</a> () const</td></tr>
<tr class="memdesc:afedf9af097a3417d8bd3742ec53f9593"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines if the <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> is even parity.  <a href="#afedf9af097a3417d8bd3742ec53f9593">More...</a><br /></td></tr>
<tr class="separator:afedf9af097a3417d8bd3742ec53f9593"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aed4bb7208a18b986ef3e1a7d92e06d1d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#aed4bb7208a18b986ef3e1a7d92e06d1d">IsOdd</a> () const</td></tr>
<tr class="memdesc:aed4bb7208a18b986ef3e1a7d92e06d1d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines if the <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> is odd parity.  <a href="#aed4bb7208a18b986ef3e1a7d92e06d1d">More...</a><br /></td></tr>
<tr class="separator:aed4bb7208a18b986ef3e1a7d92e06d1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
MANIPULATORS</h2></td></tr>
<tr class="memitem:a96a2740dadac69f6ff374feb071a94ec"><td class="memItemLeft" align="right" valign="top"><a id="a96a2740dadac69f6ff374feb071a94ec"></a>
<a class="el" href="class_integer.html">Integer</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a96a2740dadac69f6ff374feb071a94ec">operator=</a> (const <a class="el" href="class_integer.html">Integer</a> &amp;t)</td></tr>
<tr class="memdesc:a96a2740dadac69f6ff374feb071a94ec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assignment. <br /></td></tr>
<tr class="separator:a96a2740dadac69f6ff374feb071a94ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a37047060547d744b74f15649fbae6ea3"><td class="memItemLeft" align="right" valign="top"><a id="a37047060547d744b74f15649fbae6ea3"></a>
<a class="el" href="class_integer.html">Integer</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a37047060547d744b74f15649fbae6ea3">operator+=</a> (const <a class="el" href="class_integer.html">Integer</a> &amp;t)</td></tr>
<tr class="memdesc:a37047060547d744b74f15649fbae6ea3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Addition Assignment. <br /></td></tr>
<tr class="separator:a37047060547d744b74f15649fbae6ea3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9951406a1fe063627d3293b27f8c1441"><td class="memItemLeft" align="right" valign="top"><a id="a9951406a1fe063627d3293b27f8c1441"></a>
<a class="el" href="class_integer.html">Integer</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a9951406a1fe063627d3293b27f8c1441">operator-=</a> (const <a class="el" href="class_integer.html">Integer</a> &amp;t)</td></tr>
<tr class="memdesc:a9951406a1fe063627d3293b27f8c1441"><td class="mdescLeft">&#160;</td><td class="mdescRight">Subtraction Assignment. <br /></td></tr>
<tr class="separator:a9951406a1fe063627d3293b27f8c1441"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adb1320901d7bbf1ee52bf27bacdfb9df"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_integer.html">Integer</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#adb1320901d7bbf1ee52bf27bacdfb9df">operator*=</a> (const <a class="el" href="class_integer.html">Integer</a> &amp;t)</td></tr>
<tr class="memdesc:adb1320901d7bbf1ee52bf27bacdfb9df"><td class="mdescLeft">&#160;</td><td class="mdescRight">Multiplication Assignment.  <a href="#adb1320901d7bbf1ee52bf27bacdfb9df">More...</a><br /></td></tr>
<tr class="separator:adb1320901d7bbf1ee52bf27bacdfb9df"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a80e968a9c7afc4979fe2148170ec7458"><td class="memItemLeft" align="right" valign="top"><a id="a80e968a9c7afc4979fe2148170ec7458"></a>
<a class="el" href="class_integer.html">Integer</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a80e968a9c7afc4979fe2148170ec7458">operator/=</a> (const <a class="el" href="class_integer.html">Integer</a> &amp;t)</td></tr>
<tr class="memdesc:a80e968a9c7afc4979fe2148170ec7458"><td class="mdescLeft">&#160;</td><td class="mdescRight">Division Assignment. <br /></td></tr>
<tr class="separator:a80e968a9c7afc4979fe2148170ec7458"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a468142f7860854f6e97910af4eb2b220"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_integer.html">Integer</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a468142f7860854f6e97910af4eb2b220">operator%=</a> (const <a class="el" href="class_integer.html">Integer</a> &amp;t)</td></tr>
<tr class="memdesc:a468142f7860854f6e97910af4eb2b220"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remainder Assignment.  <a href="#a468142f7860854f6e97910af4eb2b220">More...</a><br /></td></tr>
<tr class="separator:a468142f7860854f6e97910af4eb2b220"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6fcad58a76f3cedc4134a18d56ebb808"><td class="memItemLeft" align="right" valign="top"><a id="a6fcad58a76f3cedc4134a18d56ebb808"></a>
<a class="el" href="class_integer.html">Integer</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a6fcad58a76f3cedc4134a18d56ebb808">operator/=</a> (word t)</td></tr>
<tr class="memdesc:a6fcad58a76f3cedc4134a18d56ebb808"><td class="mdescLeft">&#160;</td><td class="mdescRight">Division Assignment. <br /></td></tr>
<tr class="separator:a6fcad58a76f3cedc4134a18d56ebb808"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3874b6ac8979328ce532eebc8b275eab"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_integer.html">Integer</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a3874b6ac8979328ce532eebc8b275eab">operator%=</a> (word t)</td></tr>
<tr class="memdesc:a3874b6ac8979328ce532eebc8b275eab"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remainder Assignment.  <a href="#a3874b6ac8979328ce532eebc8b275eab">More...</a><br /></td></tr>
<tr class="separator:a3874b6ac8979328ce532eebc8b275eab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adc7c1bb57774a97a99ae327e1655b348"><td class="memItemLeft" align="right" valign="top"><a id="adc7c1bb57774a97a99ae327e1655b348"></a>
<a class="el" href="class_integer.html">Integer</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#adc7c1bb57774a97a99ae327e1655b348">operator&lt;&lt;=</a> (size_t n)</td></tr>
<tr class="memdesc:adc7c1bb57774a97a99ae327e1655b348"><td class="mdescLeft">&#160;</td><td class="mdescRight">Left-shift Assignment. <br /></td></tr>
<tr class="separator:adc7c1bb57774a97a99ae327e1655b348"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0858a83f8db01f496b9d78066677fe04"><td class="memItemLeft" align="right" valign="top"><a id="a0858a83f8db01f496b9d78066677fe04"></a>
<a class="el" href="class_integer.html">Integer</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a0858a83f8db01f496b9d78066677fe04">operator&gt;&gt;=</a> (size_t n)</td></tr>
<tr class="memdesc:a0858a83f8db01f496b9d78066677fe04"><td class="mdescLeft">&#160;</td><td class="mdescRight">Right-shift Assignment. <br /></td></tr>
<tr class="separator:a0858a83f8db01f496b9d78066677fe04"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0bd7ffb89e0b6ed97cfd9fc7d2e2be7a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_integer.html">Integer</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a0bd7ffb89e0b6ed97cfd9fc7d2e2be7a">operator&amp;=</a> (const <a class="el" href="class_integer.html">Integer</a> &amp;t)</td></tr>
<tr class="memdesc:a0bd7ffb89e0b6ed97cfd9fc7d2e2be7a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Bitwise AND Assignment.  <a href="#a0bd7ffb89e0b6ed97cfd9fc7d2e2be7a">More...</a><br /></td></tr>
<tr class="separator:a0bd7ffb89e0b6ed97cfd9fc7d2e2be7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a86bb8d8650f38a2756c2169b8c48f872"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_integer.html">Integer</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a86bb8d8650f38a2756c2169b8c48f872">operator|=</a> (const <a class="el" href="class_integer.html">Integer</a> &amp;t)</td></tr>
<tr class="memdesc:a86bb8d8650f38a2756c2169b8c48f872"><td class="mdescLeft">&#160;</td><td class="mdescRight">Bitwise OR Assignment.  <a href="#a86bb8d8650f38a2756c2169b8c48f872">More...</a><br /></td></tr>
<tr class="separator:a86bb8d8650f38a2756c2169b8c48f872"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a90a898c2fd9a9f550f0e6edc9cd7f5cb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_integer.html">Integer</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a90a898c2fd9a9f550f0e6edc9cd7f5cb">operator^=</a> (const <a class="el" href="class_integer.html">Integer</a> &amp;t)</td></tr>
<tr class="memdesc:a90a898c2fd9a9f550f0e6edc9cd7f5cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Bitwise XOR Assignment.  <a href="#a90a898c2fd9a9f550f0e6edc9cd7f5cb">More...</a><br /></td></tr>
<tr class="separator:a90a898c2fd9a9f550f0e6edc9cd7f5cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a62a8829c926b4e421183e76ea4233702"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a62a8829c926b4e421183e76ea4233702">Randomize</a> (<a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &amp;rng, size_t bitCount)</td></tr>
<tr class="memdesc:a62a8829c926b4e421183e76ea4233702"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set this <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> to random integer.  <a href="#a62a8829c926b4e421183e76ea4233702">More...</a><br /></td></tr>
<tr class="separator:a62a8829c926b4e421183e76ea4233702"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aae8e0904d1752629f59f0343507c7f8b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#aae8e0904d1752629f59f0343507c7f8b">Randomize</a> (<a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &amp;rng, const <a class="el" href="class_integer.html">Integer</a> &amp;min, const <a class="el" href="class_integer.html">Integer</a> &amp;max)</td></tr>
<tr class="memdesc:aae8e0904d1752629f59f0343507c7f8b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set this <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> to random integer.  <a href="#aae8e0904d1752629f59f0343507c7f8b">More...</a><br /></td></tr>
<tr class="separator:aae8e0904d1752629f59f0343507c7f8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a83dd6a11aa51d545ce2735777787b622"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a83dd6a11aa51d545ce2735777787b622">Randomize</a> (<a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &amp;rng, const <a class="el" href="class_integer.html">Integer</a> &amp;min, const <a class="el" href="class_integer.html">Integer</a> &amp;max, <a class="el" href="class_integer.html#a9b4088ac01abf76b9ba60060abccb7a3">RandomNumberType</a> rnType, const <a class="el" href="class_integer.html">Integer</a> &amp;equiv=<a class="el" href="class_integer.html#a19b7e6d48b1b57bd4846160ea2928175">Zero</a>(), const <a class="el" href="class_integer.html">Integer</a> &amp;mod=<a class="el" href="class_integer.html#a8c070592581bf6c2f928c72bfa1c1638">One</a>())</td></tr>
<tr class="memdesc:a83dd6a11aa51d545ce2735777787b622"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set this <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> to random integer of special form.  <a href="#a83dd6a11aa51d545ce2735777787b622">More...</a><br /></td></tr>
<tr class="separator:a83dd6a11aa51d545ce2735777787b622"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad330521e84a900a80e8dd90e97796e17"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#ad330521e84a900a80e8dd90e97796e17">GenerateRandomNoThrow</a> (<a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &amp;rng, const <a class="el" href="class_name_value_pairs.html">NameValuePairs</a> &amp;params=<a class="el" href="cryptlib_8h.html#a04be65ada92ccb1e6aac0d94b4cc394b">g_nullNameValuePairs</a>)</td></tr>
<tr class="memdesc:ad330521e84a900a80e8dd90e97796e17"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate a random number.  <a href="#ad330521e84a900a80e8dd90e97796e17">More...</a><br /></td></tr>
<tr class="separator:ad330521e84a900a80e8dd90e97796e17"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0d9a427fe64a454b11b24fe61c10dbeb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a0d9a427fe64a454b11b24fe61c10dbeb">GenerateRandom</a> (<a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &amp;rng, const <a class="el" href="class_name_value_pairs.html">NameValuePairs</a> &amp;params=<a class="el" href="cryptlib_8h.html#a04be65ada92ccb1e6aac0d94b4cc394b">g_nullNameValuePairs</a>)</td></tr>
<tr class="memdesc:a0d9a427fe64a454b11b24fe61c10dbeb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate a random number.  <a href="#a0d9a427fe64a454b11b24fe61c10dbeb">More...</a><br /></td></tr>
<tr class="separator:a0d9a427fe64a454b11b24fe61c10dbeb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f0d5fae94eba0c55da9bd1c5138d155"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a2f0d5fae94eba0c55da9bd1c5138d155">SetBit</a> (size_t n, bool value=1)</td></tr>
<tr class="memdesc:a2f0d5fae94eba0c55da9bd1c5138d155"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the n-th bit to value.  <a href="#a2f0d5fae94eba0c55da9bd1c5138d155">More...</a><br /></td></tr>
<tr class="separator:a2f0d5fae94eba0c55da9bd1c5138d155"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0ff987d783a61f52c8c5d57b324a8d45"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a0ff987d783a61f52c8c5d57b324a8d45">SetByte</a> (size_t n, byte value)</td></tr>
<tr class="memdesc:a0ff987d783a61f52c8c5d57b324a8d45"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the n-th byte to value.  <a href="#a0ff987d783a61f52c8c5d57b324a8d45">More...</a><br /></td></tr>
<tr class="separator:a0ff987d783a61f52c8c5d57b324a8d45"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a87410093addf9a2253fe07b39b918b02"><td class="memItemLeft" align="right" valign="top"><a id="a87410093addf9a2253fe07b39b918b02"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a87410093addf9a2253fe07b39b918b02">Negate</a> ()</td></tr>
<tr class="memdesc:a87410093addf9a2253fe07b39b918b02"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reverse the Sign of the <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a>. <br /></td></tr>
<tr class="separator:a87410093addf9a2253fe07b39b918b02"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8ba4496f4ae1392c3860d3bcbba586c1"><td class="memItemLeft" align="right" valign="top"><a id="a8ba4496f4ae1392c3860d3bcbba586c1"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a8ba4496f4ae1392c3860d3bcbba586c1">SetPositive</a> ()</td></tr>
<tr class="memdesc:a8ba4496f4ae1392c3860d3bcbba586c1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> to positive. <br /></td></tr>
<tr class="separator:a8ba4496f4ae1392c3860d3bcbba586c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a860dd1318ef7089d774674f2100c8fb8"><td class="memItemLeft" align="right" valign="top"><a id="a860dd1318ef7089d774674f2100c8fb8"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a860dd1318ef7089d774674f2100c8fb8">SetNegative</a> ()</td></tr>
<tr class="memdesc:a860dd1318ef7089d774674f2100c8fb8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> to negative. <br /></td></tr>
<tr class="separator:a860dd1318ef7089d774674f2100c8fb8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abf1e9c170e56841ce73d137c12675f9b"><td class="memItemLeft" align="right" valign="top"><a id="abf1e9c170e56841ce73d137c12675f9b"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#abf1e9c170e56841ce73d137c12675f9b">swap</a> (<a class="el" href="class_integer.html">Integer</a> &amp;a)</td></tr>
<tr class="memdesc:abf1e9c170e56841ce73d137c12675f9b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Swaps this <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> with another <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a>. <br /></td></tr>
<tr class="separator:abf1e9c170e56841ce73d137c12675f9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
UNARY OPERATORS</h2></td></tr>
<tr class="memitem:a9b5443f082a62e1b9056fa04b642f24b"><td class="memItemLeft" align="right" valign="top"><a id="a9b5443f082a62e1b9056fa04b642f24b"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a9b5443f082a62e1b9056fa04b642f24b">operator!</a> () const</td></tr>
<tr class="memdesc:a9b5443f082a62e1b9056fa04b642f24b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Negation. <br /></td></tr>
<tr class="separator:a9b5443f082a62e1b9056fa04b642f24b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a95274da93f81f1cd71a8868bba3e3b86"><td class="memItemLeft" align="right" valign="top"><a id="a95274da93f81f1cd71a8868bba3e3b86"></a>
<a class="el" href="class_integer.html">Integer</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a95274da93f81f1cd71a8868bba3e3b86">operator+</a> () const</td></tr>
<tr class="memdesc:a95274da93f81f1cd71a8868bba3e3b86"><td class="mdescLeft">&#160;</td><td class="mdescRight">Addition. <br /></td></tr>
<tr class="separator:a95274da93f81f1cd71a8868bba3e3b86"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2ea2f60e46acea85fa4dd414dd9f9435"><td class="memItemLeft" align="right" valign="top"><a id="a2ea2f60e46acea85fa4dd414dd9f9435"></a>
<a class="el" href="class_integer.html">Integer</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a2ea2f60e46acea85fa4dd414dd9f9435">operator-</a> () const</td></tr>
<tr class="memdesc:a2ea2f60e46acea85fa4dd414dd9f9435"><td class="mdescLeft">&#160;</td><td class="mdescRight">Subtraction. <br /></td></tr>
<tr class="separator:a2ea2f60e46acea85fa4dd414dd9f9435"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4290bf7f6763b27a51e216bdbfdea68f"><td class="memItemLeft" align="right" valign="top"><a id="a4290bf7f6763b27a51e216bdbfdea68f"></a>
<a class="el" href="class_integer.html">Integer</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a4290bf7f6763b27a51e216bdbfdea68f">operator++</a> ()</td></tr>
<tr class="memdesc:a4290bf7f6763b27a51e216bdbfdea68f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pre-increment. <br /></td></tr>
<tr class="separator:a4290bf7f6763b27a51e216bdbfdea68f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5b3dd03530b31f3839c75dcdc4322ee6"><td class="memItemLeft" align="right" valign="top"><a id="a5b3dd03530b31f3839c75dcdc4322ee6"></a>
<a class="el" href="class_integer.html">Integer</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a5b3dd03530b31f3839c75dcdc4322ee6">operator--</a> ()</td></tr>
<tr class="memdesc:a5b3dd03530b31f3839c75dcdc4322ee6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pre-decrement. <br /></td></tr>
<tr class="separator:a5b3dd03530b31f3839c75dcdc4322ee6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1666444f09484e482b2f94dd263c7dc9"><td class="memItemLeft" align="right" valign="top"><a id="a1666444f09484e482b2f94dd263c7dc9"></a>
<a class="el" href="class_integer.html">Integer</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a1666444f09484e482b2f94dd263c7dc9">operator++</a> (int)</td></tr>
<tr class="memdesc:a1666444f09484e482b2f94dd263c7dc9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Post-increment. <br /></td></tr>
<tr class="separator:a1666444f09484e482b2f94dd263c7dc9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a000120734ad8ba84af5c5ac7f5f84925"><td class="memItemLeft" align="right" valign="top"><a id="a000120734ad8ba84af5c5ac7f5f84925"></a>
<a class="el" href="class_integer.html">Integer</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a000120734ad8ba84af5c5ac7f5f84925">operator--</a> (int)</td></tr>
<tr class="memdesc:a000120734ad8ba84af5c5ac7f5f84925"><td class="mdescLeft">&#160;</td><td class="mdescRight">Post-decrement. <br /></td></tr>
<tr class="separator:a000120734ad8ba84af5c5ac7f5f84925"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
BINARY OPERATORS</h2></td></tr>
<tr class="memitem:aaf97afd2d7f7350fae4aea5bf97b30f7"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#aaf97afd2d7f7350fae4aea5bf97b30f7">Compare</a> (const <a class="el" href="class_integer.html">Integer</a> &amp;a) const</td></tr>
<tr class="memdesc:aaf97afd2d7f7350fae4aea5bf97b30f7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Perform signed comparison.  <a href="#aaf97afd2d7f7350fae4aea5bf97b30f7">More...</a><br /></td></tr>
<tr class="separator:aaf97afd2d7f7350fae4aea5bf97b30f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3bc46983f8d1c020a49f6a5b1e46b521"><td class="memItemLeft" align="right" valign="top"><a id="a3bc46983f8d1c020a49f6a5b1e46b521"></a>
<a class="el" href="class_integer.html">Integer</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a3bc46983f8d1c020a49f6a5b1e46b521">Plus</a> (const <a class="el" href="class_integer.html">Integer</a> &amp;b) const</td></tr>
<tr class="memdesc:a3bc46983f8d1c020a49f6a5b1e46b521"><td class="mdescLeft">&#160;</td><td class="mdescRight">Addition. <br /></td></tr>
<tr class="separator:a3bc46983f8d1c020a49f6a5b1e46b521"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1febafde3a0b51d5c76a8278a924ed4d"><td class="memItemLeft" align="right" valign="top"><a id="a1febafde3a0b51d5c76a8278a924ed4d"></a>
<a class="el" href="class_integer.html">Integer</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a1febafde3a0b51d5c76a8278a924ed4d">Minus</a> (const <a class="el" href="class_integer.html">Integer</a> &amp;b) const</td></tr>
<tr class="memdesc:a1febafde3a0b51d5c76a8278a924ed4d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Subtraction. <br /></td></tr>
<tr class="separator:a1febafde3a0b51d5c76a8278a924ed4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5530f03e5927f2304aa1a8c52a9290ea"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_integer.html">Integer</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a5530f03e5927f2304aa1a8c52a9290ea">Times</a> (const <a class="el" href="class_integer.html">Integer</a> &amp;b) const</td></tr>
<tr class="memdesc:a5530f03e5927f2304aa1a8c52a9290ea"><td class="mdescLeft">&#160;</td><td class="mdescRight">Multiplication.  <a href="#a5530f03e5927f2304aa1a8c52a9290ea">More...</a><br /></td></tr>
<tr class="separator:a5530f03e5927f2304aa1a8c52a9290ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3c203b036e7c41da6c644f006ae5207c"><td class="memItemLeft" align="right" valign="top"><a id="a3c203b036e7c41da6c644f006ae5207c"></a>
<a class="el" href="class_integer.html">Integer</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a3c203b036e7c41da6c644f006ae5207c">DividedBy</a> (const <a class="el" href="class_integer.html">Integer</a> &amp;b) const</td></tr>
<tr class="memdesc:a3c203b036e7c41da6c644f006ae5207c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Division. <br /></td></tr>
<tr class="separator:a3c203b036e7c41da6c644f006ae5207c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aafc5da518e41b7e7c9c967b3e053f86c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_integer.html">Integer</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#aafc5da518e41b7e7c9c967b3e053f86c">Modulo</a> (const <a class="el" href="class_integer.html">Integer</a> &amp;b) const</td></tr>
<tr class="memdesc:aafc5da518e41b7e7c9c967b3e053f86c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remainder.  <a href="#aafc5da518e41b7e7c9c967b3e053f86c">More...</a><br /></td></tr>
<tr class="separator:aafc5da518e41b7e7c9c967b3e053f86c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3db861783001e2efb038728978978e91"><td class="memItemLeft" align="right" valign="top"><a id="a3db861783001e2efb038728978978e91"></a>
<a class="el" href="class_integer.html">Integer</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a3db861783001e2efb038728978978e91">DividedBy</a> (word b) const</td></tr>
<tr class="memdesc:a3db861783001e2efb038728978978e91"><td class="mdescLeft">&#160;</td><td class="mdescRight">Division. <br /></td></tr>
<tr class="separator:a3db861783001e2efb038728978978e91"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e50258f43fef7034660bc73330cb9b7"><td class="memItemLeft" align="right" valign="top">word&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a5e50258f43fef7034660bc73330cb9b7">Modulo</a> (word b) const</td></tr>
<tr class="memdesc:a5e50258f43fef7034660bc73330cb9b7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remainder.  <a href="#a5e50258f43fef7034660bc73330cb9b7">More...</a><br /></td></tr>
<tr class="separator:a5e50258f43fef7034660bc73330cb9b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3a345a284b542db65844717565ba2a10"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_integer.html">Integer</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a3a345a284b542db65844717565ba2a10">And</a> (const <a class="el" href="class_integer.html">Integer</a> &amp;t) const</td></tr>
<tr class="memdesc:a3a345a284b542db65844717565ba2a10"><td class="mdescLeft">&#160;</td><td class="mdescRight">Bitwise AND.  <a href="#a3a345a284b542db65844717565ba2a10">More...</a><br /></td></tr>
<tr class="separator:a3a345a284b542db65844717565ba2a10"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7369ca542ae39371e4abc60059353c26"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_integer.html">Integer</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a7369ca542ae39371e4abc60059353c26">Or</a> (const <a class="el" href="class_integer.html">Integer</a> &amp;t) const</td></tr>
<tr class="memdesc:a7369ca542ae39371e4abc60059353c26"><td class="mdescLeft">&#160;</td><td class="mdescRight">Bitwise OR.  <a href="#a7369ca542ae39371e4abc60059353c26">More...</a><br /></td></tr>
<tr class="separator:a7369ca542ae39371e4abc60059353c26"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaaf727488edae8235d67209553ebd3a1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_integer.html">Integer</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#aaaf727488edae8235d67209553ebd3a1">Xor</a> (const <a class="el" href="class_integer.html">Integer</a> &amp;t) const</td></tr>
<tr class="memdesc:aaaf727488edae8235d67209553ebd3a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Bitwise XOR.  <a href="#aaaf727488edae8235d67209553ebd3a1">More...</a><br /></td></tr>
<tr class="separator:aaaf727488edae8235d67209553ebd3a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a590c29985d3edfdb9b5dab9f6d5ad3b1"><td class="memItemLeft" align="right" valign="top"><a id="a590c29985d3edfdb9b5dab9f6d5ad3b1"></a>
<a class="el" href="class_integer.html">Integer</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a590c29985d3edfdb9b5dab9f6d5ad3b1">operator&gt;&gt;</a> (size_t n) const</td></tr>
<tr class="memdesc:a590c29985d3edfdb9b5dab9f6d5ad3b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Right-shift. <br /></td></tr>
<tr class="separator:a590c29985d3edfdb9b5dab9f6d5ad3b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaf2d3f82da9d6d03b79984178170df07"><td class="memItemLeft" align="right" valign="top"><a id="aaf2d3f82da9d6d03b79984178170df07"></a>
<a class="el" href="class_integer.html">Integer</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#aaf2d3f82da9d6d03b79984178170df07">operator&lt;&lt;</a> (size_t n) const</td></tr>
<tr class="memdesc:aaf2d3f82da9d6d03b79984178170df07"><td class="mdescLeft">&#160;</td><td class="mdescRight">Left-shift. <br /></td></tr>
<tr class="separator:aaf2d3f82da9d6d03b79984178170df07"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
OTHER ARITHMETIC FUNCTIONS</h2></td></tr>
<tr class="memitem:a9f695e8607be4d864fa0b1c6edb60bb1"><td class="memItemLeft" align="right" valign="top"><a id="a9f695e8607be4d864fa0b1c6edb60bb1"></a>
<a class="el" href="class_integer.html">Integer</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a9f695e8607be4d864fa0b1c6edb60bb1">AbsoluteValue</a> () const</td></tr>
<tr class="memdesc:a9f695e8607be4d864fa0b1c6edb60bb1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve the absolute value of this integer. <br /></td></tr>
<tr class="separator:a9f695e8607be4d864fa0b1c6edb60bb1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4d86bd0bc25c23b4c6a797a8eff3a41f"><td class="memItemLeft" align="right" valign="top"><a id="a4d86bd0bc25c23b4c6a797a8eff3a41f"></a>
<a class="el" href="class_integer.html">Integer</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a4d86bd0bc25c23b4c6a797a8eff3a41f">Doubled</a> () const</td></tr>
<tr class="memdesc:a4d86bd0bc25c23b4c6a797a8eff3a41f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add this integer to itself. <br /></td></tr>
<tr class="separator:a4d86bd0bc25c23b4c6a797a8eff3a41f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7b5e639045868c5ac338f4180e1c7efa"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_integer.html">Integer</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a7b5e639045868c5ac338f4180e1c7efa">Squared</a> () const</td></tr>
<tr class="memdesc:a7b5e639045868c5ac338f4180e1c7efa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Multiply this integer by itself.  <a href="#a7b5e639045868c5ac338f4180e1c7efa">More...</a><br /></td></tr>
<tr class="separator:a7b5e639045868c5ac338f4180e1c7efa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afa743f726d57e4dc88335e9f2d79c8a5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_integer.html">Integer</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#afa743f726d57e4dc88335e9f2d79c8a5">SquareRoot</a> () const</td></tr>
<tr class="memdesc:afa743f726d57e4dc88335e9f2d79c8a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Extract square root.  <a href="#afa743f726d57e4dc88335e9f2d79c8a5">More...</a><br /></td></tr>
<tr class="separator:afa743f726d57e4dc88335e9f2d79c8a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3acfdfd7aa905d2600073449c31eb3c4"><td class="memItemLeft" align="right" valign="top"><a id="a3acfdfd7aa905d2600073449c31eb3c4"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a3acfdfd7aa905d2600073449c31eb3c4">IsSquare</a> () const</td></tr>
<tr class="memdesc:a3acfdfd7aa905d2600073449c31eb3c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determine whether this integer is a perfect square. <br /></td></tr>
<tr class="separator:a3acfdfd7aa905d2600073449c31eb3c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aea313b73beda59a8c4ee2de11d637412"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#aea313b73beda59a8c4ee2de11d637412">IsUnit</a> () const</td></tr>
<tr class="memdesc:aea313b73beda59a8c4ee2de11d637412"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determine if 1 or -1.  <a href="#aea313b73beda59a8c4ee2de11d637412">More...</a><br /></td></tr>
<tr class="separator:aea313b73beda59a8c4ee2de11d637412"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad10f8a0906d5f1a802184a07f1c002c7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_integer.html">Integer</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#ad10f8a0906d5f1a802184a07f1c002c7">MultiplicativeInverse</a> () const</td></tr>
<tr class="memdesc:ad10f8a0906d5f1a802184a07f1c002c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate multiplicative inverse.  <a href="#ad10f8a0906d5f1a802184a07f1c002c7">More...</a><br /></td></tr>
<tr class="separator:ad10f8a0906d5f1a802184a07f1c002c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af805574831ce19221692966e6217e6e0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_integer.html">Integer</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#af805574831ce19221692966e6217e6e0">InverseMod</a> (const <a class="el" href="class_integer.html">Integer</a> &amp;n) const</td></tr>
<tr class="memdesc:af805574831ce19221692966e6217e6e0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate multiplicative inverse.  <a href="#af805574831ce19221692966e6217e6e0">More...</a><br /></td></tr>
<tr class="separator:af805574831ce19221692966e6217e6e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a301b042e5375cbdc310c351a25eec117"><td class="memItemLeft" align="right" valign="top">word&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a301b042e5375cbdc310c351a25eec117">InverseMod</a> (word n) const</td></tr>
<tr class="memdesc:a301b042e5375cbdc310c351a25eec117"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate multiplicative inverse.  <a href="#a301b042e5375cbdc310c351a25eec117">More...</a><br /></td></tr>
<tr class="separator:a301b042e5375cbdc310c351a25eec117"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a567c89aa176b354143c99d558d05a5fb"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a567c89aa176b354143c99d558d05a5fb">Divide</a> (<a class="el" href="class_integer.html">Integer</a> &amp;r, <a class="el" href="class_integer.html">Integer</a> &amp;q, const <a class="el" href="class_integer.html">Integer</a> &amp;a, const <a class="el" href="class_integer.html">Integer</a> &amp;d)</td></tr>
<tr class="memdesc:a567c89aa176b354143c99d558d05a5fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Extended Division.  <a href="#a567c89aa176b354143c99d558d05a5fb">More...</a><br /></td></tr>
<tr class="separator:a567c89aa176b354143c99d558d05a5fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1849c5a8af28ab4f3a70d9690924f249"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a1849c5a8af28ab4f3a70d9690924f249">Divide</a> (word &amp;r, <a class="el" href="class_integer.html">Integer</a> &amp;q, const <a class="el" href="class_integer.html">Integer</a> &amp;a, word d)</td></tr>
<tr class="memdesc:a1849c5a8af28ab4f3a70d9690924f249"><td class="mdescLeft">&#160;</td><td class="mdescRight">Extended Division.  <a href="#a1849c5a8af28ab4f3a70d9690924f249">More...</a><br /></td></tr>
<tr class="separator:a1849c5a8af28ab4f3a70d9690924f249"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abf2934a6172b4cb5317874f0c993a420"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#abf2934a6172b4cb5317874f0c993a420">DivideByPowerOf2</a> (<a class="el" href="class_integer.html">Integer</a> &amp;r, <a class="el" href="class_integer.html">Integer</a> &amp;q, const <a class="el" href="class_integer.html">Integer</a> &amp;a, unsigned int n)</td></tr>
<tr class="memdesc:abf2934a6172b4cb5317874f0c993a420"><td class="mdescLeft">&#160;</td><td class="mdescRight">Extended Division.  <a href="#abf2934a6172b4cb5317874f0c993a420">More...</a><br /></td></tr>
<tr class="separator:abf2934a6172b4cb5317874f0c993a420"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2d4d29937f8ef666717530b30f137c37"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="class_integer.html">Integer</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a2d4d29937f8ef666717530b30f137c37">Gcd</a> (const <a class="el" href="class_integer.html">Integer</a> &amp;a, const <a class="el" href="class_integer.html">Integer</a> &amp;n)</td></tr>
<tr class="memdesc:a2d4d29937f8ef666717530b30f137c37"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate greatest common divisor.  <a href="#a2d4d29937f8ef666717530b30f137c37">More...</a><br /></td></tr>
<tr class="separator:a2d4d29937f8ef666717530b30f137c37"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
INPUT/OUTPUT</h2></td></tr>
<tr class="memitem:a99ad8fd21605c5caedde9c48c09bfe0b"><td class="memItemLeft" align="right" valign="top">std::istream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#a99ad8fd21605c5caedde9c48c09bfe0b">operator&gt;&gt;</a> (std::istream &amp;in, <a class="el" href="class_integer.html">Integer</a> &amp;a)</td></tr>
<tr class="memdesc:a99ad8fd21605c5caedde9c48c09bfe0b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Extraction operator.  <a href="#a99ad8fd21605c5caedde9c48c09bfe0b">More...</a><br /></td></tr>
<tr class="separator:a99ad8fd21605c5caedde9c48c09bfe0b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af229949f360bddce0743d21fdecf36c3"><td class="memItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_integer.html#af229949f360bddce0743d21fdecf36c3">operator&lt;&lt;</a> (std::ostream &amp;out, const <a class="el" href="class_integer.html">Integer</a> &amp;a)</td></tr>
<tr class="memdesc:af229949f360bddce0743d21fdecf36c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Insertion operator.  <a href="#af229949f360bddce0743d21fdecf36c3">More...</a><br /></td></tr>
<tr class="separator:af229949f360bddce0743d21fdecf36c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pub_methods_class_a_s_n1_object"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_a_s_n1_object')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_a_s_n1_object.html">ASN1Object</a></td></tr>
<tr class="memitem:a23d4aa134b80757d98145ecc832b5abb inherit pub_methods_class_a_s_n1_object"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_s_n1_object.html#a23d4aa134b80757d98145ecc832b5abb">BEREncode</a> (<a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;bt) const</td></tr>
<tr class="memdesc:a23d4aa134b80757d98145ecc832b5abb inherit pub_methods_class_a_s_n1_object"><td class="mdescLeft">&#160;</td><td class="mdescRight">Encode this object into a <a class="el" href="class_buffered_transformation.html" title="Interface for buffered transformations.">BufferedTransformation</a>.  <a href="class_a_s_n1_object.html#a23d4aa134b80757d98145ecc832b5abb">More...</a><br /></td></tr>
<tr class="separator:a23d4aa134b80757d98145ecc832b5abb inherit pub_methods_class_a_s_n1_object"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Multiple precision integer with arithmetic operations. </p>
<p>The <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> class can represent positive and negative integers with absolute value less than (256**sizeof(word))<sup>(256**sizeof(int))</sup>.</p>
<p>Internally, the library uses a sign magnitude representation, and the class has two data members. The first is a IntegerSecBlock (a <a class="el" href="class_sec_block.html">SecBlock&lt;word&gt;</a>) and it is used to hold the representation. The second is a Sign (an enumeration), and it is used to track the sign of the <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a>.</p>
<p>For details on how the <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> class initializes its function pointers using <a class="el" href="struct_initialize_integer.html" title="Performs static initialization of the Integer class.">InitializeInteger</a> and how it creates <a class="el" href="class_integer.html#a19b7e6d48b1b57bd4846160ea2928175" title="Integer representing 0.">Integer::Zero()</a>, <a class="el" href="class_integer.html#a8c070592581bf6c2f928c72bfa1c1638" title="Integer representing 1.">Integer::One()</a>, and <a class="el" href="class_integer.html#af0cb74a45a48e677952166bdac9d82d7" title="Integer representing 2.">Integer::Two()</a>, then see the comments at the top of <code><a class="el" href="integer_8cpp_source.html">integer.cpp</a></code>. </p><dl class="section since"><dt>Since</dt><dd>Crypto++ 1.0 </dd></dl>

<p class="definition">Definition at line <a class="el" href="integer_8h_source.html#l00049">49</a> of file <a class="el" href="integer_8h_source.html">integer.h</a>.</p>
</div><h2 class="groupheader">Member Enumeration Documentation</h2>
<a id="ae0d4d9975fb6ab7667aab6f7ab8612d2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae0d4d9975fb6ab7667aab6f7ab8612d2">&#9670;&nbsp;</a></span>Sign</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="class_integer.html#ae0d4d9975fb6ab7667aab6f7ab8612d2">Integer::Sign</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Used internally to represent the integer. </p>
<p>Sign is used internally to represent the integer. It is also used in a few API functions. </p><dl class="section see"><dt>See also</dt><dd><a class="el" href="class_integer.html#a8ba4496f4ae1392c3860d3bcbba586c1" title="Sets the Integer to positive.">SetPositive()</a>, <a class="el" href="class_integer.html#a860dd1318ef7089d774674f2100c8fb8" title="Sets the Integer to negative.">SetNegative()</a>, <a class="el" href="class_integer.html#aa9712040ccab541e30c00e0f3ae39926" title="Used when importing and exporting integers.">Signedness</a> </dd></dl>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ae0d4d9975fb6ab7667aab6f7ab8612d2ad10299fe0b190d3de927db776b8dc42d"></a>POSITIVE&#160;</td><td class="fielddoc"><p>the value is positive or 0 </p>
</td></tr>
<tr><td class="fieldname"><a id="ae0d4d9975fb6ab7667aab6f7ab8612d2a8f19e88ce9bdf42cea3e070d5aa26f14"></a>NEGATIVE&#160;</td><td class="fielddoc"><p>the value is negative </p>
</td></tr>
</table>

<p class="definition">Definition at line <a class="el" href="integer_8h_source.html#l00073">73</a> of file <a class="el" href="integer_8h_source.html">integer.h</a>.</p>

</div>
</div>
<a id="aa9712040ccab541e30c00e0f3ae39926"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa9712040ccab541e30c00e0f3ae39926">&#9670;&nbsp;</a></span>Signedness</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="class_integer.html#aa9712040ccab541e30c00e0f3ae39926">Integer::Signedness</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Used when importing and exporting integers. </p>
<p>Signedness is usually used in API functions. </p><dl class="section see"><dt>See also</dt><dd><a class="el" href="class_integer.html#ae0d4d9975fb6ab7667aab6f7ab8612d2" title="Used internally to represent the integer.">Sign</a> </dd></dl>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="aa9712040ccab541e30c00e0f3ae39926ab4fe86ca57cc3668213b99032ca274df"></a>UNSIGNED&#160;</td><td class="fielddoc"><p>an unsigned value </p>
</td></tr>
<tr><td class="fieldname"><a id="aa9712040ccab541e30c00e0f3ae39926a4a42c6ec9823d7d75dcfd97ef6276ccb"></a>SIGNED&#160;</td><td class="fielddoc"><p>a signed value </p>
</td></tr>
</table>

<p class="definition">Definition at line <a class="el" href="integer_8h_source.html#l00083">83</a> of file <a class="el" href="integer_8h_source.html">integer.h</a>.</p>

</div>
</div>
<a id="a9b4088ac01abf76b9ba60060abccb7a3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9b4088ac01abf76b9ba60060abccb7a3">&#9670;&nbsp;</a></span>RandomNumberType</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="class_integer.html#a9b4088ac01abf76b9ba60060abccb7a3">Integer::RandomNumberType</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Properties of a random integer. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a9b4088ac01abf76b9ba60060abccb7a3ad9b396a7ba736a4ca02db0125cc8c6a4"></a>ANY&#160;</td><td class="fielddoc"><p>a number with no special properties </p>
</td></tr>
<tr><td class="fieldname"><a id="a9b4088ac01abf76b9ba60060abccb7a3afe686f55e5b6768b20009a12522bd0d9"></a>PRIME&#160;</td><td class="fielddoc"><p>a number which is probabilistically prime </p>
</td></tr>
</table>

<p class="definition">Definition at line <a class="el" href="integer_8h_source.html#l00091">91</a> of file <a class="el" href="integer_8h_source.html">integer.h</a>.</p>

</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a6dd06a5b5677a45d6f7bbbb0d80ed60a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6dd06a5b5677a45d6f7bbbb0d80ed60a">&#9670;&nbsp;</a></span>Integer() <span class="overload">[1/9]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Integer::Integer </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_integer.html#ae0d4d9975fb6ab7667aab6f7ab8612d2">Sign</a>&#160;</td>
          <td class="paramname"><em>sign</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">lword&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Convert from lword. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">sign</td><td>enumeration indicating Sign </td></tr>
    <tr><td class="paramname">value</td><td>the long word </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="integer_8cpp_source.html#l02946">2946</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>

</div>
</div>
<a id="aadc32f35a8fad433c206d6c8cbb64123"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aadc32f35a8fad433c206d6c8cbb64123">&#9670;&nbsp;</a></span>Integer() <span class="overload">[2/9]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Integer::Integer </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_integer.html#ae0d4d9975fb6ab7667aab6f7ab8612d2">Sign</a>&#160;</td>
          <td class="paramname"><em>sign</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">word&#160;</td>
          <td class="paramname"><em>highWord</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">word&#160;</td>
          <td class="paramname"><em>lowWord</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Convert from two words. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">sign</td><td>enumeration indicating Sign </td></tr>
    <tr><td class="paramname">highWord</td><td>the high word </td></tr>
    <tr><td class="paramname">lowWord</td><td>the low word </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="integer_8cpp_source.html#l02967">2967</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>

</div>
</div>
<a id="aa5f24aab6821fe59b7b161682b9a40cd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa5f24aab6821fe59b7b161682b9a40cd">&#9670;&nbsp;</a></span>Integer() <span class="overload">[3/9]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">Integer::Integer </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="cryptlib_8h.html#aaeb92d42f5a6e27b8ba19f18d69d142b">ByteOrder</a>&#160;</td>
          <td class="paramname"><em>order</em> = <code><a class="el" href="cryptlib_8h.html#aaeb92d42f5a6e27b8ba19f18d69d142baf0c3bb6c718cc7ff0bffef4e8f178c57">BIG_ENDIAN_ORDER</a></code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">explicit</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Convert from a C-string. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>C-string value </td></tr>
    <tr><td class="paramname">order</td><td>the ByteOrder of the string to be processed</td></tr>
  </table>
  </dd>
</dl>
<p><code>str</code> can be in base 2, 8, 10, or 16. Base is determined by a case insensitive suffix of 'h', 'o', or 'b'. No suffix means base 10.</p>
<p>Byte order was added at Crypto++ 5.7 to allow use of little-endian integers with curve25519, <a class="el" href="class_poly1305.html" title="Poly1305 message authentication code.">Poly1305</a> and Microsoft CAPI. </p>

<p class="definition">Definition at line <a class="el" href="integer_8cpp_source.html#l03293">3293</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>

</div>
</div>
<a id="ae40a2310e74454ae4e93252b169b9560"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae40a2310e74454ae4e93252b169b9560">&#9670;&nbsp;</a></span>Integer() <span class="overload">[4/9]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">Integer::Integer </td>
          <td>(</td>
          <td class="paramtype">const wchar_t *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="cryptlib_8h.html#aaeb92d42f5a6e27b8ba19f18d69d142b">ByteOrder</a>&#160;</td>
          <td class="paramname"><em>order</em> = <code><a class="el" href="cryptlib_8h.html#aaeb92d42f5a6e27b8ba19f18d69d142baf0c3bb6c718cc7ff0bffef4e8f178c57">BIG_ENDIAN_ORDER</a></code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">explicit</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Convert from a wide C-string. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>wide C-string value </td></tr>
    <tr><td class="paramname">order</td><td>the ByteOrder of the string to be processed</td></tr>
  </table>
  </dd>
</dl>
<p><code>str</code> can be in base 2, 8, 10, or 16. Base is determined by a case insensitive suffix of 'h', 'o', or 'b'. No suffix means base 10.</p>
<p>Byte order was added at Crypto++ 5.7 to allow use of little-endian integers with curve25519, <a class="el" href="class_poly1305.html" title="Poly1305 message authentication code.">Poly1305</a> and Microsoft CAPI. </p>

<p class="definition">Definition at line <a class="el" href="integer_8cpp_source.html#l03299">3299</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>

</div>
</div>
<a id="a248589e28fdebaa3d33a828904e38a59"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a248589e28fdebaa3d33a828904e38a59">&#9670;&nbsp;</a></span>Integer() <span class="overload">[5/9]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Integer::Integer </td>
          <td>(</td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>encodedInteger</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>byteCount</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_integer.html#aa9712040ccab541e30c00e0f3ae39926">Signedness</a>&#160;</td>
          <td class="paramname"><em>sign</em> = <code><a class="el" href="class_integer.html#aa9712040ccab541e30c00e0f3ae39926ab4fe86ca57cc3668213b99032ca274df">UNSIGNED</a></code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="cryptlib_8h.html#aaeb92d42f5a6e27b8ba19f18d69d142b">ByteOrder</a>&#160;</td>
          <td class="paramname"><em>order</em> = <code><a class="el" href="cryptlib_8h.html#aaeb92d42f5a6e27b8ba19f18d69d142baf0c3bb6c718cc7ff0bffef4e8f178c57">BIG_ENDIAN_ORDER</a></code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Convert from a big-endian byte array. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">encodedInteger</td><td>big-endian byte array </td></tr>
    <tr><td class="paramname">byteCount</td><td>length of the byte array </td></tr>
    <tr><td class="paramname">sign</td><td>enumeration indicating Signedness </td></tr>
    <tr><td class="paramname">order</td><td>the ByteOrder of the array to be processed</td></tr>
  </table>
  </dd>
</dl>
<p>Byte order was added at Crypto++ 5.7 to allow use of little-endian integers with curve25519, <a class="el" href="class_poly1305.html" title="Poly1305 message authentication code.">Poly1305</a> and Microsoft CAPI. </p>

<p class="definition">Definition at line <a class="el" href="integer_8cpp_source.html#l03015">3015</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>

</div>
</div>
<a id="a1f8c139b8ddabfaad3fc6e69ab765317"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1f8c139b8ddabfaad3fc6e69ab765317">&#9670;&nbsp;</a></span>Integer() <span class="overload">[6/9]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Integer::Integer </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;&#160;</td>
          <td class="paramname"><em>bt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>byteCount</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_integer.html#aa9712040ccab541e30c00e0f3ae39926">Signedness</a>&#160;</td>
          <td class="paramname"><em>sign</em> = <code><a class="el" href="class_integer.html#aa9712040ccab541e30c00e0f3ae39926ab4fe86ca57cc3668213b99032ca274df">UNSIGNED</a></code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="cryptlib_8h.html#aaeb92d42f5a6e27b8ba19f18d69d142b">ByteOrder</a>&#160;</td>
          <td class="paramname"><em>order</em> = <code><a class="el" href="cryptlib_8h.html#aaeb92d42f5a6e27b8ba19f18d69d142baf0c3bb6c718cc7ff0bffef4e8f178c57">BIG_ENDIAN_ORDER</a></code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Convert from a big-endian array. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">bt</td><td><a class="el" href="class_buffered_transformation.html" title="Interface for buffered transformations.">BufferedTransformation</a> object with big-endian byte array </td></tr>
    <tr><td class="paramname">byteCount</td><td>length of the byte array </td></tr>
    <tr><td class="paramname">sign</td><td>enumeration indicating Signedness </td></tr>
    <tr><td class="paramname">order</td><td>the ByteOrder of the data to be processed</td></tr>
  </table>
  </dd>
</dl>
<p>Byte order was added at Crypto++ 5.7 to allow use of little-endian integers with curve25519, <a class="el" href="class_poly1305.html" title="Poly1305 message authentication code.">Poly1305</a> and Microsoft CAPI. </p>

<p class="definition">Definition at line <a class="el" href="integer_8cpp_source.html#l02997">2997</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>

</div>
</div>
<a id="a81d3973655b9f9d358de31ca4d0215c1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a81d3973655b9f9d358de31ca4d0215c1">&#9670;&nbsp;</a></span>Integer() <span class="overload">[7/9]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">Integer::Integer </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;&#160;</td>
          <td class="paramname"><em>bt</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">explicit</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Convert from a BER encoded byte array. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">bt</td><td><a class="el" href="class_buffered_transformation.html" title="Interface for buffered transformations.">BufferedTransformation</a> object with BER encoded byte array </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="integer_8cpp_source.html#l03038">3038</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>

</div>
</div>
<a id="aed27750675aede3f613d63bca91c0b1e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aed27750675aede3f613d63bca91c0b1e">&#9670;&nbsp;</a></span>Integer() <span class="overload">[8/9]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Integer::Integer </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &amp;&#160;</td>
          <td class="paramname"><em>rng</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>bitCount</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create a random integer. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">rng</td><td><a class="el" href="class_random_number_generator.html" title="Interface for random number generators.">RandomNumberGenerator</a> used to generate material </td></tr>
    <tr><td class="paramname">bitCount</td><td>the number of bits in the resulting integer</td></tr>
  </table>
  </dd>
</dl>
<p>The random integer created is uniformly distributed over <code>[0, 2<sup>bitCount</sup>]</code>. </p>

<p class="definition">Definition at line <a class="el" href="integer_8cpp_source.html#l03044">3044</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>

</div>
</div>
<a id="a88a110cb9f89a8810c228ad00cea18c2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a88a110cb9f89a8810c228ad00cea18c2">&#9670;&nbsp;</a></span>Integer() <span class="overload">[9/9]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Integer::Integer </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &amp;&#160;</td>
          <td class="paramname"><em>rng</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_integer.html">Integer</a> &amp;&#160;</td>
          <td class="paramname"><em>min</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_integer.html">Integer</a> &amp;&#160;</td>
          <td class="paramname"><em>max</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_integer.html#a9b4088ac01abf76b9ba60060abccb7a3">RandomNumberType</a>&#160;</td>
          <td class="paramname"><em>rnType</em> = <code><a class="el" href="class_integer.html#a9b4088ac01abf76b9ba60060abccb7a3ad9b396a7ba736a4ca02db0125cc8c6a4">ANY</a></code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_integer.html">Integer</a> &amp;&#160;</td>
          <td class="paramname"><em>equiv</em> = <code><a class="el" href="class_integer.html#a19b7e6d48b1b57bd4846160ea2928175">Zero</a>()</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_integer.html">Integer</a> &amp;&#160;</td>
          <td class="paramname"><em>mod</em> = <code><a class="el" href="class_integer.html#a8c070592581bf6c2f928c72bfa1c1638">One</a>()</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create a random integer of special form. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">rng</td><td><a class="el" href="class_random_number_generator.html" title="Interface for random number generators.">RandomNumberGenerator</a> used to generate material </td></tr>
    <tr><td class="paramname">min</td><td>the minimum value </td></tr>
    <tr><td class="paramname">max</td><td>the maximum value </td></tr>
    <tr><td class="paramname">rnType</td><td>RandomNumberType to specify the type </td></tr>
    <tr><td class="paramname">equiv</td><td>the equivalence class based on the parameter <code>mod</code> </td></tr>
    <tr><td class="paramname">mod</td><td>the modulus used to reduce the equivalence class </td></tr>
  </table>
  </dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname"><a class="el" href="class_integer_1_1_random_number_not_found.html" title="Exception thrown when a random number cannot be found that satisfies the condition.">RandomNumberNotFound</a></td><td>if the set is empty.</td></tr>
  </table>
  </dd>
</dl>
<p>Ideally, the random integer created should be uniformly distributed over <code>{x | min &lt;= x &lt;= max</code> and <code>x</code> is of rnType and <code>x % mod == equiv}</code>. However the actual distribution may not be uniform because sequential search is used to find an appropriate number from a random starting point.</p>
<p>May return (with very small probability) a pseudoprime when a prime is requested and <code>max &gt; lastSmallPrime*lastSmallPrime</code>. <code>lastSmallPrime</code> is declared in <a class="el" href="nbtheory_8h.html" title="Classes and functions for number theoretic operations.">nbtheory.h</a>. </p>

<p class="definition">Definition at line <a class="el" href="integer_8cpp_source.html#l03049">3049</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a19b7e6d48b1b57bd4846160ea2928175"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a19b7e6d48b1b57bd4846160ea2928175">&#9670;&nbsp;</a></span>Zero()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="class_integer.html">Integer</a> &amp; Integer::Zero </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p><a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> representing 0. </p>
<dl class="section return"><dt>Returns</dt><dd>an <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> representing 0</dd></dl>
<p><a class="el" href="class_integer.html#a19b7e6d48b1b57bd4846160ea2928175" title="Integer representing 0.">Zero()</a> avoids calling constructors for frequently used integers </p>

<p class="definition">Definition at line <a class="el" href="integer_8cpp_source.html#l04812">4812</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>

</div>
</div>
<a id="a8c070592581bf6c2f928c72bfa1c1638"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8c070592581bf6c2f928c72bfa1c1638">&#9670;&nbsp;</a></span>One()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="class_integer.html">Integer</a> &amp; Integer::One </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p><a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> representing 1. </p>
<dl class="section return"><dt>Returns</dt><dd>an <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> representing 1</dd></dl>
<p><a class="el" href="class_integer.html#a8c070592581bf6c2f928c72bfa1c1638" title="Integer representing 1.">One()</a> avoids calling constructors for frequently used integers </p>

<p class="definition">Definition at line <a class="el" href="integer_8cpp_source.html#l04824">4824</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>

</div>
</div>
<a id="af0cb74a45a48e677952166bdac9d82d7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af0cb74a45a48e677952166bdac9d82d7">&#9670;&nbsp;</a></span>Two()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="class_integer.html">Integer</a> &amp; Integer::Two </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p><a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> representing 2. </p>
<dl class="section return"><dt>Returns</dt><dd>an <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> representing 2</dd></dl>
<p><a class="el" href="class_integer.html#af0cb74a45a48e677952166bdac9d82d7" title="Integer representing 2.">Two()</a> avoids calling constructors for frequently used integers </p>

<p class="definition">Definition at line <a class="el" href="integer_8cpp_source.html#l04836">4836</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>

</div>
</div>
<a id="ade53248f5dbb520273a70856b975417c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ade53248f5dbb520273a70856b975417c">&#9670;&nbsp;</a></span>Power2()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_integer.html">Integer</a> Integer::Power2 </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>e</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Exponentiates to a power of 2. </p>
<dl class="section return"><dt>Returns</dt><dd>the <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> 2<sup>e</sup> </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="class_integer.html#ac030bf1a90f1feb05d18c6b09e37db38" title="Modular multiplication.">a_times_b_mod_c()</a> and <a class="el" href="class_integer.html#a45068a431797e59f7876e7d64e0f8dbb" title="Modular exponentiation.">a_exp_b_mod_c()</a> </dd></dl>

<p class="definition">Definition at line <a class="el" href="integer_8cpp_source.html#l03055">3055</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>

</div>
</div>
<a id="a82bf50f0f9011b2285cd13f181f04a5c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a82bf50f0f9011b2285cd13f181f04a5c">&#9670;&nbsp;</a></span>MinEncodedSize()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t Integer::MinEncodedSize </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_integer.html#aa9712040ccab541e30c00e0f3ae39926">Signedness</a>&#160;</td>
          <td class="paramname"><em>sign</em> = <code><a class="el" href="class_integer.html#aa9712040ccab541e30c00e0f3ae39926ab4fe86ca57cc3668213b99032ca274df">UNSIGNED</a></code></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Minimum number of bytes to encode this integer. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">sign</td><td>enumeration indicating Signedness </td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>The <a class="el" href="class_integer.html#a82bf50f0f9011b2285cd13f181f04a5c" title="Minimum number of bytes to encode this integer.">MinEncodedSize()</a> of 0 is 1. </dd></dl>

<p class="definition">Definition at line <a class="el" href="integer_8cpp_source.html#l03367">3367</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>

</div>
</div>
<a id="af7f7a3d1250efd10d84d51ba53297535"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af7f7a3d1250efd10d84d51ba53297535">&#9670;&nbsp;</a></span>Encode() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Integer::Encode </td>
          <td>(</td>
          <td class="paramtype">byte *&#160;</td>
          <td class="paramname"><em>output</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>outputLen</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_integer.html#aa9712040ccab541e30c00e0f3ae39926">Signedness</a>&#160;</td>
          <td class="paramname"><em>sign</em> = <code><a class="el" href="class_integer.html#aa9712040ccab541e30c00e0f3ae39926ab4fe86ca57cc3668213b99032ca274df">UNSIGNED</a></code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Encode in big-endian format. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">output</td><td>big-endian byte array </td></tr>
    <tr><td class="paramname">outputLen</td><td>length of the byte array </td></tr>
    <tr><td class="paramname">sign</td><td>enumeration indicating Signedness</td></tr>
  </table>
  </dd>
</dl>
<p>Unsigned means encode absolute value, signed means encode two's complement if negative.</p>
<p>outputLen can be used to ensure an <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> is encoded to an exact size (rather than a minimum size). An exact size is useful, for example, when encoding to a field element size. </p>

<p class="definition">Definition at line <a class="el" href="integer_8cpp_source.html#l03383">3383</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>

</div>
</div>
<a id="a6f5bff64518937ab18c6ff656516b7a2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6f5bff64518937ab18c6ff656516b7a2">&#9670;&nbsp;</a></span>Encode() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Integer::Encode </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;&#160;</td>
          <td class="paramname"><em>bt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>outputLen</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_integer.html#aa9712040ccab541e30c00e0f3ae39926">Signedness</a>&#160;</td>
          <td class="paramname"><em>sign</em> = <code><a class="el" href="class_integer.html#aa9712040ccab541e30c00e0f3ae39926ab4fe86ca57cc3668213b99032ca274df">UNSIGNED</a></code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Encode in big-endian format. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">bt</td><td><a class="el" href="class_buffered_transformation.html" title="Interface for buffered transformations.">BufferedTransformation</a> object </td></tr>
    <tr><td class="paramname">outputLen</td><td>length of the encoding </td></tr>
    <tr><td class="paramname">sign</td><td>enumeration indicating Signedness</td></tr>
  </table>
  </dd>
</dl>
<p>Unsigned means encode absolute value, signed means encode two's complement if negative.</p>
<p>outputLen can be used to ensure an <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> is encoded to an exact size (rather than a minimum size). An exact size is useful, for example, when encoding to a field element size. </p>

<p class="definition">Definition at line <a class="el" href="integer_8cpp_source.html#l03390">3390</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>

</div>
</div>
<a id="a0671bd1dbe49e2eecdaaa65ffcb5b6ec"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0671bd1dbe49e2eecdaaa65ffcb5b6ec">&#9670;&nbsp;</a></span>DEREncode()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void Integer::DEREncode </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;&#160;</td>
          <td class="paramname"><em>bt</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Encode in DER format. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">bt</td><td><a class="el" href="class_buffered_transformation.html" title="Interface for buffered transformations.">BufferedTransformation</a> object</td></tr>
  </table>
  </dd>
</dl>
<p>Encodes the <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> using Distinguished Encoding Rules The result is placed into a <a class="el" href="class_buffered_transformation.html" title="Interface for buffered transformations.">BufferedTransformation</a> object </p>

<p>Implements <a class="el" href="class_a_s_n1_object.html#a10e40187a6ba048dfc8a2c8ca5c6c2ec">ASN1Object</a>.</p>

<p class="definition">Definition at line <a class="el" href="integer_8cpp_source.html#l03405">3405</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>

</div>
</div>
<a id="a4ae92eed64cdb0e2b5b64687fe8a52c9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4ae92eed64cdb0e2b5b64687fe8a52c9">&#9670;&nbsp;</a></span>DEREncodeAsOctetString()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Integer::DEREncodeAsOctetString </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;&#160;</td>
          <td class="paramname"><em>bt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Encode absolute value as big-endian octet string. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">bt</td><td><a class="el" href="class_buffered_transformation.html" title="Interface for buffered transformations.">BufferedTransformation</a> object </td></tr>
    <tr><td class="paramname">length</td><td>the number of mytes to decode </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="integer_8cpp_source.html#l03428">3428</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>

</div>
</div>
<a id="ab500131b85c053ba982a0864e2bf7d33"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab500131b85c053ba982a0864e2bf7d33">&#9670;&nbsp;</a></span>OpenPGPEncode() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t Integer::OpenPGPEncode </td>
          <td>(</td>
          <td class="paramtype">byte *&#160;</td>
          <td class="paramname"><em>output</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>bufferSize</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Encode absolute value in OpenPGP format. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">output</td><td>big-endian byte array </td></tr>
    <tr><td class="paramname">bufferSize</td><td>length of the byte array </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>length of the output</dd></dl>
<p>OpenPGPEncode places result into the buffer and returns the number of bytes used for the encoding </p>

<p class="definition">Definition at line <a class="el" href="integer_8cpp_source.html#l03444">3444</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>

</div>
</div>
<a id="ab1572e9d1dd447e15486f22c71a3f3ed"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab1572e9d1dd447e15486f22c71a3f3ed">&#9670;&nbsp;</a></span>OpenPGPEncode() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t Integer::OpenPGPEncode </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;&#160;</td>
          <td class="paramname"><em>bt</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Encode absolute value in OpenPGP format. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">bt</td><td><a class="el" href="class_buffered_transformation.html" title="Interface for buffered transformations.">BufferedTransformation</a> object </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>length of the output</dd></dl>
<p>OpenPGPEncode places result into a <a class="el" href="class_buffered_transformation.html" title="Interface for buffered transformations.">BufferedTransformation</a> object and returns the number of bytes used for the encoding </p>

<p class="definition">Definition at line <a class="el" href="integer_8cpp_source.html#l03452">3452</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>

</div>
</div>
<a id="adb253c918b7cf401a074bd1b4a4427c4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adb253c918b7cf401a074bd1b4a4427c4">&#9670;&nbsp;</a></span>Decode() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Integer::Decode </td>
          <td>(</td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>input</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>inputLen</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_integer.html#aa9712040ccab541e30c00e0f3ae39926">Signedness</a>&#160;</td>
          <td class="paramname"><em>sign</em> = <code><a class="el" href="class_integer.html#aa9712040ccab541e30c00e0f3ae39926ab4fe86ca57cc3668213b99032ca274df">UNSIGNED</a></code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Decode from big-endian byte array. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">input</td><td>big-endian byte array </td></tr>
    <tr><td class="paramname">inputLen</td><td>length of the byte array </td></tr>
    <tr><td class="paramname">sign</td><td>enumeration indicating Signedness </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="integer_8cpp_source.html#l03328">3328</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>

</div>
</div>
<a id="ae953df06dfaa312a50f7b35c68f677f8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae953df06dfaa312a50f7b35c68f677f8">&#9670;&nbsp;</a></span>Decode() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Integer::Decode </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;&#160;</td>
          <td class="paramname"><em>bt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>inputLen</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_integer.html#aa9712040ccab541e30c00e0f3ae39926">Signedness</a>&#160;</td>
          <td class="paramname"><em>sign</em> = <code><a class="el" href="class_integer.html#aa9712040ccab541e30c00e0f3ae39926ab4fe86ca57cc3668213b99032ca274df">UNSIGNED</a></code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Decode nonnegative value from big-endian byte array. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">bt</td><td><a class="el" href="class_buffered_transformation.html" title="Interface for buffered transformations.">BufferedTransformation</a> object </td></tr>
    <tr><td class="paramname">inputLen</td><td>length of the byte array </td></tr>
    <tr><td class="paramname">sign</td><td>enumeration indicating Signedness </td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note</dt><dd><code>bt.MaxRetrievable() &gt;= inputLen</code>. </dd></dl>

<p class="definition">Definition at line <a class="el" href="integer_8cpp_source.html#l03335">3335</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>

</div>
</div>
<a id="a810fc0382f8928893fe192ab79b1972c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a810fc0382f8928893fe192ab79b1972c">&#9670;&nbsp;</a></span>BERDecode() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Integer::BERDecode </td>
          <td>(</td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>input</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>inputLen</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Decode from BER format. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">input</td><td>big-endian byte array </td></tr>
    <tr><td class="paramname">inputLen</td><td>length of the byte array </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="integer_8cpp_source.html#l03412">3412</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>

</div>
</div>
<a id="a8736cc41b06596c9c04328d2f0238db7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8736cc41b06596c9c04328d2f0238db7">&#9670;&nbsp;</a></span>BERDecode() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void Integer::BERDecode </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;&#160;</td>
          <td class="paramname"><em>bt</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Decode from BER format. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">bt</td><td><a class="el" href="class_buffered_transformation.html" title="Interface for buffered transformations.">BufferedTransformation</a> object </td></tr>
  </table>
  </dd>
</dl>

<p>Implements <a class="el" href="class_a_s_n1_object.html#a430af8c994bc78d996067247fa5a0770">ASN1Object</a>.</p>

<p class="definition">Definition at line <a class="el" href="integer_8cpp_source.html#l03419">3419</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>

</div>
</div>
<a id="a59f2e3f759fb252da8ce4bd718fb6487"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a59f2e3f759fb252da8ce4bd718fb6487">&#9670;&nbsp;</a></span>BERDecodeAsOctetString()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Integer::BERDecodeAsOctetString </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;&#160;</td>
          <td class="paramname"><em>bt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Decode nonnegative value from big-endian octet string. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">bt</td><td><a class="el" href="class_buffered_transformation.html" title="Interface for buffered transformations.">BufferedTransformation</a> object </td></tr>
    <tr><td class="paramname">length</td><td>length of the byte array </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="integer_8cpp_source.html#l03435">3435</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>

</div>
</div>
<a id="a4b2415221b6eb9ffde8c9c495ae098f2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4b2415221b6eb9ffde8c9c495ae098f2">&#9670;&nbsp;</a></span>OpenPGPDecode() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Integer::OpenPGPDecode </td>
          <td>(</td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>input</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>inputLen</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Decode from OpenPGP format. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">input</td><td>big-endian byte array </td></tr>
    <tr><td class="paramname">inputLen</td><td>length of the byte array </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="integer_8cpp_source.html#l03461">3461</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>

</div>
</div>
<a id="a9ff99fc6723da5a45c98212de5cf4f3d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9ff99fc6723da5a45c98212de5cf4f3d">&#9670;&nbsp;</a></span>OpenPGPDecode() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Integer::OpenPGPDecode </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;&#160;</td>
          <td class="paramname"><em>bt</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Decode from OpenPGP format. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">bt</td><td><a class="el" href="class_buffered_transformation.html" title="Interface for buffered transformations.">BufferedTransformation</a> object </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="integer_8cpp_source.html#l03468">3468</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>

</div>
</div>
<a id="a6b20fdbc800c7ba12db483eba866bd21"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6b20fdbc800c7ba12db483eba866bd21">&#9670;&nbsp;</a></span>IsConvertableToLong()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool Integer::IsConvertableToLong </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Determines if the <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> is convertable to Long. </p>
<dl class="section return"><dt>Returns</dt><dd>true if *this can be represented as a signed long </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="class_integer.html#a2e90d8f4c5a13e203b94f9abc24d733f" title="Convert the Integer to Long.">ConvertToLong()</a> </dd></dl>

<p class="definition">Definition at line <a class="el" href="integer_8cpp_source.html#l02974">2974</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>

</div>
</div>
<a id="a2e90d8f4c5a13e203b94f9abc24d733f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2e90d8f4c5a13e203b94f9abc24d733f">&#9670;&nbsp;</a></span>ConvertToLong()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">signed long Integer::ConvertToLong </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Convert the <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> to Long. </p>
<dl class="section return"><dt>Returns</dt><dd>equivalent signed long if possible, otherwise undefined </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="class_integer.html#a6b20fdbc800c7ba12db483eba866bd21" title="Determines if the Integer is convertable to Long.">IsConvertableToLong()</a> </dd></dl>

<p class="definition">Definition at line <a class="el" href="integer_8cpp_source.html#l02988">2988</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>

</div>
</div>
<a id="a867356d88074424328d0ebb9bea63254"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a867356d88074424328d0ebb9bea63254">&#9670;&nbsp;</a></span>BitCount()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int Integer::BitCount </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Determines the number of bits required to represent the <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a>. </p>
<dl class="section return"><dt>Returns</dt><dd>number of significant bits = floor(log2(abs(*this))) + 1 </dd></dl>

<p class="definition">Definition at line <a class="el" href="integer_8cpp_source.html#l03319">3319</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>

</div>
</div>
<a id="ae7ee3f1bbea2b3138c6d8f1ce1aa2bf9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae7ee3f1bbea2b3138c6d8f1ce1aa2bf9">&#9670;&nbsp;</a></span>ByteCount()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int Integer::ByteCount </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Determines the number of bytes required to represent the <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a>. </p>
<dl class="section return"><dt>Returns</dt><dd>number of significant bytes = ceiling(<a class="el" href="class_integer.html#a867356d88074424328d0ebb9bea63254" title="Determines the number of bits required to represent the Integer.">BitCount()</a>/8) </dd></dl>

<p class="definition">Definition at line <a class="el" href="integer_8cpp_source.html#l03310">3310</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>

</div>
</div>
<a id="a8c04a3308dd546cac819835922ee8db6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8c04a3308dd546cac819835922ee8db6">&#9670;&nbsp;</a></span>WordCount()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int Integer::WordCount </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Determines the number of words required to represent the <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a>. </p>
<dl class="section return"><dt>Returns</dt><dd>number of significant words = ceiling(<a class="el" href="class_integer.html#ae7ee3f1bbea2b3138c6d8f1ce1aa2bf9" title="Determines the number of bytes required to represent the Integer.">ByteCount()</a>/sizeof(word)) </dd></dl>

<p class="definition">Definition at line <a class="el" href="integer_8cpp_source.html#l03305">3305</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>

</div>
</div>
<a id="a0e377d23bde55fc7dc6ea2208c587d19"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0e377d23bde55fc7dc6ea2208c587d19">&#9670;&nbsp;</a></span>GetBit()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool Integer::GetBit </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>i</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Provides the i-th bit of the <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a>. </p>
<dl class="section return"><dt>Returns</dt><dd>the i-th bit, i=0 being the least significant bit </dd></dl>

<p class="definition">Definition at line <a class="el" href="integer_8cpp_source.html#l03079">3079</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>

</div>
</div>
<a id="a5bbe765e1c3a9c6036d31bb1a8de5f07"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5bbe765e1c3a9c6036d31bb1a8de5f07">&#9670;&nbsp;</a></span>GetByte()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">byte Integer::GetByte </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>i</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Provides the i-th byte of the <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a>. </p>
<dl class="section return"><dt>Returns</dt><dd>the i-th byte </dd></dl>

<p class="definition">Definition at line <a class="el" href="integer_8cpp_source.html#l03103">3103</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>

</div>
</div>
<a id="a75ebf0ce73fba3c81aa915c497e7c876"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a75ebf0ce73fba3c81aa915c497e7c876">&#9670;&nbsp;</a></span>GetBits()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">lword Integer::GetBits </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>i</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>n</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Provides the low order bits of the <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a>. </p>
<dl class="section return"><dt>Returns</dt><dd>n lowest bits of *this &gt;&gt; i </dd></dl>

<p class="definition">Definition at line <a class="el" href="integer_8cpp_source.html#l03120">3120</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>

</div>
</div>
<a id="acca1f2de6c0bfa91c49950daf681b678"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acca1f2de6c0bfa91c49950daf681b678">&#9670;&nbsp;</a></span>IsZero()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool Integer::IsZero </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Determines if the <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> is 0. </p>
<dl class="section return"><dt>Returns</dt><dd>true if the <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> is 0, false otherwise </dd></dl>

<p class="definition">Definition at line <a class="el" href="integer_8h_source.html#l00330">330</a> of file <a class="el" href="integer_8h_source.html">integer.h</a>.</p>

</div>
</div>
<a id="a5364029d13bf6d21e7b578127160dbed"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5364029d13bf6d21e7b578127160dbed">&#9670;&nbsp;</a></span>NotZero()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool Integer::NotZero </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Determines if the <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> is non-0. </p>
<dl class="section return"><dt>Returns</dt><dd>true if the <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> is non-0, false otherwise </dd></dl>

<p class="definition">Definition at line <a class="el" href="integer_8h_source.html#l00333">333</a> of file <a class="el" href="integer_8h_source.html">integer.h</a>.</p>

</div>
</div>
<a id="ad767ae81c89be3804da8785e132d2d1f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad767ae81c89be3804da8785e132d2d1f">&#9670;&nbsp;</a></span>IsNegative()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool Integer::IsNegative </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Determines if the <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> is negative. </p>
<dl class="section return"><dt>Returns</dt><dd>true if the <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> is negative, false otherwise </dd></dl>

<p class="definition">Definition at line <a class="el" href="integer_8h_source.html#l00336">336</a> of file <a class="el" href="integer_8h_source.html">integer.h</a>.</p>

</div>
</div>
<a id="a880ab53116f2b9f527489d86ee806896"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a880ab53116f2b9f527489d86ee806896">&#9670;&nbsp;</a></span>NotNegative()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool Integer::NotNegative </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Determines if the <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> is non-negative. </p>
<dl class="section return"><dt>Returns</dt><dd>true if the <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> is non-negative, false otherwise </dd></dl>

<p class="definition">Definition at line <a class="el" href="integer_8h_source.html#l00339">339</a> of file <a class="el" href="integer_8h_source.html">integer.h</a>.</p>

</div>
</div>
<a id="a13ddbfd8e9729932c2a99b0dff530978"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a13ddbfd8e9729932c2a99b0dff530978">&#9670;&nbsp;</a></span>IsPositive()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool Integer::IsPositive </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Determines if the <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> is positive. </p>
<dl class="section return"><dt>Returns</dt><dd>true if the <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> is positive, false otherwise </dd></dl>

<p class="definition">Definition at line <a class="el" href="integer_8h_source.html#l00342">342</a> of file <a class="el" href="integer_8h_source.html">integer.h</a>.</p>

</div>
</div>
<a id="a82c26b308640b25c35213da4c315f3ce"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a82c26b308640b25c35213da4c315f3ce">&#9670;&nbsp;</a></span>NotPositive()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool Integer::NotPositive </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Determines if the <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> is non-positive. </p>
<dl class="section return"><dt>Returns</dt><dd>true if the <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> is non-positive, false otherwise </dd></dl>

<p class="definition">Definition at line <a class="el" href="integer_8h_source.html#l00345">345</a> of file <a class="el" href="integer_8h_source.html">integer.h</a>.</p>

</div>
</div>
<a id="afedf9af097a3417d8bd3742ec53f9593"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afedf9af097a3417d8bd3742ec53f9593">&#9670;&nbsp;</a></span>IsEven()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool Integer::IsEven </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Determines if the <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> is even parity. </p>
<dl class="section return"><dt>Returns</dt><dd>true if the <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> is even, false otherwise </dd></dl>

<p class="definition">Definition at line <a class="el" href="integer_8h_source.html#l00348">348</a> of file <a class="el" href="integer_8h_source.html">integer.h</a>.</p>

</div>
</div>
<a id="aed4bb7208a18b986ef3e1a7d92e06d1d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aed4bb7208a18b986ef3e1a7d92e06d1d">&#9670;&nbsp;</a></span>IsOdd()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool Integer::IsOdd </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Determines if the <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> is odd parity. </p>
<dl class="section return"><dt>Returns</dt><dd>true if the <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> is odd, false otherwise </dd></dl>

<p class="definition">Definition at line <a class="el" href="integer_8h_source.html#l00351">351</a> of file <a class="el" href="integer_8h_source.html">integer.h</a>.</p>

</div>
</div>
<a id="adb1320901d7bbf1ee52bf27bacdfb9df"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adb1320901d7bbf1ee52bf27bacdfb9df">&#9670;&nbsp;</a></span>operator*=()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_integer.html">Integer</a>&amp; Integer::operator*= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class_integer.html">Integer</a> &amp;&#160;</td>
          <td class="paramname"><em>t</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Multiplication Assignment. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="class_integer.html#ac030bf1a90f1feb05d18c6b09e37db38" title="Modular multiplication.">a_times_b_mod_c()</a> and <a class="el" href="class_integer.html#a45068a431797e59f7876e7d64e0f8dbb" title="Modular exponentiation.">a_exp_b_mod_c()</a> </dd></dl>

<p class="definition">Definition at line <a class="el" href="integer_8h_source.html#l00365">365</a> of file <a class="el" href="integer_8h_source.html">integer.h</a>.</p>

</div>
</div>
<a id="a468142f7860854f6e97910af4eb2b220"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a468142f7860854f6e97910af4eb2b220">&#9670;&nbsp;</a></span>operator%=() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_integer.html">Integer</a>&amp; Integer::operator%= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class_integer.html">Integer</a> &amp;&#160;</td>
          <td class="paramname"><em>t</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Remainder Assignment. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="class_integer.html#ac030bf1a90f1feb05d18c6b09e37db38" title="Modular multiplication.">a_times_b_mod_c()</a> and <a class="el" href="class_integer.html#a45068a431797e59f7876e7d64e0f8dbb" title="Modular exponentiation.">a_exp_b_mod_c()</a> </dd></dl>

<p class="definition">Definition at line <a class="el" href="integer_8h_source.html#l00370">370</a> of file <a class="el" href="integer_8h_source.html">integer.h</a>.</p>

</div>
</div>
<a id="a3874b6ac8979328ce532eebc8b275eab"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3874b6ac8979328ce532eebc8b275eab">&#9670;&nbsp;</a></span>operator%=() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_integer.html">Integer</a>&amp; Integer::operator%= </td>
          <td>(</td>
          <td class="paramtype">word&#160;</td>
          <td class="paramname"><em>t</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Remainder Assignment. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="class_integer.html#ac030bf1a90f1feb05d18c6b09e37db38" title="Modular multiplication.">a_times_b_mod_c()</a> and <a class="el" href="class_integer.html#a45068a431797e59f7876e7d64e0f8dbb" title="Modular exponentiation.">a_exp_b_mod_c()</a> </dd></dl>

<p class="definition">Definition at line <a class="el" href="integer_8h_source.html#l00375">375</a> of file <a class="el" href="integer_8h_source.html">integer.h</a>.</p>

</div>
</div>
<a id="a0bd7ffb89e0b6ed97cfd9fc7d2e2be7a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0bd7ffb89e0b6ed97cfd9fc7d2e2be7a">&#9670;&nbsp;</a></span>operator&amp;=()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_integer.html">Integer</a> &amp; Integer::operator&amp;= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class_integer.html">Integer</a> &amp;&#160;</td>
          <td class="paramname"><em>t</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Bitwise AND Assignment. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">t</td><td>the other <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the result of *this &amp; t</dd></dl>
<p><a class="el" href="class_integer.html#a0bd7ffb89e0b6ed97cfd9fc7d2e2be7a" title="Bitwise AND Assignment.">operator&amp;=()</a> performs a bitwise AND on *this. Missing bits are truncated at the most significant bit positions, so the result is as small as the smaller of the operands.</p>
<p>Internally, Crypto++ uses a sign-magnitude representation. The library does not attempt to interpret bits, and the result is always POSITIVE. If needed, the integer should be converted to a 2's compliment representation before performing the operation. </p><dl class="section since"><dt>Since</dt><dd>Crypto++ 6.0 </dd></dl>

<p class="definition">Definition at line <a class="el" href="integer_8cpp_source.html#l04016">4016</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>

</div>
</div>
<a id="a86bb8d8650f38a2756c2169b8c48f872"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a86bb8d8650f38a2756c2169b8c48f872">&#9670;&nbsp;</a></span>operator|=()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_integer.html">Integer</a> &amp; Integer::operator|= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class_integer.html">Integer</a> &amp;&#160;</td>
          <td class="paramname"><em>t</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Bitwise OR Assignment. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">t</td><td>the second <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the result of *this | t</dd></dl>
<p><a class="el" href="class_integer.html#a86bb8d8650f38a2756c2169b8c48f872" title="Bitwise OR Assignment.">operator|=()</a> performs a bitwise OR on *this. Missing bits are shifted in at the most significant bit positions, so the result is as large as the larger of the operands.</p>
<p>Internally, Crypto++ uses a sign-magnitude representation. The library does not attempt to interpret bits, and the result is always POSITIVE. If needed, the integer should be converted to a 2's compliment representation before performing the operation. </p><dl class="section since"><dt>Since</dt><dd>Crypto++ 6.0 </dd></dl>

<p class="definition">Definition at line <a class="el" href="integer_8cpp_source.html#l04028">4028</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>

</div>
</div>
<a id="a90a898c2fd9a9f550f0e6edc9cd7f5cb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a90a898c2fd9a9f550f0e6edc9cd7f5cb">&#9670;&nbsp;</a></span>operator^=()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_integer.html">Integer</a> &amp; Integer::operator^= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class_integer.html">Integer</a> &amp;&#160;</td>
          <td class="paramname"><em>t</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Bitwise XOR Assignment. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">t</td><td>the other <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the result of *this ^ t</dd></dl>
<p><a class="el" href="class_integer.html#a90a898c2fd9a9f550f0e6edc9cd7f5cb" title="Bitwise XOR Assignment.">operator^=()</a> performs a bitwise XOR on *this. Missing bits are shifted in at the most significant bit positions, so the result is as large as the larger of the operands.</p>
<p>Internally, Crypto++ uses a sign-magnitude representation. The library does not attempt to interpret bits, and the result is always POSITIVE. If needed, the integer should be converted to a 2's compliment representation before performing the operation. </p><dl class="section since"><dt>Since</dt><dd>Crypto++ 6.0 </dd></dl>

<p class="definition">Definition at line <a class="el" href="integer_8cpp_source.html#l04049">4049</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>

</div>
</div>
<a id="a62a8829c926b4e421183e76ea4233702"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a62a8829c926b4e421183e76ea4233702">&#9670;&nbsp;</a></span>Randomize() <span class="overload">[1/3]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Integer::Randomize </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &amp;&#160;</td>
          <td class="paramname"><em>rng</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>bitCount</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set this <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> to random integer. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">rng</td><td><a class="el" href="class_random_number_generator.html" title="Interface for random number generators.">RandomNumberGenerator</a> used to generate material </td></tr>
    <tr><td class="paramname">bitCount</td><td>the number of bits in the resulting integer</td></tr>
  </table>
  </dd>
</dl>
<p>The random integer created is uniformly distributed over <code>[0, 2<sup>bitCount</sup>]</code>. </p>

<p class="definition">Definition at line <a class="el" href="integer_8cpp_source.html#l03476">3476</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>

</div>
</div>
<a id="aae8e0904d1752629f59f0343507c7f8b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aae8e0904d1752629f59f0343507c7f8b">&#9670;&nbsp;</a></span>Randomize() <span class="overload">[2/3]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Integer::Randomize </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &amp;&#160;</td>
          <td class="paramname"><em>rng</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_integer.html">Integer</a> &amp;&#160;</td>
          <td class="paramname"><em>min</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_integer.html">Integer</a> &amp;&#160;</td>
          <td class="paramname"><em>max</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set this <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> to random integer. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">rng</td><td><a class="el" href="class_random_number_generator.html" title="Interface for random number generators.">RandomNumberGenerator</a> used to generate material </td></tr>
    <tr><td class="paramname">min</td><td>the minimum value </td></tr>
    <tr><td class="paramname">max</td><td>the maximum value</td></tr>
  </table>
  </dd>
</dl>
<p>The random integer created is uniformly distributed over <code>[min, max]</code>. </p>

<p class="definition">Definition at line <a class="el" href="integer_8cpp_source.html#l03486">3486</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>

</div>
</div>
<a id="a83dd6a11aa51d545ce2735777787b622"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a83dd6a11aa51d545ce2735777787b622">&#9670;&nbsp;</a></span>Randomize() <span class="overload">[3/3]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool Integer::Randomize </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &amp;&#160;</td>
          <td class="paramname"><em>rng</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_integer.html">Integer</a> &amp;&#160;</td>
          <td class="paramname"><em>min</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_integer.html">Integer</a> &amp;&#160;</td>
          <td class="paramname"><em>max</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_integer.html#a9b4088ac01abf76b9ba60060abccb7a3">RandomNumberType</a>&#160;</td>
          <td class="paramname"><em>rnType</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_integer.html">Integer</a> &amp;&#160;</td>
          <td class="paramname"><em>equiv</em> = <code><a class="el" href="class_integer.html#a19b7e6d48b1b57bd4846160ea2928175">Zero</a>()</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_integer.html">Integer</a> &amp;&#160;</td>
          <td class="paramname"><em>mod</em> = <code><a class="el" href="class_integer.html#a8c070592581bf6c2f928c72bfa1c1638">One</a>()</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set this <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> to random integer of special form. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">rng</td><td><a class="el" href="class_random_number_generator.html" title="Interface for random number generators.">RandomNumberGenerator</a> used to generate material </td></tr>
    <tr><td class="paramname">min</td><td>the minimum value </td></tr>
    <tr><td class="paramname">max</td><td>the maximum value </td></tr>
    <tr><td class="paramname">rnType</td><td>RandomNumberType to specify the type </td></tr>
    <tr><td class="paramname">equiv</td><td>the equivalence class based on the parameter <code>mod</code> </td></tr>
    <tr><td class="paramname">mod</td><td>the modulus used to reduce the equivalence class </td></tr>
  </table>
  </dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname"><a class="el" href="class_integer_1_1_random_number_not_found.html" title="Exception thrown when a random number cannot be found that satisfies the condition.">RandomNumberNotFound</a></td><td>if the set is empty.</td></tr>
  </table>
  </dd>
</dl>
<p>Ideally, the random integer created should be uniformly distributed over <code>{x | min &lt;= x &lt;= max</code> and <code>x</code> is of rnType and <code>x % mod == equiv}</code>. However the actual distribution may not be uniform because sequential search is used to find an appropriate number from a random starting point.</p>
<p>May return (with very small probability) a pseudoprime when a prime is requested and <code>max &gt; lastSmallPrime*lastSmallPrime</code>. <code>lastSmallPrime</code> is declared in <a class="el" href="nbtheory_8h.html" title="Classes and functions for number theoretic operations.">nbtheory.h</a>. </p>

<p class="definition">Definition at line <a class="el" href="integer_8cpp_source.html#l03503">3503</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>

</div>
</div>
<a id="ad330521e84a900a80e8dd90e97796e17"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad330521e84a900a80e8dd90e97796e17">&#9670;&nbsp;</a></span>GenerateRandomNoThrow()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool Integer::GenerateRandomNoThrow </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &amp;&#160;</td>
          <td class="paramname"><em>rng</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_name_value_pairs.html">NameValuePairs</a> &amp;&#160;</td>
          <td class="paramname"><em>params</em> = <code><a class="el" href="cryptlib_8h.html#a04be65ada92ccb1e6aac0d94b4cc394b">g_nullNameValuePairs</a></code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Generate a random number. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">rng</td><td><a class="el" href="class_random_number_generator.html" title="Interface for random number generators.">RandomNumberGenerator</a> used to generate material </td></tr>
    <tr><td class="paramname">params</td><td>additional parameters that cannot be passed directly to the function </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if a random number was generated, false otherwise</dd></dl>
<p>GenerateRandomNoThrow attempts to generate a random number according to the parameters specified in params. The function does not throw <a class="el" href="class_integer_1_1_random_number_not_found.html" title="Exception thrown when a random number cannot be found that satisfies the condition.">RandomNumberNotFound</a>.</p>
<p>The example below generates a prime number using <a class="el" href="class_name_value_pairs.html" title="Interface for retrieving values given their names.">NameValuePairs</a> that <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> class recognizes. The names are not provided in <a class="el" href="argnames_8h.html" title="Standard names for retrieving values by name when working with NameValuePairs.">argnames.h</a>. </p><pre>
    <a class="el" href="class_auto_seeded_random_pool.html" title="Automatically Seeded Randomness Pool.">AutoSeededRandomPool</a> prng;
    <a class="el" href="class_algorithm_parameters.html" title="An object that implements NameValuePairs.">AlgorithmParameters</a> params = MakeParameters("BitLength", 2048)
                                               ("RandomNumberType", <a class="el" href="class_integer.html#a9b4088ac01abf76b9ba60060abccb7a3afe686f55e5b6768b20009a12522bd0d9" title="a number which is probabilistically prime">Integer::PRIME</a>);
    <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> x;
    if (x.GenerateRandomNoThrow(prng, params) == false)
        throw std::runtime_error("Failed to generate prime number");
</pre> 
<p class="definition">Definition at line <a class="el" href="integer_8cpp_source.html#l03530">3530</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>

</div>
</div>
<a id="a0d9a427fe64a454b11b24fe61c10dbeb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0d9a427fe64a454b11b24fe61c10dbeb">&#9670;&nbsp;</a></span>GenerateRandom()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void Integer::GenerateRandom </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &amp;&#160;</td>
          <td class="paramname"><em>rng</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_name_value_pairs.html">NameValuePairs</a> &amp;&#160;</td>
          <td class="paramname"><em>params</em> = <code><a class="el" href="cryptlib_8h.html#a04be65ada92ccb1e6aac0d94b4cc394b">g_nullNameValuePairs</a></code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Generate a random number. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">rng</td><td><a class="el" href="class_random_number_generator.html" title="Interface for random number generators.">RandomNumberGenerator</a> used to generate material </td></tr>
    <tr><td class="paramname">params</td><td>additional parameters that cannot be passed directly to the function </td></tr>
  </table>
  </dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname"><a class="el" href="class_integer_1_1_random_number_not_found.html" title="Exception thrown when a random number cannot be found that satisfies the condition.">RandomNumberNotFound</a></td><td>if a random number is not found</td></tr>
  </table>
  </dd>
</dl>
<p>GenerateRandom attempts to generate a random number according to the parameters specified in params.</p>
<p>The example below generates a prime number using <a class="el" href="class_name_value_pairs.html" title="Interface for retrieving values given their names.">NameValuePairs</a> that <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> class recognizes. The names are not provided in <a class="el" href="argnames_8h.html" title="Standard names for retrieving values by name when working with NameValuePairs.">argnames.h</a>. </p><pre>
    <a class="el" href="class_auto_seeded_random_pool.html" title="Automatically Seeded Randomness Pool.">AutoSeededRandomPool</a> prng;
    <a class="el" href="class_algorithm_parameters.html" title="An object that implements NameValuePairs.">AlgorithmParameters</a> params = MakeParameters("BitLength", 2048)
                                               ("RandomNumberType", <a class="el" href="class_integer.html#a9b4088ac01abf76b9ba60060abccb7a3afe686f55e5b6768b20009a12522bd0d9" title="a number which is probabilistically prime">Integer::PRIME</a>);
    <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> x;
    try { x.GenerateRandom(prng, params); }
    catch (<a class="el" href="class_integer_1_1_random_number_not_found.html" title="Exception thrown when a random number cannot be found that satisfies the condition.">RandomNumberNotFound</a>&amp;) { x = -1; }
</pre> 
<p class="definition">Definition at line <a class="el" href="integer_8h_source.html#l00484">484</a> of file <a class="el" href="integer_8h_source.html">integer.h</a>.</p>

</div>
</div>
<a id="a2f0d5fae94eba0c55da9bd1c5138d155"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2f0d5fae94eba0c55da9bd1c5138d155">&#9670;&nbsp;</a></span>SetBit()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Integer::SetBit </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>n</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>value</em> = <code>1</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the n-th bit to value. </p>
<p>0-based numbering. </p>

<p class="definition">Definition at line <a class="el" href="integer_8cpp_source.html#l03089">3089</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>

</div>
</div>
<a id="a0ff987d783a61f52c8c5d57b324a8d45"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0ff987d783a61f52c8c5d57b324a8d45">&#9670;&nbsp;</a></span>SetByte()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Integer::SetByte </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>n</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">byte&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the n-th byte to value. </p>
<p>0-based numbering. </p>

<p class="definition">Definition at line <a class="el" href="integer_8cpp_source.html#l03113">3113</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>

</div>
</div>
<a id="aaf97afd2d7f7350fae4aea5bf97b30f7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaf97afd2d7f7350fae4aea5bf97b30f7">&#9670;&nbsp;</a></span>Compare()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int Integer::Compare </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class_integer.html">Integer</a> &amp;&#160;</td>
          <td class="paramname"><em>a</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Perform signed comparison. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">a</td><td>the <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> to comapre </td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">-1</td><td>if <code>*this &lt; a</code> </td></tr>
    <tr><td class="paramname">0</td><td>if <code>*this = a</code> </td></tr>
    <tr><td class="paramname">1</td><td>if <code>*this &gt; a</code> </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="integer_8cpp_source.html#l04310">4310</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>

</div>
</div>
<a id="a5530f03e5927f2304aa1a8c52a9290ea"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5530f03e5927f2304aa1a8c52a9290ea">&#9670;&nbsp;</a></span>Times()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_integer.html">Integer</a> Integer::Times </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class_integer.html">Integer</a> &amp;&#160;</td>
          <td class="paramname"><em>b</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Multiplication. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="class_integer.html#ac030bf1a90f1feb05d18c6b09e37db38" title="Modular multiplication.">a_times_b_mod_c()</a> and <a class="el" href="class_integer.html#a45068a431797e59f7876e7d64e0f8dbb" title="Modular exponentiation.">a_exp_b_mod_c()</a> </dd></dl>

<p class="definition">Definition at line <a class="el" href="integer_8cpp_source.html#l04094">4094</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>

</div>
</div>
<a id="aafc5da518e41b7e7c9c967b3e053f86c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aafc5da518e41b7e7c9c967b3e053f86c">&#9670;&nbsp;</a></span>Modulo() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_integer.html">Integer</a> Integer::Modulo </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class_integer.html">Integer</a> &amp;&#160;</td>
          <td class="paramname"><em>b</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Remainder. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="class_integer.html#ac030bf1a90f1feb05d18c6b09e37db38" title="Modular multiplication.">a_times_b_mod_c()</a> and <a class="el" href="class_integer.html#a45068a431797e59f7876e7d64e0f8dbb" title="Modular exponentiation.">a_exp_b_mod_c()</a> </dd></dl>

<p class="definition">Definition at line <a class="el" href="integer_8cpp_source.html#l04205">4205</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>

</div>
</div>
<a id="a5e50258f43fef7034660bc73330cb9b7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5e50258f43fef7034660bc73330cb9b7">&#9670;&nbsp;</a></span>Modulo() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">word Integer::Modulo </td>
          <td>(</td>
          <td class="paramtype">word&#160;</td>
          <td class="paramname"><em>b</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Remainder. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="class_integer.html#ac030bf1a90f1feb05d18c6b09e37db38" title="Modular multiplication.">a_times_b_mod_c()</a> and <a class="el" href="class_integer.html#a45068a431797e59f7876e7d64e0f8dbb" title="Modular exponentiation.">a_exp_b_mod_c()</a> </dd></dl>

<p class="definition">Definition at line <a class="el" href="integer_8cpp_source.html#l04254">4254</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>

</div>
</div>
<a id="a3a345a284b542db65844717565ba2a10"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3a345a284b542db65844717565ba2a10">&#9670;&nbsp;</a></span>And()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_integer.html">Integer</a> Integer::And </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class_integer.html">Integer</a> &amp;&#160;</td>
          <td class="paramname"><em>t</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Bitwise AND. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">t</td><td>the other <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the result of <code>*this &amp; t</code></dd></dl>
<p><a class="el" href="class_integer.html#a3a345a284b542db65844717565ba2a10" title="Bitwise AND.">And()</a> performs a bitwise AND on the operands. Missing bits are truncated at the most significant bit positions, so the result is as small as the smaller of the operands.</p>
<p>Internally, Crypto++ uses a sign-magnitude representation. The library does not attempt to interpret bits, and the result is always POSITIVE. If needed, the integer should be converted to a 2's compliment representation before performing the operation. </p><dl class="section since"><dt>Since</dt><dd>Crypto++ 6.0 </dd></dl>

<p class="definition">Definition at line <a class="el" href="integer_8cpp_source.html#l03746">3746</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>

</div>
</div>
<a id="a7369ca542ae39371e4abc60059353c26"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7369ca542ae39371e4abc60059353c26">&#9670;&nbsp;</a></span>Or()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_integer.html">Integer</a> Integer::Or </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class_integer.html">Integer</a> &amp;&#160;</td>
          <td class="paramname"><em>t</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Bitwise OR. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">t</td><td>the other <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the result of <code>*this | t</code></dd></dl>
<p><a class="el" href="class_integer.html#a7369ca542ae39371e4abc60059353c26" title="Bitwise OR.">Or()</a> performs a bitwise OR on the operands. Missing bits are shifted in at the most significant bit positions, so the result is as large as the larger of the operands.</p>
<p>Internally, Crypto++ uses a sign-magnitude representation. The library does not attempt to interpret bits, and the result is always POSITIVE. If needed, the integer should be converted to a 2's compliment representation before performing the operation. </p><dl class="section since"><dt>Since</dt><dd>Crypto++ 6.0 </dd></dl>

<p class="definition">Definition at line <a class="el" href="integer_8cpp_source.html#l03772">3772</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>

</div>
</div>
<a id="aaaf727488edae8235d67209553ebd3a1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaaf727488edae8235d67209553ebd3a1">&#9670;&nbsp;</a></span>Xor()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_integer.html">Integer</a> Integer::Xor </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class_integer.html">Integer</a> &amp;&#160;</td>
          <td class="paramname"><em>t</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Bitwise XOR. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">t</td><td>the other <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the result of <code>*this ^ t</code></dd></dl>
<p><a class="el" href="class_integer.html#aaaf727488edae8235d67209553ebd3a1" title="Bitwise XOR.">Xor()</a> performs a bitwise XOR on the operands. Missing bits are shifted in at the most significant bit positions, so the result is as large as the larger of the operands.</p>
<p>Internally, Crypto++ uses a sign-magnitude representation. The library does not attempt to interpret bits, and the result is always POSITIVE. If needed, the integer should be converted to a 2's compliment representation before performing the operation. </p><dl class="section since"><dt>Since</dt><dd>Crypto++ 6.0 </dd></dl>

<p class="definition">Definition at line <a class="el" href="integer_8cpp_source.html#l03798">3798</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>

</div>
</div>
<a id="a7b5e639045868c5ac338f4180e1c7efa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7b5e639045868c5ac338f4180e1c7efa">&#9670;&nbsp;</a></span>Squared()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_integer.html">Integer</a> Integer::Squared </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Multiply this integer by itself. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="class_integer.html#ac030bf1a90f1feb05d18c6b09e37db38" title="Modular multiplication.">a_times_b_mod_c()</a> and <a class="el" href="class_integer.html#a45068a431797e59f7876e7d64e0f8dbb" title="Modular exponentiation.">a_exp_b_mod_c()</a> </dd></dl>

<p class="definition">Definition at line <a class="el" href="integer_8h_source.html#l00609">609</a> of file <a class="el" href="integer_8h_source.html">integer.h</a>.</p>

</div>
</div>
<a id="afa743f726d57e4dc88335e9f2d79c8a5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afa743f726d57e4dc88335e9f2d79c8a5">&#9670;&nbsp;</a></span>SquareRoot()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_integer.html">Integer</a> Integer::SquareRoot </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Extract square root. </p>
<p>if negative return 0, else return floor of square root </p>

<p class="definition">Definition at line <a class="el" href="integer_8cpp_source.html#l04328">4328</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>

</div>
</div>
<a id="aea313b73beda59a8c4ee2de11d637412"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aea313b73beda59a8c4ee2de11d637412">&#9670;&nbsp;</a></span>IsUnit()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool Integer::IsUnit </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Determine if 1 or -1. </p>
<dl class="section return"><dt>Returns</dt><dd>true if this integer is 1 or -1, false otherwise </dd></dl>

<p class="definition">Definition at line <a class="el" href="integer_8cpp_source.html#l04352">4352</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>

</div>
</div>
<a id="ad10f8a0906d5f1a802184a07f1c002c7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad10f8a0906d5f1a802184a07f1c002c7">&#9670;&nbsp;</a></span>MultiplicativeInverse()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_integer.html">Integer</a> Integer::MultiplicativeInverse </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Calculate multiplicative inverse. </p>
<dl class="section return"><dt>Returns</dt><dd>MultiplicativeInverse inverse if 1 or -1, otherwise return 0. </dd></dl>

<p class="definition">Definition at line <a class="el" href="integer_8cpp_source.html#l04357">4357</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>

</div>
</div>
<a id="a567c89aa176b354143c99d558d05a5fb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a567c89aa176b354143c99d558d05a5fb">&#9670;&nbsp;</a></span>Divide() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void Integer::Divide </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_integer.html">Integer</a> &amp;&#160;</td>
          <td class="paramname"><em>r</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_integer.html">Integer</a> &amp;&#160;</td>
          <td class="paramname"><em>q</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_integer.html">Integer</a> &amp;&#160;</td>
          <td class="paramname"><em>a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_integer.html">Integer</a> &amp;&#160;</td>
          <td class="paramname"><em>d</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Extended Division. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">r</td><td>a reference for the remainder </td></tr>
    <tr><td class="paramname">q</td><td>a reference for the quotient </td></tr>
    <tr><td class="paramname">a</td><td>a reference to the dividend </td></tr>
    <tr><td class="paramname">d</td><td>a reference to the divisor</td></tr>
  </table>
  </dd>
</dl>
<p>Divide calculates r and q such that (a == d*q + r) &amp;&amp; (0 &lt;= r &lt; abs(d)). </p>

<p class="definition">Definition at line <a class="el" href="integer_8cpp_source.html#l04152">4152</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>

</div>
</div>
<a id="a1849c5a8af28ab4f3a70d9690924f249"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1849c5a8af28ab4f3a70d9690924f249">&#9670;&nbsp;</a></span>Divide() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void Integer::Divide </td>
          <td>(</td>
          <td class="paramtype">word &amp;&#160;</td>
          <td class="paramname"><em>r</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_integer.html">Integer</a> &amp;&#160;</td>
          <td class="paramname"><em>q</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_integer.html">Integer</a> &amp;&#160;</td>
          <td class="paramname"><em>a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">word&#160;</td>
          <td class="paramname"><em>d</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Extended Division. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">r</td><td>a reference for the remainder </td></tr>
    <tr><td class="paramname">q</td><td>a reference for the quotient </td></tr>
    <tr><td class="paramname">a</td><td>a reference to the dividend </td></tr>
    <tr><td class="paramname">d</td><td>a reference to the divisor</td></tr>
  </table>
  </dd>
</dl>
<p>Divide calculates r and q such that (a == d*q + r) &amp;&amp; (0 &lt;= r &lt; abs(d)). This overload uses a faster division algorithm because the divisor is short. </p>

<p class="definition">Definition at line <a class="el" href="integer_8cpp_source.html#l04212">4212</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>

</div>
</div>
<a id="abf2934a6172b4cb5317874f0c993a420"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abf2934a6172b4cb5317874f0c993a420">&#9670;&nbsp;</a></span>DivideByPowerOf2()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void Integer::DivideByPowerOf2 </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_integer.html">Integer</a> &amp;&#160;</td>
          <td class="paramname"><em>r</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_integer.html">Integer</a> &amp;&#160;</td>
          <td class="paramname"><em>q</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_integer.html">Integer</a> &amp;&#160;</td>
          <td class="paramname"><em>a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>n</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Extended Division. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">r</td><td>a reference for the remainder </td></tr>
    <tr><td class="paramname">q</td><td>a reference for the quotient </td></tr>
    <tr><td class="paramname">a</td><td>a reference to the dividend </td></tr>
    <tr><td class="paramname">n</td><td>a reference to the divisor</td></tr>
  </table>
  </dd>
</dl>
<p>DivideByPowerOf2 calculates r and q such that (a == d*q + r) &amp;&amp; (0 &lt;= r &lt; abs(d)). It returns same result as Divide(r, q, a, Power2(n)), but faster. This overload uses a faster division algorithm because the divisor is a power of 2. </p>

<p class="definition">Definition at line <a class="el" href="integer_8cpp_source.html#l04170">4170</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>

</div>
</div>
<a id="a2d4d29937f8ef666717530b30f137c37"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2d4d29937f8ef666717530b30f137c37">&#9670;&nbsp;</a></span>Gcd()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_integer.html">Integer</a> Integer::Gcd </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class_integer.html">Integer</a> &amp;&#160;</td>
          <td class="paramname"><em>a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_integer.html">Integer</a> &amp;&#160;</td>
          <td class="paramname"><em>n</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Calculate greatest common divisor. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">a</td><td>a reference to the first number </td></tr>
    <tr><td class="paramname">n</td><td>a reference to the secind number </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the greatest common divisor <code>a</code> and <code>n</code>. </dd></dl>

<p class="definition">Definition at line <a class="el" href="integer_8cpp_source.html#l04381">4381</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>

</div>
</div>
<a id="af805574831ce19221692966e6217e6e0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af805574831ce19221692966e6217e6e0">&#9670;&nbsp;</a></span>InverseMod() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_integer.html">Integer</a> Integer::InverseMod </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class_integer.html">Integer</a> &amp;&#160;</td>
          <td class="paramname"><em>n</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Calculate multiplicative inverse. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">n</td><td>a reference to the modulus </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>an <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> <code>*this % n</code>.</dd></dl>
<p>InverseMod returns the multiplicative inverse of the <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> <code>*this</code> modulo the <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> <code>n</code>. If no <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> exists then <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> 0 is returned. </p><dl class="section see"><dt>See also</dt><dd><a class="el" href="class_integer.html#ac030bf1a90f1feb05d18c6b09e37db38" title="Modular multiplication.">a_times_b_mod_c()</a> and <a class="el" href="class_integer.html#a45068a431797e59f7876e7d64e0f8dbb" title="Modular exponentiation.">a_exp_b_mod_c()</a> </dd></dl>

<p class="definition">Definition at line <a class="el" href="integer_8cpp_source.html#l04386">4386</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>

</div>
</div>
<a id="a301b042e5375cbdc310c351a25eec117"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a301b042e5375cbdc310c351a25eec117">&#9670;&nbsp;</a></span>InverseMod() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">word Integer::InverseMod </td>
          <td>(</td>
          <td class="paramtype">word&#160;</td>
          <td class="paramname"><em>n</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Calculate multiplicative inverse. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">n</td><td>the modulus </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a word <code>*this % n</code>.</dd></dl>
<p>InverseMod returns the multiplicative inverse of the <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> <code>*this</code> modulo the word <code>n</code>. If no <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> exists then word 0 is returned. </p><dl class="section see"><dt>See also</dt><dd><a class="el" href="class_integer.html#ac030bf1a90f1feb05d18c6b09e37db38" title="Modular multiplication.">a_times_b_mod_c()</a> and <a class="el" href="class_integer.html#a45068a431797e59f7876e7d64e0f8dbb" title="Modular exponentiation.">a_exp_b_mod_c()</a> </dd></dl>

<p class="definition">Definition at line <a class="el" href="integer_8cpp_source.html#l04425">4425</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>

</div>
</div>
<h2 class="groupheader">Friends And Related Function Documentation</h2>
<a id="a99ad8fd21605c5caedde9c48c09bfe0b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a99ad8fd21605c5caedde9c48c09bfe0b">&#9670;&nbsp;</a></span>operator&gt;&gt;</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::istream&amp; operator&gt;&gt; </td>
          <td>(</td>
          <td class="paramtype">std::istream &amp;&#160;</td>
          <td class="paramname"><em>in</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_integer.html">Integer</a> &amp;&#160;</td>
          <td class="paramname"><em>a</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">friend</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Extraction operator. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">in</td><td>a reference to a std::istream </td></tr>
    <tr><td class="paramname">a</td><td>a reference to an <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a reference to a std::istream reference </dd></dl>

<p class="definition">Definition at line <a class="el" href="integer_8cpp_source.html#l03623">3623</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>

</div>
</div>
<a id="af229949f360bddce0743d21fdecf36c3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af229949f360bddce0743d21fdecf36c3">&#9670;&nbsp;</a></span>operator&lt;&lt;</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::ostream&amp; operator&lt;&lt; </td>
          <td>(</td>
          <td class="paramtype">std::ostream &amp;&#160;</td>
          <td class="paramname"><em>out</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_integer.html">Integer</a> &amp;&#160;</td>
          <td class="paramname"><em>a</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">friend</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Insertion operator. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">out</td><td>a reference to a std::ostream </td></tr>
    <tr><td class="paramname">a</td><td>a constant reference to an <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a reference to a std::ostream reference</dd></dl>
<p>The output integer responds to std::hex, std::oct, std::hex, std::upper and std::lower. The output includes the suffix <em><b>h</b> </em>(for hex), <em><b></b>.</em> (<em><b>dot</b>,</em> for dec) and <em><b>o</b> </em>(for octal). There is currently no way to suppress the suffix.</p>
<p>If you want to print an <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> without the suffix or using an arbitrary base, then use <a class="el" href="misc_8h.html#a6cd7decd035cc4e144cd3d395e834106" title="Converts a value to a string.">IntToString&lt;Integer&gt;()</a>. </p><dl class="section see"><dt>See also</dt><dd><a class="el" href="misc_8h.html#a6cd7decd035cc4e144cd3d395e834106" title="Converts a value to a string.">IntToString&lt;Integer&gt;</a> </dd></dl>

<p class="definition">Definition at line <a class="el" href="integer_8cpp_source.html#l03658">3658</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>

</div>
</div>
<a id="ac030bf1a90f1feb05d18c6b09e37db38"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac030bf1a90f1feb05d18c6b09e37db38">&#9670;&nbsp;</a></span>a_times_b_mod_c</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_integer.html">Integer</a> a_times_b_mod_c </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class_integer.html">Integer</a> &amp;&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_integer.html">Integer</a> &amp;&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_integer.html">Integer</a> &amp;&#160;</td>
          <td class="paramname"><em>m</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">friend</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Modular multiplication. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">x</td><td>a reference to the first term </td></tr>
    <tr><td class="paramname">y</td><td>a reference to the second term </td></tr>
    <tr><td class="paramname">m</td><td>a reference to the modulus </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>an <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> <code>(a * b) % m</code>. </dd></dl>

<p class="definition">Definition at line <a class="el" href="integer_8cpp_source.html#l04362">4362</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>

</div>
</div>
<a id="a45068a431797e59f7876e7d64e0f8dbb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a45068a431797e59f7876e7d64e0f8dbb">&#9670;&nbsp;</a></span>a_exp_b_mod_c</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_integer.html">Integer</a> a_exp_b_mod_c </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class_integer.html">Integer</a> &amp;&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_integer.html">Integer</a> &amp;&#160;</td>
          <td class="paramname"><em>e</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_integer.html">Integer</a> &amp;&#160;</td>
          <td class="paramname"><em>m</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">friend</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Modular exponentiation. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">x</td><td>a reference to the base </td></tr>
    <tr><td class="paramname">e</td><td>a reference to the exponent </td></tr>
    <tr><td class="paramname">m</td><td>a reference to the modulus </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>an <a class="el" href="class_integer.html" title="Multiple precision integer with arithmetic operations.">Integer</a> <code>(a ^ b) % m</code>. </dd></dl>

<p class="definition">Definition at line <a class="el" href="integer_8cpp_source.html#l04371">4371</a> of file <a class="el" href="integer_8cpp_source.html">integer.cpp</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="integer_8h_source.html">integer.h</a></li>
<li><a class="el" href="integer_8cpp_source.html">integer.cpp</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Nov 27 2019 15:04:20 for Crypto++ by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.15
</small></address>
</body>
</html>