⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 eprecomp_8h-source.html

📁 著名的密码库Crypto++的文档 C++语言的杰作。程序员必备。
💻 HTML
📖 第 1 页 / 共 2 页
字号:
<a name="l00030"></a>00030         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> IsInitialized() <span class="keyword">const</span> =0;<a name="l00031"></a>00031         <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetBase(<span class="keyword">const</span> <a class="code" href="class_d_l___group_precomputation.html">DL_GroupPrecomputation&lt;Element&gt;</a> &amp;group, <span class="keyword">const</span> <a class="code" href="class_d_l___fixed_base_precomputation.html#5d0a97b7a92644dda0c571f65c904879">Element</a> &amp;base) =0;<a name="l00032"></a>00032         <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="class_d_l___fixed_base_precomputation.html#5d0a97b7a92644dda0c571f65c904879">Element</a> &amp; GetBase(<span class="keyword">const</span> <a class="code" href="class_d_l___group_precomputation.html">DL_GroupPrecomputation&lt;Element&gt;</a> &amp;group) <span class="keyword">const</span> =0;<a name="l00033"></a>00033         <span class="keyword">virtual</span> <span class="keywordtype">void</span> Precompute(<span class="keyword">const</span> <a class="code" href="class_d_l___group_precomputation.html">DL_GroupPrecomputation&lt;Element&gt;</a> &amp;group, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> maxExpBits, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> storage) =0;<a name="l00034"></a>00034         <span class="keyword">virtual</span> <span class="keywordtype">void</span> Load(<span class="keyword">const</span> <a class="code" href="class_d_l___group_precomputation.html">DL_GroupPrecomputation&lt;Element&gt;</a> &amp;group, <a class="code" href="class_buffered_transformation.html" title="interface for buffered transformations">BufferedTransformation</a> &amp;storedPrecomputation) =0;<a name="l00035"></a>00035         <span class="keyword">virtual</span> <span class="keywordtype">void</span> Save(<span class="keyword">const</span> <a class="code" href="class_d_l___group_precomputation.html">DL_GroupPrecomputation&lt;Element&gt;</a> &amp;group, <a class="code" href="class_buffered_transformation.html" title="interface for buffered transformations">BufferedTransformation</a> &amp;storedPrecomputation) <span class="keyword">const</span> =0;<a name="l00036"></a>00036         <span class="keyword">virtual</span> <a class="code" href="class_d_l___fixed_base_precomputation.html#5d0a97b7a92644dda0c571f65c904879">Element</a> Exponentiate(<span class="keyword">const</span> <a class="code" href="class_d_l___group_precomputation.html">DL_GroupPrecomputation&lt;Element&gt;</a> &amp;group, <span class="keyword">const</span> <a class="code" href="class_integer.html" title="multiple precision integer and basic arithmetics">Integer</a> &amp;exponent) <span class="keyword">const</span> =0;<a name="l00037"></a>00037         <span class="keyword">virtual</span> <a class="code" href="class_d_l___fixed_base_precomputation.html#5d0a97b7a92644dda0c571f65c904879">Element</a> CascadeExponentiate(<span class="keyword">const</span> <a class="code" href="class_d_l___group_precomputation.html">DL_GroupPrecomputation&lt;Element&gt;</a> &amp;group, <span class="keyword">const</span> <a class="code" href="class_integer.html" title="multiple precision integer and basic arithmetics">Integer</a> &amp;exponent, <span class="keyword">const</span> <a class="code" href="class_d_l___fixed_base_precomputation.html">DL_FixedBasePrecomputation&lt;Element&gt;</a> &amp;pc2, <span class="keyword">const</span> <a class="code" href="class_integer.html" title="multiple precision integer and basic arithmetics">Integer</a> &amp;exponent2) <span class="keyword">const</span> =0;<a name="l00038"></a>00038 };<a name="l00039"></a>00039 <a name="l00040"></a>00040 <span class="keyword">template</span> &lt;<span class="keyword">class</span> T&gt;<a name="l00041"></a><a class="code" href="class_d_l___fixed_base_precomputation_impl.html">00041</a> <span class="keyword">class </span><a class="code" href="class_d_l___fixed_base_precomputation_impl.html">DL_FixedBasePrecomputationImpl</a> : <span class="keyword">public</span> <a class="code" href="class_d_l___fixed_base_precomputation.html">DL_FixedBasePrecomputation</a>&lt;T&gt;<a name="l00042"></a>00042 {<a name="l00043"></a>00043 <span class="keyword">public</span>:<a name="l00044"></a><a class="code" href="class_d_l___fixed_base_precomputation_impl.html#71b1da041ab718df3f7e3ee95d84727d">00044</a>         <span class="keyword">typedef</span> T <a class="code" href="class_d_l___fixed_base_precomputation_impl.html#71b1da041ab718df3f7e3ee95d84727d">Element</a>;<a name="l00045"></a>00045 <a name="l00046"></a>00046         <span class="comment">// DL_FixedBasePrecomputation</span><a name="l00047"></a><a class="code" href="class_d_l___fixed_base_precomputation_impl.html#6c273749a72768e78fb0953cf62b7e65">00047</a>         <span class="keywordtype">bool</span> <a class="code" href="class_d_l___fixed_base_precomputation_impl.html#6c273749a72768e78fb0953cf62b7e65">IsInitialized</a>()<span class="keyword"> const</span><a name="l00048"></a>00048 <span class="keyword">                </span>{<span class="keywordflow">return</span> !m_bases.empty();}<a name="l00049"></a>00049         <span class="keywordtype">void</span> <a class="code" href="class_d_l___fixed_base_precomputation_impl.html#84f4151f6ffb1b05b8f0efccd120d169">SetBase</a>(<span class="keyword">const</span> <a class="code" href="class_d_l___group_precomputation.html">DL_GroupPrecomputation&lt;Element&gt;</a> &amp;group, <span class="keyword">const</span> <a class="code" href="class_d_l___fixed_base_precomputation_impl.html#71b1da041ab718df3f7e3ee95d84727d">Element</a> &amp;base);<a name="l00050"></a><a class="code" href="class_d_l___fixed_base_precomputation_impl.html#d1c683d28b19854e6c61cef0c7471f55">00050</a>         <span class="keyword">const</span> <a class="code" href="class_d_l___fixed_base_precomputation_impl.html#71b1da041ab718df3f7e3ee95d84727d">Element</a> &amp; <a class="code" href="class_d_l___fixed_base_precomputation_impl.html#d1c683d28b19854e6c61cef0c7471f55">GetBase</a>(<span class="keyword">const</span> <a class="code" href="class_d_l___group_precomputation.html">DL_GroupPrecomputation&lt;Element&gt;</a> &amp;group)<span class="keyword"> const</span><a name="l00051"></a>00051 <span class="keyword">                </span>{<span class="keywordflow">return</span> group.<a class="code" href="class_d_l___group_precomputation.html#f06195fe5dbbf8da4491a9b7356b1293">NeedConversions</a>() ? m_base : m_bases[0];}<a name="l00052"></a>00052         <span class="keywordtype">void</span> <a class="code" href="class_d_l___fixed_base_precomputation_impl.html#aef0287112a39612d23c00fa6ceb4782">Precompute</a>(<span class="keyword">const</span> <a class="code" href="class_d_l___group_precomputation.html">DL_GroupPrecomputation&lt;Element&gt;</a> &amp;group, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> maxExpBits, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> storage);<a name="l00053"></a>00053         <span class="keywordtype">void</span> <a class="code" href="class_d_l___fixed_base_precomputation_impl.html#15b52a9f5d25dedceb7fb88ddef3eee0">Load</a>(<span class="keyword">const</span> <a class="code" href="class_d_l___group_precomputation.html">DL_GroupPrecomputation&lt;Element&gt;</a> &amp;group, <a class="code" href="class_buffered_transformation.html" title="interface for buffered transformations">BufferedTransformation</a> &amp;storedPrecomputation);<a name="l00054"></a>00054         <span class="keywordtype">void</span> <a class="code" href="class_d_l___fixed_base_precomputation_impl.html#bcfa8d9239aafa6dde7016fa10a8417b">Save</a>(<span class="keyword">const</span> <a class="code" href="class_d_l___group_precomputation.html">DL_GroupPrecomputation&lt;Element&gt;</a> &amp;group, <a class="code" href="class_buffered_transformation.html" title="interface for buffered transformations">BufferedTransformation</a> &amp;storedPrecomputation) <span class="keyword">const</span>;<a name="l00055"></a>00055         <a class="code" href="class_d_l___fixed_base_precomputation_impl.html#71b1da041ab718df3f7e3ee95d84727d">Element</a> <a class="code" href="class_d_l___fixed_base_precomputation_impl.html#31d6b133cebe1402f420990fecd51422">Exponentiate</a>(<span class="keyword">const</span> <a class="code" href="class_d_l___group_precomputation.html">DL_GroupPrecomputation&lt;Element&gt;</a> &amp;group, <span class="keyword">const</span> <a class="code" href="class_integer.html" title="multiple precision integer and basic arithmetics">Integer</a> &amp;exponent) <span class="keyword">const</span>;<a name="l00056"></a>00056         <a class="code" href="class_d_l___fixed_base_precomputation_impl.html#71b1da041ab718df3f7e3ee95d84727d">Element</a> CascadeExponentiate(<span class="keyword">const</span> <a class="code" href="class_d_l___group_precomputation.html">DL_GroupPrecomputation&lt;Element&gt;</a> &amp;group, <span class="keyword">const</span> <a class="code" href="class_integer.html" title="multiple precision integer and basic arithmetics">Integer</a> &amp;exponent, <span class="keyword">const</span> <a class="code" href="class_d_l___fixed_base_precomputation.html">DL_FixedBasePrecomputation&lt;Element&gt;</a> &amp;pc2, <span class="keyword">const</span> <a class="code" href="class_integer.html" title="multiple precision integer and basic arithmetics">Integer</a> &amp;exponent2) <span class="keyword">const</span>;<a name="l00057"></a>00057 <a name="l00058"></a>00058 <span class="keyword">private</span>:<a name="l00059"></a>00059         <span class="keywordtype">void</span> PrepareCascade(<span class="keyword">const</span> <a class="code" href="class_d_l___group_precomputation.html">DL_GroupPrecomputation&lt;Element&gt;</a> &amp;group, std::vector&lt;<a class="code" href="struct_base_and_exponent.html" title="Base and Exponent.">BaseAndExponent&lt;Element&gt;</a> &gt; &amp;eb, <span class="keyword">const</span> <a class="code" href="class_integer.html" title="multiple precision integer and basic arithmetics">Integer</a> &amp;exponent) <span class="keyword">const</span>;<a name="l00060"></a>00060 <a name="l00061"></a>00061         <a class="code" href="class_d_l___fixed_base_precomputation_impl.html#71b1da041ab718df3f7e3ee95d84727d">Element</a> m_base;<a name="l00062"></a>00062         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> m_windowSize;<a name="l00063"></a>00063         <a class="code" href="class_integer.html" title="multiple precision integer and basic arithmetics">Integer</a> m_exponentBase;                 <span class="comment">// what base to represent the exponent in</span><a name="l00064"></a>00064         std::vector&lt;Element&gt; m_bases;   <span class="comment">// precalculated bases</span><a name="l00065"></a>00065 };<a name="l00066"></a>00066 <a name="l00067"></a>00067 NAMESPACE_END<a name="l00068"></a>00068 <a name="l00069"></a>00069 <span class="preprocessor">#ifdef CRYPTOPP_MANUALLY_INSTANTIATE_TEMPLATES</span><a name="l00070"></a>00070 <span class="preprocessor"></span><span class="preprocessor">#include "eprecomp.cpp"</span><a name="l00071"></a>00071 <span class="preprocessor">#endif</span><a name="l00072"></a>00072 <span class="preprocessor"></span><a name="l00073"></a>00073 <span class="preprocessor">#endif</span></pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 1 11:11:21 2007 for Crypto++ by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address></body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -