📄 polynomi_8h-source.html
字号:
00366 InterpolationFailed() : <a class="code" href="class_exception.html">Exception</a>(<a class="code" href="class_exception.html#_zlib_decompressor_1_1_unsupported_preset_dictionaryw7_zlib_decompressor_1_1_unsupported_preset_dictionaryw6">OTHER_ERROR</a>, <span class="stringliteral">"RingOfPolynomialsOver<T>: interpolation failed"</span>) {}00367 };00368 00369 <a class="code" href="class_polynomial_over.html">Element</a> Interpolate(<span class="keyword">const</span> CoefficientType x[], <span class="keyword">const</span> CoefficientType y[], <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> n) <span class="keyword">const</span>;00370 00371 <span class="comment">// a faster version of Interpolate(x, y, n).EvaluateAt(position)</span>00372 CoefficientType InterpolateAt(<span class="keyword">const</span> CoefficientType &position, <span class="keyword">const</span> CoefficientType x[], <span class="keyword">const</span> CoefficientType y[], <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> n) <span class="keyword">const</span>;00373 <span class="comment">/*</span>00374 <span class="comment"> void PrepareBulkInterpolation(CoefficientType *w, const CoefficientType x[], unsigned int n) const;</span>00375 <span class="comment"> void PrepareBulkInterpolationAt(CoefficientType *v, const CoefficientType &position, const CoefficientType x[], const CoefficientType w[], unsigned int n) const;</span>00376 <span class="comment"> CoefficientType BulkInterpolateAt(const CoefficientType y[], const CoefficientType v[], unsigned int n) const;</span>00377 <span class="comment">*/</span>00378 <span class="keyword">protected</span>:00379 <span class="keywordtype">void</span> CalculateAlpha(std::vector<CoefficientType> &alpha, <span class="keyword">const</span> CoefficientType x[], <span class="keyword">const</span> CoefficientType y[], <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> n) <span class="keyword">const</span>;00380 00381 CoefficientRing m_ring;00382 };00383 00384 <span class="keyword">template</span> <<span class="keyword">class</span> Ring, <span class="keyword">class</span> Element>00385 <span class="keywordtype">void</span> PrepareBulkPolynomialInterpolation(<span class="keyword">const</span> Ring &ring, Element *w, <span class="keyword">const</span> Element x[], <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> n);00386 <span class="keyword">template</span> <<span class="keyword">class</span> Ring, <span class="keyword">class</span> Element>00387 <span class="keywordtype">void</span> PrepareBulkPolynomialInterpolationAt(<span class="keyword">const</span> Ring &ring, Element *v, <span class="keyword">const</span> Element &position, <span class="keyword">const</span> Element x[], <span class="keyword">const</span> Element w[], <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> n);00388 <span class="keyword">template</span> <<span class="keyword">class</span> Ring, <span class="keyword">class</span> Element>00389 Element BulkPolynomialInterpolateAt(<span class="keyword">const</span> Ring &ring, <span class="keyword">const</span> Element y[], <span class="keyword">const</span> Element v[], <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> n);00390 <span class="comment"></span>00391 <span class="comment">//!</span>00392 <span class="comment"></span><span class="keyword">template</span> <<span class="keyword">class</span> T, <span class="keywordtype">int</span> instance>00393 <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator==(<span class="keyword">const</span> CryptoPP::PolynomialOverFixedRing<T, instance> &a, <span class="keyword">const</span> CryptoPP::PolynomialOverFixedRing<T, instance> &b)00394 {<span class="keywordflow">return</span> a.Equals(b, fixedRing);}<span class="comment"></span>00395 <span class="comment">//!</span>00396 <span class="comment"></span><span class="keyword">template</span> <<span class="keyword">class</span> T, <span class="keywordtype">int</span> instance>00397 <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator!=(<span class="keyword">const</span> CryptoPP::PolynomialOverFixedRing<T, instance> &a, <span class="keyword">const</span> CryptoPP::PolynomialOverFixedRing<T, instance> &b)00398 {<span class="keywordflow">return</span> !(a==b);}00399 <span class="comment"></span>00400 <span class="comment">//!</span>00401 <span class="comment"></span><span class="keyword">template</span> <<span class="keyword">class</span> T, <span class="keywordtype">int</span> instance>00402 <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator> (<span class="keyword">const</span> CryptoPP::PolynomialOverFixedRing<T, instance> &a, <span class="keyword">const</span> CryptoPP::PolynomialOverFixedRing<T, instance> &b)00403 {<span class="keywordflow">return</span> a.Degree() > b.Degree();}<span class="comment"></span>00404 <span class="comment">//!</span>00405 <span class="comment"></span><span class="keyword">template</span> <<span class="keyword">class</span> T, <span class="keywordtype">int</span> instance>00406 <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="gf2n_8h.html#a4">operator>=</a>(<span class="keyword">const</span> CryptoPP::PolynomialOverFixedRing<T, instance> &a, <span class="keyword">const</span> CryptoPP::PolynomialOverFixedRing<T, instance> &b)00407 {<span class="keywordflow">return</span> a.Degree() >= b.Degree();}<span class="comment"></span>00408 <span class="comment">//!</span>00409 <span class="comment"></span><span class="keyword">template</span> <<span class="keyword">class</span> T, <span class="keywordtype">int</span> instance>00410 <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator< (const CryptoPP::PolynomialOverFixedRing<T, instance> &a, <span class="keyword">const</span> CryptoPP::PolynomialOverFixedRing<T, instance> &b)00411 {<span class="keywordflow">return</span> a.Degree() < b.Degree();}<span class="comment"></span>00412 <span class="comment">//!</span>00413 <span class="comment"></span><span class="keyword">template</span> <<span class="keyword">class</span> T, <span class="keywordtype">int</span> instance>00414 <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator<=(const CryptoPP::PolynomialOverFixedRing<T, instance> &a, <span class="keyword">const</span> CryptoPP::PolynomialOverFixedRing<T, instance> &b)00415 {<span class="keywordflow">return</span> a.Degree() <= b.Degree();}00416 <span class="comment"></span>00417 <span class="comment">//!</span>00418 <span class="comment"></span><span class="keyword">template</span> <<span class="keyword">class</span> T, <span class="keywordtype">int</span> instance>00419 <span class="keyword">inline</span> CryptoPP::PolynomialOverFixedRing<T, instance> operator+(<span class="keyword">const</span> CryptoPP::PolynomialOverFixedRing<T, instance> &a, <span class="keyword">const</span> CryptoPP::PolynomialOverFixedRing<T, instance> &b)00420 {<span class="keywordflow">return</span> CryptoPP::PolynomialOverFixedRing<T, instance>(a.Plus(b, fixedRing));}<span class="comment"></span>00421 <span class="comment">//!</span>00422 <span class="comment"></span><span class="keyword">template</span> <<span class="keyword">class</span> T, <span class="keywordtype">int</span> instance>00423 <span class="keyword">inline</span> CryptoPP::PolynomialOverFixedRing<T, instance> operator-(<span class="keyword">const</span> CryptoPP::PolynomialOverFixedRing<T, instance> &a, <span class="keyword">const</span> CryptoPP::PolynomialOverFixedRing<T, instance> &b)00424 {<span class="keywordflow">return</span> CryptoPP::PolynomialOverFixedRing<T, instance>(a.Minus(b, fixedRing));}<span class="comment"></span>00425 <span class="comment">//!</span>00426 <span class="comment"></span><span class="keyword">template</span> <<span class="keyword">class</span> T, <span class="keywordtype">int</span> instance>00427 <span class="keyword">inline</span> CryptoPP::PolynomialOverFixedRing<T, instance> operator*(<span class="keyword">const</span> CryptoPP::PolynomialOverFixedRing<T, instance> &a, <span class="keyword">const</span> CryptoPP::PolynomialOverFixedRing<T, instance> &b)00428 {<span class="keywordflow">return</span> CryptoPP::PolynomialOverFixedRing<T, instance>(a.Times(b, fixedRing));}<span class="comment"></span>00429 <span class="comment">//!</span>00430 <span class="comment"></span><span class="keyword">template</span> <<span class="keyword">class</span> T, <span class="keywordtype">int</span> instance>00431 <span class="keyword">inline</span> CryptoPP::PolynomialOverFixedRing<T, instance> operator/(<span class="keyword">const</span> CryptoPP::PolynomialOverFixedRing<T, instance> &a, <span class="keyword">const</span> CryptoPP::PolynomialOverFixedRing<T, instance> &b)00432 {<span class="keywordflow">return</span> CryptoPP::PolynomialOverFixedRing<T, instance>(a.DividedBy(b, fixedRing));}<span class="comment"></span>00433 <span class="comment">//!</span>00434 <span class="comment"></span><span class="keyword">template</span> <<span class="keyword">class</span> T, <span class="keywordtype">int</span> instance>00435 <span class="keyword">inline</span> CryptoPP::PolynomialOverFixedRing<T, instance> operator%(<span class="keyword">const</span> CryptoPP::PolynomialOverFixedRing<T, instance> &a, <span class="keyword">const</span> CryptoPP::PolynomialOverFixedRing<T, instance> &b)00436 {<span class="keywordflow">return</span> CryptoPP::PolynomialOverFixedRing<T, instance>(a.Modulo(b, fixedRing));}00437 00438 NAMESPACE_END00439 00440 NAMESPACE_BEGIN(std)00441 <span class="keyword">template</span><<span class="keyword">class</span> T> <span class="keyword">inline</span> <span class="keywordtype">void</span> swap(CryptoPP::PolynomialOver<T> &a, CryptoPP::PolynomialOver<T> &b)00442 {00443 a.swap(b);00444 }00445 <span class="keyword">template</span><<span class="keyword">class</span> T, <span class="keywordtype">int</span> i> <span class="keyword">inline</span> <span class="keywordtype">void</span> swap(CryptoPP::PolynomialOverFixedRing<T,i> &a, CryptoPP::PolynomialOverFixedRing<T,i> &b)00446 {00447 a.swap(b);00448 }00449 NAMESPACE_END00450 00451 <span class="preprocessor">#endif</span></pre></div><hr size="1"><address style="align: right;"><small>Generated on Tue Jul 8 23:34:22 2003 for Crypto++ by<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border=0 > </a>1.3.2 </small></address></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -