NASFAQ/CRS_CC/doc/html/memory_8h.html

1263 lines
59 KiB
HTML
Raw Normal View History

2022-02-15 14:01:37 +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.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>
<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.h File Reference</div></div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &lt;string.h&gt;</code><br />
<code>#include &lt;gmp.h&gt;</code><br />
<code>#include &lt;flint/fmpz.h&gt;</code><br />
<code>#include &lt;flint/fq.h&gt;</code><br />
<code>#include &quot;models.h&quot;</code><br />
</div>
<p><a href="memory_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 id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a4b4aa3baa653baee5351c7cf128da7bf"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="memory_8h.html#a4b4aa3baa653baee5351c7cf128da7bf">SW_curve_init</a> (<a class="el" href="struct_s_w__curve__t.html">SW_curve_t</a> *, const fq_ctx_t *)</td></tr>
<tr class="separator:a4b4aa3baa653baee5351c7cf128da7bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aee1d5d67980f8b438c78ab2e77c529ce"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="memory_8h.html#aee1d5d67980f8b438c78ab2e77c529ce">SW_curve_set</a> (<a class="el" href="struct_s_w__curve__t.html">SW_curve_t</a> *, const fq_ctx_t *, const fq_t, const fq_t)</td></tr>
<tr class="separator:aee1d5d67980f8b438c78ab2e77c529ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a83e0ae31c880acac9962608c30fb7216"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="memory_8h.html#a83e0ae31c880acac9962608c30fb7216">SW_curve_set_si</a> (<a class="el" href="struct_s_w__curve__t.html">SW_curve_t</a> *, const fq_ctx_t *, const slong, const slong)</td></tr>
<tr class="separator:a83e0ae31c880acac9962608c30fb7216"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad1592a72ff2fafb459d89b376e52fe19"><td class="memItemLeft" align="right" valign="top"><a id="ad1592a72ff2fafb459d89b376e52fe19" name="ad1592a72ff2fafb459d89b376e52fe19"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>SW_curve_set_ui</b> (<a class="el" href="struct_s_w__curve__t.html">SW_curve_t</a> *, const fq_ctx_t *, const ulong, const ulong)</td></tr>
<tr class="separator:ad1592a72ff2fafb459d89b376e52fe19"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5828d247629ff5d29d3eb1e6cc15538d"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="memory_8h.html#a5828d247629ff5d29d3eb1e6cc15538d">SW_curve_set_str</a> (<a class="el" href="struct_s_w__curve__t.html">SW_curve_t</a> *, const fq_ctx_t *, const char *, const char *, int)</td></tr>
<tr class="separator:a5828d247629ff5d29d3eb1e6cc15538d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5a8fa1d26d156daf60cb72e0b9addc3a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="memory_8h.html#a5a8fa1d26d156daf60cb72e0b9addc3a">SW_curve_clear</a> (<a class="el" href="struct_s_w__curve__t.html">SW_curve_t</a> *)</td></tr>
<tr class="separator:a5a8fa1d26d156daf60cb72e0b9addc3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7c945e01088f7e93d624a3c2750cfebd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="memory_8h.html#a7c945e01088f7e93d624a3c2750cfebd">SW_point_init</a> (<a class="el" href="struct_s_w__point__t.html">SW_point_t</a> *, <a class="el" href="struct_s_w__curve__t.html">SW_curve_t</a> *)</td></tr>
<tr class="separator:a7c945e01088f7e93d624a3c2750cfebd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9925def23d57dae4a74443af34fbfe26"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="memory_8h.html#a9925def23d57dae4a74443af34fbfe26">SW_point_set</a> (<a class="el" href="struct_s_w__point__t.html">SW_point_t</a> *, const fq_t, const fq_t, const fq_t, <a class="el" href="struct_s_w__curve__t.html">SW_curve_t</a> *)</td></tr>
<tr class="separator:a9925def23d57dae4a74443af34fbfe26"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5ee96c20627b683fa5aba036e53b2698"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="memory_8h.html#a5ee96c20627b683fa5aba036e53b2698">SW_point_set_si</a> (<a class="el" href="struct_s_w__point__t.html">SW_point_t</a> *, const slong, const slong, const slong, <a class="el" href="struct_s_w__curve__t.html">SW_curve_t</a> *)</td></tr>
<tr class="separator:a5ee96c20627b683fa5aba036e53b2698"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a61ffaa712077baee5e2bcd28782374f6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="memory_8h.html#a61ffaa712077baee5e2bcd28782374f6">SW_point_set_ui</a> (<a class="el" href="struct_s_w__point__t.html">SW_point_t</a> *, const ulong, const ulong, const ulong, <a class="el" href="struct_s_w__curve__t.html">SW_curve_t</a> *)</td></tr>
<tr class="separator:a61ffaa712077baee5e2bcd28782374f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3e6db86d35bc8a6f1c8a662578de04d0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="memory_8h.html#a3e6db86d35bc8a6f1c8a662578de04d0">SW_point_clear</a> (<a class="el" href="struct_s_w__point__t.html">SW_point_t</a> *)</td></tr>
<tr class="separator:a3e6db86d35bc8a6f1c8a662578de04d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c0f92fa376c013c75a0b4b56bb26cae"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="memory_8h.html#a2c0f92fa376c013c75a0b4b56bb26cae">MG_curve_init</a> (<a class="el" href="struct_m_g__curve__t.html">MG_curve_t</a> *, const fq_ctx_t *)</td></tr>
<tr class="separator:a2c0f92fa376c013c75a0b4b56bb26cae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3775ffeba25a41b3f2b576798ee9f731"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="memory_8h.html#a3775ffeba25a41b3f2b576798ee9f731">MG_curve_set</a> (<a class="el" href="struct_m_g__curve__t.html">MG_curve_t</a> *, const fq_ctx_t *, const fq_t, const fq_t)</td></tr>
<tr class="separator:a3775ffeba25a41b3f2b576798ee9f731"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a858f8bc0dc2f78c27d02a0b73e94d9d8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="memory_8h.html#a858f8bc0dc2f78c27d02a0b73e94d9d8">MG_curve_set_</a> (<a class="el" href="struct_m_g__curve__t.html">MG_curve_t</a> *, <a class="el" href="struct_m_g__curve__t.html">MG_curve_t</a> *)</td></tr>
<tr class="separator:a858f8bc0dc2f78c27d02a0b73e94d9d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaae830fb5e5e7dc3e47a38f1a4e45074"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="memory_8h.html#aaae830fb5e5e7dc3e47a38f1a4e45074">MG_curve_set_si</a> (<a class="el" href="struct_m_g__curve__t.html">MG_curve_t</a> *, const fq_ctx_t *, const slong, const slong)</td></tr>
<tr class="separator:aaae830fb5e5e7dc3e47a38f1a4e45074"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adbc5e6487c6f44f2e23bca5df1b5981e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="memory_8h.html#adbc5e6487c6f44f2e23bca5df1b5981e">MG_curve_set_str</a> (<a class="el" href="struct_m_g__curve__t.html">MG_curve_t</a> *, const fq_ctx_t *, const char *, const char *, int)</td></tr>
<tr class="separator:adbc5e6487c6f44f2e23bca5df1b5981e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad38597a69c5b4d8e9507219466641c89"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="memory_8h.html#ad38597a69c5b4d8e9507219466641c89">MG_curve_clear</a> (<a class="el" href="struct_m_g__curve__t.html">MG_curve_t</a> *)</td></tr>
<tr class="separator:ad38597a69c5b4d8e9507219466641c89"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac617221cc86625b2c2ca6ec9f2519ef5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="memory_8h.html#ac617221cc86625b2c2ca6ec9f2519ef5">MG_point_init</a> (<a class="el" href="struct_m_g__point__t.html">MG_point_t</a> *, <a class="el" href="struct_m_g__curve__t.html">MG_curve_t</a> *)</td></tr>
<tr class="separator:ac617221cc86625b2c2ca6ec9f2519ef5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9701b7cfd2051247bdb4fb754128988d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="memory_8h.html#a9701b7cfd2051247bdb4fb754128988d">MG_point_set</a> (<a class="el" href="struct_m_g__point__t.html">MG_point_t</a> *, const fq_t, const fq_t, <a class="el" href="struct_m_g__curve__t.html">MG_curve_t</a> *)</td></tr>
<tr class="separator:a9701b7cfd2051247bdb4fb754128988d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7dd1575d7a94950cbd53e1a0a34d2ba4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="memory_8h.html#a7dd1575d7a94950cbd53e1a0a34d2ba4">MG_point_set_</a> (<a class="el" href="struct_m_g__point__t.html">MG_point_t</a> *, <a class="el" href="struct_m_g__point__t.html">MG_point_t</a> *)</td></tr>
<tr class="separator:a7dd1575d7a94950cbd53e1a0a34d2ba4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a05d4db157967ac8be57769d879ed38d9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="memory_8h.html#a05d4db157967ac8be57769d879ed38d9">MG_point_set_si</a> (<a class="el" href="struct_m_g__point__t.html">MG_point_t</a> *, const slong, const slong, <a class="el" href="struct_m_g__curve__t.html">MG_curve_t</a> *)</td></tr>
<tr class="separator:a05d4db157967ac8be57769d879ed38d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2410e3435294ea21546dec0e7a363a27"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="memory_8h.html#a2410e3435294ea21546dec0e7a363a27">MG_point_set_ui</a> (<a class="el" href="struct_m_g__point__t.html">MG_point_t</a> *, const ulong, const ulong, <a class="el" href="struct_m_g__curve__t.html">MG_curve_t</a> *)</td></tr>
<tr class="separator:a2410e3435294ea21546dec0e7a363a27"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ed4e345abcc5a9e11652ae369bbc5b5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="memory_8h.html#a4ed4e345abcc5a9e11652ae369bbc5b5">MG_point_set_fmpz</a> (<a class="el" href="struct_m_g__point__t.html">MG_point_t</a> *, const fmpz_t, const fmpz_t, <a class="el" href="struct_m_g__curve__t.html">MG_curve_t</a> *)</td></tr>
<tr class="separator:a4ed4e345abcc5a9e11652ae369bbc5b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae05e20b8b3f2e1502939eeb5df5b3133"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="memory_8h.html#ae05e20b8b3f2e1502939eeb5df5b3133">MG_point_set_str</a> (<a class="el" href="struct_m_g__point__t.html">MG_point_t</a> *, const char *, const char *, <a class="el" href="struct_m_g__curve__t.html">MG_curve_t</a> *)</td></tr>
<tr class="separator:ae05e20b8b3f2e1502939eeb5df5b3133"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad27b7721691975ec41eaf6d8c560dac6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="memory_8h.html#ad27b7721691975ec41eaf6d8c560dac6">MG_point_set_infty</a> (<a class="el" href="struct_m_g__point__t.html">MG_point_t</a> *)</td></tr>
<tr class="separator:ad27b7721691975ec41eaf6d8c560dac6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abd1a18ee1600054dd90271dce22c75a3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="memory_8h.html#abd1a18ee1600054dd90271dce22c75a3">MG_point_clear</a> (<a class="el" href="struct_m_g__point__t.html">MG_point_t</a> *)</td></tr>
<tr class="separator:abd1a18ee1600054dd90271dce22c75a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a55186bacf8c7fc179ed86e971ac2120c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="memory_8h.html#a55186bacf8c7fc179ed86e971ac2120c">TN_curve_init</a> (<a class="el" href="struct_t_n__curve__t.html">TN_curve_t</a> *, fmpz_t, const fq_ctx_t *)</td></tr>
<tr class="separator:a55186bacf8c7fc179ed86e971ac2120c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2eec642fd3ca523fb70ab8f98742078b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="memory_8h.html#a2eec642fd3ca523fb70ab8f98742078b">TN_curve_set</a> (<a class="el" href="struct_t_n__curve__t.html">TN_curve_t</a> *, const fq_t, const fq_t, fmpz_t, const fq_ctx_t *)</td></tr>
<tr class="separator:a2eec642fd3ca523fb70ab8f98742078b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6ddc2c361803d79cfa9b2b14966faf66"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="memory_8h.html#a6ddc2c361803d79cfa9b2b14966faf66">TN_curve_set_</a> (<a class="el" href="struct_t_n__curve__t.html">TN_curve_t</a> *, <a class="el" href="struct_t_n__curve__t.html">TN_curve_t</a> *)</td></tr>
<tr class="separator:a6ddc2c361803d79cfa9b2b14966faf66"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a47bee04961056e7a659afe9508e82de4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="memory_8h.html#a47bee04961056e7a659afe9508e82de4">TN_curve_set_si</a> (<a class="el" href="struct_t_n__curve__t.html">TN_curve_t</a> *, const slong, const slong, const slong, const fq_ctx_t *)</td></tr>
<tr class="separator:a47bee04961056e7a659afe9508e82de4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a474a5adf749203852a944545d25d38ec"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="memory_8h.html#a474a5adf749203852a944545d25d38ec">TN_curve_set_str</a> (<a class="el" href="struct_t_n__curve__t.html">TN_curve_t</a> *, const char *, const char *, const char *, int, const fq_ctx_t *)</td></tr>
<tr class="separator:a474a5adf749203852a944545d25d38ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a50e25ae1fb55f18c4194a2b75f1103e2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="memory_8h.html#a50e25ae1fb55f18c4194a2b75f1103e2">TN_curve_clear</a> (<a class="el" href="struct_t_n__curve__t.html">TN_curve_t</a> *)</td></tr>
<tr class="separator:a50e25ae1fb55f18c4194a2b75f1103e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
<a id="ad38597a69c5b4d8e9507219466641c89" name="ad38597a69c5b4d8e9507219466641c89"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad38597a69c5b4d8e9507219466641c89">&#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="a2c0f92fa376c013c75a0b4b56bb26cae" name="a2c0f92fa376c013c75a0b4b56bb26cae"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2c0f92fa376c013c75a0b4b56bb26cae">&#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="a3775ffeba25a41b3f2b576798ee9f731" name="a3775ffeba25a41b3f2b576798ee9f731"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3775ffeba25a41b3f2b576798ee9f731">&#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="a858f8bc0dc2f78c27d02a0b73e94d9d8" name="a858f8bc0dc2f78c27d02a0b73e94d9d8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a858f8bc0dc2f78c27d02a0b73e94d9d8">&#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="aaae830fb5e5e7dc3e47a38f1a4e45074" name="aaae830fb5e5e7dc3e47a38f1a4e45074"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaae830fb5e5e7dc3e47a38f1a4e45074">&#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="adbc5e6487c6f44f2e23bca5df1b5981e" name="adbc5e6487c6f44f2e23bca5df1b5981e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adbc5e6487c6f44f2e23bca5df1b5981e">&#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="abd1a18ee1600054dd90271dce22c75a3" name="abd1a18ee1600054dd90271dce22c75a3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abd1a18ee1600054dd90271dce22c75a3">&#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="ac617221cc86625b2c2ca6ec9f2519ef5" name="ac617221cc86625b2c2ca6ec9f2519ef5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac617221cc86625b2c2ca6ec9f2519ef5">&#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="a9701b7cfd2051247bdb4fb754128988d" name="a9701b7cfd2051247bdb4fb754128988d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9701b7cfd2051247bdb4fb754128988d">&#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="a7dd1575d7a94950cbd53e1a0a34d2ba4" name="a7dd1575d7a94950cbd53e1a0a34d2ba4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7dd1575d7a94950cbd53e1a0a34d2ba4">&#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="a4ed4e345abcc5a9e11652ae369bbc5b5" name="a4ed4e345abcc5a9e11652ae369bbc5b5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4ed4e345abcc5a9e11652ae369bbc5b5">&#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="ad27b7721691975ec41eaf6d8c560dac6" name="ad27b7721691975ec41eaf6d8c560dac6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad27b7721691975ec41eaf6d8c560dac6">&#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="a05d4db157967ac8be57769d879ed38d9" name="a05d4db157967ac8be57769d879ed38d9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a05d4db157967ac8be57769d879ed38d9">&#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="ae05e20b8b3f2e1502939eeb5df5b3133" name="ae05e20b8b3f2e1502939eeb5df5b3133"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae05e20b8b3f2e1502939eeb5df5b3133">&#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="a2410e3435294ea21546dec0e7a363a27" name="a2410e3435294ea21546dec0e7a363a27"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2410e3435294ea21546dec0e7a363a27">&#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="a5a8fa1d26d156daf60cb72e0b9addc3a" name="a5a8fa1d26d156daf60cb72e0b9addc3a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5a8fa1d26d156daf60cb72e0b9addc3a">&#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="a4b4aa3baa653baee5351c7cf128da7bf" name="a4b4aa3baa653baee5351c7cf128da7bf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4b4aa3baa653baee5351c7cf128da7bf">&#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="aee1d5d67980f8b438c78ab2e77c529ce" name="aee1d5d67980f8b438c78ab2e77c529ce"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aee1d5d67980f8b438c78ab2e77c529ce">&#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="a83e0ae31c880acac9962608c30fb7216" name="a83e0ae31c880acac9962608c30fb7216"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a83e0ae31c880acac9962608c30fb7216">&#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="a5828d247629ff5d29d3eb1e6cc15538d" name="a5828d247629ff5d29d3eb1e6cc15538d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5828d247629ff5d29d3eb1e6cc15538d">&#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="a3e6db86d35bc8a6f1c8a662578de04d0" name="a3e6db86d35bc8a6f1c8a662578de04d0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3e6db86d35bc8a6f1c8a662578de04d0">&#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="a7c945e01088f7e93d624a3c2750cfebd" name="a7c945e01088f7e93d624a3c2750cfebd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7c945e01088f7e93d624a3c2750cfebd">&#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="a9925def23d57dae4a74443af34fbfe26" name="a9925def23d57dae4a74443af34fbfe26"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9925def23d57dae4a74443af34fbfe26">&#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="a5ee96c20627b683fa5aba036e53b2698" name="a5ee96c20627b683fa5aba036e53b2698"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5ee96c20627b683fa5aba036e53b2698">&#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="a61ffaa712077baee5e2bcd28782374f6" name="a61ffaa712077baee5e2bcd28782374f6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a61ffaa712077baee5e2bcd28782374f6">&#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="a50e25ae1fb55f18c4194a2b75f1103e2" name="a50e25ae1fb55f18c4194a2b75f1103e2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a50e25ae1fb55f18c4194a2b75f1103e2">&#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="a55186bacf8c7fc179ed86e971ac2120c" name="a55186bacf8c7fc179ed86e971ac2120c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a55186bacf8c7fc179ed86e971ac2120c">&#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="a2eec642fd3ca523fb70ab8f98742078b" name="a2eec642fd3ca523fb70ab8f98742078b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2eec642fd3ca523fb70ab8f98742078b">&#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="a6ddc2c361803d79cfa9b2b14966faf66" name="a6ddc2c361803d79cfa9b2b14966faf66"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6ddc2c361803d79cfa9b2b14966faf66">&#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="a47bee04961056e7a659afe9508e82de4" name="a47bee04961056e7a659afe9508e82de4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a47bee04961056e7a659afe9508e82de4">&#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="a474a5adf749203852a944545d25d38ec" name="a474a5adf749203852a944545d25d38ec"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a474a5adf749203852a944545d25d38ec">&#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>
</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>