Package edu.jas.gb

Class GroebnerBaseSigSeqIter<C extends RingElem<C>>

java.lang.Object
edu.jas.gb.GroebnerBaseAbstract<C>
edu.jas.gb.GroebnerBaseSigSeqIter<C>
Type Parameters:
C - coefficient type
All Implemented Interfaces:
GroebnerBase<C>, Serializable
Direct Known Subclasses:
GroebnerBaseArriSigSeqIter, GroebnerBaseF5zSigSeqIter, GroebnerBaseGGVSigSeqIter

public class GroebnerBaseSigSeqIter<C extends RingElem<C>> extends GroebnerBaseAbstract<C>
Groebner Base signature based sequential iterative algorithm. Implements Groebner bases after the paper "Signature-based Algorithms to Compute Gröbner Bases" by Christian Eder and John Perry, ISSAC 2011. Compare the jython+JAS code in examples/basic_sigbased_gb.py. Originally the Python+Sage code is from http://www.math.usm.edu/perry/Research/basic_sigbased_gb.py
See Also:
  • Field Details

    • logger

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

      private static final boolean debug
    • sred

      final SigReductionSeq<C extends RingElem<C>> sred
  • Constructor Details

    • GroebnerBaseSigSeqIter

      public GroebnerBaseSigSeqIter()
      Constructor.
    • GroebnerBaseSigSeqIter

      public GroebnerBaseSigSeqIter(SigReductionSeq<C> red)
      Constructor.
      Parameters:
      red - Reduction engine
  • Method Details

    • GB

      public List<GenPolynomial<C>> GB(int modv, List<GenPolynomial<C>> F)
      Groebner base signature iterative algorithm.
      Parameters:
      modv - module variable number.
      F - polynomial list.
      Returns:
      GB(F) a Groebner base of F.
    • GB

      public List<GenPolynomial<C>> GB(int modv, List<GenPolynomial<C>> G, GenPolynomial<C> f)
      Groebner base iterated.
      Parameters:
      modv - module variable number.
      G - polynomial list of a Groebner base.
      f - polynomial.
      Returns:
      GB(G,f) a Groebner base of G+(f).
    • SPolynomial

      GenPolynomial<C> SPolynomial(SigPoly<C> A, SigPoly<C> B)
      S-Polynomial.
      Parameters:
      A - monic polynomial.
      B - monic polynomial.
      Returns:
      spol(A,B) the S-polynomial of the A and B.
    • SPolynomial

      GenPolynomial<C> SPolynomial(SigPair<C> P)
      S-Polynomial.
      Parameters:
      P - pair.
      Returns:
      spol(A,B) the S-polynomial of the pair (A,B).
    • SPolynomialFactors

      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.
    • newPair

      SigPair<C> newPair(SigPoly<C> A, SigPoly<C> B, List<SigPoly<C>> G)
      Pair with signature.
      Parameters:
      A - polynomial with signature.
      B - polynomial with signature.
      G - polynomial ith signature list.
      Returns:
      signature pair according to algorithm.
    • newPair

      SigPair<C> newPair(GenPolynomial<C> s, SigPoly<C> A, SigPoly<C> B, List<SigPoly<C>> G)
      Pair with signature.
      Parameters:
      s - signature for pair.
      A - polynomial with signature.
      B - polynomial with signature.
      G - polynomial ith signature list.
      Returns:
      signature pair according to algorithm.
    • sigNormalform

      SigPoly<C> sigNormalform(List<GenPolynomial<C>> F, List<SigPoly<C>> G, SigPoly<C> A)
      Top normalform.
      Parameters:
      F - polynomial list.
      G - polynomial list.
      A - polynomial.
      Returns:
      nf(A) with respect to F and G.
    • pruneP

      List<SigPair<C>> pruneP(List<SigPair<C>> P, List<ExpVector> syz)
      Prune total pair list P.
      Parameters:
      P - pair list.
      syz - list of exponent vectors representing syzygies.
      Returns:
      updated pair list.
    • pruneS

      List<SigPair<C>> pruneS(List<SigPair<C>> S, List<ExpVector> syz, List<SigPoly<C>> done, List<SigPoly<C>> G)
      Prune pair list of degree d.
      Parameters:
      S - pair list.
      syz - list of exponent vectors representing syzygies.
      done - list of treated polynomials.
      G - polynomial with signature list.
      Returns:
      updated pair list.
    • initializeSyz

      List<ExpVector> initializeSyz(List<GenPolynomial<C>> F, List<SigPoly<C>> G)
      Initializes syzygy list.
      Parameters:
      F - polynomial list.
      G - polynomial with signature list.
      Returns:
      list of exponent vectors representing syzygies.
    • updateSyz

      void updateSyz(List<ExpVector> syz, SigPoly<C> r)
      Update syzygy list.
      Parameters:
      syz - list of exponent vectors representing syzygies.
      r - polynomial. Note: szy is modified to represent updated list of exponent vectors.