Lastest doxygen docs updated
travis build: 29
commit: 03f3b4b230
auto-pushed to gh-pages
This commit is contained in:
@@ -3,44 +3,35 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||
<meta name="generator" content="Doxygen 1.8.7"/>
|
||||
<title>post quantum cryptography: /home/travis/build/hasufell/pqc/src/ntru_poly.c File Reference</title>
|
||||
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
|
||||
<link href="search/search.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/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() { searchBox.OnSelectItem(0); });
|
||||
</script>
|
||||
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div! -->
|
||||
|
||||
|
||||
<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 style="padding-left: 0.5em;">
|
||||
<div id="projectname">post quantum cryptography
|
||||
|
||||
</div>
|
||||
<div id="projectbrief">Highly optimized implementation of the NTRUEncrypt algorithm</div>
|
||||
</td>
|
||||
|
||||
|
||||
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<!-- Generated by Doxygen 1.7.6.1 -->
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.7 -->
|
||||
<script type="text/javascript">
|
||||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
</script>
|
||||
@@ -73,70 +64,104 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
<li><a href="globals.html"><span>Globals</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Pages</a></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> </ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#func-members">Functions</a> </div>
|
||||
<div class="headertitle">
|
||||
<div class="title">/home/travis/build/hasufell/pqc/src/ntru_poly.c File Reference</div> </div>
|
||||
<div class="title">ntru_poly.c File Reference</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
|
||||
<p>operations on polynomials
|
||||
<a href="#details">More...</a></p>
|
||||
<div class="textblock"><code>#include "<a class="el" href="ntru__err_8h_source.html">ntru_err.h</a>"</code><br/>
|
||||
<code>#include "<a class="el" href="ntru__mem_8h_source.html">ntru_mem.h</a>"</code><br/>
|
||||
<code>#include "<a class="el" href="ntru__params_8h_source.html">ntru_params.h</a>"</code><br/>
|
||||
<code>#include "<a class="el" href="ntru__poly_8h_source.html">ntru_poly.h</a>"</code><br/>
|
||||
<code>#include <stdarg.h></code><br/>
|
||||
<code>#include <stdbool.h></code><br/>
|
||||
<code>#include <stdint.h></code><br/>
|
||||
<code>#include <stdio.h></code><br/>
|
||||
<code>#include <stdlib.h></code><br/>
|
||||
<code>#include <sys/types.h></code><br/>
|
||||
<code>#include <fmpz_poly.h></code><br/>
|
||||
<code>#include <fmpz.h></code><br/>
|
||||
<div class="textblock"><code>#include "<a class="el" href="ntru__err_8h_source.html">ntru_err.h</a>"</code><br />
|
||||
<code>#include "<a class="el" href="ntru__mem_8h_source.html">ntru_mem.h</a>"</code><br />
|
||||
<code>#include "<a class="el" href="ntru__params_8h_source.html">ntru_params.h</a>"</code><br />
|
||||
<code>#include "<a class="el" href="ntru__poly_8h_source.html">ntru_poly.h</a>"</code><br />
|
||||
<code>#include <stdarg.h></code><br />
|
||||
<code>#include <stdbool.h></code><br />
|
||||
<code>#include <stdint.h></code><br />
|
||||
<code>#include <stdio.h></code><br />
|
||||
<code>#include <stdlib.h></code><br />
|
||||
<code>#include <sys/types.h></code><br />
|
||||
<code>#include <fmpz_poly.h></code><br />
|
||||
<code>#include <fmpz.h></code><br />
|
||||
</div><div class="textblock"><div class="dynheader">
|
||||
Include dependency graph for ntru_poly.c:</div>
|
||||
<div class="dyncontent">
|
||||
<div class="center"><img src="ntru__poly_8c__incl.png" border="0" usemap="#_2home_2travis_2build_2hasufell_2pqc_2src_2ntru__poly_8c" alt=""/></div>
|
||||
<map name="_2home_2travis_2build_2hasufell_2pqc_2src_2ntru__poly_8c" id="_2home_2travis_2build_2hasufell_2pqc_2src_2ntru__poly_8c">
|
||||
</map>
|
||||
<area shape="rect" id="node3" href="ntru__err_8h.html" title="error handling " alt="" coords="104,195,181,224"/><area shape="rect" id="node5" href="ntru__mem_8h.html" title="header for ntru_mem.c " alt="" coords="5,117,96,147"/><area shape="rect" id="node9" href="ntru__params_8h.html" title="NTRU parameters. " alt="" coords="205,195,309,224"/><area shape="rect" id="node13" href="ntru__poly_8h.html" title="header for ntru_poly.c " alt="" coords="308,117,393,147"/></map>
|
||||
</div>
|
||||
</div>
|
||||
<p><a href="ntru__poly_8c_source.html">Go to the source code of this file.</a></p>
|
||||
<table class="memberdecls">
|
||||
<tr><td colspan="2"><h2><a name="func-members"></a>
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
|
||||
Functions</h2></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__poly_8c.html#a891af13dc4355c9fab9ca3fafcac8054">poly_mod2_to_modq</a> (const fmpz_poly_t a, fmpz_poly_t Fq, const <a class="el" href="structntru__params.html">ntru_params</a> *params)</td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__poly_8c.html#aaaac83ec72414aa208832442657c3520">fmpz_cmp_si_n</a> (const fmpz_t f, slong g)</td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__poly_8c.html#a20f86085d5eb5372fd25dc270069d38c">poly_new</a> (fmpz_poly_t new_poly, int const *const c, const size_t len)</td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__poly_8c.html#a27ff2116f70bcbf5028219adcae4c5f0">poly_delete</a> (fmpz_poly_t poly)</td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__poly_8c.html#a3f53c63383ff301b20dcede0783869a7">poly_delete_array</a> (fmpz_poly_t **poly_array)</td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__poly_8c.html#a83297bc2ab5b6e7ce42553570dd8268f">poly_delete_all</a> (fmpz_poly_t poly,...)</td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__poly_8c.html#ae7d0d8364dba689df3fb4904610634cc">fmpz_poly_mod_unsigned</a> (fmpz_poly_t a, const uint32_t mod)</td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__poly_8c.html#a7c4f5e96355518dc97a23da8f34b661a">fmpz_poly_mod</a> (fmpz_poly_t a, const uint32_t mod)</td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__poly_8c.html#ab1f966fe680d1ce7c19c8c812d1932a7">fmpz_poly_set_coeff_fmpz_n</a> (fmpz_poly_t poly, slong n, const fmpz_t x)</td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__poly_8c.html#a59da1b7962829af8f18d58c05f588606">fmpz_invmod_ui</a> (fmpz_t f, const fmpz_t g, const uint32_t mod)</td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__poly_8c.html#ad2a11e832808ef1cfee0eed1cc02f4b9">fmpz_add_n</a> (fmpz_t f, const fmpz_t g, const fmpz_t h)</td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__poly_8c.html#ae96f479ddd97af709a0ed50817fd3fb3">poly_starmultiply</a> (const fmpz_poly_t a, const fmpz_poly_t b, fmpz_poly_t c, const <a class="el" href="structntru__params.html">ntru_params</a> *params, uint32_t modulus)</td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__poly_8c.html#ace66beb516186e52f9b5b1ed8a397849">poly_inverse_poly_q</a> (const fmpz_poly_t a, fmpz_poly_t Fq, const <a class="el" href="structntru__params.html">ntru_params</a> *params)</td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__poly_8c.html#ae77b2014df42e5ed612206d5930ac608">poly_inverse_poly_p</a> (const fmpz_poly_t a, fmpz_poly_t Fp, const <a class="el" href="structntru__params.html">ntru_params</a> *params)</td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__poly_8c.html#a80a8ce0f2944bc3df94291ef2f781498">poly_draw</a> (const fmpz_poly_t poly)</td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__poly_8c.html#aec098d00160d2d502eb1f8a7c3fa5453">poly_draw_pretty</a> (const fmpz_poly_t poly)</td></tr>
|
||||
<tr class="memitem:a891af13dc4355c9fab9ca3fafcac8054"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__poly_8c.html#a891af13dc4355c9fab9ca3fafcac8054">poly_mod2_to_modq</a> (const fmpz_poly_t a, fmpz_poly_t Fq, const <a class="el" href="structntru__params.html">ntru_params</a> *params)</td></tr>
|
||||
<tr class="separator:a891af13dc4355c9fab9ca3fafcac8054"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:aaaac83ec72414aa208832442657c3520"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__poly_8c.html#aaaac83ec72414aa208832442657c3520">fmpz_cmp_si_n</a> (const fmpz_t f, slong g)</td></tr>
|
||||
<tr class="separator:aaaac83ec72414aa208832442657c3520"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a20f86085d5eb5372fd25dc270069d38c"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__poly_8c.html#a20f86085d5eb5372fd25dc270069d38c">poly_new</a> (fmpz_poly_t new_poly, int const *const c, const size_t len)</td></tr>
|
||||
<tr class="separator:a20f86085d5eb5372fd25dc270069d38c"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a27ff2116f70bcbf5028219adcae4c5f0"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__poly_8c.html#a27ff2116f70bcbf5028219adcae4c5f0">poly_delete</a> (fmpz_poly_t poly)</td></tr>
|
||||
<tr class="separator:a27ff2116f70bcbf5028219adcae4c5f0"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a3f53c63383ff301b20dcede0783869a7"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__poly_8c.html#a3f53c63383ff301b20dcede0783869a7">poly_delete_array</a> (fmpz_poly_t **poly_array)</td></tr>
|
||||
<tr class="separator:a3f53c63383ff301b20dcede0783869a7"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a83297bc2ab5b6e7ce42553570dd8268f"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__poly_8c.html#a83297bc2ab5b6e7ce42553570dd8268f">poly_delete_all</a> (fmpz_poly_t poly,...)</td></tr>
|
||||
<tr class="separator:a83297bc2ab5b6e7ce42553570dd8268f"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ae7d0d8364dba689df3fb4904610634cc"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__poly_8c.html#ae7d0d8364dba689df3fb4904610634cc">fmpz_poly_mod_unsigned</a> (fmpz_poly_t a, const uint32_t mod)</td></tr>
|
||||
<tr class="separator:ae7d0d8364dba689df3fb4904610634cc"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a7c4f5e96355518dc97a23da8f34b661a"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__poly_8c.html#a7c4f5e96355518dc97a23da8f34b661a">fmpz_poly_mod</a> (fmpz_poly_t a, const uint32_t mod)</td></tr>
|
||||
<tr class="separator:a7c4f5e96355518dc97a23da8f34b661a"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ab1f966fe680d1ce7c19c8c812d1932a7"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__poly_8c.html#ab1f966fe680d1ce7c19c8c812d1932a7">fmpz_poly_set_coeff_fmpz_n</a> (fmpz_poly_t poly, slong n, const fmpz_t x)</td></tr>
|
||||
<tr class="separator:ab1f966fe680d1ce7c19c8c812d1932a7"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a59da1b7962829af8f18d58c05f588606"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__poly_8c.html#a59da1b7962829af8f18d58c05f588606">fmpz_invmod_ui</a> (fmpz_t f, const fmpz_t g, const uint32_t mod)</td></tr>
|
||||
<tr class="separator:a59da1b7962829af8f18d58c05f588606"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ad2a11e832808ef1cfee0eed1cc02f4b9"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__poly_8c.html#ad2a11e832808ef1cfee0eed1cc02f4b9">fmpz_add_n</a> (fmpz_t f, const fmpz_t g, const fmpz_t h)</td></tr>
|
||||
<tr class="separator:ad2a11e832808ef1cfee0eed1cc02f4b9"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ae96f479ddd97af709a0ed50817fd3fb3"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__poly_8c.html#ae96f479ddd97af709a0ed50817fd3fb3">poly_starmultiply</a> (const fmpz_poly_t a, const fmpz_poly_t b, fmpz_poly_t c, const <a class="el" href="structntru__params.html">ntru_params</a> *params, uint32_t modulus)</td></tr>
|
||||
<tr class="separator:ae96f479ddd97af709a0ed50817fd3fb3"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ace66beb516186e52f9b5b1ed8a397849"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__poly_8c.html#ace66beb516186e52f9b5b1ed8a397849">poly_inverse_poly_q</a> (const fmpz_poly_t a, fmpz_poly_t Fq, const <a class="el" href="structntru__params.html">ntru_params</a> *params)</td></tr>
|
||||
<tr class="separator:ace66beb516186e52f9b5b1ed8a397849"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ae77b2014df42e5ed612206d5930ac608"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__poly_8c.html#ae77b2014df42e5ed612206d5930ac608">poly_inverse_poly_p</a> (const fmpz_poly_t a, fmpz_poly_t Fp, const <a class="el" href="structntru__params.html">ntru_params</a> *params)</td></tr>
|
||||
<tr class="separator:ae77b2014df42e5ed612206d5930ac608"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a80a8ce0f2944bc3df94291ef2f781498"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__poly_8c.html#a80a8ce0f2944bc3df94291ef2f781498">poly_draw</a> (const fmpz_poly_t poly)</td></tr>
|
||||
<tr class="separator:a80a8ce0f2944bc3df94291ef2f781498"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:aec098d00160d2d502eb1f8a7c3fa5453"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__poly_8c.html#aec098d00160d2d502eb1f8a7c3fa5453">poly_draw_pretty</a> (const fmpz_poly_t poly)</td></tr>
|
||||
<tr class="separator:aec098d00160d2d502eb1f8a7c3fa5453"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
|
||||
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||
<div class="textblock"><p>operations on polynomials </p>
|
||||
<p>This files purpose is to handle polynomials in general, allowing modification, arithmetic and common algorithms like inverting them. </p>
|
||||
|
||||
<p>Definition in file <a class="el" href="ntru__poly_8c_source.html">ntru_poly.c</a>.</p>
|
||||
</div><hr/><h2>Function Documentation</h2>
|
||||
<a class="anchor" id="ad2a11e832808ef1cfee0eed1cc02f4b9"></a><!-- doxytag: member="ntru_poly.c::fmpz_add_n" ref="ad2a11e832808ef1cfee0eed1cc02f4b9" args="(fmpz_t f, const fmpz_t g, const fmpz_t h)" -->
|
||||
</div><h2 class="groupheader">Function Documentation</h2>
|
||||
<a class="anchor" id="ad2a11e832808ef1cfee0eed1cc02f4b9"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void <a class="el" href="ntru__poly_8h.html#ad2a11e832808ef1cfee0eed1cc02f4b9">fmpz_add_n</a> </td>
|
||||
<td class="memname">void fmpz_add_n </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">fmpz_t </td>
|
||||
<td class="paramname"><em>f</em>, </td>
|
||||
@@ -159,20 +184,19 @@ Functions</h2></td></tr>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
</div><div class="memdoc">
|
||||
<p>The same as fmpz_add() except that it handles NULL pointer for g and h. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="ntru__poly_8c_source.html#l00222">222</a> of file <a class="el" href="ntru__poly_8c_source.html">ntru_poly.c</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="aaaac83ec72414aa208832442657c3520"></a><!-- doxytag: member="ntru_poly.c::fmpz_cmp_si_n" ref="aaaac83ec72414aa208832442657c3520" args="(const fmpz_t f, slong g)" -->
|
||||
<a class="anchor" id="aaaac83ec72414aa208832442657c3520"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">int <a class="el" href="ntru__poly_8h.html#aaaac83ec72414aa208832442657c3520">fmpz_cmp_si_n</a> </td>
|
||||
<td class="memname">int fmpz_cmp_si_n </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">const fmpz_t </td>
|
||||
<td class="paramname"><em>f</em>, </td>
|
||||
@@ -189,28 +213,27 @@ Functions</h2></td></tr>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
</div><div class="memdoc">
|
||||
<p>The same as fmpz_cmp_si except that it will interpret f as a 0-coefficient if it is a NULL pointer.</p>
|
||||
<dl class="params"><dt><b>Parameters:</b></dt><dd>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramname">f</td><td>the fmpz value to use for comparison </td></tr>
|
||||
<tr><td class="paramname">g</td><td>the signed long integer to use for comparison </td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="return"><dt><b>Returns:</b></dt><dd>negative value if f < g, positiv evalue if g < f, otherwise 0 </dd></dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>negative value if f < g, positiv evalue if g < f, otherwise 0 </dd></dl>
|
||||
|
||||
<p>Definition at line <a class="el" href="ntru__poly_8c_source.html#l00093">93</a> of file <a class="el" href="ntru__poly_8c_source.html">ntru_poly.c</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a59da1b7962829af8f18d58c05f588606"></a><!-- doxytag: member="ntru_poly.c::fmpz_invmod_ui" ref="a59da1b7962829af8f18d58c05f588606" args="(fmpz_t f, const fmpz_t g, const uint32_t mod)" -->
|
||||
<a class="anchor" id="a59da1b7962829af8f18d58c05f588606"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">int <a class="el" href="ntru__poly_8h.html#a59da1b7962829af8f18d58c05f588606">fmpz_invmod_ui</a> </td>
|
||||
<td class="memname">int fmpz_invmod_ui </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">fmpz_t </td>
|
||||
<td class="paramname"><em>f</em>, </td>
|
||||
@@ -233,10 +256,9 @@ Functions</h2></td></tr>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
</div><div class="memdoc">
|
||||
<p>Wrapper around fmpz_invmod() where we convert mod to an fmpz_t implicitly.</p>
|
||||
<dl class="params"><dt><b>Parameters:</b></dt><dd>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramname">f</td><td>result [out] </td></tr>
|
||||
<tr><td class="paramname">g</td><td>the inverse </td></tr>
|
||||
@@ -249,12 +271,12 @@ Functions</h2></td></tr>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a7c4f5e96355518dc97a23da8f34b661a"></a><!-- doxytag: member="ntru_poly.c::fmpz_poly_mod" ref="a7c4f5e96355518dc97a23da8f34b661a" args="(fmpz_poly_t a, const uint32_t mod)" -->
|
||||
<a class="anchor" id="a7c4f5e96355518dc97a23da8f34b661a"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void <a class="el" href="ntru__poly_8h.html#a7c4f5e96355518dc97a23da8f34b661a">fmpz_poly_mod</a> </td>
|
||||
<td class="memname">void fmpz_poly_mod </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">fmpz_poly_t </td>
|
||||
<td class="paramname"><em>a</em>, </td>
|
||||
@@ -271,11 +293,10 @@ Functions</h2></td></tr>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
</div><div class="memdoc">
|
||||
<p>Calls fmpz_poly_get_nmod_poly() and fmpz_poly_set_nmod_poly() in a row, so we don't have to deal with the intermediate nmod_poly_t type if we don't need it.</p>
|
||||
<p>This also normalises the coefficients to the interval -m/2 <= r < m/2.</p>
|
||||
<dl class="params"><dt><b>Parameters:</b></dt><dd>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramname">a</td><td>the polynom to apply the modulus to </td></tr>
|
||||
<tr><td class="paramname">mod</td><td>the modulus </td></tr>
|
||||
@@ -287,12 +308,12 @@ Functions</h2></td></tr>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ae7d0d8364dba689df3fb4904610634cc"></a><!-- doxytag: member="ntru_poly.c::fmpz_poly_mod_unsigned" ref="ae7d0d8364dba689df3fb4904610634cc" args="(fmpz_poly_t a, const uint32_t mod)" -->
|
||||
<a class="anchor" id="ae7d0d8364dba689df3fb4904610634cc"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void <a class="el" href="ntru__poly_8h.html#ae7d0d8364dba689df3fb4904610634cc">fmpz_poly_mod_unsigned</a> </td>
|
||||
<td class="memname">void fmpz_poly_mod_unsigned </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">fmpz_poly_t </td>
|
||||
<td class="paramname"><em>a</em>, </td>
|
||||
@@ -309,11 +330,10 @@ Functions</h2></td></tr>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
</div><div class="memdoc">
|
||||
<p>Calls fmpz_poly_get_nmod_poly() and fmpz_poly_set_nmod_poly_unsigned() in a row, so we don't have to deal with the intermediate nmod_poly_t type if we don't need it.</p>
|
||||
<p>This also normalises the coefficients to the interval 0 <= r < m.</p>
|
||||
<dl class="params"><dt><b>Parameters:</b></dt><dd>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramname">a</td><td>the polynom to apply the modulus to </td></tr>
|
||||
<tr><td class="paramname">mod</td><td>the modulus </td></tr>
|
||||
@@ -325,12 +345,12 @@ Functions</h2></td></tr>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ab1f966fe680d1ce7c19c8c812d1932a7"></a><!-- doxytag: member="ntru_poly.c::fmpz_poly_set_coeff_fmpz_n" ref="ab1f966fe680d1ce7c19c8c812d1932a7" args="(fmpz_poly_t poly, slong n, const fmpz_t x)" -->
|
||||
<a class="anchor" id="ab1f966fe680d1ce7c19c8c812d1932a7"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void <a class="el" href="ntru__poly_8h.html#ab1f966fe680d1ce7c19c8c812d1932a7">fmpz_poly_set_coeff_fmpz_n</a> </td>
|
||||
<td class="memname">void fmpz_poly_set_coeff_fmpz_n </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">fmpz_poly_t </td>
|
||||
<td class="paramname"><em>poly</em>, </td>
|
||||
@@ -353,10 +373,9 @@ Functions</h2></td></tr>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
</div><div class="memdoc">
|
||||
<p>The same as fmpz_poly_set_coeff_fmpz() except that it will take care of null-pointer coefficients and use fmpz_poly_set_coeff_si() in that case.</p>
|
||||
<dl class="params"><dt><b>Parameters:</b></dt><dd>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramname">poly</td><td>the polynom we want to change a coefficient of </td></tr>
|
||||
<tr><td class="paramname">n</td><td>the coefficient we want to set </td></tr>
|
||||
@@ -369,22 +388,21 @@ Functions</h2></td></tr>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a27ff2116f70bcbf5028219adcae4c5f0"></a><!-- doxytag: member="ntru_poly.c::poly_delete" ref="a27ff2116f70bcbf5028219adcae4c5f0" args="(fmpz_poly_t poly)" -->
|
||||
<a class="anchor" id="a27ff2116f70bcbf5028219adcae4c5f0"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void <a class="el" href="ntru_8h.html#a27ff2116f70bcbf5028219adcae4c5f0">poly_delete</a> </td>
|
||||
<td class="memname">void poly_delete </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">fmpz_poly_t </td>
|
||||
<td class="paramname"><em>poly</em></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
</div><div class="memdoc">
|
||||
<p>This deletes the internal structure of a polynomial, and frees the pointer.</p>
|
||||
<dl class="params"><dt><b>Parameters:</b></dt><dd>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramname">poly</td><td>the polynomial to delete </td></tr>
|
||||
</table>
|
||||
@@ -395,12 +413,12 @@ Functions</h2></td></tr>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a83297bc2ab5b6e7ce42553570dd8268f"></a><!-- doxytag: member="ntru_poly.c::poly_delete_all" ref="a83297bc2ab5b6e7ce42553570dd8268f" args="(fmpz_poly_t poly,...)" -->
|
||||
<a class="anchor" id="a83297bc2ab5b6e7ce42553570dd8268f"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void <a class="el" href="ntru_8h.html#a83297bc2ab5b6e7ce42553570dd8268f">poly_delete_all</a> </td>
|
||||
<td class="memname">void poly_delete_all </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">fmpz_poly_t </td>
|
||||
<td class="paramname"><em>poly</em>, </td>
|
||||
@@ -417,10 +435,9 @@ Functions</h2></td></tr>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
</div><div class="memdoc">
|
||||
<p>This deletes the internal structure of all polynomials, and frees the pointers. You must call this with NULL as last argument!</p>
|
||||
<dl class="params"><dt><b>Parameters:</b></dt><dd>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramname">poly</td><td>the polynomial to delete </td></tr>
|
||||
<tr><td class="paramname">...</td><td>follow up polynomials </td></tr>
|
||||
@@ -432,22 +449,21 @@ Functions</h2></td></tr>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a3f53c63383ff301b20dcede0783869a7"></a><!-- doxytag: member="ntru_poly.c::poly_delete_array" ref="a3f53c63383ff301b20dcede0783869a7" args="(fmpz_poly_t **poly_array)" -->
|
||||
<a class="anchor" id="a3f53c63383ff301b20dcede0783869a7"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void <a class="el" href="ntru_8h.html#a3f53c63383ff301b20dcede0783869a7">poly_delete_array</a> </td>
|
||||
<td class="memname">void poly_delete_array </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">fmpz_poly_t ** </td>
|
||||
<td class="paramname"><em>poly_array</em></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
</div><div class="memdoc">
|
||||
<p>Delete the internal structure of a polynomial array which must be NULL terminated. It is expected that poly_array is not on the stack and was obtained by a function like ascii_to_poly().</p>
|
||||
<dl class="params"><dt><b>Parameters:</b></dt><dd>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramname">poly_array</td><td>the polynomial array </td></tr>
|
||||
</table>
|
||||
@@ -458,22 +474,21 @@ Functions</h2></td></tr>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a80a8ce0f2944bc3df94291ef2f781498"></a><!-- doxytag: member="ntru_poly.c::poly_draw" ref="a80a8ce0f2944bc3df94291ef2f781498" args="(const fmpz_poly_t poly)" -->
|
||||
<a class="anchor" id="a80a8ce0f2944bc3df94291ef2f781498"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void <a class="el" href="ntru_8h.html#a80a8ce0f2944bc3df94291ef2f781498">poly_draw</a> </td>
|
||||
<td class="memname">void poly_draw </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">const fmpz_poly_t </td>
|
||||
<td class="paramname"><em>poly</em></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
</div><div class="memdoc">
|
||||
<p>Draws a polynomial to stdout.</p>
|
||||
<dl class="params"><dt><b>Parameters:</b></dt><dd>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramname">poly</td><td>draw this </td></tr>
|
||||
</table>
|
||||
@@ -484,22 +499,21 @@ Functions</h2></td></tr>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="aec098d00160d2d502eb1f8a7c3fa5453"></a><!-- doxytag: member="ntru_poly.c::poly_draw_pretty" ref="aec098d00160d2d502eb1f8a7c3fa5453" args="(const fmpz_poly_t poly)" -->
|
||||
<a class="anchor" id="aec098d00160d2d502eb1f8a7c3fa5453"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void <a class="el" href="ntru_8h.html#aec098d00160d2d502eb1f8a7c3fa5453">poly_draw_pretty</a> </td>
|
||||
<td class="memname">void poly_draw_pretty </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">const fmpz_poly_t </td>
|
||||
<td class="paramname"><em>poly</em></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
</div><div class="memdoc">
|
||||
<p>Draws a polynomial to stdout, in pretty format.</p>
|
||||
<dl class="params"><dt><b>Parameters:</b></dt><dd>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramname">poly</td><td>draw this </td></tr>
|
||||
</table>
|
||||
@@ -510,12 +524,12 @@ Functions</h2></td></tr>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ae77b2014df42e5ed612206d5930ac608"></a><!-- doxytag: member="ntru_poly.c::poly_inverse_poly_p" ref="ae77b2014df42e5ed612206d5930ac608" args="(const fmpz_poly_t a, fmpz_poly_t Fp, const ntru_params *params)" -->
|
||||
<a class="anchor" id="ae77b2014df42e5ed612206d5930ac608"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">bool <a class="el" href="ntru__poly_8h.html#ae77b2014df42e5ed612206d5930ac608">poly_inverse_poly_p</a> </td>
|
||||
<td class="memname">bool poly_inverse_poly_p </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">const fmpz_poly_t </td>
|
||||
<td class="paramname"><em>a</em>, </td>
|
||||
@@ -538,11 +552,10 @@ Functions</h2></td></tr>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
</div><div class="memdoc">
|
||||
<p>Compute the inverse of a polynomial in (Z/pZ)[X]/(X^N - 1). See NTRU Cryptosystems Tech Report #014 "Almost Inverses
|
||||
and Fast NTRU Key Creation."</p>
|
||||
<dl class="params"><dt><b>Parameters:</b></dt><dd>
|
||||
and Fast NTRU Key Creation."</p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramname">a</td><td>polynomial to invert </td></tr>
|
||||
<tr><td class="paramname">Fp</td><td>polynomial [out] </td></tr>
|
||||
@@ -550,18 +563,18 @@ Functions</h2></td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="return"><dt><b>Returns:</b></dt><dd>true if invertible, false if not </dd></dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>true if invertible, false if not </dd></dl>
|
||||
|
||||
<p>Definition at line <a class="el" href="ntru__poly_8c_source.html#l00409">409</a> of file <a class="el" href="ntru__poly_8c_source.html">ntru_poly.c</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ace66beb516186e52f9b5b1ed8a397849"></a><!-- doxytag: member="ntru_poly.c::poly_inverse_poly_q" ref="ace66beb516186e52f9b5b1ed8a397849" args="(const fmpz_poly_t a, fmpz_poly_t Fq, const ntru_params *params)" -->
|
||||
<a class="anchor" id="ace66beb516186e52f9b5b1ed8a397849"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">bool <a class="el" href="ntru__poly_8h.html#ace66beb516186e52f9b5b1ed8a397849">poly_inverse_poly_q</a> </td>
|
||||
<td class="memname">bool poly_inverse_poly_q </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">const fmpz_poly_t </td>
|
||||
<td class="paramname"><em>a</em>, </td>
|
||||
@@ -584,12 +597,11 @@ Functions</h2></td></tr>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
</div><div class="memdoc">
|
||||
<p>Compute the inverse of a polynomial in modulo a power of 2, which is q. This is based off the pseudo-code for "Inversion
|
||||
in (Z/2Z)[X](X^N - 1)" and "Inversion in (Z/p^r Z)[X](X^N - 1)". See NTRU Cryptosystems Tech Report #014 "Almost Inverses
|
||||
and Fast NTRU Key Creation."</p>
|
||||
<dl class="params"><dt><b>Parameters:</b></dt><dd>
|
||||
in (Z/2Z)[X](X^N - 1)" and "Inversion in (Z/p^r Z)[X](X^N - 1)". See NTRU Cryptosystems Tech Report #014 "Almost Inverses
|
||||
and Fast NTRU Key Creation."</p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramname">a</td><td>polynomial to invert (is allowed to be the same as param Fq) </td></tr>
|
||||
<tr><td class="paramname">Fq</td><td>polynomial [out] </td></tr>
|
||||
@@ -597,18 +609,21 @@ Functions</h2></td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="return"><dt><b>Returns:</b></dt><dd>true if invertible, false if not </dd></dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>true if invertible, false if not </dd></dl>
|
||||
|
||||
<p>Definition at line <a class="el" href="ntru__poly_8c_source.html#l00297">297</a> of file <a class="el" href="ntru__poly_8c_source.html">ntru_poly.c</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a891af13dc4355c9fab9ca3fafcac8054"></a><!-- doxytag: member="ntru_poly.c::poly_mod2_to_modq" ref="a891af13dc4355c9fab9ca3fafcac8054" args="(const fmpz_poly_t a, fmpz_poly_t Fq, const ntru_params *params)" -->
|
||||
<a class="anchor" id="a891af13dc4355c9fab9ca3fafcac8054"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="mlabels">
|
||||
<tr>
|
||||
<td class="mlabels-left">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">static void <a class="el" href="ntru__poly_8c.html#a891af13dc4355c9fab9ca3fafcac8054">poly_mod2_to_modq</a> </td>
|
||||
<td class="memname">static void poly_mod2_to_modq </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">const fmpz_poly_t </td>
|
||||
<td class="paramname"><em>a</em>, </td>
|
||||
@@ -628,13 +643,17 @@ Functions</h2></td></tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td><code> [static]</code></td>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<p>Find the inverse polynomial modulo a power of 2, which is q.</p>
|
||||
<dl class="params"><dt><b>Parameters:</b></dt><dd>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramname">a</td><td>polynomial to invert </td></tr>
|
||||
<tr><td class="paramname">Fq</td><td>polynomial [out] </td></tr>
|
||||
@@ -647,12 +666,12 @@ Functions</h2></td></tr>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a20f86085d5eb5372fd25dc270069d38c"></a><!-- doxytag: member="ntru_poly.c::poly_new" ref="a20f86085d5eb5372fd25dc270069d38c" args="(fmpz_poly_t new_poly, int const *const c, const size_t len)" -->
|
||||
<a class="anchor" id="a20f86085d5eb5372fd25dc270069d38c"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void <a class="el" href="ntru_8h.html#a20f86085d5eb5372fd25dc270069d38c">poly_new</a> </td>
|
||||
<td class="memname">void poly_new </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">fmpz_poly_t </td>
|
||||
<td class="paramname"><em>new_poly</em>, </td>
|
||||
@@ -675,10 +694,9 @@ Functions</h2></td></tr>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
</div><div class="memdoc">
|
||||
<p>Initializes and builds a polynomial with the coefficient values of c[] of size len within NTRU parameters and returns a newly allocated polynomial. For an empty polynom, both c and len can be NULL/0.</p>
|
||||
<dl class="params"><dt><b>Parameters:</b></dt><dd>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramname">new_poly</td><td>the polynomial to initialize and fill with coefficients [out] </td></tr>
|
||||
<tr><td class="paramname">c</td><td>array of polynomial coefficients, can be NULL </td></tr>
|
||||
@@ -686,18 +704,18 @@ Functions</h2></td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="return"><dt><b>Returns:</b></dt><dd>newly allocated polynomial pointer, must be freed with fmpz_poly_clear() </dd></dl>
|
||||
<dl class="section return"><dt>Returns</dt><dd>newly allocated polynomial pointer, must be freed with fmpz_poly_clear() </dd></dl>
|
||||
|
||||
<p>Definition at line <a class="el" href="ntru__poly_8c_source.html#l00110">110</a> of file <a class="el" href="ntru__poly_8c_source.html">ntru_poly.c</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ae96f479ddd97af709a0ed50817fd3fb3"></a><!-- doxytag: member="ntru_poly.c::poly_starmultiply" ref="ae96f479ddd97af709a0ed50817fd3fb3" args="(const fmpz_poly_t a, const fmpz_poly_t b, fmpz_poly_t c, const ntru_params *params, uint32_t modulus)" -->
|
||||
<a class="anchor" id="ae96f479ddd97af709a0ed50817fd3fb3"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void <a class="el" href="ntru__poly_8h.html#ae96f479ddd97af709a0ed50817fd3fb3">poly_starmultiply</a> </td>
|
||||
<td class="memname">void poly_starmultiply </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">const fmpz_poly_t </td>
|
||||
<td class="paramname"><em>a</em>, </td>
|
||||
@@ -732,10 +750,9 @@ Functions</h2></td></tr>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
</div><div class="memdoc">
|
||||
<p>Starmultiplication, as follows: c = a * b mod (x^N − 1)</p>
|
||||
<dl class="params"><dt><b>Parameters:</b></dt><dd>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramname">a</td><td>polynom to multiply (can be the same as c) </td></tr>
|
||||
<tr><td class="paramname">b</td><td>polynom to multiply </td></tr>
|
||||
@@ -751,27 +768,11 @@ Functions</h2></td></tr>
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- contents -->
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Defines</a></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>
|
||||
|
||||
|
||||
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Sun Jun 8 2014 21:44:12 for post quantum cryptography by  <a href="http://www.doxygen.org/index.html">
|
||||
Generated on Sun Jun 8 2014 23:33:23 for post quantum cryptography by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.7.6.1
|
||||
</a> 1.8.7
|
||||
</small></address>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user