Givaro
Public Types | Public Member Functions | Data Fields | Static Protected Member Functions | Protected Attributes
ZpzDom< Log16 > Class Template Reference

This class implement the standard arithmetic with Modulo Elements. More...

#include <givzpz16table1.h>

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_tArray
typedef const Residu_tconstArray
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
Integercharacteristic (Integer &p) const
Residu_t size () const
int16_tconvert (int16_t &x, const Rep a) const
uint16_tconvert (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
Integerconvert (Integer &i, const Rep a) const
Repinit (Rep &r) const
Repinit (Rep &r, const long a) const
Repinit (Rep &a, const int i) const
Repinit (Rep &r, const unsigned long a) const
Repinit (Rep &a, const unsigned int i) const
Repinit (Rep &a, const Integer &i) const
Repinit (Rep &a, const double i) const
Repinit (Rep &a, const float i) const
Repinit (Rep &a, const int16_t i) const
Repinit (Rep &r, const uint16_t a) const
Repassign (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
Repmul (Rep &r, const Rep a, const Rep b) const
Repdiv (Rep &r, const Rep a, const Rep b) const
Repadd (Rep &r, const Rep a, const Rep b) const
Repsub (Rep &r, const Rep a, const Rep b) const
Repneg (Rep &r, const Rep a) const
Repinv (Rep &r, const Rep a) const
Repmulin (Rep &r, const Rep a) const
Repdivin (Rep &r, const Rep a) const
Repaddin (Rep &r, const Rep a) const
Repsubin (Rep &r, const Rep a) const
Repnegin (Rep &r) const
Repinvin (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
Repaxpy (Rep &r, const Rep a, const Rep b, const Rep c) const
Repaxpyin (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
Repaxmy (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
Repaxmyin (Rep &r, const Rep a, const Rep b) const
Repmaxpy (Rep &r, const Rep a, const Rep b, const Rep c) const
Repmaxpyin (Rep &r, const Rep a, const Rep b) const
void maxpyin (const size_t sz, Array r, constArray a, constArray x) const
Repreduceadd (Rep &r, const size_t sz, constArray a) const
Repreducemul (Rep &r, const size_t sz, constArray a) const
Repdotprod (Rep &r, const size_t sz, constArray a, constArray b) const
Repdotprod (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 >
Reprandom (RandIter &, Rep &r) const
template<class RandIter >
Reprandom (RandIter &, Rep &r, long s) const
template<class RandIter >
Reprandom (RandIter &, Rep &r, const Rep &b) const
template<class RandIter >
Repnonzerorandom (RandIter &, Rep &r) const
template<class RandIter >
Repnonzerorandom (RandIter &, Rep &r, long s) const
template<class RandIter >
Repnonzerorandom (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

Detailed Description

template<>
class Givaro::ZpzDom< Log16 >

This class implement the standard arithmetic with Modulo Elements.

Examples:

examples/FiniteField/all_field.C, examples/FiniteField/ff_arith.C, and examples/Polynomial/PolynomialCRT.C.


Member Typedef Documentation

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

Member Enumeration Documentation

anonymous enum
Enumerator:
size_rep 

Constructor & Destructor Documentation

ZpzDom ( Residu_t  p = 2)
ZpzDom ( const ZpzDom< Log16 > &  F)
~ZpzDom ( )

Member Function Documentation

int operator== ( const ZpzDom< Log16 > &  BC) const [inline]
int operator!= ( const ZpzDom< Log16 > &  BC) const [inline]
ZpzDom< Log16 > & operator= ( const ZpzDom< Log16 > &  F)
ZpzDom< Log16 >::Residu_t residu ( ) const [inline]
Residu_t characteristic ( ) const [inline]
Integer& characteristic ( Integer p) const [inline]
Residu_t size ( ) const [inline]
int16_t& convert ( int16_t x,
const Rep  a 
) const [inline]
uint16_t& convert ( uint16_t x,
const Rep  a 
) const [inline]
unsigned long& convert ( unsigned long &  x,
const Rep  a 
) const [inline]
double& convert ( double &  x,
const Rep  a 
) const [inline]
long& convert ( long &  x,
const Rep  a 
) const [inline]
Integer& convert ( Integer i,
const Rep  a 
) const [inline]
ZpzDom< Log16 >::Rep & init ( Rep r) const [inline]
ZpzDom< Log16 >::Rep & init ( Rep r,
const long  a 
) const [inline]
ZpzDom< Log16 >::Rep & init ( Rep a,
const int  i 
) const [inline]
ZpzDom< Log16 >::Rep & init ( Rep r,
const unsigned long  a 
) const [inline]
ZpzDom< Log16 >::Rep & init ( Rep a,
const unsigned int  i 
) const [inline]
ZpzDom< Log16 >::Rep & init ( Rep a,
const Integer i 
) const [inline]
ZpzDom< Log16 >::Rep & init ( Rep a,
const double  i 
) const [inline]
ZpzDom< Log16 >::Rep & init ( Rep a,
const float  i 
) const [inline]
ZpzDom< Log16 >::Rep & init ( Rep a,
const int16_t  i 
) const [inline]
ZpzDom< Log16 >::Rep & init ( Rep r,
const uint16_t  a 
) const [inline]
ZpzDom< Log16 >::Rep & assign ( Rep r,
const Rep  a 
) const [inline]
void assign ( const size_t  sz,
Array  r,
constArray  a 
) const [inline]
int iszero ( const Rep  a) const [inline]
int isone ( const Rep  a) const [inline]
int isZero ( const Rep  a) const [inline]
int isOne ( const Rep  a) const [inline]
size_t length ( const Rep  a) const [inline]
int areEqual ( const Element a,
const Element b 
) const [inline]
ZpzDom< Log16 >::Rep & mul ( Rep r,
const Rep  a,
const Rep  b 
) const [inline]
ZpzDom< Log16 >::Rep & div ( Rep r,
const Rep  a,
const Rep  b 
) const [inline]
ZpzDom< Log16 >::Rep & add ( Rep r,
const Rep  a,
const Rep  b 
) const [inline]
ZpzDom< Log16 >::Rep & sub ( Rep r,
const Rep  a,
const Rep  b 
) const [inline]
ZpzDom< Log16 >::Rep & neg ( Rep r,
const Rep  a 
) const [inline]
ZpzDom< Log16 >::Rep & inv ( Rep r,
const Rep  a 
) const [inline]
ZpzDom< Log16 >::Rep & mulin ( Rep r,
const Rep  a 
) const [inline]
ZpzDom< Log16 >::Rep & divin ( Rep r,
const Rep  a 
) const [inline]
ZpzDom< Log16 >::Rep & addin ( Rep r,
const Rep  a 
) const [inline]
ZpzDom< Log16 >::Rep & subin ( Rep r,
const Rep  a 
) const [inline]
ZpzDom< Log16 >::Rep & negin ( Rep r) const [inline]
ZpzDom< Log16 >::Rep & invin ( Rep r) const [inline]
void mul ( const size_t  sz,
Array  r,
constArray  a,
constArray  b 
) const [inline]
void mul ( const size_t  sz,
Array  r,
constArray  a,
Rep  b 
) const [inline]
void div ( const size_t  sz,
Array  r,
constArray  a,
constArray  b 
) const [inline]
void div ( const size_t  sz,
Array  r,
constArray  a,
Rep  b 
) const [inline]
void add ( const size_t  sz,
Array  r,
constArray  a,
constArray  b 
) const [inline]
void add ( const size_t  sz,
Array  r,
constArray  a,
Rep  b 
) const [inline]
void sub ( const size_t  sz,
Array  r,
constArray  a,
constArray  b 
) const [inline]
void sub ( const size_t  sz,
Array  r,
constArray  a,
Rep  b 
) const [inline]
void neg ( const size_t  sz,
Array  r,
constArray  a 
) const [inline]
void inv ( const size_t  sz,
Array  r,
constArray  a 
) const
ZpzDom< Log16 >::Rep & axpy ( Rep r,
const Rep  a,
const Rep  b,
const Rep  c 
) const [inline]
ZpzDom< Log16 >::Rep & axpyin ( Rep r,
const Rep  a,
const Rep  b 
) const [inline]
void axpy ( const size_t  sz,
Array  r,
constArray  a,
constArray  x,
constArray  c 
) const [inline]
void axpyin ( const size_t  sz,
Array  r,
constArray  a,
constArray  x 
) const [inline]
ZpzDom< Log16 >::Rep & axmy ( Rep r,
const Rep  a,
const Rep  b,
const Rep  c 
) const [inline]
void axmy ( const size_t  sz,
Array  r,
constArray  a,
constArray  x,
constArray  c 
) const [inline]
ZpzDom< Log16 >::Rep & axmyin ( Rep r,
const Rep  a,
const Rep  b 
) const [inline]
ZpzDom< Log16 >::Rep & maxpy ( Rep r,
const Rep  a,
const Rep  b,
const Rep  c 
) const [inline]
ZpzDom< Log16 >::Rep & maxpyin ( Rep r,
const Rep  a,
const Rep  b 
) const [inline]
void maxpyin ( const size_t  sz,
Array  r,
constArray  a,
constArray  x 
) const [inline]
Rep& reduceadd ( Rep r,
const size_t  sz,
constArray  a 
) const
Rep& reducemul ( Rep r,
const size_t  sz,
constArray  a 
) const
ZpzDom< Log16 >::Rep & dotprod ( Rep r,
const size_t  sz,
constArray  a,
constArray  b 
) const [inline]
ZpzDom< Log16 >::Rep & dotprod ( Rep r,
const int  bound,
const size_t  sz,
constArray  a,
constArray  b 
) const [inline]
void i2d ( const size_t  sz,
double *  r,
constArray  a 
) const [inline]
void d2i ( const size_t  sz,
Array  r,
const double *  a 
) const [inline]
ZpzDom< Log16 >::Rep & random ( RandIter &  g,
Rep r 
) const [inline]
ZpzDom< Log16 >::Rep & random ( RandIter &  g,
Rep r,
long  s 
) const [inline]
ZpzDom< Log16 >::Rep & random ( RandIter &  g,
Rep r,
const Rep b 
) const [inline]
ZpzDom< Log16 >::Rep & nonzerorandom ( RandIter &  g,
Rep r 
) const [inline]
ZpzDom< Log16 >::Rep & nonzerorandom ( RandIter &  g,
Rep r,
long  s 
) const [inline]
ZpzDom< Log16 >::Rep & nonzerorandom ( RandIter &  g,
Rep r,
const Rep b 
) const [inline]
std::istream & read ( std::istream &  s) [inline]
std::ostream & write ( std::ostream &  s) const [inline]
std::istream & read ( std::istream &  s,
Rep a 
) const [inline]
std::ostream & write ( std::ostream &  s,
const Rep  a 
) const [inline]
static int32_t gcdext ( int32_t u,
int32_t v,
const int32_t  a,
const int32_t  b 
) [static, protected]
void Init ( ) [static, protected]
void End ( ) [static, protected]

Field Documentation

const Residu_t zero
const Residu_t one
Residu_t _p [protected]
Residu_t _pmone [protected]
Power_t* _tab_value2rep [protected]
Residu_t* _tab_rep2value [protected]
Power_t* _tab_mul [protected]
Power_t* _tab_div [protected]
Power_t* _tab_neg [protected]
Power_t* _tab_addone [protected]
Power_t* _tab_subone [protected]
Power_t* _tab_mone [protected]
Power_t* _tab_pone [protected]
int* numRefs [protected]

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