[][src]Crate abstalg

Structs

ApproxFloats

The field of real numbers approximated by a primitive floating point number. NaN and infinity values are not considered as members, so all operations resulting one of these will panic. The lattice order is the normal total order, which is not bounded.

CheckedInts

The set of integers whose elements are stored in a primitive signed integer type. This structure is functionally equivalent to the set of all integers, but some operations are going to panic if the mathematical result cannot be represented in the primitive type. The lattice order is the normal total order, which is not bounded.

DivisibilityLattice

The lattice of divisibility of an Euclidean domain where the elements are the unique representatives of associate classes, the meet is the greatest common divisor, the join is the least common multiple, the largest element is zero and the least element is one.

Integers

The set of integers whose elements are BigInt objects. The ring operations are the normal ones. The lattice order is the normal total order.

ModularInts

The ring of signed integers modulo 2^n whose elements are stored in a primitive signed integer type. The ring operations on these sets wrap around. This structure is equivalent to the quotient ring of the set of integers modulo 2^n, but its implementation is more efficient.

Polynomials

The ring of polynomials over a base ring or field where each element is represented as a vector whose last element, the leading coefficient (if any) must be non-zero. This means that the empty vector is the zero element, and every polynomial has a unique representation.

QuotientField

A quotient field of an Euclidean domain by a principal ideal generated by an irreducible (prime) element.

QuotientRing

A quotient ring of an Euclidean domain by a principal ideal.

Traits

BoundedLattice

A lattice that has a largest and smallest element.

DistributiveLattice

A lattice that is distributive. No new methods are added.

Domain

An arbitrary set of elements where not all representable elements are members of the set, but every member is uniquely represented, thus they can be compered using the == operator.

EuclideanDomain

An Euclidean domain is an integral domain where the Euclidean algorithm can be implemented. Typical examples are the rings of integers and polynomials.

Field

A field is a commutative ring with identity where each non-zero element has a multiplicative inverse. Typical examples are the real, complex and rational numbers, and finite fields constructed from an Euclidean domain and one of its irreducible elements. All fields are Euclidean domains themselves, with a rather trivial structure.

IntegralDomain

An integral domain is a commutative unitary ring in which the product of non-zero elements are non-zero. This trait not add any new operations, just marks the properties of the ring. A typical examples are the integers, and the ring of polynomials with integer coefficients, which is not an Euclidean domain.

Lattice

A set where the join and meet of elements can be calculated. Typical examples are the total orders of integers or the divisibility relation on the associate classes of an Euclidean domain.

UnitaryRing

A ring with an identity element (not necessarily commutative). Typical examples are the rings of rectangular matrices, integers and polynomials. Some operations may panic (for example, the underlying type cannot represent the real result).