The JAS software library contains at the moment of the following packages. The relations and dependencies between the packages are shown in figure 1.
RingElem and RingFactory.
BigRational, BigInteger,
ModInteger, BigDecimal or
BigComplex.
GenPolynomial, GenSolvablePolynomial,
GenWordPolynomial and others such as
AlgebraicNumber and a polynomial parser
GenPolynomialTokenizer.
GenVector or GenMatrix.
ReductionSeq, GroebnerBaseAbstract,
GroebnerBaseSeq, GroebnerBaseParallel and
GroebnerBaseDistributedHybridEC. There are also Gröbner
bases in polynomial rings over principal ideal domains and Euclidean
domains, so called D- and E-Gröbner bases,
e.g. EGroebnerBaseSeq. New are Gröbner bases in
free non-commutative polynomial rings over (skew) fields,
see WordGroebnerBaseSeq.
ModGroebnerBase or SolvableSyzygy.
Ideal
or SolvableIdeal. Comprehensive Gröbner bases for
polynomial rings over parameter rings are contained in class
ComprehensiveGroebnerBaseSeq. Latest additions are
zero and arbitrary dimensional radical-, irreducible-, prime- and
primary-decomposition implemented in class Ideal.
GreatestCommonDivisor, the abstract class
GreatestCommonDivisorAbstract and various
implementations, e.g. polynomial remainder sequences and modular
algorithms. The package now contains factorization algorithms for
univariate polynomials over several coefficient rings: modulo primes
in class FactorModular, over integers in class
FactorInteger, over rational numbers in class
FactorRational and over algebraic numbers in class
FactorAlgebraic<C>.
PseudoReduction, PseudoReductionSeq and
greatest common divisors computation on coefficients
GroebnerBasePseudoSeq. Multiplicative sets of
polynomials with several simplifications, e.g. maintaining co-prime
factors or co-prime and squarefree factors, are contained in classes
MultiplicativeSet, MultiplicativeSetCoPrime
or MultiplicativeSetSquarefree. Also contained are
Gröbner bases for polynomial rings over regular rings (direct
products of fields or integral domains) in
RGroebnerBaseSeq and RGroebnerBasePseudoSeq.
RealRoots, the abstract class
RealRootsAbstract and at the moment of a single
implementation based on Sturm sequences RealRootsSturm.
The package further contains an implementation for real algebraic numbers
RealAlgebraicNumber with a corresponding factory
RealAlgebraicRing.
For complex root isolation there are ComplexRoots interface,
ComplexRootsAbstract and ComplexRootsSturm classes.
The implementation provides an exact infallible method which follows
the numeric method of Wilf. It uses Sturm sequences following the
Routh-Hurwitz Method to count the number of complex roots within a
rectangle in the complex plane.
There is also an implementation for complex algebraic numbers
ComplexAlgebraicNumber with a corresponding factory
ComplexAlgebraicRing.
FactorRealAlgebraic.
UnivPowerSeries and MultiVarPowerSeries.
There is an initial implementation of Mora's tangent cone reduction algorithm
in class ReductionSeq and a standard bases computation in
StandardBaseSeq with method STD().
ElementaryIntegration with method
integrate().
ThreadPool, DistThreadPool or
DistHashTable. Part of this package has become obsolete
with JDK 1.5.
FDUtil.
Further, methods for common divisors are included, but not yet
finished.
Figure 1: Package and component structure overview
Last modified: Mon Mar 28 23:49:24 CEST 2016