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

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

#include <modular-short.h>

Inheritance diagram for Modular< int16 >:

FieldInterface

Detailed Description

template<>
class LinBox::Modular< int16 >

Specialization of Modular to short 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^15. Intended use: 2^7 < prime modulus < 2^15.


Public Types

typedef int16 Element
typedef ModularRandIter< int16RandIter

Public Member Functions

 Modular ()
 Modular (int value, int exp=1)
 Modular (const Modular< int16 > &mf)
const Modularoperator= (const Modular< int16 > &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
template<class T> Elementinit (Element &x, const T &y) 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

int16 getMaxModulus ()

Protected Attributes

int16 modulus
double modulusinv

Friends

class FieldAXPY< Modular< int16 > >
class DotProductDomain< Modular< int16 > >
class MVProductDomain< Modular< int16 > >


Member Typedef Documentation

typedef int16 Element
 

typedef ModularRandIter<int16> RandIter
 


Member Function Documentation

Modular  )  [inline]
 

Modular int  value,
int  exp = 1
[inline]
 

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

const Modular& operator= const Modular< int16 > &  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 T &  y
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]
 

int16 getMaxModulus  )  [inline, static]
 


Friends And Related Function Documentation

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

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

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


Field Documentation

int16 modulus [protected]
 

double modulusinv [protected]
 


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