Givaro 4.2.1
GFqDom< Size_store > Class Template Reference

class GFqDom More...

#include <gfq.h>

Public Types

typedef GFqDom< TTSelf_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< Any >::Repnonzerorandom (randIter &g, Rep &a, const Residu_t &s) const
 
template<typename randIter>
GFqDom< Any >::Reprandom (randIter &g, Rep &a, const Residu_t &s) const
 
template<typename randIter>
GFqDom< Any >::Reprandom (randIter &g, Rep &r) const
 
template<typename randIter>
GFqDom< Any >::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< Size_store >::unsigned_type UTT
 
typedef Signed_Trait< Size_store >::signed_type TT
 
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

Member Typedef Documentation

◆ UTT

template<class Size_store>
typedef Signed_Trait<Size_store>::unsigned_type UTT
protected

◆ TT

template<class Size_store>
typedef Signed_Trait<Size_store>::signed_type TT
protected

◆ Rep

template<class Size_store>
typedef TT Rep
protected

◆ UT

template<class Size_store>
typedef std::vector<UTT>::size_type UT
protected

◆ Self_t

template<class Size_store>
typedef GFqDom<TT> Self_t

◆ Element

template<class Size_store>
typedef Rep Element

◆ Element_ptr

template<class Size_store>
typedef Element* Element_ptr

◆ ConstElement_ptr

template<class Size_store>
typedef const Element* ConstElement_ptr

◆ Residu_t

template<class Size_store>
typedef UTT Residu_t

◆ Array

template<class Size_store>
typedef Rep* Array

◆ constArray

template<class Size_store>
typedef const Rep* constArray

◆ RandIter

template<class Size_store>
typedef GIV_randIter< GFqDom<TT>, Rep> RandIter

◆ NonZeroRandIter

template<class Size_store>
typedef GeneralRingNonZeroRandIter<Self_t,RandIter> NonZeroRandIter

Constructor & Destructor Documentation

◆ GFqDom() [1/5]

template<class Size_store>
GFqDom ( )
inline

◆ GFqDom() [2/5]

template<typename Any>
GFqDom ( const UTT P,
const UTT e = 1 )
inline

◆ GFqDom() [3/5]

template<typename Any>
template<typename Vector>
GFqDom ( const UTT P,
const UTT e,
const Vector & modPoly )
inline

◆ GFqDom() [4/5]

template<typename Any>
template<typename Vector>
GFqDom ( const UTT P,
const UTT e,
const Vector & modPoly,
const Vector & genPoly )
inline

◆ GFqDom() [5/5]

template<class Size_store>
GFqDom ( const GFqDom< TT > & F)
inline

Member Function Documentation

◆ zech2padic()

template<class Size_store>
UTT zech2padic ( UTT x) const
inline

◆ padic2zech()

template<class Size_store>
UTT padic2zech ( UTT x) const
inline

◆ operator=()

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

◆ minElement()

template<class Size_store>
Element minElement ( ) const
inline

◆ maxElement()

template<class Size_store>
Element maxElement ( ) const
inline

◆ residu()

template<typename Any>
GFqDom< Any >::Residu_t residu ( ) const
inline

◆ characteristic() [1/3]

template<typename Any>
GFqDom< Any >::Residu_t characteristic ( ) const
inline

◆ characteristic() [2/3]

template<class Size_store>
Integer & characteristic ( Integer & p) const
inline

◆ characteristic() [3/3]

template<class Size_store>
uint64_t & characteristic ( uint64_t & p) const
inline

◆ minCardinality()

template<class Size_store>
static Residu_t minCardinality ( )
inlinestatic

◆ cardinality() [1/2]

template<typename Any>
GFqDom< Any >::Residu_t cardinality ( ) const
inline

◆ cardinality() [2/2]

template<class Size_store>
template<typename T>
T & cardinality ( T & p) const
inline

◆ size()

template<typename Any>
GFqDom< Any >::Residu_t size ( ) const
inline

◆ exponent()

template<typename Any>
GFqDom< Any >::Residu_t exponent ( ) const
inline

◆ generator() [1/2]

template<typename Any>
GFqDom< Any >::Rep & generator ( Rep & g) const
inline

◆ generator() [2/2]

template<typename Any>
GFqDom< Any >::Residu_t generator ( ) const
inline

◆ irreducible()

template<typename Any>
GFqDom< Any >::Residu_t irreducible ( ) const
inline

◆ sage_generator()

template<typename Any>
GFqDom< Any >::Rep sage_generator ( ) const
inline

◆ indeterminate() [1/2]

template<typename Any>
GFqDom< Any >::Rep indeterminate ( ) const
inline

◆ indeterminate() [2/2]

template<typename Any>
GFqDom< Any >::Rep & indeterminate ( Rep & X) const
inline

◆ init() [1/10]

template<class Size_store>
Rep & init ( Rep & r) const
inline

◆ init() [2/10]

template<typename Any>
GFqDom< Any >::Rep & init ( Rep & r,
const int32_t Residu ) const
inline

◆ init() [3/10]

template<typename Any>
GFqDom< Any >::Rep & init ( Rep & r,
const uint32_t Residu ) const
inline

◆ init() [4/10]

template<typename Any>
GFqDom< Any >::Rep & init ( Rep & r,
const int64_t Residu ) const
inline

◆ init() [5/10]

template<typename Any>
GFqDom< Any >::Rep & init ( Rep & r,
const uint64_t Residu ) const
inline

◆ init() [6/10]

template<typename Any>
GFqDom< Any >::Rep & init ( Rep & r,
const Integer Residu ) const
inline

◆ init() [7/10]

template<typename Any>
GFqDom< Any >::Rep & init ( Rep & r,
const float Residu ) const
inline

◆ init() [8/10]

template<typename Any>
GFqDom< Any >::Rep & init ( Rep & r,
const double Residu ) const
inline

◆ init() [9/10]

template<class Size_store>
Rep & init ( Rep & a,
std::istream & s ) const
inline

◆ reduce() [1/2]

template<typename Any>
GFqDom< Any >::Rep & reduce ( Rep & r) const
inline

◆ reduce() [2/2]

template<typename Any>
GFqDom< Any >::Rep & reduce ( Rep & r,
const Rep e ) const
inline

◆ init() [10/10]

template<typename Any>
template<typename val_t, template< class, class > class Vector, template< class > class Alloc>
GFqDom< Any >::Rep & init ( Rep & r,
const Vector< val_t, Alloc< val_t > > & P ) const
inline

◆ assign() [1/3]

template<typename Any>
GFqDom< Any >::Rep & assign ( Rep & r,
const Integer a ) const
inline

◆ assign() [2/3]

template<typename Any>
GFqDom< Any >::Rep & assign ( Rep & r,
const Rep a ) const
inline

◆ assign() [3/3]

template<typename Any>
void assign ( const size_t sz,
Array r,
constArray a ) const
inline

◆ read() [1/2]

template<typename Any>
std::istream & read ( std::istream & s)
inline

◆ write() [1/3]

◆ write() [2/3]

template<typename Any>
std::ostream & write ( std::ostream & s,
const std::string & s ) const
inline

◆ read() [2/2]

template<typename Any>
std::istream & read ( std::istream & s,
Rep & a ) const
inline

◆ write() [3/3]

template<typename Any>
std::ostream & write ( std::ostream & s,
const Rep a ) const
inline

◆ convert() [1/9]

template<class Size_store>
std::ostream & convert ( std::ostream & s,
const Rep a ) const
inline

◆ convert() [2/9]

template<typename Any>
GFqDom< Any >::TT convert ( const Rep a) const
inline

◆ convert() [3/9]

template<typename Any>
int64_t & convert ( int64_t & r,
const Rep a ) const
inline

◆ convert() [4/9]

template<typename Any>
uint64_t & convert ( uint64_t & r,
const Rep a ) const
inline

◆ convert() [5/9]

template<typename Any>
int32_t & convert ( int32_t & r,
const Rep a ) const
inline

◆ convert() [6/9]

template<typename Any>
float & convert ( float & r,
const Rep a ) const
inline

◆ convert() [7/9]

template<typename Any>
double & convert ( double & r,
const Rep a ) const
inline

◆ convert() [8/9]

template<typename Any>
uint32_t & convert ( uint32_t & r,
const Rep a ) const
inline

◆ convert() [9/9]

template<typename Any>
Integer & convert ( Integer & r,
const Rep a ) const
inline

◆ operator==()

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

◆ operator!=()

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

◆ areEqual()

template<typename Any>
bool areEqual ( const Rep a,
const Rep b ) const
inline

◆ areNEqual()

template<typename Any>
bool areNEqual ( const Rep a,
const Rep b ) const
inline

◆ isZero()

template<typename Any>
bool isZero ( const Rep a) const
inline

◆ isnzero()

template<typename Any>
bool isnzero ( const Rep a) const
inline

◆ isOne()

template<typename Any>
bool isOne ( const Rep a) const
inline

◆ isMOne()

template<typename Any>
bool isMOne ( const Rep a) const
inline

◆ isUnit()

template<typename Any>
bool isUnit ( const Rep a) const
inline

◆ length()

template<typename Any>
size_t length ( const Rep ) const
inline

◆ mul() [1/3]

template<typename Any>
GFqDom< Any >::Rep & mul ( Rep & r,
const Rep a,
const Rep b ) const
inline

◆ div() [1/3]

template<typename Any>
GFqDom< Any >::Rep & div ( Rep & r,
const Rep a,
const Rep b ) const
inline

◆ add() [1/3]

template<typename Any>
GFqDom< Any >::Rep & add ( Rep & r,
const Rep a,
const Rep b ) const
inline

◆ sub() [1/3]

template<typename Any>
GFqDom< Any >::Rep & sub ( Rep & r,
const Rep a,
const Rep b ) const
inline

◆ neg() [1/2]

template<typename Any>
GFqDom< Any >::Rep & neg ( Rep & r,
const Rep a ) const
inline

◆ inv() [1/2]

template<typename Any>
GFqDom< Any >::Rep & inv ( Rep & r,
const Rep a ) const
inline

◆ mulin()

template<typename Any>
GFqDom< Any >::Rep & mulin ( Rep & r,
const Rep a ) const
inline

◆ divin()

template<typename Any>
GFqDom< Any >::Rep & divin ( Rep & r,
const Rep a ) const
inline

◆ addin()

template<typename Any>
GFqDom< Any >::Rep & addin ( Rep & r,
const Rep a ) const
inline

◆ subin()

template<typename Any>
GFqDom< Any >::Rep & subin ( Rep & r,
const Rep a ) const
inline

◆ negin()

template<typename Any>
GFqDom< Any >::Rep & negin ( Rep & r) const
inline

◆ invin()

template<typename Any>
GFqDom< Any >::Rep & invin ( Rep & r) const
inline

◆ mul() [2/3]

template<typename Any>
void mul ( const size_t sz,
Array r,
constArray a,
constArray b ) const
inline

◆ mul() [3/3]

template<typename Any>
void mul ( const size_t sz,
Array r,
constArray a,
const Rep b ) const
inline

◆ div() [2/3]

template<typename Any>
void div ( const size_t sz,
Array r,
constArray a,
constArray b ) const
inline

◆ div() [3/3]

template<typename Any>
void div ( const size_t sz,
Array r,
constArray a,
const Rep b ) const
inline

◆ add() [2/3]

template<typename Any>
void add ( const size_t sz,
Array r,
constArray a,
constArray b ) const
inline

◆ add() [3/3]

template<typename Any>
void add ( const size_t sz,
Array r,
constArray a,
const Rep b ) const
inline

◆ sub() [2/3]

template<typename Any>
void sub ( const size_t sz,
Array r,
constArray a,
constArray b ) const
inline

◆ sub() [3/3]

template<typename Any>
void sub ( const size_t sz,
Array r,
constArray a,
const Rep b ) const
inline

◆ neg() [2/2]

template<typename Any>
void neg ( const size_t sz,
Array r,
constArray a ) const
inline

◆ inv() [2/2]

template<typename Any>
void inv ( const size_t sz,
Array r,
constArray a ) const
inline

◆ axpy() [1/3]

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

◆ axpy() [2/3]

template<typename Any>
void axpy ( const size_t sz,
Array r,
const Rep a,
constArray x,
constArray y ) const
inline

◆ axpy() [3/3]

template<typename Any>
void axpy ( const size_t sz,
Array r,
const Rep a,
constArray x,
const Rep c ) const
inline

◆ axpyin() [1/2]

template<typename Any>
GFqDom< Any >::Rep & axpyin ( Rep & r,
const Rep a,
const Rep b ) const
inline

◆ axpyin() [2/2]

template<typename Any>
void axpyin ( const size_t sz,
Array r,
const Rep a,
constArray x ) const
inline

◆ axmy() [1/3]

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

◆ axmy() [2/3]

template<typename Any>
void axmy ( const size_t sz,
Array r,
const Rep a,
constArray x,
constArray y ) const
inline

◆ axmy() [3/3]

template<typename Any>
void axmy ( const size_t sz,
Array r,
const Rep a,
constArray x,
const Rep c ) const
inline

◆ maxpy()

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

◆ axmyin()

template<typename Any>
GFqDom< Any >::Rep & axmyin ( Rep & r,
const Rep a,
const Rep b ) const
inline

◆ maxpyin() [1/2]

template<typename Any>
GFqDom< Any >::Rep & maxpyin ( Rep & r,
const Rep a,
const Rep b ) const
inline

◆ maxpyin() [2/2]

template<typename Any>
void maxpyin ( const size_t sz,
Array r,
const Rep a,
constArray x ) const
inline

◆ reduceadd()

template<class Size_store>
void reduceadd ( Rep & r,
const size_t sz,
constArray a ) const

◆ reducemul()

template<class Size_store>
void reducemul ( Rep & r,
const size_t sz,
constArray a ) const

◆ dotprod()

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

◆ random() [1/4]

template<class Size_store>
template<class RandIter>
Rep & random ( RandIter & g,
Rep & r ) const

◆ random() [2/4]

template<class Size_store>
template<class RandIter>
Rep & random ( RandIter & g,
Rep & r,
const Residu_t & s ) const

◆ nonzerorandom() [1/4]

template<class Size_store>
template<class RandIter>
Rep & nonzerorandom ( RandIter & g,
Rep & r ) const

◆ nonzerorandom() [2/4]

template<class Size_store>
template<class RandIter>
Rep & nonzerorandom ( RandIter & g,
Rep & r,
const Residu_t & s ) const

◆ Init()

template<typename Any>
void Init ( )
inlinestatic

◆ End()

template<typename Any>
void End ( )
inlinestatic

◆ nonzerorandom() [3/4]

template<class Size_store>
template<typename randIter>
GFqDom< Any >::Rep & nonzerorandom ( randIter & g,
Rep & a,
const Residu_t & s ) const
inline

◆ random() [3/4]

template<class Size_store>
template<typename randIter>
GFqDom< Any >::Rep & random ( randIter & g,
Rep & a,
const Residu_t & s ) const
inline

◆ random() [4/4]

template<class Size_store>
template<typename randIter>
GFqDom< Any >::Rep & random ( randIter & g,
Rep & r ) const
inline

◆ nonzerorandom() [4/4]

template<class Size_store>
template<typename randIter>
GFqDom< Any >::Rep & nonzerorandom ( randIter & g,
Rep & r ) const
inline

Field Documentation

◆ zero

template<class Size_store>
Rep zero

◆ one

template<class Size_store>
Rep one

◆ mOne

template<class Size_store>
Rep mOne

◆ _characteristic

template<class Size_store>
UTT _characteristic
protected

◆ _exponent

template<class Size_store>
UTT _exponent
protected

◆ _irred

template<class Size_store>
UTT _irred
protected

◆ _q

template<class Size_store>
UTT _q
protected

◆ _qm1

template<class Size_store>
UTT _qm1
protected

◆ _log2pol

template<class Size_store>
std::vector<UTT> _log2pol
protected

◆ _pol2log

template<class Size_store>
std::vector<UTT> _pol2log
protected

◆ _plus1

template<class Size_store>
std::vector<TT> _plus1
protected

◆ _dcharacteristic

template<class Size_store>
double _dcharacteristic
protected

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