modular< M, modular_local > Class Template Reference

#include <modular.hpp>

List of all members.

Public Types

Public Member Functions

Static Public Member Functions

Public Attributes


Detailed Description

template<typename M>
class mmx::modular< M, modular_local >

Definition at line 364 of file modular.hpp.


Member Typedef Documentation

typedef M::base C

Definition at line 369 of file modular.hpp.

typedef M modulus

Definition at line 367 of file modular.hpp.

typedef V::template modulus_storage<M> S

Definition at line 370 of file modular.hpp.

typedef modular_local V

Definition at line 368 of file modular.hpp.


Constructor & Destructor Documentation

modular (  )  [inline]

Definition at line 385 of file modular.hpp.

References modular< M, V >::get_modulus(), and modular< M, V >::rep.

00385                     {
00386     mod= get_modulus ();
00387     encode_mod (rep, C (), mod); }

modular ( const modular< M, modular_local > &  s  )  [inline]

Definition at line 389 of file modular.hpp.

00389 : rep (s.rep), mod (s.mod) {}

modular ( const C s,
bool  reduced 
) [inline]

Definition at line 391 of file modular.hpp.

References modular< M, V >::get_modulus(), and modular< M, V >::rep.

00391                                             {
00392     mod= get_modulus ();
00393     if (reduced) rep= s;
00394     else encode_mod (rep, s, mod); }

modular ( const C s,
const M &  p,
bool  reduced = false 
) [inline]

Definition at line 396 of file modular.hpp.

References modular< M, V >::rep, and modular< M, V >::set_modulus().

00396                                                               {
00397     mod= p;
00398     set_modulus (p);
00399     if (reduced) rep= s; 
00400     else encode_mod (rep, s, mod); }

modular ( const O &  a  )  [inline]

Definition at line 403 of file modular.hpp.

References modular< M, V >::get_modulus(), and modular< M, V >::rep.

00403                               {
00404     mod= get_modulus ();
00405     encode_mod (rep, as<C> (a), mod); }


Member Function Documentation

M get_local_modulus (  )  const [inline]

Definition at line 377 of file modular.hpp.

00377 { return mod; }

static M get_modulus (  )  [inline, static]

Definition at line 374 of file modular.hpp.

References modular< M, V >::get_modulus().

00374 { return S::get_modulus (); }

bool operator!= ( const modular< M, modular_local > &  a  )  const [inline]

Definition at line 418 of file modular.hpp.

References Modular, and modular< M, V >::rep.

00418                                                    {
00419     if (mod   == a.mod) return rep != a.rep;
00420     if (mod   == C(0))  return Modular (* (*this), a.mod) != a;
00421     if (a.mod == C(0))  return Modular (* a, mod) != *this;
00422     return true; }

C operator* (  )  const [inline]

Definition at line 380 of file modular.hpp.

References modular< M, V >::rep.

00380                                {
00381     C dest;
00382     decode_mod (dest, rep, mod);
00383     return dest; }

modular<M,modular_local>& operator= ( const modular< M, modular_local > &  a  )  [inline]

Definition at line 407 of file modular.hpp.

References modular< M, V >::rep.

00407                                                 {
00408     rep = a.rep;
00409     mod = a.mod;
00410     return *this; }

bool operator== ( const modular< M, modular_local > &  a  )  const [inline]

Definition at line 412 of file modular.hpp.

References Modular, and modular< M, V >::rep.

00412                                                    {
00413     if (mod   == a.mod) return rep == a.rep;
00414     if (mod   == C(0))  return Modular (* (*this), a.mod) == a;
00415     if (a.mod == C(0))  return Modular (* a, mod) == *this;
00416     return false; }

void set_local_modulus ( const M &  p  )  [inline]

Definition at line 378 of file modular.hpp.

References modular< M, V >::set_modulus().

00378 { mod= p; S::set_modulus (p); }

static void set_modulus ( const M &  p  )  [inline, static]

Definition at line 375 of file modular.hpp.

References modular< M, V >::set_modulus().

00375 { S::set_modulus (p); }


Member Data Documentation

M mod

Definition at line 373 of file modular.hpp.

C rep

Definition at line 372 of file modular.hpp.


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

Generated on 6 Dec 2012 for numerix by  doxygen 1.6.1