modulus_polynomial_mul_power_of_the_variable< X, W > Struct Template Reference

#include <modular_polynomial.hpp>

List of all members.

Static Public Member Functions


Detailed Description

template<typename X, typename W = modulus_mul_naive<X>>
struct mmx::modulus_polynomial_mul_power_of_the_variable< X, W >

Definition at line 225 of file modular_polynomial.hpp.


Member Function Documentation

static void mul_mod ( polynomial< C, V > &  dest,
const polynomial< C, V > &  s1,
const polynomial< C, V > &  s2,
const M &  m,
polynomial< C, V > &  carry 
) [inline, static]

Definition at line 259 of file modular_polynomial.hpp.

References modulus_polynomial_mul_power_of_the_variable< X, W >::mul_mod().

00260                                           {
00261     dest = s1;
00262     mul_mod (dest, s2, m, carry); }

static void mul_mod ( polynomial< C, V > &  dest,
const polynomial< C, V > &  s1,
const polynomial< C, V > &  s2,
const M &  m 
) [inline, static]

Definition at line 253 of file modular_polynomial.hpp.

References modulus_polynomial_mul_power_of_the_variable< X, W >::mul_mod().

00254                        {
00255     dest = s1;
00256     mul_mod (dest, s2, m); }

static void mul_mod ( polynomial< C, V > &  dest,
const polynomial< C, V > &  s,
const M &  m,
polynomial< C, V > &  carry 
) [inline, static]

Definition at line 238 of file modular_polynomial.hpp.

References mmx::degree(), mmx::is_exact_zero(), Polynomial, and mmx::range().

00239                               {
00240     if (is_exact_zero (*m)) {
00241       dest = dest * s + carry;
00242       carry = 0;
00243     }
00244     else {
00245       int d= degree (*m);
00246       Polynomial a= dest * s + carry;
00247       carry= range (a, d, 2*d-1);
00248       dest= range (a, 0, d);
00249     }
00250   }

static void mul_mod ( polynomial< C, V > &  dest,
const polynomial< C, V > &  s,
const M &  m 
) [inline, static]

Definition at line 228 of file modular_polynomial.hpp.

References mmx::degree(), mmx::is_exact_zero(), Polynomial, and mmx::range().

Referenced by modulus_polynomial_mul_power_of_the_variable< X, W >::mul_mod().

00228                                                               {
00229     if (is_exact_zero (*m)) dest *= s;
00230     else {
00231       int d= degree (*m);
00232       Polynomial a= dest * s;
00233       dest = range (a, 0, d);
00234     }
00235   }


The documentation for this struct was generated from the following file:

Generated on 6 Dec 2012 for algebramix by  doxygen 1.6.1