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

📄 polynomi_8h-source.html

📁 著名的密码库Crypto++的文档 C++语言的杰作。程序员必备。
💻 HTML
📖 第 1 页 / 共 5 页
字号:
<a name="l00042"></a><a class="code" href="class_polynomial_over.html#f87a6be38193e61c7aecb8c96510583e">00042</a>                 <span class="keyword">typedef</span> T <a class="code" href="class_polynomial_over.html#f87a6be38193e61c7aecb8c96510583e">Ring</a>;<a name="l00043"></a><a class="code" href="class_polynomial_over.html#2eb91afba2d1f0c11f78f5825ecd5408">00043</a>                 <span class="keyword">typedef</span> <span class="keyword">typename</span> T::Element <a class="code" href="class_polynomial_over.html#2eb91afba2d1f0c11f78f5825ecd5408">CoefficientType</a>;<span class="comment"></span><a name="l00044"></a>00044 <span class="comment">        //@}</span><a name="l00045"></a>00045 <span class="comment"></span><span class="comment"></span><a name="l00046"></a>00046 <span class="comment">        //! \name CREATORS</span><a name="l00047"></a>00047 <span class="comment"></span><span class="comment">        //@{</span><a name="l00048"></a>00048 <span class="comment"></span><span class="comment">                //! creates the zero polynomial</span><a name="l00049"></a><a class="code" href="class_polynomial_over.html#9a479be6ed6b88ac4f74a1c0ca72849c">00049</a> <span class="comment"></span>                <a class="code" href="class_polynomial_over.html#9a479be6ed6b88ac4f74a1c0ca72849c" title="creates the zero polynomial">PolynomialOver</a>() {}<a name="l00050"></a>00050 <span class="comment"></span><a name="l00051"></a>00051 <span class="comment">                //!</span><a name="l00052"></a><a class="code" href="class_polynomial_over.html#4ae3f58dd93e98544ebd0165fd0beaa2">00052</a> <span class="comment"></span>                <a class="code" href="class_polynomial_over.html#9a479be6ed6b88ac4f74a1c0ca72849c" title="creates the zero polynomial">PolynomialOver</a>(<span class="keyword">const</span> Ring &amp;ring, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> count)<a name="l00053"></a>00053                         : m_coefficients((size_t)count, ring.Identity()) {}<a name="l00054"></a>00054 <span class="comment"></span><a name="l00055"></a>00055 <span class="comment">                //! copy constructor</span><a name="l00056"></a><a class="code" href="class_polynomial_over.html#393c8f0c973d431d7e04d3d3682b333d">00056</a> <span class="comment"></span>                <a class="code" href="class_polynomial_over.html#9a479be6ed6b88ac4f74a1c0ca72849c" title="creates the zero polynomial">PolynomialOver</a>(<span class="keyword">const</span> <a class="code" href="class_polynomial_over.html" title="represents single-variable polynomials over arbitrary rings">PolynomialOver&lt;Ring&gt;</a> &amp;t)<a name="l00057"></a>00057                         : m_coefficients(t.m_coefficients.size()) {*<span class="keyword">this</span> = t;}<a name="l00058"></a>00058 <span class="comment"></span><a name="l00059"></a>00059 <span class="comment">                //! construct constant polynomial</span><a name="l00060"></a><a class="code" href="class_polynomial_over.html#f3f01459e456891391d9650e4b82b8b0">00060</a> <span class="comment"></span>                <a class="code" href="class_polynomial_over.html#9a479be6ed6b88ac4f74a1c0ca72849c" title="creates the zero polynomial">PolynomialOver</a>(<span class="keyword">const</span> CoefficientType &amp;element)<a name="l00061"></a>00061                         : m_coefficients(1, element) {}<a name="l00062"></a>00062 <span class="comment"></span><a name="l00063"></a>00063 <span class="comment">                //! construct polynomial with specified coefficients, starting from coefficient of x^0</span><a name="l00064"></a><a class="code" href="class_polynomial_over.html#10f50a46ce4b8b5b4131f5a0057f0bc8">00064</a> <span class="comment"></span>                <span class="keyword">template</span> &lt;<span class="keyword">typename</span> Iterator&gt; <a class="code" href="class_polynomial_over.html#9a479be6ed6b88ac4f74a1c0ca72849c" title="creates the zero polynomial">PolynomialOver</a>(Iterator begin, Iterator end)<a name="l00065"></a>00065                         : m_coefficients(begin, end) {}<a name="l00066"></a>00066 <span class="comment"></span><a name="l00067"></a>00067 <span class="comment">                //! convert from string</span><a name="l00068"></a><a class="code" href="class_polynomial_over.html#ef039d41b917e8297e14c050568a37a2">00068</a> <span class="comment"></span>                <a class="code" href="class_polynomial_over.html#9a479be6ed6b88ac4f74a1c0ca72849c" title="creates the zero polynomial">PolynomialOver</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *str, <span class="keyword">const</span> Ring &amp;ring) {FromStr(str, ring);}<a name="l00069"></a>00069 <span class="comment"></span><a name="l00070"></a>00070 <span class="comment">                //! convert from big-endian byte array</span><a name="l00071"></a>00071 <span class="comment"></span>                <a class="code" href="class_polynomial_over.html#9a479be6ed6b88ac4f74a1c0ca72849c" title="creates the zero polynomial">PolynomialOver</a>(<span class="keyword">const</span> byte *encodedPolynomialOver, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> byteCount);<a name="l00072"></a>00072 <span class="comment"></span><a name="l00073"></a>00073 <span class="comment">                //! convert from Basic Encoding Rules encoded byte array</span><a name="l00074"></a>00074 <span class="comment"></span>                <span class="keyword">explicit</span> <a class="code" href="class_polynomial_over.html#9a479be6ed6b88ac4f74a1c0ca72849c" title="creates the zero polynomial">PolynomialOver</a>(<span class="keyword">const</span> byte *BEREncodedPolynomialOver);<a name="l00075"></a>00075 <span class="comment"></span><a name="l00076"></a>00076 <span class="comment">                //! convert from BER encoded byte array stored in a BufferedTransformation object</span><a name="l00077"></a>00077 <span class="comment"></span>                <span class="keyword">explicit</span> <a class="code" href="class_polynomial_over.html#9a479be6ed6b88ac4f74a1c0ca72849c" title="creates the zero polynomial">PolynomialOver</a>(<a class="code" href="class_buffered_transformation.html" title="interface for buffered transformations">BufferedTransformation</a> &amp;bt);<a name="l00078"></a>00078 <span class="comment"></span><a name="l00079"></a>00079 <span class="comment">                //! create a random PolynomialOver&lt;T&gt;</span><a name="l00080"></a><a class="code" href="class_polynomial_over.html#33a595d1ea6d44eef7ac3636c195a869">00080</a> <span class="comment"></span>                <a class="code" href="class_polynomial_over.html#9a479be6ed6b88ac4f74a1c0ca72849c" title="creates the zero polynomial">PolynomialOver</a>(<a class="code" href="class_random_number_generator.html" title="interface for random number generators">RandomNumberGenerator</a> &amp;rng, <span class="keyword">const</span> <a class="code" href="class_polynomial_over_1_1_randomization_parameter.html" title="specify the distribution for randomization functions">RandomizationParameter</a> &amp;parameter, <span class="keyword">const</span> Ring &amp;ring)<a name="l00081"></a>00081                         {<a class="code" href="class_polynomial_over.html#3a895100d291eba0fba02f50b57d1d44">Randomize</a>(rng, parameter, ring);}<span class="comment"></span><a name="l00082"></a>00082 <span class="comment">        //@}</span><a name="l00083"></a>00083 <span class="comment"></span><span class="comment"></span><a name="l00084"></a>00084 <span class="comment">        //! \name ACCESSORS</span><a name="l00085"></a>00085 <span class="comment"></span><span class="comment">        //@{</span><a name="l00086"></a>00086 <span class="comment"></span><span class="comment">                //! the zero polynomial will return a degree of -1</span><a name="l00087"></a><a class="code" href="class_polynomial_over.html#604beee6d397108b3334eaeb564b641a">00087</a> <span class="comment"></span>                <span class="keywordtype">int</span> <a class="code" href="class_polynomial_over.html#604beee6d397108b3334eaeb564b641a" title="the zero polynomial will return a degree of -1">Degree</a>(<span class="keyword">const</span> Ring &amp;ring)<span class="keyword"> const </span>{<span class="keywordflow">return</span> int(<a class="code" href="class_polynomial_over.html#65c6004a42608f31008ff066f2eba3e2">CoefficientCount</a>(ring))-1;}<span class="comment"></span><a name="l00088"></a>00088 <span class="comment">                //!</span><a name="l00089"></a>00089 <span class="comment"></span>                <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="class_polynomial_over.html#65c6004a42608f31008ff066f2eba3e2">CoefficientCount</a>(<span class="keyword">const</span> Ring &amp;ring) <span class="keyword">const</span>;<span class="comment"></span><a name="l00090"></a>00090 <span class="comment">                //! return coefficient for x^i</span><a name="l00091"></a>00091 <span class="comment"></span>                CoefficientType <a class="code" href="class_polynomial_over.html#e35221cf35e25478e07de2e5fcebf0f9" title="return coefficient for x^i">GetCoefficient</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i, <span class="keyword">const</span> Ring &amp;ring) <span class="keyword">const</span>;<span class="comment"></span><a name="l00092"></a>00092 <span class="comment">        //@}</span><a name="l00093"></a>00093 <span class="comment"></span><span class="comment"></span><a name="l00094"></a>00094 <span class="comment">        //! \name MANIPULATORS</span><a name="l00095"></a>00095 <span class="comment"></span><span class="comment">        //@{</span><a name="l00096"></a>00096 <span class="comment"></span><span class="comment">                //!</span><a name="l00097"></a>00097 <span class="comment"></span>                <a class="code" href="class_polynomial_over.html" title="represents single-variable polynomials over arbitrary rings">PolynomialOver&lt;Ring&gt;</a>&amp;  operator=(<span class="keyword">const</span> <a class="code" href="class_polynomial_over.html" title="represents single-variable polynomials over arbitrary rings">PolynomialOver&lt;Ring&gt;</a>&amp; t);<a name="l00098"></a>00098 <span class="comment"></span><a name="l00099"></a>00099 <span class="comment">                //!</span><a name="l00100"></a>00100 <span class="comment"></span>                <span class="keywordtype">void</span> <a class="code" href="class_polynomial_over.html#3a895100d291eba0fba02f50b57d1d44">Randomize</a>(<a class="code" href="class_random_number_generator.html" title="interface for random number generators">RandomNumberGenerator</a> &amp;rng, <span class="keyword">const</span> RandomizationParameter &amp;parameter, <span class="keyword">const</span> Ring &amp;ring);<a name="l00101"></a>00101 <span class="comment"></span><a name="l00102"></a>00102 <span class="comment">                //! set the coefficient for x^i to value</span><a name="l00103"></a>00103 <span class="comment"></span>                <span class="keywordtype">void</span> <a class="code" href="class_polynomial_over.html#ac4ab97afda49a151fc9dbd8eaf9aa16" title="set the coefficient for x^i to value">SetCoefficient</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i, <span class="keyword">const</span> CoefficientType &amp;value, <span class="keyword">const</span> Ring &amp;ring);

⌨️ 快捷键说明

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