edu.jas.gb
Class OrderedMinPairlist<C extends RingElem<C>>

java.lang.Object
  extended by edu.jas.gb.OrderedPairlist<C>
      extended by edu.jas.gb.OrderedMinPairlist<C>
All Implemented Interfaces:
PairList<C>

public class OrderedMinPairlist<C extends RingElem<C>>
extends OrderedPairlist<C>

Pair list management. The original Buchberger algorithm with criterions using early pair exclusion. Implemented using GenPolynomial, TreeMap and BitSet.

Author:
Heinz Kredel

Field Summary
 
Fields inherited from class edu.jas.gb.OrderedPairlist
moduleVars, oneInGB, P, pairlist, putCount, red, reduction, remCount, ring, useCriterion4
 
Constructor Summary
OrderedMinPairlist()
          Constructor.
OrderedMinPairlist(GenPolynomialRing<C> r)
          Constructor.
OrderedMinPairlist(int m, GenPolynomialRing<C> r)
          Constructor.
 
Method Summary
 PairList<C> create(GenPolynomialRing<C> r)
          Create a new PairList.
 PairList<C> create(int m, GenPolynomialRing<C> r)
          Create a new PairList.
 boolean criterion3(int i, int j, ExpVector eij)
          GB criterium 3.
 int put(GenPolynomial<C> p)
          Put one Polynomial to the pairlist and reduction matrix.
 Pair<C> removeNext()
          Remove the next required pair from the pairlist and reduction matrix.
 
Methods inherited from class edu.jas.gb.OrderedPairlist
getList, hasNext, putCount, putOne, putOne, remCount, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

OrderedMinPairlist

public OrderedMinPairlist()
Constructor.


OrderedMinPairlist

public OrderedMinPairlist(GenPolynomialRing<C> r)
Constructor.

Parameters:
r - polynomial factory.

OrderedMinPairlist

public OrderedMinPairlist(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.

Specified by:
create in interface PairList<C extends RingElem<C>>
Overrides:
create in class OrderedPairlist<C extends RingElem<C>>
Parameters:
r - polynomial ring.

create

public PairList<C> create(int m,
                          GenPolynomialRing<C> r)
Create a new PairList.

Specified by:
create in interface PairList<C extends RingElem<C>>
Overrides:
create in class OrderedPairlist<C extends RingElem<C>>
Parameters:
m - number of module variables.
r - polynomial ring.

put

public int put(GenPolynomial<C> p)
Put one Polynomial to the pairlist and reduction matrix.

Specified by:
put in interface PairList<C extends RingElem<C>>
Overrides:
put in class OrderedPairlist<C extends RingElem<C>>
Parameters:
p - polynomial.
Returns:
the index of the added polynomial.

removeNext

public Pair<C> removeNext()
Remove the next required pair from the pairlist and reduction matrix. Appy the criterions 3 and 4 to see if the S-polynomial is required.

Specified by:
removeNext in interface PairList<C extends RingElem<C>>
Overrides:
removeNext in class OrderedPairlist<C extends RingElem<C>>
Returns:
the next pair if one exists, otherwise null.

criterion3

public boolean criterion3(int i,
                          int j,
                          ExpVector eij)
GB criterium 3.

Specified by:
criterion3 in interface PairList<C extends RingElem<C>>
Overrides:
criterion3 in class OrderedPairlist<C extends RingElem<C>>
Returns:
true if the S-polynomial(i,j) is required.