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

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

#include <givzpz32std.h>

Public Types

enum  { size_rep = sizeof(Residu_t) }
typedef uint32_t Residu_t
typedef int32_t Rep
typedef int32_t Element
typedef RepArray
typedef const RepconstArray
typedef GIV_randIter< ZpzDom
< Std32 >, Rep
randIter

Public Member Functions

 ZpzDom ()
 ZpzDom (Residu_t p)
 ZpzDom (const ZpzDom< Std32 > &F)
int operator== (const ZpzDom< Std32 > &BC) const
int operator!= (const ZpzDom< Std32 > &BC) const
ZpzDom< Std32 > & operator= (const ZpzDom< Std32 > &F)
Residu_t residu () const
Residu_t size () const
Rep access (const Rep a) const
Residu_t characteristic () const
Integercharacteristic (Integer &p) const
Residu_t cardinality () const
Repinit (Rep &a) const
void init (const size_t, Array a, constArray b) const
Repinit (Rep &r, const long a) const
Repinit (Rep &r, const unsigned long a) const
Repinit (Rep &a, const int i) 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
float & convert (float &r, const Rep a) const
double & convert (double &r, const Rep a) const
long int & convert (long int &r, const Rep a) const
unsigned long int & convert (unsigned long int &r, const Rep a) const
int32_tconvert (int32_t &r, const Rep a) const
uint32_tconvert (uint32_t &r, const Rep a) const
Integerconvert (Integer &i, 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 Rep &a, const Rep &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
void axpy (const size_t sz, Array r, constArray a, constArray x, constArray c) const
Repaxpyin (Rep &r, const Rep a, const Rep b) const
void axpyin (const size_t sz, Array r, constArray a, constArray x) 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
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
void assign (const size_t sz, Array r, constArray a) const
Repassign (Rep &r, const Rep 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
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
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 Rep zero
const Rep one

Protected Member Functions

int32_tgcdext (int32_t &d, int32_t &u, int32_t &v, const int32_t a, const int32_t b) const
int32_tinvext (int32_t &u, const int32_t a, const int32_t b) const

Static Protected Member Functions

static void Init ()
static void End ()

Protected Attributes

Residu_t _p
double _dp

Detailed Description

template<>
class Givaro::ZpzDom< Std32 >

This class implement the standard arithmetic with Modulo Elements.

Examples:

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


Member Typedef Documentation

typedef uint32_t Residu_t
typedef int32_t Rep
typedef int32_t Element
typedef Rep* Array
typedef const Rep* constArray
typedef GIV_randIter< ZpzDom<Std32> , Rep > randIter

Member Enumeration Documentation

anonymous enum
Enumerator:
size_rep 

Constructor & Destructor Documentation

ZpzDom ( ) [inline]
ZpzDom ( Residu_t  p) [inline]
ZpzDom ( const ZpzDom< Std32 > &  F) [inline]

Member Function Documentation

int operator== ( const ZpzDom< Std32 > &  BC) const [inline]
int operator!= ( const ZpzDom< Std32 > &  BC) const [inline]
ZpzDom<Std32>& operator= ( const ZpzDom< Std32 > &  F) [inline]
ZpzDom< Std32 >::Residu_t residu ( ) const [inline]
Residu_t size ( ) const [inline]
Rep access ( const Rep  a) const [inline]
Residu_t characteristic ( ) const [inline]
Integer& characteristic ( Integer p) const [inline]
Residu_t cardinality ( ) const [inline]
ZpzDom< Std32 >::Rep & init ( Rep a) const [inline]
void init ( const size_t  sz,
Array  a,
constArray  b 
) const [inline]
ZpzDom< Std32 >::Rep & init ( Rep r,
const long  a 
) const [inline]
ZpzDom< Std32 >::Rep & init ( Rep r,
const unsigned long  a 
) const [inline]
ZpzDom< Std32 >::Rep & init ( Rep a,
const int  i 
) const [inline]
ZpzDom< Std32 >::Rep & init ( Rep a,
const unsigned int  i 
) const [inline]
ZpzDom< Std32 >::Rep & init ( Rep a,
const Integer i 
) const [inline]
ZpzDom< Std32 >::Rep & init ( Rep a,
const double  i 
) const [inline]
ZpzDom< Std32 >::Rep & init ( Rep a,
const float  i 
) const [inline]
float& convert ( float &  r,
const Rep  a 
) const [inline]
double& convert ( double &  r,
const Rep  a 
) const [inline]
long int& convert ( long int &  r,
const Rep  a 
) const [inline]
unsigned long int& convert ( unsigned long int &  r,
const Rep  a 
) const [inline]
int32_t& convert ( int32_t r,
const Rep  a 
) const [inline]
uint32_t& convert ( uint32_t r,
const Rep  a 
) const [inline]
Integer& convert ( Integer i,
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 Rep a,
const Rep b 
) const [inline]
ZpzDom< Std32 >::Rep & mul ( Rep r,
const Rep  a,
const Rep  b 
) const [inline]
ZpzDom< Std32 >::Rep & div ( Rep r,
const Rep  a,
const Rep  b 
) const [inline]
ZpzDom< Std32 >::Rep & add ( Rep r,
const Rep  a,
const Rep  b 
) const [inline]
ZpzDom< Std32 >::Rep & sub ( Rep r,
const Rep  a,
const Rep  b 
) const [inline]
ZpzDom< Std32 >::Rep & neg ( Rep r,
const Rep  a 
) const [inline]
ZpzDom< Std32 >::Rep & inv ( Rep r,
const Rep  a 
) const [inline]
ZpzDom< Std32 >::Rep & mulin ( Rep r,
const Rep  a 
) const [inline]
ZpzDom< Std32 >::Rep & divin ( Rep r,
const Rep  a 
) const [inline]
ZpzDom< Std32 >::Rep & addin ( Rep r,
const Rep  a 
) const [inline]
ZpzDom< Std32 >::Rep & subin ( Rep r,
const Rep  a 
) const [inline]
ZpzDom< Std32 >::Rep & negin ( Rep r) const [inline]
ZpzDom< Std32 >::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< Std32 >::Rep & axpy ( Rep r,
const Rep  a,
const Rep  b,
const Rep  c 
) const [inline]
void axpy ( const size_t  sz,
Array  r,
constArray  a,
constArray  x,
constArray  c 
) const [inline]
ZpzDom< Std32 >::Rep & axpyin ( Rep r,
const Rep  a,
const Rep  b 
) const [inline]
void axpyin ( const size_t  sz,
Array  r,
constArray  a,
constArray  x 
) const [inline]
ZpzDom< Std32 >::Rep & maxpy ( Rep r,
const Rep  a,
const Rep  b,
const Rep  c 
) const [inline]
ZpzDom< Std32 >::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]
ZpzDom< Std32 >::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< Std32 >::Rep & axmyin ( Rep r,
const Rep  a,
const Rep  b 
) const [inline]
void assign ( const size_t  sz,
Array  r,
constArray  a 
) const [inline]
ZpzDom< Std32 >::Rep & assign ( Rep r,
const Rep  a 
) const [inline]
ZpzDom< Std32 >::Rep & random ( RandIter &  g,
Rep r 
) const [inline]
ZpzDom< Std32 >::Rep & random ( RandIter &  g,
Rep r,
long  s 
) const [inline]
ZpzDom< Std32 >::Rep & random ( RandIter &  g,
Rep r,
const Rep b 
) const [inline]
ZpzDom< Std32 >::Rep & nonzerorandom ( RandIter &  g,
Rep r 
) const [inline]
ZpzDom< Std32 >::Rep & nonzerorandom ( RandIter &  g,
Rep r,
long  s 
) const [inline]
ZpzDom< Std32 >::Rep & nonzerorandom ( RandIter &  g,
Rep r,
const Rep b 
) 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< Std32 >::Rep & dotprod ( Rep r,
const size_t  sz,
constArray  a,
constArray  b 
) const [inline]
ZpzDom< Std32 >::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]
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]
int32_t & gcdext ( int32_t d,
int32_t u,
int32_t v,
const int32_t  a,
const int32_t  b 
) const [protected]
int32_t & invext ( int32_t u,
const int32_t  a,
const int32_t  b 
) const [protected]
void Init ( ) [static, protected]
void End ( ) [static, protected]

Field Documentation

const Rep zero
const Rep one
Residu_t _p [protected]
double _dp [protected]

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