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

java.lang.Object
  extended by edu.jas.gb.OrderedPairlist<C>
All Implemented Interfaces:
PairList<C>
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

Field Summary
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
OrderedPairlist()
          Constructor.
OrderedPairlist(GenPolynomialRing<C> r)
          Constructor.
OrderedPairlist(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.
 java.util.List<GenPolynomial<C>> getList()
          Get the list of polynomials.
 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 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.
 java.lang.String toString()
          toString.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

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

reduction

protected final Reduction<C extends RingElem<C>> reduction

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.

Specified by:
create in interface PairList<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>>
Parameters:
m - number of module variables.
r - polynomial ring.

toString

public java.lang.String toString()
toString.

Specified by:
toString in interface PairList<C extends RingElem<C>>
Overrides:
toString in class java.lang.Object

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>>
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>>
Returns:
the next pair if one exists, otherwise null.

hasNext

public boolean hasNext()
Test if there is possibly a pair in the list.

Specified by:
hasNext in interface PairList<C extends RingElem<C>>
Returns:
true if a next pair could exist, otherwise false.

getList

public java.util.List<GenPolynomial<C>> getList()
Get the list of polynomials.

Specified by:
getList in interface PairList<C extends RingElem<C>>
Returns:
the polynomial list.

putCount

public int putCount()
Get the number of polynomials put to the pairlist.

Specified by:
putCount in interface PairList<C extends RingElem<C>>
Returns:
the number of calls to put.

remCount

public int remCount()
Get the number of required pairs removed from the pairlist.

Specified by:
remCount in interface PairList<C extends RingElem<C>>
Returns:
the number of non null pairs delivered.

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.

Specified by:
putOne in interface PairList<C extends RingElem<C>>
Returns:
the index of the last polynomial.

criterion3

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

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