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® 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&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® Enhanced Privacy ID SDK</a> 35 <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&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 <stdint.h></code><br /> 72<code>#include "<a class="el" href="bitsupplier_8h.html">epid/common/bitsupplier.h</a>"</code><br /> 73</div><table class="memberdecls"> 74<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> 75Functions</h2></td></tr> 76<tr class="memitem:a566cfdc23f1c35230891d53139850032"><td class="memItemLeft" align="right" valign="top">uint32_t </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"> </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"> </td></tr> 79<tr class="memitem:ab6d63a825df6f224fe37c76b6bb67bcf"><td class="memItemLeft" align="right" valign="top">void </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"> </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"> </td></tr> 82<tr class="memitem:a4c7e60c47b82e5b2cf823d51b3a9fdcc"><td class="memItemLeft" align="right" valign="top">void </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"> </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"> </td></tr> 85<tr class="memitem:ac47d57834c67877c10ecdc230cdaf503"><td class="memItemLeft" align="right" valign="top">uint32_t </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"> </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"> </td></tr> 88<tr class="memitem:a9a1df0e7770aa1421e41b87965e71425"><td class="memItemLeft" align="right" valign="top">void </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"> </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"> </td></tr> 91<tr class="memitem:ad1e2e5fe5fc466eff75dbe70fba3169f"><td class="memItemLeft" align="right" valign="top">void </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"> </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"> </td></tr> 94<tr class="memitem:a8f6a41541103b1bde8428ea7f4b816fa"><td class="memItemLeft" align="right" valign="top">int </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"> </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"> </td></tr> 97<tr class="memitem:a426db811cf4ee822bd4b6863f2e51d8c"><td class="memItemLeft" align="right" valign="top">void </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"> </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"> </td></tr> 100<tr class="memitem:a80d1a80f5a21437354ee185923621d66"><td class="memItemLeft" align="right" valign="top">uint32_t </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"> </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"> </td></tr> 103<tr class="memitem:a10fc791278e51543fc685d5a4903fcd1"><td class="memItemLeft" align="right" valign="top">int </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"> </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"> </td></tr> 106<tr class="memitem:a1f6ded73c6bb3dc340efd2a8978f8d7a"><td class="memItemLeft" align="right" valign="top">int </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"> </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"> </td></tr> 109<tr class="memitem:a6373f1d28198a0f34f220bfcc2ecf040"><td class="memItemLeft" align="right" valign="top">void </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"> </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"> </td></tr> 112<tr class="memitem:aa53a875972ac2f10852fcaca92de2b40"><td class="memItemLeft" align="right" valign="top">void </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"> </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"> </td></tr> 115<tr class="memitem:a112a5d4118e101ec539e9669ebd4fdf9"><td class="memItemLeft" align="right" valign="top">void </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"> </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"> </td></tr> 118<tr class="memitem:aa1f2257e949c0c4f26b24aec95e01452"><td class="memItemLeft" align="right" valign="top">void </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"> </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"> </td></tr> 121<tr class="memitem:a3d4ee194f13293e61bddf243e4241b4c"><td class="memItemLeft" align="right" valign="top">void </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"> </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"> </td></tr> 124<tr class="memitem:accf6070832e479e01c1268b0414645b9"><td class="memItemLeft" align="right" valign="top">void </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"> </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"> </td></tr> 127<tr class="memitem:a5280e583a19e61ad815b02906c082033"><td class="memItemLeft" align="right" valign="top">void </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"> </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"> </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">◆ </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> * </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 * </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 * </td> 156 <td class="paramname"><em>right</em> </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">◆ </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> * </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">◆ </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 * </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 * </td> 221 <td class="paramname"><em>right</em> </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">◆ </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> * </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 * </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 * </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 </td> 271 <td class="paramname"><em>truth_val</em> </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">◆ </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 * </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">◆ </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> * </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 * </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 * </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 * </td> 349 <td class="paramname"><em>mod</em> </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">◆ </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> * </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 * </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 * </td> 394 <td class="paramname"><em>mod</em> </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">◆ </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> * </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 * </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 * </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 * </td> 445 <td class="paramname"><em>mod</em> </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">◆ </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> * </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 * </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 * </td> 490 <td class="paramname"><em>mod</em> </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">◆ </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> * </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 * </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 * </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 * </td> 540 <td class="paramname"><em>mod</em> </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">◆ </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> * </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 * </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 * </td> 585 <td class="paramname"><em>mod</em> </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">◆ </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> * </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 * </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 * </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 * </td> 635 <td class="paramname"><em>mod</em> </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">◆ </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> * </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 * </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 * </td> 680 <td class="paramname"><em>right</em> </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">◆ </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> * </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> </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 * </td> 724 <td class="paramname"><em>rnd_param</em> </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">◆ </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> * </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 * </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 </td> 769 <td class="paramname"><em>shift</em> </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">◆ </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> * </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 * </td> 807 <td class="paramname"><em>in</em> </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">◆ </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> * </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 * </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 * </td> 850 <td class="paramname"><em>right</em> </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">◆ </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 * </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 </td> 889 <td class="paramname"><em>bit</em> </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 © 2016-2017 Intel Corporation 920 </li> 921 </ul> 922</div> 923</body> 924</html> 925