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

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

#include <givzpz64std.h>

Public Types

enum  { size_rep = sizeof(Residu_t) }
typedef uint64_t Residu_t
typedef int64_t Rep
typedef int64_t Element
typedef RepArray
typedef const RepconstArray

Public Member Functions

 ZpzDom ()
 ZpzDom (Residu_t p, unsigned long=1)
Self_toperator= (const Self_t &D)
int operator== (const Self_t &BC) const
int operator!= (const Self_t &BC) const
Residu_t residu () const
Residu_t size () const
Residu_t characteristic () const
Integercharacteristic (Integer &p) const
Residu_t cardinality () const
Rep access (const Rep a) const
Repinit (Rep &a) const
void init (const size_t, Array a, constArray b) const
Repinit (Rep &a, const long i) const
Repinit (Rep &a, const unsigned long i) const
Repinit (Rep &a, const long long i) const
Repinit (Rep &a, const unsigned long long i) const
Repinit (Rep &a, const int i) const
Repinit (Rep &a, const unsigned int i) const
Repinit (Rep &a, const double i) const
Repinit (Rep &a, const float i) const
Repinit (Rep &a, const Integer &i) const
int areEqual (const Rep, const Rep) const
int areNEqual (const Rep, const Rep) const
int isZero (const Rep a) const
int isnzero (const Rep a) const
int isOne (const Rep a) const
size_t length (const Rep a) const
Repmul (Rep &r, const Rep a, const Rep b) const
Repinv (Rep &r, const Rep a) 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
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
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
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
void reduceadd (Rep &r, const size_t sz, constArray a) const
void reducemul (Rep &r, const size_t sz, constArray a) const
void dotprod (Rep &r, const size_t sz, constArray a, constArray b) const
void 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
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
template<class XXX >
XXX & convert (XXX &s, const Rep a) const
Integerwrite (Integer &, const Rep a) const

Data Fields

const Rep zero
const Rep one

Protected Member Functions

int64_t & gcdext (int64_t &d, int64_t &u, int64_t &v, const int64_t a, const int64_t b) const
int64_t & invext (int64_t &u, const int64_t a, const int64_t b) const

Static Protected Member Functions

static void Init ()
static void End ()

Protected Attributes

Residu_t _p

Detailed Description

template<>
class Givaro::ZpzDom< Std64 >

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 uint64_t Residu_t
typedef int64_t Rep
typedef int64_t Element
typedef Rep* Array
typedef const Rep* constArray

Member Enumeration Documentation

anonymous enum
Enumerator:
size_rep 

Constructor & Destructor Documentation

ZpzDom ( ) [inline]
ZpzDom ( Residu_t  p,
unsigned  long = 1 
) [inline]

Member Function Documentation

Self_t& operator= ( const Self_t D) [inline]
int operator== ( const Self_t BC) const [inline]
int operator!= ( const Self_t BC) const [inline]
ZpzDom< Std64 >::Residu_t residu ( ) const [inline]
Residu_t size ( ) const [inline]
Residu_t characteristic ( ) const [inline]
Integer& characteristic ( Integer p) const [inline]
Residu_t cardinality ( ) const [inline]
Rep access ( const Rep  a) const [inline]
ZpzDom< Std64 >::Rep & init ( Rep a) const [inline]
void init ( const size_t  sz,
Array  a,
constArray  b 
) const [inline]
ZpzDom< Std64 >::Rep & init ( Rep a,
const long  i 
) const [inline]
ZpzDom< Std64 >::Rep & init ( Rep a,
const unsigned long  i 
) const [inline]
ZpzDom< Std64 >::Rep & init ( Rep a,
const long long  i 
) const [inline]
ZpzDom< Std64 >::Rep & init ( Rep a,
const unsigned long long  i 
) const [inline]
ZpzDom< Std64 >::Rep & init ( Rep a,
const int  i 
) const [inline]
ZpzDom< Std64 >::Rep & init ( Rep a,
const unsigned int  i 
) const [inline]
ZpzDom< Std64 >::Rep & init ( Rep a,
const double  i 
) const [inline]
ZpzDom< Std64 >::Rep & init ( Rep a,
const float  i 
) const [inline]
ZpzDom< Std64 >::Rep & init ( Rep a,
const Integer i 
) const [inline]
int areEqual ( const Rep  a,
const Rep  b 
) const [inline]
int areNEqual ( const Rep  a,
const Rep  b 
) const [inline]
int isZero ( const Rep  a) const [inline]
int isnzero ( const Rep  a) const [inline]
int isOne ( const Rep  a) const [inline]
size_t length ( const Rep  a) const [inline]
ZpzDom< Std64 >::Rep & mul ( Rep r,
const Rep  a,
const Rep  b 
) const [inline]
ZpzDom< Std64 >::Rep & inv ( Rep r,
const Rep  a 
) const [inline]
ZpzDom< Std64 >::Rep & div ( Rep r,
const Rep  a,
const Rep  b 
) const [inline]
ZpzDom< Std64 >::Rep & add ( Rep r,
const Rep  a,
const Rep  b 
) const [inline]
ZpzDom< Std64 >::Rep & sub ( Rep r,
const Rep  a,
const Rep  b 
) const [inline]
ZpzDom< Std64 >::Rep & neg ( Rep r,
const Rep  a 
) const [inline]
ZpzDom< Std64 >::Rep & mulin ( Rep r,
const Rep  a 
) const [inline]
ZpzDom< Std64 >::Rep & divin ( Rep r,
const Rep  a 
) const [inline]
ZpzDom< Std64 >::Rep & addin ( Rep r,
const Rep  a 
) const [inline]
ZpzDom< Std64 >::Rep & subin ( Rep r,
const Rep  a 
) const [inline]
ZpzDom< Std64 >::Rep & negin ( Rep r) const [inline]
ZpzDom< Std64 >::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< Std64 >::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< Std64 >::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< Std64 >::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< Std64 >::Rep & axmyin ( Rep r,
const Rep  a,
const Rep  b 
) const [inline]
ZpzDom< Std64 >::Rep & maxpy ( Rep r,
const Rep  a,
const Rep  b,
const Rep  c 
) const [inline]
ZpzDom< Std64 >::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]
void assign ( const size_t  sz,
Array  r,
constArray  a 
) const [inline]
ZpzDom< Std64 >::Rep & assign ( Rep r,
const Rep  a 
) const [inline]
ZpzDom< Std64 >::Rep & random ( RandIter &  g,
Rep r 
) const [inline]
ZpzDom< Std64 >::Rep & random ( RandIter &  g,
Rep r,
long  s 
) const [inline]
ZpzDom< Std64 >::Rep & random ( RandIter &  g,
Rep r,
const Rep b 
) const [inline]
ZpzDom< Std64 >::Rep & nonzerorandom ( RandIter &  g,
Rep r 
) const [inline]
ZpzDom< Std64 >::Rep & nonzerorandom ( RandIter &  g,
Rep r,
long  s 
) const [inline]
ZpzDom< Std64 >::Rep & nonzerorandom ( RandIter &  g,
Rep r,
const Rep b 
) const [inline]
void reduceadd ( Rep r,
const size_t  sz,
constArray  a 
) const
void reducemul ( Rep r,
const size_t  sz,
constArray  a 
) const
void dotprod ( Rep r,
const size_t  sz,
constArray  a,
constArray  b 
) const [inline]
void dotprod ( Rep r,
const int  bound,
const size_t  sz,
constArray  a,
constArray  b 
) const [inline]

Todo:
o_O

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]
XXX & convert ( XXX &  s,
const Rep  a 
) const [inline]
Integer & write ( Integer r,
const Rep  a 
) const [inline]
int64_t & gcdext ( int64_t &  d,
int64_t &  u,
int64_t &  v,
const int64_t  a,
const int64_t  b 
) const [protected]
int64_t & invext ( int64_t &  u,
const int64_t  a,
const int64_t  b 
) const [protected]
void Init ( ) [static, protected]
void End ( ) [static, protected]

Field Documentation

const Rep zero
const Rep one
Residu_t _p [protected]

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