Class OrderedCPairlist<C extends GcdRingElem<C>>

java.lang.Object
edu.jas.application.OrderedCPairlist<C>
All Implemented Interfaces:
Serializable

public class OrderedCPairlist<C extends GcdRingElem<C>> extends Object implements Serializable
Pair list management. Implemented for ColorPolynomials using TreeMap and BitSet.
See Also:
  • Field Details

  • Constructor Details

    • OrderedCPairlist

      public OrderedCPairlist(GenPolynomialRing<GenPolynomial<C>> r)
      Constructor for OrderedPairlist.
      Parameters:
      r - polynomial factory.
    • OrderedCPairlist

      public OrderedCPairlist(int m, GenPolynomialRing<GenPolynomial<C>> r)
      Constructor for OrderedPairlist.
      Parameters:
      m - number of module variables.
      r - polynomial factory.
    • OrderedCPairlist

      private OrderedCPairlist(int m, GenPolynomialRing<GenPolynomial<C>> r, List<ColorPolynomial<C>> P, SortedMap<ExpVector,LinkedList<CPair<C>>> pl, List<BitSet> red, CReductionSeq<C> cred, int pc, int rc)
      Internal constructor for OrderedPairlist. Used to clone this pair list.
      Parameters:
      m - number of module variables.
      r - polynomial factory.
      P - list of color polynomials.
      pl - critical pair list.
      red - reduction matrix.
      cred - color polynomial reduction engine.
      pc - put count.
      rc - remove count.
  • Method Details

    • copy

      public OrderedCPairlist<C> copy()
      Clone this OrderedPairlist.
      Returns:
      a 2 level clone of this.
    • clonePairlist

      private SortedMap<ExpVector,LinkedList<CPair<C>>> clonePairlist()
      Clone this pairlist.
      Returns:
      a 2 level clone of this pairlist.
    • pairCount

      public int pairCount()
      Count remaining Pairs.
      Returns:
      number of pairs remaining in this pairlist.
    • cloneBitSet

      private List<BitSet> cloneBitSet()
      Clone this reduction BitSet.
      Returns:
      a 2 level clone of this reduction BitSet.
    • bitCount

      public int bitCount()
      bitCount.
      Returns:
      number of bits set in this bitset.
    • toString

      public String toString()
      toString.
      Overrides:
      toString in class Object
      Returns:
      counters of this.
    • equals

      public boolean equals(Object ob)
      Equals.
      Overrides:
      equals in class Object
      Parameters:
      ob - an Object.
      Returns:
      true if this is equal to o, else false.
    • hashCode

      public int hashCode()
      Hash code for this pair list.
      Overrides:
      hashCode in class Object
      See Also:
    • put

      public int put(ColorPolynomial<C> p)
      Put one Polynomial to the pairlist and reduction matrix.
      Parameters:
      p - polynomial.
      Returns:
      the index of the added polynomial.
    • removeNext

      public CPair<C> removeNext()
      Remove the next required pair from the pairlist and reduction matrix. Apply the criterions 3 and 4 to see if the S-polynomial is required.
      Returns:
      the next pair if one exists, otherwise null.
    • hasNext

      public boolean hasNext()
      Test if there is possibly a pair in the list.
      Returns:
      true if a next pair could exist, otherwise false.
    • getList

      public List<ColorPolynomial<C>> getList()
      Get the list of polynomials.
      Returns:
      the polynomial list.
    • putCount

      public int putCount()
      Get the number of polynomials put to the pairlist.
      Returns:
      the number of calls to put.
    • remCount

      public int remCount()
      Get the number of required pairs removed from the pairlist.
      Returns:
      the number of non null pairs delivered.
    • putOne

      public int putOne(ColorPolynomial<C> one)
      Put to ONE-Polynomial to the pairlist.
      Parameters:
      one - polynomial. (no more required)
      Returns:
      the index of the last polynomial.
    • criterion3

      public boolean criterion3(int i, int j, ExpVector eij)
      GB criterium 3.
      Returns:
      true if the S-polynomial(i,j) is required.