Main Page   Modules   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

Modular< int16 > Class Template Reference

#include <modular-short.h>

Inheritance diagram for Modular< int16 >:

FieldInterface List of all members.

Detailed Description

template<>
class LinBox::Modular< int16 >

Specialization of Modular to short element type with efficient dot product. @doc 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 Methods

 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 Methods

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

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

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

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

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

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

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

integer& cardinality integer   c const [inline]
 

integer& characteristic integer   c const [inline]
 

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

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

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

int16 getMaxModulus   [inline, static]
 

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

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

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

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

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

Element& invin Element   x const [inline]
 

bool isOne const Element   x const [inline]
 

bool isZero const Element   x const [inline]
 

Modular const Modular< int16 > &    mf [inline]
 

Modular int    value,
int    exp = 1
[inline]
 

Modular   [inline]
 

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

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

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

Element& negin Element   x const [inline]
 

const Modular& operator= const Modular< int16 > &    F [inline]
 

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

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

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

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

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

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


Friends And Related Function Documentation

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

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

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


Member Data Documentation

int16 modulus [protected]
 

double modulusinv [protected]
 


Generated on Mon Jun 20 09:16:55 2005 for linbox by doxygen1.2.18