Package edu.jas.gb

Class SigReductionSeq<C extends RingElem<C>>

java.lang.Object
edu.jas.gb.SigReductionSeq<C>
Type Parameters:
C - coefficient type
All Implemented Interfaces:
SigReduction<C>, Serializable

public class SigReductionSeq<C extends RingElem<C>> extends Object implements SigReduction<C>
Polynomial SigReduction class. Implements common S-Polynomial, normalform with respect to signatures.
See Also:
  • Field Details

  • Constructor Details

    • SigReductionSeq

      public SigReductionSeq()
      Constructor.
  • Method Details

    • SPolynomial

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

      public ExpVector[] SPolynomialExpVectorFactors(SigPoly<C> A, SigPoly<C> B)
      S-Polynomial factors.
      Parameters:
      A - monic polynomial.
      B - monic polynomial.
      Returns:
      exponent vectors [e,f] such that spol(A,B) = e*a - f*B.
    • SPolynomialHalf

      public GenPolynomial<C> SPolynomialHalf(SigPoly<C> A, SigPoly<C> B)
      S-Polynomial half.
      Parameters:
      A - monic polynomial.
      B - monic polynomial.
      Returns:
      e*A "half" of an S-polynomial such that spol(A,B) = e*A - f*B.
    • SPolynomialFactors

      public GenPolynomial<C>[] SPolynomialFactors(SigPoly<C> A, SigPoly<C> B)
      S-Polynomial polynomial factors.
      Parameters:
      A - monic polynomial.
      B - monic polynomial.
      Returns:
      polynomials [e,f] such that spol(A,B) = e*a - f*B.
    • isSigReducible

      public boolean isSigReducible(List<SigPoly<C>> F, List<SigPoly<C>> G, SigPoly<C> A)
      Is top reducible. Condition is lt(B) | lt(A) for some B in F or G.
      Specified by:
      isSigReducible in interface SigReduction<C extends RingElem<C>>
      Parameters:
      F - polynomial list.
      G - polynomial list.
      A - polynomial.
      Returns:
      true if A is top reducible with respect to F and G.
    • isSigNormalform

      public boolean isSigNormalform(List<SigPoly<C>> F, List<SigPoly<C>> G, SigPoly<C> A)
      Is in top normalform.
      Specified by:
      isSigNormalform in interface SigReduction<C extends RingElem<C>>
      Parameters:
      F - polynomial list.
      G - polynomial list.
      A - polynomial.
      Returns:
      true if A is in top normalform with respect to F and G.
    • isSigRedundant

      public boolean isSigRedundant(List<SigPoly<C>> G, SigPoly<C> A)
      Is sigma redundant.
      Parameters:
      G - polynomial list.
      A - polynomial.
      Returns:
      true if A is sigma redundant with respect to G.
    • isSigRedundantAlt

      public boolean isSigRedundantAlt(List<SigPoly<C>> G, SigPoly<C> A)
      Is sigma redundant, alternative algorithm.
      Parameters:
      G - polynomial list.
      A - polynomial.
      Returns:
      true if A is sigma redundant per alternative algorithm with respect to G.
    • sigNormalform

      public SigPoly<C> sigNormalform(List<GenPolynomial<C>> F, List<SigPoly<C>> G, SigPoly<C> A)
      Top normalform.
      Specified by:
      sigNormalform in interface SigReduction<C extends RingElem<C>>
      Parameters:
      F - polynomial list.
      G - polynomial list.
      A - polynomial.
      Returns:
      nf(A) with respect to F and G.
    • sigSemiNormalform

      public SigPoly<C> sigSemiNormalform(List<GenPolynomial<C>> F, List<SigPoly<C>> G, SigPoly<C> A)
      Top semi-complete normalform.
      Parameters:
      F - polynomial list.
      G - polynomial list.
      A - polynomial.
      Returns:
      nf(A) with respect to F and G.
    • polys

      public List<GenPolynomial<C>> polys(List<SigPoly<C>> F)
      Select polynomials.
      Parameters:
      F - list of signature polynomials.
      Returns:
      the polynomials in F.
    • sigmas

      public List<GenPolynomial<C>> sigmas(List<SigPair<C>> F)
      Select signatures.
      Parameters:
      F - list of signature polynomials.
      Returns:
      the signatures in F.
    • minimalSigDegree

      public long minimalSigDegree(List<SigPair<C>> F)
      Minimal degree of signatures.
      Parameters:
      F - list of signature polynomials.
      Returns:
      the minimal degree of the signatures in F.
    • minDegSubset

      public List<SigPair<C>>[] minDegSubset(List<SigPair<C>> F)
      Select signature polynomials of minimal degree and non minimal degree.
      Parameters:
      F - list of signature polynomials.
      Returns:
      [m,p] where m is the list of signature polynomials of F of minimal degree and p contains the rest of the signature polynomials with non minimal degree.
    • sortSigma

      public List<SigPair<C>> sortSigma(List<SigPair<C>> F)
      Sort signature polynomials according to the degree its signatures.
      Parameters:
      F - list of signature polynomials.
      Returns:
      list of signature polynomials sorted by degree of sigma.