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

#include <modular-balanced-double.h>

+ Inheritance diagram for ModularBalanced< double >:
+ Collaboration diagram for ModularBalanced< double >:

Public Types

enum  { size_rep = sizeof(Element) }
 
using Self_t = ModularBalanced< double >
 
typedef ModularRandIter< Self_tRandIter
 
typedef GeneralRingNonZeroRandIter< Self_tNonZeroRandIter
 
typedef double Element
 
typedef ElementElement_ptr
 
typedef const Element ConstElement
 
typedef const ElementConstElement_ptr
 

Public Member Functions

 ModularBalanced ()
 
 ModularBalanced (double p)
 
 ModularBalanced (const Self_t &F)
 
Element minElement () const override
 
Element maxElement () const override
 
Element residu () const
 
Element size () const
 
Element characteristic () const
 
Element cardinality () const
 
template<class T >
T & characteristic (T &p) const
 
template<class T >
T & cardinality (T &p) const
 
bool isZero (const Element &a) const override
 
bool isOne (const Element &a) const override
 
bool isMOne (const Element &a) const override
 
bool areEqual (const Element &a, const Element &b) const override
 
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 &a) const
 
Elementinit (Element &r, const float a) const
 
Elementinit (Element &r, const double a) const
 
Elementinit (Element &r, const int64_t a) const
 
Elementinit (Element &r, const uint64_t a) const
 
Elementinit (Element &r, const Integer &a) const
 
template<typename T >
Elementinit (Element &r, const T &a) const
 
Elementassign (Element &r, const Element &a) const
 
template<typename T >
T & convert (T &r, const Element &a) const
 
Elementreduce (Element &r, const Element &a) const
 
Elementreduce (Element &r) const
 
Elementmul (Element &r, const Element &a, const Element &b) const override
 
Elementdiv (Element &r, const Element &a, const Element &b) const override
 
Elementadd (Element &r, const Element &a, const Element &b) const override
 
Elementsub (Element &r, const Element &a, const Element &b) const override
 
Elementneg (Element &r, const Element &a) const override
 
Elementinv (Element &r, const Element &a) const override
 
Elementmulin (Element &r, const Element &a) const override
 
Elementdivin (Element &r, const Element &a) const override
 
Elementaddin (Element &r, const Element &a) const override
 
Elementsubin (Element &r, const Element &a) const override
 
Elementnegin (Element &r) const override
 
Elementinvin (Element &r) const override
 
Elementaxpy (Element &r, const Element &a, const Element &x, const Element &y) const override
 
Elementaxpyin (Element &r, const Element &a, const Element &x) const override
 
Elementaxmy (Element &r, const Element &a, const Element &x, const Element &y) const override
 
Elementaxmyin (Element &r, const Element &a, const Element &x) const override
 
Elementmaxpy (Element &r, const Element &a, const Element &x, const Element &y) const override
 
Elementmaxpyin (Element &r, const Element &a, const Element &x) const override
 
template<class Random >
Elementrandom (const Random &g, Element &r) const
 
template<class Random >
Elementnonzerorandom (const Random &g, Element &a) const
 
std::ostream & write (std::ostream &s) const
 
std::istream & read (std::istream &s, Element &a) const
 
std::ostream & write (std::ostream &s, const Element &a) const
 

Static Public Member Functions

static Element maxCardinality ()
 
static Element minCardinality ()
 

Data Fields

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

Protected Attributes

Element _p
 
Element _halfp
 
Element _mhalfp
 
uint64_t _up
 

Member Typedef Documentation

using Self_t = ModularBalanced<double>
typedef double Element
inherited
typedef Element* Element_ptr
inherited
typedef const Element ConstElement
inherited
typedef const Element* ConstElement_ptr
inherited

Member Enumeration Documentation

anonymous enum
Enumerator
size_rep 

Constructor & Destructor Documentation

ModularBalanced ( )
inline
ModularBalanced ( double  p)
inline
ModularBalanced ( const Self_t F)
inline

Member Function Documentation

Element minElement ( ) const
inlineoverridevirtual
Element maxElement ( ) const
inlineoverridevirtual
Element residu ( ) const
inline
Element size ( ) const
inline
Element characteristic ( ) const
inline
Element cardinality ( ) const
inline
T& characteristic ( T &  p) const
inline
T& cardinality ( T &  p) const
inline
static Element maxCardinality ( )
inlinestatic
static Element minCardinality ( )
inlinestatic
bool isZero ( const Element a) const
inlineoverridevirtual
bool isOne ( const Element a) const
inlineoverridevirtual
bool isMOne ( const Element a) const
inlineoverridevirtual
bool areEqual ( const Element a,
const Element b 
) const
inlineoverridevirtual
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
ModularBalanced< double >::Element & init ( Element a) const
inline
ModularBalanced< double >::Element & init ( Element r,
const float  a 
) const
inline
ModularBalanced< double >::Element & init ( Element r,
const double  a 
) const
inline
ModularBalanced< double >::Element & init ( Element r,
const int64_t  a 
) const
inline
ModularBalanced< double >::Element & init ( Element r,
const uint64_t  a 
) const
inline
ModularBalanced< double >::Element & init ( Element r,
const Integer a 
) const
inline
Element& init ( Element r,
const T &  a 
) const
inline
ModularBalanced< double >::Element & assign ( Element r,
const Element a 
) const
inline
T& convert ( T &  r,
const Element a 
) const
inline
ModularBalanced< double >::Element & reduce ( Element r,
const Element a 
) const
inline
ModularBalanced< double >::Element & reduce ( Element r) const
inline
ModularBalanced< double >::Element & mul ( Element r,
const Element a,
const Element b 
) const
inlineoverridevirtual
ModularBalanced< double >::Element & div ( Element r,
const Element a,
const Element b 
) const
inlineoverridevirtual
ModularBalanced< double >::Element & add ( Element r,
const Element a,
const Element b 
) const
inlineoverridevirtual
ModularBalanced< double >::Element & sub ( Element r,
const Element a,
const Element b 
) const
inlineoverridevirtual
ModularBalanced< double >::Element & neg ( Element r,
const Element a 
) const
inlineoverridevirtual
ModularBalanced< double >::Element & inv ( Element r,
const Element a 
) const
inlineoverridevirtual
ModularBalanced< double >::Element & mulin ( Element r,
const Element a 
) const
inlineoverridevirtual
ModularBalanced< double >::Element & divin ( Element r,
const Element a 
) const
inlineoverridevirtual
ModularBalanced< double >::Element & addin ( Element r,
const Element a 
) const
inlineoverridevirtual
ModularBalanced< double >::Element & subin ( Element r,
const Element a 
) const
inlineoverridevirtual
ModularBalanced< double >::Element & negin ( Element r) const
inlineoverridevirtual
ModularBalanced< double >::Element & invin ( Element r) const
inlineoverridevirtual
ModularBalanced< double >::Element & axpy ( Element r,
const Element a,
const Element x,
const Element y 
) const
inlineoverridevirtual
ModularBalanced< double >::Element & axpyin ( Element r,
const Element a,
const Element x 
) const
inlineoverridevirtual
ModularBalanced< double >::Element & axmy ( Element r,
const Element a,
const Element x,
const Element y 
) const
inlineoverridevirtual
ModularBalanced< double >::Element & axmyin ( Element r,
const Element a,
const Element x 
) const
inlineoverridevirtual
ModularBalanced< double >::Element & maxpy ( Element r,
const Element a,
const Element x,
const Element y 
) const
inlineoverridevirtual
ModularBalanced< double >::Element & maxpyin ( Element r,
const Element a,
const Element x 
) const
inlineoverridevirtual
Element& random ( const Random &  g,
Element r 
) const
inline
Element& nonzerorandom ( const Random &  g,
Element a 
) const
inline
std::ostream & write ( std::ostream &  s) const
inline
std::istream & read ( std::istream &  s,
Element a 
) const
inline
std::ostream & write ( std::ostream &  s,
const Element a 
) const
inline

Field Documentation

const Element zero = 0.0
const Element one = 1.0
const Element mOne = -1.0
Element _p
protected
Element _halfp
protected
Element _mhalfp
protected
uint64_t _up
protected

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