Sophie

Sophie

distrib > Mageia > 1 > i586 > by-pkgid > e8773dc1178a3ee82e29ab36424dc729 > files > 697

libbeecrypt-devel-4.2.1-6.mga1.i586.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://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"/>
<title>BeeCrypt: include/beecrypt/mp.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.3 -->
<div id="top">
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">BeeCrypt&#160;<span id="projectnumber">4.2.1</span></div>
  </td>
 </tr>
 </tbody>
</table>
</div>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#define-members">Defines</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<h1>include/beecrypt/mp.h File Reference<div class="ingroups"><a class="el" href="group__MP__m.html">Multiple Precision Integer Arithmetic</a></div></h1>  </div>
</div>
<div class="contents">

<p>Multi-precision integer routines.  
<a href="#_details">More...</a></p>
<div class="textblock"><code>#include &quot;beecrypt/api.h&quot;</code><br/>
<code>#include &quot;beecrypt/mpopt.h&quot;</code><br/>
</div><div class="textblock"><div class="dynheader">
Include dependency graph for mp.h:</div>
<div class="dyncontent">
<div class="center"><img src="mp_8h__incl.png" border="0" usemap="#include_2beecrypt_2mp_8h" alt=""/></div>
<map name="include_2beecrypt_2mp_8h" id="include_2beecrypt_2mp_8h">
</map>
</div>
</div>
<p><a href="mp_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="define-members"></a>
Defines</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#a3317414bc77cc27f0c50d300fc93db7e">MP_HWBITS</a>&#160;&#160;&#160;(MP_WBITS &gt;&gt; 1)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#ac32fb614379620608d1c733a79132cfa">MP_WBYTES</a>&#160;&#160;&#160;(MP_WBITS &gt;&gt; 3)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#a3650f0cbb0aaa7100a4a7fba476920bf">MP_WNIBBLES</a>&#160;&#160;&#160;(MP_WBITS &gt;&gt; 2)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#a7a243883fb94433b237da964799fabcd">MP_WORDS_TO_BITS</a>(x)&#160;&#160;&#160;((x) &lt;&lt; 5)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#ab77b2dd70af10d0705b6048dc732a4dc">MP_WORDS_TO_NIBBLES</a>(x)&#160;&#160;&#160;((x) &lt;&lt; 3)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#a337d99143ec5b28671099a5ea022f3b9">MP_WORDS_TO_BYTES</a>(x)&#160;&#160;&#160;((x) &lt;&lt; 2)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#ad05de288398b539cf645bec59d9f27e8">MP_BITS_TO_WORDS</a>(x)&#160;&#160;&#160;((x) &gt;&gt; 5)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#a65dc4dd0b6906f36f66e42a55097b8b1">MP_NIBBLES_TO_WORDS</a>(x)&#160;&#160;&#160;((x) &gt;&gt; 3)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#a9b78d45cecc26f578dc32c4ae2c803dd">MP_BYTES_TO_WORDS</a>(x)&#160;&#160;&#160;((x) &gt;&gt; 2)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#a696235b870f5868d66258cbfc903affa">MP_MSBMASK</a>&#160;&#160;&#160;(((<a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a>) 0x1) &lt;&lt; (MP_WBITS-1))</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#a137aeb18139f4f7c871639eb67ecf7b9">MP_LSBMASK</a>&#160;&#160;&#160;((<a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a>) 0x1)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#af5466aa801f08b6c63e02f54cfc7106b">MP_ALLMASK</a>&#160;&#160;&#160;~((<a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a>) 0x0)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#afb750ee5bfe6cdd5a0ed87dccf981d80">mpcopy</a>(size, dst, src)&#160;&#160;&#160;memcpy(dst, src, MP_WORDS_TO_BYTES(size))</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#abddd3139e57f9db0c67a896024bc9684">mpmove</a>(size, dst, src)&#160;&#160;&#160;memmove(dst, src, MP_WORDS_TO_BYTES(size))</td></tr>
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#ae9fd060d4b6ce84404107a1523f34276">mpzero</a> (size_t size, <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *data)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This function zeroes a multi-precision integer of a given size.  <a href="#ae9fd060d4b6ce84404107a1523f34276"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#a1624fb65f4a9cac6f6246d64bb0189ea">mpfill</a> (size_t size, <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *data, <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> fill)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This function fills each word of a multi-precision integer with a given value.  <a href="#a1624fb65f4a9cac6f6246d64bb0189ea"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#a70c9ff9c0f765307214fb28d22cc2c23">mpodd</a> (size_t size, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *data)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This functions tests if a multi-precision integer is odd.  <a href="#a70c9ff9c0f765307214fb28d22cc2c23"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#ab0520c67c603a7e32c9eeb6a39a02595">mpeven</a> (size_t size, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *data)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This function tests if a multi-precision integer is even.  <a href="#ab0520c67c603a7e32c9eeb6a39a02595"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#aa849fd262347ab62ea3b1bf4afbf7c7c">mpz</a> (size_t size, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *data)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This function tests if a multi-precision integer is zero.  <a href="#aa849fd262347ab62ea3b1bf4afbf7c7c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#ade7306885f5508bc52954f6be8820558">mpnz</a> (size_t size, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *data)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This function tests if a multi-precision integer is not zero.  <a href="#ade7306885f5508bc52954f6be8820558"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#ae801d1996190439b2cf80548f6a03a31">mpeq</a> (size_t size, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *xdata, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *ydata)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This function tests if two multi-precision integers of the same size are equal.  <a href="#ae801d1996190439b2cf80548f6a03a31"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#ae661ccc4c37b796f4671f882e71c9cc4">mpne</a> (size_t size, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *xdata, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *ydata)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This function tests if two multi-precision integers of the same size differ.  <a href="#ae661ccc4c37b796f4671f882e71c9cc4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#ae4905ad4ef2bb6b7e8a2aa79460041c6">mpgt</a> (size_t size, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *xdata, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *ydata)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This function tests if the first of two multi-precision integers of the same size is greater than the second.  <a href="#ae4905ad4ef2bb6b7e8a2aa79460041c6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#af4e3a7316789993b73b2289bf34c837b">mplt</a> (size_t size, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *xdata, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *ydata)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This function tests if the first of two multi-precision integers of the same size is less than the second.  <a href="#af4e3a7316789993b73b2289bf34c837b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#ae01843e52c6a0b0c28c345d8040670dc">mpge</a> (size_t size, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *xdata, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *ydata)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This function tests if the first of two multi-precision integers of the same size is greater than or equal to the second.  <a href="#ae01843e52c6a0b0c28c345d8040670dc"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#af987c3b7b75fc0eae1f97aab58888006">mple</a> (size_t size, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *xdata, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *ydata)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This function tests if the first of two multi-precision integers of the same size is less than or equal to the second.  <a href="#af987c3b7b75fc0eae1f97aab58888006"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#acc8c19971240f6ea22f6b81c1db3553b">mpcmp</a> (size_t size, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *xdata, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *ydata)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This function performs a comparison of two multi-precision integers of the same size.  <a href="#acc8c19971240f6ea22f6b81c1db3553b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#af51c09b612e8033399cff6febdb9b505">mpeqx</a> (size_t xsize, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *xdata, size_t ysize, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *ydata)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This function tests if two multi-precision integers of different size are equal.  <a href="#af51c09b612e8033399cff6febdb9b505"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#abecba2b8f414da05ee7c9959ac72acb1">mpnex</a> (size_t xsize, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *xdata, size_t ysize, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *ydata)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This function tests if two multi-precision integers of different size are equal.  <a href="#abecba2b8f414da05ee7c9959ac72acb1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#ae2a7b28715b9a820ceda11b77d901953">mpgtx</a> (size_t xsize, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *xdata, size_t ysize, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *ydata)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This function tests if the first of two multi-precision integers of different size is greater than the second.  <a href="#ae2a7b28715b9a820ceda11b77d901953"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#a2d772e5778ec336da5a56302f21786a0">mpltx</a> (size_t xsize, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *xdata, size_t ysize, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *ydata)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This function tests if the first of two multi-precision integers of different size is less than the second.  <a href="#a2d772e5778ec336da5a56302f21786a0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#a01b1186616ddfd912772cddce1fc292b">mpgex</a> (size_t xsize, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *xdata, size_t ysize, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *ydata)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This function tests if the first of two multi-precision integers of different size is greater than or equal to the second.  <a href="#a01b1186616ddfd912772cddce1fc292b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#adbd7f836f9246cf904207315c346a56c">mplex</a> (size_t xsize, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *xdata, size_t ysize, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *ydata)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This function tests if the first of two multi-precision integers of different size is less than or equal to the second.  <a href="#adbd7f836f9246cf904207315c346a56c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#ac0b786d9f5d016b2d0d06b22d6f89862">mpcmpx</a> (size_t xsize, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *xdata, size_t ysize, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *ydata)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This function performs a comparison of two multi-precision integers of the different size.  <a href="#ac0b786d9f5d016b2d0d06b22d6f89862"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#ae9ab3d1ce03ffda281d610fd8123b06e">mpisone</a> (size_t size, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *data)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This functions tests if the value of a multi-precision integer is equal to one.  <a href="#ae9ab3d1ce03ffda281d610fd8123b06e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#a0605a0ef9815dce0cf2743aafdac03e6">mpistwo</a> (size_t size, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *data)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This function tests if the value of a multi-precision integer is equal to two.  <a href="#a0605a0ef9815dce0cf2743aafdac03e6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#af1f8a61b04fe27911d51aec0c6468238">mpleone</a> (size_t size, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *data)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This function tests if the value of a multi-precision integer is less than or equal to one.  <a href="#af1f8a61b04fe27911d51aec0c6468238"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#a75df6af46d913aad6f591583683d04e7">mpeqmone</a> (size_t size, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *xdata, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *ydata)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This function tests if multi-precision integer x is equal to y minus one.  <a href="#a75df6af46d913aad6f591583683d04e7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#a12d85e63b1d9f4d68909c51890ef0738">mpmsbset</a> (size_t size, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *data)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This function tests if the most significant bit of a multi-precision integer is set.  <a href="#a12d85e63b1d9f4d68909c51890ef0738"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#a84c1045a3fe0074b8b954679bcee62de">mplsbset</a> (size_t size, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *data)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This function tests if the leiast significant bit of a multi-precision integer is set.  <a href="#a84c1045a3fe0074b8b954679bcee62de"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#ab3a5821696b1b13a84d6648332ba6cf7">mpsetmsb</a> (size_t size, <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *data)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This function sets the most significant bit of a multi-precision integer.  <a href="#ab3a5821696b1b13a84d6648332ba6cf7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#ac4ccde3ff8c2aac9e324fb0832e28e1a">mpsetlsb</a> (size_t size, <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *data)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This function sets the least significant bit of a multi-precision integer.  <a href="#ac4ccde3ff8c2aac9e324fb0832e28e1a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#a298b2af39ad306efab02829d83d86b4b">mpclrmsb</a> (size_t size, <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *data)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This function clears the most significant bit of a multi-precision integer.  <a href="#a298b2af39ad306efab02829d83d86b4b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#afa0eacfccee374f6e7d4bdf388ddca01">mpclrlsb</a> (size_t size, <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *data)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This function clears the least significant bit of a multi-precision integer.  <a href="#afa0eacfccee374f6e7d4bdf388ddca01"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#a13f975884c63ac0be76d2b444a7c6eb4">mpand</a> (size_t size, <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *xdata, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *ydata)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This function computes the bit-wise AND of two multi-precision integers. Modifies xdata.  <a href="#a13f975884c63ac0be76d2b444a7c6eb4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#aa1baaac1e8919a218b2369355a8c1c63">mpor</a> (size_t size, <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *xdata, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *ydata)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This function computes the bit-wise OR of two multi-precision integers. Modifies xdata.  <a href="#aa1baaac1e8919a218b2369355a8c1c63"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#a6373a586b0e90cb78179143c89de4132">mpxor</a> (size_t size, <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *xdata, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *ydata)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This function computes the bit-wise XOR of two multi-precision integers. Modifies xdata.  <a href="#a6373a586b0e90cb78179143c89de4132"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#ad0c8185589374810679c5a0cbbe3e0ca">mpnot</a> (size_t size, <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *data)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This function flips all bits of a multi-precision integer.  <a href="#ad0c8185589374810679c5a0cbbe3e0ca"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#ad9f0efe339edc592551911ba2216e8cd">mpsetw</a> (size_t size, <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *xdata, <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> y)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This function sets the value of a multi-precision integer to the given word. The given value is copied into the least significant word, while the most significant words are zeroed.  <a href="#ad9f0efe339edc592551911ba2216e8cd"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#aa6dec413795f2d0138d09cb640dc81df">mpsetws</a> (size_t size, <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *xdata, size_t y)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This function sets the value of a multi-precision integer to the given word. The given value is copied into the least significant word(s), while the most significant words are zeroed.  <a href="#aa6dec413795f2d0138d09cb640dc81df"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#af94f0424014578a78d77c2084f3f3d5d">mpsetx</a> (size_t xsize, <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *xdata, size_t ysize, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *ydata)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This function set the value of the first multi-precision integer to the second, truncating the most significant words if ysize &gt; xsize, or zeroing the most significant words if ysize &lt; xsize.  <a href="#af94f0424014578a78d77c2084f3f3d5d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#ad2926f765db1823a1d17a285d97e9ced">mpaddw</a> (size_t size, <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *xdata, <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> y)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This function adds one word to a multi-precision integer. The performed operation is in pseudocode: x += y.  <a href="#ad2926f765db1823a1d17a285d97e9ced"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#a3dad536563420e9c1f4445a08f37c681">mpadd</a> (size_t size, <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *xdata, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *ydata)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This function adds two multi-precision integers of equal size. The performed operation is in pseudocode: x += y.  <a href="#a3dad536563420e9c1f4445a08f37c681"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#a101cb432729cd51b2a922ea4ec2281af">mpaddx</a> (size_t xsize, <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *xdata, size_t ysize, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *ydata)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This function adds two multi-precision integers of different size. The performed operation in pseudocode: x += y.  <a href="#a101cb432729cd51b2a922ea4ec2281af"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#a5814eb1185a0dc05da2f86323f5c8978">mpsubw</a> (size_t size, <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *xdata, <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> y)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This function subtracts one word to a multi-precision integer. The performed operation in pseudocode: x -= y.  <a href="#a5814eb1185a0dc05da2f86323f5c8978"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#a49e790df163e11d7230d81bbc8d5fde2">mpsub</a> (size_t size, <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *xdata, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *ydata)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This function subtracts two multi-precision integers of equal size. The performed operation in pseudocode: x -= y.  <a href="#a49e790df163e11d7230d81bbc8d5fde2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#ae77b6a530198f3d8b3d9005b7cbcc0e5">mpsubx</a> (size_t xsize, <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *xdata, size_t ysize, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *ydata)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This function subtracts two multi-precision integers of different size. The performed operation in pseudocode: x -= y.  <a href="#ae77b6a530198f3d8b3d9005b7cbcc0e5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#ac7f624f09b82cc0451fd76932564a69e">mpmultwo</a> (size_t size, <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *data)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#a5f26c9e232c74bacea5ae785692de1d4">mpneg</a> (size_t size, <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *data)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This function negates a multi-precision integer.  <a href="#a5f26c9e232c74bacea5ae785692de1d4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#a5847c378eda16688587b23753b65e972">mpsize</a> (size_t size, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *data)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This function returns the true size of a multi-precision integer, after stripping leading zero words.  <a href="#a5847c378eda16688587b23753b65e972"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#abf18ad28b007603fdcc1d4c3695056e0">mpbits</a> (size_t size, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *data)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This function returns the number of significant bits in a multi-precision integer.  <a href="#abf18ad28b007603fdcc1d4c3695056e0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#a49ae96d66620926a51acc81e915696e5">mpmszcnt</a> (size_t size, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *data)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#a4a0a37729f64e516b74d3689db90eaf8">mplszcnt</a> (size_t size, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *data)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#aa458547531ad86f7304d1beab35a5e7e">mplshift</a> (size_t size, <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *data, size_t count)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#acbbc33f1d523347abbea10b755822c05">mprshift</a> (size_t size, <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *data, size_t count)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#a2ce894dd95d1f2e82a8afcc75fffaa9c">mprshiftlsz</a> (size_t size, <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *data)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#a0b54adf94eaee674a4e3490b30a2f954">mpnorm</a> (size_t size, <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *data)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#a9bb92b1971621bcb54326369dc641ecf">mpdivtwo</a> (size_t size, <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *data)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#a9267926999bef7cfae96f50ec8fa7bd6">mpsdivtwo</a> (size_t size, <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *data)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#a659c97a015a63a4405c9a45e6a1b49e6">mpsetmul</a> (size_t size, <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *result, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *data, <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> y)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This function performs a multi-precision multiply-setup.  <a href="#a659c97a015a63a4405c9a45e6a1b49e6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#af6319411048f3dd303dfc3297b7c304f">mpaddmul</a> (size_t size, <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *result, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *data, <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> y)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This function performs a mult-precision multiply-accumulate.  <a href="#af6319411048f3dd303dfc3297b7c304f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#a5891518a4754596508b8ba8002499714">mpaddsqrtrc</a> (size_t size, <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *result, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *data)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is used in the calculation of a multi-precision squaring.  <a href="#a5891518a4754596508b8ba8002499714"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#aa936396b75b6e41298482020363c2a94">mpmul</a> (<a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *result, size_t xsize, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *xdata, size_t ysize, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *ydata)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This function computes a full multi-precision product.  <a href="#aa936396b75b6e41298482020363c2a94"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#a7703ab7d9b0b2b4f1ebc6f7415029c9b">mpsqr</a> (<a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *result, size_t size, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *data)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This function computes a full multi-precision square.  <a href="#a7703ab7d9b0b2b4f1ebc6f7415029c9b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#a599e5e794ea7df612bbdeba64cbddf12">mpgcd_w</a> (size_t size, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *xdata, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *ydata, <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *result, <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *wksp)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#a872a570802ee8bbf3dc24df3361dcbc4">mpextgcd_w</a> (size_t size, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *xdata, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *ydata, <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *result, <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *wksp)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#a0f56eafb94580fd8d838ae86a3a4e6f7">mppndiv</a> (<a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> xhi, <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> xlo, <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> y)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#a8a0e5d0430ecb60521593164a766294b">mpmod</a> (<a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *result, size_t xsize, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *xdata, size_t ysize, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *ydata, <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *wksp)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#af2f708ed3c44a665a0024b11dc8e2817">mpndivmod</a> (<a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *result, size_t xsize, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *xdata, size_t ysize, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *ydata, <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *wksp)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#ac1b16cee4b287487d5fde0f423b1f8e5">mpprint</a> (size_t size, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *data)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#ae3dcf4ff639792019af97bfb9585107a">mpprintln</a> (size_t size, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *data)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#a9d9d384955be2de91d8edcfc368e7079">mpfprint</a> (FILE *f, size_t size, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *data)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#acc68e89bb559d3e271fef4400be91db0">mpfprintln</a> (FILE *f, size_t size, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *data)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#ae82af22d91fe3e6a94cd649ab4bc7b3c">i2osp</a> (<a class="el" href="api_8h.html#ab8ef12fab634c171394422d0ee8baf94">byte</a> *osdata, size_t ossize, const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *idata, size_t isize)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#a2e26b9c3109b8a41a8c87bcfe1dfbfc8">os2ip</a> (<a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *idata, size_t isize, const <a class="el" href="api_8h.html#ab8ef12fab634c171394422d0ee8baf94">byte</a> *osdata, size_t ossize)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mp_8h.html#a75f587dd2a2c286258832da478297c7b">hs2ip</a> (<a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *idata, size_t isize, const char *hsdata, size_t hssize)</td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>Multi-precision integer routines. </p>
<p>The routines declared here are all low-level operations, most of them suitable to be implemented in assembler. Prime candidates are in order of importance (according to gprof): </p>
<ul>
<li>
mpaddmul </li>
<li>
mpsetmul </li>
<li>
mpaddsqrtrc </li>
<li>
mpsub </li>
<li>
mpadd </li>
</ul>
<p>With some smart use of available assembler instructions, it's possible to speed these routines up by a factor of 2 to 4.</p>
<dl class="author"><dt><b>Author:</b></dt><dd>Bob Deblier &lt;<a href="mailto:bob.deblier@telenet.be">bob.deblier@telenet.be</a>&gt; </dd></dl>
</div><hr/><h2>Define Documentation</h2>
<a class="anchor" id="af5466aa801f08b6c63e02f54cfc7106b"></a><!-- doxytag: member="mp.h::MP_ALLMASK" ref="af5466aa801f08b6c63e02f54cfc7106b" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MP_ALLMASK&#160;&#160;&#160;~((<a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a>) 0x0)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ad05de288398b539cf645bec59d9f27e8"></a><!-- doxytag: member="mp.h::MP_BITS_TO_WORDS" ref="ad05de288398b539cf645bec59d9f27e8" args="(x)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MP_BITS_TO_WORDS</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">x</td><td>)</td>
          <td>&#160;&#160;&#160;((x) &gt;&gt; 5)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a9b78d45cecc26f578dc32c4ae2c803dd"></a><!-- doxytag: member="mp.h::MP_BYTES_TO_WORDS" ref="a9b78d45cecc26f578dc32c4ae2c803dd" args="(x)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MP_BYTES_TO_WORDS</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">x</td><td>)</td>
          <td>&#160;&#160;&#160;((x) &gt;&gt; 2)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a3317414bc77cc27f0c50d300fc93db7e"></a><!-- doxytag: member="mp.h::MP_HWBITS" ref="a3317414bc77cc27f0c50d300fc93db7e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MP_HWBITS&#160;&#160;&#160;(MP_WBITS &gt;&gt; 1)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a137aeb18139f4f7c871639eb67ecf7b9"></a><!-- doxytag: member="mp.h::MP_LSBMASK" ref="a137aeb18139f4f7c871639eb67ecf7b9" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MP_LSBMASK&#160;&#160;&#160;((<a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a>) 0x1)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a696235b870f5868d66258cbfc903affa"></a><!-- doxytag: member="mp.h::MP_MSBMASK" ref="a696235b870f5868d66258cbfc903affa" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MP_MSBMASK&#160;&#160;&#160;(((<a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a>) 0x1) &lt;&lt; (MP_WBITS-1))</td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a65dc4dd0b6906f36f66e42a55097b8b1"></a><!-- doxytag: member="mp.h::MP_NIBBLES_TO_WORDS" ref="a65dc4dd0b6906f36f66e42a55097b8b1" args="(x)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MP_NIBBLES_TO_WORDS</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">x</td><td>)</td>
          <td>&#160;&#160;&#160;((x) &gt;&gt; 3)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ac32fb614379620608d1c733a79132cfa"></a><!-- doxytag: member="mp.h::MP_WBYTES" ref="ac32fb614379620608d1c733a79132cfa" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MP_WBYTES&#160;&#160;&#160;(MP_WBITS &gt;&gt; 3)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a3650f0cbb0aaa7100a4a7fba476920bf"></a><!-- doxytag: member="mp.h::MP_WNIBBLES" ref="a3650f0cbb0aaa7100a4a7fba476920bf" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MP_WNIBBLES&#160;&#160;&#160;(MP_WBITS &gt;&gt; 2)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a7a243883fb94433b237da964799fabcd"></a><!-- doxytag: member="mp.h::MP_WORDS_TO_BITS" ref="a7a243883fb94433b237da964799fabcd" args="(x)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MP_WORDS_TO_BITS</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">x</td><td>)</td>
          <td>&#160;&#160;&#160;((x) &lt;&lt; 5)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a337d99143ec5b28671099a5ea022f3b9"></a><!-- doxytag: member="mp.h::MP_WORDS_TO_BYTES" ref="a337d99143ec5b28671099a5ea022f3b9" args="(x)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MP_WORDS_TO_BYTES</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">x</td><td>)</td>
          <td>&#160;&#160;&#160;((x) &lt;&lt; 2)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ab77b2dd70af10d0705b6048dc732a4dc"></a><!-- doxytag: member="mp.h::MP_WORDS_TO_NIBBLES" ref="ab77b2dd70af10d0705b6048dc732a4dc" args="(x)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MP_WORDS_TO_NIBBLES</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">x</td><td>)</td>
          <td>&#160;&#160;&#160;((x) &lt;&lt; 3)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="afb750ee5bfe6cdd5a0ed87dccf981d80"></a><!-- doxytag: member="mp.h::mpcopy" ref="afb750ee5bfe6cdd5a0ed87dccf981d80" args="(size, dst, src)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define mpcopy</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">size, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">dst, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">src&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;memcpy(dst, src, MP_WORDS_TO_BYTES(size))</td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="abddd3139e57f9db0c67a896024bc9684"></a><!-- doxytag: member="mp.h::mpmove" ref="abddd3139e57f9db0c67a896024bc9684" args="(size, dst, src)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define mpmove</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">size, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">dst, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">src&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;memmove(dst, src, MP_WORDS_TO_BYTES(size))</td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="a75f587dd2a2c286258832da478297c7b"></a><!-- doxytag: member="mp.h::hs2ip" ref="a75f587dd2a2c286258832da478297c7b" args="(mpw *idata, size_t isize, const char *hsdata, size_t hssize)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int hs2ip </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>idata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>isize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>hsdata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>hssize</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ae82af22d91fe3e6a94cd649ab4bc7b3c"></a><!-- doxytag: member="mp.h::i2osp" ref="ae82af22d91fe3e6a94cd649ab4bc7b3c" args="(byte *osdata, size_t ossize, const mpw *idata, size_t isize)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int i2osp </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="api_8h.html#ab8ef12fab634c171394422d0ee8baf94">byte</a> *&#160;</td>
          <td class="paramname"><em>osdata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ossize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>idata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>isize</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a3dad536563420e9c1f4445a08f37c681"></a><!-- doxytag: member="mp.h::mpadd" ref="a3dad536563420e9c1f4445a08f37c681" args="(size_t size, mpw *xdata, const mpw *ydata)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mpadd </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>xdata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>ydata</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function adds two multi-precision integers of equal size. The performed operation is in pseudocode: x += y. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">size</td><td>The size of the multi-precision integers. </td></tr>
    <tr><td class="paramname">xdata</td><td>The first multi-precision integer. </td></tr>
    <tr><td class="paramname">ydata</td><td>The second multi-precision integer. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The carry-over value of the operation; this value is either 0 or 1. </dd></dl>

</div>
</div>
<a class="anchor" id="af6319411048f3dd303dfc3297b7c304f"></a><!-- doxytag: member="mp.h::mpaddmul" ref="af6319411048f3dd303dfc3297b7c304f" args="(size_t size, mpw *result, const mpw *data, mpw y)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> mpaddmul </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>result</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a>&#160;</td>
          <td class="paramname"><em>y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function performs a mult-precision multiply-accumulate. </p>
<p>This function is used in the computation of a full multi-precision multiplication. It computes the product-by-one-word and accumulates it with the previous result.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">size</td><td>The size of multi-precision integer multiplier. </td></tr>
    <tr><td class="paramname">result</td><td>The place where result will be accumulated. </td></tr>
    <tr><td class="paramname">data</td><td>The multi-precision integer multiplier. </td></tr>
    <tr><td class="paramname">y</td><td>The multiplicand. </td></tr>
  </table>
  </dd>
</dl>
<dl><dt><b>Return values:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">The</td><td>carry-over multi-precision word. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a5891518a4754596508b8ba8002499714"></a><!-- doxytag: member="mp.h::mpaddsqrtrc" ref="a5891518a4754596508b8ba8002499714" args="(size_t size, mpw *result, const mpw *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mpaddsqrtrc </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>result</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function is used in the calculation of a multi-precision squaring. </p>

</div>
</div>
<a class="anchor" id="ad2926f765db1823a1d17a285d97e9ced"></a><!-- doxytag: member="mp.h::mpaddw" ref="ad2926f765db1823a1d17a285d97e9ced" args="(size_t size, mpw *xdata, mpw y)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mpaddw </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>xdata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a>&#160;</td>
          <td class="paramname"><em>y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function adds one word to a multi-precision integer. The performed operation is in pseudocode: x += y. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">size</td><td>The size of the multi-precision integer. </td></tr>
    <tr><td class="paramname">xdata</td><td>The first multi-precision integer. </td></tr>
    <tr><td class="paramname">y</td><td>The multi-precision word. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The carry-over value of the operation; this value is either 0 or 1. </dd></dl>

</div>
</div>
<a class="anchor" id="a101cb432729cd51b2a922ea4ec2281af"></a><!-- doxytag: member="mp.h::mpaddx" ref="a101cb432729cd51b2a922ea4ec2281af" args="(size_t xsize, mpw *xdata, size_t ysize, const mpw *ydata)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mpaddx </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>xsize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>xdata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ysize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>ydata</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function adds two multi-precision integers of different size. The performed operation in pseudocode: x += y. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">xsize</td><td>The size of the first multi-precision integer. </td></tr>
    <tr><td class="paramname">xdata</td><td>The first multi-precision integer. </td></tr>
    <tr><td class="paramname">ysize</td><td>The size of the second multi-precision integer. </td></tr>
    <tr><td class="paramname">ydata</td><td>The second multi-precision integer. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The carry-over value of the operation; this value is either 0 or 1. </dd></dl>

</div>
</div>
<a class="anchor" id="a13f975884c63ac0be76d2b444a7c6eb4"></a><!-- doxytag: member="mp.h::mpand" ref="a13f975884c63ac0be76d2b444a7c6eb4" args="(size_t size, mpw *xdata, const mpw *ydata)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">mpand </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>xdata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>ydata</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function computes the bit-wise AND of two multi-precision integers. Modifies xdata. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">size</td><td>The size of the multi-precision integers. </td></tr>
    <tr><td class="paramname">xdata</td><td>The multi-precision integer data. </td></tr>
    <tr><td class="paramname">ydata</td><td>The multi-precision integer data. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="abf18ad28b007603fdcc1d4c3695056e0"></a><!-- doxytag: member="mp.h::mpbits" ref="abf18ad28b007603fdcc1d4c3695056e0" args="(size_t size, const mpw *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t mpbits </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function returns the number of significant bits in a multi-precision integer. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">size</td><td>The size of the multi-precision integer. </td></tr>
    <tr><td class="paramname">data</td><td>The multi-precision integer data. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="afa0eacfccee374f6e7d4bdf388ddca01"></a><!-- doxytag: member="mp.h::mpclrlsb" ref="afa0eacfccee374f6e7d4bdf388ddca01" args="(size_t size, mpw *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mpclrlsb </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function clears the least significant bit of a multi-precision integer. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">size</td><td>The size of the multi-precision integer. </td></tr>
    <tr><td class="paramname">data</td><td>The multi-precision integer data. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a298b2af39ad306efab02829d83d86b4b"></a><!-- doxytag: member="mp.h::mpclrmsb" ref="a298b2af39ad306efab02829d83d86b4b" args="(size_t size, mpw *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mpclrmsb </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function clears the most significant bit of a multi-precision integer. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">size</td><td>The size of the multi-precision integer. </td></tr>
    <tr><td class="paramname">data</td><td>The multi-precision integer data. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="acc8c19971240f6ea22f6b81c1db3553b"></a><!-- doxytag: member="mp.h::mpcmp" ref="acc8c19971240f6ea22f6b81c1db3553b" args="(size_t size, const mpw *xdata, const mpw *ydata)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mpcmp </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>xdata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>ydata</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function performs a comparison of two multi-precision integers of the same size. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>The comparison treats the arguments as unsigned. </dd></dl>
<dl><dt><b>Return values:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">-1</td><td>if x &lt; y </td></tr>
    <tr><td class="paramname">0</td><td>if x == y </td></tr>
    <tr><td class="paramname">1</td><td>if x &gt; y </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ac0b786d9f5d016b2d0d06b22d6f89862"></a><!-- doxytag: member="mp.h::mpcmpx" ref="ac0b786d9f5d016b2d0d06b22d6f89862" args="(size_t xsize, const mpw *xdata, size_t ysize, const mpw *ydata)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mpcmpx </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>xsize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>xdata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ysize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>ydata</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function performs a comparison of two multi-precision integers of the different size. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>The comparison treats the arguments as unsigned. </dd></dl>
<dl><dt><b>Return values:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">-1</td><td>if x &lt; y </td></tr>
    <tr><td class="paramname">0</td><td>if x == y </td></tr>
    <tr><td class="paramname">1</td><td>if x &gt; y </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a9bb92b1971621bcb54326369dc641ecf"></a><!-- doxytag: member="mp.h::mpdivtwo" ref="a9bb92b1971621bcb54326369dc641ecf" args="(size_t size, mpw *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mpdivtwo </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ae801d1996190439b2cf80548f6a03a31"></a><!-- doxytag: member="mp.h::mpeq" ref="ae801d1996190439b2cf80548f6a03a31" args="(size_t size, const mpw *xdata, const mpw *ydata)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mpeq </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>xdata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>ydata</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function tests if two multi-precision integers of the same size are equal. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">size</td><td>The size of the multi-precision integers. </td></tr>
    <tr><td class="paramname">xdata</td><td>The first multi-precision integer. </td></tr>
    <tr><td class="paramname">ydata</td><td>The second multi-precision integer. </td></tr>
  </table>
  </dd>
</dl>
<dl><dt><b>Return values:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">1</td><td>if equal </td></tr>
    <tr><td class="paramname">0</td><td>if not equal </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a75df6af46d913aad6f591583683d04e7"></a><!-- doxytag: member="mp.h::mpeqmone" ref="a75df6af46d913aad6f591583683d04e7" args="(size_t size, const mpw *xdata, const mpw *ydata)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mpeqmone </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>xdata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>ydata</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function tests if multi-precision integer x is equal to y minus one. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">size</td><td>The size of the multi-precision integers. </td></tr>
    <tr><td class="paramname">xdata</td><td>The first multi-precision integer. </td></tr>
    <tr><td class="paramname">ydata</td><td>The second multi-precision integer. </td></tr>
  </table>
  </dd>
</dl>
<dl><dt><b>Return values:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">1</td><td>if less than or equal to one. </td></tr>
    <tr><td class="paramname">0</td><td>if greater than one. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="af51c09b612e8033399cff6febdb9b505"></a><!-- doxytag: member="mp.h::mpeqx" ref="af51c09b612e8033399cff6febdb9b505" args="(size_t xsize, const mpw *xdata, size_t ysize, const mpw *ydata)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mpeqx </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>xsize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>xdata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ysize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>ydata</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function tests if two multi-precision integers of different size are equal. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">xsize</td><td>The size of the first multi-precision integer. </td></tr>
    <tr><td class="paramname">xdata</td><td>The first multi-precision integer. </td></tr>
    <tr><td class="paramname">ysize</td><td>The size of the first multi-precision integer. </td></tr>
    <tr><td class="paramname">ydata</td><td>The second multi-precision integer. </td></tr>
  </table>
  </dd>
</dl>
<dl><dt><b>Return values:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">1</td><td>if equal </td></tr>
    <tr><td class="paramname">0</td><td>if not equal </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ab0520c67c603a7e32c9eeb6a39a02595"></a><!-- doxytag: member="mp.h::mpeven" ref="ab0520c67c603a7e32c9eeb6a39a02595" args="(size_t size, const mpw *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mpeven </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function tests if a multi-precision integer is even. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">size</td><td>The size of the multi-precision integer. </td></tr>
    <tr><td class="paramname">data</td><td>The multi-precision integer data. </td></tr>
  </table>
  </dd>
</dl>
<dl><dt><b>Return values:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">1</td><td>if even </td></tr>
    <tr><td class="paramname">0</td><td>if odd </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a872a570802ee8bbf3dc24df3361dcbc4"></a><!-- doxytag: member="mp.h::mpextgcd_w" ref="a872a570802ee8bbf3dc24df3361dcbc4" args="(size_t size, const mpw *xdata, const mpw *ydata, mpw *result, mpw *wksp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mpextgcd_w </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>xdata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>ydata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>result</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>wksp</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a1624fb65f4a9cac6f6246d64bb0189ea"></a><!-- doxytag: member="mp.h::mpfill" ref="a1624fb65f4a9cac6f6246d64bb0189ea" args="(size_t size, mpw *data, mpw fill)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mpfill </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a>&#160;</td>
          <td class="paramname"><em>fill</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function fills each word of a multi-precision integer with a given value. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">size</td><td>The size of the multi-precision integer. </td></tr>
    <tr><td class="paramname">data</td><td>The multi-precision integer data. </td></tr>
    <tr><td class="paramname">fill</td><td>The value fill the data with. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a9d9d384955be2de91d8edcfc368e7079"></a><!-- doxytag: member="mp.h::mpfprint" ref="a9d9d384955be2de91d8edcfc368e7079" args="(FILE *f, size_t size, const mpw *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mpfprint </td>
          <td>(</td>
          <td class="paramtype">FILE *&#160;</td>
          <td class="paramname"><em>f</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="acc68e89bb559d3e271fef4400be91db0"></a><!-- doxytag: member="mp.h::mpfprintln" ref="acc68e89bb559d3e271fef4400be91db0" args="(FILE *f, size_t size, const mpw *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mpfprintln </td>
          <td>(</td>
          <td class="paramtype">FILE *&#160;</td>
          <td class="paramname"><em>f</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a599e5e794ea7df612bbdeba64cbddf12"></a><!-- doxytag: member="mp.h::mpgcd_w" ref="a599e5e794ea7df612bbdeba64cbddf12" args="(size_t size, const mpw *xdata, const mpw *ydata, mpw *result, mpw *wksp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mpgcd_w </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>xdata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>ydata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>result</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>wksp</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ae01843e52c6a0b0c28c345d8040670dc"></a><!-- doxytag: member="mp.h::mpge" ref="ae01843e52c6a0b0c28c345d8040670dc" args="(size_t size, const mpw *xdata, const mpw *ydata)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mpge </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>xdata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>ydata</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function tests if the first of two multi-precision integers of the same size is greater than or equal to the second. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>The comparison treats the arguments as unsigned. </dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">size</td><td>The size of the multi-precision integers. </td></tr>
    <tr><td class="paramname">xdata</td><td>The first multi-precision integer. </td></tr>
    <tr><td class="paramname">ydata</td><td>The second multi-precision integer. </td></tr>
  </table>
  </dd>
</dl>
<dl><dt><b>Return values:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">1</td><td>if greater or equal </td></tr>
    <tr><td class="paramname">0</td><td>if less </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a01b1186616ddfd912772cddce1fc292b"></a><!-- doxytag: member="mp.h::mpgex" ref="a01b1186616ddfd912772cddce1fc292b" args="(size_t xsize, const mpw *xdata, size_t ysize, const mpw *ydata)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mpgex </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>xsize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>xdata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ysize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>ydata</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function tests if the first of two multi-precision integers of different size is greater than or equal to the second. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>The comparison treats the arguments as unsigned. </dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">xsize</td><td>The size of the first multi-precision integer. </td></tr>
    <tr><td class="paramname">xdata</td><td>The first multi-precision integer. </td></tr>
    <tr><td class="paramname">ysize</td><td>The size of the second multi-precision integer. </td></tr>
    <tr><td class="paramname">ydata</td><td>The second multi-precision integer. </td></tr>
  </table>
  </dd>
</dl>
<dl><dt><b>Return values:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">1</td><td>if greater or equal </td></tr>
    <tr><td class="paramname">0</td><td>if less </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ae4905ad4ef2bb6b7e8a2aa79460041c6"></a><!-- doxytag: member="mp.h::mpgt" ref="ae4905ad4ef2bb6b7e8a2aa79460041c6" args="(size_t size, const mpw *xdata, const mpw *ydata)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mpgt </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>xdata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>ydata</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function tests if the first of two multi-precision integers of the same size is greater than the second. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>The comparison treats the arguments as unsigned. </dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">size</td><td>The size of the multi-precision integers. </td></tr>
    <tr><td class="paramname">xdata</td><td>The first multi-precision integer. </td></tr>
    <tr><td class="paramname">ydata</td><td>The second multi-precision integer. </td></tr>
  </table>
  </dd>
</dl>
<dl><dt><b>Return values:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">1</td><td>if greater </td></tr>
    <tr><td class="paramname">0</td><td>if less or equal </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ae2a7b28715b9a820ceda11b77d901953"></a><!-- doxytag: member="mp.h::mpgtx" ref="ae2a7b28715b9a820ceda11b77d901953" args="(size_t xsize, const mpw *xdata, size_t ysize, const mpw *ydata)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mpgtx </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>xsize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>xdata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ysize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>ydata</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function tests if the first of two multi-precision integers of different size is greater than the second. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>The comparison treats the arguments as unsigned. </dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">xsize</td><td>The size of the first multi-precision integer. </td></tr>
    <tr><td class="paramname">xdata</td><td>The first multi-precision integer. </td></tr>
    <tr><td class="paramname">ysize</td><td>The size of the second multi-precision integer. </td></tr>
    <tr><td class="paramname">ydata</td><td>The second multi-precision integer. </td></tr>
  </table>
  </dd>
</dl>
<dl><dt><b>Return values:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">1</td><td>if greater </td></tr>
    <tr><td class="paramname">0</td><td>if less or equal </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ae9ab3d1ce03ffda281d610fd8123b06e"></a><!-- doxytag: member="mp.h::mpisone" ref="ae9ab3d1ce03ffda281d610fd8123b06e" args="(size_t size, const mpw *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mpisone </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This functions tests if the value of a multi-precision integer is equal to one. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">size</td><td>The size of the multi-precision integer. </td></tr>
    <tr><td class="paramname">data</td><td>The multi-precision integer data. </td></tr>
  </table>
  </dd>
</dl>
<dl><dt><b>Return values:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">1</td><td>if one </td></tr>
    <tr><td class="paramname">0</td><td>if not one </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a0605a0ef9815dce0cf2743aafdac03e6"></a><!-- doxytag: member="mp.h::mpistwo" ref="a0605a0ef9815dce0cf2743aafdac03e6" args="(size_t size, const mpw *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mpistwo </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function tests if the value of a multi-precision integer is equal to two. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">size</td><td>The size of the multi-precision integer. </td></tr>
    <tr><td class="paramname">data</td><td>The multi-precision integer data. </td></tr>
  </table>
  </dd>
</dl>
<dl><dt><b>Return values:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">1</td><td>if two </td></tr>
    <tr><td class="paramname">0</td><td>if not two </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="af987c3b7b75fc0eae1f97aab58888006"></a><!-- doxytag: member="mp.h::mple" ref="af987c3b7b75fc0eae1f97aab58888006" args="(size_t size, const mpw *xdata, const mpw *ydata)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mple </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>xdata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>ydata</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function tests if the first of two multi-precision integers of the same size is less than or equal to the second. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>The comparison treats the arguments as unsigned. </dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">size</td><td>The size of the multi-precision integers. </td></tr>
    <tr><td class="paramname">xdata</td><td>The first multi-precision integer. </td></tr>
    <tr><td class="paramname">ydata</td><td>The second multi-precision integer. </td></tr>
  </table>
  </dd>
</dl>
<dl><dt><b>Return values:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">1</td><td>if less or equal </td></tr>
    <tr><td class="paramname">0</td><td>if greater </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="af1f8a61b04fe27911d51aec0c6468238"></a><!-- doxytag: member="mp.h::mpleone" ref="af1f8a61b04fe27911d51aec0c6468238" args="(size_t size, const mpw *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mpleone </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function tests if the value of a multi-precision integer is less than or equal to one. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">size</td><td>The size of the multi-precision integer. </td></tr>
    <tr><td class="paramname">data</td><td>The multi-precision integer data. </td></tr>
  </table>
  </dd>
</dl>
<dl><dt><b>Return values:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">1</td><td>if less than or equal to one. </td></tr>
    <tr><td class="paramname">0</td><td>if greater than one. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="adbd7f836f9246cf904207315c346a56c"></a><!-- doxytag: member="mp.h::mplex" ref="adbd7f836f9246cf904207315c346a56c" args="(size_t xsize, const mpw *xdata, size_t ysize, const mpw *ydata)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mplex </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>xsize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>xdata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ysize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>ydata</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function tests if the first of two multi-precision integers of different size is less than or equal to the second. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>The comparison treats the arguments as unsigned. </dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">xsize</td><td>The size of the first multi-precision integer. </td></tr>
    <tr><td class="paramname">xdata</td><td>The first multi-precision integer. </td></tr>
    <tr><td class="paramname">ysize</td><td>The size of the second multi-precision integer. </td></tr>
    <tr><td class="paramname">ydata</td><td>The second multi-precision integer. </td></tr>
  </table>
  </dd>
</dl>
<dl><dt><b>Return values:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">1</td><td>if less or equal </td></tr>
    <tr><td class="paramname">0</td><td>if greater </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a84c1045a3fe0074b8b954679bcee62de"></a><!-- doxytag: member="mp.h::mplsbset" ref="a84c1045a3fe0074b8b954679bcee62de" args="(size_t size, const mpw *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mplsbset </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function tests if the leiast significant bit of a multi-precision integer is set. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">size</td><td>The size of the multi-precision integer. </td></tr>
    <tr><td class="paramname">data</td><td>The multi-precision integer data. </td></tr>
  </table>
  </dd>
</dl>
<dl><dt><b>Return values:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">1</td><td>if set </td></tr>
    <tr><td class="paramname">0</td><td>if not set </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aa458547531ad86f7304d1beab35a5e7e"></a><!-- doxytag: member="mp.h::mplshift" ref="aa458547531ad86f7304d1beab35a5e7e" args="(size_t size, mpw *data, size_t count)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mplshift </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>count</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a4a0a37729f64e516b74d3689db90eaf8"></a><!-- doxytag: member="mp.h::mplszcnt" ref="a4a0a37729f64e516b74d3689db90eaf8" args="(size_t size, const mpw *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t mplszcnt </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="af4e3a7316789993b73b2289bf34c837b"></a><!-- doxytag: member="mp.h::mplt" ref="af4e3a7316789993b73b2289bf34c837b" args="(size_t size, const mpw *xdata, const mpw *ydata)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mplt </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>xdata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>ydata</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function tests if the first of two multi-precision integers of the same size is less than the second. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>The comparison treats the arguments as unsigned. </dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">size</td><td>The size of the multi-precision integers. </td></tr>
    <tr><td class="paramname">xdata</td><td>The first multi-precision integer. </td></tr>
    <tr><td class="paramname">ydata</td><td>The second multi-precision integer. </td></tr>
  </table>
  </dd>
</dl>
<dl><dt><b>Return values:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">1</td><td>if less </td></tr>
    <tr><td class="paramname">0</td><td>if greater or equal </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a2d772e5778ec336da5a56302f21786a0"></a><!-- doxytag: member="mp.h::mpltx" ref="a2d772e5778ec336da5a56302f21786a0" args="(size_t xsize, const mpw *xdata, size_t ysize, const mpw *ydata)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mpltx </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>xsize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>xdata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ysize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>ydata</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function tests if the first of two multi-precision integers of different size is less than the second. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>The comparison treats the arguments as unsigned. </dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">xsize</td><td>The size of the first multi-precision integer. </td></tr>
    <tr><td class="paramname">xdata</td><td>The first multi-precision integer. </td></tr>
    <tr><td class="paramname">ysize</td><td>The size of the second multi-precision integer. </td></tr>
    <tr><td class="paramname">ydata</td><td>The second multi-precision integer. </td></tr>
  </table>
  </dd>
</dl>
<dl><dt><b>Return values:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">1</td><td>if less </td></tr>
    <tr><td class="paramname">0</td><td>if greater or equal </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a8a0e5d0430ecb60521593164a766294b"></a><!-- doxytag: member="mp.h::mpmod" ref="a8a0e5d0430ecb60521593164a766294b" args="(mpw *result, size_t xsize, const mpw *xdata, size_t ysize, const mpw *ydata, mpw *wksp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mpmod </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>result</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>xsize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>xdata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ysize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>ydata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>wksp</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a12d85e63b1d9f4d68909c51890ef0738"></a><!-- doxytag: member="mp.h::mpmsbset" ref="a12d85e63b1d9f4d68909c51890ef0738" args="(size_t size, const mpw *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mpmsbset </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function tests if the most significant bit of a multi-precision integer is set. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">size</td><td>The size of the multi-precision integer. </td></tr>
    <tr><td class="paramname">data</td><td>The multi-precision integer data. </td></tr>
  </table>
  </dd>
</dl>
<dl><dt><b>Return values:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">1</td><td>if set </td></tr>
    <tr><td class="paramname">0</td><td>if not set </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a49ae96d66620926a51acc81e915696e5"></a><!-- doxytag: member="mp.h::mpmszcnt" ref="a49ae96d66620926a51acc81e915696e5" args="(size_t size, const mpw *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t mpmszcnt </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="aa936396b75b6e41298482020363c2a94"></a><!-- doxytag: member="mp.h::mpmul" ref="aa936396b75b6e41298482020363c2a94" args="(mpw *result, size_t xsize, const mpw *xdata, size_t ysize, const mpw *ydata)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mpmul </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>result</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>xsize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>xdata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ysize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>ydata</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function computes a full multi-precision product. </p>

</div>
</div>
<a class="anchor" id="ac7f624f09b82cc0451fd76932564a69e"></a><!-- doxytag: member="mp.h::mpmultwo" ref="ac7f624f09b82cc0451fd76932564a69e" args="(size_t size, mpw *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mpmultwo </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="af2f708ed3c44a665a0024b11dc8e2817"></a><!-- doxytag: member="mp.h::mpndivmod" ref="af2f708ed3c44a665a0024b11dc8e2817" args="(mpw *result, size_t xsize, const mpw *xdata, size_t ysize, const mpw *ydata, mpw *wksp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mpndivmod </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>result</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>xsize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>xdata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ysize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>ydata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>wksp</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ae661ccc4c37b796f4671f882e71c9cc4"></a><!-- doxytag: member="mp.h::mpne" ref="ae661ccc4c37b796f4671f882e71c9cc4" args="(size_t size, const mpw *xdata, const mpw *ydata)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mpne </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>xdata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>ydata</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function tests if two multi-precision integers of the same size differ. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">size</td><td>The size of the multi-precision integers. </td></tr>
    <tr><td class="paramname">xdata</td><td>The first multi-precision integer. </td></tr>
    <tr><td class="paramname">ydata</td><td>The second multi-precision integer. </td></tr>
  </table>
  </dd>
</dl>
<dl><dt><b>Return values:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">1</td><td>if not equal </td></tr>
    <tr><td class="paramname">0</td><td>if equal </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a5f26c9e232c74bacea5ae785692de1d4"></a><!-- doxytag: member="mp.h::mpneg" ref="a5f26c9e232c74bacea5ae785692de1d4" args="(size_t size, mpw *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mpneg </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function negates a multi-precision integer. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">size</td><td>The size of the multi-precision integer. </td></tr>
    <tr><td class="paramname">data</td><td>The multi-precision integer data. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="abecba2b8f414da05ee7c9959ac72acb1"></a><!-- doxytag: member="mp.h::mpnex" ref="abecba2b8f414da05ee7c9959ac72acb1" args="(size_t xsize, const mpw *xdata, size_t ysize, const mpw *ydata)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mpnex </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>xsize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>xdata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ysize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>ydata</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function tests if two multi-precision integers of different size are equal. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">xsize</td><td>The size of the first multi-precision integer. </td></tr>
    <tr><td class="paramname">xdata</td><td>The first multi-precision integer. </td></tr>
    <tr><td class="paramname">ysize</td><td>The size of the first multi-precision integer. </td></tr>
    <tr><td class="paramname">ydata</td><td>The second multi-precision integer. </td></tr>
  </table>
  </dd>
</dl>
<dl><dt><b>Return values:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">1</td><td>if equal </td></tr>
    <tr><td class="paramname">0</td><td>if not equal </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a0b54adf94eaee674a4e3490b30a2f954"></a><!-- doxytag: member="mp.h::mpnorm" ref="a0b54adf94eaee674a4e3490b30a2f954" args="(size_t size, mpw *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t mpnorm </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ad0c8185589374810679c5a0cbbe3e0ca"></a><!-- doxytag: member="mp.h::mpnot" ref="ad0c8185589374810679c5a0cbbe3e0ca" args="(size_t size, mpw *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">mpnot </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function flips all bits of a multi-precision integer. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">size</td><td>The size of the multi-precision integer. </td></tr>
    <tr><td class="paramname">data</td><td>The multi-precision integer data. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ade7306885f5508bc52954f6be8820558"></a><!-- doxytag: member="mp.h::mpnz" ref="ade7306885f5508bc52954f6be8820558" args="(size_t size, const mpw *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mpnz </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function tests if a multi-precision integer is not zero. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">size</td><td>The size of the multi-precision integer. </td></tr>
    <tr><td class="paramname">data</td><td>The multi-precision integer data. </td></tr>
  </table>
  </dd>
</dl>
<dl><dt><b>Return values:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">1</td><td>if not zero </td></tr>
    <tr><td class="paramname">0</td><td>if zero </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a70c9ff9c0f765307214fb28d22cc2c23"></a><!-- doxytag: member="mp.h::mpodd" ref="a70c9ff9c0f765307214fb28d22cc2c23" args="(size_t size, const mpw *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mpodd </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This functions tests if a multi-precision integer is odd. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">size</td><td>The size of the multi-precision integer. </td></tr>
    <tr><td class="paramname">data</td><td>The multi-precision integer data. </td></tr>
  </table>
  </dd>
</dl>
<dl><dt><b>Return values:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">1</td><td>if odd </td></tr>
    <tr><td class="paramname">0</td><td>if even </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aa1baaac1e8919a218b2369355a8c1c63"></a><!-- doxytag: member="mp.h::mpor" ref="aa1baaac1e8919a218b2369355a8c1c63" args="(size_t size, mpw *xdata, const mpw *ydata)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mpor </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>xdata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>ydata</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function computes the bit-wise OR of two multi-precision integers. Modifies xdata. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">size</td><td>The size of the multi-precision integer. </td></tr>
    <tr><td class="paramname">xdata</td><td>The multi-precision integer data. </td></tr>
    <tr><td class="paramname">ydata</td><td>The multi-precision integer data. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a0f56eafb94580fd8d838ae86a3a4e6f7"></a><!-- doxytag: member="mp.h::mppndiv" ref="a0f56eafb94580fd8d838ae86a3a4e6f7" args="(mpw xhi, mpw xlo, mpw y)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> mppndiv </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a>&#160;</td>
          <td class="paramname"><em>xhi</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a>&#160;</td>
          <td class="paramname"><em>xlo</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a>&#160;</td>
          <td class="paramname"><em>y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ac1b16cee4b287487d5fde0f423b1f8e5"></a><!-- doxytag: member="mp.h::mpprint" ref="ac1b16cee4b287487d5fde0f423b1f8e5" args="(size_t size, const mpw *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mpprint </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ae3dcf4ff639792019af97bfb9585107a"></a><!-- doxytag: member="mp.h::mpprintln" ref="ae3dcf4ff639792019af97bfb9585107a" args="(size_t size, const mpw *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mpprintln </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="acbbc33f1d523347abbea10b755822c05"></a><!-- doxytag: member="mp.h::mprshift" ref="acbbc33f1d523347abbea10b755822c05" args="(size_t size, mpw *data, size_t count)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mprshift </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>count</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a2ce894dd95d1f2e82a8afcc75fffaa9c"></a><!-- doxytag: member="mp.h::mprshiftlsz" ref="a2ce894dd95d1f2e82a8afcc75fffaa9c" args="(size_t size, mpw *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t mprshiftlsz </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a9267926999bef7cfae96f50ec8fa7bd6"></a><!-- doxytag: member="mp.h::mpsdivtwo" ref="a9267926999bef7cfae96f50ec8fa7bd6" args="(size_t size, mpw *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mpsdivtwo </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ac4ccde3ff8c2aac9e324fb0832e28e1a"></a><!-- doxytag: member="mp.h::mpsetlsb" ref="ac4ccde3ff8c2aac9e324fb0832e28e1a" args="(size_t size, mpw *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mpsetlsb </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function sets the least significant bit of a multi-precision integer. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">size</td><td>The size of the multi-precision integer. </td></tr>
    <tr><td class="paramname">data</td><td>The multi-precision integer data. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ab3a5821696b1b13a84d6648332ba6cf7"></a><!-- doxytag: member="mp.h::mpsetmsb" ref="ab3a5821696b1b13a84d6648332ba6cf7" args="(size_t size, mpw *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mpsetmsb </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function sets the most significant bit of a multi-precision integer. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">size</td><td>The size of the multi-precision integer. </td></tr>
    <tr><td class="paramname">data</td><td>The multi-precision integer data. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a659c97a015a63a4405c9a45e6a1b49e6"></a><!-- doxytag: member="mp.h::mpsetmul" ref="a659c97a015a63a4405c9a45e6a1b49e6" args="(size_t size, mpw *result, const mpw *data, mpw y)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> mpsetmul </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>result</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a>&#160;</td>
          <td class="paramname"><em>y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function performs a multi-precision multiply-setup. </p>
<p>This function is used in the computation of a full multi-precision multiplication. By using it we can shave off a few cycles; otherwise we'd have to zero the least significant half of the result first and use another call to the slightly slower mpaddmul function.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">size</td><td>The size of multi-precision integer multiplier. </td></tr>
    <tr><td class="paramname">result</td><td>The place where result will be accumulated. </td></tr>
    <tr><td class="paramname">data</td><td>The multi-precision integer multiplier. </td></tr>
    <tr><td class="paramname">y</td><td>The multiplicand. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The carry-over multi-precision word. </dd></dl>

</div>
</div>
<a class="anchor" id="ad9f0efe339edc592551911ba2216e8cd"></a><!-- doxytag: member="mp.h::mpsetw" ref="ad9f0efe339edc592551911ba2216e8cd" args="(size_t size, mpw *xdata, mpw y)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mpsetw </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>xdata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a>&#160;</td>
          <td class="paramname"><em>y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function sets the value of a multi-precision integer to the given word. The given value is copied into the least significant word, while the most significant words are zeroed. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">size</td><td>The size of the multi-precision integer. </td></tr>
    <tr><td class="paramname">xdata</td><td>The multi-precision integer data. </td></tr>
    <tr><td class="paramname">y</td><td>The value to be assigned. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aa6dec413795f2d0138d09cb640dc81df"></a><!-- doxytag: member="mp.h::mpsetws" ref="aa6dec413795f2d0138d09cb640dc81df" args="(size_t size, mpw *xdata, size_t y)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mpsetws </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>xdata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function sets the value of a multi-precision integer to the given word. The given value is copied into the least significant word(s), while the most significant words are zeroed. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">size</td><td>The size of the multi-precision integer. </td></tr>
    <tr><td class="paramname">xdata</td><td>The multi-precision integer data. </td></tr>
    <tr><td class="paramname">y</td><td>The value. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="af94f0424014578a78d77c2084f3f3d5d"></a><!-- doxytag: member="mp.h::mpsetx" ref="af94f0424014578a78d77c2084f3f3d5d" args="(size_t xsize, mpw *xdata, size_t ysize, const mpw *ydata)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mpsetx </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>xsize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>xdata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ysize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>ydata</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function set the value of the first multi-precision integer to the second, truncating the most significant words if ysize &gt; xsize, or zeroing the most significant words if ysize &lt; xsize. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">xsize</td><td>The size of the first multi-precision integer. </td></tr>
    <tr><td class="paramname">xdata</td><td>The first multi-precision integer. </td></tr>
    <tr><td class="paramname">ysize</td><td>The size of the second multi-precision integer. </td></tr>
    <tr><td class="paramname">ydata</td><td>The second multi-precision integer. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a5847c378eda16688587b23753b65e972"></a><!-- doxytag: member="mp.h::mpsize" ref="a5847c378eda16688587b23753b65e972" args="(size_t size, const mpw *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t mpsize </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function returns the true size of a multi-precision integer, after stripping leading zero words. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">size</td><td>The size of the multi-precision integer. </td></tr>
    <tr><td class="paramname">data</td><td>The multi-precision integer data. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a7703ab7d9b0b2b4f1ebc6f7415029c9b"></a><!-- doxytag: member="mp.h::mpsqr" ref="a7703ab7d9b0b2b4f1ebc6f7415029c9b" args="(mpw *result, size_t size, const mpw *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mpsqr </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>result</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function computes a full multi-precision square. </p>

</div>
</div>
<a class="anchor" id="a49e790df163e11d7230d81bbc8d5fde2"></a><!-- doxytag: member="mp.h::mpsub" ref="a49e790df163e11d7230d81bbc8d5fde2" args="(size_t size, mpw *xdata, const mpw *ydata)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mpsub </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>xdata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>ydata</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function subtracts two multi-precision integers of equal size. The performed operation in pseudocode: x -= y. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">size</td><td>The size of the multi-precision integers. </td></tr>
    <tr><td class="paramname">xdata</td><td>The first multi-precision integer. </td></tr>
    <tr><td class="paramname">ydata</td><td>The second multi-precision integer. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The carry-over value of the operation; this value is either 0 or 1. </dd></dl>

</div>
</div>
<a class="anchor" id="a5814eb1185a0dc05da2f86323f5c8978"></a><!-- doxytag: member="mp.h::mpsubw" ref="a5814eb1185a0dc05da2f86323f5c8978" args="(size_t size, mpw *xdata, mpw y)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mpsubw </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>xdata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a>&#160;</td>
          <td class="paramname"><em>y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function subtracts one word to a multi-precision integer. The performed operation in pseudocode: x -= y. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">size</td><td>The size of the multi-precision integers. </td></tr>
    <tr><td class="paramname">xdata</td><td>The first multi-precision integer. </td></tr>
    <tr><td class="paramname">y</td><td>The multi-precision word. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The carry-over value of the operation; this value is either 0 or 1. </dd></dl>

</div>
</div>
<a class="anchor" id="ae77b6a530198f3d8b3d9005b7cbcc0e5"></a><!-- doxytag: member="mp.h::mpsubx" ref="ae77b6a530198f3d8b3d9005b7cbcc0e5" args="(size_t xsize, mpw *xdata, size_t ysize, const mpw *ydata)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mpsubx </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>xsize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>xdata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ysize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>ydata</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function subtracts two multi-precision integers of different size. The performed operation in pseudocode: x -= y. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">xsize</td><td>The size of the first multi-precision integer. </td></tr>
    <tr><td class="paramname">xdata</td><td>The first multi-precision integer. </td></tr>
    <tr><td class="paramname">ysize</td><td>The size of the second multi-precision integer. </td></tr>
    <tr><td class="paramname">ydata</td><td>The second multi-precision integer. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The carry-over value of the operation; this value is either 0 or 1. </dd></dl>

</div>
</div>
<a class="anchor" id="a6373a586b0e90cb78179143c89de4132"></a><!-- doxytag: member="mp.h::mpxor" ref="a6373a586b0e90cb78179143c89de4132" args="(size_t size, mpw *xdata, const mpw *ydata)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mpxor </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>xdata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>ydata</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function computes the bit-wise XOR of two multi-precision integers. Modifies xdata. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">size</td><td>The size of the multi-precision integer. </td></tr>
    <tr><td class="paramname">xdata</td><td>The multi-precision integer data. </td></tr>
    <tr><td class="paramname">ydata</td><td>The multi-precision integer data. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aa849fd262347ab62ea3b1bf4afbf7c7c"></a><!-- doxytag: member="mp.h::mpz" ref="aa849fd262347ab62ea3b1bf4afbf7c7c" args="(size_t size, const mpw *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mpz </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function tests if a multi-precision integer is zero. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">size</td><td>The size of the multi-precision integer. </td></tr>
    <tr><td class="paramname">data</td><td>The multi-precision integer data. </td></tr>
  </table>
  </dd>
</dl>
<dl><dt><b>Return values:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">1</td><td>if zero </td></tr>
    <tr><td class="paramname">0</td><td>if not zero </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ae9fd060d4b6ce84404107a1523f34276"></a><!-- doxytag: member="mp.h::mpzero" ref="ae9fd060d4b6ce84404107a1523f34276" args="(size_t size, mpw *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mpzero </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function zeroes a multi-precision integer of a given size. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">size</td><td>The size of the multi-precision integer. </td></tr>
    <tr><td class="paramname">data</td><td>The multi-precision integer data. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a2e26b9c3109b8a41a8c87bcfe1dfbfc8"></a><!-- doxytag: member="mp.h::os2ip" ref="a2e26b9c3109b8a41a8c87bcfe1dfbfc8" args="(mpw *idata, size_t isize, const byte *osdata, size_t ossize)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int os2ip </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="api_8h.html#af807108d471a7c68e58df13068048e03">mpw</a> *&#160;</td>
          <td class="paramname"><em>idata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>isize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="api_8h.html#ab8ef12fab634c171394422d0ee8baf94">byte</a> *&#160;</td>
          <td class="paramname"><em>osdata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ossize</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
</div>
<hr class="footer"/><address class="footer"><small>Generated on Sun Apr 10 2011 20:49:30 for BeeCrypt by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
</body>
</html>