Package edu.jas.gb

Class GroebnerBaseAbstract<C extends RingElem<C>>

java.lang.Object
edu.jas.gb.GroebnerBaseAbstract<C>
Type Parameters:
C - coefficient type
All Implemented Interfaces:
GroebnerBase<C>, Serializable
Direct Known Subclasses:
DGroebnerBaseSeq, GBOptimized, GBProxy, GroebnerBaseDistributedEC, GroebnerBaseDistributedHybridEC, GroebnerBaseFGLM, GroebnerBaseParallel, GroebnerBaseParIter, GroebnerBasePartial, GroebnerBasePseudoParallel, GroebnerBasePseudoRecParallel, GroebnerBasePseudoRecSeq, GroebnerBasePseudoSeq, GroebnerBaseQuotient, GroebnerBaseRational, GroebnerBaseSeq, GroebnerBaseSeqIter, GroebnerBaseSeqPairDistributed, GroebnerBaseSeqPairParallel, GroebnerBaseSeqPairSeq, GroebnerBaseSigSeqIter, GroebnerBaseWalk, RGroebnerBaseSeq

public abstract class GroebnerBaseAbstract<C extends RingElem<C>> extends Object implements GroebnerBase<C>
Groebner Bases abstract class. Implements common Groebner bases and GB test methods.
See Also:
  • Field Details

    • logger

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

      private static final boolean debug
    • red

      public final Reduction<C extends RingElem<C>> red
      Reduction engine.
    • strategy

      public final PairList<C extends RingElem<C>> strategy
      Strategy for pair selection.
    • blas

      public final BasicLinAlg<GenPolynomial<C extends RingElem<C>>> blas
      linear algebra engine.
  • Constructor Details

    • GroebnerBaseAbstract

      public GroebnerBaseAbstract()
      Constructor.
    • GroebnerBaseAbstract

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

      public GroebnerBaseAbstract(PairList<C> pl)
      Constructor.
      Parameters:
      pl - pair selection strategy
    • GroebnerBaseAbstract

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

    • toString

      public String toString()
      Get the String representation with GB engines.
      Overrides:
      toString in class Object
      See Also:
    • normalizeZerosOnes

      public List<GenPolynomial<C>> normalizeZerosOnes(List<GenPolynomial<C>> A)
      Normalize polynomial list.
      Parameters:
      A - list of polynomials.
      Returns:
      list of polynomials with zeros removed and ones/units reduced.
    • isGB

      public boolean isGB(List<GenPolynomial<C>> F)
      Groebner base test.
      Specified by:
      isGB in interface GroebnerBase<C extends RingElem<C>>
      Parameters:
      F - polynomial list.
      Returns:
      true, if F is a Groebner base, else false.
    • isGB

      public boolean isGB(int modv, List<GenPolynomial<C>> F)
      Groebner base test.
      Specified by:
      isGB in interface GroebnerBase<C extends RingElem<C>>
      Parameters:
      modv - module variable number.
      F - polynomial list.
      Returns:
      true, if F is a Groebner base, else false.
    • isGB

      public boolean isGB(List<GenPolynomial<C>> F, boolean b)
      Groebner base test.
      Parameters:
      F - polynomial list.
      b - true for simple test, false for GB test.
      Returns:
      true, if F is a Groebner base, else false.
    • isGB

      public boolean isGB(int modv, List<GenPolynomial<C>> F, boolean b)
      Groebner base test.
      Parameters:
      modv - module variable number.
      F - polynomial list.
      b - true for simple test, false for GB test.
      Returns:
      true, if F is a Groebner base, else false.
    • isGBsimple

      public boolean isGBsimple(int modv, List<GenPolynomial<C>> F)
      Groebner base simple test.
      Parameters:
      modv - module variable number.
      F - polynomial list.
      Returns:
      true, if F is a Groebner base, else false.
    • criterion3

      boolean criterion3(int i, int j, ExpVector eij, List<GenPolynomial<C>> P)
      GB criterium 3.
      Returns:
      true if the S-polynomial(i,j) is required.
    • isGBidem

      public boolean isGBidem(int modv, List<GenPolynomial<C>> F)
      Groebner base idempotence test.
      Parameters:
      modv - module variable number.
      F - polynomial list.
      Returns:
      true, if F is equal to GB(F), else false.
    • commonZeroTest

      public int commonZeroTest(List<GenPolynomial<C>> F)
      Common zero test.
      Parameters:
      F - polynomial list.
      Returns:
      -1, 0 or 1 if dimension(ideal(F)) &eq; -1, 0 or ≥ 1.
    • GB

      public List<GenPolynomial<C>> GB(List<GenPolynomial<C>> F)
      Groebner base using pairlist class.
      Specified by:
      GB in interface GroebnerBase<C extends RingElem<C>>
      Parameters:
      F - polynomial list.
      Returns:
      GB(F) a Groebner base of F.
    • isGB

      public boolean isGB(ModuleList<C> M)
      isGB.
      Specified by:
      isGB in interface GroebnerBase<C extends RingElem<C>>
      Parameters:
      M - a module basis.
      Returns:
      true, if M is a Groebner base, else false.
    • isGB

      public boolean isGB(ModuleList<C> M, boolean top)
      isGB.
      Parameters:
      M - a module basis.
      top - true for TOP term order, false for POT term order.
      Returns:
      true, if M is a Groebner base, else false.
    • GB

      public ModuleList<C> GB(ModuleList<C> M)
      GB.
      Specified by:
      GB in interface GroebnerBase<C extends RingElem<C>>
      Parameters:
      M - a module basis.
      Returns:
      GB(M), a Groebner base of M.
    • GB

      public ModuleList<C> GB(ModuleList<C> M, boolean top)
      GB.
      Parameters:
      M - a module basis.
      top - true for TOP term order, false for POT term order.
      Returns:
      GB(M), a Groebner base of M wrt. TOP or POT.
    • extGB

      public ExtendedGB<C> extGB(List<GenPolynomial<C>> F)
      Extended Groebner base using critical pair class.
      Specified by:
      extGB in interface GroebnerBase<C extends RingElem<C>>
      Parameters:
      F - polynomial list.
      Returns:
      a container for a Groebner base G of F together with back-and-forth transformations.
    • extGB

      public ExtendedGB<C> extGB(int modv, List<GenPolynomial<C>> F)
      Extended Groebner base using critical pair class.
      Specified by:
      extGB in interface GroebnerBase<C extends RingElem<C>>
      Parameters:
      modv - module variable number.
      F - polynomial list.
      Returns:
      a container for a Groebner base G of F together with back-and-forth transformations.
    • minimalGB

      public List<GenPolynomial<C>> minimalGB(List<GenPolynomial<C>> Gp)
      Minimal ordered Groebner basis.
      Specified by:
      minimalGB in interface GroebnerBase<C extends RingElem<C>>
      Parameters:
      Gp - a Groebner base.
      Returns:
      a reduced Groebner base of Gp.
    • isMinimalGB

      public boolean isMinimalGB(List<GenPolynomial<C>> Gp)
      Test for minimal ordered Groebner basis.
      Parameters:
      Gp - an ideal base.
      Returns:
      true, if Gp is a reduced minimal Groebner base.
    • isReductionMatrix

      public boolean isReductionMatrix(ExtendedGB<C> exgb)
      Test if reduction matrix.
      Specified by:
      isReductionMatrix in interface GroebnerBase<C extends RingElem<C>>
      Parameters:
      exgb - an ExtendedGB container.
      Returns:
      true, if exgb contains a reduction matrix, else false.
    • isMinReductionMatrix

      public boolean isMinReductionMatrix(ExtendedGB<C> exgb)
      Test if minimal reduction matrix.
      Parameters:
      exgb - an ExtendedGB container.
      Returns:
      true, if exgb contains a minimal reduction matrix, else false.
    • isReductionMatrix

      public boolean isReductionMatrix(List<GenPolynomial<C>> F, List<GenPolynomial<C>> G, List<List<GenPolynomial<C>>> Mf, List<List<GenPolynomial<C>>> Mg)
      Test if reduction matrix.
      Specified by:
      isReductionMatrix in interface GroebnerBase<C extends RingElem<C>>
      Parameters:
      F - a polynomial list.
      G - a Groebner base, G starting with +/- elements of F.
      Mf - a possible reduction matrix.
      Mg - a possible reduction matrix.
      Returns:
      true, if Mg and Mf are reduction matrices, else false.
    • isMinReductionMatrix

      public boolean isMinReductionMatrix(List<GenPolynomial<C>> F, List<GenPolynomial<C>> G, List<List<GenPolynomial<C>>> Mf, List<List<GenPolynomial<C>>> Mg)
      Test if minimal reduction matrix.
      Parameters:
      F - a polynomial list.
      G - a minimal Groebner base of F.
      Mf - a possible reduction matrix.
      Mg - a possible reduction matrix.
      Returns:
      true, if Mg and Mf are reduction matrices, else false.
    • normalizeMatrix

      public List<List<GenPolynomial<C>>> normalizeMatrix(int flen, List<List<GenPolynomial<C>>> M)
      Normalize M. Scale and shift right triangular matrix (new G elements) to left and make all right column elements zero. Then truncate all rows to the size of F.
      Parameters:
      flen - length of rows.
      M - a reduction matrix.
      Returns:
      normalized M.
    • minimalExtendedGB

      public ExtendedGB<C> minimalExtendedGB(int flen, List<GenPolynomial<C>> Gp, List<List<GenPolynomial<C>>> M)
      Minimal extended groebner basis.
      Parameters:
      flen - length of rows.
      Gp - a Groebner base.
      M - a reduction matrix, is modified.
      Returns:
      a (partially) reduced Groebner base of Gp in a (fake) container.
    • univariateDegrees

      public List<Long> univariateDegrees(List<GenPolynomial<C>> A)
      Univariate head term degrees.
      Parameters:
      A - list of polynomials.
      Returns:
      a list of the degrees of univariate head terms.
    • constructUnivariate

      public GenPolynomial<C> constructUnivariate(int i, List<GenPolynomial<C>> G)
      Construct univariate polynomial of minimal degree in variable i of a zero dimensional ideal(G).
      Parameters:
      i - variable index.
      G - list of polynomials, a monic reduced Gröbner base of a zero dimensional ideal.
      Returns:
      univariate polynomial of minimal degree in variable i in ideal(G)
    • terminate

      public void terminate()
      Cleanup and terminate ThreadPool.
    • cancel

      public int cancel()
      Cancel ThreadPool.