FflasFfpack
Public Types | Public Member Functions | Static Public Member Functions | Data Fields | Protected Attributes
ModularExtended< _Element > Class Template Reference

#include <modular-extended.h>

Public Types

typedef double Element
 
typedef ElementElement_ptr
 
typedef const Element ConstElement
 
typedef const ElementConstElement_ptr
 
typedef ModularExtended< ElementSelf_t
 
typedef uint64_t Residu_t
 

Public Member Functions

 ModularExtended ()=default
 
template<class XXX >
 ModularExtended (const XXX &p)
 
Element minElement () const
 
Element maxElement () const
 
Residu_t residu () const
 
Residu_t size () const
 
Residu_t characteristic () const
 
template<class T >
T & characteristic (T &p) const
 
Residu_t cardinality () const
 
template<class T >
T & cardinality (T &p) const
 
bool isZero (const Element &a) const
 
bool isOne (const Element &a) const
 
bool isMOne (const Element &a) const
 
bool areEqual (const Element &a, const Element &b) const
 
size_t length (const Element a) const
 
bool operator== (const Self_t &F) const
 
bool operator!= (const Self_t &F) const
 
Self_toperator= (const Self_t &F)
 
Elementinit (Element &x) const
 
template<class XXX >
Elementinit (Element &x, const XXX &y) const
 
Elementassign (Element &x, const Element &y) const
 
Integer & convert (Integer &x, const Element &y) const
 
Residu_tconvert (Residu_t &x, const Element &y) const
 
Elementconvert (Element &x, const Element &y) const
 
float & convert (float &x, const Element &y) const
 
Elementreduce (Element &x, const Element &y) const
 
Elementreduce (Element &x) const
 
Elementmul (Element &r, const Element &a, const Element &b) const
 
Elementdiv (Element &r, const Element &a, const Element &b) const
 
Elementadd (Element &r, const Element &a, const Element &b) const
 
Elementsub (Element &r, const Element &a, const Element &b) const
 
Elementneg (Element &r, const Element &a) const
 
Elementinv (Element &x, const Element &y) const
 
Elementmulin (Element &r, const Element &a) const
 
Elementdivin (Element &r, const Element &y) const
 
Elementaddin (Element &r, const Element &a) const
 
Elementsubin (Element &r, const Element &a) const
 
Elementnegin (Element &r) const
 
Elementinvin (Element &r) const
 
Elementaxpy (Element &r, const Element &a, const Element &x, const Element &y) const
 
Elementaxpyin (Element &r, const Element &a, const Element &x) const
 
Elementaxmy (Element &r, const Element &a, const Element &x, const Element &y) const
 
Elementaxmyin (Element &r, const Element &a, const Element &x) const
 
Elementmaxpy (Element &r, const Element &a, const Element &x, const Element &y) const
 
Elementmaxpyin (Element &r, const Element &a, const Element &x) const
 

Static Public Member Functions

static Residu_t maxCardinality ()
 
static Residu_t getMinModulus ()
 

Data Fields

const Element zero = 0.0
 
const Element one = 1.0
 
const Element mOne = -1.0
 

Protected Attributes

double _p = 0
 
double _invp = 0
 
double _negp = 0
 
Residu_t _lp = 0
 

Member Typedef Documentation

typedef double Element
typedef Element* Element_ptr
typedef const Element ConstElement
typedef const Element* ConstElement_ptr
typedef uint64_t Residu_t

Member Enumeration Documentation

anonymous enum
Enumerator
size_rep 

Constructor & Destructor Documentation

ModularExtended ( )
default
ModularExtended ( const XXX &  p)
inline

Member Function Documentation

Element minElement ( ) const
inline
Element maxElement ( ) const
inline
Residu_t residu ( ) const
inline
Residu_t size ( ) const
inline
Residu_t characteristic ( ) const
inline
T& characteristic ( T &  p) const
inline
Residu_t cardinality ( ) const
inline
T& cardinality ( T &  p) const
inline
static Residu_t maxCardinality ( )
inlinestatic
static Residu_t getMinModulus ( )
inlinestatic
bool isZero ( const Element a) const
inline
bool isOne ( const Element a) const
inline
bool isMOne ( const Element a) const
inline
bool areEqual ( const Element a,
const Element b 
) const
inline
size_t length ( const Element  a) const
inline
bool operator== ( const Self_t F) const
inline
bool operator!= ( const Self_t F) const
inline
Self_t& operator= ( const Self_t F)
inline
Element& init ( Element x) const
inline
Element& init ( Element x,
const XXX &  y 
) const
inline
Element& assign ( Element x,
const Element y 
) const
inline
Integer& convert ( Integer &  x,
const Element y 
) const
inline
Residu_t& convert ( Residu_t x,
const Element y 
) const
inline
Element& convert ( Element x,
const Element y 
) const
inline
float& convert ( float &  x,
const Element y 
) const
inline
Element& reduce ( Element x,
const Element y 
) const
inline
Element& reduce ( Element x) const
inline
Element& mul ( Element r,
const Element a,
const Element b 
) const
inline
Element& div ( Element r,
const Element a,
const Element b 
) const
inline
Element& add ( Element r,
const Element a,
const Element b 
) const
inline
Element& sub ( Element r,
const Element a,
const Element b 
) const
inline
Element& neg ( Element r,
const Element a 
) const
inline
Element& inv ( Element x,
const Element y 
) const
inline
Element& mulin ( Element r,
const Element a 
) const
inline
Element& divin ( Element r,
const Element y 
) const
inline
Element& addin ( Element r,
const Element a 
) const
inline
Element& subin ( Element r,
const Element a 
) const
inline
Element& negin ( Element r) const
inline
Element& invin ( Element r) const
inline
Element& axpy ( Element r,
const Element a,
const Element x,
const Element y 
) const
inline
Element& axpyin ( Element r,
const Element a,
const Element x 
) const
inline
Element& axmy ( Element r,
const Element a,
const Element x,
const Element y 
) const
inline
Element& axmyin ( Element r,
const Element a,
const Element x 
) const
inline
Element& maxpy ( Element r,
const Element a,
const Element x,
const Element y 
) const
inline
Element& maxpyin ( Element r,
const Element a,
const Element x 
) const
inline

Field Documentation

const Element zero = 0.0
const Element one = 1.0
const Element mOne = -1.0
double _p = 0
protected
double _invp = 0
protected
double _negp = 0
protected
Residu_t _lp = 0
protected

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