Package edu.jas.gb
Class GroebnerBaseSigSeqIter<C extends RingElem<C>>
- java.lang.Object
-
- edu.jas.gb.GroebnerBaseAbstract<C>
-
- edu.jas.gb.GroebnerBaseSigSeqIter<C>
-
- Type Parameters:
C
- coefficient type
- All Implemented Interfaces:
GroebnerBase<C>
,java.io.Serializable
- Direct Known Subclasses:
GroebnerBaseArriSigSeqIter
,GroebnerBaseF5zSigSeqIter
,GroebnerBaseGGVSigSeqIter
public class GroebnerBaseSigSeqIter<C extends RingElem<C>> extends GroebnerBaseAbstract<C>
Groebner Base signature based sequential iterative algorithm. Implements Groebner bases after the paper "Signature-based Algorithms to Compute Gröbner Bases" by Christian Eder and John Perry, ISSAC 2011. Compare the jython+JAS code in examples/basic_sigbased_gb.py. Originally the Python+Sage code is from http://www.math.usm.edu/perry/Research/basic_sigbased_gb.py
-
-
Field Summary
Fields Modifier and Type Field Description private static boolean
debug
private static org.apache.logging.log4j.Logger
logger
(package private) SigReductionSeq<C>
sred
-
Fields inherited from class edu.jas.gb.GroebnerBaseAbstract
blas, red, strategy
-
-
Constructor Summary
Constructors Constructor Description GroebnerBaseSigSeqIter()
Constructor.GroebnerBaseSigSeqIter(SigReductionSeq<C> red)
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.util.List<GenPolynomial<C>>
GB(int modv, java.util.List<GenPolynomial<C>> F)
Groebner base signature iterative algorithm.java.util.List<GenPolynomial<C>>
GB(int modv, java.util.List<GenPolynomial<C>> G, GenPolynomial<C> f)
Groebner base iterated.(package private) java.util.List<ExpVector>
initializeSyz(java.util.List<GenPolynomial<C>> F, java.util.List<SigPoly<C>> G)
Initializes syzygy list.(package private) SigPair<C>
newPair(SigPoly<C> A, SigPoly<C> B, java.util.List<SigPoly<C>> G)
Pair with signature.(package private) SigPair<C>
newPair(GenPolynomial<C> s, SigPoly<C> A, SigPoly<C> B, java.util.List<SigPoly<C>> G)
Pair with signature.(package private) java.util.List<SigPair<C>>
pruneP(java.util.List<SigPair<C>> P, java.util.List<ExpVector> syz)
Prune total pair list P.(package private) java.util.List<SigPair<C>>
pruneS(java.util.List<SigPair<C>> S, java.util.List<ExpVector> syz, java.util.List<SigPoly<C>> done, java.util.List<SigPoly<C>> G)
Prune pair list of degree d.(package private) SigPoly<C>
sigNormalform(java.util.List<GenPolynomial<C>> F, java.util.List<SigPoly<C>> G, SigPoly<C> A)
Top normalform.(package private) GenPolynomial<C>
SPolynomial(SigPair<C> P)
S-Polynomial.(package private) GenPolynomial<C>
SPolynomial(SigPoly<C> A, SigPoly<C> B)
S-Polynomial.(package private) GenPolynomial<C>[]
SPolynomialFactors(SigPoly<C> A, SigPoly<C> B)
S-Polynomial polynomial factors.(package private) void
updateSyz(java.util.List<ExpVector> syz, SigPoly<C> r)
Update syzygy list.-
Methods inherited from class edu.jas.gb.GroebnerBaseAbstract
cancel, commonZeroTest, constructUnivariate, criterion3, extGB, extGB, GB, GB, GB, isGB, isGB, isGB, isGB, isGB, isGB, isGBidem, isGBsimple, isMinimalGB, isMinReductionMatrix, isMinReductionMatrix, isReductionMatrix, isReductionMatrix, minimalExtendedGB, minimalGB, normalizeMatrix, normalizeZerosOnes, terminate, toString, univariateDegrees
-
-
-
-
Field Detail
-
logger
private static final org.apache.logging.log4j.Logger logger
-
debug
private static final boolean debug
-
sred
final SigReductionSeq<C extends RingElem<C>> sred
-
-
Constructor Detail
-
GroebnerBaseSigSeqIter
public GroebnerBaseSigSeqIter()
Constructor.
-
GroebnerBaseSigSeqIter
public GroebnerBaseSigSeqIter(SigReductionSeq<C> red)
Constructor.- Parameters:
red
- Reduction engine
-
-
Method Detail
-
GB
public java.util.List<GenPolynomial<C>> GB(int modv, java.util.List<GenPolynomial<C>> F)
Groebner base signature iterative algorithm.- Parameters:
modv
- module variable number.F
- polynomial list.- Returns:
- GB(F) a Groebner base of F.
-
GB
public java.util.List<GenPolynomial<C>> GB(int modv, java.util.List<GenPolynomial<C>> G, GenPolynomial<C> f)
Groebner base iterated.- Parameters:
modv
- module variable number.G
- polynomial list of a Groebner base.f
- polynomial.- Returns:
- GB(G,f) a Groebner base of G+(f).
-
SPolynomial
GenPolynomial<C> SPolynomial(SigPoly<C> A, SigPoly<C> B)
S-Polynomial.- Parameters:
A
- monic polynomial.B
- monic polynomial.- Returns:
- spol(A,B) the S-polynomial of the A and B.
-
SPolynomial
GenPolynomial<C> SPolynomial(SigPair<C> P)
S-Polynomial.- Parameters:
P
- pair.- Returns:
- spol(A,B) the S-polynomial of the pair (A,B).
-
SPolynomialFactors
GenPolynomial<C>[] SPolynomialFactors(SigPoly<C> A, SigPoly<C> B)
S-Polynomial polynomial factors.- Parameters:
A
- monic polynomial.B
- monic polynomial.- Returns:
- polynomials [e,f] such that spol(A,B) = e*a - f*B.
-
newPair
SigPair<C> newPair(SigPoly<C> A, SigPoly<C> B, java.util.List<SigPoly<C>> G)
Pair with signature.- Parameters:
A
- polynomial with signature.B
- polynomial with signature.G
- polynomial ith signature list.- Returns:
- signature pair according to algorithm.
-
newPair
SigPair<C> newPair(GenPolynomial<C> s, SigPoly<C> A, SigPoly<C> B, java.util.List<SigPoly<C>> G)
Pair with signature.- Parameters:
s
- signature for pair.A
- polynomial with signature.B
- polynomial with signature.G
- polynomial ith signature list.- Returns:
- signature pair according to algorithm.
-
sigNormalform
SigPoly<C> sigNormalform(java.util.List<GenPolynomial<C>> F, java.util.List<SigPoly<C>> G, SigPoly<C> A)
Top normalform.- Parameters:
A
- polynomial.F
- polynomial list.G
- polynomial list.- Returns:
- nf(A) with respect to F and G.
-
pruneP
java.util.List<SigPair<C>> pruneP(java.util.List<SigPair<C>> P, java.util.List<ExpVector> syz)
Prune total pair list P.- Parameters:
P
- pair list.syz
- list of exponent vectors representing syzygies.- Returns:
- updated pair list.
-
pruneS
java.util.List<SigPair<C>> pruneS(java.util.List<SigPair<C>> S, java.util.List<ExpVector> syz, java.util.List<SigPoly<C>> done, java.util.List<SigPoly<C>> G)
Prune pair list of degree d.- Parameters:
S
- pair list.syz
- list of exponent vectors representing syzygies.done
- list of treated polynomials.G
- polynomial with signature list.- Returns:
- updated pair list.
-
initializeSyz
java.util.List<ExpVector> initializeSyz(java.util.List<GenPolynomial<C>> F, java.util.List<SigPoly<C>> G)
Initializes syzygy list.- Parameters:
F
- polynomial list.G
- polynomial with signature list.- Returns:
- list of exponent vectors representing syzygies.
-
-