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.- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor and Description CriticalPairList()Constructor for CriticalPairList.CriticalPairList(GenPolynomialRing<C> r)Constructor for CriticalPairList.CriticalPairList(int m, GenPolynomialRing<C> r)Constructor for CriticalPairList.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method and Description PairList<C>create(GenPolynomialRing<C> r)Create a new PairList.PairList<C>create(int m, GenPolynomialRing<C> r)Create a new PairList.CriticalPair<C>getNext()Get the next required pair from the pairlist.booleanhasNext()Test if there is possibly a pair in the list.java.util.List<CriticalPair<C>>inWork()In work pairs.intput(GenPolynomial<C> p)Put a polynomial to the pairlist and reduction matrix.intputOne()Put the ONE-Polynomial to the pairlist.intrecord(CriticalPair<C> pair, GenPolynomial<C> p)Record reduced polynomial.Pair<C>removeNext()Get and remove the next required pair from the pairlist.intupdate()Update pairlist.intupdate(CriticalPair<C> pair, GenPolynomial<C> p)Record reduced polynomial and update critical pair list.intupdateMany()Update pairlist, several pairs at once.-
Methods inherited from class edu.jas.gb.OrderedPairlist
criterion3, getList, putCount, putOne, remCount, size, toString
-
-
-
-
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. Appy the criterions 3 and 4 to see if the S-polynomial is required. The pair is not removed from the pair list.- Specified by:
removeNextin interfacePairList<C extends RingElem<C>>- Overrides:
removeNextin 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. Appy 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.
-
-
DMelt 3.0 © DataMelt by jWork.ORG