Package edu.jas.gb

Class SolvableGroebnerBaseAbstract<C extends RingElem<C>>

    • Constructor Detail

      • SolvableGroebnerBaseAbstract

        public SolvableGroebnerBaseAbstract()
        Constructor.
      • SolvableGroebnerBaseAbstract

        public SolvableGroebnerBaseAbstract​(SolvableReduction<C> sred)
        Constructor.
        Parameters:
        sred - Solvable reduction engine
      • SolvableGroebnerBaseAbstract

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

        public SolvableGroebnerBaseAbstract​(SolvableReduction<C> sred,
                                            PairList<C> pl)
        Constructor.
        Parameters:
        sred - Solvable reduction engine
        pl - pair selection strategy
    • Method Detail

      • normalizeZerosOnes

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

        public boolean isLeftGB​(java.util.List<GenSolvablePolynomial<C>> F,
                                boolean b)
        Left Groebner base test.
        Parameters:
        F - solvable polynomial list.
        b - true for simple test, false for GB test.
        Returns:
        true, if F is a Groebner base, else false.
      • isLeftGB

        public boolean isLeftGB​(int modv,
                                java.util.List<GenSolvablePolynomial<C>> F)
        Left Groebner base test.
        Specified by:
        isLeftGB in interface SolvableGroebnerBase<C extends RingElem<C>>
        Parameters:
        modv - module variable number.
        F - solvable polynomial list.
        Returns:
        true, if F is a Groebner base, else false.
      • isLeftGB

        public boolean isLeftGB​(int modv,
                                java.util.List<GenSolvablePolynomial<C>> F,
                                boolean b)
        Left Groebner base test.
        Parameters:
        modv - module variable number.
        F - solvable polynomial list.
        b - true for simple test, false for GB test.
        Returns:
        true, if F is a Groebner base, else false.
      • isLeftGBsimple

        public boolean isLeftGBsimple​(int modv,
                                      java.util.List<GenSolvablePolynomial<C>> F)
        Left Groebner base test.
        Parameters:
        modv - number of module variables.
        F - solvable polynomial list.
        Returns:
        true, if F is a left Groebner base, else false.
      • isLeftGBidem

        public boolean isLeftGBidem​(int modv,
                                    java.util.List<GenSolvablePolynomial<C>> F)
        Left Groebner base idempotence test.
        Parameters:
        modv - module variable number.
        F - solvable polynomial list.
        Returns:
        true, if F is equal to GB(F), else false.
      • isTwosidedGB

        public boolean isTwosidedGB​(int modv,
                                    java.util.List<GenSolvablePolynomial<C>> Fp)
        Twosided Groebner base test.
        Specified by:
        isTwosidedGB in interface SolvableGroebnerBase<C extends RingElem<C>>
        Parameters:
        modv - number of module variables.
        Fp - solvable polynomial list.
        Returns:
        true, if Fp is a two-sided Groebner base, else false.
      • isTwosidedGBidem

        public boolean isTwosidedGBidem​(java.util.List<GenSolvablePolynomial<C>> F)
        Twosided Groebner base idempotence test.
        Parameters:
        F - solvable polynomial list.
        Returns:
        true, if F is equal to GB(F), else false.
      • isTwosidedGBidem

        public boolean isTwosidedGBidem​(int modv,
                                        java.util.List<GenSolvablePolynomial<C>> F)
        Twosided Groebner base idempotence test.
        Parameters:
        modv - module variable number.
        F - solvable polynomial list.
        Returns:
        true, if F is equal to GB(F), else false.
      • isRightGB

        public boolean isRightGB​(int modv,
                                 java.util.List<GenSolvablePolynomial<C>> F)
        Right Groebner base test.
        Specified by:
        isRightGB in interface SolvableGroebnerBase<C extends RingElem<C>>
        Parameters:
        modv - number of module variables.
        F - solvable polynomial list.
        Returns:
        true, if F is a right Groebner base, else false.
      • isRightGBidem

        public boolean isRightGBidem​(java.util.List<GenSolvablePolynomial<C>> F)
        Right Groebner base idempotence test.
        Parameters:
        F - solvable polynomial list.
        Returns:
        true, if F is equal to GB(F), else false.
      • isRightGBidem

        public boolean isRightGBidem​(int modv,
                                     java.util.List<GenSolvablePolynomial<C>> F)
        Right Groebner base idempotence test.
        Parameters:
        modv - module variable number.
        F - solvable polynomial list.
        Returns:
        true, if F is equal to GB(F), else false.
      • extLeftGB

        public SolvableExtendedGB<C> extLeftGB​(int modv,
                                               java.util.List<GenSolvablePolynomial<C>> F)
        Solvable Extended Groebner base using critical pair class.
        Specified by:
        extLeftGB in interface SolvableGroebnerBase<C extends RingElem<C>>
        Parameters:
        modv - module variable number.
        F - polynomial list.
        Returns:
        a container for an extended left Groebner base G of F together with back-and-forth transformations.
      • rightMinimalGB

        public java.util.List<GenSolvablePolynomial<C>> rightMinimalGB​(java.util.List<GenSolvablePolynomial<C>> Gp)
        Right minimal ordered groebner basis.
        Parameters:
        Gp - a right Groebner base.
        Returns:
        rightGBmi(F) a minimal right Groebner base of Gp.
      • extRightGB

        public SolvableExtendedGB<C> extRightGB​(java.util.List<GenSolvablePolynomial<C>> F)
        Solvable Extended Groebner base using critical pair class.
        Parameters:
        F - solvable polynomial list.
        Returns:
        a container for an extended right Groebner base of F.
      • extRightGB

        public SolvableExtendedGB<C> extRightGB​(int modv,
                                                java.util.List<GenSolvablePolynomial<C>> F)
        Solvable Extended Groebner base using critical pair class.
        Parameters:
        modv - module variable number.
        F - polynomial list.
        Returns:
        a container for an extended right Groebner base G of F together with back-and-forth transformations.
      • isLeftGB

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

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

        public ModuleList<C> leftGB​(ModuleList<C> M,
                                    boolean top)
        Left Groebner base using pairlist class.
        Parameters:
        M - a module basis.
        top - true for TOP term order, false for POT term order.
        Returns:
        leftGB(M) a left Groebner base for M.
      • isTwosidedGB

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

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

        public ModuleList<C> twosidedGB​(ModuleList<C> M,
                                        boolean top)
        Twosided Groebner base using pairlist class.
        Parameters:
        M - a module basis.
        top - true for TOP term order, false for POT term order.
        Returns:
        tsGB(M) a twosided Groebner base for M.
      • isRightGB

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

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

        public int commonZeroTest​(java.util.List<GenSolvablePolynomial<C>> A)
        Ideal common zero test.
        Returns:
        -1, 0 or 1 if dimension(this) &eq; -1, 0 or ≥ 1.
      • univariateDegrees

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

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

        public java.util.List<GenSolvablePolynomial<C>> constructUnivariate​(java.util.List<GenSolvablePolynomial<C>> G)
        Construct univariate solvable polynomials of minimal degree in all variables in zero dimensional left ideal(G).
        Returns:
        list of univariate polynomial of minimal degree in each variable in ideal_left(G)
      • terminate

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

        public int cancel()
        Cancel ThreadPool.