linbox
Public Member Functions | Static Public Member Functions
PIR_ntl_ZZ_p Class Reference

extend Wrapper of ZZ_p from NTL. More...

#include <PIR-ntl-ZZ_p.h>

Inherits UnparametricField< K >.

Public Types

Common Object Interface for a LinBox Field.

These methods and member types are required of all LinBox fields.

See FieldArchetype for detailed specifications.

typedef UnparametricRandIter< K > RandIter
 Type of random field element generators.

Public Member Functions

template<>
NTL::zz_p & inv (NTL::zz_p &x, const NTL::zz_p &y) const
template<>
NTL::zz_p & invin (NTL::zz_p &x) const
template<>
bool isZero (const NTL::zz_p &x) const
template<>
bool isOne (const NTL::zz_p &x) const
Field Object Basics.
Element & inv (Element &x, const Element &y) const
 c := characteristic of this field (zero or prime).
Element & invin (Element &x) const
 c := characteristic of this field (zero or prime).
std::ostream & write (std::ostream &os) const
 c := characteristic of this field (zero or prime).
std::ostream & write (std::ostream &os, const Element &p) const
 c := characteristic of this field (zero or prime).
bool isZero (const Element &x) const
 c := characteristic of this field (zero or prime).
bool isOne (const Element &x) const
 c := characteristic of this field (zero or prime).
long unsigned int characteristic (long unsigned int &p) const
 c := characteristic of this field (zero or prime).
long unsigned int characteristic () const
 c := characteristic of this field (zero or prime).
integercharacteristic (integer &c) const
 c := characteristic of this field (zero or prime).
long unsigned int cardinality () const
 c := characteristic of this field (zero or prime).
integercardinality (integer &c) const
 c := cardinality of this field (-1 if infinite).
template<typename Src >
Element & init (Element &x, const Src &s) const
 c := characteristic of this field (zero or prime).
std::istream & read (std::istream &is, Element &x) const
 c := characteristic of this field (zero or prime).
std::istream & read (std::istream &is) const
 c := characteristic of this field (zero or prime).
template<typename T >
T & convert (T &x, const Element &y) const
 c := characteristic of this field (zero or prime).
class RR.

Rational number field.

This field is provided as a convenience in a few places. Use with caution because expression swell.

This specialization allows the UnparametricField template class to be used to wrap NTL's RR class as a LinBox field.

template<>
NTL::RR & inv (NTL::RR &x, const NTL::RR &y) const
template<>
NTL::RR & invin (NTL::RR &x) const
template<>
bool isZero (const NTL::RR &x) const
template<>
bool isOne (const NTL::RR &x) const
template<>
NTL::ZZ_p & inv (NTL::ZZ_p &x, const NTL::ZZ_p &y) const
template<>
NTL::ZZ_p & invin (NTL::ZZ_p &x) const
template<>
bool isZero (const NTL::ZZ_p &x) const
template<>
bool isOne (const NTL::ZZ_p &x) const
Implementation-Specific Methods.

These methods are not required of all LinBox fields and are included only for the implementation of this field template.

const K & operator() (void) const
 Constant access operator.
K & operator() (void)
 Access operator.

Static Public Member Functions

template<class Element2 >
static Element & init (Element &x, const Element2 &y)
 Init x from y.
static Element & init (Element &x, const Element &y)
 Init from a NTL::ZZ_p.
static Element & init (Element &x, const integer &y)
 I don't know how to init from integer.
static integerconvert (integer &x, const Element &y)
 Convert y to an Element.
static Element & assign (Element &x, const Element &y)
 x = y.
static bool areEqual (const Element &x, const Element &y)
 Test if x == y.
static bool isZero (const Element &x)
 Test if x == 0.
static bool isOne (const Element &x)
 Test if x == 1.
static Element & add (Element &x, const Element &y, const Element &z)
 return x = y + z
static Element & sub (Element &x, const Element &y, const Element &z)
 return x = y - z
template<class Int >
static Element & mul (Element &x, const Element &y, const Int &z)
 return x = y * z
static Element & div (Element &x, const Element &y, const Element &z)
 If exists a, such that a * z =y, return x = one of them.
static Element & inv (Element &x, const Element &y)
 If y is a unit, return x = 1 / y, otherwsie, throw an exception.
static Element & neg (Element &x, const Element &y)
 return x = -y;
template<class Int >
static Element & axpy (Element &r, const Element &a, const Int &x, const Element &y)
 return r = a x + y
static Element & addin (Element &x, const Element &y)
 return x += y;
static Element & subin (Element &x, const Element &y)
 return x -= y;
template<class Int >
static Element & mulin (Element &x, const Int &y)
 return x *= y;
static Element & divin (Element &x, const Element &y)
 If y divides x, return x /= y, otherwise throw an exception.
static Element & invin (Element &x)
 If x is a unit, x = 1 / x, otherwise, throw an exception.
static Element & negin (Element &x)
 return x = -x;
template<class Int >
static Element & axpyin (Element &r, const Element &a, const Int &x)
 return r += a x
static std::ostream & write (std::ostream &out, const Element &y)
 out << y;
static std::istream & read (std::istream &in, Element &x)
 read x from istream in
static bool isUnit (const Element &x)
 some PIR function
static Element & gcd (Element &g, const Element &a, const Element &b)
 return g = gcd (a, b)
static Element & gcdin (Element &g, const Element &b)
 return g = gcd (g, b)
static Element & xgcd (Element &g, Element &s, Element &t, const Element &a, const Element &b)
 g = gcd(a, b) = a*s + b*t.
static Element & dxgcd (Element &g, Element &s, Element &t, Element &a1, Element &b1, const Element &a, const Element &b)
 g = gcd(a, b) = a*s + b*t.
static bool isDivisor (const Element &a, const Element &b)
 Test if a | b.
static Element & normal (Element &a, const Element &b)
 a = normalization of b.

Detailed Description

extend Wrapper of ZZ_p from NTL.

Add PIR functions


Member Function Documentation

static Element& div ( Element &  x,
const Element &  y,
const Element &  z 
) [inline, static]

If exists a, such that a * z =y, return x = one of them.

Otherwise, throw an exception

static bool isUnit ( const Element &  x) [inline, static]

some PIR function

Test if x is a unit.

static Element& xgcd ( Element &  g,
Element &  s,
Element &  t,
const Element &  a,
const Element &  b 
) [inline, static]

g = gcd(a, b) = a*s + b*t.

and gcd (s, t) is a unit.

static Element& dxgcd ( Element &  g,
Element &  s,
Element &  t,
Element &  a1,
Element &  b1,
const Element &  a,
const Element &  b 
) [inline, static]

g = gcd(a, b) = a*s + b*t.

and gcd (s, t) is a unit. s * a1 + t * b1 = a unit.

NTL::zz_p & inv ( NTL::zz_p &  x,
const NTL::zz_p &  y 
) const [inherited]

x = 1 / y This function assumes both field elements have already been constructed and initialized.

Returns:
reference to x.
Parameters:
xfield element (reference returned).
yfield element.
NTL::RR & inv ( NTL::RR &  x,
const NTL::RR &  y 
) const [inherited]

x = 1 / y This function assumes both field elements have already been constructed and initialized.

Returns:
reference to x.
Parameters:
xfield element (reference returned).
yfield element.
NTL::ZZ_p & inv ( NTL::ZZ_p &  x,
const NTL::ZZ_p &  y 
) const [inherited]

x = 1 / y This function assumes both field elements have already been constructed and initialized.

Returns:
reference to x.
Parameters:
xfield element (reference returned).
yfield element.
NTL::zz_p & invin ( NTL::zz_p &  x) const [inherited]

x = 1 / x This function assumes both field elements have already been constructed and initialized.

Returns:
reference to x.
Parameters:
xfield element (reference returned).
NTL::RR & invin ( NTL::RR &  x) const [inherited]

x = 1 / x This function assumes both field elements have already been constructed and initialized.

Returns:
reference to x.
Parameters:
xfield element (reference returned).
NTL::ZZ_p & invin ( NTL::ZZ_p &  x) const [inherited]

x = 1 / x This function assumes both field elements have already been constructed and initialized.

Returns:
reference to x.
Parameters:
xfield element (reference returned).
bool isZero ( const NTL::zz_p &  x) const [inherited]

Test if field element is equal to zero. This function assumes the field element has already been constructed and initialized. In this specialization, NTL's IsZero function is called.

Returns:
boolean true if equals zero, false if not.
Parameters:
xfield element.
bool isZero ( const NTL::RR &  x) const [inherited]

Test if field element is equal to zero. This function assumes the field element has already been constructed and initialized. In this specialization, NTL's IsZero function is called.

Returns:
boolean true if equals zero, false if not.
Parameters:
xfield element.
bool isZero ( const NTL::ZZ_p &  x) const [inherited]

Test if field element is equal to zero. This function assumes the field element has already been constructed and initialized. In this specialization, NTL's IsZero function is called.

Returns:
boolean true if equals zero, false if not.
Parameters:
xfield element.
bool isOne ( const NTL::zz_p &  x) const [inherited]

Test if field element is equal to one. This function assumes the field element has already been constructed and initialized. In this specialization, NTL's IsOne function is called.

Returns:
boolean true if equals one, false if not.
Parameters:
xfield element.
bool isOne ( const NTL::RR &  x) const [inherited]

Test if field element is equal to one. This function assumes the field element has already been constructed and initialized. In this specialization, NTL's IsOne function is called.

Returns:
boolean true if equals one, false if not.
Parameters:
xfield element.
bool isOne ( const NTL::ZZ_p &  x) const [inherited]

Test if field element is equal to one. This function assumes the field element has already been constructed and initialized. In this specialization, NTL's IsOne function is called.

Returns:
boolean true if equals one, false if not.
Parameters:
xfield element.
const K& operator() ( void  ) const [inline, inherited]

Constant access operator.

Returns:
constant reference to field object
K& operator() ( void  ) [inline, inherited]

Access operator.

Returns:
reference to field object

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