Package edu.jas.gbufd

Class GroebnerBaseWalk<C extends GcdRingElem<C>>

java.lang.Object
edu.jas.gb.GroebnerBaseAbstract<C>
edu.jas.gbufd.GroebnerBaseWalk<C>
Type Parameters:
C - coefficient type
All Implemented Interfaces:
GroebnerBase<C>, Serializable

public class GroebnerBaseWalk<C extends GcdRingElem<C>> extends GroebnerBaseAbstract<C>
Groebner Base sequential Groebner Walk algorithm. Implements Groebner base computation via Groebner Walk algorithm. See "The generic Groebner walk" by Fukuda, Jensen, Lauritzen, Thomas, 2005. The start term order t1 can be set by a constructor. The target term order t2 is taken from the input polynomials term order.
See Also:
  • Field Details

    • logger

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

      private static final boolean debug
    • sgb

      protected GroebnerBaseAbstract<C extends GcdRingElem<C>> sgb
      The backing GB algorithm implementation.
    • startTO

      protected TermOrder startTO
      The start term order t1.
    • iterPrint

      int iterPrint
      Print intermediate GB after this number of iterations.
  • Constructor Details

    • GroebnerBaseWalk

      public GroebnerBaseWalk()
      Constructor.
    • GroebnerBaseWalk

      public GroebnerBaseWalk(RingFactory<C> coFac)
      Constructor.
      Parameters:
      coFac - coefficient ring of polynomial ring.
    • GroebnerBaseWalk

      public GroebnerBaseWalk(RingFactory<C> coFac, TermOrder t1)
      Constructor.
      Parameters:
      coFac - coefficient ring of polynomial ring.
      t1 - start term order.
    • GroebnerBaseWalk

      public GroebnerBaseWalk(GroebnerBaseAbstract<C> gb)
      Constructor.
      Parameters:
      gb - backing GB algorithm.
    • GroebnerBaseWalk

      public GroebnerBaseWalk(GroebnerBaseAbstract<C> gb, TermOrder t1)
      Constructor.
      Parameters:
      gb - backing GB algorithm.
      t1 - start term order.
  • Method Details

    • toString

      public String toString()
      Get the String representation with GB engine.
      Overrides:
      toString in class GroebnerBaseAbstract<C extends GcdRingElem<C>>
      See Also:
    • GB

      public List<GenPolynomial<C>> GB(int modv, List<GenPolynomial<C>> F)
      Groebner base using Groebner Walk algorithm.
      Parameters:
      modv - module variable number.
      F - polynomial list in target term order.
      Returns:
      GB(F) a INVLEX / target term order Groebner base of F.
    • walkGroebnerToTarget

      public List<GenPolynomial<C>> walkGroebnerToTarget(int modv, List<GenPolynomial<C>> Gl, GenPolynomialRing<C> ufac)
      Converts Groebner bases w.r.t. total degree / start term order to Groebner base w.r.t to inverse lexicographical / target term order.
      Parameters:
      modv - module variable number.
      Gl - Groebner base with respect to graded / start term order.
      ufac - target polynomial ring and term order.
      Returns:
      Groebner base w.r.t inverse lexicographical / target term order
    • facetNormal

      public ExpVector facetNormal(TermOrder t1, TermOrder t2, Set<ExpVector> delta, ExpVector zero, long[][] t2weight)
      Determine new facet normal.
      Parameters:
      t1 - old term order.
      t2 - new term order.
      delta - exponent vectors deltas.
      zero - exponent vector.
      t2weight - weight representation of t2.
      Returns:
      new facet normal v or null if no new facet normal exists.
    • terminate

      public void terminate()
      Cleanup and terminate ThreadPool.
      Overrides:
      terminate in class GroebnerBaseAbstract<C extends GcdRingElem<C>>
    • cancel

      public int cancel()
      Cancel ThreadPool.
      Overrides:
      cancel in class GroebnerBaseAbstract<C extends GcdRingElem<C>>
    • liftReductas

      public List<GenPolynomial<C>> liftReductas(List<Monomial<C>> M, List<Monomial<C>> Mp, List<GenPolynomial<C>> G, List<GenPolynomial<C>> A)
      Lift leading polynomials to full Groebner base with respect to term order.
      Parameters:
      M - new leading monomial list of polynomials as marks.
      Mp - old leading monomial list of polynomials as marks.
      G - Groebner base polynomials for lift.
      A - polynomial list of leading omega polynomials to lift.
      Returns:
      lift(A) a Groebner base wrt M of ideal(G).