Givaro
Public Types | Public Member Functions
UnparametricOperations< _Element > Class Template Referenceabstract

#include <unparametric-operations.h>

+ Inheritance diagram for UnparametricOperations< _Element >:
+ Collaboration diagram for UnparametricOperations< _Element >:

Public Types

typedef _Element Element
 
typedef ElementElement_ptr
 
typedef const Element ConstElement
 
typedef const ElementConstElement_ptr
 

Public Member Functions

 UnparametricOperations ()
 
virtual ~UnparametricOperations ()
 
virtual bool isZero (const Element &a) const =0
 
virtual bool isOne (const Element &a) const =0
 
virtual bool isMOne (const Element &a) const =0
 
virtual bool isUnit (const Element &a) const =0
 
Data Object Management.

first argument is set and the value is also returned.

Elementinit (Element &x) const
 
Elementassign (Element &x, const Element &y) const
 
Comparison Predicates
bool areEqual (const Element &x, const Element &y) const
 x == y More...
 
Arithmetic Operations

The first argument is set and is also the return value.

Elementadd (Element &x, const Element &y, const Element &z) const
 x := y + z More...
 
Elementsub (Element &x, const Element &y, const Element &z) const
 x := y - z More...
 
Elementmul (Element &x, const Element &y, const Element &z) const
 x := y*z More...
 
Elementdiv (Element &x, const Element &y, const Element &z) const
 x := y/z More...
 
Elementmod (Element &x, const Element &y, const Element &z) const
 x := y mod z More...
 
Elementneg (Element &x, const Element &y) const
 x := -y More...
 
Elementinv (Element &x, const Element &y) const
 x := 1/y More...
 
Elementaxpy (Element &z, const Element &a, const Element &x, const Element &y) const
 z := a*x + y More...
 
Elementaxpyin (Element &z, const Element &a, const Element &x) const
 z := a*x + z More...
 
Elementaxmy (Element &z, const Element &a, const Element &x, const Element &y) const
 z := a*x - y More...
 
Elementaxmyin (Element &z, const Element &a, const Element &x) const
 z := a*x - z More...
 
Elementmaxpy (Element &z, const Element &a, const Element &x, const Element &y) const
 z := y - a*x More...
 
Elementmaxpyin (Element &z, const Element &a, const Element &x) const
 z := z - a*x More...
 
Inplace Arithmetic Operations

The first argument is modified and the result is the return value.

Elementaddin (Element &x, const Element &y) const
 x := x + y More...
 
Elementsubin (Element &x, const Element &y) const
 x := x - y More...
 
Elementmulin (Element &x, const Element &y) const
 x := x*y More...
 
Elementdivin (Element &x, const Element &y) const
 x := x/y More...
 
Elementmodin (Element &x, const Element &y) const
 x := x mod y More...
 
Elementnegin (Element &x) const
 x := -x More...
 
Elementinvin (Element &x) const
 x := 1/x More...
 
Input/Output Operations
std::ostream & write (std::ostream &os) const
 Print field. More...
 
std::ostream & write (std::ostream &os, std::string F) const
 Read field. More...
 
std::istream & read (std::istream &is) const
 Read field. More...
 
std::ostream & write (std::ostream &os, const Element &x) const
 Print field element. More...
 
virtual std::istream & read (std::istream &is, Element &x) const
 Read field element. More...
 

Member Typedef Documentation

◆ Element

typedef _Element Element

◆ Element_ptr

typedef Element* Element_ptr
inherited

◆ ConstElement

typedef const Element ConstElement
inherited

◆ ConstElement_ptr

typedef const Element* ConstElement_ptr
inherited

Constructor & Destructor Documentation

◆ UnparametricOperations()

◆ ~UnparametricOperations()

virtual ~UnparametricOperations ( )
inlinevirtual

Member Function Documentation

◆ init()

Element& init ( Element x) const
inlinevirtual

◆ assign()

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

◆ areEqual()

bool areEqual ( const Element x,
const Element y 
) const
inlinevirtual

x == y

Implements RingInterface< _Element >.

◆ add()

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

x := y + z

Implements RingInterface< _Element >.

◆ sub()

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

x := y - z

Implements RingInterface< _Element >.

◆ mul()

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

x := y*z

Implements RingInterface< _Element >.

◆ div()

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

x := y/z

◆ mod()

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

x := y mod z

◆ neg()

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

x := -y

Implements RingInterface< _Element >.

◆ inv()

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

x := 1/y

◆ axpy()

Element& axpy ( Element z,
const Element a,
const Element x,
const Element y 
) const
inlinevirtual

z := a*x + y

Implements RingInterface< _Element >.

◆ axpyin()

Element& axpyin ( Element z,
const Element a,
const Element x 
) const
inlinevirtual

z := a*x + z

Implements RingInterface< _Element >.

◆ axmy()

Element& axmy ( Element z,
const Element a,
const Element x,
const Element y 
) const
inlinevirtual

z := a*x - y

Implements RingInterface< _Element >.

◆ axmyin()

Element& axmyin ( Element z,
const Element a,
const Element x 
) const
inlinevirtual

z := a*x - z

Implements RingInterface< _Element >.

◆ maxpy()

Element& maxpy ( Element z,
const Element a,
const Element x,
const Element y 
) const
inlinevirtual

z := y - a*x

Implements RingInterface< _Element >.

◆ maxpyin()

Element& maxpyin ( Element z,
const Element a,
const Element x 
) const
inlinevirtual

z := z - a*x

Implements RingInterface< _Element >.

◆ addin()

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

x := x + y

Implements RingInterface< _Element >.

◆ subin()

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

x := x - y

Implements RingInterface< _Element >.

◆ mulin()

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

x := x*y

Implements RingInterface< _Element >.

◆ divin()

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

x := x/y

◆ modin()

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

x := x mod y

◆ negin()

Element& negin ( Element x) const
inlinevirtual

x := -x

Implements RingInterface< _Element >.

◆ invin()

Element& invin ( Element x) const
inline

x := 1/x

◆ write() [1/3]

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

Print field.

Returns
output stream to which field is written.
Parameters
osoutput stream to which field is written.

Implements RingInterface< _Element >.

Reimplemented in UnparametricZRing< _Element >, UnparametricZRing< Element >, and UnparametricZRing< Integer >.

◆ write() [2/3]

std::ostream& write ( std::ostream &  os,
std::string  F 
) const
inline

Read field.

Returns
input stream from which field is read.
Parameters
isinput stream from which field is read.

◆ read() [1/2]

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

Read field.

Returns
input stream from which field is read.
Parameters
isinput stream from which field is read.

◆ write() [3/3]

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

Print field element.

Returns
output stream to which field element is written.
Parameters
osoutput stream to which field element is written.
xfield element.

Implements RingInterface< _Element >.

Reimplemented in UnparametricZRing< _Element >, UnparametricZRing< Element >, and UnparametricZRing< Integer >.

◆ read() [2/2]

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

Read field element.

Returns
input stream from which field element is read.
Parameters
isinput stream from which field element is read.
xfield element.

Implements RingInterface< _Element >.

Reimplemented in UnparametricZRing< _Element >, UnparametricZRing< Element >, and UnparametricZRing< Integer >.

◆ isZero()

virtual bool isZero ( const Element a) const
pure virtualinherited

◆ isOne()

virtual bool isOne ( const Element a) const
pure virtualinherited

◆ isMOne()

virtual bool isMOne ( const Element a) const
pure virtualinherited

◆ isUnit()

virtual bool isUnit ( const Element a) const
pure virtualinherited

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