Package edu.jas.gb

Class ReductionAbstract<C extends RingElem<C>>

java.lang.Object
edu.jas.gb.ReductionAbstract<C>
Type Parameters:
C - coefficient type
All Implemented Interfaces:
Reduction<C>, Serializable
Direct Known Subclasses:
DReductionSeq, PseudoReductionPar, PseudoReductionSeq, ReductionPar, ReductionSeq, RReductionSeq

public abstract class ReductionAbstract<C extends RingElem<C>> extends Object implements Reduction<C>
Polynomial Reduction abstract class. Implements common S-Polynomial, normalform, criterion 4 module criterion and irreducible set.
See Also:
  • Field Details

    • logger

      private static final org.apache.logging.log4j.Logger logger
    • debug

      private static final boolean debug
  • Constructor Details

    • ReductionAbstract

      public ReductionAbstract()
      Constructor.
  • Method Details

    • SPolynomial

      public GenPolynomial<C> SPolynomial(GenPolynomial<C> A, GenPolynomial<C> B)
      S-Polynomial.
      Specified by:
      SPolynomial in interface Reduction<C extends RingElem<C>>
      Parameters:
      A - polynomial.
      B - polynomial.
      Returns:
      spol(A,B) the S-polynomial of A and B.
    • SPolynomial

      public GenPolynomial<C> SPolynomial(List<GenPolynomial<C>> S, int i, GenPolynomial<C> A, int j, GenPolynomial<C> B)
      S-Polynomial with recording.
      Specified by:
      SPolynomial in interface Reduction<C extends RingElem<C>>
      Parameters:
      S - recording matrix, is modified. Note the negative S-polynomial is recorded as required by all applications.
      i - index of A in basis list.
      A - a polynomial.
      j - index of B in basis list.
      B - a polynomial.
      Returns:
      Spol(A, B), the S-Polynomial for A and B.
    • moduleCriterion

      public boolean moduleCriterion(int modv, GenPolynomial<C> A, GenPolynomial<C> B)
      Module criterium.
      Specified by:
      moduleCriterion in interface Reduction<C extends RingElem<C>>
      Parameters:
      modv - number of module variables.
      A - polynomial.
      B - polynomial.
      Returns:
      true if the module S-polynomial(i,j) is required.
    • moduleCriterion

      public boolean moduleCriterion(int modv, ExpVector ei, ExpVector ej)
      Module criterium.
      Specified by:
      moduleCriterion in interface Reduction<C extends RingElem<C>>
      Parameters:
      modv - number of module variables.
      ei - ExpVector.
      ej - ExpVector.
      Returns:
      true if the module S-polynomial(i,j) is required.
    • criterion4

      public boolean criterion4(GenPolynomial<C> A, GenPolynomial<C> B, ExpVector e)
      GB criterium 4. Use only for commutative polynomial rings.
      Specified by:
      criterion4 in interface Reduction<C extends RingElem<C>>
      Parameters:
      A - polynomial.
      B - polynomial.
      e - = lcm(ht(A),ht(B))
      Returns:
      true if the S-polynomial(i,j) is required, else false.
    • criterion4

      public boolean criterion4(ExpVector ei, ExpVector ej, ExpVector e)
      GB criterium 4. Use only for commutative polynomial rings.
      Specified by:
      criterion4 in interface Reduction<C extends RingElem<C>>
      Parameters:
      ei - exponent vector.
      ej - exponent vector.
      e - = lcm(ei,ej)
      Returns:
      true if the S-polynomial(i,j) is required, else false.
    • criterion4

      public boolean criterion4(GenPolynomial<C> A, GenPolynomial<C> B)
      GB criterium 4.
      Specified by:
      criterion4 in interface Reduction<C extends RingElem<C>>
      Parameters:
      A - polynomial.
      B - polynomial.
      Returns:
      true if the S-polynomial(i,j) is required, else false.
    • normalformMarked

      public GenPolynomial<C> normalformMarked(List<Monomial<C>> Mp, List<GenPolynomial<C>> Pp, GenPolynomial<C> Ap)
      Normalform with respect to marked head terms.
      Parameters:
      Mp - leading monomial list.
      Pp - polynomial list.
      Ap - polynomial.
      Returns:
      nf(Ap) with respect to Mp+Pp.
    • normalform

      public List<GenPolynomial<C>> normalform(List<GenPolynomial<C>> Pp, List<GenPolynomial<C>> Ap)
      Normalform Set.
      Specified by:
      normalform in interface Reduction<C extends RingElem<C>>
      Parameters:
      Pp - polynomial list.
      Ap - polynomial list.
      Returns:
      list of nf(a) with respect to Pp for all a in Ap.
    • normalform

      public ModuleList<C> normalform(ModuleList<C> Pp, ModuleList<C> Ap)
      Module normalform set.
      Parameters:
      Pp - module list.
      Ap - module list.
      Returns:
      list of nf(a) with respect to Pp for all a in Ap.
    • normalform

      public ModuleList<C> normalform(ModuleList<C> Pp, ModuleList<C> Ap, boolean top)
      Module normalform set.
      Parameters:
      Pp - module list.
      Ap - module list.
      top - true for TOP term order, false for POT term order.
      Returns:
      list of nf(a) with respect to Pp for all a in Ap.
    • isTopReducible

      public boolean isTopReducible(List<GenPolynomial<C>> P, GenPolynomial<C> A)
      Is top reducible.
      Specified by:
      isTopReducible in interface Reduction<C extends RingElem<C>>
      Parameters:
      P - polynomial list.
      A - polynomial.
      Returns:
      true if A is top reducible with respect to P.
    • isReducible

      public boolean isReducible(List<GenPolynomial<C>> Pp, GenPolynomial<C> Ap)
      Is reducible.
      Specified by:
      isReducible in interface Reduction<C extends RingElem<C>>
      Parameters:
      Pp - polynomial list.
      Ap - polynomial.
      Returns:
      true if Ap is reducible with respect to Pp.
    • isNormalform

      public boolean isNormalform(List<GenPolynomial<C>> Pp, GenPolynomial<C> Ap)
      Is in Normalform.
      Specified by:
      isNormalform in interface Reduction<C extends RingElem<C>>
      Parameters:
      Pp - polynomial list.
      Ap - polynomial.
      Returns:
      true if Ap is in normalform with respect to Pp.
    • isNormalform

      public boolean isNormalform(List<GenPolynomial<C>> Pp)
      Is in Normalform.
      Specified by:
      isNormalform in interface Reduction<C extends RingElem<C>>
      Parameters:
      Pp - polynomial list.
      Returns:
      true if each Ap in Pp is in normalform with respect to Pp\{Ap}.
    • irreducibleSet

      public List<GenPolynomial<C>> irreducibleSet(List<GenPolynomial<C>> Pp)
      Irreducible set.
      Specified by:
      irreducibleSet in interface Reduction<C extends RingElem<C>>
      Parameters:
      Pp - polynomial list.
      Returns:
      a list P of monic polynomials which are in normalform wrt. P and with ideal(Pp) = ideal(P).
    • isReductionNF

      public boolean isReductionNF(List<GenPolynomial<C>> row, List<GenPolynomial<C>> Pp, GenPolynomial<C> Ap, GenPolynomial<C> Np)
      Is reduction of normal form.
      Specified by:
      isReductionNF in interface Reduction<C extends RingElem<C>>
      Parameters:
      row - recording matrix.
      Pp - a polynomial list for reduction.
      Ap - a polynomial.
      Np - = nf(Pp,Ap), a normal form of Ap wrt. Pp.
      Returns:
      true, if Ap == sum( row[i]*Pp[i] ) + Np, else false. //??