Home | History | Annotate | Download | only in html
      1 <!-- HTML header for doxygen 1.8.10-->
      2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
      3 <html xmlns="http://www.w3.org/1999/xhtml">
      4 <head>
      5 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
      6 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
      7 <meta name="generator" content="Doxygen 1.8.14"/>
      8 <title>Intel&reg; Enhanced Privacy ID SDK: epid/member/tiny/math/vli.h File Reference</title>
      9 <link href="tabs.css" rel="stylesheet" type="text/css"/>
     10 <script type="text/javascript" src="jquery.js"></script>
     11 <script type="text/javascript" src="dynsections.js"></script>
     12 <link href="navtree.css" rel="stylesheet" type="text/css"/>
     13 <script type="text/javascript" src="resize.js"></script>
     14 <script type="text/javascript" src="navtreedata.js"></script>
     15 <script type="text/javascript" src="navtree.js"></script>
     16 <script type="text/javascript">
     17 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
     18   $(document).ready(initResizable);
     19 /* @license-end */</script>
     20 <link href="doxygen.css" rel="stylesheet" type="text/css" />
     21 <link href="epidstyle.css" rel="stylesheet" type="text/css"/>
     22 </head>
     23 <body>
     24 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
     25 <div id="titlearea">
     26 <table cellspacing="0" cellpadding="0">
     27  <tbody>
     28  <tr style="height: 56px;">
     29   <td id="projectalign" style="padding-left: 0.5em;">
     30    <div id="projectname"><a 
     31                             onclick="storeLink('index.html')"
     32                             id="projectlink" 
     33                             class="index.html" 
     34                             href="index.html">Intel&reg; Enhanced Privacy ID SDK</a>
     35 &#160;<span id="projectnumber">6.0.1</span>
     36 </div>
     37   </td>
     38  </tr>
     39  </tbody>
     40 </table>
     41 </div>
     42 <!-- end header part -->
     43 <!-- Generated by Doxygen 1.8.14 -->
     44 </div><!-- top -->
     45 <div id="side-nav" class="ui-resizable side-nav-resizable">
     46   <div id="nav-tree">
     47     <div id="nav-tree-contents">
     48       <div id="nav-sync" class="sync"></div>
     49     </div>
     50   </div>
     51   <div id="splitbar" style="-moz-user-select:none;" 
     52        class="ui-resizable-handle">
     53   </div>
     54 </div>
     55 <script type="text/javascript">
     56 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
     57 $(document).ready(function(){initNavTree('vli_8h.html','');});
     58 /* @license-end */
     59 </script>
     60 <div id="doc-content">
     61 <div class="header">
     62   <div class="summary">
     63 <a href="#func-members">Functions</a>  </div>
     64   <div class="headertitle">
     65 <div class="title">vli.h File Reference</div>  </div>
     66 </div><!--header-->
     67 <div class="contents">
     68 
     69 <p>Definition of Large Integer math.  
     70 <a href="#details">More...</a></p>
     71 <div class="textblock"><code>#include &lt;stdint.h&gt;</code><br />
     72 <code>#include &quot;<a class="el" href="bitsupplier_8h.html">epid/common/bitsupplier.h</a>&quot;</code><br />
     73 </div><table class="memberdecls">
     74 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
     75 Functions</h2></td></tr>
     76 <tr class="memitem:a566cfdc23f1c35230891d53139850032"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="vli_8h.html#a566cfdc23f1c35230891d53139850032">VliAdd</a> (<a class="el" href="struct_very_large_int.html">VeryLargeInt</a> *result, <a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const *left, <a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const *right)</td></tr>
     77 <tr class="memdesc:a566cfdc23f1c35230891d53139850032"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add two large integers.  <a href="#a566cfdc23f1c35230891d53139850032">More...</a><br /></td></tr>
     78 <tr class="separator:a566cfdc23f1c35230891d53139850032"><td class="memSeparator" colspan="2">&#160;</td></tr>
     79 <tr class="memitem:ab6d63a825df6f224fe37c76b6bb67bcf"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="vli_8h.html#ab6d63a825df6f224fe37c76b6bb67bcf">VliMul</a> (<a class="el" href="struct_very_large_int_product.html">VeryLargeIntProduct</a> *result, <a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const *left, <a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const *right)</td></tr>
     80 <tr class="memdesc:ab6d63a825df6f224fe37c76b6bb67bcf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Multiply two large integers.  <a href="#ab6d63a825df6f224fe37c76b6bb67bcf">More...</a><br /></td></tr>
     81 <tr class="separator:ab6d63a825df6f224fe37c76b6bb67bcf"><td class="memSeparator" colspan="2">&#160;</td></tr>
     82 <tr class="memitem:a4c7e60c47b82e5b2cf823d51b3a9fdcc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="vli_8h.html#a4c7e60c47b82e5b2cf823d51b3a9fdcc">VliRShift</a> (<a class="el" href="struct_very_large_int.html">VeryLargeInt</a> *result, <a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const *in, uint32_t shift)</td></tr>
     83 <tr class="memdesc:a4c7e60c47b82e5b2cf823d51b3a9fdcc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Right shift a large integers.  <a href="#a4c7e60c47b82e5b2cf823d51b3a9fdcc">More...</a><br /></td></tr>
     84 <tr class="separator:a4c7e60c47b82e5b2cf823d51b3a9fdcc"><td class="memSeparator" colspan="2">&#160;</td></tr>
     85 <tr class="memitem:ac47d57834c67877c10ecdc230cdaf503"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="vli_8h.html#ac47d57834c67877c10ecdc230cdaf503">VliSub</a> (<a class="el" href="struct_very_large_int.html">VeryLargeInt</a> *result, <a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const *left, <a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const *right)</td></tr>
     86 <tr class="memdesc:ac47d57834c67877c10ecdc230cdaf503"><td class="mdescLeft">&#160;</td><td class="mdescRight">Subtract two large integers.  <a href="#ac47d57834c67877c10ecdc230cdaf503">More...</a><br /></td></tr>
     87 <tr class="separator:ac47d57834c67877c10ecdc230cdaf503"><td class="memSeparator" colspan="2">&#160;</td></tr>
     88 <tr class="memitem:a9a1df0e7770aa1421e41b87965e71425"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="vli_8h.html#a9a1df0e7770aa1421e41b87965e71425">VliSet</a> (<a class="el" href="struct_very_large_int.html">VeryLargeInt</a> *result, <a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const *in)</td></tr>
     89 <tr class="memdesc:a9a1df0e7770aa1421e41b87965e71425"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set a large integer's value.  <a href="#a9a1df0e7770aa1421e41b87965e71425">More...</a><br /></td></tr>
     90 <tr class="separator:a9a1df0e7770aa1421e41b87965e71425"><td class="memSeparator" colspan="2">&#160;</td></tr>
     91 <tr class="memitem:ad1e2e5fe5fc466eff75dbe70fba3169f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="vli_8h.html#ad1e2e5fe5fc466eff75dbe70fba3169f">VliClear</a> (<a class="el" href="struct_very_large_int.html">VeryLargeInt</a> *result)</td></tr>
     92 <tr class="memdesc:ad1e2e5fe5fc466eff75dbe70fba3169f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear a large integer's value.  <a href="#ad1e2e5fe5fc466eff75dbe70fba3169f">More...</a><br /></td></tr>
     93 <tr class="separator:ad1e2e5fe5fc466eff75dbe70fba3169f"><td class="memSeparator" colspan="2">&#160;</td></tr>
     94 <tr class="memitem:a8f6a41541103b1bde8428ea7f4b816fa"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="vli_8h.html#a8f6a41541103b1bde8428ea7f4b816fa">VliIsZero</a> (<a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const *in)</td></tr>
     95 <tr class="memdesc:a8f6a41541103b1bde8428ea7f4b816fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test if a large integer is zero.  <a href="#a8f6a41541103b1bde8428ea7f4b816fa">More...</a><br /></td></tr>
     96 <tr class="separator:a8f6a41541103b1bde8428ea7f4b816fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
     97 <tr class="memitem:a426db811cf4ee822bd4b6863f2e51d8c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="vli_8h.html#a426db811cf4ee822bd4b6863f2e51d8c">VliCondSet</a> (<a class="el" href="struct_very_large_int.html">VeryLargeInt</a> *result, <a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const *true_val, <a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const *false_val, int truth_val)</td></tr>
     98 <tr class="memdesc:a426db811cf4ee822bd4b6863f2e51d8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Conditionally Set a large inter's value to one of two values.  <a href="#a426db811cf4ee822bd4b6863f2e51d8c">More...</a><br /></td></tr>
     99 <tr class="separator:a426db811cf4ee822bd4b6863f2e51d8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
    100 <tr class="memitem:a80d1a80f5a21437354ee185923621d66"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="vli_8h.html#a80d1a80f5a21437354ee185923621d66">VliTestBit</a> (<a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const *in, uint32_t bit)</td></tr>
    101 <tr class="memdesc:a80d1a80f5a21437354ee185923621d66"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test the value of a bit in a large integer.  <a href="#a80d1a80f5a21437354ee185923621d66">More...</a><br /></td></tr>
    102 <tr class="separator:a80d1a80f5a21437354ee185923621d66"><td class="memSeparator" colspan="2">&#160;</td></tr>
    103 <tr class="memitem:a10fc791278e51543fc685d5a4903fcd1"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="vli_8h.html#a10fc791278e51543fc685d5a4903fcd1">VliRand</a> (<a class="el" href="struct_very_large_int.html">VeryLargeInt</a> *result, <a class="el" href="group___epid_common.html#ga6119a2c0323a3fca9e502b24bc378c2c">BitSupplier</a> rnd_func, void *rnd_param)</td></tr>
    104 <tr class="memdesc:a10fc791278e51543fc685d5a4903fcd1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate a random large integer.  <a href="#a10fc791278e51543fc685d5a4903fcd1">More...</a><br /></td></tr>
    105 <tr class="separator:a10fc791278e51543fc685d5a4903fcd1"><td class="memSeparator" colspan="2">&#160;</td></tr>
    106 <tr class="memitem:a1f6ded73c6bb3dc340efd2a8978f8d7a"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="vli_8h.html#a1f6ded73c6bb3dc340efd2a8978f8d7a">VliCmp</a> (<a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const *left, <a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const *right)</td></tr>
    107 <tr class="memdesc:a1f6ded73c6bb3dc340efd2a8978f8d7a"><td class="mdescLeft">&#160;</td><td class="mdescRight">compare two large integers.  <a href="#a1f6ded73c6bb3dc340efd2a8978f8d7a">More...</a><br /></td></tr>
    108 <tr class="separator:a1f6ded73c6bb3dc340efd2a8978f8d7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
    109 <tr class="memitem:a6373f1d28198a0f34f220bfcc2ecf040"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="vli_8h.html#a6373f1d28198a0f34f220bfcc2ecf040">VliModAdd</a> (<a class="el" href="struct_very_large_int.html">VeryLargeInt</a> *result, <a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const *left, <a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const *right, <a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const *mod)</td></tr>
    110 <tr class="memdesc:a6373f1d28198a0f34f220bfcc2ecf040"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add two large integers modulo a value.  <a href="#a6373f1d28198a0f34f220bfcc2ecf040">More...</a><br /></td></tr>
    111 <tr class="separator:a6373f1d28198a0f34f220bfcc2ecf040"><td class="memSeparator" colspan="2">&#160;</td></tr>
    112 <tr class="memitem:aa53a875972ac2f10852fcaca92de2b40"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="vli_8h.html#aa53a875972ac2f10852fcaca92de2b40">VliModSub</a> (<a class="el" href="struct_very_large_int.html">VeryLargeInt</a> *result, <a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const *left, <a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const *right, <a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const *mod)</td></tr>
    113 <tr class="memdesc:aa53a875972ac2f10852fcaca92de2b40"><td class="mdescLeft">&#160;</td><td class="mdescRight">Subtract two large integers modulo a value.  <a href="#aa53a875972ac2f10852fcaca92de2b40">More...</a><br /></td></tr>
    114 <tr class="separator:aa53a875972ac2f10852fcaca92de2b40"><td class="memSeparator" colspan="2">&#160;</td></tr>
    115 <tr class="memitem:a112a5d4118e101ec539e9669ebd4fdf9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="vli_8h.html#a112a5d4118e101ec539e9669ebd4fdf9">VliModMul</a> (<a class="el" href="struct_very_large_int.html">VeryLargeInt</a> *result, <a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const *left, <a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const *right, <a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const *mod)</td></tr>
    116 <tr class="memdesc:a112a5d4118e101ec539e9669ebd4fdf9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Multiply two large integers modulo a value.  <a href="#a112a5d4118e101ec539e9669ebd4fdf9">More...</a><br /></td></tr>
    117 <tr class="separator:a112a5d4118e101ec539e9669ebd4fdf9"><td class="memSeparator" colspan="2">&#160;</td></tr>
    118 <tr class="memitem:aa1f2257e949c0c4f26b24aec95e01452"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="vli_8h.html#aa1f2257e949c0c4f26b24aec95e01452">VliModExp</a> (<a class="el" href="struct_very_large_int.html">VeryLargeInt</a> *result, <a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const *base, <a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const *exp, <a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const *mod)</td></tr>
    119 <tr class="memdesc:aa1f2257e949c0c4f26b24aec95e01452"><td class="mdescLeft">&#160;</td><td class="mdescRight">Exponentiate a large integer modulo a value.  <a href="#aa1f2257e949c0c4f26b24aec95e01452">More...</a><br /></td></tr>
    120 <tr class="separator:aa1f2257e949c0c4f26b24aec95e01452"><td class="memSeparator" colspan="2">&#160;</td></tr>
    121 <tr class="memitem:a3d4ee194f13293e61bddf243e4241b4c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="vli_8h.html#a3d4ee194f13293e61bddf243e4241b4c">VliModInv</a> (<a class="el" href="struct_very_large_int.html">VeryLargeInt</a> *result, <a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const *input, <a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const *mod)</td></tr>
    122 <tr class="memdesc:a3d4ee194f13293e61bddf243e4241b4c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Invert a large integer modulo a value.  <a href="#a3d4ee194f13293e61bddf243e4241b4c">More...</a><br /></td></tr>
    123 <tr class="separator:a3d4ee194f13293e61bddf243e4241b4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
    124 <tr class="memitem:accf6070832e479e01c1268b0414645b9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="vli_8h.html#accf6070832e479e01c1268b0414645b9">VliModSquare</a> (<a class="el" href="struct_very_large_int.html">VeryLargeInt</a> *result, <a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const *input, <a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const *mod)</td></tr>
    125 <tr class="memdesc:accf6070832e479e01c1268b0414645b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Square a large integer modulo a value.  <a href="#accf6070832e479e01c1268b0414645b9">More...</a><br /></td></tr>
    126 <tr class="separator:accf6070832e479e01c1268b0414645b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
    127 <tr class="memitem:a5280e583a19e61ad815b02906c082033"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="vli_8h.html#a5280e583a19e61ad815b02906c082033">VliModBarrett</a> (<a class="el" href="struct_very_large_int.html">VeryLargeInt</a> *result, <a class="el" href="struct_very_large_int_product.html">VeryLargeIntProduct</a> const *input, <a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const *mod)</td></tr>
    128 <tr class="memdesc:a5280e583a19e61ad815b02906c082033"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reduce a value to a modulo.  <a href="#a5280e583a19e61ad815b02906c082033">More...</a><br /></td></tr>
    129 <tr class="separator:a5280e583a19e61ad815b02906c082033"><td class="memSeparator" colspan="2">&#160;</td></tr>
    130 </table>
    131 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
    132 <div class="textblock"><p>Definition of Large Integer math. </p>
    133 </div><h2 class="groupheader">Function Documentation</h2>
    134 <a id="a566cfdc23f1c35230891d53139850032"></a>
    135 <h2 class="memtitle"><span class="permalink"><a href="#a566cfdc23f1c35230891d53139850032">&#9670;&nbsp;</a></span>VliAdd()</h2>
    136 
    137 <div class="memitem">
    138 <div class="memproto">
    139       <table class="memname">
    140         <tr>
    141           <td class="memname">uint32_t VliAdd </td>
    142           <td>(</td>
    143           <td class="paramtype"><a class="el" href="struct_very_large_int.html">VeryLargeInt</a> *&#160;</td>
    144           <td class="paramname"><em>result</em>, </td>
    145         </tr>
    146         <tr>
    147           <td class="paramkey"></td>
    148           <td></td>
    149           <td class="paramtype"><a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const *&#160;</td>
    150           <td class="paramname"><em>left</em>, </td>
    151         </tr>
    152         <tr>
    153           <td class="paramkey"></td>
    154           <td></td>
    155           <td class="paramtype"><a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const *&#160;</td>
    156           <td class="paramname"><em>right</em>&#160;</td>
    157         </tr>
    158         <tr>
    159           <td></td>
    160           <td>)</td>
    161           <td></td><td></td>
    162         </tr>
    163       </table>
    164 </div><div class="memdoc">
    165 
    166 <p>Add two large integers. </p>
    167 <dl class="params"><dt>Parameters</dt><dd>
    168   <table class="params">
    169     <tr><td class="paramdir">[out]</td><td class="paramname">result</td><td>target. </td></tr>
    170     <tr><td class="paramdir">[in]</td><td class="paramname">left</td><td>The first operand to be added. </td></tr>
    171     <tr><td class="paramdir">[in]</td><td class="paramname">right</td><td>The second operand to be added.</td></tr>
    172   </table>
    173   </dd>
    174 </dl>
    175 <dl class="section return"><dt>Returns</dt><dd>the carry portion of the addition. </dd></dl>
    176 
    177 </div>
    178 </div>
    179 <a id="ad1e2e5fe5fc466eff75dbe70fba3169f"></a>
    180 <h2 class="memtitle"><span class="permalink"><a href="#ad1e2e5fe5fc466eff75dbe70fba3169f">&#9670;&nbsp;</a></span>VliClear()</h2>
    181 
    182 <div class="memitem">
    183 <div class="memproto">
    184       <table class="memname">
    185         <tr>
    186           <td class="memname">void VliClear </td>
    187           <td>(</td>
    188           <td class="paramtype"><a class="el" href="struct_very_large_int.html">VeryLargeInt</a> *&#160;</td>
    189           <td class="paramname"><em>result</em></td><td>)</td>
    190           <td></td>
    191         </tr>
    192       </table>
    193 </div><div class="memdoc">
    194 
    195 <p>Clear a large integer's value. </p>
    196 <dl class="params"><dt>Parameters</dt><dd>
    197   <table class="params">
    198     <tr><td class="paramdir">[out]</td><td class="paramname">result</td><td>value to clear. </td></tr>
    199   </table>
    200   </dd>
    201 </dl>
    202 
    203 </div>
    204 </div>
    205 <a id="a1f6ded73c6bb3dc340efd2a8978f8d7a"></a>
    206 <h2 class="memtitle"><span class="permalink"><a href="#a1f6ded73c6bb3dc340efd2a8978f8d7a">&#9670;&nbsp;</a></span>VliCmp()</h2>
    207 
    208 <div class="memitem">
    209 <div class="memproto">
    210       <table class="memname">
    211         <tr>
    212           <td class="memname">int VliCmp </td>
    213           <td>(</td>
    214           <td class="paramtype"><a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const *&#160;</td>
    215           <td class="paramname"><em>left</em>, </td>
    216         </tr>
    217         <tr>
    218           <td class="paramkey"></td>
    219           <td></td>
    220           <td class="paramtype"><a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const *&#160;</td>
    221           <td class="paramname"><em>right</em>&#160;</td>
    222         </tr>
    223         <tr>
    224           <td></td>
    225           <td>)</td>
    226           <td></td><td></td>
    227         </tr>
    228       </table>
    229 </div><div class="memdoc">
    230 
    231 <p>compare two large integers. </p>
    232 <dl class="params"><dt>Parameters</dt><dd>
    233   <table class="params">
    234     <tr><td class="paramdir">[in]</td><td class="paramname">left</td><td>the left hand value. </td></tr>
    235     <tr><td class="paramdir">[in]</td><td class="paramname">right</td><td>the right hand value.</td></tr>
    236   </table>
    237   </dd>
    238 </dl>
    239 <dl class="section return"><dt>Returns</dt><dd>the sign of left - right </dd></dl>
    240 
    241 </div>
    242 </div>
    243 <a id="a426db811cf4ee822bd4b6863f2e51d8c"></a>
    244 <h2 class="memtitle"><span class="permalink"><a href="#a426db811cf4ee822bd4b6863f2e51d8c">&#9670;&nbsp;</a></span>VliCondSet()</h2>
    245 
    246 <div class="memitem">
    247 <div class="memproto">
    248       <table class="memname">
    249         <tr>
    250           <td class="memname">void VliCondSet </td>
    251           <td>(</td>
    252           <td class="paramtype"><a class="el" href="struct_very_large_int.html">VeryLargeInt</a> *&#160;</td>
    253           <td class="paramname"><em>result</em>, </td>
    254         </tr>
    255         <tr>
    256           <td class="paramkey"></td>
    257           <td></td>
    258           <td class="paramtype"><a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const *&#160;</td>
    259           <td class="paramname"><em>true_val</em>, </td>
    260         </tr>
    261         <tr>
    262           <td class="paramkey"></td>
    263           <td></td>
    264           <td class="paramtype"><a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const *&#160;</td>
    265           <td class="paramname"><em>false_val</em>, </td>
    266         </tr>
    267         <tr>
    268           <td class="paramkey"></td>
    269           <td></td>
    270           <td class="paramtype">int&#160;</td>
    271           <td class="paramname"><em>truth_val</em>&#160;</td>
    272         </tr>
    273         <tr>
    274           <td></td>
    275           <td>)</td>
    276           <td></td><td></td>
    277         </tr>
    278       </table>
    279 </div><div class="memdoc">
    280 
    281 <p>Conditionally Set a large inter's value to one of two values. </p>
    282 <dl class="params"><dt>Parameters</dt><dd>
    283   <table class="params">
    284     <tr><td class="paramdir">[out]</td><td class="paramname">result</td><td>target. </td></tr>
    285     <tr><td class="paramdir">[in]</td><td class="paramname">true_val</td><td>value to set if condition is true. </td></tr>
    286     <tr><td class="paramdir">[in]</td><td class="paramname">false_val</td><td>value to set if condition is false. </td></tr>
    287     <tr><td class="paramdir">[in]</td><td class="paramname">truth_val</td><td>value of condition. </td></tr>
    288   </table>
    289   </dd>
    290 </dl>
    291 
    292 </div>
    293 </div>
    294 <a id="a8f6a41541103b1bde8428ea7f4b816fa"></a>
    295 <h2 class="memtitle"><span class="permalink"><a href="#a8f6a41541103b1bde8428ea7f4b816fa">&#9670;&nbsp;</a></span>VliIsZero()</h2>
    296 
    297 <div class="memitem">
    298 <div class="memproto">
    299       <table class="memname">
    300         <tr>
    301           <td class="memname">int VliIsZero </td>
    302           <td>(</td>
    303           <td class="paramtype"><a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const *&#160;</td>
    304           <td class="paramname"><em>in</em></td><td>)</td>
    305           <td></td>
    306         </tr>
    307       </table>
    308 </div><div class="memdoc">
    309 
    310 <p>Test if a large integer is zero. </p>
    311 <dl class="params"><dt>Parameters</dt><dd>
    312   <table class="params">
    313     <tr><td class="paramdir">[in]</td><td class="paramname">in</td><td>the value to test. </td></tr>
    314   </table>
    315   </dd>
    316 </dl>
    317 <dl class="section return"><dt>Returns</dt><dd>A value different from zero (i.e., true) if indeed the value is zero. Zero (i.e., false) otherwise. </dd></dl>
    318 
    319 </div>
    320 </div>
    321 <a id="a6373f1d28198a0f34f220bfcc2ecf040"></a>
    322 <h2 class="memtitle"><span class="permalink"><a href="#a6373f1d28198a0f34f220bfcc2ecf040">&#9670;&nbsp;</a></span>VliModAdd()</h2>
    323 
    324 <div class="memitem">
    325 <div class="memproto">
    326       <table class="memname">
    327         <tr>
    328           <td class="memname">void VliModAdd </td>
    329           <td>(</td>
    330           <td class="paramtype"><a class="el" href="struct_very_large_int.html">VeryLargeInt</a> *&#160;</td>
    331           <td class="paramname"><em>result</em>, </td>
    332         </tr>
    333         <tr>
    334           <td class="paramkey"></td>
    335           <td></td>
    336           <td class="paramtype"><a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const *&#160;</td>
    337           <td class="paramname"><em>left</em>, </td>
    338         </tr>
    339         <tr>
    340           <td class="paramkey"></td>
    341           <td></td>
    342           <td class="paramtype"><a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const *&#160;</td>
    343           <td class="paramname"><em>right</em>, </td>
    344         </tr>
    345         <tr>
    346           <td class="paramkey"></td>
    347           <td></td>
    348           <td class="paramtype"><a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const *&#160;</td>
    349           <td class="paramname"><em>mod</em>&#160;</td>
    350         </tr>
    351         <tr>
    352           <td></td>
    353           <td>)</td>
    354           <td></td><td></td>
    355         </tr>
    356       </table>
    357 </div><div class="memdoc">
    358 
    359 <p>Add two large integers modulo a value. </p>
    360 <dl class="params"><dt>Parameters</dt><dd>
    361   <table class="params">
    362     <tr><td class="paramdir">[out]</td><td class="paramname">result</td><td>target. </td></tr>
    363     <tr><td class="paramdir">[in]</td><td class="paramname">left</td><td>The first operand to be added. </td></tr>
    364     <tr><td class="paramdir">[in]</td><td class="paramname">right</td><td>The second operand to be added. </td></tr>
    365     <tr><td class="paramdir">[in]</td><td class="paramname">mod</td><td>The modulo. </td></tr>
    366   </table>
    367   </dd>
    368 </dl>
    369 
    370 </div>
    371 </div>
    372 <a id="a5280e583a19e61ad815b02906c082033"></a>
    373 <h2 class="memtitle"><span class="permalink"><a href="#a5280e583a19e61ad815b02906c082033">&#9670;&nbsp;</a></span>VliModBarrett()</h2>
    374 
    375 <div class="memitem">
    376 <div class="memproto">
    377       <table class="memname">
    378         <tr>
    379           <td class="memname">void VliModBarrett </td>
    380           <td>(</td>
    381           <td class="paramtype"><a class="el" href="struct_very_large_int.html">VeryLargeInt</a> *&#160;</td>
    382           <td class="paramname"><em>result</em>, </td>
    383         </tr>
    384         <tr>
    385           <td class="paramkey"></td>
    386           <td></td>
    387           <td class="paramtype"><a class="el" href="struct_very_large_int_product.html">VeryLargeIntProduct</a> const *&#160;</td>
    388           <td class="paramname"><em>input</em>, </td>
    389         </tr>
    390         <tr>
    391           <td class="paramkey"></td>
    392           <td></td>
    393           <td class="paramtype"><a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const *&#160;</td>
    394           <td class="paramname"><em>mod</em>&#160;</td>
    395         </tr>
    396         <tr>
    397           <td></td>
    398           <td>)</td>
    399           <td></td><td></td>
    400         </tr>
    401       </table>
    402 </div><div class="memdoc">
    403 
    404 <p>Reduce a value to a modulo. </p>
    405 <dl class="params"><dt>Parameters</dt><dd>
    406   <table class="params">
    407     <tr><td class="paramdir">[out]</td><td class="paramname">result</td><td>target. </td></tr>
    408     <tr><td class="paramdir">[in]</td><td class="paramname">input</td><td>the base. </td></tr>
    409     <tr><td class="paramdir">[in]</td><td class="paramname">mod</td><td>The modulo.</td></tr>
    410   </table>
    411   </dd>
    412 </dl>
    413 <dl class="section warning"><dt>Warning</dt><dd>This function makes significant assumptions about the range of values input </dd></dl>
    414 
    415 </div>
    416 </div>
    417 <a id="aa1f2257e949c0c4f26b24aec95e01452"></a>
    418 <h2 class="memtitle"><span class="permalink"><a href="#aa1f2257e949c0c4f26b24aec95e01452">&#9670;&nbsp;</a></span>VliModExp()</h2>
    419 
    420 <div class="memitem">
    421 <div class="memproto">
    422       <table class="memname">
    423         <tr>
    424           <td class="memname">void VliModExp </td>
    425           <td>(</td>
    426           <td class="paramtype"><a class="el" href="struct_very_large_int.html">VeryLargeInt</a> *&#160;</td>
    427           <td class="paramname"><em>result</em>, </td>
    428         </tr>
    429         <tr>
    430           <td class="paramkey"></td>
    431           <td></td>
    432           <td class="paramtype"><a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const *&#160;</td>
    433           <td class="paramname"><em>base</em>, </td>
    434         </tr>
    435         <tr>
    436           <td class="paramkey"></td>
    437           <td></td>
    438           <td class="paramtype"><a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const *&#160;</td>
    439           <td class="paramname"><em>exp</em>, </td>
    440         </tr>
    441         <tr>
    442           <td class="paramkey"></td>
    443           <td></td>
    444           <td class="paramtype"><a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const *&#160;</td>
    445           <td class="paramname"><em>mod</em>&#160;</td>
    446         </tr>
    447         <tr>
    448           <td></td>
    449           <td>)</td>
    450           <td></td><td></td>
    451         </tr>
    452       </table>
    453 </div><div class="memdoc">
    454 
    455 <p>Exponentiate a large integer modulo a value. </p>
    456 <dl class="params"><dt>Parameters</dt><dd>
    457   <table class="params">
    458     <tr><td class="paramdir">[out]</td><td class="paramname">result</td><td>target. </td></tr>
    459     <tr><td class="paramdir">[in]</td><td class="paramname">base</td><td>the base. </td></tr>
    460     <tr><td class="paramdir">[in]</td><td class="paramname">exp</td><td>the exponent. </td></tr>
    461     <tr><td class="paramdir">[in]</td><td class="paramname">mod</td><td>The modulo. </td></tr>
    462   </table>
    463   </dd>
    464 </dl>
    465 
    466 </div>
    467 </div>
    468 <a id="a3d4ee194f13293e61bddf243e4241b4c"></a>
    469 <h2 class="memtitle"><span class="permalink"><a href="#a3d4ee194f13293e61bddf243e4241b4c">&#9670;&nbsp;</a></span>VliModInv()</h2>
    470 
    471 <div class="memitem">
    472 <div class="memproto">
    473       <table class="memname">
    474         <tr>
    475           <td class="memname">void VliModInv </td>
    476           <td>(</td>
    477           <td class="paramtype"><a class="el" href="struct_very_large_int.html">VeryLargeInt</a> *&#160;</td>
    478           <td class="paramname"><em>result</em>, </td>
    479         </tr>
    480         <tr>
    481           <td class="paramkey"></td>
    482           <td></td>
    483           <td class="paramtype"><a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const *&#160;</td>
    484           <td class="paramname"><em>input</em>, </td>
    485         </tr>
    486         <tr>
    487           <td class="paramkey"></td>
    488           <td></td>
    489           <td class="paramtype"><a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const *&#160;</td>
    490           <td class="paramname"><em>mod</em>&#160;</td>
    491         </tr>
    492         <tr>
    493           <td></td>
    494           <td>)</td>
    495           <td></td><td></td>
    496         </tr>
    497       </table>
    498 </div><div class="memdoc">
    499 
    500 <p>Invert a large integer modulo a value. </p>
    501 <dl class="params"><dt>Parameters</dt><dd>
    502   <table class="params">
    503     <tr><td class="paramdir">[out]</td><td class="paramname">result</td><td>target. </td></tr>
    504     <tr><td class="paramdir">[in]</td><td class="paramname">input</td><td>the value to invert. </td></tr>
    505     <tr><td class="paramdir">[in]</td><td class="paramname">mod</td><td>The modulo. </td></tr>
    506   </table>
    507   </dd>
    508 </dl>
    509 
    510 </div>
    511 </div>
    512 <a id="a112a5d4118e101ec539e9669ebd4fdf9"></a>
    513 <h2 class="memtitle"><span class="permalink"><a href="#a112a5d4118e101ec539e9669ebd4fdf9">&#9670;&nbsp;</a></span>VliModMul()</h2>
    514 
    515 <div class="memitem">
    516 <div class="memproto">
    517       <table class="memname">
    518         <tr>
    519           <td class="memname">void VliModMul </td>
    520           <td>(</td>
    521           <td class="paramtype"><a class="el" href="struct_very_large_int.html">VeryLargeInt</a> *&#160;</td>
    522           <td class="paramname"><em>result</em>, </td>
    523         </tr>
    524         <tr>
    525           <td class="paramkey"></td>
    526           <td></td>
    527           <td class="paramtype"><a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const *&#160;</td>
    528           <td class="paramname"><em>left</em>, </td>
    529         </tr>
    530         <tr>
    531           <td class="paramkey"></td>
    532           <td></td>
    533           <td class="paramtype"><a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const *&#160;</td>
    534           <td class="paramname"><em>right</em>, </td>
    535         </tr>
    536         <tr>
    537           <td class="paramkey"></td>
    538           <td></td>
    539           <td class="paramtype"><a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const *&#160;</td>
    540           <td class="paramname"><em>mod</em>&#160;</td>
    541         </tr>
    542         <tr>
    543           <td></td>
    544           <td>)</td>
    545           <td></td><td></td>
    546         </tr>
    547       </table>
    548 </div><div class="memdoc">
    549 
    550 <p>Multiply two large integers modulo a value. </p>
    551 <dl class="params"><dt>Parameters</dt><dd>
    552   <table class="params">
    553     <tr><td class="paramdir">[out]</td><td class="paramname">result</td><td>target. </td></tr>
    554     <tr><td class="paramdir">[in]</td><td class="paramname">left</td><td>The first operand to be multiplied. </td></tr>
    555     <tr><td class="paramdir">[in]</td><td class="paramname">right</td><td>The second operand to be multiplied. </td></tr>
    556     <tr><td class="paramdir">[in]</td><td class="paramname">mod</td><td>The modulo. </td></tr>
    557   </table>
    558   </dd>
    559 </dl>
    560 
    561 </div>
    562 </div>
    563 <a id="accf6070832e479e01c1268b0414645b9"></a>
    564 <h2 class="memtitle"><span class="permalink"><a href="#accf6070832e479e01c1268b0414645b9">&#9670;&nbsp;</a></span>VliModSquare()</h2>
    565 
    566 <div class="memitem">
    567 <div class="memproto">
    568       <table class="memname">
    569         <tr>
    570           <td class="memname">void VliModSquare </td>
    571           <td>(</td>
    572           <td class="paramtype"><a class="el" href="struct_very_large_int.html">VeryLargeInt</a> *&#160;</td>
    573           <td class="paramname"><em>result</em>, </td>
    574         </tr>
    575         <tr>
    576           <td class="paramkey"></td>
    577           <td></td>
    578           <td class="paramtype"><a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const *&#160;</td>
    579           <td class="paramname"><em>input</em>, </td>
    580         </tr>
    581         <tr>
    582           <td class="paramkey"></td>
    583           <td></td>
    584           <td class="paramtype"><a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const *&#160;</td>
    585           <td class="paramname"><em>mod</em>&#160;</td>
    586         </tr>
    587         <tr>
    588           <td></td>
    589           <td>)</td>
    590           <td></td><td></td>
    591         </tr>
    592       </table>
    593 </div><div class="memdoc">
    594 
    595 <p>Square a large integer modulo a value. </p>
    596 <dl class="params"><dt>Parameters</dt><dd>
    597   <table class="params">
    598     <tr><td class="paramdir">[out]</td><td class="paramname">result</td><td>target. </td></tr>
    599     <tr><td class="paramdir">[in]</td><td class="paramname">input</td><td>the base. </td></tr>
    600     <tr><td class="paramdir">[in]</td><td class="paramname">mod</td><td>The modulo. </td></tr>
    601   </table>
    602   </dd>
    603 </dl>
    604 
    605 </div>
    606 </div>
    607 <a id="aa53a875972ac2f10852fcaca92de2b40"></a>
    608 <h2 class="memtitle"><span class="permalink"><a href="#aa53a875972ac2f10852fcaca92de2b40">&#9670;&nbsp;</a></span>VliModSub()</h2>
    609 
    610 <div class="memitem">
    611 <div class="memproto">
    612       <table class="memname">
    613         <tr>
    614           <td class="memname">void VliModSub </td>
    615           <td>(</td>
    616           <td class="paramtype"><a class="el" href="struct_very_large_int.html">VeryLargeInt</a> *&#160;</td>
    617           <td class="paramname"><em>result</em>, </td>
    618         </tr>
    619         <tr>
    620           <td class="paramkey"></td>
    621           <td></td>
    622           <td class="paramtype"><a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const *&#160;</td>
    623           <td class="paramname"><em>left</em>, </td>
    624         </tr>
    625         <tr>
    626           <td class="paramkey"></td>
    627           <td></td>
    628           <td class="paramtype"><a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const *&#160;</td>
    629           <td class="paramname"><em>right</em>, </td>
    630         </tr>
    631         <tr>
    632           <td class="paramkey"></td>
    633           <td></td>
    634           <td class="paramtype"><a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const *&#160;</td>
    635           <td class="paramname"><em>mod</em>&#160;</td>
    636         </tr>
    637         <tr>
    638           <td></td>
    639           <td>)</td>
    640           <td></td><td></td>
    641         </tr>
    642       </table>
    643 </div><div class="memdoc">
    644 
    645 <p>Subtract two large integers modulo a value. </p>
    646 <dl class="params"><dt>Parameters</dt><dd>
    647   <table class="params">
    648     <tr><td class="paramdir">[out]</td><td class="paramname">result</td><td>target. </td></tr>
    649     <tr><td class="paramdir">[in]</td><td class="paramname">left</td><td>The operand to be subtracted from. </td></tr>
    650     <tr><td class="paramdir">[in]</td><td class="paramname">right</td><td>The operand to subtract. </td></tr>
    651     <tr><td class="paramdir">[in]</td><td class="paramname">mod</td><td>The modulo. </td></tr>
    652   </table>
    653   </dd>
    654 </dl>
    655 
    656 </div>
    657 </div>
    658 <a id="ab6d63a825df6f224fe37c76b6bb67bcf"></a>
    659 <h2 class="memtitle"><span class="permalink"><a href="#ab6d63a825df6f224fe37c76b6bb67bcf">&#9670;&nbsp;</a></span>VliMul()</h2>
    660 
    661 <div class="memitem">
    662 <div class="memproto">
    663       <table class="memname">
    664         <tr>
    665           <td class="memname">void VliMul </td>
    666           <td>(</td>
    667           <td class="paramtype"><a class="el" href="struct_very_large_int_product.html">VeryLargeIntProduct</a> *&#160;</td>
    668           <td class="paramname"><em>result</em>, </td>
    669         </tr>
    670         <tr>
    671           <td class="paramkey"></td>
    672           <td></td>
    673           <td class="paramtype"><a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const *&#160;</td>
    674           <td class="paramname"><em>left</em>, </td>
    675         </tr>
    676         <tr>
    677           <td class="paramkey"></td>
    678           <td></td>
    679           <td class="paramtype"><a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const *&#160;</td>
    680           <td class="paramname"><em>right</em>&#160;</td>
    681         </tr>
    682         <tr>
    683           <td></td>
    684           <td>)</td>
    685           <td></td><td></td>
    686         </tr>
    687       </table>
    688 </div><div class="memdoc">
    689 
    690 <p>Multiply two large integers. </p>
    691 <dl class="params"><dt>Parameters</dt><dd>
    692   <table class="params">
    693     <tr><td class="paramdir">[out]</td><td class="paramname">result</td><td>of multiplying left and right. </td></tr>
    694     <tr><td class="paramdir">[in]</td><td class="paramname">left</td><td>The first operand to be multiplied. </td></tr>
    695     <tr><td class="paramdir">[in]</td><td class="paramname">right</td><td>The second operand to be multiplied. </td></tr>
    696   </table>
    697   </dd>
    698 </dl>
    699 
    700 </div>
    701 </div>
    702 <a id="a10fc791278e51543fc685d5a4903fcd1"></a>
    703 <h2 class="memtitle"><span class="permalink"><a href="#a10fc791278e51543fc685d5a4903fcd1">&#9670;&nbsp;</a></span>VliRand()</h2>
    704 
    705 <div class="memitem">
    706 <div class="memproto">
    707       <table class="memname">
    708         <tr>
    709           <td class="memname">int VliRand </td>
    710           <td>(</td>
    711           <td class="paramtype"><a class="el" href="struct_very_large_int.html">VeryLargeInt</a> *&#160;</td>
    712           <td class="paramname"><em>result</em>, </td>
    713         </tr>
    714         <tr>
    715           <td class="paramkey"></td>
    716           <td></td>
    717           <td class="paramtype"><a class="el" href="group___epid_common.html#ga6119a2c0323a3fca9e502b24bc378c2c">BitSupplier</a>&#160;</td>
    718           <td class="paramname"><em>rnd_func</em>, </td>
    719         </tr>
    720         <tr>
    721           <td class="paramkey"></td>
    722           <td></td>
    723           <td class="paramtype">void *&#160;</td>
    724           <td class="paramname"><em>rnd_param</em>&#160;</td>
    725         </tr>
    726         <tr>
    727           <td></td>
    728           <td>)</td>
    729           <td></td><td></td>
    730         </tr>
    731       </table>
    732 </div><div class="memdoc">
    733 
    734 <p>Generate a random large integer. </p>
    735 <dl class="params"><dt>Parameters</dt><dd>
    736   <table class="params">
    737     <tr><td class="paramdir">[in]</td><td class="paramname">result</td><td>the random value. </td></tr>
    738     <tr><td class="paramdir">[in]</td><td class="paramname">rnd_func</td><td>Random number generator. </td></tr>
    739     <tr><td class="paramdir">[in]</td><td class="paramname">rnd_param</td><td>Pass through context data for rnd_func. </td></tr>
    740   </table>
    741   </dd>
    742 </dl>
    743 <dl class="section return"><dt>Returns</dt><dd>A value different from zero (i.e., true) if on success. Zero (i.e., false) otherwise. </dd></dl>
    744 
    745 </div>
    746 </div>
    747 <a id="a4c7e60c47b82e5b2cf823d51b3a9fdcc"></a>
    748 <h2 class="memtitle"><span class="permalink"><a href="#a4c7e60c47b82e5b2cf823d51b3a9fdcc">&#9670;&nbsp;</a></span>VliRShift()</h2>
    749 
    750 <div class="memitem">
    751 <div class="memproto">
    752       <table class="memname">
    753         <tr>
    754           <td class="memname">void VliRShift </td>
    755           <td>(</td>
    756           <td class="paramtype"><a class="el" href="struct_very_large_int.html">VeryLargeInt</a> *&#160;</td>
    757           <td class="paramname"><em>result</em>, </td>
    758         </tr>
    759         <tr>
    760           <td class="paramkey"></td>
    761           <td></td>
    762           <td class="paramtype"><a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const *&#160;</td>
    763           <td class="paramname"><em>in</em>, </td>
    764         </tr>
    765         <tr>
    766           <td class="paramkey"></td>
    767           <td></td>
    768           <td class="paramtype">uint32_t&#160;</td>
    769           <td class="paramname"><em>shift</em>&#160;</td>
    770         </tr>
    771         <tr>
    772           <td></td>
    773           <td>)</td>
    774           <td></td><td></td>
    775         </tr>
    776       </table>
    777 </div><div class="memdoc">
    778 
    779 <p>Right shift a large integers. </p>
    780 <dl class="params"><dt>Parameters</dt><dd>
    781   <table class="params">
    782     <tr><td class="paramdir">[out]</td><td class="paramname">result</td><td>target. </td></tr>
    783     <tr><td class="paramdir">[in]</td><td class="paramname">in</td><td>The value to be shifted. </td></tr>
    784     <tr><td class="paramdir">[in]</td><td class="paramname">shift</td><td>The number of bits to shift. </td></tr>
    785   </table>
    786   </dd>
    787 </dl>
    788 
    789 </div>
    790 </div>
    791 <a id="a9a1df0e7770aa1421e41b87965e71425"></a>
    792 <h2 class="memtitle"><span class="permalink"><a href="#a9a1df0e7770aa1421e41b87965e71425">&#9670;&nbsp;</a></span>VliSet()</h2>
    793 
    794 <div class="memitem">
    795 <div class="memproto">
    796       <table class="memname">
    797         <tr>
    798           <td class="memname">void VliSet </td>
    799           <td>(</td>
    800           <td class="paramtype"><a class="el" href="struct_very_large_int.html">VeryLargeInt</a> *&#160;</td>
    801           <td class="paramname"><em>result</em>, </td>
    802         </tr>
    803         <tr>
    804           <td class="paramkey"></td>
    805           <td></td>
    806           <td class="paramtype"><a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const *&#160;</td>
    807           <td class="paramname"><em>in</em>&#160;</td>
    808         </tr>
    809         <tr>
    810           <td></td>
    811           <td>)</td>
    812           <td></td><td></td>
    813         </tr>
    814       </table>
    815 </div><div class="memdoc">
    816 
    817 <p>Set a large integer's value. </p>
    818 <dl class="params"><dt>Parameters</dt><dd>
    819   <table class="params">
    820     <tr><td class="paramdir">[out]</td><td class="paramname">result</td><td>target. </td></tr>
    821     <tr><td class="paramdir">[in]</td><td class="paramname">in</td><td>value to set. </td></tr>
    822   </table>
    823   </dd>
    824 </dl>
    825 
    826 </div>
    827 </div>
    828 <a id="ac47d57834c67877c10ecdc230cdaf503"></a>
    829 <h2 class="memtitle"><span class="permalink"><a href="#ac47d57834c67877c10ecdc230cdaf503">&#9670;&nbsp;</a></span>VliSub()</h2>
    830 
    831 <div class="memitem">
    832 <div class="memproto">
    833       <table class="memname">
    834         <tr>
    835           <td class="memname">uint32_t VliSub </td>
    836           <td>(</td>
    837           <td class="paramtype"><a class="el" href="struct_very_large_int.html">VeryLargeInt</a> *&#160;</td>
    838           <td class="paramname"><em>result</em>, </td>
    839         </tr>
    840         <tr>
    841           <td class="paramkey"></td>
    842           <td></td>
    843           <td class="paramtype"><a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const *&#160;</td>
    844           <td class="paramname"><em>left</em>, </td>
    845         </tr>
    846         <tr>
    847           <td class="paramkey"></td>
    848           <td></td>
    849           <td class="paramtype"><a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const *&#160;</td>
    850           <td class="paramname"><em>right</em>&#160;</td>
    851         </tr>
    852         <tr>
    853           <td></td>
    854           <td>)</td>
    855           <td></td><td></td>
    856         </tr>
    857       </table>
    858 </div><div class="memdoc">
    859 
    860 <p>Subtract two large integers. </p>
    861 <dl class="params"><dt>Parameters</dt><dd>
    862   <table class="params">
    863     <tr><td class="paramdir">[out]</td><td class="paramname">result</td><td>target. </td></tr>
    864     <tr><td class="paramdir">[in]</td><td class="paramname">left</td><td>The operand to be subtracted from. </td></tr>
    865     <tr><td class="paramdir">[in]</td><td class="paramname">right</td><td>The operand to subtract. </td></tr>
    866   </table>
    867   </dd>
    868 </dl>
    869 <dl class="section return"><dt>Returns</dt><dd>1 on success, 0 on failure </dd></dl>
    870 
    871 </div>
    872 </div>
    873 <a id="a80d1a80f5a21437354ee185923621d66"></a>
    874 <h2 class="memtitle"><span class="permalink"><a href="#a80d1a80f5a21437354ee185923621d66">&#9670;&nbsp;</a></span>VliTestBit()</h2>
    875 
    876 <div class="memitem">
    877 <div class="memproto">
    878       <table class="memname">
    879         <tr>
    880           <td class="memname">uint32_t VliTestBit </td>
    881           <td>(</td>
    882           <td class="paramtype"><a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const *&#160;</td>
    883           <td class="paramname"><em>in</em>, </td>
    884         </tr>
    885         <tr>
    886           <td class="paramkey"></td>
    887           <td></td>
    888           <td class="paramtype">uint32_t&#160;</td>
    889           <td class="paramname"><em>bit</em>&#160;</td>
    890         </tr>
    891         <tr>
    892           <td></td>
    893           <td>)</td>
    894           <td></td><td></td>
    895         </tr>
    896       </table>
    897 </div><div class="memdoc">
    898 
    899 <p>Test the value of a bit in a large integer. </p>
    900 <dl class="params"><dt>Parameters</dt><dd>
    901   <table class="params">
    902     <tr><td class="paramdir">[in]</td><td class="paramname">in</td><td>the value to test. </td></tr>
    903     <tr><td class="paramdir">[in]</td><td class="paramname">bit</td><td>the bit index.</td></tr>
    904   </table>
    905   </dd>
    906 </dl>
    907 <dl class="section return"><dt>Returns</dt><dd>value of the bit (1 or 0). </dd></dl>
    908 
    909 </div>
    910 </div>
    911 </div><!-- contents -->
    912 </div><!-- doc-content -->
    913 <!-- HTML footer for doxygen 1.8.10-->
    914 <!-- start footer part -->
    915 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
    916   <ul>
    917     <li class="navelem"><a class="el" href="dir_12b90d9c027aaf878a834df729679a56.html">epid</a></li><li class="navelem"><a class="el" href="dir_512d3e62841a8535b716ec4cf8b9e950.html">member</a></li><li class="navelem"><a class="el" href="dir_ea12d375fc1eb79df248c0adf953af4f.html">tiny</a></li><li class="navelem"><a class="el" href="dir_5f2fc2cf41db41de2b55e03ffa7a1d16.html">math</a></li><li class="navelem"><a class="el" href="vli_8h.html">vli.h</a></li>
    918     <li class="footer">
    919       &copy; 2016-2017 Intel Corporation
    920     </li>
    921   </ul>
    922 </div>
    923 </body>
    924 </html>
    925