blob: 203fabb1da34c9e67cd8c15f959a983646360485 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>AMCL: fp2_FP256BN.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">AMCL
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_df7310d1a865926cc859bcfb1880083f.html">include</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">fp2_FP256BN.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>FP2 Header File.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="fp__FP256BN_8h_source.html">fp_FP256BN.h</a>&quot;</code><br />
</div>
<p><a href="fp2__FP256BN_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">FP2 Structure - quadratic extension field. <a href="structFP2__FP256BN.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:adf7390977e811eb5ac3bf23a862b0ce4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fp2__FP256BN_8h.html#adf7390977e811eb5ac3bf23a862b0ce4">FP2_FP256BN_iszilch</a> (<a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *x)</td></tr>
<tr class="memdesc:adf7390977e811eb5ac3bf23a862b0ce4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests for FP2 equal to zero. <a href="#adf7390977e811eb5ac3bf23a862b0ce4">More...</a><br /></td></tr>
<tr class="separator:adf7390977e811eb5ac3bf23a862b0ce4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a33e28f51df1847a589aa066ad4e0dd2a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fp2__FP256BN_8h.html#a33e28f51df1847a589aa066ad4e0dd2a">FP2_FP256BN_cmove</a> (<a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *x, <a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *y, int s)</td></tr>
<tr class="memdesc:a33e28f51df1847a589aa066ad4e0dd2a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Conditional copy of FP2 number. <a href="#a33e28f51df1847a589aa066ad4e0dd2a">More...</a><br /></td></tr>
<tr class="separator:a33e28f51df1847a589aa066ad4e0dd2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a78bd5907dab56196909b461a1d668fd8"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fp2__FP256BN_8h.html#a78bd5907dab56196909b461a1d668fd8">FP2_FP256BN_isunity</a> (<a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *x)</td></tr>
<tr class="memdesc:a78bd5907dab56196909b461a1d668fd8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests for FP2 equal to one. <a href="#a78bd5907dab56196909b461a1d668fd8">More...</a><br /></td></tr>
<tr class="separator:a78bd5907dab56196909b461a1d668fd8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afafff550f25d87a837a7da8ad716be3d"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fp2__FP256BN_8h.html#afafff550f25d87a837a7da8ad716be3d">FP2_FP256BN_equals</a> (<a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *x, <a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *y)</td></tr>
<tr class="memdesc:afafff550f25d87a837a7da8ad716be3d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests for equality of two FP2s. <a href="#afafff550f25d87a837a7da8ad716be3d">More...</a><br /></td></tr>
<tr class="separator:afafff550f25d87a837a7da8ad716be3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aae1ac7562e2a736eab90136ae82897a8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fp2__FP256BN_8h.html#aae1ac7562e2a736eab90136ae82897a8">FP2_FP256BN_from_FPs</a> (<a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *x, <a class="el" href="structFP__FP256BN.html">FP_FP256BN</a> *a, <a class="el" href="structFP__FP256BN.html">FP_FP256BN</a> *b)</td></tr>
<tr class="memdesc:aae1ac7562e2a736eab90136ae82897a8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialise FP2 from two FP numbers. <a href="#aae1ac7562e2a736eab90136ae82897a8">More...</a><br /></td></tr>
<tr class="separator:aae1ac7562e2a736eab90136ae82897a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afd93ace5362f82012ddef6e37c55e220"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fp2__FP256BN_8h.html#afd93ace5362f82012ddef6e37c55e220">FP2_FP256BN_from_BIGs</a> (<a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *x, <a class="el" href="big__256__56_8h.html#abea3e70a8a87f28329ed8e48af7bb244">BIG_256_56</a> a, <a class="el" href="big__256__56_8h.html#abea3e70a8a87f28329ed8e48af7bb244">BIG_256_56</a> b)</td></tr>
<tr class="memdesc:afd93ace5362f82012ddef6e37c55e220"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialise FP2 from two BIG integers. <a href="#afd93ace5362f82012ddef6e37c55e220">More...</a><br /></td></tr>
<tr class="separator:afd93ace5362f82012ddef6e37c55e220"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac8b7f1265e344b8b3b792bc35d9738ac"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fp2__FP256BN_8h.html#ac8b7f1265e344b8b3b792bc35d9738ac">FP2_FP256BN_from_FP</a> (<a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *x, <a class="el" href="structFP__FP256BN.html">FP_FP256BN</a> *a)</td></tr>
<tr class="memdesc:ac8b7f1265e344b8b3b792bc35d9738ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialise FP2 from single FP. <a href="#ac8b7f1265e344b8b3b792bc35d9738ac">More...</a><br /></td></tr>
<tr class="separator:ac8b7f1265e344b8b3b792bc35d9738ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4b24beda4af84b84efcb1827ddc4a8e5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fp2__FP256BN_8h.html#a4b24beda4af84b84efcb1827ddc4a8e5">FP2_FP256BN_from_BIG</a> (<a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *x, <a class="el" href="big__256__56_8h.html#abea3e70a8a87f28329ed8e48af7bb244">BIG_256_56</a> a)</td></tr>
<tr class="memdesc:a4b24beda4af84b84efcb1827ddc4a8e5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialise FP2 from single BIG. <a href="#a4b24beda4af84b84efcb1827ddc4a8e5">More...</a><br /></td></tr>
<tr class="separator:a4b24beda4af84b84efcb1827ddc4a8e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a072ca4e2a190c4bf678418b79dd9b318"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fp2__FP256BN_8h.html#a072ca4e2a190c4bf678418b79dd9b318">FP2_FP256BN_copy</a> (<a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *x, <a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *y)</td></tr>
<tr class="memdesc:a072ca4e2a190c4bf678418b79dd9b318"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy FP2 to another FP2. <a href="#a072ca4e2a190c4bf678418b79dd9b318">More...</a><br /></td></tr>
<tr class="separator:a072ca4e2a190c4bf678418b79dd9b318"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a57a6af2e5f2921acc5aabff8d935031e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fp2__FP256BN_8h.html#a57a6af2e5f2921acc5aabff8d935031e">FP2_FP256BN_zero</a> (<a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *x)</td></tr>
<tr class="memdesc:a57a6af2e5f2921acc5aabff8d935031e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set FP2 to zero. <a href="#a57a6af2e5f2921acc5aabff8d935031e">More...</a><br /></td></tr>
<tr class="separator:a57a6af2e5f2921acc5aabff8d935031e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5b859685fdd6c242b777a0916e2d4cc7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fp2__FP256BN_8h.html#a5b859685fdd6c242b777a0916e2d4cc7">FP2_FP256BN_one</a> (<a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *x)</td></tr>
<tr class="memdesc:a5b859685fdd6c242b777a0916e2d4cc7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set FP2 to unity. <a href="#a5b859685fdd6c242b777a0916e2d4cc7">More...</a><br /></td></tr>
<tr class="separator:a5b859685fdd6c242b777a0916e2d4cc7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaf9f2ad8d5cd5d7b7bc0e0c4e9dc22d7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fp2__FP256BN_8h.html#aaf9f2ad8d5cd5d7b7bc0e0c4e9dc22d7">FP2_FP256BN_neg</a> (<a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *x, <a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *y)</td></tr>
<tr class="memdesc:aaf9f2ad8d5cd5d7b7bc0e0c4e9dc22d7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Negation of FP2. <a href="#aaf9f2ad8d5cd5d7b7bc0e0c4e9dc22d7">More...</a><br /></td></tr>
<tr class="separator:aaf9f2ad8d5cd5d7b7bc0e0c4e9dc22d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8b2497b3089310c5ca08d4b19a082384"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fp2__FP256BN_8h.html#a8b2497b3089310c5ca08d4b19a082384">FP2_FP256BN_conj</a> (<a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *x, <a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *y)</td></tr>
<tr class="memdesc:a8b2497b3089310c5ca08d4b19a082384"><td class="mdescLeft">&#160;</td><td class="mdescRight">Conjugation of FP2. <a href="#a8b2497b3089310c5ca08d4b19a082384">More...</a><br /></td></tr>
<tr class="separator:a8b2497b3089310c5ca08d4b19a082384"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa172c6ac8ea756e7acec847ef65054d1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fp2__FP256BN_8h.html#aa172c6ac8ea756e7acec847ef65054d1">FP2_FP256BN_add</a> (<a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *x, <a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *y, <a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *z)</td></tr>
<tr class="memdesc:aa172c6ac8ea756e7acec847ef65054d1"><td class="mdescLeft">&#160;</td><td class="mdescRight">addition of two FP2s <a href="#aa172c6ac8ea756e7acec847ef65054d1">More...</a><br /></td></tr>
<tr class="separator:aa172c6ac8ea756e7acec847ef65054d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa6fffecf48380002479b49921207ba79"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fp2__FP256BN_8h.html#aa6fffecf48380002479b49921207ba79">FP2_FP256BN_sub</a> (<a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *x, <a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *y, <a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *z)</td></tr>
<tr class="memdesc:aa6fffecf48380002479b49921207ba79"><td class="mdescLeft">&#160;</td><td class="mdescRight">subtraction of two FP2s <a href="#aa6fffecf48380002479b49921207ba79">More...</a><br /></td></tr>
<tr class="separator:aa6fffecf48380002479b49921207ba79"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac28ce653d3b8811b1ea0a0f636e3d590"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fp2__FP256BN_8h.html#ac28ce653d3b8811b1ea0a0f636e3d590">FP2_FP256BN_pmul</a> (<a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *x, <a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *y, <a class="el" href="structFP__FP256BN.html">FP_FP256BN</a> *b)</td></tr>
<tr class="memdesc:ac28ce653d3b8811b1ea0a0f636e3d590"><td class="mdescLeft">&#160;</td><td class="mdescRight">Multiplication of an FP2 by an FP. <a href="#ac28ce653d3b8811b1ea0a0f636e3d590">More...</a><br /></td></tr>
<tr class="separator:ac28ce653d3b8811b1ea0a0f636e3d590"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a98705d2e9cd523b7a395e132c825f013"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fp2__FP256BN_8h.html#a98705d2e9cd523b7a395e132c825f013">FP2_FP256BN_imul</a> (<a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *x, <a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *y, int i)</td></tr>
<tr class="memdesc:a98705d2e9cd523b7a395e132c825f013"><td class="mdescLeft">&#160;</td><td class="mdescRight">Multiplication of an FP2 by a small integer. <a href="#a98705d2e9cd523b7a395e132c825f013">More...</a><br /></td></tr>
<tr class="separator:a98705d2e9cd523b7a395e132c825f013"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a07a6ab98b50fac08beb1302e66aa51c1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fp2__FP256BN_8h.html#a07a6ab98b50fac08beb1302e66aa51c1">FP2_FP256BN_sqr</a> (<a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *x, <a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *y)</td></tr>
<tr class="memdesc:a07a6ab98b50fac08beb1302e66aa51c1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Squaring an FP2. <a href="#a07a6ab98b50fac08beb1302e66aa51c1">More...</a><br /></td></tr>
<tr class="separator:a07a6ab98b50fac08beb1302e66aa51c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a96942fd3fb01a38c22fc96b7c6594ace"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fp2__FP256BN_8h.html#a96942fd3fb01a38c22fc96b7c6594ace">FP2_FP256BN_mul</a> (<a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *x, <a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *y, <a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *z)</td></tr>
<tr class="memdesc:a96942fd3fb01a38c22fc96b7c6594ace"><td class="mdescLeft">&#160;</td><td class="mdescRight">Multiplication of two FP2s. <a href="#a96942fd3fb01a38c22fc96b7c6594ace">More...</a><br /></td></tr>
<tr class="separator:a96942fd3fb01a38c22fc96b7c6594ace"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a339e2d7a5d0300e890904f0cd40cd4e1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fp2__FP256BN_8h.html#a339e2d7a5d0300e890904f0cd40cd4e1">FP2_FP256BN_output</a> (<a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *x)</td></tr>
<tr class="memdesc:a339e2d7a5d0300e890904f0cd40cd4e1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Formats and outputs an FP2 to the console. <a href="#a339e2d7a5d0300e890904f0cd40cd4e1">More...</a><br /></td></tr>
<tr class="separator:a339e2d7a5d0300e890904f0cd40cd4e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0b09b77179ac7b04337b6f1cec3c6728"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fp2__FP256BN_8h.html#a0b09b77179ac7b04337b6f1cec3c6728">FP2_FP256BN_rawoutput</a> (<a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *x)</td></tr>
<tr class="memdesc:a0b09b77179ac7b04337b6f1cec3c6728"><td class="mdescLeft">&#160;</td><td class="mdescRight">Formats and outputs an FP2 to the console in raw form (for debugging) <a href="#a0b09b77179ac7b04337b6f1cec3c6728">More...</a><br /></td></tr>
<tr class="separator:a0b09b77179ac7b04337b6f1cec3c6728"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac60bfb6a57298a0ae718443f306b3438"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fp2__FP256BN_8h.html#ac60bfb6a57298a0ae718443f306b3438">FP2_FP256BN_inv</a> (<a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *x, <a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *y)</td></tr>
<tr class="memdesc:ac60bfb6a57298a0ae718443f306b3438"><td class="mdescLeft">&#160;</td><td class="mdescRight">Inverting an FP2. <a href="#ac60bfb6a57298a0ae718443f306b3438">More...</a><br /></td></tr>
<tr class="separator:ac60bfb6a57298a0ae718443f306b3438"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9372a5a1d084161fd9fdeb79370d11e5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fp2__FP256BN_8h.html#a9372a5a1d084161fd9fdeb79370d11e5">FP2_FP256BN_div2</a> (<a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *x, <a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *y)</td></tr>
<tr class="memdesc:a9372a5a1d084161fd9fdeb79370d11e5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Divide an FP2 by 2. <a href="#a9372a5a1d084161fd9fdeb79370d11e5">More...</a><br /></td></tr>
<tr class="separator:a9372a5a1d084161fd9fdeb79370d11e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aec0f45c5eea4c6cbe58afb7053896aa3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fp2__FP256BN_8h.html#aec0f45c5eea4c6cbe58afb7053896aa3">FP2_FP256BN_mul_ip</a> (<a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *x)</td></tr>
<tr class="memdesc:aec0f45c5eea4c6cbe58afb7053896aa3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Multiply an FP2 by (1+sqrt(-1)) <a href="#aec0f45c5eea4c6cbe58afb7053896aa3">More...</a><br /></td></tr>
<tr class="separator:aec0f45c5eea4c6cbe58afb7053896aa3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a302353dd211a8c196aaad24dbc9ad293"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fp2__FP256BN_8h.html#a302353dd211a8c196aaad24dbc9ad293">FP2_FP256BN_div_ip2</a> (<a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *x)</td></tr>
<tr class="memdesc:a302353dd211a8c196aaad24dbc9ad293"><td class="mdescLeft">&#160;</td><td class="mdescRight">Divide an FP2 by (1+sqrt(-1))/2 -. <a href="#a302353dd211a8c196aaad24dbc9ad293">More...</a><br /></td></tr>
<tr class="separator:a302353dd211a8c196aaad24dbc9ad293"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a77af0cfed0057f8288cc82b02d55d6cb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fp2__FP256BN_8h.html#a77af0cfed0057f8288cc82b02d55d6cb">FP2_FP256BN_div_ip</a> (<a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *x)</td></tr>
<tr class="memdesc:a77af0cfed0057f8288cc82b02d55d6cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Divide an FP2 by (1+sqrt(-1)) <a href="#a77af0cfed0057f8288cc82b02d55d6cb">More...</a><br /></td></tr>
<tr class="separator:a77af0cfed0057f8288cc82b02d55d6cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7fc4f451da7a8a5f75ef948f415a1710"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fp2__FP256BN_8h.html#a7fc4f451da7a8a5f75ef948f415a1710">FP2_FP256BN_norm</a> (<a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *x)</td></tr>
<tr class="memdesc:a7fc4f451da7a8a5f75ef948f415a1710"><td class="mdescLeft">&#160;</td><td class="mdescRight">Normalises the components of an FP2. <a href="#a7fc4f451da7a8a5f75ef948f415a1710">More...</a><br /></td></tr>
<tr class="separator:a7fc4f451da7a8a5f75ef948f415a1710"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad469dbaa969194d64368a8af0254aa4e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fp2__FP256BN_8h.html#ad469dbaa969194d64368a8af0254aa4e">FP2_FP256BN_reduce</a> (<a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *x)</td></tr>
<tr class="memdesc:ad469dbaa969194d64368a8af0254aa4e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reduces all components of possibly unreduced FP2 mod Modulus. <a href="#ad469dbaa969194d64368a8af0254aa4e">More...</a><br /></td></tr>
<tr class="separator:ad469dbaa969194d64368a8af0254aa4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aff88cafbfb19bab12e889f5a92d45d72"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fp2__FP256BN_8h.html#aff88cafbfb19bab12e889f5a92d45d72">FP2_FP256BN_pow</a> (<a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *x, <a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *y, <a class="el" href="big__256__56_8h.html#abea3e70a8a87f28329ed8e48af7bb244">BIG_256_56</a> b)</td></tr>
<tr class="memdesc:aff88cafbfb19bab12e889f5a92d45d72"><td class="mdescLeft">&#160;</td><td class="mdescRight">Raises an FP2 to the power of a BIG. <a href="#aff88cafbfb19bab12e889f5a92d45d72">More...</a><br /></td></tr>
<tr class="separator:aff88cafbfb19bab12e889f5a92d45d72"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5dbf5fafc5b4d9b36f012bfeb5b4b6ad"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fp2__FP256BN_8h.html#a5dbf5fafc5b4d9b36f012bfeb5b4b6ad">FP2_FP256BN_sqrt</a> (<a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *x, <a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *y)</td></tr>
<tr class="memdesc:a5dbf5fafc5b4d9b36f012bfeb5b4b6ad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Square root of an FP2. <a href="#a5dbf5fafc5b4d9b36f012bfeb5b4b6ad">More...</a><br /></td></tr>
<tr class="separator:a5dbf5fafc5b4d9b36f012bfeb5b4b6ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acd4cf0ffad8810374c5dbf63dfbaad66"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fp2__FP256BN_8h.html#acd4cf0ffad8810374c5dbf63dfbaad66">FP2_FP256BN_times_i</a> (<a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *x)</td></tr>
<tr class="memdesc:acd4cf0ffad8810374c5dbf63dfbaad66"><td class="mdescLeft">&#160;</td><td class="mdescRight">Multiply an FP2 by sqrt(-1) <a href="#acd4cf0ffad8810374c5dbf63dfbaad66">More...</a><br /></td></tr>
<tr class="separator:acd4cf0ffad8810374c5dbf63dfbaad66"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><dl class="section author"><dt>Author</dt><dd>Mike Scott </dd></dl>
</div><h2 class="groupheader">Function Documentation</h2>
<a id="aa172c6ac8ea756e7acec847ef65054d1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa172c6ac8ea756e7acec847ef65054d1">&#9670;&nbsp;</a></span>FP2_FP256BN_add()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void FP2_FP256BN_add </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *&#160;</td>
<td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *&#160;</td>
<td class="paramname"><em>y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *&#160;</td>
<td class="paramname"><em>z</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">x</td><td>FP2 instance, on exit = y+z </td></tr>
<tr><td class="paramname">y</td><td>FP2 instance </td></tr>
<tr><td class="paramname">z</td><td>FP2 instance </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a33e28f51df1847a589aa066ad4e0dd2a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a33e28f51df1847a589aa066ad4e0dd2a">&#9670;&nbsp;</a></span>FP2_FP256BN_cmove()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void FP2_FP256BN_cmove </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *&#160;</td>
<td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *&#160;</td>
<td class="paramname"><em>y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>s</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Conditionally copies second parameter to the first (without branching) </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">x</td><td>FP2 instance, set to y if s!=0 </td></tr>
<tr><td class="paramname">y</td><td>another FP2 instance </td></tr>
<tr><td class="paramname">s</td><td>copy only takes place if not equal to 0 </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a8b2497b3089310c5ca08d4b19a082384"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8b2497b3089310c5ca08d4b19a082384">&#9670;&nbsp;</a></span>FP2_FP256BN_conj()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void FP2_FP256BN_conj </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *&#160;</td>
<td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *&#160;</td>
<td class="paramname"><em>y</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>If y=(a,b) on exit x=(a,-b) </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">x</td><td>FP2 instance, on exit = conj(y) </td></tr>
<tr><td class="paramname">y</td><td>FP2 instance </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a072ca4e2a190c4bf678418b79dd9b318"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a072ca4e2a190c4bf678418b79dd9b318">&#9670;&nbsp;</a></span>FP2_FP256BN_copy()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void FP2_FP256BN_copy </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *&#160;</td>
<td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *&#160;</td>
<td class="paramname"><em>y</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">x</td><td>FP2 instance, on exit = y </td></tr>
<tr><td class="paramname">y</td><td>FP2 instance to be copied </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a9372a5a1d084161fd9fdeb79370d11e5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9372a5a1d084161fd9fdeb79370d11e5">&#9670;&nbsp;</a></span>FP2_FP256BN_div2()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void FP2_FP256BN_div2 </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *&#160;</td>
<td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *&#160;</td>
<td class="paramname"><em>y</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">x</td><td>FP2 instance, on exit = y/2 </td></tr>
<tr><td class="paramname">y</td><td>FP2 instance </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a77af0cfed0057f8288cc82b02d55d6cb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a77af0cfed0057f8288cc82b02d55d6cb">&#9670;&nbsp;</a></span>FP2_FP256BN_div_ip()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void FP2_FP256BN_div_ip </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *&#160;</td>
<td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Note that (1+sqrt(-1)) is irreducible for FP4 </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">x</td><td>FP2 instance, on exit = x/(1+sqrt(-1)) </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a302353dd211a8c196aaad24dbc9ad293"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a302353dd211a8c196aaad24dbc9ad293">&#9670;&nbsp;</a></span>FP2_FP256BN_div_ip2()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void FP2_FP256BN_div_ip2 </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *&#160;</td>
<td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Note that (1+sqrt(-1)) is irreducible for FP4 </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">x</td><td>FP2 instance, on exit = 2x/(1+sqrt(-1)) </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="afafff550f25d87a837a7da8ad716be3d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afafff550f25d87a837a7da8ad716be3d">&#9670;&nbsp;</a></span>FP2_FP256BN_equals()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int FP2_FP256BN_equals </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *&#160;</td>
<td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *&#160;</td>
<td class="paramname"><em>y</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">x</td><td>FP2 instance to be compared </td></tr>
<tr><td class="paramname">y</td><td>FP2 instance to be compared </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>1 if x=y, else returns 0 </dd></dl>
</div>
</div>
<a id="a4b24beda4af84b84efcb1827ddc4a8e5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4b24beda4af84b84efcb1827ddc4a8e5">&#9670;&nbsp;</a></span>FP2_FP256BN_from_BIG()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void FP2_FP256BN_from_BIG </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *&#160;</td>
<td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="big__256__56_8h.html#abea3e70a8a87f28329ed8e48af7bb244">BIG_256_56</a>&#160;</td>
<td class="paramname"><em>a</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Imaginary part is set to zero </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">x</td><td>FP2 instance to be initialised </td></tr>
<tr><td class="paramname">a</td><td>BIG to form real part of FP2 </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="afd93ace5362f82012ddef6e37c55e220"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afd93ace5362f82012ddef6e37c55e220">&#9670;&nbsp;</a></span>FP2_FP256BN_from_BIGs()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void FP2_FP256BN_from_BIGs </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *&#160;</td>
<td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="big__256__56_8h.html#abea3e70a8a87f28329ed8e48af7bb244">BIG_256_56</a>&#160;</td>
<td class="paramname"><em>a</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="big__256__56_8h.html#abea3e70a8a87f28329ed8e48af7bb244">BIG_256_56</a>&#160;</td>
<td class="paramname"><em>b</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">x</td><td>FP2 instance to be initialised </td></tr>
<tr><td class="paramname">a</td><td>BIG to form real part of FP2 </td></tr>
<tr><td class="paramname">b</td><td>BIG to form imaginary part of FP2 </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ac8b7f1265e344b8b3b792bc35d9738ac"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac8b7f1265e344b8b3b792bc35d9738ac">&#9670;&nbsp;</a></span>FP2_FP256BN_from_FP()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void FP2_FP256BN_from_FP </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *&#160;</td>
<td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structFP__FP256BN.html">FP_FP256BN</a> *&#160;</td>
<td class="paramname"><em>a</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Imaginary part is set to zero </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">x</td><td>FP2 instance to be initialised </td></tr>
<tr><td class="paramname">a</td><td>FP to form real part of FP2 </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="aae1ac7562e2a736eab90136ae82897a8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aae1ac7562e2a736eab90136ae82897a8">&#9670;&nbsp;</a></span>FP2_FP256BN_from_FPs()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void FP2_FP256BN_from_FPs </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *&#160;</td>
<td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structFP__FP256BN.html">FP_FP256BN</a> *&#160;</td>
<td class="paramname"><em>a</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structFP__FP256BN.html">FP_FP256BN</a> *&#160;</td>
<td class="paramname"><em>b</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">x</td><td>FP2 instance to be initialised </td></tr>
<tr><td class="paramname">a</td><td>FP to form real part of FP2 </td></tr>
<tr><td class="paramname">b</td><td>FP to form imaginary part of FP2 </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a98705d2e9cd523b7a395e132c825f013"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a98705d2e9cd523b7a395e132c825f013">&#9670;&nbsp;</a></span>FP2_FP256BN_imul()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void FP2_FP256BN_imul </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *&#160;</td>
<td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *&#160;</td>
<td class="paramname"><em>y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>i</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">x</td><td>FP2 instance, on exit = y*i </td></tr>
<tr><td class="paramname">y</td><td>FP2 instance </td></tr>
<tr><td class="paramname">i</td><td>an integer </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ac60bfb6a57298a0ae718443f306b3438"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac60bfb6a57298a0ae718443f306b3438">&#9670;&nbsp;</a></span>FP2_FP256BN_inv()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void FP2_FP256BN_inv </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *&#160;</td>
<td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *&#160;</td>
<td class="paramname"><em>y</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">x</td><td>FP2 instance, on exit = 1/y </td></tr>
<tr><td class="paramname">y</td><td>FP2 instance </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a78bd5907dab56196909b461a1d668fd8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a78bd5907dab56196909b461a1d668fd8">&#9670;&nbsp;</a></span>FP2_FP256BN_isunity()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int FP2_FP256BN_isunity </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *&#160;</td>
<td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">x</td><td>FP2 instance to be tested </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>1 if x=1, else returns 0 </dd></dl>
</div>
</div>
<a id="adf7390977e811eb5ac3bf23a862b0ce4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adf7390977e811eb5ac3bf23a862b0ce4">&#9670;&nbsp;</a></span>FP2_FP256BN_iszilch()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int FP2_FP256BN_iszilch </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *&#160;</td>
<td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">x</td><td>FP2 number to be tested </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>1 if zero, else returns 0 </dd></dl>
</div>
</div>
<a id="a96942fd3fb01a38c22fc96b7c6594ace"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a96942fd3fb01a38c22fc96b7c6594ace">&#9670;&nbsp;</a></span>FP2_FP256BN_mul()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void FP2_FP256BN_mul </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *&#160;</td>
<td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *&#160;</td>
<td class="paramname"><em>y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *&#160;</td>
<td class="paramname"><em>z</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">x</td><td>FP2 instance, on exit = y*z </td></tr>
<tr><td class="paramname">y</td><td>FP2 instance </td></tr>
<tr><td class="paramname">z</td><td>FP2 instance </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="aec0f45c5eea4c6cbe58afb7053896aa3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aec0f45c5eea4c6cbe58afb7053896aa3">&#9670;&nbsp;</a></span>FP2_FP256BN_mul_ip()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void FP2_FP256BN_mul_ip </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *&#160;</td>
<td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Note that (1+sqrt(-1)) is irreducible for FP4 </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">x</td><td>FP2 instance, on exit = x*(1+sqrt(-1)) </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="aaf9f2ad8d5cd5d7b7bc0e0c4e9dc22d7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaf9f2ad8d5cd5d7b7bc0e0c4e9dc22d7">&#9670;&nbsp;</a></span>FP2_FP256BN_neg()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void FP2_FP256BN_neg </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *&#160;</td>
<td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *&#160;</td>
<td class="paramname"><em>y</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">x</td><td>FP2 instance, on exit = -y </td></tr>
<tr><td class="paramname">y</td><td>FP2 instance </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a7fc4f451da7a8a5f75ef948f415a1710"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7fc4f451da7a8a5f75ef948f415a1710">&#9670;&nbsp;</a></span>FP2_FP256BN_norm()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void FP2_FP256BN_norm </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *&#160;</td>
<td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">x</td><td>FP2 instance to be normalised </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a5b859685fdd6c242b777a0916e2d4cc7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5b859685fdd6c242b777a0916e2d4cc7">&#9670;&nbsp;</a></span>FP2_FP256BN_one()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void FP2_FP256BN_one </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *&#160;</td>
<td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">x</td><td>FP2 instance to be set to one </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a339e2d7a5d0300e890904f0cd40cd4e1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a339e2d7a5d0300e890904f0cd40cd4e1">&#9670;&nbsp;</a></span>FP2_FP256BN_output()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void FP2_FP256BN_output </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *&#160;</td>
<td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">x</td><td>FP2 instance </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ac28ce653d3b8811b1ea0a0f636e3d590"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac28ce653d3b8811b1ea0a0f636e3d590">&#9670;&nbsp;</a></span>FP2_FP256BN_pmul()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void FP2_FP256BN_pmul </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *&#160;</td>
<td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *&#160;</td>
<td class="paramname"><em>y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structFP__FP256BN.html">FP_FP256BN</a> *&#160;</td>
<td class="paramname"><em>b</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">x</td><td>FP2 instance, on exit = y*b </td></tr>
<tr><td class="paramname">y</td><td>FP2 instance </td></tr>
<tr><td class="paramname">b</td><td>FP residue </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="aff88cafbfb19bab12e889f5a92d45d72"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aff88cafbfb19bab12e889f5a92d45d72">&#9670;&nbsp;</a></span>FP2_FP256BN_pow()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void FP2_FP256BN_pow </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *&#160;</td>
<td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *&#160;</td>
<td class="paramname"><em>y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="big__256__56_8h.html#abea3e70a8a87f28329ed8e48af7bb244">BIG_256_56</a>&#160;</td>
<td class="paramname"><em>b</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">x</td><td>FP2 instance, on exit = y^b </td></tr>
<tr><td class="paramname">y</td><td>FP2 instance </td></tr>
<tr><td class="paramname">b</td><td>BIG number </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a0b09b77179ac7b04337b6f1cec3c6728"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0b09b77179ac7b04337b6f1cec3c6728">&#9670;&nbsp;</a></span>FP2_FP256BN_rawoutput()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void FP2_FP256BN_rawoutput </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *&#160;</td>
<td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">x</td><td>FP2 instance </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ad469dbaa969194d64368a8af0254aa4e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad469dbaa969194d64368a8af0254aa4e">&#9670;&nbsp;</a></span>FP2_FP256BN_reduce()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void FP2_FP256BN_reduce </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *&#160;</td>
<td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">x</td><td>FP2 instance, on exit reduced mod Modulus </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a07a6ab98b50fac08beb1302e66aa51c1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a07a6ab98b50fac08beb1302e66aa51c1">&#9670;&nbsp;</a></span>FP2_FP256BN_sqr()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void FP2_FP256BN_sqr </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *&#160;</td>
<td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *&#160;</td>
<td class="paramname"><em>y</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">x</td><td>FP2 instance, on exit = y^2 </td></tr>
<tr><td class="paramname">y</td><td>FP2 instance </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a5dbf5fafc5b4d9b36f012bfeb5b4b6ad"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5dbf5fafc5b4d9b36f012bfeb5b4b6ad">&#9670;&nbsp;</a></span>FP2_FP256BN_sqrt()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int FP2_FP256BN_sqrt </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *&#160;</td>
<td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *&#160;</td>
<td class="paramname"><em>y</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">x</td><td>FP2 instance, on exit = sqrt(y) </td></tr>
<tr><td class="paramname">y</td><td>FP2 instance </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="aa6fffecf48380002479b49921207ba79"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa6fffecf48380002479b49921207ba79">&#9670;&nbsp;</a></span>FP2_FP256BN_sub()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void FP2_FP256BN_sub </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *&#160;</td>
<td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *&#160;</td>
<td class="paramname"><em>y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *&#160;</td>
<td class="paramname"><em>z</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">x</td><td>FP2 instance, on exit = y-z </td></tr>
<tr><td class="paramname">y</td><td>FP2 instance </td></tr>
<tr><td class="paramname">z</td><td>FP2 instance </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="acd4cf0ffad8810374c5dbf63dfbaad66"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acd4cf0ffad8810374c5dbf63dfbaad66">&#9670;&nbsp;</a></span>FP2_FP256BN_times_i()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void FP2_FP256BN_times_i </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *&#160;</td>
<td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Note that -1 is QNR </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">x</td><td>FP2 instance, on exit = x*sqrt(-1) </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a57a6af2e5f2921acc5aabff8d935031e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a57a6af2e5f2921acc5aabff8d935031e">&#9670;&nbsp;</a></span>FP2_FP256BN_zero()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void FP2_FP256BN_zero </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structFP2__FP256BN.html">FP2_FP256BN</a> *&#160;</td>
<td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">x</td><td>FP2 instance to be set to zero </td></tr>
</table>
</dd>
</dl>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>