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.
JAS also contains improved versions of the algorithms which may be located through the links.
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

adapter 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

But see
vector.LinAlg. rowEchelonForm and other classes
in the vector package.

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 
gb.GroebnerBase.GB
with
gb.OrderedMinPairlist

provided by all classes which implement the interface and allow the selection of the pairlist in a constructor 
5.6 GRÖBNERNEW1 
gb.GroebnerBase.GB
with
gb.OrderedPairlist

provided by all classes which implement the interface and allow the selection of the pairlist in a constructor 
5.7 UPDATE , 5.8 GRÖBNERNEW2 
gb.GroebnerBase.GB
with
gb.OrderedSyzPairlist

provided by all classes which implement the interface and allow the selection of the pairlist in a constructor 
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 computes a Gröbner base wrt. the
corresponding 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 
gbufd.PolyGBUtil.chineseRemainderTheorem


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 
gbufd.PolyGBUtil.subRingAndMember


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 bisection 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 
gbufd.GroebnerBaseFGLM.redTerms


9.2 UNIVPOL 
application.Ideal. constructUnivariate


9.3 CONVGRÖBNER 
gbufd.GroebnerBaseFGLM. convGroebnerToLex

See also gbufd.GroebnerBaseFGLM.GB . It computes a Gröbner base with respect to a graded term order and then uses FGLM to convert to a lexicographic term order.
See also gbufd.GroebnerBaseWalk.GB . It computes a Gröbner base with respect to a term order t1 and then uses Gröbner Walk to convert to a GB with term order t2 .

9.4 LMINTERM 
gbufd.GroebnerBaseFGLM.lMinterm


9.5 STRCONST 
not implemented


9.6 DIMENSION 
application.Ideal.dimension


10.1 DGRÖBNER 
gb.DGroebnerBaseSeq.GB
and
gb.EGroebnerBaseSeq.GB

Last modified: Thu Jul 8 17:47:59 CEST 2021