<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta name="generator" content="Doxygen 1.8.15"/> <meta name="viewport" content="width=device-width, initial-scale=1"/> <title>Crypto++: DL_FixedBasePrecomputation< T > Class Template 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="doxygen.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="top"><!-- do not remove this div, it is closed by doxygen! --> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td id="projectalign" style="padding-left: 0.5em;"> <div id="projectname">Crypto++  <span id="projectnumber">7.0</span> </div> <div id="projectbrief">Free C++ class library of cryptographic schemes</div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.15 --> <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&dn=gpl-2.0.txt GPL-v2 */ $(function() { initMenu('',false,false,'search.php','Search'); }); /* @license-end */</script> <div id="main-nav"></div> </div><!-- top --> <div class="header"> <div class="summary"> <a href="#pub-types">Public Types</a> | <a href="#pub-methods">Public Member Functions</a> | <a href="class_d_l___fixed_base_precomputation-members.html">List of all members</a> </div> <div class="headertitle"> <div class="title">DL_FixedBasePrecomputation< T > Class Template Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div> </div><!--header--> <div class="contents"> <p><a class="el" href="class_d_l___fixed_base_precomputation.html" title="DL_FixedBasePrecomputation interface.">DL_FixedBasePrecomputation</a> interface. <a href="class_d_l___fixed_base_precomputation.html#details">More...</a></p> <div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"> <img id="dynsection-0-trigger" src="closed.png" alt="+"/> Inheritance diagram for DL_FixedBasePrecomputation< T >:</div> <div id="dynsection-0-summary" class="dynsummary" style="display:block;"> </div> <div id="dynsection-0-content" class="dyncontent" style="display:none;"> <div class="center"> <img src="class_d_l___fixed_base_precomputation.png" usemap="#DL_5FFixedBasePrecomputation_3C_20T_20_3E_map" alt=""/> <map id="DL_5FFixedBasePrecomputation_3C_20T_20_3E_map" name="DL_5FFixedBasePrecomputation_3C_20T_20_3E_map"> <area href="class_d_l___fixed_base_precomputation_impl.html" title="DL_FixedBasePrecomputation adapter class." alt="DL_FixedBasePrecomputationImpl< T >" shape="rect" coords="0,56,234,80"/> </map> </div></div> <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a> Public Types</h2></td></tr> <tr class="memitem:a5d0a97b7a92644dda0c571f65c904879"><td class="memItemLeft" align="right" valign="top"><a id="a5d0a97b7a92644dda0c571f65c904879"></a> typedef T </td><td class="memItemRight" valign="bottom"><b>Element</b></td></tr> <tr class="separator:a5d0a97b7a92644dda0c571f65c904879"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a> Public Member Functions</h2></td></tr> <tr class="memitem:af3d9c16b963bfbb7e931809278f87185"><td class="memItemLeft" align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_l___fixed_base_precomputation.html#af3d9c16b963bfbb7e931809278f87185">IsInitialized</a> () const =0</td></tr> <tr class="memdesc:af3d9c16b963bfbb7e931809278f87185"><td class="mdescLeft"> </td><td class="mdescRight">Determines whether this object is initialized. <a href="#af3d9c16b963bfbb7e931809278f87185">More...</a><br /></td></tr> <tr class="separator:af3d9c16b963bfbb7e931809278f87185"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a5e0a929c25a9d6035abd57f7b26685f3"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_l___fixed_base_precomputation.html#a5e0a929c25a9d6035abd57f7b26685f3">SetBase</a> (const <a class="el" href="class_d_l___group_precomputation.html">DL_GroupPrecomputation</a>< Element > &group, const Element &base)=0</td></tr> <tr class="memdesc:a5e0a929c25a9d6035abd57f7b26685f3"><td class="mdescLeft"> </td><td class="mdescRight">Set the base element. <a href="#a5e0a929c25a9d6035abd57f7b26685f3">More...</a><br /></td></tr> <tr class="separator:a5e0a929c25a9d6035abd57f7b26685f3"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a3bd10f56a621c1a828a3f9eeaac19075"><td class="memItemLeft" align="right" valign="top">virtual const Element & </td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_l___fixed_base_precomputation.html#a3bd10f56a621c1a828a3f9eeaac19075">GetBase</a> (const <a class="el" href="class_d_l___group_precomputation.html">DL_GroupPrecomputation</a>< Element > &group) const =0</td></tr> <tr class="memdesc:a3bd10f56a621c1a828a3f9eeaac19075"><td class="mdescLeft"> </td><td class="mdescRight">Get the base element. <a href="#a3bd10f56a621c1a828a3f9eeaac19075">More...</a><br /></td></tr> <tr class="separator:a3bd10f56a621c1a828a3f9eeaac19075"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ab1e4f72616dc91d0a9629e97c21c643e"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_l___fixed_base_precomputation.html#ab1e4f72616dc91d0a9629e97c21c643e">Precompute</a> (const <a class="el" href="class_d_l___group_precomputation.html">DL_GroupPrecomputation</a>< Element > &group, unsigned int maxExpBits, unsigned int storage)=0</td></tr> <tr class="memdesc:ab1e4f72616dc91d0a9629e97c21c643e"><td class="mdescLeft"> </td><td class="mdescRight">Perform precomputation. <a href="#ab1e4f72616dc91d0a9629e97c21c643e">More...</a><br /></td></tr> <tr class="separator:ab1e4f72616dc91d0a9629e97c21c643e"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:afae968910cd467ec807f14c858045b5b"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_l___fixed_base_precomputation.html#afae968910cd467ec807f14c858045b5b">Load</a> (const <a class="el" href="class_d_l___group_precomputation.html">DL_GroupPrecomputation</a>< Element > &group, <a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &storedPrecomputation)=0</td></tr> <tr class="memdesc:afae968910cd467ec807f14c858045b5b"><td class="mdescLeft"> </td><td class="mdescRight">Retrieve previously saved precomputation. <a href="#afae968910cd467ec807f14c858045b5b">More...</a><br /></td></tr> <tr class="separator:afae968910cd467ec807f14c858045b5b"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a2d1ac13f18ad0df31e9b269f1bdc4ac7"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_l___fixed_base_precomputation.html#a2d1ac13f18ad0df31e9b269f1bdc4ac7">Save</a> (const <a class="el" href="class_d_l___group_precomputation.html">DL_GroupPrecomputation</a>< Element > &group, <a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &storedPrecomputation) const =0</td></tr> <tr class="memdesc:a2d1ac13f18ad0df31e9b269f1bdc4ac7"><td class="mdescLeft"> </td><td class="mdescRight">Save precomputation for later use. <a href="#a2d1ac13f18ad0df31e9b269f1bdc4ac7">More...</a><br /></td></tr> <tr class="separator:a2d1ac13f18ad0df31e9b269f1bdc4ac7"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ac11f5d82936a1e62395230aba2a34ae4"><td class="memItemLeft" align="right" valign="top">virtual Element </td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_l___fixed_base_precomputation.html#ac11f5d82936a1e62395230aba2a34ae4">Exponentiate</a> (const <a class="el" href="class_d_l___group_precomputation.html">DL_GroupPrecomputation</a>< Element > &group, const <a class="el" href="class_integer.html">Integer</a> &exponent) const =0</td></tr> <tr class="memdesc:ac11f5d82936a1e62395230aba2a34ae4"><td class="mdescLeft"> </td><td class="mdescRight">Exponentiates an element. <a href="#ac11f5d82936a1e62395230aba2a34ae4">More...</a><br /></td></tr> <tr class="separator:ac11f5d82936a1e62395230aba2a34ae4"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aeebf79fe3b74224d5ce63147a47bf2b5"><td class="memItemLeft" align="right" valign="top">virtual Element </td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_l___fixed_base_precomputation.html#aeebf79fe3b74224d5ce63147a47bf2b5">CascadeExponentiate</a> (const <a class="el" href="class_d_l___group_precomputation.html">DL_GroupPrecomputation</a>< Element > &pc1, const <a class="el" href="class_integer.html">Integer</a> &exponent1, const <a class="el" href="class_d_l___fixed_base_precomputation.html">DL_FixedBasePrecomputation</a>< Element > &pc2, const <a class="el" href="class_integer.html">Integer</a> &exponent2) const =0</td></tr> <tr class="memdesc:aeebf79fe3b74224d5ce63147a47bf2b5"><td class="mdescLeft"> </td><td class="mdescRight">Exponentiates an element. <a href="#aeebf79fe3b74224d5ce63147a47bf2b5">More...</a><br /></td></tr> <tr class="separator:aeebf79fe3b74224d5ce63147a47bf2b5"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <div class="textblock"><h3>template<class T><br /> class DL_FixedBasePrecomputation< T ></h3> <p><a class="el" href="class_d_l___fixed_base_precomputation.html" title="DL_FixedBasePrecomputation interface.">DL_FixedBasePrecomputation</a> interface. </p> <dl class="tparams"><dt>Template Parameters</dt><dd> <table class="tparams"> <tr><td class="paramname">T</td><td>Field element </td></tr> </table> </dd> </dl> <p class="definition">Definition at line <a class="el" href="eprecomp_8h_source.html#l00060">60</a> of file <a class="el" href="eprecomp_8h_source.html">eprecomp.h</a>.</p> </div><h2 class="groupheader">Member Function Documentation</h2> <a id="af3d9c16b963bfbb7e931809278f87185"></a> <h2 class="memtitle"><span class="permalink"><a href="#af3d9c16b963bfbb7e931809278f87185">◆ </a></span>IsInitialized()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<class T> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">virtual bool <a class="el" href="class_d_l___fixed_base_precomputation.html">DL_FixedBasePrecomputation</a>< T >::IsInitialized </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Determines whether this object is initialized. </p> <dl class="section return"><dt>Returns</dt><dd>true if this object is initialized, false otherwise </dd></dl> <p>Implemented in <a class="el" href="class_d_l___base_precomputation___l_u_c.html#aa827de4576c4d1b8a3a474872ff14796">DL_BasePrecomputation_LUC</a>, <a class="el" href="class_d_l___fixed_base_precomputation_impl.html#a6c273749a72768e78fb0953cf62b7e65">DL_FixedBasePrecomputationImpl< T ></a>, <a class="el" href="class_d_l___fixed_base_precomputation_impl.html#a6c273749a72768e78fb0953cf62b7e65">DL_FixedBasePrecomputationImpl< typename ModExpPrecomputation ::Element ></a>, and <a class="el" href="class_d_l___fixed_base_precomputation_impl.html#a6c273749a72768e78fb0953cf62b7e65">DL_FixedBasePrecomputationImpl< typename EcPrecomputation< EC > ::Element ></a>.</p> </div> </div> <a id="a5e0a929c25a9d6035abd57f7b26685f3"></a> <h2 class="memtitle"><span class="permalink"><a href="#a5e0a929c25a9d6035abd57f7b26685f3">◆ </a></span>SetBase()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<class T> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">virtual void <a class="el" href="class_d_l___fixed_base_precomputation.html">DL_FixedBasePrecomputation</a>< T >::SetBase </td> <td>(</td> <td class="paramtype">const <a class="el" href="class_d_l___group_precomputation.html">DL_GroupPrecomputation</a>< Element > & </td> <td class="paramname"><em>group</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const Element & </td> <td class="paramname"><em>base</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Set the base element. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">group</td><td>the group </td></tr> <tr><td class="paramname">base</td><td>element in the group </td></tr> </table> </dd> </dl> <p>Implemented in <a class="el" href="class_d_l___base_precomputation___l_u_c.html#a6d865ec1833d0d4c5f30647ca7b2e9a7">DL_BasePrecomputation_LUC</a>, <a class="el" href="class_d_l___fixed_base_precomputation_impl.html#a84f4151f6ffb1b05b8f0efccd120d169">DL_FixedBasePrecomputationImpl< T ></a>, <a class="el" href="class_d_l___fixed_base_precomputation_impl.html#a84f4151f6ffb1b05b8f0efccd120d169">DL_FixedBasePrecomputationImpl< typename ModExpPrecomputation ::Element ></a>, and <a class="el" href="class_d_l___fixed_base_precomputation_impl.html#a84f4151f6ffb1b05b8f0efccd120d169">DL_FixedBasePrecomputationImpl< typename EcPrecomputation< EC > ::Element ></a>.</p> </div> </div> <a id="a3bd10f56a621c1a828a3f9eeaac19075"></a> <h2 class="memtitle"><span class="permalink"><a href="#a3bd10f56a621c1a828a3f9eeaac19075">◆ </a></span>GetBase()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<class T> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">virtual const Element& <a class="el" href="class_d_l___fixed_base_precomputation.html">DL_FixedBasePrecomputation</a>< T >::GetBase </td> <td>(</td> <td class="paramtype">const <a class="el" href="class_d_l___group_precomputation.html">DL_GroupPrecomputation</a>< Element > & </td> <td class="paramname"><em>group</em></td><td>)</td> <td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Get the base element. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">group</td><td>the group </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>base element in the group </dd></dl> <p>Implemented in <a class="el" href="class_d_l___base_precomputation___l_u_c.html#ae3f798a940fa6e8817e63d252905b628">DL_BasePrecomputation_LUC</a>, <a class="el" href="class_d_l___fixed_base_precomputation_impl.html#ad1c683d28b19854e6c61cef0c7471f55">DL_FixedBasePrecomputationImpl< T ></a>, <a class="el" href="class_d_l___fixed_base_precomputation_impl.html#ad1c683d28b19854e6c61cef0c7471f55">DL_FixedBasePrecomputationImpl< typename ModExpPrecomputation ::Element ></a>, and <a class="el" href="class_d_l___fixed_base_precomputation_impl.html#ad1c683d28b19854e6c61cef0c7471f55">DL_FixedBasePrecomputationImpl< typename EcPrecomputation< EC > ::Element ></a>.</p> </div> </div> <a id="ab1e4f72616dc91d0a9629e97c21c643e"></a> <h2 class="memtitle"><span class="permalink"><a href="#ab1e4f72616dc91d0a9629e97c21c643e">◆ </a></span>Precompute()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<class T> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">virtual void <a class="el" href="class_d_l___fixed_base_precomputation.html">DL_FixedBasePrecomputation</a>< T >::Precompute </td> <td>(</td> <td class="paramtype">const <a class="el" href="class_d_l___group_precomputation.html">DL_GroupPrecomputation</a>< Element > & </td> <td class="paramname"><em>group</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned int </td> <td class="paramname"><em>maxExpBits</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned int </td> <td class="paramname"><em>storage</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Perform precomputation. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">group</td><td>the group </td></tr> <tr><td class="paramname">maxExpBits</td><td>used to calculate the exponent base </td></tr> <tr><td class="paramname">storage</td><td>the suggested number of objects for the precompute table</td></tr> </table> </dd> </dl> <p>The exact semantics of <a class="el" href="class_d_l___fixed_base_precomputation.html#ab1e4f72616dc91d0a9629e97c21c643e" title="Perform precomputation.">Precompute()</a> varies, but it typically means calculate a table of n objects that can be used later to speed up computation.</p> <p>If a derived class does not override <a class="el" href="class_d_l___fixed_base_precomputation.html#ab1e4f72616dc91d0a9629e97c21c643e" title="Perform precomputation.">Precompute()</a>, then the base class throws <a class="el" href="class_not_implemented.html" title="A method was called which was not implemented.">NotImplemented</a>. </p><dl class="section see"><dt>See also</dt><dd>SupportsPrecomputation(), LoadPrecomputation(), SavePrecomputation() </dd></dl> <p>Implemented in <a class="el" href="class_d_l___base_precomputation___l_u_c.html#a635c3728cec2a472716bbab2dc6bbe29">DL_BasePrecomputation_LUC</a>, <a class="el" href="class_d_l___fixed_base_precomputation_impl.html#aaef0287112a39612d23c00fa6ceb4782">DL_FixedBasePrecomputationImpl< T ></a>, <a class="el" href="class_d_l___fixed_base_precomputation_impl.html#aaef0287112a39612d23c00fa6ceb4782">DL_FixedBasePrecomputationImpl< typename ModExpPrecomputation ::Element ></a>, and <a class="el" href="class_d_l___fixed_base_precomputation_impl.html#aaef0287112a39612d23c00fa6ceb4782">DL_FixedBasePrecomputationImpl< typename EcPrecomputation< EC > ::Element ></a>.</p> </div> </div> <a id="afae968910cd467ec807f14c858045b5b"></a> <h2 class="memtitle"><span class="permalink"><a href="#afae968910cd467ec807f14c858045b5b">◆ </a></span>Load()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<class T> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">virtual void <a class="el" href="class_d_l___fixed_base_precomputation.html">DL_FixedBasePrecomputation</a>< T >::Load </td> <td>(</td> <td class="paramtype">const <a class="el" href="class_d_l___group_precomputation.html">DL_GroupPrecomputation</a>< Element > & </td> <td class="paramname"><em>group</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> & </td> <td class="paramname"><em>storedPrecomputation</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Retrieve previously saved precomputation. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">group</td><td>the the group </td></tr> <tr><td class="paramname">storedPrecomputation</td><td><a class="el" href="class_buffered_transformation.html" title="Interface for buffered transformations.">BufferedTransformation</a> with the saved precomputation </td></tr> </table> </dd> </dl> <dl class="exception"><dt>Exceptions</dt><dd> <table class="exception"> <tr><td class="paramname"><a class="el" href="class_not_implemented.html" title="A method was called which was not implemented.">NotImplemented</a></td><td></td></tr> </table> </dd> </dl> <dl class="section see"><dt>See also</dt><dd>SupportsPrecomputation(), <a class="el" href="class_d_l___fixed_base_precomputation.html#ab1e4f72616dc91d0a9629e97c21c643e" title="Perform precomputation.">Precompute()</a> </dd></dl> <p>Implemented in <a class="el" href="class_d_l___base_precomputation___l_u_c.html#a29ef2941ab5722671d60a35e5f11a357">DL_BasePrecomputation_LUC</a>, <a class="el" href="class_d_l___fixed_base_precomputation_impl.html#a15b52a9f5d25dedceb7fb88ddef3eee0">DL_FixedBasePrecomputationImpl< T ></a>, <a class="el" href="class_d_l___fixed_base_precomputation_impl.html#a15b52a9f5d25dedceb7fb88ddef3eee0">DL_FixedBasePrecomputationImpl< typename ModExpPrecomputation ::Element ></a>, and <a class="el" href="class_d_l___fixed_base_precomputation_impl.html#a15b52a9f5d25dedceb7fb88ddef3eee0">DL_FixedBasePrecomputationImpl< typename EcPrecomputation< EC > ::Element ></a>.</p> </div> </div> <a id="a2d1ac13f18ad0df31e9b269f1bdc4ac7"></a> <h2 class="memtitle"><span class="permalink"><a href="#a2d1ac13f18ad0df31e9b269f1bdc4ac7">◆ </a></span>Save()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<class T> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">virtual void <a class="el" href="class_d_l___fixed_base_precomputation.html">DL_FixedBasePrecomputation</a>< T >::Save </td> <td>(</td> <td class="paramtype">const <a class="el" href="class_d_l___group_precomputation.html">DL_GroupPrecomputation</a>< Element > & </td> <td class="paramname"><em>group</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> & </td> <td class="paramname"><em>storedPrecomputation</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Save precomputation for later use. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">group</td><td>the the group </td></tr> <tr><td class="paramname">storedPrecomputation</td><td><a class="el" href="class_buffered_transformation.html" title="Interface for buffered transformations.">BufferedTransformation</a> to write the precomputation </td></tr> </table> </dd> </dl> <dl class="exception"><dt>Exceptions</dt><dd> <table class="exception"> <tr><td class="paramname"><a class="el" href="class_not_implemented.html" title="A method was called which was not implemented.">NotImplemented</a></td><td></td></tr> </table> </dd> </dl> <dl class="section see"><dt>See also</dt><dd>SupportsPrecomputation(), <a class="el" href="class_d_l___fixed_base_precomputation.html#ab1e4f72616dc91d0a9629e97c21c643e" title="Perform precomputation.">Precompute()</a> </dd></dl> <p>Implemented in <a class="el" href="class_d_l___base_precomputation___l_u_c.html#a53f91378ed493e00439e40f30eb26e25">DL_BasePrecomputation_LUC</a>, <a class="el" href="class_d_l___fixed_base_precomputation_impl.html#abcfa8d9239aafa6dde7016fa10a8417b">DL_FixedBasePrecomputationImpl< T ></a>, <a class="el" href="class_d_l___fixed_base_precomputation_impl.html#abcfa8d9239aafa6dde7016fa10a8417b">DL_FixedBasePrecomputationImpl< typename ModExpPrecomputation ::Element ></a>, and <a class="el" href="class_d_l___fixed_base_precomputation_impl.html#abcfa8d9239aafa6dde7016fa10a8417b">DL_FixedBasePrecomputationImpl< typename EcPrecomputation< EC > ::Element ></a>.</p> </div> </div> <a id="ac11f5d82936a1e62395230aba2a34ae4"></a> <h2 class="memtitle"><span class="permalink"><a href="#ac11f5d82936a1e62395230aba2a34ae4">◆ </a></span>Exponentiate()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<class T> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">virtual Element <a class="el" href="class_d_l___fixed_base_precomputation.html">DL_FixedBasePrecomputation</a>< T >::Exponentiate </td> <td>(</td> <td class="paramtype">const <a class="el" href="class_d_l___group_precomputation.html">DL_GroupPrecomputation</a>< Element > & </td> <td class="paramname"><em>group</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="class_integer.html">Integer</a> & </td> <td class="paramname"><em>exponent</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Exponentiates an element. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">group</td><td>the group </td></tr> <tr><td class="paramname">exponent</td><td>the exponent </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>the result of the exponentiation </dd></dl> <p>Implemented in <a class="el" href="class_d_l___fixed_base_precomputation_impl.html#afce90333da5a33ab1b78f15cae84be2b">DL_FixedBasePrecomputationImpl< T ></a>, <a class="el" href="class_d_l___fixed_base_precomputation_impl.html#afce90333da5a33ab1b78f15cae84be2b">DL_FixedBasePrecomputationImpl< typename ModExpPrecomputation ::Element ></a>, and <a class="el" href="class_d_l___fixed_base_precomputation_impl.html#afce90333da5a33ab1b78f15cae84be2b">DL_FixedBasePrecomputationImpl< typename EcPrecomputation< EC > ::Element ></a>.</p> </div> </div> <a id="aeebf79fe3b74224d5ce63147a47bf2b5"></a> <h2 class="memtitle"><span class="permalink"><a href="#aeebf79fe3b74224d5ce63147a47bf2b5">◆ </a></span>CascadeExponentiate()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<class T> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">virtual Element <a class="el" href="class_d_l___fixed_base_precomputation.html">DL_FixedBasePrecomputation</a>< T >::CascadeExponentiate </td> <td>(</td> <td class="paramtype">const <a class="el" href="class_d_l___group_precomputation.html">DL_GroupPrecomputation</a>< Element > & </td> <td class="paramname"><em>pc1</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="class_integer.html">Integer</a> & </td> <td class="paramname"><em>exponent1</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="class_d_l___fixed_base_precomputation.html">DL_FixedBasePrecomputation</a>< Element > & </td> <td class="paramname"><em>pc2</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="class_integer.html">Integer</a> & </td> <td class="paramname"><em>exponent2</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Exponentiates an element. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">pc1</td><td>the first the group precomputation </td></tr> <tr><td class="paramname">exponent1</td><td>the first exponent </td></tr> <tr><td class="paramname">pc2</td><td>the second the group precomputation </td></tr> <tr><td class="paramname">exponent2</td><td>the first exponent2 </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>the public element raised to the exponent</dd></dl> <p>CascadeExponentiateBaseAndPublicElement raises the public element to the base element and precomputation. </p> <p>Implemented in <a class="el" href="class_d_l___base_precomputation___l_u_c.html#a938f563acc6ec78ae18a658eaa6f70e2">DL_BasePrecomputation_LUC</a>, <a class="el" href="class_d_l___fixed_base_precomputation_impl.html#ab7167290e224fb791a2f9012f9e08038">DL_FixedBasePrecomputationImpl< T ></a>, <a class="el" href="class_d_l___fixed_base_precomputation_impl.html#ab7167290e224fb791a2f9012f9e08038">DL_FixedBasePrecomputationImpl< typename ModExpPrecomputation ::Element ></a>, and <a class="el" href="class_d_l___fixed_base_precomputation_impl.html#ab7167290e224fb791a2f9012f9e08038">DL_FixedBasePrecomputationImpl< typename EcPrecomputation< EC > ::Element ></a>.</p> </div> </div> <hr/>The documentation for this class was generated from the following file:<ul> <li><a class="el" href="eprecomp_8h_source.html">eprecomp.h</a></li> </ul> </div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated on Wed Nov 27 2019 15:04:07 for Crypto++ by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/> </a> 1.8.15 </small></address> </body> </html>