Main Page | Modules | Namespace List | Class Hierarchy | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages

Modular< int8 > Class Template Reference
[linbox/field]

#include <modular-byte.h>

Inheritance diagram for Modular< int8 >:

FieldInterface

Detailed Description

template<>
class LinBox::Modular< int8 >

Specialization of Modular to signed 8 bit element type with efficient dot product.

Efficient element operations for dot product, mul, axpy, by using floating point inverse of modulus (borrowed from NTL) and some use of non-normalized intermediate values.

Requires: modulus < 2^7. Intended use: prime modulus < 2^7.


Public Types

typedef int8 Element
typedef ModularRandIter< ElementRandIter

Public Member Functions

 Modular ()
 Modular (int value, int exp=1)
 Modular (const Modular< int8 > &mf)
Modularoperator= (const Modular< int8 > &F)
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, int y=0) const
Elementinit (Element &x, long y) 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
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

int8 getMaxModulus ()

Protected Attributes

int8 modulus
double modulusinv

Friends

class FieldAXPY< Modular< int8 > >
class DotProductDomain< Modular< int8 > >
class MVProductDomain< Modular< int8 > >


Member Typedef Documentation

typedef int8 Element
 

typedef ModularRandIter<Element> RandIter
 


Member Function Documentation

Modular  )  [inline]
 

Modular int  value,
int  exp = 1
[inline]
 

Modular const Modular< int8 > &  mf  )  [inline]
 

Modular& operator= const Modular< int8 > &  F  )  [inline]
 

integer& cardinality integer c  )  const [inline]
 

integer& characteristic integer c  )  const [inline]
 

integer& convert integer x,
const Element y
const [inline]
 

std::ostream& write std::ostream &  os  )  const [inline]
 

std::istream& read std::istream &  is  )  [inline]
 

std::ostream& write std::ostream &  os,
const Element x
const [inline]
 

std::istream& read std::istream &  is,
Element x
const [inline]
 

Element& init Element x,
const integer y
const [inline]
 

Element& init Element x,
int  y = 0
const [inline]
 

Element& init Element x,
long  y
const [inline]
 

Element& assign Element x,
const Element y
const [inline]
 

bool areEqual const Element x,
const Element y
const [inline]
 

bool isZero const Element x  )  const [inline]
 

bool isOne const Element x  )  const [inline]
 

Element& add Element x,
const Element y,
const Element z
const [inline]
 

Element& sub Element x,
const Element y,
const Element z
const [inline]
 

Element& mul Element x,
const Element y,
const Element z
const [inline]
 

Element& div Element x,
const Element y,
const Element z
const [inline]
 

Element& neg Element x,
const Element y
const [inline]
 

Element& inv Element x,
const Element y
const [inline]
 

Element& axpy Element r,
const Element a,
const Element x,
const Element y
const [inline]
 

Element& addin Element x,
const Element y
const [inline]
 

Element& subin Element x,
const Element y
const [inline]
 

Element& mulin Element x,
const Element y
const [inline]
 

Element& divin Element x,
const Element y
const [inline]
 

Element& negin Element x  )  const [inline]
 

Element& invin Element x  )  const [inline]
 

Element& axpyin Element r,
const Element a,
const Element x
const [inline]
 

int8 getMaxModulus  )  [inline, static]
 


Friends And Related Function Documentation

friend class FieldAXPY< Modular< int8 > > [friend]
 

friend class DotProductDomain< Modular< int8 > > [friend]
 

friend class MVProductDomain< Modular< int8 > > [friend]
 


Field Documentation

int8 modulus [protected]
 

double modulusinv [protected]
 


Generated on Fri Jul 8 10:29:52 2005 for linbox by doxygen 1.3.7