Package edu.jas.gb
Class OrderedPairlist<C extends RingElem<C>>
- java.lang.Object
-
- edu.jas.gb.OrderedPairlist<C>
-
- All Implemented Interfaces:
PairList<C>
,java.io.Serializable
- Direct Known Subclasses:
CriticalPairList
,OrderedDPairlist
,OrderedMinPairlist
,OrderedRPairlist
,OrderedSyzPairlist
public class OrderedPairlist<C extends RingElem<C>> extends java.lang.Object implements PairList<C>
Pair list management. The original Buchberger algorithm with criterions following Winkler in SAC-1, Kredel in ALDES/SAC-2, Kredel in MAS. Implemented using GenPolynomial, TreeMap and BitSet.- Author:
- Heinz Kredel
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected int
moduleVars
protected boolean
oneInGB
protected java.util.List<GenPolynomial<C>>
P
protected java.util.SortedMap<ExpVector,java.util.LinkedList<Pair<C>>>
pairlist
protected int
putCount
protected java.util.List<java.util.BitSet>
red
protected Reduction<C>
reduction
protected int
remCount
protected GenPolynomialRing<C>
ring
protected boolean
useCriterion4
-
Constructor Summary
Constructors Constructor Description OrderedPairlist()
Constructor.OrderedPairlist(int m, GenPolynomialRing<C> r)
Constructor.OrderedPairlist(GenPolynomialRing<C> r)
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description PairList<C>
create(int m, GenPolynomialRing<C> r)
Create a new PairList.PairList<C>
create(GenPolynomialRing<C> r)
Create a new PairList.boolean
criterion3(int i, int j, ExpVector eij)
GB criterium 3.java.util.List<GenPolynomial<C>>
getList()
Get the list of polynomials.GenPolynomialRing<C>
getRing()
Get polynomial ring.boolean
hasNext()
Test if there is possibly a pair in the list.int
put(GenPolynomial<C> p)
Put one Polynomial to the pairlist and reduction matrix.int
put(java.util.List<GenPolynomial<C>> F)
Put all polynomials in F to the pairlist and reduction matrix.int
putCount()
Get the number of polynomials put to the pairlist.int
putOne()
Put the ONE-Polynomial to the pairlist.int
putOne(GenPolynomial<C> one)
Put the ONE-Polynomial to the pairlist.int
remCount()
Get the number of required pairs removed from the pairlist.Pair<C>
removeNext()
Remove the next required pair from the pairlist and reduction matrix.void
setList(java.util.List<GenPolynomial<C>> F)
Set the list of polynomials.int
size()
Get the size of the list of polynomials.java.lang.String
toString()
toString.
-
-
-
Field Detail
-
P
protected final java.util.List<GenPolynomial<C extends RingElem<C>>> P
-
pairlist
protected final java.util.SortedMap<ExpVector,java.util.LinkedList<Pair<C extends RingElem<C>>>> pairlist
-
red
protected final java.util.List<java.util.BitSet> red
-
ring
protected final GenPolynomialRing<C extends RingElem<C>> ring
-
oneInGB
protected boolean oneInGB
-
useCriterion4
protected boolean useCriterion4
-
putCount
protected int putCount
-
remCount
protected int remCount
-
moduleVars
protected final int moduleVars
-
-
Constructor Detail
-
OrderedPairlist
public OrderedPairlist()
Constructor.
-
OrderedPairlist
public OrderedPairlist(GenPolynomialRing<C> r)
Constructor.- Parameters:
r
- polynomial factory.
-
OrderedPairlist
public OrderedPairlist(int m, GenPolynomialRing<C> r)
Constructor.- Parameters:
m
- number of module variables.r
- polynomial factory.
-
-
Method Detail
-
create
public PairList<C> create(GenPolynomialRing<C> r)
Create a new PairList.
-
create
public PairList<C> create(int m, GenPolynomialRing<C> r)
Create a new PairList.
-
getRing
public GenPolynomialRing<C> getRing()
Get polynomial ring.
-
toString
public java.lang.String toString()
toString.
-
put
public int put(GenPolynomial<C> p)
Put one Polynomial to the pairlist and reduction matrix.
-
put
public int put(java.util.List<GenPolynomial<C>> F)
Put all polynomials in F to the pairlist and reduction matrix.
-
removeNext
public Pair<C> removeNext()
Remove the next required pair from the pairlist and reduction matrix. Apply the criterions 3 and 4 to see if the S-polynomial is required.- Specified by:
removeNext
in interfacePairList<C extends RingElem<C>>
- Returns:
- the next pair if one exists, otherwise null.
-
hasNext
public boolean hasNext()
Test if there is possibly a pair in the list.
-
getList
public java.util.List<GenPolynomial<C>> getList()
Get the list of polynomials.
-
setList
public void setList(java.util.List<GenPolynomial<C>> F)
Set the list of polynomials.
-
size
public int size()
Get the size of the list of polynomials.
-
putCount
public int putCount()
Get the number of polynomials put to the pairlist.
-
remCount
public int remCount()
Get the number of required pairs removed from the pairlist.
-
putOne
public int putOne(GenPolynomial<C> one)
Put the ONE-Polynomial to the pairlist.- Parameters:
one
- polynomial. (no more required)- Returns:
- the index of the last polynomial.
-
putOne
public int putOne()
Put the ONE-Polynomial to the pairlist.
-
criterion3
public boolean criterion3(int i, int j, ExpVector eij)
GB criterium 3.- Specified by:
criterion3
in interfacePairList<C extends RingElem<C>>
- Returns:
- true if the S-polynomial(i,j) is required.
-
-