dash-docs/en/doxygen/html/group_8h.html

1707 lines
87 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.14"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Dash Core: src/secp256k1/src/group.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="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(initResizable);
/* @license-end */</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="bitcoin_logo_doxygen.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Dash Core
&#160;<span id="projectnumber">0.12.2.1</span>
</div>
<div id="projectbrief">P2P Digital Currency</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.14 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('group_8h.html','');});
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">group.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="num_8h_source.html">num.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="field_8h_source.html">field.h</a>&quot;</code><br />
</div>
<p><a href="group_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 name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsecp256k1__ge__storage.html">secp256k1_ge_storage</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:adb0cb248ca6d0aabe3a82423233e6ce3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group_8h.html#adb0cb248ca6d0aabe3a82423233e6ce3">SECP256K1_GE_CONST</a>(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p)&#160;&#160;&#160;{<a class="el" href="field__5x52_8h.html#a8c00ba3d97ea0d9b0d461463e890de15">SECP256K1_FE_CONST</a>((a),(b),(c),(d),(e),(f),(g),(h)), <a class="el" href="field__5x52_8h.html#a8c00ba3d97ea0d9b0d461463e890de15">SECP256K1_FE_CONST</a>((i),(j),(k),(l),(m),(n),(o),(p)), 0}</td></tr>
<tr class="separator:adb0cb248ca6d0aabe3a82423233e6ce3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9b939335f1394bfa95e55b3f4f8d0d58"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group_8h.html#a9b939335f1394bfa95e55b3f4f8d0d58">SECP256K1_GE_CONST_INFINITY</a>&#160;&#160;&#160;{<a class="el" href="field__5x52_8h.html#a8c00ba3d97ea0d9b0d461463e890de15">SECP256K1_FE_CONST</a>(0, 0, 0, 0, 0, 0, 0, 0), <a class="el" href="field__5x52_8h.html#a8c00ba3d97ea0d9b0d461463e890de15">SECP256K1_FE_CONST</a>(0, 0, 0, 0, 0, 0, 0, 0), 1}</td></tr>
<tr class="separator:a9b939335f1394bfa95e55b3f4f8d0d58"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af46c307c9174e2aa45dbf6f32e61ed21"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group_8h.html#af46c307c9174e2aa45dbf6f32e61ed21">SECP256K1_GEJ_CONST</a>(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p)&#160;&#160;&#160;{<a class="el" href="field__5x52_8h.html#a8c00ba3d97ea0d9b0d461463e890de15">SECP256K1_FE_CONST</a>((a),(b),(c),(d),(e),(f),(g),(h)), <a class="el" href="field__5x52_8h.html#a8c00ba3d97ea0d9b0d461463e890de15">SECP256K1_FE_CONST</a>((i),(j),(k),(l),(m),(n),(o),(p)), <a class="el" href="field__5x52_8h.html#a8c00ba3d97ea0d9b0d461463e890de15">SECP256K1_FE_CONST</a>(0, 0, 0, 0, 0, 0, 0, 1), 0}</td></tr>
<tr class="separator:af46c307c9174e2aa45dbf6f32e61ed21"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0143422e1ce1601b00ff71c20c455ceb"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group_8h.html#a0143422e1ce1601b00ff71c20c455ceb">SECP256K1_GEJ_CONST_INFINITY</a>&#160;&#160;&#160;{<a class="el" href="field__5x52_8h.html#a8c00ba3d97ea0d9b0d461463e890de15">SECP256K1_FE_CONST</a>(0, 0, 0, 0, 0, 0, 0, 0), <a class="el" href="field__5x52_8h.html#a8c00ba3d97ea0d9b0d461463e890de15">SECP256K1_FE_CONST</a>(0, 0, 0, 0, 0, 0, 0, 0), <a class="el" href="field__5x52_8h.html#a8c00ba3d97ea0d9b0d461463e890de15">SECP256K1_FE_CONST</a>(0, 0, 0, 0, 0, 0, 0, 0), 1}</td></tr>
<tr class="separator:a0143422e1ce1601b00ff71c20c455ceb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a01dc428f2a47a18098539b5c620834f1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group_8h.html#a01dc428f2a47a18098539b5c620834f1">SECP256K1_GE_STORAGE_CONST</a>(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p)&#160;&#160;&#160;{<a class="el" href="field__5x52_8h.html#ae6927483c41044bd04e5f8efb42f53ba">SECP256K1_FE_STORAGE_CONST</a>((a),(b),(c),(d),(e),(f),(g),(h)), <a class="el" href="field__5x52_8h.html#ae6927483c41044bd04e5f8efb42f53ba">SECP256K1_FE_STORAGE_CONST</a>((i),(j),(k),(l),(m),(n),(o),(p))}</td></tr>
<tr class="separator:a01dc428f2a47a18098539b5c620834f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adefefa4ed4193a466784391616bc2f9f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group_8h.html#adefefa4ed4193a466784391616bc2f9f">SECP256K1_GE_STORAGE_CONST_GET</a>(t)&#160;&#160;&#160;<a class="el" href="field__10x26_8h.html#a07b67ff641d5db9df0691b14cdc29584">SECP256K1_FE_STORAGE_CONST_GET</a>(t.x), <a class="el" href="field__10x26_8h.html#a07b67ff641d5db9df0691b14cdc29584">SECP256K1_FE_STORAGE_CONST_GET</a>(t.y)</td></tr>
<tr class="separator:adefefa4ed4193a466784391616bc2f9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a34ab3d1a9a0a7ff0ed1cedff9db5f73c"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group_8h.html#a34ab3d1a9a0a7ff0ed1cedff9db5f73c">secp256k1_ge_set_xy</a> (<a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> *r, const <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *x, const <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *y)</td></tr>
<tr class="separator:a34ab3d1a9a0a7ff0ed1cedff9db5f73c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a767d4255b822bcd84f84d9b440b3af86"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group_8h.html#a767d4255b822bcd84f84d9b440b3af86">secp256k1_ge_set_xquad_var</a> (<a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> *r, const <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *x)</td></tr>
<tr class="separator:a767d4255b822bcd84f84d9b440b3af86"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3c3d9154b093bb4ed48ba55e4c28a0b5"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group_8h.html#a3c3d9154b093bb4ed48ba55e4c28a0b5">secp256k1_ge_set_xo_var</a> (<a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> *r, const <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *x, int odd)</td></tr>
<tr class="separator:a3c3d9154b093bb4ed48ba55e4c28a0b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac83592db46af97faf7ba9b9a39a1f6ff"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group_8h.html#ac83592db46af97faf7ba9b9a39a1f6ff">secp256k1_ge_is_infinity</a> (const <a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> *a)</td></tr>
<tr class="separator:ac83592db46af97faf7ba9b9a39a1f6ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a83600b0c4d8e95a8b2e730b4e2f207dc"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group_8h.html#a83600b0c4d8e95a8b2e730b4e2f207dc">secp256k1_ge_is_valid_var</a> (const <a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> *a)</td></tr>
<tr class="separator:a83600b0c4d8e95a8b2e730b4e2f207dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abcb34de0cfdf82a125e059f4f98de1d9"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group_8h.html#abcb34de0cfdf82a125e059f4f98de1d9">secp256k1_ge_neg</a> (<a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> *r, const <a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> *a)</td></tr>
<tr class="separator:abcb34de0cfdf82a125e059f4f98de1d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa511eebf8cd7419763f06555ed4fb62d"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group_8h.html#aa511eebf8cd7419763f06555ed4fb62d">secp256k1_ge_set_gej</a> (<a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> *r, <a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *a)</td></tr>
<tr class="separator:aa511eebf8cd7419763f06555ed4fb62d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ada58b0cf328a74cfdd1f8b35083668a1"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group_8h.html#ada58b0cf328a74cfdd1f8b35083668a1">secp256k1_ge_set_all_gej_var</a> (size_t len, <a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> *r, const <a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *a, const <a class="el" href="structsecp256k1__callback.html">secp256k1_callback</a> *cb)</td></tr>
<tr class="separator:ada58b0cf328a74cfdd1f8b35083668a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1cf9611464711ed63bde94d92ecc70de"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group_8h.html#a1cf9611464711ed63bde94d92ecc70de">secp256k1_ge_set_table_gej_var</a> (size_t len, <a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> *r, const <a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *a, const <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *zr)</td></tr>
<tr class="separator:a1cf9611464711ed63bde94d92ecc70de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5391d63ab98be9202d5f14611133fe35"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group_8h.html#a5391d63ab98be9202d5f14611133fe35">secp256k1_ge_globalz_set_table_gej</a> (size_t len, <a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> *r, <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *globalz, const <a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *a, const <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *zr)</td></tr>
<tr class="separator:a5391d63ab98be9202d5f14611133fe35"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c6b24a2db08260d89e891eab7035b2c"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group_8h.html#a2c6b24a2db08260d89e891eab7035b2c">secp256k1_gej_set_infinity</a> (<a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *r)</td></tr>
<tr class="separator:a2c6b24a2db08260d89e891eab7035b2c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad5f813e26afb239f03e83f0e61e05498"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group_8h.html#ad5f813e26afb239f03e83f0e61e05498">secp256k1_gej_set_ge</a> (<a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *r, const <a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> *a)</td></tr>
<tr class="separator:ad5f813e26afb239f03e83f0e61e05498"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa32fc177f081f16d5979045d3632cf8b"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group_8h.html#aa32fc177f081f16d5979045d3632cf8b">secp256k1_gej_eq_x_var</a> (const <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *x, const <a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *a)</td></tr>
<tr class="separator:aa32fc177f081f16d5979045d3632cf8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af9194949a7aaf18aceab1dee73fe4027"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group_8h.html#af9194949a7aaf18aceab1dee73fe4027">secp256k1_gej_neg</a> (<a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *r, const <a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *a)</td></tr>
<tr class="separator:af9194949a7aaf18aceab1dee73fe4027"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a33786d5853579c92d46fac51f6a40093"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group_8h.html#a33786d5853579c92d46fac51f6a40093">secp256k1_gej_is_infinity</a> (const <a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *a)</td></tr>
<tr class="separator:a33786d5853579c92d46fac51f6a40093"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4424d01156ea843dad5a8d27b2feec4f"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group_8h.html#a4424d01156ea843dad5a8d27b2feec4f">secp256k1_gej_double_nonzero</a> (<a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *r, const <a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *a, <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *rzr)</td></tr>
<tr class="separator:a4424d01156ea843dad5a8d27b2feec4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a033aa434a4d0838f649ad757dd44db46"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group_8h.html#a033aa434a4d0838f649ad757dd44db46">secp256k1_gej_double_var</a> (<a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *r, const <a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *a, <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *rzr)</td></tr>
<tr class="separator:a033aa434a4d0838f649ad757dd44db46"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8df21f3ef7412e6c4d39fb67dc0140c6"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group_8h.html#a8df21f3ef7412e6c4d39fb67dc0140c6">secp256k1_gej_add_var</a> (<a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *r, const <a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *a, const <a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *b, <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *rzr)</td></tr>
<tr class="separator:a8df21f3ef7412e6c4d39fb67dc0140c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a586b55d5921edcd68799f584c0a3c58d"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group_8h.html#a586b55d5921edcd68799f584c0a3c58d">secp256k1_gej_add_ge</a> (<a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *r, const <a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *a, const <a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> *b)</td></tr>
<tr class="separator:a586b55d5921edcd68799f584c0a3c58d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4d0338f50b08d082caa32f8e72707b55"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group_8h.html#a4d0338f50b08d082caa32f8e72707b55">secp256k1_gej_add_ge_var</a> (<a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *r, const <a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *a, const <a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> *b, <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *rzr)</td></tr>
<tr class="separator:a4d0338f50b08d082caa32f8e72707b55"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a180d4e54e906f101ce0f1e74563ce5f6"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group_8h.html#a180d4e54e906f101ce0f1e74563ce5f6">secp256k1_gej_add_zinv_var</a> (<a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *r, const <a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *a, const <a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> *b, const <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *bzinv)</td></tr>
<tr class="separator:a180d4e54e906f101ce0f1e74563ce5f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2454dfbe1e75eba118d2c0a4184a9acc"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group_8h.html#a2454dfbe1e75eba118d2c0a4184a9acc">secp256k1_gej_clear</a> (<a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *r)</td></tr>
<tr class="separator:a2454dfbe1e75eba118d2c0a4184a9acc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a34793cf48794f089bb28597d1a9f23b2"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group_8h.html#a34793cf48794f089bb28597d1a9f23b2">secp256k1_ge_clear</a> (<a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> *r)</td></tr>
<tr class="separator:a34793cf48794f089bb28597d1a9f23b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad6499ae629f998e50d8614869ee3c67f"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group_8h.html#ad6499ae629f998e50d8614869ee3c67f">secp256k1_ge_to_storage</a> (<a class="el" href="structsecp256k1__ge__storage.html">secp256k1_ge_storage</a> *r, const <a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> *a)</td></tr>
<tr class="separator:ad6499ae629f998e50d8614869ee3c67f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8c1e7f328284d9ba56404bb8d99bf765"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group_8h.html#a8c1e7f328284d9ba56404bb8d99bf765">secp256k1_ge_from_storage</a> (<a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> *r, const <a class="el" href="structsecp256k1__ge__storage.html">secp256k1_ge_storage</a> *a)</td></tr>
<tr class="separator:a8c1e7f328284d9ba56404bb8d99bf765"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9a5ec01f9c5a8fcbae1a83217cd96069"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group_8h.html#a9a5ec01f9c5a8fcbae1a83217cd96069">secp256k1_ge_storage_cmov</a> (<a class="el" href="structsecp256k1__ge__storage.html">secp256k1_ge_storage</a> *r, const <a class="el" href="structsecp256k1__ge__storage.html">secp256k1_ge_storage</a> *a, int flag)</td></tr>
<tr class="separator:a9a5ec01f9c5a8fcbae1a83217cd96069"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a96ba360f6eb5f21c88e019e741a098ee"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group_8h.html#a96ba360f6eb5f21c88e019e741a098ee">secp256k1_gej_rescale</a> (<a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *r, const <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *b)</td></tr>
<tr class="separator:a96ba360f6eb5f21c88e019e741a098ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a id="adb0cb248ca6d0aabe3a82423233e6ce3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adb0cb248ca6d0aabe3a82423233e6ce3">&#9670;&nbsp;</a></span>SECP256K1_GE_CONST</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define SECP256K1_GE_CONST</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">a, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">b, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">c, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">d, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">e, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">f, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">g, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">h, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">i, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">j, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">k, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">l, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">m, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">n, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">o, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">p&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td>&#160;&#160;&#160;{<a class="el" href="field__5x52_8h.html#a8c00ba3d97ea0d9b0d461463e890de15">SECP256K1_FE_CONST</a>((a),(b),(c),(d),(e),(f),(g),(h)), <a class="el" href="field__5x52_8h.html#a8c00ba3d97ea0d9b0d461463e890de15">SECP256K1_FE_CONST</a>((i),(j),(k),(l),(m),(n),(o),(p)), 0}</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="group_8h_source.html#l00020">20</a> of file <a class="el" href="group_8h_source.html">group.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="tests_8c_source.html#l02230">ecmult_const_random_mult()</a>.</p>
</div>
</div>
<a id="a9b939335f1394bfa95e55b3f4f8d0d58"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9b939335f1394bfa95e55b3f4f8d0d58">&#9670;&nbsp;</a></span>SECP256K1_GE_CONST_INFINITY</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define SECP256K1_GE_CONST_INFINITY&#160;&#160;&#160;{<a class="el" href="field__5x52_8h.html#a8c00ba3d97ea0d9b0d461463e890de15">SECP256K1_FE_CONST</a>(0, 0, 0, 0, 0, 0, 0, 0), <a class="el" href="field__5x52_8h.html#a8c00ba3d97ea0d9b0d461463e890de15">SECP256K1_FE_CONST</a>(0, 0, 0, 0, 0, 0, 0, 0), 1}</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="group_8h_source.html#l00021">21</a> of file <a class="el" href="group_8h_source.html">group.h</a>.</p>
</div>
</div>
<a id="a01dc428f2a47a18098539b5c620834f1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a01dc428f2a47a18098539b5c620834f1">&#9670;&nbsp;</a></span>SECP256K1_GE_STORAGE_CONST</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define SECP256K1_GE_STORAGE_CONST</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">a, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">b, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">c, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">d, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">e, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">f, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">g, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">h, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">i, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">j, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">k, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">l, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">m, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">n, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">o, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">p&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td>&#160;&#160;&#160;{<a class="el" href="field__5x52_8h.html#ae6927483c41044bd04e5f8efb42f53ba">SECP256K1_FE_STORAGE_CONST</a>((a),(b),(c),(d),(e),(f),(g),(h)), <a class="el" href="field__5x52_8h.html#ae6927483c41044bd04e5f8efb42f53ba">SECP256K1_FE_STORAGE_CONST</a>((i),(j),(k),(l),(m),(n),(o),(p))}</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="group_8h_source.html#l00039">39</a> of file <a class="el" href="group_8h_source.html">group.h</a>.</p>
</div>
</div>
<a id="adefefa4ed4193a466784391616bc2f9f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adefefa4ed4193a466784391616bc2f9f">&#9670;&nbsp;</a></span>SECP256K1_GE_STORAGE_CONST_GET</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define SECP256K1_GE_STORAGE_CONST_GET</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">t</td><td>)</td>
<td>&#160;&#160;&#160;<a class="el" href="field__10x26_8h.html#a07b67ff641d5db9df0691b14cdc29584">SECP256K1_FE_STORAGE_CONST_GET</a>(t.x), <a class="el" href="field__10x26_8h.html#a07b67ff641d5db9df0691b14cdc29584">SECP256K1_FE_STORAGE_CONST_GET</a>(t.y)</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="group_8h_source.html#l00041">41</a> of file <a class="el" href="group_8h_source.html">group.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="gen__context_8c_source.html#l00027">main()</a>.</p>
</div>
</div>
<a id="af46c307c9174e2aa45dbf6f32e61ed21"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af46c307c9174e2aa45dbf6f32e61ed21">&#9670;&nbsp;</a></span>SECP256K1_GEJ_CONST</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define SECP256K1_GEJ_CONST</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">a, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">b, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">c, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">d, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">e, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">f, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">g, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">h, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">i, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">j, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">k, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">l, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">m, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">n, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">o, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">p&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td>&#160;&#160;&#160;{<a class="el" href="field__5x52_8h.html#a8c00ba3d97ea0d9b0d461463e890de15">SECP256K1_FE_CONST</a>((a),(b),(c),(d),(e),(f),(g),(h)), <a class="el" href="field__5x52_8h.html#a8c00ba3d97ea0d9b0d461463e890de15">SECP256K1_FE_CONST</a>((i),(j),(k),(l),(m),(n),(o),(p)), <a class="el" href="field__5x52_8h.html#a8c00ba3d97ea0d9b0d461463e890de15">SECP256K1_FE_CONST</a>(0, 0, 0, 0, 0, 0, 0, 1), 0}</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="group_8h_source.html#l00031">31</a> of file <a class="el" href="group_8h_source.html">group.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="tests_8c_source.html#l02300">ecmult_const_chain_multiply()</a>, <a class="el" href="tests_8c_source.html#l02109">run_ecmult_chain()</a>, and <a class="el" href="tests_8c_source.html#l01944">test_add_neg_y_diff_x()</a>.</p>
</div>
</div>
<a id="a0143422e1ce1601b00ff71c20c455ceb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0143422e1ce1601b00ff71c20c455ceb">&#9670;&nbsp;</a></span>SECP256K1_GEJ_CONST_INFINITY</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define SECP256K1_GEJ_CONST_INFINITY&#160;&#160;&#160;{<a class="el" href="field__5x52_8h.html#a8c00ba3d97ea0d9b0d461463e890de15">SECP256K1_FE_CONST</a>(0, 0, 0, 0, 0, 0, 0, 0), <a class="el" href="field__5x52_8h.html#a8c00ba3d97ea0d9b0d461463e890de15">SECP256K1_FE_CONST</a>(0, 0, 0, 0, 0, 0, 0, 0), <a class="el" href="field__5x52_8h.html#a8c00ba3d97ea0d9b0d461463e890de15">SECP256K1_FE_CONST</a>(0, 0, 0, 0, 0, 0, 0, 0), 1}</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="group_8h_source.html#l00032">32</a> of file <a class="el" href="group_8h_source.html">group.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="tests_8c_source.html#l01740">test_ge()</a>.</p>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="a34793cf48794f089bb28597d1a9f23b2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a34793cf48794f089bb28597d1a9f23b2">&#9670;&nbsp;</a></span>secp256k1_ge_clear()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void secp256k1_ge_clear </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> *&#160;</td>
<td class="paramname"><em>r</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Clear a <a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> to prevent leaking sensitive information. </p>
<p class="reference">Referenced by <a class="el" href="secp256k1_8c_source.html#l00152">secp256k1_ec_pubkey_parse()</a>, <a class="el" href="ecdsa__impl_8h_source.html#l00257">secp256k1_ecdsa_sig_sign()</a>, <a class="el" href="ecmult__gen__impl_8h_source.html#l00124">secp256k1_ecmult_gen()</a>, and <a class="el" href="tests_8c_source.html#l01740">test_ge()</a>.</p>
</div>
</div>
<a id="a8c1e7f328284d9ba56404bb8d99bf765"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8c1e7f328284d9ba56404bb8d99bf765">&#9670;&nbsp;</a></span>secp256k1_ge_from_storage()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void secp256k1_ge_from_storage </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> *&#160;</td>
<td class="paramname"><em>r</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structsecp256k1__ge__storage.html">secp256k1_ge_storage</a> *&#160;</td>
<td class="paramname"><em>a</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Convert a group element back from the storage type. </p>
<p class="reference">Referenced by <a class="el" href="ecmult__const__impl_8h_source.html#l00125">secp256k1_ecmult_const()</a>, <a class="el" href="ecmult__gen__impl_8h_source.html#l00124">secp256k1_ecmult_gen()</a>, and <a class="el" href="secp256k1_8c_source.html#l00119">secp256k1_pubkey_load()</a>.</p>
</div>
</div>
<a id="a5391d63ab98be9202d5f14611133fe35"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5391d63ab98be9202d5f14611133fe35">&#9670;&nbsp;</a></span>secp256k1_ge_globalz_set_table_gej()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void secp256k1_ge_globalz_set_table_gej </td>
<td>(</td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>len</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> *&#160;</td>
<td class="paramname"><em>r</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *&#160;</td>
<td class="paramname"><em>globalz</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *&#160;</td>
<td class="paramname"><em>a</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *&#160;</td>
<td class="paramname"><em>zr</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Bring a batch inputs given in jacobian coordinates (with known z-ratios) to the same global z "denominator". zr must contain the known z-ratios such that mul(a[i].z, zr[i+1]) == a[i+1].z. zr[0] is ignored. The x and y coordinates of the result are stored in r, the common z coordinate is stored in globalz. </p>
<p class="reference">Referenced by <a class="el" href="ecmult__impl_8h_source.html#l00085">secp256k1_ecmult_odd_multiples_table_globalz_windowa()</a>.</p>
</div>
</div>
<a id="ac83592db46af97faf7ba9b9a39a1f6ff"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac83592db46af97faf7ba9b9a39a1f6ff">&#9670;&nbsp;</a></span>secp256k1_ge_is_infinity()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static int secp256k1_ge_is_infinity </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> *&#160;</td>
<td class="paramname"><em>a</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Check whether a group element is the point at infinity. </p>
<p class="reference">Referenced by <a class="el" href="tests_8c_source.html#l02278">ecmult_const_mult_zero_one()</a>, <a class="el" href="eckey__impl_8h_source.html#l00036">secp256k1_eckey_pubkey_serialize()</a>, <a class="el" href="secp256k1_8c_source.html#l00138">secp256k1_pubkey_save()</a>, <a class="el" href="schnorr__impl_8h_source.html#l00106">secp256k1_schnorr_sig_verify()</a>, <a class="el" href="tests_8c_source.html#l01740">test_ge()</a>, and <a class="el" href="tests_8c_source.html#l02173">test_point_times_order()</a>.</p>
</div>
</div>
<a id="a83600b0c4d8e95a8b2e730b4e2f207dc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a83600b0c4d8e95a8b2e730b4e2f207dc">&#9670;&nbsp;</a></span>secp256k1_ge_is_valid_var()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static int secp256k1_ge_is_valid_var </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> *&#160;</td>
<td class="paramname"><em>a</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Check whether a group element is valid (i.e., on the curve). </p>
<p class="reference">Referenced by <a class="el" href="tests_8c_source.html#l02230">ecmult_const_random_mult()</a>, <a class="el" href="tests_8c_source.html#l02208">run_point_times_order()</a>, <a class="el" href="eckey__impl_8h_source.html#l00017">secp256k1_eckey_pubkey_parse()</a>, and <a class="el" href="tests_8c_source.html#l02173">test_point_times_order()</a>.</p>
</div>
</div>
<a id="abcb34de0cfdf82a125e059f4f98de1d9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abcb34de0cfdf82a125e059f4f98de1d9">&#9670;&nbsp;</a></span>secp256k1_ge_neg()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void secp256k1_ge_neg </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> *&#160;</td>
<td class="paramname"><em>r</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> *&#160;</td>
<td class="paramname"><em>a</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="reference">Referenced by <a class="el" href="ecmult__const__impl_8h_source.html#l00125">secp256k1_ecmult_const()</a>, <a class="el" href="tests_8c_source.html#l02451">test_ecmult_constants()</a>, and <a class="el" href="tests_8c_source.html#l01740">test_ge()</a>.</p>
</div>
</div>
<a id="ada58b0cf328a74cfdd1f8b35083668a1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ada58b0cf328a74cfdd1f8b35083668a1">&#9670;&nbsp;</a></span>secp256k1_ge_set_all_gej_var()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void secp256k1_ge_set_all_gej_var </td>
<td>(</td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>len</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> *&#160;</td>
<td class="paramname"><em>r</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *&#160;</td>
<td class="paramname"><em>a</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structsecp256k1__callback.html">secp256k1_callback</a> *&#160;</td>
<td class="paramname"><em>cb</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Set a batch of group elements equal to the inputs given in jacobian coordinates </p>
<p class="reference">Referenced by <a class="el" href="ecmult__gen__impl_8h_source.html#l00021">secp256k1_ecmult_gen_context_build()</a>, and <a class="el" href="tests_8c_source.html#l01740">test_ge()</a>.</p>
</div>
</div>
<a id="aa511eebf8cd7419763f06555ed4fb62d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa511eebf8cd7419763f06555ed4fb62d">&#9670;&nbsp;</a></span>secp256k1_ge_set_gej()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void secp256k1_ge_set_gej </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> *&#160;</td>
<td class="paramname"><em>r</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *&#160;</td>
<td class="paramname"><em>a</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Set a group element equal to another which is given in jacobian coordinates </p>
<p class="reference">Referenced by <a class="el" href="tests_8c_source.html#l02300">ecmult_const_chain_multiply()</a>, <a class="el" href="tests_8c_source.html#l02257">ecmult_const_commutativity()</a>, <a class="el" href="tests_8c_source.html#l02278">ecmult_const_mult_zero_one()</a>, <a class="el" href="tests_8c_source.html#l00136">run_context_tests()</a>, <a class="el" href="secp256k1_8c_source.html#l00534">secp256k1_ec_pubkey_combine()</a>, <a class="el" href="secp256k1_8c_source.html#l00409">secp256k1_ec_pubkey_create()</a>, <a class="el" href="ecdh_2main__impl_8h_source.html#l00013">secp256k1_ecdh()</a>, <a class="el" href="ecdsa__impl_8h_source.html#l00257">secp256k1_ecdsa_sig_sign()</a>, <a class="el" href="eckey__impl_8h_source.html#l00062">secp256k1_eckey_pubkey_tweak_add()</a>, <a class="el" href="eckey__impl_8h_source.html#l00085">secp256k1_eckey_pubkey_tweak_mul()</a>, <a class="el" href="ecmult__const__impl_8h_source.html#l00125">secp256k1_ecmult_const()</a>, <a class="el" href="schnorr_2main__impl_8h_source.html#l00091">secp256k1_schnorr_generate_nonce_pair()</a>, <a class="el" href="schnorr__impl_8h_source.html#l00144">secp256k1_schnorr_sig_recover()</a>, <a class="el" href="schnorr__impl_8h_source.html#l00062">secp256k1_schnorr_sig_sign()</a>, <a class="el" href="tests_8c_source.html#l01944">test_add_neg_y_diff_x()</a>, <a class="el" href="tests_8c_source.html#l02019">test_ec_combine()</a>, <a class="el" href="tests_8c_source.html#l03811">test_ecdsa_edge_cases()</a>, <a class="el" href="tests_8c_source.html#l03206">test_ecdsa_sign_verify()</a>, <a class="el" href="tests_8c_source.html#l02488">test_ecmult_gen_blind()</a>, and <a class="el" href="tests_8c_source.html#l02173">test_point_times_order()</a>.</p>
</div>
</div>
<a id="a1cf9611464711ed63bde94d92ecc70de"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1cf9611464711ed63bde94d92ecc70de">&#9670;&nbsp;</a></span>secp256k1_ge_set_table_gej_var()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void secp256k1_ge_set_table_gej_var </td>
<td>(</td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>len</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> *&#160;</td>
<td class="paramname"><em>r</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *&#160;</td>
<td class="paramname"><em>a</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *&#160;</td>
<td class="paramname"><em>zr</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Set a batch of group elements equal to the inputs given in jacobian coordinates (with known z-ratios). zr must contain the known z-ratios such that mul(a[i].z, zr[i+1]) == a[i+1].z. zr[0] is ignored. </p>
<p class="reference">Referenced by <a class="el" href="ecmult__impl_8h_source.html#l00095">secp256k1_ecmult_odd_multiples_table_storage_var()</a>, and <a class="el" href="tests_8c_source.html#l01740">test_ge()</a>.</p>
</div>
</div>
<a id="a3c3d9154b093bb4ed48ba55e4c28a0b5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3c3d9154b093bb4ed48ba55e4c28a0b5">&#9670;&nbsp;</a></span>secp256k1_ge_set_xo_var()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static int secp256k1_ge_set_xo_var </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> *&#160;</td>
<td class="paramname"><em>r</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *&#160;</td>
<td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>odd</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Set a group element (affine) equal to the point with the given X coordinate, and given oddness for Y. Return value indicates whether the result is valid. </p>
<p class="reference">Referenced by <a class="el" href="bench__internal_8c_source.html#l00030">bench_setup()</a>, <a class="el" href="tests_8c_source.html#l00084">random_group_element_test()</a>, <a class="el" href="tests_8c_source.html#l02208">run_point_times_order()</a>, <a class="el" href="recovery_2main__impl_8h_source.html#l00087">secp256k1_ecdsa_sig_recover()</a>, <a class="el" href="eckey__impl_8h_source.html#l00017">secp256k1_eckey_pubkey_parse()</a>, <a class="el" href="ecmult__gen__impl_8h_source.html#l00021">secp256k1_ecmult_gen_context_build()</a>, <a class="el" href="schnorr__impl_8h_source.html#l00144">secp256k1_schnorr_sig_recover()</a>, and <a class="el" href="tests_8c_source.html#l02051">test_group_decompress()</a>.</p>
</div>
</div>
<a id="a767d4255b822bcd84f84d9b440b3af86"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a767d4255b822bcd84f84d9b440b3af86">&#9670;&nbsp;</a></span>secp256k1_ge_set_xquad_var()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static int secp256k1_ge_set_xquad_var </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> *&#160;</td>
<td class="paramname"><em>r</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *&#160;</td>
<td class="paramname"><em>x</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Set a group element (affine) equal to the point with the given X coordinate and a Y coordinate that is a quadratic residue modulo p. The return value is true iff a coordinate with the given X coordinate exists. </p>
<p class="reference">Referenced by <a class="el" href="tests_8c_source.html#l02051">test_group_decompress()</a>.</p>
</div>
</div>
<a id="a34ab3d1a9a0a7ff0ed1cedff9db5f73c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a34ab3d1a9a0a7ff0ed1cedff9db5f73c">&#9670;&nbsp;</a></span>secp256k1_ge_set_xy()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void secp256k1_ge_set_xy </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> *&#160;</td>
<td class="paramname"><em>r</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *&#160;</td>
<td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *&#160;</td>
<td class="paramname"><em>y</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Set a group element equal to the point with given X and Y coordinates </p>
<p class="reference">Referenced by <a class="el" href="eckey__impl_8h_source.html#l00017">secp256k1_eckey_pubkey_parse()</a>, and <a class="el" href="secp256k1_8c_source.html#l00119">secp256k1_pubkey_load()</a>.</p>
</div>
</div>
<a id="a9a5ec01f9c5a8fcbae1a83217cd96069"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9a5ec01f9c5a8fcbae1a83217cd96069">&#9670;&nbsp;</a></span>secp256k1_ge_storage_cmov()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void secp256k1_ge_storage_cmov </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structsecp256k1__ge__storage.html">secp256k1_ge_storage</a> *&#160;</td>
<td class="paramname"><em>r</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structsecp256k1__ge__storage.html">secp256k1_ge_storage</a> *&#160;</td>
<td class="paramname"><em>a</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>flag</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>If flag is true, set *r equal to *a; otherwise leave it. Constant-time. </p>
<p class="reference">Referenced by <a class="el" href="ecmult__const__impl_8h_source.html#l00125">secp256k1_ecmult_const()</a>, and <a class="el" href="ecmult__gen__impl_8h_source.html#l00124">secp256k1_ecmult_gen()</a>.</p>
</div>
</div>
<a id="ad6499ae629f998e50d8614869ee3c67f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad6499ae629f998e50d8614869ee3c67f">&#9670;&nbsp;</a></span>secp256k1_ge_to_storage()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void secp256k1_ge_to_storage </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structsecp256k1__ge__storage.html">secp256k1_ge_storage</a> *&#160;</td>
<td class="paramname"><em>r</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> *&#160;</td>
<td class="paramname"><em>a</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Convert a group element to the storage type. </p>
<p class="reference">Referenced by <a class="el" href="ecmult__const__impl_8h_source.html#l00125">secp256k1_ecmult_const()</a>, <a class="el" href="ecmult__gen__impl_8h_source.html#l00021">secp256k1_ecmult_gen_context_build()</a>, <a class="el" href="ecmult__impl_8h_source.html#l00095">secp256k1_ecmult_odd_multiples_table_storage_var()</a>, and <a class="el" href="secp256k1_8c_source.html#l00138">secp256k1_pubkey_save()</a>.</p>
</div>
</div>
<a id="a586b55d5921edcd68799f584c0a3c58d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a586b55d5921edcd68799f584c0a3c58d">&#9670;&nbsp;</a></span>secp256k1_gej_add_ge()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void secp256k1_gej_add_ge </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *&#160;</td>
<td class="paramname"><em>r</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *&#160;</td>
<td class="paramname"><em>a</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> *&#160;</td>
<td class="paramname"><em>b</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Set r equal to the sum of a and b (with b given in affine coordinates, and not infinity). </p>
<p class="reference">Referenced by <a class="el" href="bench__internal_8c_source.html#l00212">bench_group_add_affine()</a>, <a class="el" href="secp256k1_8c_source.html#l00534">secp256k1_ec_pubkey_combine()</a>, <a class="el" href="ecmult__const__impl_8h_source.html#l00125">secp256k1_ecmult_const()</a>, <a class="el" href="ecmult__gen__impl_8h_source.html#l00124">secp256k1_ecmult_gen()</a>, <a class="el" href="schnorr__impl_8h_source.html#l00062">secp256k1_schnorr_sig_sign()</a>, <a class="el" href="tests_8c_source.html#l01944">test_add_neg_y_diff_x()</a>, <a class="el" href="tests_8c_source.html#l02451">test_ecmult_constants()</a>, and <a class="el" href="tests_8c_source.html#l01740">test_ge()</a>.</p>
</div>
</div>
<a id="a4d0338f50b08d082caa32f8e72707b55"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4d0338f50b08d082caa32f8e72707b55">&#9670;&nbsp;</a></span>secp256k1_gej_add_ge_var()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void secp256k1_gej_add_ge_var </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *&#160;</td>
<td class="paramname"><em>r</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *&#160;</td>
<td class="paramname"><em>a</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> *&#160;</td>
<td class="paramname"><em>b</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *&#160;</td>
<td class="paramname"><em>rzr</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Set r equal to the sum of a and b (with b given in affine coordinates). This is more efficient than secp256k1_gej_add_var. It is identical to secp256k1_gej_add_ge but without constant-time guarantee, and b is allowed to be infinity. If rzr is non-NULL, r-&gt;z = a-&gt;z * *rzr (a cannot be infinity in that case). </p>
<p class="reference">Referenced by <a class="el" href="bench__internal_8c_source.html#l00221">bench_group_add_affine_var()</a>, <a class="el" href="ecmult__impl_8h_source.html#l00269">secp256k1_ecmult()</a>, <a class="el" href="ecmult__gen__impl_8h_source.html#l00021">secp256k1_ecmult_gen_context_build()</a>, <a class="el" href="ecmult__impl_8h_source.html#l00035">secp256k1_ecmult_odd_multiples_table()</a>, <a class="el" href="tests_8c_source.html#l01944">test_add_neg_y_diff_x()</a>, and <a class="el" href="tests_8c_source.html#l01740">test_ge()</a>.</p>
</div>
</div>
<a id="a8df21f3ef7412e6c4d39fb67dc0140c6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8df21f3ef7412e6c4d39fb67dc0140c6">&#9670;&nbsp;</a></span>secp256k1_gej_add_var()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void secp256k1_gej_add_var </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *&#160;</td>
<td class="paramname"><em>r</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *&#160;</td>
<td class="paramname"><em>a</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *&#160;</td>
<td class="paramname"><em>b</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *&#160;</td>
<td class="paramname"><em>rzr</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Set r equal to the sum of a and b. If rzr is non-NULL, r-&gt;z = a-&gt;z * *rzr (a cannot be infinity in that case). </p>
<p class="reference">Referenced by <a class="el" href="bench__internal_8c_source.html#l00203">bench_group_add_var()</a>, <a class="el" href="tests_8c_source.html#l02109">run_ecmult_chain()</a>, <a class="el" href="ecmult__gen__impl_8h_source.html#l00021">secp256k1_ecmult_gen_context_build()</a>, <a class="el" href="tests_8c_source.html#l01944">test_add_neg_y_diff_x()</a>, <a class="el" href="tests_8c_source.html#l01740">test_ge()</a>, and <a class="el" href="tests_8c_source.html#l02173">test_point_times_order()</a>.</p>
</div>
</div>
<a id="a180d4e54e906f101ce0f1e74563ce5f6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a180d4e54e906f101ce0f1e74563ce5f6">&#9670;&nbsp;</a></span>secp256k1_gej_add_zinv_var()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void secp256k1_gej_add_zinv_var </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *&#160;</td>
<td class="paramname"><em>r</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *&#160;</td>
<td class="paramname"><em>a</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> *&#160;</td>
<td class="paramname"><em>b</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *&#160;</td>
<td class="paramname"><em>bzinv</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Set r equal to the sum of a and b (with the inverse of b's Z coordinate passed as bzinv). </p>
<p class="reference">Referenced by <a class="el" href="ecmult__impl_8h_source.html#l00269">secp256k1_ecmult()</a>, and <a class="el" href="tests_8c_source.html#l01740">test_ge()</a>.</p>
</div>
</div>
<a id="a2454dfbe1e75eba118d2c0a4184a9acc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2454dfbe1e75eba118d2c0a4184a9acc">&#9670;&nbsp;</a></span>secp256k1_gej_clear()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void secp256k1_gej_clear </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *&#160;</td>
<td class="paramname"><em>r</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Clear a <a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> to prevent leaking sensitive information. </p>
<p class="reference">Referenced by <a class="el" href="ecdsa__impl_8h_source.html#l00257">secp256k1_ecdsa_sig_sign()</a>, <a class="el" href="ecmult__gen__impl_8h_source.html#l00159">secp256k1_ecmult_gen_blind()</a>, and <a class="el" href="ecmult__gen__impl_8h_source.html#l00115">secp256k1_ecmult_gen_context_clear()</a>.</p>
</div>
</div>
<a id="a4424d01156ea843dad5a8d27b2feec4f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4424d01156ea843dad5a8d27b2feec4f">&#9670;&nbsp;</a></span>secp256k1_gej_double_nonzero()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void secp256k1_gej_double_nonzero </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *&#160;</td>
<td class="paramname"><em>r</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *&#160;</td>
<td class="paramname"><em>a</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *&#160;</td>
<td class="paramname"><em>rzr</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Set r equal to the double of a. If rzr is not-NULL, r-&gt;z = a-&gt;z * *rzr (where infinity means an implicit z = 0). a may not be zero. Constant time. </p>
<p class="reference">Referenced by <a class="el" href="ecmult__const__impl_8h_source.html#l00125">secp256k1_ecmult_const()</a>.</p>
</div>
</div>
<a id="a033aa434a4d0838f649ad757dd44db46"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a033aa434a4d0838f649ad757dd44db46">&#9670;&nbsp;</a></span>secp256k1_gej_double_var()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void secp256k1_gej_double_var </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *&#160;</td>
<td class="paramname"><em>r</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *&#160;</td>
<td class="paramname"><em>a</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *&#160;</td>
<td class="paramname"><em>rzr</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Set r equal to the double of a. If rzr is not-NULL, r-&gt;z = a-&gt;z * *rzr (where infinity means an implicit z = 0). </p>
<p class="reference">Referenced by <a class="el" href="bench__internal_8c_source.html#l00194">bench_group_double_var()</a>, <a class="el" href="ecmult__impl_8h_source.html#l00269">secp256k1_ecmult()</a>, <a class="el" href="ecmult__const__impl_8h_source.html#l00125">secp256k1_ecmult_const()</a>, <a class="el" href="ecmult__impl_8h_source.html#l00147">secp256k1_ecmult_context_build()</a>, <a class="el" href="ecmult__gen__impl_8h_source.html#l00021">secp256k1_ecmult_gen_context_build()</a>, <a class="el" href="ecmult__impl_8h_source.html#l00035">secp256k1_ecmult_odd_multiples_table()</a>, and <a class="el" href="tests_8c_source.html#l01740">test_ge()</a>.</p>
</div>
</div>
<a id="aa32fc177f081f16d5979045d3632cf8b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa32fc177f081f16d5979045d3632cf8b">&#9670;&nbsp;</a></span>secp256k1_gej_eq_x_var()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static int secp256k1_gej_eq_x_var </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *&#160;</td>
<td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *&#160;</td>
<td class="paramname"><em>a</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Compare the X coordinate of a group element (jacobian). </p>
<p class="reference">Referenced by <a class="el" href="ecdsa__impl_8h_source.html#l00203">secp256k1_ecdsa_sig_verify()</a>.</p>
</div>
</div>
<a id="a33786d5853579c92d46fac51f6a40093"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a33786d5853579c92d46fac51f6a40093">&#9670;&nbsp;</a></span>secp256k1_gej_is_infinity()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static int secp256k1_gej_is_infinity </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *&#160;</td>
<td class="paramname"><em>a</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Check whether a group element is the point at infinity. </p>
<p class="reference">Referenced by <a class="el" href="tests_8c_source.html#l02109">run_ecmult_chain()</a>, <a class="el" href="secp256k1_8c_source.html#l00534">secp256k1_ec_pubkey_combine()</a>, <a class="el" href="recovery_2main__impl_8h_source.html#l00087">secp256k1_ecdsa_sig_recover()</a>, <a class="el" href="ecdsa__impl_8h_source.html#l00203">secp256k1_ecdsa_sig_verify()</a>, <a class="el" href="eckey__impl_8h_source.html#l00062">secp256k1_eckey_pubkey_tweak_add()</a>, <a class="el" href="schnorr__impl_8h_source.html#l00144">secp256k1_schnorr_sig_recover()</a>, <a class="el" href="schnorr__impl_8h_source.html#l00106">secp256k1_schnorr_sig_verify()</a>, <a class="el" href="tests_8c_source.html#l02451">test_ecmult_constants()</a>, <a class="el" href="tests_8c_source.html#l01740">test_ge()</a>, and <a class="el" href="tests_8c_source.html#l02173">test_point_times_order()</a>.</p>
</div>
</div>
<a id="af9194949a7aaf18aceab1dee73fe4027"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af9194949a7aaf18aceab1dee73fe4027">&#9670;&nbsp;</a></span>secp256k1_gej_neg()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void secp256k1_gej_neg </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *&#160;</td>
<td class="paramname"><em>r</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *&#160;</td>
<td class="paramname"><em>a</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Set r equal to the inverse of a (i.e., mirrored around the X axis) </p>
<p class="reference">Referenced by <a class="el" href="tests_8c_source.html#l02278">ecmult_const_mult_zero_one()</a>, <a class="el" href="tests_8c_source.html#l02109">run_ecmult_chain()</a>, <a class="el" href="ecmult__gen__impl_8h_source.html#l00159">secp256k1_ecmult_gen_blind()</a>, and <a class="el" href="ecmult__gen__impl_8h_source.html#l00021">secp256k1_ecmult_gen_context_build()</a>.</p>
</div>
</div>
<a id="a96ba360f6eb5f21c88e019e741a098ee"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a96ba360f6eb5f21c88e019e741a098ee">&#9670;&nbsp;</a></span>secp256k1_gej_rescale()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void secp256k1_gej_rescale </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *&#160;</td>
<td class="paramname"><em>r</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *&#160;</td>
<td class="paramname"><em>b</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Rescale a jacobian point by b which must be non-zero. Constant-time. </p>
<p class="reference">Referenced by <a class="el" href="ecmult__gen__impl_8h_source.html#l00159">secp256k1_ecmult_gen_blind()</a>, and <a class="el" href="tests_8c_source.html#l01740">test_ge()</a>.</p>
</div>
</div>
<a id="ad5f813e26afb239f03e83f0e61e05498"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad5f813e26afb239f03e83f0e61e05498">&#9670;&nbsp;</a></span>secp256k1_gej_set_ge()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void secp256k1_gej_set_ge </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *&#160;</td>
<td class="paramname"><em>r</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> *&#160;</td>
<td class="paramname"><em>a</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Set a group element (jacobian) equal to another which is given in affine coordinates. </p>
<p class="reference">Referenced by <a class="el" href="bench__internal_8c_source.html#l00030">bench_setup()</a>, <a class="el" href="tests_8c_source.html#l02300">ecmult_const_chain_multiply()</a>, <a class="el" href="tests_8c_source.html#l02208">run_point_times_order()</a>, <a class="el" href="recovery_2main__impl_8h_source.html#l00087">secp256k1_ecdsa_sig_recover()</a>, <a class="el" href="ecdsa__impl_8h_source.html#l00203">secp256k1_ecdsa_sig_verify()</a>, <a class="el" href="eckey__impl_8h_source.html#l00062">secp256k1_eckey_pubkey_tweak_add()</a>, <a class="el" href="eckey__impl_8h_source.html#l00085">secp256k1_eckey_pubkey_tweak_mul()</a>, <a class="el" href="ecmult__const__impl_8h_source.html#l00125">secp256k1_ecmult_const()</a>, <a class="el" href="ecmult__impl_8h_source.html#l00147">secp256k1_ecmult_context_build()</a>, <a class="el" href="ecmult__gen__impl_8h_source.html#l00159">secp256k1_ecmult_gen_blind()</a>, <a class="el" href="ecmult__gen__impl_8h_source.html#l00021">secp256k1_ecmult_gen_context_build()</a>, <a class="el" href="schnorr__impl_8h_source.html#l00144">secp256k1_schnorr_sig_recover()</a>, <a class="el" href="schnorr__impl_8h_source.html#l00106">secp256k1_schnorr_sig_verify()</a>, and <a class="el" href="tests_8c_source.html#l01740">test_ge()</a>.</p>
</div>
</div>
<a id="a2c6b24a2db08260d89e891eab7035b2c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2c6b24a2db08260d89e891eab7035b2c">&#9670;&nbsp;</a></span>secp256k1_gej_set_infinity()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void secp256k1_gej_set_infinity </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *&#160;</td>
<td class="paramname"><em>r</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Set a group element (jacobian) equal to the point at infinity. </p>
<p class="reference">Referenced by <a class="el" href="secp256k1_8c_source.html#l00534">secp256k1_ec_pubkey_combine()</a>, <a class="el" href="ecmult__impl_8h_source.html#l00269">secp256k1_ecmult()</a>, and <a class="el" href="tests_8c_source.html#l01740">test_ge()</a>.</p>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_44f34d1e62fda08bdb4ca69ab2d205ae.html">secp256k1</a></li><li class="navelem"><a class="el" href="dir_8db2ef784512d48b2a7d00369dfaac28.html">src</a></li><li class="navelem"><a class="el" href="group_8h.html">group.h</a></li>
<li class="footer">Generated on Thu Dec 14 2017 13:15:11 for Dash Core by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
</ul>
</div>
</body>
</html>