NASFAQ/CRS_final/doc/html/memory_8c.html

1389 lines
65 KiB
HTML
Raw Normal View History

2022-02-13 19:50:50 +00:00
<!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=11"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>CRS: /home/steaky/git/CRS/src/EllipticCurves/memory.c 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>
<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="projectlogo"><img alt="Logo" src="475805_1_En_14_Fig2_HTML.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">CRS
</div>
<div id="projectbrief">Isogeny-based post-quantum Diffie-Hellman protocol.</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @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:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</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_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_97be7e3b2e8c3a17ca81f31233de3221.html">EllipticCurves</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle"><div class="title">memory.c File Reference</div></div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="memory_8h_source.html">memory.h</a>&quot;</code><br />
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ad42968f187d44dbb6d560544c1c820cf"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="memory_8c.html#ad42968f187d44dbb6d560544c1c820cf">SW_curve_init</a> (<a class="el" href="struct_s_w__curve__t.html">SW_curve_t</a> *E, const fq_ctx_t *F)</td></tr>
<tr class="separator:ad42968f187d44dbb6d560544c1c820cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a91c3bb16fe26f2cf4bc368d6813a3a96"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="memory_8c.html#a91c3bb16fe26f2cf4bc368d6813a3a96">SW_curve_set</a> (<a class="el" href="struct_s_w__curve__t.html">SW_curve_t</a> *E, const fq_ctx_t *F, const fq_t a, const fq_t b)</td></tr>
<tr class="separator:a91c3bb16fe26f2cf4bc368d6813a3a96"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac9bda5eb4aef27f6561563817fe5032f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="memory_8c.html#ac9bda5eb4aef27f6561563817fe5032f">SW_curve_set_si</a> (<a class="el" href="struct_s_w__curve__t.html">SW_curve_t</a> *E, const fq_ctx_t *F, const slong a, const slong b)</td></tr>
<tr class="separator:ac9bda5eb4aef27f6561563817fe5032f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1cf9c9642e876bd50b654dd3f99a0eee"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="memory_8c.html#a1cf9c9642e876bd50b654dd3f99a0eee">SW_curve_set_su</a> (<a class="el" href="struct_s_w__curve__t.html">SW_curve_t</a> *E, const fq_ctx_t *F, const ulong a, const ulong b)</td></tr>
<tr class="separator:a1cf9c9642e876bd50b654dd3f99a0eee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0e3bb5bfec0fd97eb43d40ba9b900f27"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="memory_8c.html#a0e3bb5bfec0fd97eb43d40ba9b900f27">SW_curve_set_str</a> (<a class="el" href="struct_s_w__curve__t.html">SW_curve_t</a> *E, const fq_ctx_t *F, const char *str_a, const char *str_b, int b)</td></tr>
<tr class="separator:a0e3bb5bfec0fd97eb43d40ba9b900f27"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2213cae39dbd5c05fc2cf3b439dba8aa"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="memory_8c.html#a2213cae39dbd5c05fc2cf3b439dba8aa">SW_curve_clear</a> (<a class="el" href="struct_s_w__curve__t.html">SW_curve_t</a> *E)</td></tr>
<tr class="separator:a2213cae39dbd5c05fc2cf3b439dba8aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2732a3d560335beaadddd7dd977dca1d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="memory_8c.html#a2732a3d560335beaadddd7dd977dca1d">SW_point_init</a> (<a class="el" href="struct_s_w__point__t.html">SW_point_t</a> *P, <a class="el" href="struct_s_w__curve__t.html">SW_curve_t</a> *E)</td></tr>
<tr class="separator:a2732a3d560335beaadddd7dd977dca1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4772a81fdadb26678b63c6fc1d0cd1ca"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="memory_8c.html#a4772a81fdadb26678b63c6fc1d0cd1ca">SW_point_set</a> (<a class="el" href="struct_s_w__point__t.html">SW_point_t</a> *P, const fq_t x, const fq_t y, const fq_t z, <a class="el" href="struct_s_w__curve__t.html">SW_curve_t</a> *E)</td></tr>
<tr class="separator:a4772a81fdadb26678b63c6fc1d0cd1ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4909f77621b53e6956adcedcf7f5604f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="memory_8c.html#a4909f77621b53e6956adcedcf7f5604f">SW_point_set_si</a> (<a class="el" href="struct_s_w__point__t.html">SW_point_t</a> *P, const slong x, const slong y, const slong z, <a class="el" href="struct_s_w__curve__t.html">SW_curve_t</a> *E)</td></tr>
<tr class="separator:a4909f77621b53e6956adcedcf7f5604f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a92f61c40036a69dc319c78643934df92"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="memory_8c.html#a92f61c40036a69dc319c78643934df92">SW_point_set_ui</a> (<a class="el" href="struct_s_w__point__t.html">SW_point_t</a> *P, const ulong x, const ulong y, const ulong z, <a class="el" href="struct_s_w__curve__t.html">SW_curve_t</a> *E)</td></tr>
<tr class="separator:a92f61c40036a69dc319c78643934df92"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac7d6e6d5b89fefde3d73c563a9b8ab06"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="memory_8c.html#ac7d6e6d5b89fefde3d73c563a9b8ab06">SW_point_clear</a> (<a class="el" href="struct_s_w__point__t.html">SW_point_t</a> *P)</td></tr>
<tr class="separator:ac7d6e6d5b89fefde3d73c563a9b8ab06"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afb4772f943162600b419c7398e1aa95b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="memory_8c.html#afb4772f943162600b419c7398e1aa95b">MG_curve_init</a> (<a class="el" href="struct_m_g__curve__t.html">MG_curve_t</a> *E, const fq_ctx_t *F)</td></tr>
<tr class="separator:afb4772f943162600b419c7398e1aa95b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6ccb51c842c864bfb43801e1eeccc292"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="memory_8c.html#a6ccb51c842c864bfb43801e1eeccc292">MG_curve_set_</a> (<a class="el" href="struct_m_g__curve__t.html">MG_curve_t</a> *rop, <a class="el" href="struct_m_g__curve__t.html">MG_curve_t</a> *op)</td></tr>
<tr class="separator:a6ccb51c842c864bfb43801e1eeccc292"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a09ce008feec5f3a986676bd1444a016f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="memory_8c.html#a09ce008feec5f3a986676bd1444a016f">MG_curve_set</a> (<a class="el" href="struct_m_g__curve__t.html">MG_curve_t</a> *E, const fq_ctx_t *F, const fq_t A, const fq_t B)</td></tr>
<tr class="separator:a09ce008feec5f3a986676bd1444a016f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5def7b7c8346e32c6ca178e8c7a46155"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="memory_8c.html#a5def7b7c8346e32c6ca178e8c7a46155">MG_curve_set_si</a> (<a class="el" href="struct_m_g__curve__t.html">MG_curve_t</a> *E, const fq_ctx_t *F, const slong A, const slong B)</td></tr>
<tr class="separator:a5def7b7c8346e32c6ca178e8c7a46155"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a70795cf429f9d23e631d0538250bddb0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="memory_8c.html#a70795cf429f9d23e631d0538250bddb0">MG_curve_set_ui</a> (<a class="el" href="struct_m_g__curve__t.html">MG_curve_t</a> *E, const fq_ctx_t *F, const ulong A, const ulong B)</td></tr>
<tr class="separator:a70795cf429f9d23e631d0538250bddb0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aecd12f09450c00342bfe3cc1782894ff"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="memory_8c.html#aecd12f09450c00342bfe3cc1782894ff">MG_curve_set_str</a> (<a class="el" href="struct_m_g__curve__t.html">MG_curve_t</a> *E, const fq_ctx_t *F, const char *str_A, const char *str_B, int b)</td></tr>
<tr class="separator:aecd12f09450c00342bfe3cc1782894ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab4b6e982985bb31d368faf0b8a01b028"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="memory_8c.html#ab4b6e982985bb31d368faf0b8a01b028">MG_curve_clear</a> (<a class="el" href="struct_m_g__curve__t.html">MG_curve_t</a> *E)</td></tr>
<tr class="separator:ab4b6e982985bb31d368faf0b8a01b028"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a271d669f77bea3fa219c8b33e8b160a1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="memory_8c.html#a271d669f77bea3fa219c8b33e8b160a1">MG_point_init</a> (<a class="el" href="struct_m_g__point__t.html">MG_point_t</a> *P, <a class="el" href="struct_m_g__curve__t.html">MG_curve_t</a> *E)</td></tr>
<tr class="separator:a271d669f77bea3fa219c8b33e8b160a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a05609d3a1c5c02fc34ca24d91eb1c030"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="memory_8c.html#a05609d3a1c5c02fc34ca24d91eb1c030">MG_point_set</a> (<a class="el" href="struct_m_g__point__t.html">MG_point_t</a> *P, const fq_t X, const fq_t Z, <a class="el" href="struct_m_g__curve__t.html">MG_curve_t</a> *E)</td></tr>
<tr class="separator:a05609d3a1c5c02fc34ca24d91eb1c030"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8856f2d0a3ac169a5ae286c9342dac94"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="memory_8c.html#a8856f2d0a3ac169a5ae286c9342dac94">MG_point_set_</a> (<a class="el" href="struct_m_g__point__t.html">MG_point_t</a> *P, <a class="el" href="struct_m_g__point__t.html">MG_point_t</a> *Q)</td></tr>
<tr class="separator:a8856f2d0a3ac169a5ae286c9342dac94"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a28910c11c9602bda891233ce5c8f7f47"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="memory_8c.html#a28910c11c9602bda891233ce5c8f7f47">MG_point_set_si</a> (<a class="el" href="struct_m_g__point__t.html">MG_point_t</a> *P, const slong X, const slong Z, <a class="el" href="struct_m_g__curve__t.html">MG_curve_t</a> *E)</td></tr>
<tr class="separator:a28910c11c9602bda891233ce5c8f7f47"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0889ae92cf7c0e4b2b357ce7f8af2703"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="memory_8c.html#a0889ae92cf7c0e4b2b357ce7f8af2703">MG_point_set_ui</a> (<a class="el" href="struct_m_g__point__t.html">MG_point_t</a> *P, const ulong X, const ulong Z, <a class="el" href="struct_m_g__curve__t.html">MG_curve_t</a> *E)</td></tr>
<tr class="separator:a0889ae92cf7c0e4b2b357ce7f8af2703"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa9102c8868df5d35bee37b2168db33a9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="memory_8c.html#aa9102c8868df5d35bee37b2168db33a9">MG_point_set_fmpz</a> (<a class="el" href="struct_m_g__point__t.html">MG_point_t</a> *P, const fmpz_t X, const fmpz_t Z, <a class="el" href="struct_m_g__curve__t.html">MG_curve_t</a> *E)</td></tr>
<tr class="separator:aa9102c8868df5d35bee37b2168db33a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad2fdaff815986212fefd7ea9238c78d9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="memory_8c.html#ad2fdaff815986212fefd7ea9238c78d9">MG_point_set_str</a> (<a class="el" href="struct_m_g__point__t.html">MG_point_t</a> *P, const char *X, const char *Z, <a class="el" href="struct_m_g__curve__t.html">MG_curve_t</a> *E)</td></tr>
<tr class="separator:ad2fdaff815986212fefd7ea9238c78d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afe7df92a00da2d06f461e9163ce69c9f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="memory_8c.html#afe7df92a00da2d06f461e9163ce69c9f">MG_point_set_infty</a> (<a class="el" href="struct_m_g__point__t.html">MG_point_t</a> *P)</td></tr>
<tr class="separator:afe7df92a00da2d06f461e9163ce69c9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a75f3642e35d5737dbce121326f207d34"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="memory_8c.html#a75f3642e35d5737dbce121326f207d34">MG_point_clear</a> (<a class="el" href="struct_m_g__point__t.html">MG_point_t</a> *P)</td></tr>
<tr class="separator:a75f3642e35d5737dbce121326f207d34"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a68d9d5a4c32d5fa18a23a808c65500c1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="memory_8c.html#a68d9d5a4c32d5fa18a23a808c65500c1">TN_curve_init</a> (<a class="el" href="struct_t_n__curve__t.html">TN_curve_t</a> *E, fmpz_t l, const fq_ctx_t *F)</td></tr>
<tr class="separator:a68d9d5a4c32d5fa18a23a808c65500c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aac501c10909000f4b1b93f192a1b9320"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="memory_8c.html#aac501c10909000f4b1b93f192a1b9320">TN_curve_set</a> (<a class="el" href="struct_t_n__curve__t.html">TN_curve_t</a> *E, const fq_t b, const fq_t c, fmpz_t l, const fq_ctx_t *F)</td></tr>
<tr class="separator:aac501c10909000f4b1b93f192a1b9320"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af34dcc04599f1ce19c5ab813ca72f7ad"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="memory_8c.html#af34dcc04599f1ce19c5ab813ca72f7ad">TN_curve_set_</a> (<a class="el" href="struct_t_n__curve__t.html">TN_curve_t</a> *rop, <a class="el" href="struct_t_n__curve__t.html">TN_curve_t</a> *op)</td></tr>
<tr class="separator:af34dcc04599f1ce19c5ab813ca72f7ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8a6c551b4342042391f3fff003b74dde"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="memory_8c.html#a8a6c551b4342042391f3fff003b74dde">TN_curve_set_si</a> (<a class="el" href="struct_t_n__curve__t.html">TN_curve_t</a> *E, const slong b, const slong c, const slong l, const fq_ctx_t *F)</td></tr>
<tr class="separator:a8a6c551b4342042391f3fff003b74dde"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9dee607b3315876b00d1c84d4769b65c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="memory_8c.html#a9dee607b3315876b00d1c84d4769b65c">TN_curve_set_ui</a> (<a class="el" href="struct_t_n__curve__t.html">TN_curve_t</a> *E, const ulong b, const ulong c, ulong l, const fq_ctx_t *F)</td></tr>
<tr class="separator:a9dee607b3315876b00d1c84d4769b65c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5ffa669bfa1e37e0a233ce04ab7f3c92"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="memory_8c.html#a5ffa669bfa1e37e0a233ce04ab7f3c92">TN_curve_set_str</a> (<a class="el" href="struct_t_n__curve__t.html">TN_curve_t</a> *E, const char *str_b, const char *str_c, const char *str_l, int base, const fq_ctx_t *F)</td></tr>
<tr class="separator:a5ffa669bfa1e37e0a233ce04ab7f3c92"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aadf1f0bdc974812c094cd3acec7161f0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="memory_8c.html#aadf1f0bdc974812c094cd3acec7161f0">TN_curve_clear</a> (<a class="el" href="struct_t_n__curve__t.html">TN_curve_t</a> *E)</td></tr>
<tr class="separator:aadf1f0bdc974812c094cd3acec7161f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
<a id="ab4b6e982985bb31d368faf0b8a01b028" name="ab4b6e982985bb31d368faf0b8a01b028"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab4b6e982985bb31d368faf0b8a01b028">&#9670;&nbsp;</a></span>MG_curve_clear()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void MG_curve_clear </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_m_g__curve__t.html">MG_curve_t</a> *&#160;</td>
<td class="paramname"><em>E</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p >Clears the given curve, releasing any memory used. It must be reinitialised in order to be used again. </p>
</div>
</div>
<a id="afb4772f943162600b419c7398e1aa95b" name="afb4772f943162600b419c7398e1aa95b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afb4772f943162600b419c7398e1aa95b">&#9670;&nbsp;</a></span>MG_curve_init()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void MG_curve_init </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_m_g__curve__t.html">MG_curve_t</a> *&#160;</td>
<td class="paramname"><em>E</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const fq_ctx_t *&#160;</td>
<td class="paramname"><em>F</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p >Initializes E for use, with context F, and setting its coefficients to zero. A corresponding call to <a class="el" href="memory_8c.html#ab4b6e982985bb31d368faf0b8a01b028">MG_curve_clear()</a> must be made after finishing with the <a class="el" href="struct_m_g__curve__t.html">MG_curve_t</a> to free the memory used by the curve. </p>
</div>
</div>
<a id="a09ce008feec5f3a986676bd1444a016f" name="a09ce008feec5f3a986676bd1444a016f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a09ce008feec5f3a986676bd1444a016f">&#9670;&nbsp;</a></span>MG_curve_set()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void MG_curve_set </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_m_g__curve__t.html">MG_curve_t</a> *&#160;</td>
<td class="paramname"><em>E</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const fq_ctx_t *&#160;</td>
<td class="paramname"><em>F</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const fq_t&#160;</td>
<td class="paramname"><em>A</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const fq_t&#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">
<p >Sets E to elliptic curve over F in Montgomery form with coefficients A and B. Curve parameters are given as elements of F. </p>
</div>
</div>
<a id="a6ccb51c842c864bfb43801e1eeccc292" name="a6ccb51c842c864bfb43801e1eeccc292"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6ccb51c842c864bfb43801e1eeccc292">&#9670;&nbsp;</a></span>MG_curve_set_()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void MG_curve_set_ </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_m_g__curve__t.html">MG_curve_t</a> *&#160;</td>
<td class="paramname"><em>rop</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="struct_m_g__curve__t.html">MG_curve_t</a> *&#160;</td>
<td class="paramname"><em>op</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p >Sets elliptic curve rop in Montgomery form to curve op. This is aking to a deep copy. rop must be initialized. </p>
</div>
</div>
<a id="a5def7b7c8346e32c6ca178e8c7a46155" name="a5def7b7c8346e32c6ca178e8c7a46155"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5def7b7c8346e32c6ca178e8c7a46155">&#9670;&nbsp;</a></span>MG_curve_set_si()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void MG_curve_set_si </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_m_g__curve__t.html">MG_curve_t</a> *&#160;</td>
<td class="paramname"><em>E</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const fq_ctx_t *&#160;</td>
<td class="paramname"><em>F</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const slong&#160;</td>
<td class="paramname"><em>A</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const slong&#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">
<p >See <a class="el" href="memory_8c.html#a09ce008feec5f3a986676bd1444a016f">MG_curve_set()</a>. Curve coefficients are given as signed integers. </p>
</div>
</div>
<a id="aecd12f09450c00342bfe3cc1782894ff" name="aecd12f09450c00342bfe3cc1782894ff"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aecd12f09450c00342bfe3cc1782894ff">&#9670;&nbsp;</a></span>MG_curve_set_str()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int MG_curve_set_str </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_m_g__curve__t.html">MG_curve_t</a> *&#160;</td>
<td class="paramname"><em>E</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const fq_ctx_t *&#160;</td>
<td class="paramname"><em>F</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>str_A</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>str_B</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#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">
<p >See <a class="el" href="memory_8c.html#a09ce008feec5f3a986676bd1444a016f">MG_curve_set()</a>. Parameters are given as null-terminated strings, in base b. The base b can vary between 2 and 62, inclusive. Returns 0 if the string contain valid inputs and 1 otherwise. </p>
</div>
</div>
<a id="a70795cf429f9d23e631d0538250bddb0" name="a70795cf429f9d23e631d0538250bddb0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a70795cf429f9d23e631d0538250bddb0">&#9670;&nbsp;</a></span>MG_curve_set_ui()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void MG_curve_set_ui </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_m_g__curve__t.html">MG_curve_t</a> *&#160;</td>
<td class="paramname"><em>E</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const fq_ctx_t *&#160;</td>
<td class="paramname"><em>F</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const ulong&#160;</td>
<td class="paramname"><em>A</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const ulong&#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">
<p >See <a class="el" href="memory_8c.html#a09ce008feec5f3a986676bd1444a016f">MG_curve_set()</a>. Curve coefficients are given as unsigned integers. </p>
</div>
</div>
<a id="a75f3642e35d5737dbce121326f207d34" name="a75f3642e35d5737dbce121326f207d34"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a75f3642e35d5737dbce121326f207d34">&#9670;&nbsp;</a></span>MG_point_clear()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void MG_point_clear </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_m_g__point__t.html">MG_point_t</a> *&#160;</td>
<td class="paramname"><em>P</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p >Clears the given point, releasing anZ memorZ used. It must be reinitialised in order to be used again. </p>
</div>
</div>
<a id="a271d669f77bea3fa219c8b33e8b160a1" name="a271d669f77bea3fa219c8b33e8b160a1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a271d669f77bea3fa219c8b33e8b160a1">&#9670;&nbsp;</a></span>MG_point_init()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void MG_point_init </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_m_g__point__t.html">MG_point_t</a> *&#160;</td>
<td class="paramname"><em>P</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="struct_m_g__curve__t.html">MG_curve_t</a> *&#160;</td>
<td class="paramname"><em>E</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p >Initializes P for use, with context F, and setting its coefficients to zero. A corresponding call to <a class="el" href="memory_8c.html#ac7d6e6d5b89fefde3d73c563a9b8ab06">SW_point_clear()</a> must be made after finishing with the <a class="el" href="struct_s_w__point__t.html">SW_point_t</a> to free the memorZ used bZ the curve. TODO: swap F for E in parameters. A point is member of E not of F. </p>
</div>
</div>
<a id="a05609d3a1c5c02fc34ca24d91eb1c030" name="a05609d3a1c5c02fc34ca24d91eb1c030"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a05609d3a1c5c02fc34ca24d91eb1c030">&#9670;&nbsp;</a></span>MG_point_set()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void MG_point_set </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_m_g__point__t.html">MG_point_t</a> *&#160;</td>
<td class="paramname"><em>P</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const fq_t&#160;</td>
<td class="paramname"><em>X</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const fq_t&#160;</td>
<td class="paramname"><em>Z</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="struct_m_g__curve__t.html">MG_curve_t</a> *&#160;</td>
<td class="paramname"><em>E</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p >Sets P to point of elliptic curve E with coordinates X, Z, z. Point parameters are given as elements of F. TODO: Check if P and E's fields are correct </p>
</div>
</div>
<a id="a8856f2d0a3ac169a5ae286c9342dac94" name="a8856f2d0a3ac169a5ae286c9342dac94"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8856f2d0a3ac169a5ae286c9342dac94">&#9670;&nbsp;</a></span>MG_point_set_()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void MG_point_set_ </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_m_g__point__t.html">MG_point_t</a> *&#160;</td>
<td class="paramname"><em>P</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="struct_m_g__point__t.html">MG_point_t</a> *&#160;</td>
<td class="paramname"><em>Q</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p >Sets P to the same point as Q. </p>
</div>
</div>
<a id="aa9102c8868df5d35bee37b2168db33a9" name="aa9102c8868df5d35bee37b2168db33a9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa9102c8868df5d35bee37b2168db33a9">&#9670;&nbsp;</a></span>MG_point_set_fmpz()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void MG_point_set_fmpz </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_m_g__point__t.html">MG_point_t</a> *&#160;</td>
<td class="paramname"><em>P</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const fmpz_t&#160;</td>
<td class="paramname"><em>X</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const fmpz_t&#160;</td>
<td class="paramname"><em>Z</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="struct_m_g__curve__t.html">MG_curve_t</a> *&#160;</td>
<td class="paramname"><em>E</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p >See <a class="el" href="memory_8c.html#a05609d3a1c5c02fc34ca24d91eb1c030">MG_point_set()</a>. Point coordinates are given as strings of integers. </p>
</div>
</div>
<a id="afe7df92a00da2d06f461e9163ce69c9f" name="afe7df92a00da2d06f461e9163ce69c9f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afe7df92a00da2d06f461e9163ce69c9f">&#9670;&nbsp;</a></span>MG_point_set_infty()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void MG_point_set_infty </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_m_g__point__t.html">MG_point_t</a> *&#160;</td>
<td class="paramname"><em>P</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p >Sets P to the point at infinity on the underlying curve. </p>
</div>
</div>
<a id="a28910c11c9602bda891233ce5c8f7f47" name="a28910c11c9602bda891233ce5c8f7f47"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a28910c11c9602bda891233ce5c8f7f47">&#9670;&nbsp;</a></span>MG_point_set_si()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void MG_point_set_si </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_m_g__point__t.html">MG_point_t</a> *&#160;</td>
<td class="paramname"><em>P</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const slong&#160;</td>
<td class="paramname"><em>X</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const slong&#160;</td>
<td class="paramname"><em>Z</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="struct_m_g__curve__t.html">MG_curve_t</a> *&#160;</td>
<td class="paramname"><em>E</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p >See <a class="el" href="memory_8c.html#a05609d3a1c5c02fc34ca24d91eb1c030">MG_point_set()</a>. Point coordinates are given as signed integers. </p>
</div>
</div>
<a id="ad2fdaff815986212fefd7ea9238c78d9" name="ad2fdaff815986212fefd7ea9238c78d9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad2fdaff815986212fefd7ea9238c78d9">&#9670;&nbsp;</a></span>MG_point_set_str()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void MG_point_set_str </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_m_g__point__t.html">MG_point_t</a> *&#160;</td>
<td class="paramname"><em>P</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>X</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>Z</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="struct_m_g__curve__t.html">MG_curve_t</a> *&#160;</td>
<td class="paramname"><em>E</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p >See <a class="el" href="memory_8c.html#a05609d3a1c5c02fc34ca24d91eb1c030">MG_point_set()</a>. Point coordinates are given as strings of integers. </p>
</div>
</div>
<a id="a0889ae92cf7c0e4b2b357ce7f8af2703" name="a0889ae92cf7c0e4b2b357ce7f8af2703"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0889ae92cf7c0e4b2b357ce7f8af2703">&#9670;&nbsp;</a></span>MG_point_set_ui()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void MG_point_set_ui </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_m_g__point__t.html">MG_point_t</a> *&#160;</td>
<td class="paramname"><em>P</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const ulong&#160;</td>
<td class="paramname"><em>X</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const ulong&#160;</td>
<td class="paramname"><em>Z</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="struct_m_g__curve__t.html">MG_curve_t</a> *&#160;</td>
<td class="paramname"><em>E</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p >See <a class="el" href="memory_8c.html#a05609d3a1c5c02fc34ca24d91eb1c030">MG_point_set()</a>. Point coordinates are given as unsigned integers. </p>
</div>
</div>
<a id="a2213cae39dbd5c05fc2cf3b439dba8aa" name="a2213cae39dbd5c05fc2cf3b439dba8aa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2213cae39dbd5c05fc2cf3b439dba8aa">&#9670;&nbsp;</a></span>SW_curve_clear()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SW_curve_clear </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_s_w__curve__t.html">SW_curve_t</a> *&#160;</td>
<td class="paramname"><em>E</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p >Clears the given curve, releasing any memory used. It must be reinitialised in order to be used again. </p>
</div>
</div>
<a id="ad42968f187d44dbb6d560544c1c820cf" name="ad42968f187d44dbb6d560544c1c820cf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad42968f187d44dbb6d560544c1c820cf">&#9670;&nbsp;</a></span>SW_curve_init()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SW_curve_init </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_s_w__curve__t.html">SW_curve_t</a> *&#160;</td>
<td class="paramname"><em>E</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const fq_ctx_t *&#160;</td>
<td class="paramname"><em>F</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p >Initializes E for use, with context F, and setting its coefficients to zero. A corresponding call to <a class="el" href="memory_8c.html#a2213cae39dbd5c05fc2cf3b439dba8aa">SW_curve_clear()</a> must be made after finishing with the <a class="el" href="struct_s_w__curve__t.html">SW_curve_t</a> to free the memory used by the curve. </p>
</div>
</div>
<a id="a91c3bb16fe26f2cf4bc368d6813a3a96" name="a91c3bb16fe26f2cf4bc368d6813a3a96"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a91c3bb16fe26f2cf4bc368d6813a3a96">&#9670;&nbsp;</a></span>SW_curve_set()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SW_curve_set </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_s_w__curve__t.html">SW_curve_t</a> *&#160;</td>
<td class="paramname"><em>E</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const fq_ctx_t *&#160;</td>
<td class="paramname"><em>F</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const fq_t&#160;</td>
<td class="paramname"><em>a</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const fq_t&#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">
<p >Sets E to elliptic curve over F in Weierstrass form with coefficients a and b. Curve parameters are given as elements of F. </p>
</div>
</div>
<a id="ac9bda5eb4aef27f6561563817fe5032f" name="ac9bda5eb4aef27f6561563817fe5032f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac9bda5eb4aef27f6561563817fe5032f">&#9670;&nbsp;</a></span>SW_curve_set_si()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SW_curve_set_si </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_s_w__curve__t.html">SW_curve_t</a> *&#160;</td>
<td class="paramname"><em>E</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const fq_ctx_t *&#160;</td>
<td class="paramname"><em>F</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const slong&#160;</td>
<td class="paramname"><em>a</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const slong&#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">
<p >See <a class="el" href="memory_8c.html#a91c3bb16fe26f2cf4bc368d6813a3a96">SW_curve_set()</a>. Curve coefficients are given as signed integers. </p>
</div>
</div>
<a id="a0e3bb5bfec0fd97eb43d40ba9b900f27" name="a0e3bb5bfec0fd97eb43d40ba9b900f27"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0e3bb5bfec0fd97eb43d40ba9b900f27">&#9670;&nbsp;</a></span>SW_curve_set_str()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int SW_curve_set_str </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_s_w__curve__t.html">SW_curve_t</a> *&#160;</td>
<td class="paramname"><em>E</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const fq_ctx_t *&#160;</td>
<td class="paramname"><em>F</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>str_a</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>str_b</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#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">
<p >See <a class="el" href="memory_8c.html#a91c3bb16fe26f2cf4bc368d6813a3a96">SW_curve_set()</a>. Parameters are given as null-terminated strings, in base b. The base b can vary between 2 and 62, inclusive. Returns 0 if the string contain valid inputs and 1 otherwise. </p>
</div>
</div>
<a id="a1cf9c9642e876bd50b654dd3f99a0eee" name="a1cf9c9642e876bd50b654dd3f99a0eee"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1cf9c9642e876bd50b654dd3f99a0eee">&#9670;&nbsp;</a></span>SW_curve_set_su()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SW_curve_set_su </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_s_w__curve__t.html">SW_curve_t</a> *&#160;</td>
<td class="paramname"><em>E</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const fq_ctx_t *&#160;</td>
<td class="paramname"><em>F</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const ulong&#160;</td>
<td class="paramname"><em>a</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const ulong&#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">
<p >See <a class="el" href="memory_8c.html#a91c3bb16fe26f2cf4bc368d6813a3a96">SW_curve_set()</a>. Curve coefficients are given as unsigned integers. </p>
</div>
</div>
<a id="ac7d6e6d5b89fefde3d73c563a9b8ab06" name="ac7d6e6d5b89fefde3d73c563a9b8ab06"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac7d6e6d5b89fefde3d73c563a9b8ab06">&#9670;&nbsp;</a></span>SW_point_clear()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SW_point_clear </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_s_w__point__t.html">SW_point_t</a> *&#160;</td>
<td class="paramname"><em>P</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p >Clears the given point, releasing any memory used. It must be reinitialised in order to be used again. </p>
</div>
</div>
<a id="a2732a3d560335beaadddd7dd977dca1d" name="a2732a3d560335beaadddd7dd977dca1d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2732a3d560335beaadddd7dd977dca1d">&#9670;&nbsp;</a></span>SW_point_init()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SW_point_init </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_s_w__point__t.html">SW_point_t</a> *&#160;</td>
<td class="paramname"><em>P</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="struct_s_w__curve__t.html">SW_curve_t</a> *&#160;</td>
<td class="paramname"><em>E</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p >Initializes P for use, with context F, and setting its coefficients to zero. A corresponding call to <a class="el" href="memory_8c.html#ac7d6e6d5b89fefde3d73c563a9b8ab06">SW_point_clear()</a> must be made after finishing with the <a class="el" href="struct_s_w__point__t.html">SW_point_t</a> to free the memory used by the curve. TODO: swap F for E in parameters. A point is member of E not of F. </p>
</div>
</div>
<a id="a4772a81fdadb26678b63c6fc1d0cd1ca" name="a4772a81fdadb26678b63c6fc1d0cd1ca"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4772a81fdadb26678b63c6fc1d0cd1ca">&#9670;&nbsp;</a></span>SW_point_set()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SW_point_set </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_s_w__point__t.html">SW_point_t</a> *&#160;</td>
<td class="paramname"><em>P</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const fq_t&#160;</td>
<td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const fq_t&#160;</td>
<td class="paramname"><em>y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const fq_t&#160;</td>
<td class="paramname"><em>z</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="struct_s_w__curve__t.html">SW_curve_t</a> *&#160;</td>
<td class="paramname"><em>E</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p >Sets P to point of elliptic curve E with coordinates x, y, z. Point parameters are given as elements of F. TODO: Check if P and E's fields are correct </p>
</div>
</div>
<a id="a4909f77621b53e6956adcedcf7f5604f" name="a4909f77621b53e6956adcedcf7f5604f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4909f77621b53e6956adcedcf7f5604f">&#9670;&nbsp;</a></span>SW_point_set_si()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SW_point_set_si </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_s_w__point__t.html">SW_point_t</a> *&#160;</td>
<td class="paramname"><em>P</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const slong&#160;</td>
<td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const slong&#160;</td>
<td class="paramname"><em>y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const slong&#160;</td>
<td class="paramname"><em>z</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="struct_s_w__curve__t.html">SW_curve_t</a> *&#160;</td>
<td class="paramname"><em>E</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p >See <a class="el" href="memory_8c.html#a4772a81fdadb26678b63c6fc1d0cd1ca">SW_point_set()</a>. Point coordinates are given as signed integers. </p>
</div>
</div>
<a id="a92f61c40036a69dc319c78643934df92" name="a92f61c40036a69dc319c78643934df92"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a92f61c40036a69dc319c78643934df92">&#9670;&nbsp;</a></span>SW_point_set_ui()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SW_point_set_ui </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_s_w__point__t.html">SW_point_t</a> *&#160;</td>
<td class="paramname"><em>P</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const ulong&#160;</td>
<td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const ulong&#160;</td>
<td class="paramname"><em>y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const ulong&#160;</td>
<td class="paramname"><em>z</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="struct_s_w__curve__t.html">SW_curve_t</a> *&#160;</td>
<td class="paramname"><em>E</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p >See <a class="el" href="memory_8c.html#a4772a81fdadb26678b63c6fc1d0cd1ca">SW_point_set()</a>. Point coordinates are given as unsigned integers. </p>
</div>
</div>
<a id="aadf1f0bdc974812c094cd3acec7161f0" name="aadf1f0bdc974812c094cd3acec7161f0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aadf1f0bdc974812c094cd3acec7161f0">&#9670;&nbsp;</a></span>TN_curve_clear()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void TN_curve_clear </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_t_n__curve__t.html">TN_curve_t</a> *&#160;</td>
<td class="paramname"><em>E</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p >Clears the given curve, releasing any memory used. It must be reinitialised in order to be used again. </p>
</div>
</div>
<a id="a68d9d5a4c32d5fa18a23a808c65500c1" name="a68d9d5a4c32d5fa18a23a808c65500c1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a68d9d5a4c32d5fa18a23a808c65500c1">&#9670;&nbsp;</a></span>TN_curve_init()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void TN_curve_init </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_t_n__curve__t.html">TN_curve_t</a> *&#160;</td>
<td class="paramname"><em>E</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">fmpz_t&#160;</td>
<td class="paramname"><em>l</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const fq_ctx_t *&#160;</td>
<td class="paramname"><em>F</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p >Initializes E for use, with context F, and setting its coefficients to zero. A corresponding call to <a class="el" href="memory_8c.html#aadf1f0bdc974812c094cd3acec7161f0">TN_curve_clear()</a> must be made after finishing with the <a class="el" href="struct_t_n__curve__t.html">TN_curve_t</a> to free the memory used by the curve. </p>
</div>
</div>
<a id="aac501c10909000f4b1b93f192a1b9320" name="aac501c10909000f4b1b93f192a1b9320"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aac501c10909000f4b1b93f192a1b9320">&#9670;&nbsp;</a></span>TN_curve_set()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void TN_curve_set </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_t_n__curve__t.html">TN_curve_t</a> *&#160;</td>
<td class="paramname"><em>E</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const fq_t&#160;</td>
<td class="paramname"><em>b</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const fq_t&#160;</td>
<td class="paramname"><em>c</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">fmpz_t&#160;</td>
<td class="paramname"><em>l</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const fq_ctx_t *&#160;</td>
<td class="paramname"><em>F</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p >Sets E to elliptic curve over F in Tate-normal form with coefficients A and B. Curve parameters are given as elements of F. </p>
</div>
</div>
<a id="af34dcc04599f1ce19c5ab813ca72f7ad" name="af34dcc04599f1ce19c5ab813ca72f7ad"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af34dcc04599f1ce19c5ab813ca72f7ad">&#9670;&nbsp;</a></span>TN_curve_set_()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void TN_curve_set_ </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_t_n__curve__t.html">TN_curve_t</a> *&#160;</td>
<td class="paramname"><em>rop</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="struct_t_n__curve__t.html">TN_curve_t</a> *&#160;</td>
<td class="paramname"><em>op</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p >Deep copy </p>
</div>
</div>
<a id="a8a6c551b4342042391f3fff003b74dde" name="a8a6c551b4342042391f3fff003b74dde"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8a6c551b4342042391f3fff003b74dde">&#9670;&nbsp;</a></span>TN_curve_set_si()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void TN_curve_set_si </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_t_n__curve__t.html">TN_curve_t</a> *&#160;</td>
<td class="paramname"><em>E</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const slong&#160;</td>
<td class="paramname"><em>b</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const slong&#160;</td>
<td class="paramname"><em>c</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const slong&#160;</td>
<td class="paramname"><em>l</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const fq_ctx_t *&#160;</td>
<td class="paramname"><em>F</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p >See <a class="el" href="memory_8c.html#aac501c10909000f4b1b93f192a1b9320">TN_curve_set()</a>. Curve coefficients are given as signed integers. </p>
</div>
</div>
<a id="a5ffa669bfa1e37e0a233ce04ab7f3c92" name="a5ffa669bfa1e37e0a233ce04ab7f3c92"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5ffa669bfa1e37e0a233ce04ab7f3c92">&#9670;&nbsp;</a></span>TN_curve_set_str()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int TN_curve_set_str </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_t_n__curve__t.html">TN_curve_t</a> *&#160;</td>
<td class="paramname"><em>E</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>str_b</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>str_c</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>str_l</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const fq_ctx_t *&#160;</td>
<td class="paramname"><em>F</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p >See <a class="el" href="memory_8c.html#aac501c10909000f4b1b93f192a1b9320">TN_curve_set()</a>. Parameters are given as null-terminated strings, in base b. The base b can vary between 2 and 62, inclusive. Returns 0 if the string contain valid inputs and 1 otherwise. </p>
</div>
</div>
<a id="a9dee607b3315876b00d1c84d4769b65c" name="a9dee607b3315876b00d1c84d4769b65c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9dee607b3315876b00d1c84d4769b65c">&#9670;&nbsp;</a></span>TN_curve_set_ui()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void TN_curve_set_ui </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_t_n__curve__t.html">TN_curve_t</a> *&#160;</td>
<td class="paramname"><em>E</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const ulong&#160;</td>
<td class="paramname"><em>b</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const ulong&#160;</td>
<td class="paramname"><em>c</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">ulong&#160;</td>
<td class="paramname"><em>l</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const fq_ctx_t *&#160;</td>
<td class="paramname"><em>F</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p >See <a class="el" href="memory_8c.html#aac501c10909000f4b1b93f192a1b9320">TN_curve_set()</a>. Curve coefficients are given as unsigned integers. </p>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.2
</small></address>
</body>
</html>