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_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 Element zero
const Element one
const Element mOne

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

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 
)
staticprotected
void Init ( )
staticprotected
void End ( )
staticprotected

Field Documentation

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
const Element zero
const Element one
const Element mOne

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