Package edu.jas.gb
Class CriticalPairList<C extends RingElem<C>>
- java.lang.Object
-
- edu.jas.gb.OrderedPairlist<C>
-
- edu.jas.gb.CriticalPairList<C>
-
- All Implemented Interfaces:
PairList<C>
,java.io.Serializable
public class CriticalPairList<C extends RingElem<C>> extends OrderedPairlist<C>
Critical pair list management. Makes some effort to produce the same sequence of critical pairs as in the sequential case, when used in parallel. However already reduced pairs are not re-reduced if new polynomials appear. Implemented using GenPolynomial, SortedSet / TreeSet and BitSet.- Author:
- Heinz Kredel
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected java.util.SortedSet<CriticalPair<C>>
pairlist
protected int
recordCount
-
Fields inherited from class edu.jas.gb.OrderedPairlist
moduleVars, oneInGB, P, putCount, red, reduction, remCount, ring, useCriterion4
-
-
Constructor Summary
Constructors Constructor Description CriticalPairList()
Constructor for CriticalPairList.CriticalPairList(int m, GenPolynomialRing<C> r)
Constructor for CriticalPairList.CriticalPairList(GenPolynomialRing<C> r)
Constructor for CriticalPairList.
-
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.CriticalPair<C>
getNext()
Get the next required pair from the pairlist.boolean
hasNext()
Test if there is possibly a pair in the list.java.util.List<CriticalPair<C>>
inWork()
In work pairs.int
put(GenPolynomial<C> p)
Put a polynomial to the pairlist and reduction matrix.int
putOne()
Put the ONE-Polynomial to the pairlist.int
record(CriticalPair<C> pair, GenPolynomial<C> p)
Record reduced polynomial.Pair<C>
removeNext()
Get and remove the next required pair from the pairlist.int
update()
Update pairlist.int
update(CriticalPair<C> pair, GenPolynomial<C> p)
Record reduced polynomial and update critical pair list.int
updateMany()
Update pairlist, several pairs at once.
-
-
-
Field Detail
-
pairlist
protected final java.util.SortedSet<CriticalPair<C extends RingElem<C>>> pairlist
-
recordCount
protected int recordCount
-
-
Constructor Detail
-
CriticalPairList
public CriticalPairList()
Constructor for CriticalPairList.
-
CriticalPairList
public CriticalPairList(GenPolynomialRing<C> r)
Constructor for CriticalPairList.- Parameters:
r
- polynomial factory.
-
CriticalPairList
public CriticalPairList(int m, GenPolynomialRing<C> r)
Constructor for CriticalPairList.- 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.
-
put
public int put(GenPolynomial<C> p)
Put a polynomial to the pairlist and reduction matrix.
-
hasNext
public boolean hasNext()
Test if there is possibly a pair in the list.
-
removeNext
public Pair<C> removeNext()
Get and remove the next required pair from the pairlist. Apply the criterions 3 and 4 to see if the S-polynomial is required. The pair is not removed from the pair list.- Specified by:
removeNext
in interfacePairList<C extends RingElem<C>>
- Overrides:
removeNext
in classOrderedPairlist<C extends RingElem<C>>
- Returns:
- the next pair if one exists, otherwise null.
-
getNext
public CriticalPair<C> getNext()
Get the next required pair from the pairlist. Apply the criterions 3 and 4 to see if the S-polynomial is required. The pair is not removed from the pair list.- Returns:
- the next pair if one exists, otherwise null.
-
record
public int record(CriticalPair<C> pair, GenPolynomial<C> p)
Record reduced polynomial.- Parameters:
pair
- the corresponding critical pair.p
- polynomial.- Returns:
- index of recorded polynomial, or -1 if not added.
-
update
public int update(CriticalPair<C> pair, GenPolynomial<C> p)
Record reduced polynomial and update critical pair list. Note: it is better to use record and uptate separately.- Parameters:
pair
- the corresponding critical pair.p
- polynomial.- Returns:
- index of recorded polynomial
-
update
public int update()
Update pairlist. Preserve the sequential pair sequence. Remove pairs with completed reductions.- Returns:
- the number of added polynomials.
-
inWork
public java.util.List<CriticalPair<C>> inWork()
In work pairs. List pairs which are currently reduced.- Returns:
- list of critical pairs which are in reduction.
-
updateMany
public int updateMany()
Update pairlist, several pairs at once. This version does not preserve the sequential pair sequence. Remove pairs with completed reductions.- Returns:
- the number of added polynomials.
-
-