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

linbox/field


Detailed Description

LinBox fields, field wrappers, field construction tools.

LinBox fields implement the concept which is specified in the field archetype.

Some implement a basic ring concept rather than a field (inv and div are partial functions). Ring representations with additional functions are also found in the linbox/ring directory.


Classes

class  FieldAbstract
 field base class. More...

class  FieldArchetype
 field specification and archetypical instance. More...

class  FieldEnvelope
 Derived class used to implement the field archetype. More...

struct  GivaroField
 give LinBox fields an allure of Givaro Fields More...

class  GivaroGfq
class  GivaroMontg
 wrapper of Givaro's Montgomery<Std32>. More...

class  GivaroZpz
 wrapper of Givaro's ZpzDom. More...

class  Hom
 map element of source ring(field) to target ring More...

class  LidiaGfq
 defines the Galois Field GF(pk). More...

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

class  ModularBalance< int >
 template <> More...

class  Modular< int32 >
 template <> More...

class  Modular< int8 >
 Specialization of Modular to signed 8 bit element type with efficient dot product. More...

class  Modular< double >
 template <> More...

class  Modular< int32 >
 template <> More...

class  Modular< int16 >
 Specialization of Modular to short element type with efficient dot product. More...

class  UnparametricRandIter< NTL::GF2E >
 template<> More...

struct  NTL_zz_p
 long ints modulo a positive integer. More...

struct  NTL_PID_zz_p
 extend Wrapper of zz_p from NTL. Add PID functions More...

class  ParamFuzzy
class  PIR_ntl_ZZ_p
 extend Wrapper of ZZ_p from NTL. Add PIR functions More...


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 & LinBox::UnparametricField< NTL::RR >::init (NTL::RR &x, const integer &y) const
template<> integerLinBox::UnparametricField< NTL::RR >::convert (integer &x, const NTL::RR &y) const
template<> NTL::RR & LinBox::UnparametricField< NTL::RR >::inv (NTL::RR &x, const NTL::RR &y) const
template<> bool LinBox::UnparametricField< NTL::RR >::isZero (const NTL::RR &x) const
template<> bool LinBox::UnparametricField< NTL::RR >::isOne (const NTL::RR &x) const
template<> NTL::RR & LinBox::UnparametricField< NTL::RR >::invin (NTL::RR &x) const
template<> std::ostream & LinBox::UnparametricField< NTL::RR >::write (std::ostream &os) const
template<> NTL::RR & LinBox::UnparametricRandIter< NTL::RR >::random (NTL::RR &elt) const

NTL_ZZ_p

Arbitrary precision integers modulus a positive integer.

While NTL allows any integer to serve as the modulus, only prime moduli yield fields. Therefore, while arthmetic operations may be valid for any modulus, only prime moduli are supported in this implementation. The primality of the modulus will not be checked, so it is the programmer's responsibility to supply a prime modulus. These specializations allow the UnparametricField} template class to be used to wrap NTL's { ZZ} class as a LinBox field.

template<> NTL::ZZ_p & LinBox::UnparametricField< NTL::ZZ_p >::init (NTL::ZZ_p &x, const integer &y) const
 Initialization of field element from an integer. Behaves like C++ allocator construct. This function assumes the output field element x has already been constructed, but that it is not already initialized. This done by converting to a std::string : inefficient but correct.


Function Documentation

NTL::RR& UnparametricField< NTL::RR >::init NTL::RR &  x,
const integer y
const
 

Initialization of field element from an integer. Behaves like C++ allocator construct. This function assumes the output field element x has already been constructed, but that it is not already initialized. For now, this is done by converting the integer type to a C++ long and then to the element type through the use of static cast and NTL's to_RR function. This, of course, assumes such static casts are possible. This function should be changed in the future to avoid using long.

Returns:
reference to field element.
Parameters:
x field element to contain output (reference returned).
y integer.

NTL::ZZ_p& UnparametricField< NTL::ZZ_p >::init NTL::ZZ_p &  x,
const integer y
const
 

Initialization of field element from an integer. Behaves like C++ allocator construct. This function assumes the output field element x has already been constructed, but that it is not already initialized. This done by converting to a std::string : inefficient but correct.

Returns:
reference to field element.
Parameters:
x field element to contain output (reference returned).
y integer.

integer& UnparametricField< NTL::RR >::convert integer x,
const NTL::RR &  y
const
 

Conversion of field element to an integer. This function assumes the output field element x has already been constructed, but that it is not already initialized. For now, this is done by converting the element type to a C++ long and then to the integer type through the use of static cast and NTL's to_long function. This, of course, assumes such static casts are possible. This function should be changed in the future to avoid using long.

Returns:
reference to integer.
Parameters:
x reference to integer to contain output (reference returned).
y constant reference to field element.

NTL::RR& UnparametricField< NTL::RR >::inv NTL::RR &  x,
const NTL::RR &  y
const
 

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

Returns:
reference to x.
Parameters:
x field element (reference returned).
y field element.

bool UnparametricField< NTL::RR >::isZero const NTL::RR &  x  )  const
 

Zero equality. 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:
x field element.

bool UnparametricField< NTL::RR >::isOne const NTL::RR &  x  )  const
 

One equality. 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:
x field element.

NTL::RR& UnparametricField< NTL::RR >::invin NTL::RR &  x  )  const
 

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

Returns:
reference to x.
Parameters:
x field element (reference returned).

std::ostream& UnparametricField< NTL::RR >::write std::ostream &  os  )  const
 

Print field.

Returns:
output stream to which field is written.
Parameters:
os output stream to which field is written.

NTL::RR& UnparametricRandIter< NTL::RR >::random NTL::RR &  elt  )  const
 

Random field element creator. This returns a random field element from the information supplied at the creation of the generator. This generator uses the built-in C++ random number generator instead of NTL's random function because the NTL function does not allow as much control over the sampling size as the generic LinBox template. This specialization is included only to allow conversion to an NTL object.

Returns:
random field element


Generated on Thu Feb 8 22:32:56 2007 for linbox by doxygen 1.3.4