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

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

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

Pair list management. For the Buchberger algorithm following the syzygy criterions by Gebauer & Möller. 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
OrderedSyzPairlist()
          Constructor.
OrderedSyzPairlist(GenPolynomialRing<C> r)
          Constructor.
OrderedSyzPairlist(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

OrderedSyzPairlist

public OrderedSyzPairlist()
Constructor.


OrderedSyzPairlist

public OrderedSyzPairlist(GenPolynomialRing<C> r)
Constructor.

Parameters:
r - polynomial factory.

OrderedSyzPairlist

public OrderedSyzPairlist(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. Removes all unnecessary pairs identified by the syzygy criterion and criterion 4.

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.