Modules | Files | Data Structures

LinBox rings, ring wrappers, ring construction tools. More...


 LinBox integer representation and operations.


file  ring/archetype.h
 Specification and archetypic instance for the ring interface.
file  givaro-polynomial.h
file  modular.h
 A Givaro::Modular ring is a representations of Z/mZ.
file  ntl-lzz_pEX.h
file  ntl-lzz_pX.h
file  ntl-ZZ_p.h

Data Structures

class  RingAbstract
 Abstract ring base class. More...
class  RingArchetype
 specification and archetypic instance for the ring interfaceThe RingArchetype and its encapsulated element class contain pointers to the RingAbstract and its encapsulated ring element, respectively. More...
class  RingEnvelope< Field >
 implement the ring archetype to minimize code bloat. More...
class  GivPolynomialRing< Domain, StorageTag >
 Polynomials. More...
class  NTL_ZZ
 the integer ring. More...
struct  NTL_PID_zz_p
 extend Wrapper of zz_p from NTL. More...
class  Modular< Ints >
 Ring of elements modulo some power of two. More...

Detailed Description

LinBox rings, ring wrappers, ring construction tools.

LinBox ring classes implement the BasicRing concept, which has the same members as the field concept. The difference is that some functions have different semantics. Specifically, inv and div are partial functions.

Some ring classes extend BasicRing:

The PIR concept (principal ideal ring) has, beyond BasicRing, gcd(g, a, b), g = (a,b), greatest common divisor of a, b. gcd(g, s, a, b), g = (a,b) = sa modulo b. s < b/g. gcd(g, s, t, a, b), g = (a,b) = sa + tb, s < b/g, t < a/g. gcd(g, s, t, u, v, a, b), (a,b) = g = sa + tb, u = a/g, v = b/g. gcdin(g, a), g = (g,a) lcm(), isUnit(), isZeroDivisor().

The PID concept (principal ideal domain) has the same members as the PIR concept, but it is promised that there are no zero divisors.

The LocalPIR concept has the members of PIR, but there is a unique prime ideal. Some algorithms exploit this.

Local2_32 exploits a few additional functions and the type Exponent. This concept could be used for other small rings extending tiny fields as well.

Example of BasicRing: Givaro::Modular<int32_t> when the modulus may be non-prime. Example of PIR: PIRModular Example of PID: PIDInteger. Example of LocalPIR: Local2_32.