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/fq12.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('fq12_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">fq12.h File Reference</div> </div> 66 </div><!--header--> 67 <div class="contents"> 68 69 <p>Definition of Fq12 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:aa4a17bfa56644ab615c60bd7ec900821"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="fq12_8h.html#aa4a17bfa56644ab615c60bd7ec900821">Fq12Add</a> (<a class="el" href="struct_fq12_elem.html">Fq12Elem</a> *result, <a class="el" href="struct_fq12_elem.html">Fq12Elem</a> const *left, <a class="el" href="struct_fq12_elem.html">Fq12Elem</a> const *right)</td></tr> 76 <tr class="memdesc:aa4a17bfa56644ab615c60bd7ec900821"><td class="mdescLeft"> </td><td class="mdescRight">Add two elements of Fq12. <a href="#aa4a17bfa56644ab615c60bd7ec900821">More...</a><br /></td></tr> 77 <tr class="separator:aa4a17bfa56644ab615c60bd7ec900821"><td class="memSeparator" colspan="2"> </td></tr> 78 <tr class="memitem:a80c3da69a0991423a728e9b74a2dfe15"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="fq12_8h.html#a80c3da69a0991423a728e9b74a2dfe15">Fq12Sub</a> (<a class="el" href="struct_fq12_elem.html">Fq12Elem</a> *result, <a class="el" href="struct_fq12_elem.html">Fq12Elem</a> const *left, <a class="el" href="struct_fq12_elem.html">Fq12Elem</a> const *right)</td></tr> 79 <tr class="memdesc:a80c3da69a0991423a728e9b74a2dfe15"><td class="mdescLeft"> </td><td class="mdescRight">Subtract two elements of Fq12. <a href="#a80c3da69a0991423a728e9b74a2dfe15">More...</a><br /></td></tr> 80 <tr class="separator:a80c3da69a0991423a728e9b74a2dfe15"><td class="memSeparator" colspan="2"> </td></tr> 81 <tr class="memitem:a12e88a0bbfcc24b1863754f5e027d28e"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="fq12_8h.html#a12e88a0bbfcc24b1863754f5e027d28e">Fq12Square</a> (<a class="el" href="struct_fq12_elem.html">Fq12Elem</a> *result, <a class="el" href="struct_fq12_elem.html">Fq12Elem</a> const *in)</td></tr> 82 <tr class="memdesc:a12e88a0bbfcc24b1863754f5e027d28e"><td class="mdescLeft"> </td><td class="mdescRight">Square an element of Fq12. <a href="#a12e88a0bbfcc24b1863754f5e027d28e">More...</a><br /></td></tr> 83 <tr class="separator:a12e88a0bbfcc24b1863754f5e027d28e"><td class="memSeparator" colspan="2"> </td></tr> 84 <tr class="memitem:aec7e0ce55e01ab48c0c6315cb9e5b47d"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="fq12_8h.html#aec7e0ce55e01ab48c0c6315cb9e5b47d">Fq12Mul</a> (<a class="el" href="struct_fq12_elem.html">Fq12Elem</a> *result, <a class="el" href="struct_fq12_elem.html">Fq12Elem</a> const *left, <a class="el" href="struct_fq12_elem.html">Fq12Elem</a> const *right)</td></tr> 85 <tr class="memdesc:aec7e0ce55e01ab48c0c6315cb9e5b47d"><td class="mdescLeft"> </td><td class="mdescRight">Multiply two elements of Fq12. <a href="#aec7e0ce55e01ab48c0c6315cb9e5b47d">More...</a><br /></td></tr> 86 <tr class="separator:aec7e0ce55e01ab48c0c6315cb9e5b47d"><td class="memSeparator" colspan="2"> </td></tr> 87 <tr class="memitem:afd089e0cb6e4ec68a3a3062f26d4430d"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="fq12_8h.html#afd089e0cb6e4ec68a3a3062f26d4430d">Fq12Inv</a> (<a class="el" href="struct_fq12_elem.html">Fq12Elem</a> *result, <a class="el" href="struct_fq12_elem.html">Fq12Elem</a> const *in)</td></tr> 88 <tr class="memdesc:afd089e0cb6e4ec68a3a3062f26d4430d"><td class="mdescLeft"> </td><td class="mdescRight">Invert an element of Fq12. <a href="#afd089e0cb6e4ec68a3a3062f26d4430d">More...</a><br /></td></tr> 89 <tr class="separator:afd089e0cb6e4ec68a3a3062f26d4430d"><td class="memSeparator" colspan="2"> </td></tr> 90 <tr class="memitem:af3fd9055d559c592eb5715bb261c072b"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="fq12_8h.html#af3fd9055d559c592eb5715bb261c072b">Fq12Neg</a> (<a class="el" href="struct_fq12_elem.html">Fq12Elem</a> *result, <a class="el" href="struct_fq12_elem.html">Fq12Elem</a> const *in)</td></tr> 91 <tr class="memdesc:af3fd9055d559c592eb5715bb261c072b"><td class="mdescLeft"> </td><td class="mdescRight">Negate an element of Fq12. <a href="#af3fd9055d559c592eb5715bb261c072b">More...</a><br /></td></tr> 92 <tr class="separator:af3fd9055d559c592eb5715bb261c072b"><td class="memSeparator" colspan="2"> </td></tr> 93 <tr class="memitem:acd16f86f83021d44d25389ad9f701597"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="fq12_8h.html#acd16f86f83021d44d25389ad9f701597">Fq12Set</a> (<a class="el" href="struct_fq12_elem.html">Fq12Elem</a> *result, uint32_t val)</td></tr> 94 <tr class="memdesc:acd16f86f83021d44d25389ad9f701597"><td class="mdescLeft"> </td><td class="mdescRight">Set an element's value. <a href="#acd16f86f83021d44d25389ad9f701597">More...</a><br /></td></tr> 95 <tr class="separator:acd16f86f83021d44d25389ad9f701597"><td class="memSeparator" colspan="2"> </td></tr> 96 <tr class="memitem:a3bf52e5b01103632fa429927e5a07b1d"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="fq12_8h.html#a3bf52e5b01103632fa429927e5a07b1d">Fq12Exp</a> (<a class="el" href="struct_fq12_elem.html">Fq12Elem</a> *result, <a class="el" href="struct_fq12_elem.html">Fq12Elem</a> const *base, <a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const *exp)</td></tr> 97 <tr class="memdesc:a3bf52e5b01103632fa429927e5a07b1d"><td class="mdescLeft"> </td><td class="mdescRight">Exponentiate an element of Fq12 by a large integer. <a href="#a3bf52e5b01103632fa429927e5a07b1d">More...</a><br /></td></tr> 98 <tr class="separator:a3bf52e5b01103632fa429927e5a07b1d"><td class="memSeparator" colspan="2"> </td></tr> 99 <tr class="memitem:ae88eb95c37c9db2e37e14d8a9304fadd"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="fq12_8h.html#ae88eb95c37c9db2e37e14d8a9304fadd">Fq12MultiExp</a> (<a class="el" href="struct_fq12_elem.html">Fq12Elem</a> *result, <a class="el" href="struct_fq12_elem.html">Fq12Elem</a> const *base0, <a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const *exp0, <a class="el" href="struct_fq12_elem.html">Fq12Elem</a> const *base1, <a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const *exp1, <a class="el" href="struct_fq12_elem.html">Fq12Elem</a> const *base2, <a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const *exp2, <a class="el" href="struct_fq12_elem.html">Fq12Elem</a> const *base3, <a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const *exp3)</td></tr> 100 <tr class="memdesc:ae88eb95c37c9db2e37e14d8a9304fadd"><td class="mdescLeft"> </td><td class="mdescRight">Multiply of exponentiation of elements of Fq12 by a large integers. <a href="#ae88eb95c37c9db2e37e14d8a9304fadd">More...</a><br /></td></tr> 101 <tr class="separator:ae88eb95c37c9db2e37e14d8a9304fadd"><td class="memSeparator" colspan="2"> </td></tr> 102 <tr class="memitem:a08b50a1f5fe19c78a19f1f4a457b9a39"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="fq12_8h.html#a08b50a1f5fe19c78a19f1f4a457b9a39">Fq12Eq</a> (<a class="el" href="struct_fq12_elem.html">Fq12Elem</a> const *left, <a class="el" href="struct_fq12_elem.html">Fq12Elem</a> const *right)</td></tr> 103 <tr class="memdesc:a08b50a1f5fe19c78a19f1f4a457b9a39"><td class="mdescLeft"> </td><td class="mdescRight">Test if two elements in Fq12 are equal. <a href="#a08b50a1f5fe19c78a19f1f4a457b9a39">More...</a><br /></td></tr> 104 <tr class="separator:a08b50a1f5fe19c78a19f1f4a457b9a39"><td class="memSeparator" colspan="2"> </td></tr> 105 <tr class="memitem:a33a3bb0f378ac008cde38b88a39ea79c"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="fq12_8h.html#a33a3bb0f378ac008cde38b88a39ea79c">Fq12Conj</a> (<a class="el" href="struct_fq12_elem.html">Fq12Elem</a> *result, <a class="el" href="struct_fq12_elem.html">Fq12Elem</a> const *in)</td></tr> 106 <tr class="memdesc:a33a3bb0f378ac008cde38b88a39ea79c"><td class="mdescLeft"> </td><td class="mdescRight">Calculate the conjugate of an element of Fq2. <a href="#a33a3bb0f378ac008cde38b88a39ea79c">More...</a><br /></td></tr> 107 <tr class="separator:a33a3bb0f378ac008cde38b88a39ea79c"><td class="memSeparator" colspan="2"> </td></tr> 108 <tr class="memitem:a65ad8c0f4aa0859593aab885066c5025"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="fq12_8h.html#a65ad8c0f4aa0859593aab885066c5025">Fq12ExpCyc</a> (<a class="el" href="struct_fq12_elem.html">Fq12Elem</a> *result, <a class="el" href="struct_fq12_elem.html">Fq12Elem</a> const *in, <a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const *t)</td></tr> 109 <tr class="memdesc:a65ad8c0f4aa0859593aab885066c5025"><td class="mdescLeft"> </td><td class="mdescRight">Calculate the cyclotomic exponentiation of an element of Fq12 by another element of Fq12. <a href="#a65ad8c0f4aa0859593aab885066c5025">More...</a><br /></td></tr> 110 <tr class="separator:a65ad8c0f4aa0859593aab885066c5025"><td class="memSeparator" colspan="2"> </td></tr> 111 <tr class="memitem:a1ad8710126bb4906d6170dd8ab30e43a"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="fq12_8h.html#a1ad8710126bb4906d6170dd8ab30e43a">Fq12SqCyc</a> (<a class="el" href="struct_fq12_elem.html">Fq12Elem</a> *result, <a class="el" href="struct_fq12_elem.html">Fq12Elem</a> const *in)</td></tr> 112 <tr class="memdesc:a1ad8710126bb4906d6170dd8ab30e43a"><td class="mdescLeft"> </td><td class="mdescRight">Calculate the cyclotomic square of an element of fq12. <a href="#a1ad8710126bb4906d6170dd8ab30e43a">More...</a><br /></td></tr> 113 <tr class="separator:a1ad8710126bb4906d6170dd8ab30e43a"><td class="memSeparator" colspan="2"> </td></tr> 114 <tr class="memitem:ac1b44bbceb1c648b2b880871c8b52195"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="fq12_8h.html#ac1b44bbceb1c648b2b880871c8b52195">Fq12MulSpecial</a> (<a class="el" href="struct_fq12_elem.html">Fq12Elem</a> *result, <a class="el" href="struct_fq12_elem.html">Fq12Elem</a> const *left, <a class="el" href="struct_fq12_elem.html">Fq12Elem</a> const *right)</td></tr> 115 <tr class="memdesc:ac1b44bbceb1c648b2b880871c8b52195"><td class="mdescLeft"> </td><td class="mdescRight">Multiply two elements of Fq12. <a href="#ac1b44bbceb1c648b2b880871c8b52195">More...</a><br /></td></tr> 116 <tr class="separator:ac1b44bbceb1c648b2b880871c8b52195"><td class="memSeparator" colspan="2"> </td></tr> 117 <tr class="memitem:ad739d6a59a3f7ed0c0117c7486d06290"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="fq12_8h.html#ad739d6a59a3f7ed0c0117c7486d06290">Fq12Cp</a> (<a class="el" href="struct_fq12_elem.html">Fq12Elem</a> *result, <a class="el" href="struct_fq12_elem.html">Fq12Elem</a> const *in)</td></tr> 118 <tr class="memdesc:ad739d6a59a3f7ed0c0117c7486d06290"><td class="mdescLeft"> </td><td class="mdescRight">Copy an element's value. <a href="#ad739d6a59a3f7ed0c0117c7486d06290">More...</a><br /></td></tr> 119 <tr class="separator:ad739d6a59a3f7ed0c0117c7486d06290"><td class="memSeparator" colspan="2"> </td></tr> 120 <tr class="memitem:aaeb34cf6f4d176674fc300d7e7fc57f1"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="fq12_8h.html#aaeb34cf6f4d176674fc300d7e7fc57f1">Fq12Clear</a> (<a class="el" href="struct_fq12_elem.html">Fq12Elem</a> *result)</td></tr> 121 <tr class="memdesc:aaeb34cf6f4d176674fc300d7e7fc57f1"><td class="mdescLeft"> </td><td class="mdescRight">Clear an element's value. <a href="#aaeb34cf6f4d176674fc300d7e7fc57f1">More...</a><br /></td></tr> 122 <tr class="separator:aaeb34cf6f4d176674fc300d7e7fc57f1"><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 Fq12 math. </p> 126 </div><h2 class="groupheader">Function Documentation</h2> 127 <a id="aa4a17bfa56644ab615c60bd7ec900821"></a> 128 <h2 class="memtitle"><span class="permalink"><a href="#aa4a17bfa56644ab615c60bd7ec900821">◆ </a></span>Fq12Add()</h2> 129 130 <div class="memitem"> 131 <div class="memproto"> 132 <table class="memname"> 133 <tr> 134 <td class="memname">void Fq12Add </td> 135 <td>(</td> 136 <td class="paramtype"><a class="el" href="struct_fq12_elem.html">Fq12Elem</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_fq12_elem.html">Fq12Elem</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_fq12_elem.html">Fq12Elem</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 Fq12. </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="aaeb34cf6f4d176674fc300d7e7fc57f1"></a> 172 <h2 class="memtitle"><span class="permalink"><a href="#aaeb34cf6f4d176674fc300d7e7fc57f1">◆ </a></span>Fq12Clear()</h2> 173 174 <div class="memitem"> 175 <div class="memproto"> 176 <table class="memname"> 177 <tr> 178 <td class="memname">void Fq12Clear </td> 179 <td>(</td> 180 <td class="paramtype"><a class="el" href="struct_fq12_elem.html">Fq12Elem</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="a33a3bb0f378ac008cde38b88a39ea79c"></a> 198 <h2 class="memtitle"><span class="permalink"><a href="#a33a3bb0f378ac008cde38b88a39ea79c">◆ </a></span>Fq12Conj()</h2> 199 200 <div class="memitem"> 201 <div class="memproto"> 202 <table class="memname"> 203 <tr> 204 <td class="memname">void Fq12Conj </td> 205 <td>(</td> 206 <td class="paramtype"><a class="el" href="struct_fq12_elem.html">Fq12Elem</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_fq12_elem.html">Fq12Elem</a> const * </td> 213 <td class="paramname"><em>in</em> </td> 214 </tr> 215 <tr> 216 <td></td> 217 <td>)</td> 218 <td></td><td></td> 219 </tr> 220 </table> 221 </div><div class="memdoc"> 222 223 <p>Calculate the conjugate of an element of Fq2. </p> 224 <dl class="params"><dt>Parameters</dt><dd> 225 <table class="params"> 226 <tr><td class="paramdir">[out]</td><td class="paramname">result</td><td>the conjugate of the element. </td></tr> 227 <tr><td class="paramdir">[in]</td><td class="paramname">in</td><td>the element. </td></tr> 228 </table> 229 </dd> 230 </dl> 231 232 </div> 233 </div> 234 <a id="ad739d6a59a3f7ed0c0117c7486d06290"></a> 235 <h2 class="memtitle"><span class="permalink"><a href="#ad739d6a59a3f7ed0c0117c7486d06290">◆ </a></span>Fq12Cp()</h2> 236 237 <div class="memitem"> 238 <div class="memproto"> 239 <table class="memname"> 240 <tr> 241 <td class="memname">void Fq12Cp </td> 242 <td>(</td> 243 <td class="paramtype"><a class="el" href="struct_fq12_elem.html">Fq12Elem</a> * </td> 244 <td class="paramname"><em>result</em>, </td> 245 </tr> 246 <tr> 247 <td class="paramkey"></td> 248 <td></td> 249 <td class="paramtype"><a class="el" href="struct_fq12_elem.html">Fq12Elem</a> const * </td> 250 <td class="paramname"><em>in</em> </td> 251 </tr> 252 <tr> 253 <td></td> 254 <td>)</td> 255 <td></td><td></td> 256 </tr> 257 </table> 258 </div><div class="memdoc"> 259 260 <p>Copy an element's value. </p> 261 <dl class="params"><dt>Parameters</dt><dd> 262 <table class="params"> 263 <tr><td class="paramdir">[out]</td><td class="paramname">result</td><td>copy target. </td></tr> 264 <tr><td class="paramdir">[in]</td><td class="paramname">in</td><td>copy source. </td></tr> 265 </table> 266 </dd> 267 </dl> 268 269 </div> 270 </div> 271 <a id="a08b50a1f5fe19c78a19f1f4a457b9a39"></a> 272 <h2 class="memtitle"><span class="permalink"><a href="#a08b50a1f5fe19c78a19f1f4a457b9a39">◆ </a></span>Fq12Eq()</h2> 273 274 <div class="memitem"> 275 <div class="memproto"> 276 <table class="memname"> 277 <tr> 278 <td class="memname">int Fq12Eq </td> 279 <td>(</td> 280 <td class="paramtype"><a class="el" href="struct_fq12_elem.html">Fq12Elem</a> const * </td> 281 <td class="paramname"><em>left</em>, </td> 282 </tr> 283 <tr> 284 <td class="paramkey"></td> 285 <td></td> 286 <td class="paramtype"><a class="el" href="struct_fq12_elem.html">Fq12Elem</a> const * </td> 287 <td class="paramname"><em>right</em> </td> 288 </tr> 289 <tr> 290 <td></td> 291 <td>)</td> 292 <td></td><td></td> 293 </tr> 294 </table> 295 </div><div class="memdoc"> 296 297 <p>Test if two elements in Fq12 are equal. </p> 298 <dl class="params"><dt>Parameters</dt><dd> 299 <table class="params"> 300 <tr><td class="paramdir">[in]</td><td class="paramname">left</td><td>The first operand to be tested. </td></tr> 301 <tr><td class="paramdir">[in]</td><td class="paramname">right</td><td>The second operand to be tested. </td></tr> 302 </table> 303 </dd> 304 </dl> 305 <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> 306 307 </div> 308 </div> 309 <a id="a3bf52e5b01103632fa429927e5a07b1d"></a> 310 <h2 class="memtitle"><span class="permalink"><a href="#a3bf52e5b01103632fa429927e5a07b1d">◆ </a></span>Fq12Exp()</h2> 311 312 <div class="memitem"> 313 <div class="memproto"> 314 <table class="memname"> 315 <tr> 316 <td class="memname">void Fq12Exp </td> 317 <td>(</td> 318 <td class="paramtype"><a class="el" href="struct_fq12_elem.html">Fq12Elem</a> * </td> 319 <td class="paramname"><em>result</em>, </td> 320 </tr> 321 <tr> 322 <td class="paramkey"></td> 323 <td></td> 324 <td class="paramtype"><a class="el" href="struct_fq12_elem.html">Fq12Elem</a> const * </td> 325 <td class="paramname"><em>base</em>, </td> 326 </tr> 327 <tr> 328 <td class="paramkey"></td> 329 <td></td> 330 <td class="paramtype"><a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const * </td> 331 <td class="paramname"><em>exp</em> </td> 332 </tr> 333 <tr> 334 <td></td> 335 <td>)</td> 336 <td></td><td></td> 337 </tr> 338 </table> 339 </div><div class="memdoc"> 340 341 <p>Exponentiate an element of Fq12 by a large integer. </p> 342 <dl class="params"><dt>Parameters</dt><dd> 343 <table class="params"> 344 <tr><td class="paramdir">[out]</td><td class="paramname">result</td><td>target. </td></tr> 345 <tr><td class="paramdir">[in]</td><td class="paramname">base</td><td>the base. </td></tr> 346 <tr><td class="paramdir">[in]</td><td class="paramname">exp</td><td>the exponent. </td></tr> 347 </table> 348 </dd> 349 </dl> 350 351 </div> 352 </div> 353 <a id="a65ad8c0f4aa0859593aab885066c5025"></a> 354 <h2 class="memtitle"><span class="permalink"><a href="#a65ad8c0f4aa0859593aab885066c5025">◆ </a></span>Fq12ExpCyc()</h2> 355 356 <div class="memitem"> 357 <div class="memproto"> 358 <table class="memname"> 359 <tr> 360 <td class="memname">void Fq12ExpCyc </td> 361 <td>(</td> 362 <td class="paramtype"><a class="el" href="struct_fq12_elem.html">Fq12Elem</a> * </td> 363 <td class="paramname"><em>result</em>, </td> 364 </tr> 365 <tr> 366 <td class="paramkey"></td> 367 <td></td> 368 <td class="paramtype"><a class="el" href="struct_fq12_elem.html">Fq12Elem</a> const * </td> 369 <td class="paramname"><em>in</em>, </td> 370 </tr> 371 <tr> 372 <td class="paramkey"></td> 373 <td></td> 374 <td class="paramtype"><a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const * </td> 375 <td class="paramname"><em>t</em> </td> 376 </tr> 377 <tr> 378 <td></td> 379 <td>)</td> 380 <td></td><td></td> 381 </tr> 382 </table> 383 </div><div class="memdoc"> 384 385 <p>Calculate the cyclotomic exponentiation of an element of Fq12 by another element of Fq12. </p> 386 <dl class="params"><dt>Parameters</dt><dd> 387 <table class="params"> 388 <tr><td class="paramdir">[in,out]</td><td class="paramname">result</td><td>the base of the exponentiation. This will receive the result. </td></tr> 389 <tr><td class="paramdir">[in]</td><td class="paramname">in</td><td>the exponent. </td></tr> 390 <tr><td class="paramdir">[in]</td><td class="paramname">t</td><td>pairing parameter t </td></tr> 391 </table> 392 </dd> 393 </dl> 394 395 </div> 396 </div> 397 <a id="afd089e0cb6e4ec68a3a3062f26d4430d"></a> 398 <h2 class="memtitle"><span class="permalink"><a href="#afd089e0cb6e4ec68a3a3062f26d4430d">◆ </a></span>Fq12Inv()</h2> 399 400 <div class="memitem"> 401 <div class="memproto"> 402 <table class="memname"> 403 <tr> 404 <td class="memname">void Fq12Inv </td> 405 <td>(</td> 406 <td class="paramtype"><a class="el" href="struct_fq12_elem.html">Fq12Elem</a> * </td> 407 <td class="paramname"><em>result</em>, </td> 408 </tr> 409 <tr> 410 <td class="paramkey"></td> 411 <td></td> 412 <td class="paramtype"><a class="el" href="struct_fq12_elem.html">Fq12Elem</a> const * </td> 413 <td class="paramname"><em>in</em> </td> 414 </tr> 415 <tr> 416 <td></td> 417 <td>)</td> 418 <td></td><td></td> 419 </tr> 420 </table> 421 </div><div class="memdoc"> 422 423 <p>Invert an element of Fq12. </p> 424 <dl class="params"><dt>Parameters</dt><dd> 425 <table class="params"> 426 <tr><td class="paramdir">[out]</td><td class="paramname">result</td><td>the inverse of the element. </td></tr> 427 <tr><td class="paramdir">[in]</td><td class="paramname">in</td><td>the element to invert. </td></tr> 428 </table> 429 </dd> 430 </dl> 431 432 </div> 433 </div> 434 <a id="aec7e0ce55e01ab48c0c6315cb9e5b47d"></a> 435 <h2 class="memtitle"><span class="permalink"><a href="#aec7e0ce55e01ab48c0c6315cb9e5b47d">◆ </a></span>Fq12Mul()</h2> 436 437 <div class="memitem"> 438 <div class="memproto"> 439 <table class="memname"> 440 <tr> 441 <td class="memname">void Fq12Mul </td> 442 <td>(</td> 443 <td class="paramtype"><a class="el" href="struct_fq12_elem.html">Fq12Elem</a> * </td> 444 <td class="paramname"><em>result</em>, </td> 445 </tr> 446 <tr> 447 <td class="paramkey"></td> 448 <td></td> 449 <td class="paramtype"><a class="el" href="struct_fq12_elem.html">Fq12Elem</a> const * </td> 450 <td class="paramname"><em>left</em>, </td> 451 </tr> 452 <tr> 453 <td class="paramkey"></td> 454 <td></td> 455 <td class="paramtype"><a class="el" href="struct_fq12_elem.html">Fq12Elem</a> const * </td> 456 <td class="paramname"><em>right</em> </td> 457 </tr> 458 <tr> 459 <td></td> 460 <td>)</td> 461 <td></td><td></td> 462 </tr> 463 </table> 464 </div><div class="memdoc"> 465 466 <p>Multiply two elements of Fq12. </p> 467 <dl class="params"><dt>Parameters</dt><dd> 468 <table class="params"> 469 <tr><td class="paramdir">[out]</td><td class="paramname">result</td><td>of multiplying left and right. </td></tr> 470 <tr><td class="paramdir">[in]</td><td class="paramname">left</td><td>The first operand to be multiplied. </td></tr> 471 <tr><td class="paramdir">[in]</td><td class="paramname">right</td><td>The second operand to be multiplied. </td></tr> 472 </table> 473 </dd> 474 </dl> 475 476 </div> 477 </div> 478 <a id="ac1b44bbceb1c648b2b880871c8b52195"></a> 479 <h2 class="memtitle"><span class="permalink"><a href="#ac1b44bbceb1c648b2b880871c8b52195">◆ </a></span>Fq12MulSpecial()</h2> 480 481 <div class="memitem"> 482 <div class="memproto"> 483 <table class="memname"> 484 <tr> 485 <td class="memname">void Fq12MulSpecial </td> 486 <td>(</td> 487 <td class="paramtype"><a class="el" href="struct_fq12_elem.html">Fq12Elem</a> * </td> 488 <td class="paramname"><em>result</em>, </td> 489 </tr> 490 <tr> 491 <td class="paramkey"></td> 492 <td></td> 493 <td class="paramtype"><a class="el" href="struct_fq12_elem.html">Fq12Elem</a> const * </td> 494 <td class="paramname"><em>left</em>, </td> 495 </tr> 496 <tr> 497 <td class="paramkey"></td> 498 <td></td> 499 <td class="paramtype"><a class="el" href="struct_fq12_elem.html">Fq12Elem</a> const * </td> 500 <td class="paramname"><em>right</em> </td> 501 </tr> 502 <tr> 503 <td></td> 504 <td>)</td> 505 <td></td><td></td> 506 </tr> 507 </table> 508 </div><div class="memdoc"> 509 510 <p>Multiply two elements of Fq12. </p> 511 <p>Requires that b[2] = b[4] = b[5] = 0. where right = ((b[0], b[2], b[4]), (b[1], b[3], b[5]))</p> 512 <dl class="params"><dt>Parameters</dt><dd> 513 <table class="params"> 514 <tr><td class="paramdir">[out]</td><td class="paramname">result</td><td>of multiplying left and right. </td></tr> 515 <tr><td class="paramdir">[in]</td><td class="paramname">left</td><td>The first operand to be multiplied. </td></tr> 516 <tr><td class="paramdir">[in]</td><td class="paramname">right</td><td>The second operand to be multiplied. </td></tr> 517 </table> 518 </dd> 519 </dl> 520 521 </div> 522 </div> 523 <a id="ae88eb95c37c9db2e37e14d8a9304fadd"></a> 524 <h2 class="memtitle"><span class="permalink"><a href="#ae88eb95c37c9db2e37e14d8a9304fadd">◆ </a></span>Fq12MultiExp()</h2> 525 526 <div class="memitem"> 527 <div class="memproto"> 528 <table class="memname"> 529 <tr> 530 <td class="memname">void Fq12MultiExp </td> 531 <td>(</td> 532 <td class="paramtype"><a class="el" href="struct_fq12_elem.html">Fq12Elem</a> * </td> 533 <td class="paramname"><em>result</em>, </td> 534 </tr> 535 <tr> 536 <td class="paramkey"></td> 537 <td></td> 538 <td class="paramtype"><a class="el" href="struct_fq12_elem.html">Fq12Elem</a> const * </td> 539 <td class="paramname"><em>base0</em>, </td> 540 </tr> 541 <tr> 542 <td class="paramkey"></td> 543 <td></td> 544 <td class="paramtype"><a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const * </td> 545 <td class="paramname"><em>exp0</em>, </td> 546 </tr> 547 <tr> 548 <td class="paramkey"></td> 549 <td></td> 550 <td class="paramtype"><a class="el" href="struct_fq12_elem.html">Fq12Elem</a> const * </td> 551 <td class="paramname"><em>base1</em>, </td> 552 </tr> 553 <tr> 554 <td class="paramkey"></td> 555 <td></td> 556 <td class="paramtype"><a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const * </td> 557 <td class="paramname"><em>exp1</em>, </td> 558 </tr> 559 <tr> 560 <td class="paramkey"></td> 561 <td></td> 562 <td class="paramtype"><a class="el" href="struct_fq12_elem.html">Fq12Elem</a> const * </td> 563 <td class="paramname"><em>base2</em>, </td> 564 </tr> 565 <tr> 566 <td class="paramkey"></td> 567 <td></td> 568 <td class="paramtype"><a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const * </td> 569 <td class="paramname"><em>exp2</em>, </td> 570 </tr> 571 <tr> 572 <td class="paramkey"></td> 573 <td></td> 574 <td class="paramtype"><a class="el" href="struct_fq12_elem.html">Fq12Elem</a> const * </td> 575 <td class="paramname"><em>base3</em>, </td> 576 </tr> 577 <tr> 578 <td class="paramkey"></td> 579 <td></td> 580 <td class="paramtype"><a class="el" href="struct_very_large_int.html">VeryLargeInt</a> const * </td> 581 <td class="paramname"><em>exp3</em> </td> 582 </tr> 583 <tr> 584 <td></td> 585 <td>)</td> 586 <td></td><td></td> 587 </tr> 588 </table> 589 </div><div class="memdoc"> 590 591 <p>Multiply of exponentiation of elements of Fq12 by a large integers. </p> 592 <dl class="params"><dt>Parameters</dt><dd> 593 <table class="params"> 594 <tr><td class="paramdir">[out]</td><td class="paramname">result</td><td>target. </td></tr> 595 <tr><td class="paramdir">[in]</td><td class="paramname">base0</td><td>the base. </td></tr> 596 <tr><td class="paramdir">[in]</td><td class="paramname">exp0</td><td>the exponent. </td></tr> 597 <tr><td class="paramdir">[in]</td><td class="paramname">base1</td><td>the base. </td></tr> 598 <tr><td class="paramdir">[in]</td><td class="paramname">exp1</td><td>the exponent. </td></tr> 599 <tr><td class="paramdir">[in]</td><td class="paramname">base2</td><td>the base. </td></tr> 600 <tr><td class="paramdir">[in]</td><td class="paramname">exp2</td><td>the exponent. </td></tr> 601 <tr><td class="paramdir">[in]</td><td class="paramname">base3</td><td>the base. </td></tr> 602 <tr><td class="paramdir">[in]</td><td class="paramname">exp3</td><td>the exponent. </td></tr> 603 </table> 604 </dd> 605 </dl> 606 607 </div> 608 </div> 609 <a id="af3fd9055d559c592eb5715bb261c072b"></a> 610 <h2 class="memtitle"><span class="permalink"><a href="#af3fd9055d559c592eb5715bb261c072b">◆ </a></span>Fq12Neg()</h2> 611 612 <div class="memitem"> 613 <div class="memproto"> 614 <table class="memname"> 615 <tr> 616 <td class="memname">void Fq12Neg </td> 617 <td>(</td> 618 <td class="paramtype"><a class="el" href="struct_fq12_elem.html">Fq12Elem</a> * </td> 619 <td class="paramname"><em>result</em>, </td> 620 </tr> 621 <tr> 622 <td class="paramkey"></td> 623 <td></td> 624 <td class="paramtype"><a class="el" href="struct_fq12_elem.html">Fq12Elem</a> const * </td> 625 <td class="paramname"><em>in</em> </td> 626 </tr> 627 <tr> 628 <td></td> 629 <td>)</td> 630 <td></td><td></td> 631 </tr> 632 </table> 633 </div><div class="memdoc"> 634 635 <p>Negate an element of Fq12. </p> 636 <dl class="params"><dt>Parameters</dt><dd> 637 <table class="params"> 638 <tr><td class="paramdir">[out]</td><td class="paramname">result</td><td>the negative of the element. </td></tr> 639 <tr><td class="paramdir">[in]</td><td class="paramname">in</td><td>the element to negate. </td></tr> 640 </table> 641 </dd> 642 </dl> 643 644 </div> 645 </div> 646 <a id="acd16f86f83021d44d25389ad9f701597"></a> 647 <h2 class="memtitle"><span class="permalink"><a href="#acd16f86f83021d44d25389ad9f701597">◆ </a></span>Fq12Set()</h2> 648 649 <div class="memitem"> 650 <div class="memproto"> 651 <table class="memname"> 652 <tr> 653 <td class="memname">void Fq12Set </td> 654 <td>(</td> 655 <td class="paramtype"><a class="el" href="struct_fq12_elem.html">Fq12Elem</a> * </td> 656 <td class="paramname"><em>result</em>, </td> 657 </tr> 658 <tr> 659 <td class="paramkey"></td> 660 <td></td> 661 <td class="paramtype">uint32_t </td> 662 <td class="paramname"><em>val</em> </td> 663 </tr> 664 <tr> 665 <td></td> 666 <td>)</td> 667 <td></td><td></td> 668 </tr> 669 </table> 670 </div><div class="memdoc"> 671 672 <p>Set an element's value. </p> 673 <dl class="params"><dt>Parameters</dt><dd> 674 <table class="params"> 675 <tr><td class="paramdir">[out]</td><td class="paramname">result</td><td>target. </td></tr> 676 <tr><td class="paramdir">[in]</td><td class="paramname">val</td><td>value to set. </td></tr> 677 </table> 678 </dd> 679 </dl> 680 681 </div> 682 </div> 683 <a id="a1ad8710126bb4906d6170dd8ab30e43a"></a> 684 <h2 class="memtitle"><span class="permalink"><a href="#a1ad8710126bb4906d6170dd8ab30e43a">◆ </a></span>Fq12SqCyc()</h2> 685 686 <div class="memitem"> 687 <div class="memproto"> 688 <table class="memname"> 689 <tr> 690 <td class="memname">void Fq12SqCyc </td> 691 <td>(</td> 692 <td class="paramtype"><a class="el" href="struct_fq12_elem.html">Fq12Elem</a> * </td> 693 <td class="paramname"><em>result</em>, </td> 694 </tr> 695 <tr> 696 <td class="paramkey"></td> 697 <td></td> 698 <td class="paramtype"><a class="el" href="struct_fq12_elem.html">Fq12Elem</a> const * </td> 699 <td class="paramname"><em>in</em> </td> 700 </tr> 701 <tr> 702 <td></td> 703 <td>)</td> 704 <td></td><td></td> 705 </tr> 706 </table> 707 </div><div class="memdoc"> 708 709 <p>Calculate the cyclotomic square of an element of fq12. </p> 710 <dl class="params"><dt>Parameters</dt><dd> 711 <table class="params"> 712 <tr><td class="paramdir">[in,out]</td><td class="paramname">result</td><td>result of the cyclotomic square. </td></tr> 713 <tr><td class="paramdir">[in]</td><td class="paramname">in</td><td>the base. </td></tr> 714 </table> 715 </dd> 716 </dl> 717 718 </div> 719 </div> 720 <a id="a12e88a0bbfcc24b1863754f5e027d28e"></a> 721 <h2 class="memtitle"><span class="permalink"><a href="#a12e88a0bbfcc24b1863754f5e027d28e">◆ </a></span>Fq12Square()</h2> 722 723 <div class="memitem"> 724 <div class="memproto"> 725 <table class="memname"> 726 <tr> 727 <td class="memname">void Fq12Square </td> 728 <td>(</td> 729 <td class="paramtype"><a class="el" href="struct_fq12_elem.html">Fq12Elem</a> * </td> 730 <td class="paramname"><em>result</em>, </td> 731 </tr> 732 <tr> 733 <td class="paramkey"></td> 734 <td></td> 735 <td class="paramtype"><a class="el" href="struct_fq12_elem.html">Fq12Elem</a> const * </td> 736 <td class="paramname"><em>in</em> </td> 737 </tr> 738 <tr> 739 <td></td> 740 <td>)</td> 741 <td></td><td></td> 742 </tr> 743 </table> 744 </div><div class="memdoc"> 745 746 <p>Square an element of Fq12. </p> 747 <dl class="params"><dt>Parameters</dt><dd> 748 <table class="params"> 749 <tr><td class="paramdir">[out]</td><td class="paramname">result</td><td>the square of the element. </td></tr> 750 <tr><td class="paramdir">[in]</td><td class="paramname">in</td><td>the element to square. </td></tr> 751 </table> 752 </dd> 753 </dl> 754 755 </div> 756 </div> 757 <a id="a80c3da69a0991423a728e9b74a2dfe15"></a> 758 <h2 class="memtitle"><span class="permalink"><a href="#a80c3da69a0991423a728e9b74a2dfe15">◆ </a></span>Fq12Sub()</h2> 759 760 <div class="memitem"> 761 <div class="memproto"> 762 <table class="memname"> 763 <tr> 764 <td class="memname">void Fq12Sub </td> 765 <td>(</td> 766 <td class="paramtype"><a class="el" href="struct_fq12_elem.html">Fq12Elem</a> * </td> 767 <td class="paramname"><em>result</em>, </td> 768 </tr> 769 <tr> 770 <td class="paramkey"></td> 771 <td></td> 772 <td class="paramtype"><a class="el" href="struct_fq12_elem.html">Fq12Elem</a> const * </td> 773 <td class="paramname"><em>left</em>, </td> 774 </tr> 775 <tr> 776 <td class="paramkey"></td> 777 <td></td> 778 <td class="paramtype"><a class="el" href="struct_fq12_elem.html">Fq12Elem</a> const * </td> 779 <td class="paramname"><em>right</em> </td> 780 </tr> 781 <tr> 782 <td></td> 783 <td>)</td> 784 <td></td><td></td> 785 </tr> 786 </table> 787 </div><div class="memdoc"> 788 789 <p>Subtract two elements of Fq12. </p> 790 <dl class="params"><dt>Parameters</dt><dd> 791 <table class="params"> 792 <tr><td class="paramdir">[out]</td><td class="paramname">result</td><td>of subtracting left from right. </td></tr> 793 <tr><td class="paramdir">[in]</td><td class="paramname">left</td><td>The operand to be subtracted from. </td></tr> 794 <tr><td class="paramdir">[in]</td><td class="paramname">right</td><td>The operand to subtract. </td></tr> 795 </table> 796 </dd> 797 </dl> 798 799 </div> 800 </div> 801 </div><!-- contents --> 802 </div><!-- doc-content --> 803 <!-- HTML footer for doxygen 1.8.10--> 804 <!-- start footer part --> 805 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> 806 <ul> 807 <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="fq12_8h.html">fq12.h</a></li> 808 <li class="footer"> 809 © 2016-2017 Intel Corporation 810 </li> 811 </ul> 812 </div> 813 </body> 814 </html> 815