Public Types |
enum | { size_rep = sizeof(Residu_t)
} |
typedef uint16_t | Residu_t |
typedef int16_t | Power_t |
typedef Power_t | Rep |
typedef int16_t | Element |
typedef Residu_t * | Array |
typedef const Residu_t * | constArray |
typedef GIV_randIter< ZpzDom
< Std16 >, Rep > | randIter |
Public Member Functions |
| ZpzDom (Residu_t p=2) |
| ZpzDom (const ZpzDom< Log16 > &F) |
| ~ZpzDom () |
int | operator== (const ZpzDom< Log16 > &BC) const |
int | operator!= (const ZpzDom< Log16 > &BC) const |
ZpzDom< Log16 > & | operator= (const ZpzDom< Log16 > &F) |
Residu_t | residu () const |
Residu_t | characteristic () const |
Integer & | characteristic (Integer &p) const |
Residu_t | size () const |
int16_t & | convert (int16_t &x, const Rep a) const |
uint16_t & | convert (uint16_t &x, const Rep a) const |
unsigned long & | convert (unsigned long &x, const Rep a) const |
double & | convert (double &x, const Rep a) const |
long & | convert (long &x, const Rep a) const |
Integer & | convert (Integer &i, const Rep a) const |
Rep & | init (Rep &r) const |
Rep & | init (Rep &r, const long a) const |
Rep & | init (Rep &a, const int i) const |
Rep & | init (Rep &r, const unsigned long a) const |
Rep & | init (Rep &a, const unsigned int i) const |
Rep & | init (Rep &a, const Integer &i) const |
Rep & | init (Rep &a, const double i) const |
Rep & | init (Rep &a, const float i) const |
Rep & | init (Rep &a, const int16_t i) const |
Rep & | init (Rep &r, const uint16_t a) const |
Rep & | assign (Rep &r, const Rep a) const |
void | assign (const size_t sz, Array r, constArray a) const |
int | iszero (const Rep a) const |
int | isone (const Rep a) const |
int | isZero (const Rep a) const |
int | isOne (const Rep a) const |
size_t | length (const Rep a) const |
int | areEqual (const Element &a, const Element &b) const |
Rep & | mul (Rep &r, const Rep a, const Rep b) const |
Rep & | div (Rep &r, const Rep a, const Rep b) const |
Rep & | add (Rep &r, const Rep a, const Rep b) const |
Rep & | sub (Rep &r, const Rep a, const Rep b) const |
Rep & | neg (Rep &r, const Rep a) const |
Rep & | inv (Rep &r, const Rep a) const |
Rep & | mulin (Rep &r, const Rep a) const |
Rep & | divin (Rep &r, const Rep a) const |
Rep & | addin (Rep &r, const Rep a) const |
Rep & | subin (Rep &r, const Rep a) const |
Rep & | negin (Rep &r) const |
Rep & | invin (Rep &r) const |
void | mul (const size_t sz, Array r, constArray a, constArray b) const |
void | mul (const size_t sz, Array r, constArray a, Rep b) const |
void | div (const size_t sz, Array r, constArray a, constArray b) const |
void | div (const size_t sz, Array r, constArray a, Rep b) const |
void | add (const size_t sz, Array r, constArray a, constArray b) const |
void | add (const size_t sz, Array r, constArray a, Rep b) const |
void | sub (const size_t sz, Array r, constArray a, constArray b) const |
void | sub (const size_t sz, Array r, constArray a, Rep b) const |
void | neg (const size_t sz, Array r, constArray a) const |
void | inv (const size_t sz, Array r, constArray a) const |
Rep & | axpy (Rep &r, const Rep a, const Rep b, const Rep c) const |
Rep & | axpyin (Rep &r, const Rep a, const Rep b) const |
void | axpy (const size_t sz, Array r, constArray a, constArray x, constArray c) const |
void | axpyin (const size_t sz, Array r, constArray a, constArray x) const |
Rep & | axmy (Rep &r, const Rep a, const Rep b, const Rep c) const |
void | axmy (const size_t sz, Array r, constArray a, constArray x, constArray c) const |
Rep & | axmyin (Rep &r, const Rep a, const Rep b) const |
Rep & | maxpy (Rep &r, const Rep a, const Rep b, const Rep c) const |
Rep & | maxpyin (Rep &r, const Rep a, const Rep b) const |
void | maxpyin (const size_t sz, Array r, constArray a, constArray x) const |
Rep & | reduceadd (Rep &r, const size_t sz, constArray a) const |
Rep & | reducemul (Rep &r, const size_t sz, constArray a) const |
Rep & | dotprod (Rep &r, const size_t sz, constArray a, constArray b) const |
Rep & | dotprod (Rep &r, const int bound, const size_t sz, constArray a, constArray b) const |
void | i2d (const size_t sz, double *r, constArray a) const |
void | d2i (const size_t sz, Array r, const double *a) const |
template<class RandIter > |
Rep & | random (RandIter &, Rep &r) const |
template<class RandIter > |
Rep & | random (RandIter &, Rep &r, long s) const |
template<class RandIter > |
Rep & | random (RandIter &, Rep &r, const Rep &b) const |
template<class RandIter > |
Rep & | nonzerorandom (RandIter &, Rep &r) const |
template<class RandIter > |
Rep & | nonzerorandom (RandIter &, Rep &r, long s) const |
template<class RandIter > |
Rep & | nonzerorandom (RandIter &, Rep &r, const Rep &b) const |
std::istream & | read (std::istream &s) |
std::ostream & | write (std::ostream &s) const |
std::istream & | read (std::istream &s, Rep &a) const |
std::ostream & | write (std::ostream &s, const Rep a) const |
Data Fields |
const Residu_t | zero |
const Residu_t | one |
Static Protected Member Functions |
static int32_t | gcdext (int32_t &u, int32_t &v, const int32_t a, const int32_t b) |
static void | Init () |
static void | End () |
Protected Attributes |
Residu_t | _p |
Residu_t | _pmone |
Power_t * | _tab_value2rep |
Residu_t * | _tab_rep2value |
Power_t * | _tab_mul |
Power_t * | _tab_div |
Power_t * | _tab_neg |
Power_t * | _tab_addone |
Power_t * | _tab_subone |
Power_t * | _tab_mone |
Power_t * | _tab_pone |
int * | numRefs |
template<>
class Givaro::ZpzDom< Log16 >
This class implement the standard arithmetic with Modulo Elements.
- The representation of an integer a in Zpz is the value a % p
- p max is 16381
- Examples:
-
examples/FiniteField/all_field.C, examples/FiniteField/ff_arith.C, and examples/Polynomial/PolynomialCRT.C.