Implementation classes for the ideal2 module. There are classes with names beginning with "NT" (e.g.,
NTConstant). The "NT" stands for "non-trivial". See the documentation for each class for the interpretation of non-trivial, but in general the interpretation is that an element of that class cannot be represented an an element of a "simpler" class. For example, a non-trivial primitive power is a power of a primitive in which the exponent is at least 2, as such an element cannot be represented as a primitive. (In contrast, a primitive power with exponent 1 is equivalent to the primitive power.) The idea is to have a canonical representation of each element. Most of the arithmetic logic is contained in the class
CommonIdealFactory. A number of additional utility classes are defined simply to help the factory (e.g.,
ClassDescriptionAn implementation of
IdealFactory.Comparator for ideal numeric expressions.A constant which is not 1.A non-trivial monic ("NTMonic") is the product of at least two
PrimitivePowers.A non-trivial primitive power represents a
Primitiveexpression raised to some concrete integer exponent; the exponent is at least 2.A nontrivial
RationalExpression.A numeric primitive expression---one which is to be considered as an atomic "variable" when used in other numeric expressions.Empty monic: equivalent to 1.