linbox  1
Static Protected Member Functions
Local2_32 Struct Reference

Fast arithmetic mod 2^32, including gcd. More...

#include <local2_32.h>

Inherits UnparametricField< K >.

List of all members.

Static Protected Member Functions

static Element & HGCD (Element &g, Element &s, const Element &a, const Element &b)
 Half GCD g = gcd (a, b). exists t, such that: s * a + t * b = g. return g.

Additional Inherited Members

- Public Types inherited from UnparametricField< K >
typedef K Element
typedef UnparametricRandIter< K > RandIter
 Type of random field element generators.
- Public Member Functions inherited from UnparametricField< K >
template<>
NTL::zz_p & init (NTL::zz_p &x, const integer &y) const
template<>
integerconvert (integer &x, const NTL::zz_p &y) const
template<>
integercardinality (integer &c) const
template<>
integercharacteristic (integer &c) const
template<>
NTL::zz_p & inv (NTL::zz_p &x, const NTL::zz_p &y) const
template<>
bool isZero (const NTL::zz_p &x) const
template<>
bool isOne (const NTL::zz_p &x) const
template<>
NTL::zz_p & invin (NTL::zz_p &x) const
template<>
std::ostream & write (std::ostream &os) const
template<>
std::ostream & write (std::ostream &os) const
template<>
std::ostream & write (std::ostream &os) const
 UnparametricField (integer q=0, size_t e=1)
 UnparametricField (const UnparametricField &F)
 construct this field as copy of F.
 ~UnparametricField ()
const UnparametricField & operator= (const UnparametricField &F) const
Element & init (Element &x, const integer &y=0) const
 x := y. Caution: it is via cast to long. Good candidate for specialization.
integerconvert (integer &x, const Element &y) const
 x := y. Caution: it is via cast to long. Good candidate for specialization.
double & convert (double &x, const Element &y) const
 x := y. Caution: it is via cast to long. Good candidate for specialization. –dpritcha
Element & assign (Element &x, const Element &y) const
integercardinality (integer &c) const
 c := cardinality of this field (-1 if infinite).
integercharacteristic (integer &c) const
 c := characteristic of this field (zero or prime).
bool areEqual (const Element &x, const Element &y) const
 x == y
bool isZero (const Element &x) const
 x == 0
bool isOne (const Element &x) const
 x == 1
Element & add (Element &x, const Element &y, const Element &z) const
 x := y + z
Element & sub (Element &x, const Element &y, const Element &z) const
 x := y - z
Element & mul (Element &x, const Element &y, const Element &z) const
 x := y*z
Element & div (Element &x, const Element &y, const Element &z) const
 x := y/z
Element & neg (Element &x, const Element &y) const
 x := -y
Element & inv (Element &x, const Element &y) const
 x := 1/y
Element & axpy (Element &z, const Element &a, const Element &x, const Element &y) const
 z := a*x + y
Element & addin (Element &x, const Element &y) const
 x := x + y
Element & subin (Element &x, const Element &y) const
 x := x - y
Element & mulin (Element &x, const Element &y) const
 x := x*y
Element & divin (Element &x, const Element &y) const
 x := x/y
Element & negin (Element &x) const
 x := -x
Element & invin (Element &x) const
 x := 1/x
Element & axpyin (Element &y, const Element &a, const Element &x) const
 y := a*x + y
std::ostream & write (std::ostream &os) const
std::istream & read (std::istream &is) const
std::ostream & write (std::ostream &os, const Element &x) const
std::istream & read (std::istream &is, Element &x) const
 UnparametricField (const K &A)
 Default constructor.
const K & operator() (void) const
K & operator() (void)
template<>
NTL::RR & init (NTL::RR &x, const integer &y) const
template<>
integerconvert (integer &x, const NTL::RR &y) const
template<>
NTL::RR & inv (NTL::RR &x, const NTL::RR &y) const
template<>
bool isZero (const NTL::RR &x) const
template<>
bool isOne (const NTL::RR &x) const
template<>
NTL::RR & invin (NTL::RR &x) const
template<>
std::ostream & write (std::ostream &os) const
template<>
 UnparametricField (integer q, size_t e)
template<>
NTL::ZZ_p & init (NTL::ZZ_p &x, const integer &y) const
template<>
integerconvert (integer &x, const NTL::ZZ_p &y) const
template<>
integercardinality (integer &c) const
template<>
integercharacteristic (integer &c) const
template<>
NTL::ZZ_p & inv (NTL::ZZ_p &x, const NTL::ZZ_p &y) const
template<>
bool isZero (const NTL::ZZ_p &x) const
template<>
bool isOne (const NTL::ZZ_p &x) const
template<>
NTL::ZZ_p & invin (NTL::ZZ_p &x) const
template<>
std::ostream & write (std::ostream &os) const

Detailed Description

Fast arithmetic mod 2^32, including gcd.

Extend UnparametricField<uint32> which is a representation of Z_2^32. It is especially fast because it uses hardware arithmetic directly. This ring is a Local Principal Ideal Ring.

These needed PIR functions are added: gcdin(), isUnit(), also inv() is modified to work correctly. The type Exponent is added: more effective rep of the powers of 2, which are important because gcds are powers of 2). This entails some new versions of divin(), mulin(), isUnit().

Those are the function needed for the LocalSmith algorithm. Further appropriate PIR functions may be added later.


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