<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.15"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>AMCL: Data Fields</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>
<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.15 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- 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 class="contents">
<div class="textblock">Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:</div>

<h3><a id="index_y"></a>- y -</h3><ul>
<li>y
: <a class="el" href="structECP2__BLS381.html#ae8424716de5d48342c0ee5d79d40948a">ECP2_BLS381</a>
, <a class="el" href="structECP2__BLS383.html#a2fb7a297dc894c1c84c04f3abae67dcb">ECP2_BLS383</a>
, <a class="el" href="structECP2__BLS461.html#a684ee481984c5d62ab2c2af2aeefe047">ECP2_BLS461</a>
, <a class="el" href="structECP2__BN254.html#a1246b38f4143fdb63493ecd16804df47">ECP2_BN254</a>
, <a class="el" href="structECP2__BN254CX.html#ad8e724504853deaf78e1b022d33f0efc">ECP2_BN254CX</a>
, <a class="el" href="structECP2__FP256BN.html#ac357dfbe094a211df6aa1b885da3b9d8">ECP2_FP256BN</a>
, <a class="el" href="structECP2__FP512BN.html#a75db226d9f00e5c28d228255bc2791b9">ECP2_FP512BN</a>
, <a class="el" href="structECP4__BLS24.html#a0d6f24c2f8bd515988d0502641e867c7">ECP4_BLS24</a>
, <a class="el" href="structECP8__BLS48.html#aef25439754713d83926310f1baaa870f">ECP8_BLS48</a>
, <a class="el" href="structECP__ANSSI.html#ac1bd22b8ac199955a95ff32b1c3da0ca">ECP_ANSSI</a>
, <a class="el" href="structECP__BLS24.html#af7f9f1dee13f6c228e76e6f3d9be97ab">ECP_BLS24</a>
, <a class="el" href="structECP__BLS381.html#a1a9c649995a6aef7ce18576ba9b7e3fd">ECP_BLS381</a>
, <a class="el" href="structECP__BLS383.html#a1fb2fb18190287d95fff8e4beb8b3ae8">ECP_BLS383</a>
, <a class="el" href="structECP__BLS461.html#a17237d367ef794ea15cbe97798ab02d2">ECP_BLS461</a>
, <a class="el" href="structECP__BLS48.html#ac4052dd744d15bb8f7b41b371aaeaeb4">ECP_BLS48</a>
, <a class="el" href="structECP__BN254.html#a0ef0e686389b04a7b1c3596721a84d17">ECP_BN254</a>
, <a class="el" href="structECP__BN254CX.html#a477806d9e94aff9d204f9045b2912ffc">ECP_BN254CX</a>
, <a class="el" href="structECP__BRAINPOOL.html#a910d4a13a583fb884912ed6404758e7a">ECP_BRAINPOOL</a>
, <a class="el" href="structECP__C41417.html#a4be38d2f543f871520f7a79bd1b34b00">ECP_C41417</a>
, <a class="el" href="structECP__ED25519.html#a7a3e2a9ada63586477b796193dd9c0ed">ECP_ED25519</a>
, <a class="el" href="structECP__FP256BN.html#a9e21b748f6bbe020b4e08c2af8af5b16">ECP_FP256BN</a>
, <a class="el" href="structECP__FP512BN.html#af77c2077fb71e255266f27b60e242f5b">ECP_FP512BN</a>
, <a class="el" href="structECP__GOLDILOCKS.html#ae9ed1c1e25fa1dca989e5629faac9571">ECP_GOLDILOCKS</a>
, <a class="el" href="structECP__HIFIVE.html#a778a9f7241940c1fe3dde7b9d4fc2e26">ECP_HIFIVE</a>
, <a class="el" href="structECP__NIST256.html#ac71e2a54c7a45d9eae5ffe7c1268ad53">ECP_NIST256</a>
, <a class="el" href="structECP__NIST384.html#a1b5e3bcafcc0aca41fbc1ac6881184b0">ECP_NIST384</a>
, <a class="el" href="structECP__NIST521.html#aa92a4fe2a315a3cd2444736665d267b0">ECP_NIST521</a>
, <a class="el" href="structECP__NUMS256E.html#a56fa88e957f6c63b74df8b7c9eba0ce0">ECP_NUMS256E</a>
, <a class="el" href="structECP__NUMS256W.html#aac9ca24c2f5863117dbeb093fe87081a">ECP_NUMS256W</a>
, <a class="el" href="structECP__NUMS384E.html#a51341b9fbd6d761fdc6eda99eb1e55af">ECP_NUMS384E</a>
, <a class="el" href="structECP__NUMS384W.html#a32d1bd177f22b0c7b5df5344864cc630">ECP_NUMS384W</a>
, <a class="el" href="structECP__NUMS512E.html#aa194ee32b966375c761a677f3650e929">ECP_NUMS512E</a>
, <a class="el" href="structECP__NUMS512W.html#ad9b3161bc84da855bd672d2bc461365d">ECP_NUMS512W</a>
, <a class="el" href="structECP__SECP256K1.html#a28cef227284d8b287132f21cc32ae987">ECP_SECP256K1</a>
</li>
<li>Y_0
: <a class="el" href="structgcm.html#ab563f98721cb4bc12047849582f296c9">gcm</a>
</li>
</ul>
</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.15
</small></address>
</body>
</html>
