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

class GFqDom More...

#include <gfq.h>

+ Inheritance diagram for GFqDom< TT >:
+ Collaboration diagram for GFqDom< TT >:

Public Types

typedef GFqDom< TT > Self_t
 
typedef Rep Element
 
typedef ElementElement_ptr
 
typedef const ElementConstElement_ptr
 
typedef UTT Residu_t
 
typedef RepArray
 
typedef const RepconstArray
 
typedef GIV_randIter< GFqDom< TT >, RepRandIter
 
typedef GeneralRingNonZeroRandIter< Self_t, RandIterNonZeroRandIter
 

Public Member Functions

UTT zech2padic (UTT x) const
 
UTT padic2zech (UTT x) const
 
 GFqDom ()
 
 GFqDom (const UTT P, const UTT e=1)
 
template<typename Vector >
 GFqDom (const UTT P, const UTT e, const Vector &modPoly)
 
template<typename Vector >
 GFqDom (const UTT P, const UTT e, const Vector &modPoly, const Vector &genPoly)
 
 GFqDom (const GFqDom< TT > &F)
 
GFqDom< TT > & operator= (const GFqDom< TT > &F)
 
Element minElement () const
 
Element maxElement () const
 
UTT residu () const
 
UTT characteristic () const
 
Integercharacteristic (Integer &p) const
 
uint64_t & characteristic (uint64_t &p) const
 
UTT cardinality () const
 
template<typename T >
T & cardinality (T &p) const
 
UTT size () const
 
UTT exponent () const
 
Repgenerator (Rep &) const
 
UTT generator () const
 
UTT irreducible () const
 
Rep sage_generator () const
 
Rep indeterminate () const
 
Repindeterminate (Rep &) const
 
Repinit (Rep &r) const
 
Repinit (Rep &, const int32_t) const
 
Repinit (Rep &, const uint32_t) const
 
Repinit (Rep &, const int64_t) const
 
Repinit (Rep &, const uint64_t) const
 
Repinit (Rep &, const Integer) const
 
Repinit (Rep &, const float) const
 
Repinit (Rep &, const double) const
 
Repinit (Rep &a, std::istream &s) const
 
Repreduce (Rep &r) const
 
Repreduce (Rep &r, const Rep e) const
 
template<typename val_t , template< class, class > class Vector, template< class > class Alloc>
Repinit (Rep &, const Vector< val_t, Alloc< val_t > > &) const
 
Repassign (Rep &, const Integer) const
 
Repassign (Rep &, const Rep) const
 
void assign (const size_t sz, Array r, constArray a) const
 
std::istream & read (std::istream &s)
 
std::ostream & write (std::ostream &s) const
 
std::ostream & write (std::ostream &s, const std::string &) const
 
std::istream & read (std::istream &s, Rep &a) const
 
std::ostream & write (std::ostream &s, const Rep a) const
 
std::ostream & convert (std::ostream &s, const Rep a) const
 
TT convert (const Rep) const
 
int64_t & convert (int64_t &, const Rep) const
 
uint64_t & convert (uint64_t &, const Rep) const
 
int32_t & convert (int32_t &, const Rep) const
 
float & convert (float &, const Rep) const
 
double & convert (double &, const Rep) const
 
uint32_t & convert (uint32_t &, const Rep) const
 
Integerconvert (Integer &, const Rep) const
 
int operator== (const GFqDom< TT > &a) const
 
int operator!= (const GFqDom< TT > &a) const
 
bool areEqual (const Rep a, const Rep b) const
 
bool areNEqual (const Rep, const Rep) const
 
bool isZero (const Rep a) const
 
bool isnzero (const Rep) const
 
bool isOne (const Rep a) const
 
bool isMOne (const Rep a) const
 
bool isUnit (const Rep a) const
 
size_t length (const Rep) 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, const 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, const 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, const 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, const 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, const Rep a, constArray x, constArray y) const
 
void axpy (const size_t sz, Array r, const Rep a, constArray x, const Rep c) const
 
Repaxpyin (Rep &r, const Rep a, const Rep b) const
 
void axpyin (const size_t sz, Array r, const Rep 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, const Rep a, constArray x, constArray y) const
 
void axmy (const size_t sz, Array r, const Rep a, constArray x, const Rep c) const
 
Repmaxpy (Rep &r, const Rep a, const Rep b, const Rep c) const
 
Repaxmyin (Rep &r, const Rep a, const Rep b) const
 
Repmaxpyin (Rep &r, const Rep a, const Rep b) const
 
void maxpyin (const size_t sz, Array r, const Rep a, constArray x) const
 
void reduceadd (Rep &r, const size_t sz, constArray a) const
 
void reducemul (Rep &r, const size_t sz, constArray a) const
 
Repdotprod (Rep &r, const size_t sz, constArray a, constArray b) const
 
template<class RandIter >
Reprandom (RandIter &g, Rep &r) const
 
template<class RandIter >
Reprandom (RandIter &g, Rep &r, const Residu_t &s) const
 
template<class RandIter >
Repnonzerorandom (RandIter &g, Rep &r) const
 
template<class RandIter >
Repnonzerorandom (RandIter &g, Rep &r, const Residu_t &s) const
 
template<typename randIter >
GFqDom< TT >::Repnonzerorandom (randIter &g, Rep &a, const Residu_t &s) const
 
template<typename randIter >
GFqDom< TT >::Reprandom (randIter &g, Rep &a, const Residu_t &s) const
 
template<typename randIter >
GFqDom< TT >::Reprandom (randIter &g, Rep &r) const
 
template<typename randIter >
GFqDom< TT >::Repnonzerorandom (randIter &g, Rep &r) const
 

Static Public Member Functions

static Residu_t minCardinality ()
 
static void Init ()
 
static void End ()
 

Data Fields

Rep zero
 
Rep one
 
Rep mOne
 

Protected Types

typedef Signed_Trait< TT >::unsigned_type UTT
 
typedef TT Rep
 
typedef std::vector< UTT >::size_type UT
 

Protected Attributes

UTT _characteristic
 
UTT _exponent
 
UTT _irred
 
UTT _q
 
UTT _qm1
 
std::vector< UTT_log2pol
 
std::vector< UTT_pol2log
 
std::vector< TT > _plus1
 
double _dcharacteristic
 

Detailed Description

template<class TT>
class Givaro::GFqDom< TT >

class GFqDom

Member Typedef Documentation

◆ UTT

typedef Signed_Trait<TT>::unsigned_type UTT
protected

◆ Rep

typedef TT Rep
protected

◆ UT

typedef std::vector<UTT>::size_type UT
protected

◆ Self_t

typedef GFqDom<TT> Self_t

◆ Element

typedef Rep Element

◆ Element_ptr

typedef Element* Element_ptr

◆ ConstElement_ptr

typedef const Element* ConstElement_ptr

◆ Residu_t

typedef UTT Residu_t

◆ Array

typedef Rep* Array

◆ constArray

typedef const Rep* constArray

◆ RandIter

typedef GIV_randIter< GFqDom<TT>, Rep> RandIter

◆ NonZeroRandIter

Constructor & Destructor Documentation

◆ GFqDom() [1/5]

GFqDom ( )
inline

◆ GFqDom() [2/5]

GFqDom ( const UTT  P,
const UTT  e = 1 
)
inline

◆ GFqDom() [3/5]

GFqDom ( const UTT  P,
const UTT  e,
const Vector modPoly 
)
inline

◆ GFqDom() [4/5]

GFqDom ( const UTT  P,
const UTT  e,
const Vector modPoly,
const Vector genPoly 
)
inline

◆ GFqDom() [5/5]

GFqDom ( const GFqDom< TT > &  F)
inline

Member Function Documentation

◆ zech2padic()

UTT zech2padic ( UTT  x) const
inline

◆ padic2zech()

UTT padic2zech ( UTT  x) const
inline

◆ operator=()

GFqDom<TT>& operator= ( const GFqDom< TT > &  F)
inline

◆ minElement()

Element minElement ( ) const
inline

◆ maxElement()

Element maxElement ( ) const
inline

◆ residu()

GFqDom< TT >::Residu_t residu
inline

◆ characteristic() [1/3]

GFqDom< TT >::Residu_t characteristic
inline

◆ characteristic() [2/3]

Integer& characteristic ( Integer p) const
inline

◆ characteristic() [3/3]

uint64_t& characteristic ( uint64_t &  p) const
inline

◆ minCardinality()

static Residu_t minCardinality ( )
inlinestatic

◆ cardinality() [1/2]

GFqDom< TT >::Residu_t cardinality
inline

◆ cardinality() [2/2]

T& cardinality ( T &  p) const
inline

◆ size()

GFqDom< TT >::Residu_t size
inline

◆ exponent()

GFqDom< TT >::Residu_t exponent
inline

◆ generator() [1/2]

GFqDom< TT >::Rep & generator ( Rep g) const
inline

◆ generator() [2/2]

GFqDom< TT >::Residu_t generator
inline

◆ irreducible()

GFqDom< TT >::Residu_t irreducible
inline

◆ sage_generator()

GFqDom< TT >::Rep sage_generator
inline

◆ indeterminate() [1/2]

GFqDom< TT >::Rep indeterminate
inline

◆ indeterminate() [2/2]

GFqDom< TT >::Rep & indeterminate ( Rep X) const
inline

◆ init() [1/10]

Rep& init ( Rep r) const
inline

◆ init() [2/10]

GFqDom< TT >::Rep & init ( Rep r,
const int32_t  Residu 
) const
inline

◆ init() [3/10]

GFqDom< TT >::Rep & init ( Rep r,
const uint32_t  Residu 
) const
inline

◆ init() [4/10]

GFqDom< TT >::Rep & init ( Rep r,
const int64_t  Residu 
) const
inline

◆ init() [5/10]

GFqDom< TT >::Rep & init ( Rep r,
const uint64_t  Residu 
) const
inline

◆ init() [6/10]

GFqDom< TT >::Rep & init ( Rep r,
const Integer  Residu 
) const
inline

◆ init() [7/10]

GFqDom< TT >::Rep & init ( Rep r,
const float  Residu 
) const
inline

◆ init() [8/10]

GFqDom< TT >::Rep & init ( Rep r,
const double  Residu 
) const
inline

◆ init() [9/10]

Rep& init ( Rep a,
std::istream &  s 
) const
inline

◆ reduce() [1/2]

GFqDom< TT >::Rep & reduce ( Rep r) const
inline

◆ reduce() [2/2]

GFqDom< TT >::Rep & reduce ( Rep r,
const Rep  e 
) const
inline

◆ init() [10/10]

GFqDom< TT >::Rep & init ( Rep r,
const Vector< val_t, Alloc< val_t > > &  P 
) const
inline

◆ assign() [1/3]

GFqDom< TT >::Rep & assign ( Rep r,
const Integer  a 
) const
inline

◆ assign() [2/3]

GFqDom< TT >::Rep & assign ( Rep r,
const Rep  a 
) const
inline

◆ assign() [3/3]

void assign ( const size_t  sz,
Array  r,
constArray  a 
) const
inline

◆ read() [1/2]

std::istream & read ( std::istream &  s)
inline

◆ write() [1/3]

std::ostream & write ( std::ostream &  s) const
inline

◆ write() [2/3]

std::ostream & write ( std::ostream &  s,
const std::string &  s 
) const
inline

◆ read() [2/2]

std::istream & read ( std::istream &  s,
Rep a 
) const
inline

◆ write() [3/3]

std::ostream & write ( std::ostream &  s,
const Rep  a 
) const
inline

◆ convert() [1/9]

std::ostream& convert ( std::ostream &  s,
const Rep  a 
) const
inline

◆ convert() [2/9]

TT convert ( const Rep  a) const
inline

◆ convert() [3/9]

int64_t & convert ( int64_t &  r,
const Rep  a 
) const
inline

◆ convert() [4/9]

uint64_t & convert ( uint64_t &  r,
const Rep  a 
) const
inline

◆ convert() [5/9]

int32_t & convert ( int32_t &  r,
const Rep  a 
) const
inline

◆ convert() [6/9]

float & convert ( float &  r,
const Rep  a 
) const
inline

◆ convert() [7/9]

double & convert ( double &  r,
const Rep  a 
) const
inline

◆ convert() [8/9]

uint32_t & convert ( uint32_t &  r,
const Rep  a 
) const
inline

◆ convert() [9/9]

Integer & convert ( Integer r,
const Rep  a 
) const
inline

◆ operator==()

int operator== ( const GFqDom< TT > &  a) const
inline

◆ operator!=()

int operator!= ( const GFqDom< TT > &  a) const
inline

◆ areEqual()

bool areEqual ( const Rep  a,
const Rep  b 
) const
inline

◆ areNEqual()

bool areNEqual ( const Rep  a,
const Rep  b 
) const
inline

◆ isZero()

bool isZero ( const Rep  a) const
inline

◆ isnzero()

bool isnzero ( const Rep  a) const
inline

◆ isOne()

bool isOne ( const Rep  a) const
inline

◆ isMOne()

bool isMOne ( const Rep  a) const
inline

◆ isUnit()

bool isUnit ( const Rep  a) const
inline

◆ length()

size_t length ( const  Rep) const
inline

◆ mul() [1/3]

GFqDom< TT >::Rep & mul ( Rep r,
const Rep  a,
const Rep  b 
) const
inline

◆ div() [1/3]

GFqDom< TT >::Rep & div ( Rep r,
const Rep  a,
const Rep  b 
) const
inline

◆ add() [1/3]

GFqDom< TT >::Rep & add ( Rep r,
const Rep  a,
const Rep  b 
) const
inline

◆ sub() [1/3]

GFqDom< TT >::Rep & sub ( Rep r,
const Rep  a,
const Rep  b 
) const
inline

◆ neg() [1/2]

GFqDom< TT >::Rep & neg ( Rep r,
const Rep  a 
) const
inline

◆ inv() [1/2]

GFqDom< TT >::Rep & inv ( Rep r,
const Rep  a 
) const
inline

◆ mulin()

GFqDom< TT >::Rep & mulin ( Rep r,
const Rep  a 
) const
inline

◆ divin()

GFqDom< TT >::Rep & divin ( Rep r,
const Rep  a 
) const
inline

◆ addin()

GFqDom< TT >::Rep & addin ( Rep r,
const Rep  a 
) const
inline

◆ subin()

GFqDom< TT >::Rep & subin ( Rep r,
const Rep  a 
) const
inline

◆ negin()

GFqDom< TT >::Rep & negin ( Rep r) const
inline

◆ invin()

GFqDom< TT >::Rep & invin ( Rep r) const
inline

◆ mul() [2/3]

void mul ( const size_t  sz,
Array  r,
constArray  a,
constArray  b 
) const
inline

◆ mul() [3/3]

void mul ( const size_t  sz,
Array  r,
constArray  a,
const Rep  b 
) const
inline

◆ div() [2/3]

void div ( const size_t  sz,
Array  r,
constArray  a,
constArray  b 
) const
inline

◆ div() [3/3]

void div ( const size_t  sz,
Array  r,
constArray  a,
const Rep  b 
) const
inline

◆ add() [2/3]

void add ( const size_t  sz,
Array  r,
constArray  a,
constArray  b 
) const
inline

◆ add() [3/3]

void add ( const size_t  sz,
Array  r,
constArray  a,
const Rep  b 
) const
inline

◆ sub() [2/3]

void sub ( const size_t  sz,
Array  r,
constArray  a,
constArray  b 
) const
inline

◆ sub() [3/3]

void sub ( const size_t  sz,
Array  r,
constArray  a,
const Rep  b 
) const
inline

◆ neg() [2/2]

void neg ( const size_t  sz,
Array  r,
constArray  a 
) const
inline

◆ inv() [2/2]

void inv ( const size_t  sz,
Array  r,
constArray  a 
) const
inline

◆ axpy() [1/3]

GFqDom< TT >::Rep & axpy ( Rep r,
const Rep  a,
const Rep  b,
const Rep  c 
) const
inline

◆ axpy() [2/3]

void axpy ( const size_t  sz,
Array  r,
const Rep  a,
constArray  x,
constArray  y 
) const
inline

◆ axpy() [3/3]

void axpy ( const size_t  sz,
Array  r,
const Rep  a,
constArray  x,
const Rep  c 
) const
inline

◆ axpyin() [1/2]

GFqDom< TT >::Rep & axpyin ( Rep r,
const Rep  a,
const Rep  b 
) const
inline

◆ axpyin() [2/2]

void axpyin ( const size_t  sz,
Array  r,
const Rep  a,
constArray  x 
) const
inline

◆ axmy() [1/3]

GFqDom< TT >::Rep & axmy ( Rep r,
const Rep  a,
const Rep  b,
const Rep  c 
) const
inline

◆ axmy() [2/3]

void axmy ( const size_t  sz,
Array  r,
const Rep  a,
constArray  x,
constArray  y 
) const
inline

◆ axmy() [3/3]

void axmy ( const size_t  sz,
Array  r,
const Rep  a,
constArray  x,
const Rep  c 
) const
inline

◆ maxpy()

GFqDom< TT >::Rep & maxpy ( Rep r,
const Rep  a,
const Rep  b,
const Rep  c 
) const
inline

◆ axmyin()

GFqDom< TT >::Rep & axmyin ( Rep r,
const Rep  a,
const Rep  b 
) const
inline

◆ maxpyin() [1/2]

GFqDom< TT >::Rep & maxpyin ( Rep r,
const Rep  a,
const Rep  b 
) const
inline

◆ maxpyin() [2/2]

void maxpyin ( const size_t  sz,
Array  r,
const Rep  a,
constArray  x 
) const
inline

◆ reduceadd()

void reduceadd ( Rep r,
const size_t  sz,
constArray  a 
) const

◆ reducemul()

void reducemul ( Rep r,
const size_t  sz,
constArray  a 
) const

◆ dotprod()

GFqDom< TT >::Rep & dotprod ( Rep r,
const size_t  sz,
constArray  a,
constArray  b 
) const
inline

◆ random() [1/4]

Rep& random ( RandIter g,
Rep r 
) const

◆ random() [2/4]

Rep& random ( RandIter g,
Rep r,
const Residu_t s 
) const

◆ nonzerorandom() [1/4]

Rep& nonzerorandom ( RandIter g,
Rep r 
) const

◆ nonzerorandom() [2/4]

Rep& nonzerorandom ( RandIter g,
Rep r,
const Residu_t s 
) const

◆ Init()

void Init
inlinestatic

◆ End()

void End
inlinestatic

◆ nonzerorandom() [3/4]

GFqDom<TT>::Rep& nonzerorandom ( randIter &  g,
Rep a,
const Residu_t s 
) const
inline

◆ random() [3/4]

GFqDom<TT>::Rep& random ( randIter &  g,
Rep a,
const Residu_t s 
) const
inline

◆ random() [4/4]

GFqDom<TT>::Rep& random ( randIter &  g,
Rep r 
) const
inline

◆ nonzerorandom() [4/4]

GFqDom<TT>::Rep& nonzerorandom ( randIter &  g,
Rep r 
) const
inline

Field Documentation

◆ zero

Rep zero

◆ one

Rep one

◆ mOne

Rep mOne

◆ _characteristic

UTT _characteristic
protected

◆ _exponent

UTT _exponent
protected

◆ _irred

UTT _irred
protected

◆ _q

UTT _q
protected

◆ _qm1

UTT _qm1
protected

◆ _log2pol

std::vector<UTT> _log2pol
protected

◆ _pol2log

std::vector<UTT> _pol2log
protected

◆ _plus1

std::vector<TT> _plus1
protected

◆ _dcharacteristic

double _dcharacteristic
protected

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