#include <modular_integer.hpp>
Definition at line 157 of file modular_integer.hpp.
static void add_mod | ( | C & | dest, | |
const C & | s1, | |||
const C & | s2, | |||
const M & | m, | |||
C & | carry | |||
) | [inline, static, inherited] |
Definition at line 78 of file modular_integer.hpp.
References modulus_add_integer_naive< V >::add_mod().
00078 { 00079 dest = s1; 00080 add_mod (dest, s2, m, carry); }
static void add_mod | ( | C & | dest, | |
const C & | s1, | |||
const C & | s2, | |||
const M & | m | |||
) | [inline, static, inherited] |
Definition at line 73 of file modular_integer.hpp.
References modulus_add_integer_naive< V >::add_mod().
00073 { 00074 dest = s1; 00075 add_mod (dest, s2, m); }
static void add_mod | ( | C & | dest, | |
const C & | s, | |||
const M & | m, | |||
C & | carry | |||
) | [inline, static, inherited] |
Definition at line 67 of file modular_integer.hpp.
References VERIFY.
static void add_mod | ( | C & | dest, | |
const C & | s, | |||
const M & | m | |||
) | [inline, static, inherited] |
Definition at line 62 of file modular_integer.hpp.
00062 { 00063 dest += s; 00064 if (dest >= m.p) dest -= m.p; }
static void decode_mod | ( | C & | dest, | |
const C & | s, | |||
const M & | m | |||
) | [inline, static, inherited] |
Definition at line 152 of file modular_integer.hpp.
00152 { 00153 (void) m; 00154 dest = s; }
static void div_mod | ( | C & | dest, | |
const C & | s1, | |||
const C & | s2, | |||
const M & | m | |||
) | [inline, static, inherited] |
Definition at line 179 of file modulus_naive.hpp.
References mmx::C.
00179 { 00180 C t; 00181 V::inv_mod (t, s2, m); 00182 V::mul_mod (dest, s1, t, m); }
static void div_mod | ( | C & | dest, | |
const C & | s, | |||
const M & | m | |||
) | [inline, static, inherited] |
Definition at line 173 of file modulus_naive.hpp.
References mmx::C.
static void encode_mod | ( | C & | dest, | |
const C & | s, | |||
const M & | m | |||
) | [inline, static, inherited] |
Definition at line 141 of file modular_integer.hpp.
static void inv_mod | ( | C & | dest, | |
const C & | s, | |||
const M & | m | |||
) | [inline, static, inherited] |
Definition at line 133 of file modular_integer.hpp.
References modulus_inv_integer_naive< V >::inv_mod().
static void inv_mod | ( | C & | a, | |
const M & | m | |||
) | [inline, static, inherited] |
Definition at line 121 of file modular_integer.hpp.
References ERROR.
static bool is_invertible_mod | ( | const C & | s, | |
const M & | m | |||
) | [inline, static, inherited] |
Definition at line 117 of file modular_integer.hpp.
References mmx::abs(), and mmx::gcd().
00117 { 00118 return abs (gcd (s, m.p)) == 1; }
static void mul_mod | ( | C & | dest, | |
const C & | s1, | |||
const C & | s2, | |||
const M & | m, | |||
C & | carry | |||
) | [inline, static, inherited] |
Definition at line 144 of file modulus_naive.hpp.
static void mul_mod | ( | C & | dest, | |
const C & | s1, | |||
const C & | s2, | |||
const M & | m | |||
) | [inline, static, inherited] |
Definition at line 140 of file modulus_naive.hpp.
static void mul_mod | ( | C & | dest, | |
const C & | s, | |||
const M & | m, | |||
C & | carry | |||
) | [inline, static, inherited] |
Definition at line 134 of file modulus_naive.hpp.
00134 { 00135 dest *= s; 00136 dest += carry; 00137 V::reduce_mod (dest, m, carry); }
static void mul_mod | ( | C & | dest, | |
const C & | s, | |||
const M & | m | |||
) | [inline, static, inherited] |
Definition at line 129 of file modulus_naive.hpp.
00129 { 00130 dest *= s; 00131 V::reduce_mod (dest, m); }
static void neg_mod | ( | C & | dest, | |
const C & | s, | |||
const M & | m, | |||
C & | carry | |||
) | [inline, static, inherited] |
Definition at line 56 of file modular_integer.hpp.
References VERIFY.
static void neg_mod | ( | C & | dest, | |
const C & | s, | |||
const M & | m | |||
) | [inline, static, inherited] |
Definition at line 51 of file modular_integer.hpp.
static void neg_mod | ( | C & | dest, | |
const M & | m, | |||
C & | carry | |||
) | [inline, static, inherited] |
Definition at line 46 of file modular_integer.hpp.
References VERIFY.
00046 { 00047 VERIFY (carry == 0 || carry == 1, "unexpected large carry"); 00048 if (dest != 0 || carry != 0) { dest= m.p - dest - carry; carry= 1; } }
static void neg_mod | ( | C & | dest, | |
const M & | m | |||
) | [inline, static, inherited] |
Definition at line 42 of file modular_integer.hpp.
Definition at line 32 of file modular_integer.hpp.
static void reduce_mod | ( | C & | dest, | |
const C & | s, | |||
const M & | m, | |||
C & | carry | |||
) | [inline, static, inherited] |
Definition at line 51 of file modulus_naive.hpp.
static void reduce_mod | ( | C & | dest, | |
const C & | s, | |||
const M & | m | |||
) | [inline, static, inherited] |
Definition at line 47 of file modulus_naive.hpp.
static void reduce_mod | ( | C & | dest, | |
const M & | m, | |||
C & | carry | |||
) | [inline, static, inherited] |
Definition at line 38 of file modulus_naive.hpp.
static void reduce_mod | ( | C & | dest, | |
const M & | m | |||
) | [inline, static, inherited] |
Definition at line 34 of file modulus_naive.hpp.
00034 { 00035 if (m.p != 0) dest = rem (dest, m.p); }
static void sub_mod | ( | C & | dest, | |
const C & | s1, | |||
const C & | s2, | |||
const M & | m, | |||
C & | carry | |||
) | [inline, static, inherited] |
Definition at line 108 of file modular_integer.hpp.
References modulus_add_integer_naive< V >::sub_mod().
00108 { 00109 dest = s1; 00110 sub_mod (dest, s2, m, carry); }
static void sub_mod | ( | C & | dest, | |
const C & | s1, | |||
const C & | s2, | |||
const M & | m | |||
) | [inline, static, inherited] |
Definition at line 103 of file modular_integer.hpp.
References modulus_add_integer_naive< V >::sub_mod().
00103 { 00104 dest = s1; 00105 sub_mod (dest, s2, m); }
static void sub_mod | ( | C & | dest, | |
const C & | s, | |||
const M & | m, | |||
C & | carry | |||
) | [inline, static, inherited] |
Definition at line 99 of file modular_integer.hpp.
References modulus_add_integer_naive< V >::sub_mod_core().
00099 { 00100 sub_mod_core (dest, s, m.p, carry); }
static void sub_mod | ( | C & | dest, | |
const C & | s, | |||
const M & | m | |||
) | [inline, static, inherited] |
Definition at line 95 of file modular_integer.hpp.
References modulus_add_integer_naive< V >::sub_mod_core().
00095 { 00096 sub_mod_core (dest, s, m.p); }
static void sub_mod_core | ( | C & | dest, | |
const C & | s, | |||
const C & | p, | |||
C & | carry | |||
) | [inline, static, inherited] |
static void sub_mod_core | ( | C & | dest, | |
const C & | s, | |||
const C & | p | |||
) | [inline, static, inherited] |
Definition at line 83 of file modular_integer.hpp.
00083 { 00084 if (dest < s) dest += p; 00085 dest -= s; }