• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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>
75Functions</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