Summary of algorithms from the Gröbner bases book and corresponding JAS classes and methods.
The JAS base package edu.jas name is omitted in the
following table.
A short explanation of code organization with interfaces and several implementing classes
can be found in the API guide.
| GB book algorithm | JAS interfaces, classes and methods | remarks | 
0.1 DIVINT | 
arith.BigInteger.divideAndRemainder
 | 
facade for java.math.BigInteger.divideAndRemainder
 | 
2.1 DIV | 
structure.MonoidElem.divide
and 
structure.MonoidElem.remainder
 | 
all classes which implement this interface | 
2.2 DIVPOL | 
poly.GenPolynomial.divideAndRemainder
 | 
for univariate polynomials over fields | 
2.3 EXTEUC | 
poly.GenPolynomial.egcd
 | 
for univariate polynomials over fields | 
3.1 LINDEP | 
not implemented
 | 
|
3.2 EXCHANGE | 
not implemented
 | 
|
4.1 EQUIV | 
structure.Residue.equals
or 
application.Residue.equals
 | 
arbitrary residue class rings and residue class rings modulo polynomial ideals | 
5.1 REDPOL | 
gb.Reduction.normalform,
gb.ReductionAbstract.normalform,
gb.ReductionSeq.normalform
 | 
interface and sequential computation class, the method exists also for
    polynomial lists and with a reduction recording matrix (this is exactly
    REDPOL)
 | 
5.2 REDUCTION | 
gb.Reduction.irreducibleSet
 | 
|
5.3 GRÖBNERTEST | 
gb.GroebnerBase.isGB
 | 
provided by all classes which implement this interface | 
5.4 GRÖBNER | 
not implemented | |
5.5 REDGRÖBNER | 
not implemented | |
5.6 GRÖBNERNEW1 | 
gb.GroebnerBase.GB
 | 
provided by all classes which implement the interface | 
5.7 UPDATE, 5.8 GRÖBNERNEW2 | 
not implemented | |
5.9 EXTGRÖBNER | 
gb.GroebnerBase.extGB
 | 
provided by some classes which implement the interface | 
6.1 ELIMINATION | 
application.Ideal.eliminate
 | 
the version with the String[] parameter only computes a Gröbner base wrt. the 
respective elimination order
 | 
6.2 PROPER | 
application.Ideal.isONE
 | 
proper ideal test is ! id.isONE()
 | 
6.3 INTERSECTION | 
application.Ideal.intersect
 | 
for lists of ideals a simple iterative algorithm is used and for a pair of ideals it is the same algorithm | 
6.4 CRT | 
not implemented
 | 
|
6.5 IDEALDIV1 | 
application.Ideal.quotient
 | 
for an ideal a simple iterative algorithm is used and for one polynomial it is an algorithm without computing syzygies | 
6.6 IDEALDIV2 | 
application.Ideal.infiniteQuotientRab
and 
application.Ideal.infiniteQuotientExponent
 | 
the exponent is computed in a separate step at the moment | 
6.7 RADICALMEMTEST | 
application.Ideal.isRadicalMember
 | 
the exponent is not computed | 
6.8 SUBRINGMEMTEST | 
not implemented
 | 
|
8.1 PREDEC | 
application.Ideal.zeroDimDecomposition
 | 
univariate polynomials of minimal degree in the ideal are irreducible 
and not a power of an irreducible polynomial as specified in PREDEC
 | 
8.2 ZRADICALTEST | 
application.Ideal.isZeroDimRadical
 | 
will also work in characteritsic p > 0 | 
8.3 ZRADICAL | 
application.Ideal.radical
 | 
ZRADICAL is containted as special case,
see also application.Ideal.zeroDimRadicalDecomposition
 | 
8.4 NORMPRIMDEC | 
application.Ideal.zeroDimPrimaryDecomposition
 | 
contains all preprocessing steps, see ZPRIMDEC
 | 
8.5 NORMPOS | 
application.Ideal.normalPositionFor
 | 
one step of NORMPOS as explained for the modified algorithm on page 383ff
 | 
8.6 ZPRIMDEC | 
application.Ideal.zeroDimPrimaryDecomposition
 | 
returns a list of PrimaryComponent containers
 | 
8.7 CONT | 
application.Ideal.contraction
 | 
more complicated since the permutation of variables must be considered also,
see application.Ideal.permContraction,
the polynomial f is returned in the IdealWithUniv container
 | 
8.8 EXTCONT | 
application.Ideal.extension
 | 
only EXT, the combination EXTCONT is not implemented explicitly, 
the polynomial f is returned in the IdealWithUniv container
 | 
8.9 RADICAL | 
application.Ideal.radical
 | 
for ideals with arbitrary dimension | 
8.10 PRIMDEC | 
application.Ideal.primaryDecomposition
 | 
for ideals with arbitrary dimension | 
8.11 VARSIGN | 
root.RootUtil.signVar
 | 
|
8.12 STURMSEQ | 
root.RealRootsSturm.sturmSequence
 | 
|
8.13 ISOLATE | 
root.RealRoots.realRoots
 | 
could also be used for real root isolations not using Sturm sequences | 
8.14 ISOREC | 
root.RealRootsSturm.realRoots
 | 
interval bi-section until a root is isolated | 
8.15 ISOREFINE | 
root.RealRoots.refineInterval
 | 
also for real root isolations not using Sturm sequences | 
8.16 SQUEEZE | 
root.RealRoots.invariantMagnitudeInterval
 | 
see also 
root.RealRoots.realMagnitude
 | 
8.17 REALZEROS | 
application.PolyUtilApp.realAlgebraicRoots
 | 
different algorithm and different result data structure with RealAlgebraicNumbers
 | 
9.1 REDTERMS | 
not implemented
 | 
|
9.2 UNIVPOL | 
application.Ideal.constructUnivariate
 | 
|
9.3 CONVGRÖBNER | 
not implemented
 | 
|
9.4 LMINTERM | 
not implemented
 | 
|
9.5 STRCONST | 
not implemented
 | 
|
9.6 DIMENSION | 
application.Ideal.dimension
 | 
|
10.1 D-GRÖBNER | 
gb.DGroebnerBaseSeq.GB
and 
gb.EGroebnerBaseSeq.GB
 | 
|
Last modified: Thu Jun 17 23:09:17 CEST 2010