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/fq2.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('fq2_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">fq2.h File Reference</div> </div> 66 </div><!--header--> 67 <div class="contents"> 68 69 <p>Definition of Fq2 math. 70 <a href="#details">More...</a></p> 71 <div class="textblock"><code>#include <stdint.h></code><br /> 72 </div><table class="memberdecls"> 73 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> 74 Functions</h2></td></tr> 75 <tr class="memitem:a6c67364f78e6946a7ad3af2c86baf1a5"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="fq2_8h.html#a6c67364f78e6946a7ad3af2c86baf1a5">Fq2Cp</a> (<a class="el" href="struct_fq2_elem.html">Fq2Elem</a> *result, <a class="el" href="struct_fq2_elem.html">Fq2Elem</a> const *in)</td></tr> 76 <tr class="memdesc:a6c67364f78e6946a7ad3af2c86baf1a5"><td class="mdescLeft"> </td><td class="mdescRight">Copy an element's value. <a href="#a6c67364f78e6946a7ad3af2c86baf1a5">More...</a><br /></td></tr> 77 <tr class="separator:a6c67364f78e6946a7ad3af2c86baf1a5"><td class="memSeparator" colspan="2"> </td></tr> 78 <tr class="memitem:a9165c1d2deef46ceb9af238928b2ec5c"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="fq2_8h.html#a9165c1d2deef46ceb9af238928b2ec5c">Fq2Set</a> (<a class="el" href="struct_fq2_elem.html">Fq2Elem</a> *result, uint32_t in)</td></tr> 79 <tr class="memdesc:a9165c1d2deef46ceb9af238928b2ec5c"><td class="mdescLeft"> </td><td class="mdescRight">Set an element's value. <a href="#a9165c1d2deef46ceb9af238928b2ec5c">More...</a><br /></td></tr> 80 <tr class="separator:a9165c1d2deef46ceb9af238928b2ec5c"><td class="memSeparator" colspan="2"> </td></tr> 81 <tr class="memitem:a59d3d8212ffd5bf75f9b6fd85b896654"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="fq2_8h.html#a59d3d8212ffd5bf75f9b6fd85b896654">Fq2Clear</a> (<a class="el" href="struct_fq2_elem.html">Fq2Elem</a> *result)</td></tr> 82 <tr class="memdesc:a59d3d8212ffd5bf75f9b6fd85b896654"><td class="mdescLeft"> </td><td class="mdescRight">Clear an element's value. <a href="#a59d3d8212ffd5bf75f9b6fd85b896654">More...</a><br /></td></tr> 83 <tr class="separator:a59d3d8212ffd5bf75f9b6fd85b896654"><td class="memSeparator" colspan="2"> </td></tr> 84 <tr class="memitem:afcaaf75460f36b85386cd1959b904f57"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="fq2_8h.html#afcaaf75460f36b85386cd1959b904f57">Fq2Add</a> (<a class="el" href="struct_fq2_elem.html">Fq2Elem</a> *result, <a class="el" href="struct_fq2_elem.html">Fq2Elem</a> const *left, <a class="el" href="struct_fq2_elem.html">Fq2Elem</a> const *right)</td></tr> 85 <tr class="memdesc:afcaaf75460f36b85386cd1959b904f57"><td class="mdescLeft"> </td><td class="mdescRight">Add two elements of Fq2. <a href="#afcaaf75460f36b85386cd1959b904f57">More...</a><br /></td></tr> 86 <tr class="separator:afcaaf75460f36b85386cd1959b904f57"><td class="memSeparator" colspan="2"> </td></tr> 87 <tr class="memitem:acecbff7a5a8cec15e24c47663957c05a"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="fq2_8h.html#acecbff7a5a8cec15e24c47663957c05a">Fq2Exp</a> (<a class="el" href="struct_fq2_elem.html">Fq2Elem</a> *result, <a class="el" href="struct_fq2_elem.html">Fq2Elem</a> const *base, <a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const *exp)</td></tr> 88 <tr class="memdesc:acecbff7a5a8cec15e24c47663957c05a"><td class="mdescLeft"> </td><td class="mdescRight">Exponentiate an element of Fq2 by a large integer. <a href="#acecbff7a5a8cec15e24c47663957c05a">More...</a><br /></td></tr> 89 <tr class="separator:acecbff7a5a8cec15e24c47663957c05a"><td class="memSeparator" colspan="2"> </td></tr> 90 <tr class="memitem:ae27a9400b5d8fbd0b720a449c60ad146"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="fq2_8h.html#ae27a9400b5d8fbd0b720a449c60ad146">Fq2Sub</a> (<a class="el" href="struct_fq2_elem.html">Fq2Elem</a> *result, <a class="el" href="struct_fq2_elem.html">Fq2Elem</a> const *left, <a class="el" href="struct_fq2_elem.html">Fq2Elem</a> const *right)</td></tr> 91 <tr class="memdesc:ae27a9400b5d8fbd0b720a449c60ad146"><td class="mdescLeft"> </td><td class="mdescRight">Subtract two elements of Fq2. <a href="#ae27a9400b5d8fbd0b720a449c60ad146">More...</a><br /></td></tr> 92 <tr class="separator:ae27a9400b5d8fbd0b720a449c60ad146"><td class="memSeparator" colspan="2"> </td></tr> 93 <tr class="memitem:a876f870f84cd8ab697176dbb42591565"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="fq2_8h.html#a876f870f84cd8ab697176dbb42591565">Fq2Mul</a> (<a class="el" href="struct_fq2_elem.html">Fq2Elem</a> *result, <a class="el" href="struct_fq2_elem.html">Fq2Elem</a> const *left, <a class="el" href="struct_fq2_elem.html">Fq2Elem</a> const *right)</td></tr> 94 <tr class="memdesc:a876f870f84cd8ab697176dbb42591565"><td class="mdescLeft"> </td><td class="mdescRight">Multiply two elements of Fq2. <a href="#a876f870f84cd8ab697176dbb42591565">More...</a><br /></td></tr> 95 <tr class="separator:a876f870f84cd8ab697176dbb42591565"><td class="memSeparator" colspan="2"> </td></tr> 96 <tr class="memitem:a756666161516fe541b26a4082f69343d"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="fq2_8h.html#a756666161516fe541b26a4082f69343d">Fq2Inv</a> (<a class="el" href="struct_fq2_elem.html">Fq2Elem</a> *result, <a class="el" href="struct_fq2_elem.html">Fq2Elem</a> const *in)</td></tr> 97 <tr class="memdesc:a756666161516fe541b26a4082f69343d"><td class="mdescLeft"> </td><td class="mdescRight">Invert an element of Fq2. <a href="#a756666161516fe541b26a4082f69343d">More...</a><br /></td></tr> 98 <tr class="separator:a756666161516fe541b26a4082f69343d"><td class="memSeparator" colspan="2"> </td></tr> 99 <tr class="memitem:a5d523d5d6d4159c71f58945af82a7936"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="fq2_8h.html#a5d523d5d6d4159c71f58945af82a7936">Fq2Neg</a> (<a class="el" href="struct_fq2_elem.html">Fq2Elem</a> *result, <a class="el" href="struct_fq2_elem.html">Fq2Elem</a> const *in)</td></tr> 100 <tr class="memdesc:a5d523d5d6d4159c71f58945af82a7936"><td class="mdescLeft"> </td><td class="mdescRight">Negate an element of Fq2. <a href="#a5d523d5d6d4159c71f58945af82a7936">More...</a><br /></td></tr> 101 <tr class="separator:a5d523d5d6d4159c71f58945af82a7936"><td class="memSeparator" colspan="2"> </td></tr> 102 <tr class="memitem:adc0d02ddec564ca86b0ef53d7ff79864"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="fq2_8h.html#adc0d02ddec564ca86b0ef53d7ff79864">Fq2Conj</a> (<a class="el" href="struct_fq2_elem.html">Fq2Elem</a> *result, <a class="el" href="struct_fq2_elem.html">Fq2Elem</a> const *in)</td></tr> 103 <tr class="memdesc:adc0d02ddec564ca86b0ef53d7ff79864"><td class="mdescLeft"> </td><td class="mdescRight">Calculate the conjugate of an element of Fq2. <a href="#adc0d02ddec564ca86b0ef53d7ff79864">More...</a><br /></td></tr> 104 <tr class="separator:adc0d02ddec564ca86b0ef53d7ff79864"><td class="memSeparator" colspan="2"> </td></tr> 105 <tr class="memitem:a3c6583dd519a3dd7efb26db5e9a59036"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="fq2_8h.html#a3c6583dd519a3dd7efb26db5e9a59036">Fq2Square</a> (<a class="el" href="struct_fq2_elem.html">Fq2Elem</a> *result, <a class="el" href="struct_fq2_elem.html">Fq2Elem</a> const *in)</td></tr> 106 <tr class="memdesc:a3c6583dd519a3dd7efb26db5e9a59036"><td class="mdescLeft"> </td><td class="mdescRight">Square an element of Fq2. <a href="#a3c6583dd519a3dd7efb26db5e9a59036">More...</a><br /></td></tr> 107 <tr class="separator:a3c6583dd519a3dd7efb26db5e9a59036"><td class="memSeparator" colspan="2"> </td></tr> 108 <tr class="memitem:af45903d791794faabedb00f760885e8c"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="fq2_8h.html#af45903d791794faabedb00f760885e8c">Fq2MulScalar</a> (<a class="el" href="struct_fq2_elem.html">Fq2Elem</a> *result, <a class="el" href="struct_fq2_elem.html">Fq2Elem</a> const *left, <a class="el" href="struct_fq_elem.html">FqElem</a> const *right)</td></tr> 109 <tr class="memdesc:af45903d791794faabedb00f760885e8c"><td class="mdescLeft"> </td><td class="mdescRight">Multiply an element of Fq2 by and element of Fq. <a href="#af45903d791794faabedb00f760885e8c">More...</a><br /></td></tr> 110 <tr class="separator:af45903d791794faabedb00f760885e8c"><td class="memSeparator" colspan="2"> </td></tr> 111 <tr class="memitem:ad94b155025e7a11b9c5b60032fde4491"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="fq2_8h.html#ad94b155025e7a11b9c5b60032fde4491">Fq2CondSet</a> (<a class="el" href="struct_fq2_elem.html">Fq2Elem</a> *result, <a class="el" href="struct_fq2_elem.html">Fq2Elem</a> const *true_val, <a class="el" href="struct_fq2_elem.html">Fq2Elem</a> const *false_val, int truth_val)</td></tr> 112 <tr class="memdesc:ad94b155025e7a11b9c5b60032fde4491"><td class="mdescLeft"> </td><td class="mdescRight">Conditionally Set an element's value to one of two values. <a href="#ad94b155025e7a11b9c5b60032fde4491">More...</a><br /></td></tr> 113 <tr class="separator:ad94b155025e7a11b9c5b60032fde4491"><td class="memSeparator" colspan="2"> </td></tr> 114 <tr class="memitem:a3dc330cff53539b51183c43085275f97"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="fq2_8h.html#a3dc330cff53539b51183c43085275f97">Fq2Eq</a> (<a class="el" href="struct_fq2_elem.html">Fq2Elem</a> const *left, <a class="el" href="struct_fq2_elem.html">Fq2Elem</a> const *right)</td></tr> 115 <tr class="memdesc:a3dc330cff53539b51183c43085275f97"><td class="mdescLeft"> </td><td class="mdescRight">Test if two elements in Fq2 are equal. <a href="#a3dc330cff53539b51183c43085275f97">More...</a><br /></td></tr> 116 <tr class="separator:a3dc330cff53539b51183c43085275f97"><td class="memSeparator" colspan="2"> </td></tr> 117 <tr class="memitem:afeeb4e14ddf9f39f860661c599923c58"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="fq2_8h.html#afeeb4e14ddf9f39f860661c599923c58">Fq2MulXi</a> (<a class="el" href="struct_fq2_elem.html">Fq2Elem</a> *result, <a class="el" href="struct_fq2_elem.html">Fq2Elem</a> const *in)</td></tr> 118 <tr class="memdesc:afeeb4e14ddf9f39f860661c599923c58"><td class="mdescLeft"> </td><td class="mdescRight">Multiply an element of Fq2 by xi. <a href="#afeeb4e14ddf9f39f860661c599923c58">More...</a><br /></td></tr> 119 <tr class="separator:afeeb4e14ddf9f39f860661c599923c58"><td class="memSeparator" colspan="2"> </td></tr> 120 <tr class="memitem:a610c9d7c2afa63b1d48da30c684d6e27"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="fq2_8h.html#a610c9d7c2afa63b1d48da30c684d6e27">Fq2IsZero</a> (<a class="el" href="struct_fq2_elem.html">Fq2Elem</a> const *value)</td></tr> 121 <tr class="memdesc:a610c9d7c2afa63b1d48da30c684d6e27"><td class="mdescLeft"> </td><td class="mdescRight">Test if an element is zero. <a href="#a610c9d7c2afa63b1d48da30c684d6e27">More...</a><br /></td></tr> 122 <tr class="separator:a610c9d7c2afa63b1d48da30c684d6e27"><td class="memSeparator" colspan="2"> </td></tr> 123 </table> 124 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> 125 <div class="textblock"><p>Definition of Fq2 math. </p> 126 </div><h2 class="groupheader">Function Documentation</h2> 127 <a id="afcaaf75460f36b85386cd1959b904f57"></a> 128 <h2 class="memtitle"><span class="permalink"><a href="#afcaaf75460f36b85386cd1959b904f57">◆ </a></span>Fq2Add()</h2> 129 130 <div class="memitem"> 131 <div class="memproto"> 132 <table class="memname"> 133 <tr> 134 <td class="memname">void Fq2Add </td> 135 <td>(</td> 136 <td class="paramtype"><a class="el" href="struct_fq2_elem.html">Fq2Elem</a> * </td> 137 <td class="paramname"><em>result</em>, </td> 138 </tr> 139 <tr> 140 <td class="paramkey"></td> 141 <td></td> 142 <td class="paramtype"><a class="el" href="struct_fq2_elem.html">Fq2Elem</a> const * </td> 143 <td class="paramname"><em>left</em>, </td> 144 </tr> 145 <tr> 146 <td class="paramkey"></td> 147 <td></td> 148 <td class="paramtype"><a class="el" href="struct_fq2_elem.html">Fq2Elem</a> const * </td> 149 <td class="paramname"><em>right</em> </td> 150 </tr> 151 <tr> 152 <td></td> 153 <td>)</td> 154 <td></td><td></td> 155 </tr> 156 </table> 157 </div><div class="memdoc"> 158 159 <p>Add two elements of Fq2. </p> 160 <dl class="params"><dt>Parameters</dt><dd> 161 <table class="params"> 162 <tr><td class="paramdir">[out]</td><td class="paramname">result</td><td>of adding left and right. </td></tr> 163 <tr><td class="paramdir">[in]</td><td class="paramname">left</td><td>The first operand to be added. </td></tr> 164 <tr><td class="paramdir">[in]</td><td class="paramname">right</td><td>The second operand to be added. </td></tr> 165 </table> 166 </dd> 167 </dl> 168 169 </div> 170 </div> 171 <a id="a59d3d8212ffd5bf75f9b6fd85b896654"></a> 172 <h2 class="memtitle"><span class="permalink"><a href="#a59d3d8212ffd5bf75f9b6fd85b896654">◆ </a></span>Fq2Clear()</h2> 173 174 <div class="memitem"> 175 <div class="memproto"> 176 <table class="memname"> 177 <tr> 178 <td class="memname">void Fq2Clear </td> 179 <td>(</td> 180 <td class="paramtype"><a class="el" href="struct_fq2_elem.html">Fq2Elem</a> * </td> 181 <td class="paramname"><em>result</em></td><td>)</td> 182 <td></td> 183 </tr> 184 </table> 185 </div><div class="memdoc"> 186 187 <p>Clear an element's value. </p> 188 <dl class="params"><dt>Parameters</dt><dd> 189 <table class="params"> 190 <tr><td class="paramdir">[out]</td><td class="paramname">result</td><td>element to clear. </td></tr> 191 </table> 192 </dd> 193 </dl> 194 195 </div> 196 </div> 197 <a id="ad94b155025e7a11b9c5b60032fde4491"></a> 198 <h2 class="memtitle"><span class="permalink"><a href="#ad94b155025e7a11b9c5b60032fde4491">◆ </a></span>Fq2CondSet()</h2> 199 200 <div class="memitem"> 201 <div class="memproto"> 202 <table class="memname"> 203 <tr> 204 <td class="memname">void Fq2CondSet </td> 205 <td>(</td> 206 <td class="paramtype"><a class="el" href="struct_fq2_elem.html">Fq2Elem</a> * </td> 207 <td class="paramname"><em>result</em>, </td> 208 </tr> 209 <tr> 210 <td class="paramkey"></td> 211 <td></td> 212 <td class="paramtype"><a class="el" href="struct_fq2_elem.html">Fq2Elem</a> const * </td> 213 <td class="paramname"><em>true_val</em>, </td> 214 </tr> 215 <tr> 216 <td class="paramkey"></td> 217 <td></td> 218 <td class="paramtype"><a class="el" href="struct_fq2_elem.html">Fq2Elem</a> const * </td> 219 <td class="paramname"><em>false_val</em>, </td> 220 </tr> 221 <tr> 222 <td class="paramkey"></td> 223 <td></td> 224 <td class="paramtype">int </td> 225 <td class="paramname"><em>truth_val</em> </td> 226 </tr> 227 <tr> 228 <td></td> 229 <td>)</td> 230 <td></td><td></td> 231 </tr> 232 </table> 233 </div><div class="memdoc"> 234 235 <p>Conditionally Set an element's value to one of two values. </p> 236 <dl class="params"><dt>Parameters</dt><dd> 237 <table class="params"> 238 <tr><td class="paramdir">[out]</td><td class="paramname">result</td><td>target. </td></tr> 239 <tr><td class="paramdir">[in]</td><td class="paramname">true_val</td><td>value to set if condition is true. </td></tr> 240 <tr><td class="paramdir">[in]</td><td class="paramname">false_val</td><td>value to set if condition is false. </td></tr> 241 <tr><td class="paramdir">[in]</td><td class="paramname">truth_val</td><td>value of condition. </td></tr> 242 </table> 243 </dd> 244 </dl> 245 246 </div> 247 </div> 248 <a id="adc0d02ddec564ca86b0ef53d7ff79864"></a> 249 <h2 class="memtitle"><span class="permalink"><a href="#adc0d02ddec564ca86b0ef53d7ff79864">◆ </a></span>Fq2Conj()</h2> 250 251 <div class="memitem"> 252 <div class="memproto"> 253 <table class="memname"> 254 <tr> 255 <td class="memname">void Fq2Conj </td> 256 <td>(</td> 257 <td class="paramtype"><a class="el" href="struct_fq2_elem.html">Fq2Elem</a> * </td> 258 <td class="paramname"><em>result</em>, </td> 259 </tr> 260 <tr> 261 <td class="paramkey"></td> 262 <td></td> 263 <td class="paramtype"><a class="el" href="struct_fq2_elem.html">Fq2Elem</a> const * </td> 264 <td class="paramname"><em>in</em> </td> 265 </tr> 266 <tr> 267 <td></td> 268 <td>)</td> 269 <td></td><td></td> 270 </tr> 271 </table> 272 </div><div class="memdoc"> 273 274 <p>Calculate the conjugate of an element of Fq2. </p> 275 <dl class="params"><dt>Parameters</dt><dd> 276 <table class="params"> 277 <tr><td class="paramdir">[out]</td><td class="paramname">result</td><td>the conjugate of the element. </td></tr> 278 <tr><td class="paramdir">[in]</td><td class="paramname">in</td><td>the element. </td></tr> 279 </table> 280 </dd> 281 </dl> 282 283 </div> 284 </div> 285 <a id="a6c67364f78e6946a7ad3af2c86baf1a5"></a> 286 <h2 class="memtitle"><span class="permalink"><a href="#a6c67364f78e6946a7ad3af2c86baf1a5">◆ </a></span>Fq2Cp()</h2> 287 288 <div class="memitem"> 289 <div class="memproto"> 290 <table class="memname"> 291 <tr> 292 <td class="memname">void Fq2Cp </td> 293 <td>(</td> 294 <td class="paramtype"><a class="el" href="struct_fq2_elem.html">Fq2Elem</a> * </td> 295 <td class="paramname"><em>result</em>, </td> 296 </tr> 297 <tr> 298 <td class="paramkey"></td> 299 <td></td> 300 <td class="paramtype"><a class="el" href="struct_fq2_elem.html">Fq2Elem</a> const * </td> 301 <td class="paramname"><em>in</em> </td> 302 </tr> 303 <tr> 304 <td></td> 305 <td>)</td> 306 <td></td><td></td> 307 </tr> 308 </table> 309 </div><div class="memdoc"> 310 311 <p>Copy an element's value. </p> 312 <dl class="params"><dt>Parameters</dt><dd> 313 <table class="params"> 314 <tr><td class="paramdir">[out]</td><td class="paramname">result</td><td>copy target. </td></tr> 315 <tr><td class="paramdir">[in]</td><td class="paramname">in</td><td>copy source. </td></tr> 316 </table> 317 </dd> 318 </dl> 319 320 </div> 321 </div> 322 <a id="a3dc330cff53539b51183c43085275f97"></a> 323 <h2 class="memtitle"><span class="permalink"><a href="#a3dc330cff53539b51183c43085275f97">◆ </a></span>Fq2Eq()</h2> 324 325 <div class="memitem"> 326 <div class="memproto"> 327 <table class="memname"> 328 <tr> 329 <td class="memname">int Fq2Eq </td> 330 <td>(</td> 331 <td class="paramtype"><a class="el" href="struct_fq2_elem.html">Fq2Elem</a> const * </td> 332 <td class="paramname"><em>left</em>, </td> 333 </tr> 334 <tr> 335 <td class="paramkey"></td> 336 <td></td> 337 <td class="paramtype"><a class="el" href="struct_fq2_elem.html">Fq2Elem</a> const * </td> 338 <td class="paramname"><em>right</em> </td> 339 </tr> 340 <tr> 341 <td></td> 342 <td>)</td> 343 <td></td><td></td> 344 </tr> 345 </table> 346 </div><div class="memdoc"> 347 348 <p>Test if two elements in Fq2 are equal. </p> 349 <dl class="params"><dt>Parameters</dt><dd> 350 <table class="params"> 351 <tr><td class="paramdir">[in]</td><td class="paramname">left</td><td>The first operand to be tested. </td></tr> 352 <tr><td class="paramdir">[in]</td><td class="paramname">right</td><td>The second operand to be tested. </td></tr> 353 </table> 354 </dd> 355 </dl> 356 <dl class="section return"><dt>Returns</dt><dd>A value different from zero (i.e., true) if indeed the values are equal. Zero (i.e., false) otherwise. </dd></dl> 357 358 </div> 359 </div> 360 <a id="acecbff7a5a8cec15e24c47663957c05a"></a> 361 <h2 class="memtitle"><span class="permalink"><a href="#acecbff7a5a8cec15e24c47663957c05a">◆ </a></span>Fq2Exp()</h2> 362 363 <div class="memitem"> 364 <div class="memproto"> 365 <table class="memname"> 366 <tr> 367 <td class="memname">void Fq2Exp </td> 368 <td>(</td> 369 <td class="paramtype"><a class="el" href="struct_fq2_elem.html">Fq2Elem</a> * </td> 370 <td class="paramname"><em>result</em>, </td> 371 </tr> 372 <tr> 373 <td class="paramkey"></td> 374 <td></td> 375 <td class="paramtype"><a class="el" href="struct_fq2_elem.html">Fq2Elem</a> const * </td> 376 <td class="paramname"><em>base</em>, </td> 377 </tr> 378 <tr> 379 <td class="paramkey"></td> 380 <td></td> 381 <td class="paramtype"><a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const * </td> 382 <td class="paramname"><em>exp</em> </td> 383 </tr> 384 <tr> 385 <td></td> 386 <td>)</td> 387 <td></td><td></td> 388 </tr> 389 </table> 390 </div><div class="memdoc"> 391 392 <p>Exponentiate an element of Fq2 by a large integer. </p> 393 <dl class="params"><dt>Parameters</dt><dd> 394 <table class="params"> 395 <tr><td class="paramdir">[out]</td><td class="paramname">result</td><td>target. </td></tr> 396 <tr><td class="paramdir">[in]</td><td class="paramname">base</td><td>the base. </td></tr> 397 <tr><td class="paramdir">[in]</td><td class="paramname">exp</td><td>the exponent. </td></tr> 398 </table> 399 </dd> 400 </dl> 401 402 </div> 403 </div> 404 <a id="a756666161516fe541b26a4082f69343d"></a> 405 <h2 class="memtitle"><span class="permalink"><a href="#a756666161516fe541b26a4082f69343d">◆ </a></span>Fq2Inv()</h2> 406 407 <div class="memitem"> 408 <div class="memproto"> 409 <table class="memname"> 410 <tr> 411 <td class="memname">void Fq2Inv </td> 412 <td>(</td> 413 <td class="paramtype"><a class="el" href="struct_fq2_elem.html">Fq2Elem</a> * </td> 414 <td class="paramname"><em>result</em>, </td> 415 </tr> 416 <tr> 417 <td class="paramkey"></td> 418 <td></td> 419 <td class="paramtype"><a class="el" href="struct_fq2_elem.html">Fq2Elem</a> const * </td> 420 <td class="paramname"><em>in</em> </td> 421 </tr> 422 <tr> 423 <td></td> 424 <td>)</td> 425 <td></td><td></td> 426 </tr> 427 </table> 428 </div><div class="memdoc"> 429 430 <p>Invert an element of Fq2. </p> 431 <dl class="params"><dt>Parameters</dt><dd> 432 <table class="params"> 433 <tr><td class="paramdir">[out]</td><td class="paramname">result</td><td>the inverse of the element. </td></tr> 434 <tr><td class="paramdir">[in]</td><td class="paramname">in</td><td>the element to invert. </td></tr> 435 </table> 436 </dd> 437 </dl> 438 439 </div> 440 </div> 441 <a id="a610c9d7c2afa63b1d48da30c684d6e27"></a> 442 <h2 class="memtitle"><span class="permalink"><a href="#a610c9d7c2afa63b1d48da30c684d6e27">◆ </a></span>Fq2IsZero()</h2> 443 444 <div class="memitem"> 445 <div class="memproto"> 446 <table class="memname"> 447 <tr> 448 <td class="memname">int Fq2IsZero </td> 449 <td>(</td> 450 <td class="paramtype"><a class="el" href="struct_fq2_elem.html">Fq2Elem</a> const * </td> 451 <td class="paramname"><em>value</em></td><td>)</td> 452 <td></td> 453 </tr> 454 </table> 455 </div><div class="memdoc"> 456 457 <p>Test if an element is zero. </p> 458 <dl class="params"><dt>Parameters</dt><dd> 459 <table class="params"> 460 <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>the element to test. </td></tr> 461 </table> 462 </dd> 463 </dl> 464 <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> 465 466 </div> 467 </div> 468 <a id="a876f870f84cd8ab697176dbb42591565"></a> 469 <h2 class="memtitle"><span class="permalink"><a href="#a876f870f84cd8ab697176dbb42591565">◆ </a></span>Fq2Mul()</h2> 470 471 <div class="memitem"> 472 <div class="memproto"> 473 <table class="memname"> 474 <tr> 475 <td class="memname">void Fq2Mul </td> 476 <td>(</td> 477 <td class="paramtype"><a class="el" href="struct_fq2_elem.html">Fq2Elem</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_fq2_elem.html">Fq2Elem</a> const * </td> 484 <td class="paramname"><em>left</em>, </td> 485 </tr> 486 <tr> 487 <td class="paramkey"></td> 488 <td></td> 489 <td class="paramtype"><a class="el" href="struct_fq2_elem.html">Fq2Elem</a> const * </td> 490 <td class="paramname"><em>right</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>Multiply two elements of Fq2. </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>of multiplying left and right. </td></tr> 504 <tr><td class="paramdir">[in]</td><td class="paramname">left</td><td>The first operand to be multiplied. </td></tr> 505 <tr><td class="paramdir">[in]</td><td class="paramname">right</td><td>The second operand to be multiplied. </td></tr> 506 </table> 507 </dd> 508 </dl> 509 510 </div> 511 </div> 512 <a id="af45903d791794faabedb00f760885e8c"></a> 513 <h2 class="memtitle"><span class="permalink"><a href="#af45903d791794faabedb00f760885e8c">◆ </a></span>Fq2MulScalar()</h2> 514 515 <div class="memitem"> 516 <div class="memproto"> 517 <table class="memname"> 518 <tr> 519 <td class="memname">void Fq2MulScalar </td> 520 <td>(</td> 521 <td class="paramtype"><a class="el" href="struct_fq2_elem.html">Fq2Elem</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_fq2_elem.html">Fq2Elem</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_fq_elem.html">FqElem</a> const * </td> 534 <td class="paramname"><em>right</em> </td> 535 </tr> 536 <tr> 537 <td></td> 538 <td>)</td> 539 <td></td><td></td> 540 </tr> 541 </table> 542 </div><div class="memdoc"> 543 544 <p>Multiply an element of Fq2 by and element of Fq. </p> 545 <dl class="params"><dt>Parameters</dt><dd> 546 <table class="params"> 547 <tr><td class="paramdir">[out]</td><td class="paramname">result</td><td>of multiplying left and right. </td></tr> 548 <tr><td class="paramdir">[in]</td><td class="paramname">left</td><td>The first operand to be multiplied. </td></tr> 549 <tr><td class="paramdir">[in]</td><td class="paramname">right</td><td>The second operand to be multiplied. </td></tr> 550 </table> 551 </dd> 552 </dl> 553 554 </div> 555 </div> 556 <a id="afeeb4e14ddf9f39f860661c599923c58"></a> 557 <h2 class="memtitle"><span class="permalink"><a href="#afeeb4e14ddf9f39f860661c599923c58">◆ </a></span>Fq2MulXi()</h2> 558 559 <div class="memitem"> 560 <div class="memproto"> 561 <table class="memname"> 562 <tr> 563 <td class="memname">void Fq2MulXi </td> 564 <td>(</td> 565 <td class="paramtype"><a class="el" href="struct_fq2_elem.html">Fq2Elem</a> * </td> 566 <td class="paramname"><em>result</em>, </td> 567 </tr> 568 <tr> 569 <td class="paramkey"></td> 570 <td></td> 571 <td class="paramtype"><a class="el" href="struct_fq2_elem.html">Fq2Elem</a> const * </td> 572 <td class="paramname"><em>in</em> </td> 573 </tr> 574 <tr> 575 <td></td> 576 <td>)</td> 577 <td></td><td></td> 578 </tr> 579 </table> 580 </div><div class="memdoc"> 581 582 <p>Multiply an element of Fq2 by xi. </p> 583 <p>This function was formerly called as Fq2Const.</p> 584 <dl class="params"><dt>Parameters</dt><dd> 585 <table class="params"> 586 <tr><td class="paramdir">[out]</td><td class="paramname">result</td><td>of multiplying in by xi. </td></tr> 587 <tr><td class="paramdir">[in]</td><td class="paramname">in</td><td>The first operand to be multiplied. </td></tr> 588 </table> 589 </dd> 590 </dl> 591 592 </div> 593 </div> 594 <a id="a5d523d5d6d4159c71f58945af82a7936"></a> 595 <h2 class="memtitle"><span class="permalink"><a href="#a5d523d5d6d4159c71f58945af82a7936">◆ </a></span>Fq2Neg()</h2> 596 597 <div class="memitem"> 598 <div class="memproto"> 599 <table class="memname"> 600 <tr> 601 <td class="memname">void Fq2Neg </td> 602 <td>(</td> 603 <td class="paramtype"><a class="el" href="struct_fq2_elem.html">Fq2Elem</a> * </td> 604 <td class="paramname"><em>result</em>, </td> 605 </tr> 606 <tr> 607 <td class="paramkey"></td> 608 <td></td> 609 <td class="paramtype"><a class="el" href="struct_fq2_elem.html">Fq2Elem</a> const * </td> 610 <td class="paramname"><em>in</em> </td> 611 </tr> 612 <tr> 613 <td></td> 614 <td>)</td> 615 <td></td><td></td> 616 </tr> 617 </table> 618 </div><div class="memdoc"> 619 620 <p>Negate an element of Fq2. </p> 621 <dl class="params"><dt>Parameters</dt><dd> 622 <table class="params"> 623 <tr><td class="paramdir">[out]</td><td class="paramname">result</td><td>the negative of the element. </td></tr> 624 <tr><td class="paramdir">[in]</td><td class="paramname">in</td><td>the element to negate. </td></tr> 625 </table> 626 </dd> 627 </dl> 628 629 </div> 630 </div> 631 <a id="a9165c1d2deef46ceb9af238928b2ec5c"></a> 632 <h2 class="memtitle"><span class="permalink"><a href="#a9165c1d2deef46ceb9af238928b2ec5c">◆ </a></span>Fq2Set()</h2> 633 634 <div class="memitem"> 635 <div class="memproto"> 636 <table class="memname"> 637 <tr> 638 <td class="memname">void Fq2Set </td> 639 <td>(</td> 640 <td class="paramtype"><a class="el" href="struct_fq2_elem.html">Fq2Elem</a> * </td> 641 <td class="paramname"><em>result</em>, </td> 642 </tr> 643 <tr> 644 <td class="paramkey"></td> 645 <td></td> 646 <td class="paramtype">uint32_t </td> 647 <td class="paramname"><em>in</em> </td> 648 </tr> 649 <tr> 650 <td></td> 651 <td>)</td> 652 <td></td><td></td> 653 </tr> 654 </table> 655 </div><div class="memdoc"> 656 657 <p>Set an element's value. </p> 658 <dl class="params"><dt>Parameters</dt><dd> 659 <table class="params"> 660 <tr><td class="paramdir">[out]</td><td class="paramname">result</td><td>target. </td></tr> 661 <tr><td class="paramdir">[in]</td><td class="paramname">in</td><td>value to set. </td></tr> 662 </table> 663 </dd> 664 </dl> 665 666 </div> 667 </div> 668 <a id="a3c6583dd519a3dd7efb26db5e9a59036"></a> 669 <h2 class="memtitle"><span class="permalink"><a href="#a3c6583dd519a3dd7efb26db5e9a59036">◆ </a></span>Fq2Square()</h2> 670 671 <div class="memitem"> 672 <div class="memproto"> 673 <table class="memname"> 674 <tr> 675 <td class="memname">void Fq2Square </td> 676 <td>(</td> 677 <td class="paramtype"><a class="el" href="struct_fq2_elem.html">Fq2Elem</a> * </td> 678 <td class="paramname"><em>result</em>, </td> 679 </tr> 680 <tr> 681 <td class="paramkey"></td> 682 <td></td> 683 <td class="paramtype"><a class="el" href="struct_fq2_elem.html">Fq2Elem</a> const * </td> 684 <td class="paramname"><em>in</em> </td> 685 </tr> 686 <tr> 687 <td></td> 688 <td>)</td> 689 <td></td><td></td> 690 </tr> 691 </table> 692 </div><div class="memdoc"> 693 694 <p>Square an element of Fq2. </p> 695 <dl class="params"><dt>Parameters</dt><dd> 696 <table class="params"> 697 <tr><td class="paramdir">[out]</td><td class="paramname">result</td><td>the square of the element. </td></tr> 698 <tr><td class="paramdir">[in]</td><td class="paramname">in</td><td>the element to square. </td></tr> 699 </table> 700 </dd> 701 </dl> 702 703 </div> 704 </div> 705 <a id="ae27a9400b5d8fbd0b720a449c60ad146"></a> 706 <h2 class="memtitle"><span class="permalink"><a href="#ae27a9400b5d8fbd0b720a449c60ad146">◆ </a></span>Fq2Sub()</h2> 707 708 <div class="memitem"> 709 <div class="memproto"> 710 <table class="memname"> 711 <tr> 712 <td class="memname">void Fq2Sub </td> 713 <td>(</td> 714 <td class="paramtype"><a class="el" href="struct_fq2_elem.html">Fq2Elem</a> * </td> 715 <td class="paramname"><em>result</em>, </td> 716 </tr> 717 <tr> 718 <td class="paramkey"></td> 719 <td></td> 720 <td class="paramtype"><a class="el" href="struct_fq2_elem.html">Fq2Elem</a> const * </td> 721 <td class="paramname"><em>left</em>, </td> 722 </tr> 723 <tr> 724 <td class="paramkey"></td> 725 <td></td> 726 <td class="paramtype"><a class="el" href="struct_fq2_elem.html">Fq2Elem</a> const * </td> 727 <td class="paramname"><em>right</em> </td> 728 </tr> 729 <tr> 730 <td></td> 731 <td>)</td> 732 <td></td><td></td> 733 </tr> 734 </table> 735 </div><div class="memdoc"> 736 737 <p>Subtract two elements of Fq2. </p> 738 <dl class="params"><dt>Parameters</dt><dd> 739 <table class="params"> 740 <tr><td class="paramdir">[out]</td><td class="paramname">result</td><td>of subtracting left from right. </td></tr> 741 <tr><td class="paramdir">[in]</td><td class="paramname">left</td><td>The operand to be subtracted from. </td></tr> 742 <tr><td class="paramdir">[in]</td><td class="paramname">right</td><td>The operand to subtract. </td></tr> 743 </table> 744 </dd> 745 </dl> 746 747 </div> 748 </div> 749 </div><!-- contents --> 750 </div><!-- doc-content --> 751 <!-- HTML footer for doxygen 1.8.10--> 752 <!-- start footer part --> 753 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> 754 <ul> 755 <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="fq2_8h.html">fq2.h</a></li> 756 <li class="footer"> 757 © 2016-2017 Intel Corporation 758 </li> 759 </ul> 760 </div> 761 </body> 762 </html> 763