<!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: Globals</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">
&#160;

<h3><a id="index_o"></a>- o -</h3><ul>
<li>OMASK_25519
: <a class="el" href="fp__25519_8h.html#a703f025fcc6bb807354f7c120cd6f9d7">fp_25519.h</a>
</li>
<li>OMASK_256PME
: <a class="el" href="fp__256PME_8h.html#ad44abf57cca40eeeb7dc05bc3215144c">fp_256PME.h</a>
</li>
<li>OMASK_256PMW
: <a class="el" href="fp__256PMW_8h.html#a36034c557ca6233b3ead9c0fa05dc450">fp_256PMW.h</a>
</li>
<li>OMASK_384PM
: <a class="el" href="fp__384PM_8h.html#ada09e67c410f61867d5afcb675491b65">fp_384PM.h</a>
</li>
<li>OMASK_512PM
: <a class="el" href="fp__512PM_8h.html#a653d51995946cefb3421c5b9eb6d1547">fp_512PM.h</a>
</li>
<li>OMASK_ANSSI
: <a class="el" href="fp__ANSSI_8h.html#afe3ed618a3933bca5137ce5d66609fe8">fp_ANSSI.h</a>
</li>
<li>OMASK_BLS24
: <a class="el" href="fp__BLS24_8h.html#a2c14f6d6fbbd5fd1542576d0c0bea32a">fp_BLS24.h</a>
</li>
<li>OMASK_BLS381
: <a class="el" href="fp__BLS381_8h.html#a471bfc2f9466a419ae316aa5431e1b89">fp_BLS381.h</a>
</li>
<li>OMASK_BLS383
: <a class="el" href="fp__BLS383_8h.html#a512051744ea7446b52bf082fb7305bdc">fp_BLS383.h</a>
</li>
<li>OMASK_BLS461
: <a class="el" href="fp__BLS461_8h.html#a089863b6a95422baa694f5e99494bb8c">fp_BLS461.h</a>
</li>
<li>OMASK_BLS48
: <a class="el" href="fp__BLS48_8h.html#ab9f8b274c79cc77fe113c5121c4250fd">fp_BLS48.h</a>
</li>
<li>OMASK_BN254
: <a class="el" href="fp__BN254_8h.html#a237041adecb729b288aa6a243c4a0cac">fp_BN254.h</a>
</li>
<li>OMASK_BN254CX
: <a class="el" href="fp__BN254CX_8h.html#ad3b8410e93853e777ae71c9b6dda4733">fp_BN254CX.h</a>
</li>
<li>OMASK_BRAINPOOL
: <a class="el" href="fp__BRAINPOOL_8h.html#a7cdc9fc43cdefb2debb0f5dbb962dad0">fp_BRAINPOOL.h</a>
</li>
<li>OMASK_C41417
: <a class="el" href="fp__C41417_8h.html#a11bad18fccfdc8ba7e8c9518cbd69da2">fp_C41417.h</a>
</li>
<li>OMASK_FP256BN
: <a class="el" href="fp__FP256BN_8h.html#ab3bcf2ff9556f47af0a48823f9889f24">fp_FP256BN.h</a>
</li>
<li>OMASK_FP512BN
: <a class="el" href="fp__FP512BN_8h.html#af4a011e2dcb439904a6cb7573e1dd69a">fp_FP512BN.h</a>
</li>
<li>OMASK_GOLDILOCKS
: <a class="el" href="fp__GOLDILOCKS_8h.html#ac06414179c36d3bdfcb7eea5a587391b">fp_GOLDILOCKS.h</a>
</li>
<li>OMASK_HIFIVE
: <a class="el" href="fp__HIFIVE_8h.html#a3f6ef0baec26453c5925ff0da0b27bde">fp_HIFIVE.h</a>
</li>
<li>OMASK_NIST256
: <a class="el" href="fp__NIST256_8h.html#aae4d7e3db16f3a886f7c03ac2491665a">fp_NIST256.h</a>
</li>
<li>OMASK_NIST384
: <a class="el" href="fp__NIST384_8h.html#ab21a9a373fdf45f2be611156c5c94601">fp_NIST384.h</a>
</li>
<li>OMASK_NIST521
: <a class="el" href="fp__NIST521_8h.html#a31752211fa548c9c301a337a6a86680b">fp_NIST521.h</a>
</li>
<li>OMASK_SECP256K1
: <a class="el" href="fp__SECP256K1_8h.html#af5ef913e46aa9e34e7864b8a8fedc9f1">fp_SECP256K1.h</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>
