Java Algebra System (JAS) Packages

The JAS software library contains at the moment of the following packages. The relations and dependencies between the packages are shown in figure 1.

contains interfaces for the most general algebraic structures like RingElem and RingFactory.
contains classes for arithmetic in the basic coefficient rings like BigRational, BigInteger, ModInteger, BigDecimal or BigComplex.
contains classes for commutative polynomial, solvable polynomial and free non-commutative polynomial arithmetic like GenPolynomial, GenSolvablePolynomial, GenWordPolynomial and others such as AlgebraicNumber and a polynomial parser GenPolynomialTokenizer.
contains classes for vectors and lists of polynomials and solvable polynomials like GenVector or GenMatrix.
contains classes for polynomial and solvable polynomial reduction, Gröbner bases over fields and ideal arithmetic as well as thread parallel and distributed versions of Buchbergers algorithm like 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.
contains classes for module Gröbner bases and syzygies over polynomials and solvable polynomials like ModGroebnerBase or SolvableSyzygy.
contains classes with applications of Gröbner bases such as ideal intersections and ideal quotients implemented in 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.
contains classes for unique factorization domains. Like the interface 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>.
contains classes for Gröbner base computation using classes from the edu.jas.ufd package for polynomial coefficients. The main classes deal with pseudo reduction 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.
contains classes for real root computations. Like the interface 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.
contains classes for factorization in structures used in root computation, for example FactorRealAlgebraic.
contains univariate and multivariate power series arithmetic in classes 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().
contains methods for the elementary integration of univariate rational functions. The main class is ElementaryIntegration with method integrate().
contains further utilities for parallel and distributed computations like ThreadPool, DistThreadPool or DistHashTable. Part of this package has become obsolete with JDK 1.5.
contains classes for solvable polynomials rings as (non-unique) factorization domains. There are methods for polynomial pseudo remainder computation over Ore domains in class FDUtil. Further, methods for common divisors are included, but not yet finished.

Static package and component structure overview
Figure 1: Package and component structure overview

Heinz Kredel

Last modified: Mon Mar 28 23:49:24 CEST 2016