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

Modular< int > Class Template Reference

#include <modular-balance-int.h>

Inheritance diagram for Modular< int >:

FieldInterface FieldInterface PIRModular< int > List of all members.

Detailed Description

template<>
class LinBox::Modular< int >

Specialization of Modular to int 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.

For some uses this is the most efficient field for primes in the range from half word to 2^30.

Requires: Modulus < 2^30. Intended use: 2^15 < prime modulus < 2^30.


Public Types

typedef int Element
typedef ModularRandIter< int > RandIter
typedef int Element
typedef ModularRandIter< int > RandIter

Public Methods

 Modular ()
 Modular (int value)
 Modular (const Modular< int > &mf)
const Modularoperator= (const Modular< int > &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
 Modular ()
 Modular (int value)
 Modular (const Modular< int > &mf)
const Modularoperator= (const Modular< int > &F)
integercardinality (integer &c) const
integercharacteristic (integer &c) const
integerconvert (integer &x, const Element &y) const
double & convert (double &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 Element1> Elementinit (Element &x, const Element1 &y) const
Elementinit (Element &x, const double &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

Protected Attributes

int modulus
int halfmodulus
int nhalfmodulus
double modulusinv
int _two64

Friends

class FieldAXPY< Modular< int > >
class DotProductDomain< Modular< int > >
class MVProductDomain< Modular< int > >


Member Typedef Documentation

typedef int Element
 

Reimplemented in PIRModular< int >.

typedef int Element
 

Reimplemented in PIRModular< int >.

typedef ModularRandIter<int> RandIter
 

Reimplemented in PIRModular< int >.

typedef ModularRandIter<int> RandIter
 

Reimplemented in PIRModular< int >.


Member Function Documentation

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

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

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

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

bool areEqual const 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& assign Element   x,
const Element   y
const [inline]
 

Element& axpy Element   r,
const Element   a,
const 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]
 

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

integer& cardinality integer   c const [inline]
 

integer& cardinality integer   c const [inline]
 

integer& characteristic integer   c const [inline]
 

integer& characteristic integer   c const [inline]
 

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

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

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

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

Reimplemented in PIRModular< int >.

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

Reimplemented in PIRModular< int >.

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

Reimplemented in PIRModular< int >.

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

Reimplemented in PIRModular< int >.

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 double &    y
const [inline]
 

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

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& inv Element   x,
const Element   y
const [inline]
 

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

Element& invin Element   x const [inline]
 

Element& invin Element   x const [inline]
 

bool isOne const Element   x const [inline]
 

bool isOne const Element   x const [inline]
 

bool isZero const Element   x const [inline]
 

bool isZero const Element   x const [inline]
 

Modular const Modular< int > &    mf [inline]
 

Modular int    value [inline]
 

Modular   [inline]
 

Modular const Modular< int > &    mf [inline]
 

Modular int    value [inline]
 

Modular   [inline]
 

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

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

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

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

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

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

Element& negin Element   x const [inline]
 

Element& negin Element   x const [inline]
 

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

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

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

std::istream& read std::istream &    is [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& sub Element   x,
const Element   y,
const Element   z
const [inline]
 

Element& subin Element   x,
const Element   y
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]
 

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

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


Friends And Related Function Documentation

DotProductDomain< Modular< int > > [friend]
 

FieldAXPY< Modular< int > > [friend]
 

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


Member Data Documentation

int _two64 [protected]
 

int halfmodulus [protected]
 

int modulus [protected]
 

double modulusinv [protected]
 

int nhalfmodulus [protected]
 


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