linbox
|
LinBox rings, ring wrappers, ring construction tools. More...
Modules | |
Integers | |
LinBox integer representation and operations. | |
Polynomials | |
NO DOC YET. | |
Files | |
file | ring/archetype.h |
Specification and archetypic instance for the ring interface. | |
file | modular.h |
A Givaro::Modular ring is a representations of Z/mZ . | |
file | ntl-lzz_pex.h |
NO DOC. | |
file | ntl-lzz_px.h |
NO DOC. | |
file | ntl-zz_p.h |
NO DOC. | |
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< Ring > |
implement the ring archetype to minimize code bloat. More... | |
class | NTL_ZZ |
the integer ring. More... | |
struct | NTL_PID_zz_p |
extend Wrapper of zz_p from NTL. More... | |
class | PolynomialRing< BaseRing, StorageTag > |
Polynomials. More... | |
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.