Package edu.jas.gbufd

Class GroebnerBaseFGLM<C extends GcdRingElem<C>>

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

public class GroebnerBaseFGLM<C extends GcdRingElem<C>> extends GroebnerBaseAbstract<C>
Groebner Base sequential FGLM algorithm. Implements Groebner base computation via FGLM algorithm.
See Also:
  • Field Details

    • logger

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

      private GroebnerBaseAbstract<C extends GcdRingElem<C>> sgb
      The backing GB algorithm implementation.
  • Constructor Details

    • GroebnerBaseFGLM

      public GroebnerBaseFGLM()
      Constructor.
    • GroebnerBaseFGLM

      public GroebnerBaseFGLM(Reduction<C> red)
      Constructor.
      Parameters:
      red - Reduction engine
    • GroebnerBaseFGLM

      public GroebnerBaseFGLM(Reduction<C> red, PairList<C> pl)
      Constructor.
      Parameters:
      red - Reduction engine
      pl - pair selection strategy
    • GroebnerBaseFGLM

      public GroebnerBaseFGLM(Reduction<C> red, PairList<C> pl, GroebnerBaseAbstract<C> gb)
      Constructor.
      Parameters:
      red - Reduction engine
      pl - pair selection strategy
      gb - backing GB algorithm.
    • GroebnerBaseFGLM

      public GroebnerBaseFGLM(GroebnerBaseAbstract<C> gb)
      Constructor.
      Parameters:
      gb - backing GB algorithm.
  • 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 FGLM algorithm.
      Parameters:
      modv - module variable number.
      F - polynomial list.
      Returns:
      GB(F) a inv lex term order Groebner base of F.
    • convGroebnerToLex

      public List<GenPolynomial<C>> convGroebnerToLex(List<GenPolynomial<C>> groebnerBasis)
      Algorithm CONVGROEBNER: Converts Groebner bases w.r.t. total degree termorder into Groebner base w.r.t to inverse lexicographical term order
      Returns:
      Groebner base w.r.t to inverse lexicographical term order
    • lMinterm

      public GenPolynomial<C> lMinterm(List<GenPolynomial<C>> G, GenPolynomial<C> t)
      Algorithm lMinterm: MINTERM algorithm for inverse lexicographical term order.
      Parameters:
      G - Groebner basis
      t - Term
      Returns:
      Term that specifies condition (D) or null (Condition (D) in "A computational approach to commutative algebra", Becker, Weispfenning, Kredel 1993, p. 427)
    • redTerms

      public List<GenPolynomial<C>> redTerms(List<GenPolynomial<C>> groebnerBasis)
      Compute the residues to given polynomial list.
      Returns:
      List of reduced terms
    • createRingOfIndeterminates

      GenPolynomialRing<C> createRingOfIndeterminates(GenPolynomialRing<C> ring, int i)
      Internal method to create a polynomial ring in i indeterminates. Create new ring over coefficients of ring with i variables Y1,...,Yi (indeterminate)
      Returns:
      polynomial ring with variables Y1...Yi and coefficient of ring.
    • addIndeterminate

      GenPolynomialRing<C> addIndeterminate(GenPolynomialRing<C> ring)
      Internal method to add new indeterminates. Add another variable (indeterminate) Y_{i+1} to existing ring
      Returns:
      polynomial ring with variables Y1,..,Yi,Yi+1 and coefficients of ring.
    • maxArray

      long maxArray(long[] t)
      Maximum of an array.
      Returns:
      maximum of an array
    • 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>>