linbox
MultiModDouble Class Reference

#include <multimod-field.h>

+ Inheritance diagram for MultiModDouble:

Public Types

typedef std::vector< double > Element
 
typedef MultiModRandIter RandIter
 

Public Member Functions

 MultiModDouble ()
 
 MultiModDouble (const std::vector< integer > &primes)
 
 MultiModDouble (const std::vector< double > &primes)
 
 MultiModDouble (const MultiModDouble &F)
 
MultiModDoubleoperator= (const MultiModDouble &F)
 
size_t size () const
 
const Givaro::Modular< double > & getBase (size_t i) const
 
Givaro::Modular< double >::Residu_t getModulo (size_t i) const
 
const integergetCRTmodulo () const
 
integercardinality (integer &c) const
 
integercharacteristic (integer &c) const
 
integerconvert (integer &x, const Element &y) const
 
std::ostream & write (std::ostream &os) const
 
std::istream & read (std::istream &is)
 
std::ostream & write (std::ostream &os, const Element &x) const
 
std::istream & read (std::istream &is, Element &x) const
 
Elementinit (Element &x, const integer &y) const
 
Elementinit (Element &x, double y=0) const
 
Elementassign (Element &x, const Element &y) const
 
bool areEqual (const Element &x, const Element &y) const
 
bool isZero (const Element &x) const
 
bool isOne (const Element &x) const
 
bool isMOne (const Element &x) const
 
Elementadd (Element &x, const Element &y, const Element &z) const
 
Elementsub (Element &x, const Element &y, const Element &z) const
 
Elementmul (Element &x, const Element &y, const Element &z) const
 
Elementdiv (Element &x, const Element &y, const Element &z) const
 
Elementneg (Element &x, const Element &y) const
 
Elementinv (Element &x, const Element &y) const
 
Elementaxpy (Element &r, const Element &a, const Element &x, const Element &y) const
 
Elementaddin (Element &x, const Element &y) const
 
Elementsubin (Element &x, const Element &y) const
 
Elementmulin (Element &x, const Element &y) const
 
Elementdivin (Element &x, const Element &y) const
 
Elementnegin (Element &x) const
 
Elementinvin (Element &x) const
 
Elementaxpyin (Element &r, const Element &a, const Element &x) const
 

Static Public Member Functions

static double maxCardinality ()
 

Protected Attributes

std::vector< Givaro::Modular< double > > _fields
 
size_t _size
 
std::vector< integer_crt_constant
 
std::vector< double > _crt_inverse
 
integer _crt_modulo
 

Friends

class FieldAXPY< MultiModDouble >
 
class DotProductDomain< MultiModDouble >
 
class MultiModRandIter
 

Member Typedef Documentation

◆ Element

typedef std::vector<double> Element

◆ RandIter

Constructor & Destructor Documentation

◆ MultiModDouble() [1/4]

MultiModDouble ( )
inline

◆ MultiModDouble() [2/4]

MultiModDouble ( const std::vector< integer > & primes)
inline

◆ MultiModDouble() [3/4]

MultiModDouble ( const std::vector< double > & primes)
inline

◆ MultiModDouble() [4/4]

MultiModDouble ( const MultiModDouble & F)
inline

Member Function Documentation

◆ operator=()

MultiModDouble & operator= ( const MultiModDouble & F)
inline

◆ size()

size_t size ( ) const
inline

◆ getBase()

const Givaro::Modular< double > & getBase ( size_t i) const
inline

◆ getModulo()

Givaro::Modular< double >::Residu_t getModulo ( size_t i) const
inline

◆ getCRTmodulo()

const integer & getCRTmodulo ( ) const
inline

◆ cardinality()

integer & cardinality ( integer & c) const
inline

◆ characteristic()

integer & characteristic ( integer & c) const
inline

◆ convert()

integer & convert ( integer & x,
const Element & y ) const
inline

◆ write() [1/2]

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

◆ read() [1/2]

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

◆ write() [2/2]

std::ostream & write ( std::ostream & os,
const Element & x ) const
inline

◆ read() [2/2]

std::istream & read ( std::istream & is,
Element & x ) const
inline

◆ init() [1/2]

Element & init ( Element & x,
const integer & y ) const
inline

◆ init() [2/2]

Element & init ( Element & x,
double y = 0 ) const
inline

◆ assign()

Element & assign ( Element & x,
const Element & y ) const
inline

◆ areEqual()

bool areEqual ( const Element & x,
const Element & y ) const
inline

◆ isZero()

bool isZero ( const Element & x) const
inline

◆ isOne()

bool isOne ( const Element & x) const
inline

◆ isMOne()

bool isMOne ( const Element & x) const
inline

◆ add()

Element & add ( Element & x,
const Element & y,
const Element & z ) const
inline

◆ sub()

Element & sub ( Element & x,
const Element & y,
const Element & z ) const
inline

◆ mul()

Element & mul ( Element & x,
const Element & y,
const Element & z ) const
inline

◆ div()

Element & div ( Element & x,
const Element & y,
const Element & z ) const
inline

◆ neg()

Element & neg ( Element & x,
const Element & y ) const
inline

◆ inv()

Element & inv ( Element & x,
const Element & y ) const
inline

◆ axpy()

Element & axpy ( Element & r,
const Element & a,
const Element & x,
const Element & y ) const
inline

◆ addin()

Element & addin ( Element & x,
const Element & y ) const
inline

◆ subin()

Element & subin ( Element & x,
const Element & y ) const
inline

◆ mulin()

Element & mulin ( Element & x,
const Element & y ) const
inline

◆ divin()

Element & divin ( Element & x,
const Element & y ) const
inline

◆ negin()

Element & negin ( Element & x) const
inline

◆ invin()

Element & invin ( Element & x) const
inline

◆ axpyin()

Element & axpyin ( Element & r,
const Element & a,
const Element & x ) const
inline

◆ maxCardinality()

static double maxCardinality ( )
inlinestatic

Friends And Related Symbol Documentation

◆ FieldAXPY< MultiModDouble >

friend class FieldAXPY< MultiModDouble >
friend

◆ DotProductDomain< MultiModDouble >

friend class DotProductDomain< MultiModDouble >
friend

◆ MultiModRandIter

friend class MultiModRandIter
friend

Field Documentation

◆ _fields

std::vector<Givaro::Modular<double> > _fields
protected

◆ _size

size_t _size
protected

◆ _crt_constant

std::vector<integer> _crt_constant
protected

◆ _crt_inverse

std::vector<double > _crt_inverse
protected

◆ _crt_modulo

integer _crt_modulo
protected

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