Package edu.jas.gbufd

Class GroebnerBaseWalk<C extends GcdRingElem<C>>

  • Type Parameters:
    C - coefficient type
    All Implemented Interfaces:
    GroebnerBase<C>, java.io.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:
    GBAlgorithmBuilder, GBFactory, Serialized Form
    • Field Detail

      • logger

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

        private static final boolean debug
      • startTO

        protected TermOrder startTO
        The start term order t1.
      • iterPrint

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

      • 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 Detail

      • GB

        public java.util.List<GenPolynomial<C>> GB​(int modv,
                                                   java.util.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 java.util.List<GenPolynomial<C>> walkGroebnerToTarget​(int modv,
                                                                     java.util.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,
                                     java.util.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.
      • liftReductas

        public java.util.List<GenPolynomial<C>> liftReductas​(java.util.List<Monomial<C>> M,
                                                             java.util.List<Monomial<C>> Mp,
                                                             java.util.List<GenPolynomial<C>> G,
                                                             java.util.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).