Package edu.jas.gb

Class ReductionAbstract<C extends RingElem<C>>

    • Field Detail

      • logger

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

        private static final boolean debug
    • Constructor Detail

      • ReductionAbstract

        public ReductionAbstract()
        Constructor.
    • Method Detail

      • SPolynomial

        public GenPolynomial<C> SPolynomial​(java.util.List<GenPolynomial<C>> S,
                                            int i,
                                            GenPolynomial<C> A,
                                            int j,
                                            GenPolynomial<C> B)
        S-Polynomial with recording.
        Specified by:
        SPolynomial in interface Reduction<C extends RingElem<C>>
        Parameters:
        S - recording matrix, is modified. Note the negative S-polynomial is recorded as required by all applications.
        i - index of A in basis list.
        A - a polynomial.
        j - index of B in basis list.
        B - a polynomial.
        Returns:
        Spol(A, B), the S-Polynomial for A and B.
      • moduleCriterion

        public boolean moduleCriterion​(int modv,
                                       GenPolynomial<C> A,
                                       GenPolynomial<C> B)
        Module criterium.
        Specified by:
        moduleCriterion in interface Reduction<C extends RingElem<C>>
        Parameters:
        modv - number of module variables.
        A - polynomial.
        B - polynomial.
        Returns:
        true if the module S-polynomial(i,j) is required.
      • moduleCriterion

        public boolean moduleCriterion​(int modv,
                                       ExpVector ei,
                                       ExpVector ej)
        Module criterium.
        Specified by:
        moduleCriterion in interface Reduction<C extends RingElem<C>>
        Parameters:
        modv - number of module variables.
        ei - ExpVector.
        ej - ExpVector.
        Returns:
        true if the module S-polynomial(i,j) is required.
      • criterion4

        public boolean criterion4​(GenPolynomial<C> A,
                                  GenPolynomial<C> B,
                                  ExpVector e)
        GB criterium 4. Use only for commutative polynomial rings.
        Specified by:
        criterion4 in interface Reduction<C extends RingElem<C>>
        Parameters:
        A - polynomial.
        B - polynomial.
        e - = lcm(ht(A),ht(B))
        Returns:
        true if the S-polynomial(i,j) is required, else false.
      • criterion4

        public boolean criterion4​(ExpVector ei,
                                  ExpVector ej,
                                  ExpVector e)
        GB criterium 4. Use only for commutative polynomial rings.
        Specified by:
        criterion4 in interface Reduction<C extends RingElem<C>>
        Parameters:
        ei - exponent vector.
        ej - exponent vector.
        e - = lcm(ei,ej)
        Returns:
        true if the S-polynomial(i,j) is required, else false.
      • normalformMarked

        public GenPolynomial<C> normalformMarked​(java.util.List<Monomial<C>> Mp,
                                                 java.util.List<GenPolynomial<C>> Pp,
                                                 GenPolynomial<C> Ap)
        Normalform with respect to marked head terms.
        Parameters:
        Mp - leading monomial list.
        Pp - polynomial list.
        Ap - polynomial.
        Returns:
        nf(Ap) with respect to Mp+Pp.
      • normalform

        public ModuleList<C> normalform​(ModuleList<C> Pp,
                                        ModuleList<C> Ap)
        Module normalform set.
        Parameters:
        Ap - module list.
        Pp - module list.
        Returns:
        list of nf(a) with respect to Pp for all a in Ap.
      • normalform

        public ModuleList<C> normalform​(ModuleList<C> Pp,
                                        ModuleList<C> Ap,
                                        boolean top)
        Module normalform set.
        Parameters:
        Ap - module list.
        Pp - module list.
        top - true for TOP term order, false for POT term order.
        Returns:
        list of nf(a) with respect to Pp for all a in Ap.
      • isTopReducible

        public boolean isTopReducible​(java.util.List<GenPolynomial<C>> P,
                                      GenPolynomial<C> A)
        Is top reducible.
        Specified by:
        isTopReducible in interface Reduction<C extends RingElem<C>>
        Parameters:
        A - polynomial.
        P - polynomial list.
        Returns:
        true if A is top reducible with respect to P.
      • isReducible

        public boolean isReducible​(java.util.List<GenPolynomial<C>> Pp,
                                   GenPolynomial<C> Ap)
        Is reducible.
        Specified by:
        isReducible in interface Reduction<C extends RingElem<C>>
        Parameters:
        Ap - polynomial.
        Pp - polynomial list.
        Returns:
        true if Ap is reducible with respect to Pp.
      • isNormalform

        public boolean isNormalform​(java.util.List<GenPolynomial<C>> Pp,
                                    GenPolynomial<C> Ap)
        Is in Normalform.
        Specified by:
        isNormalform in interface Reduction<C extends RingElem<C>>
        Parameters:
        Ap - polynomial.
        Pp - polynomial list.
        Returns:
        true if Ap is in normalform with respect to Pp.
      • isNormalform

        public boolean isNormalform​(java.util.List<GenPolynomial<C>> Pp)
        Is in Normalform.
        Specified by:
        isNormalform in interface Reduction<C extends RingElem<C>>
        Parameters:
        Pp - polynomial list.
        Returns:
        true if each Ap in Pp is in normalform with respect to Pp\{Ap}.
      • irreducibleSet

        public java.util.List<GenPolynomial<C>> irreducibleSet​(java.util.List<GenPolynomial<C>> Pp)
        Irreducible set.
        Specified by:
        irreducibleSet in interface Reduction<C extends RingElem<C>>
        Parameters:
        Pp - polynomial list.
        Returns:
        a list P of monic polynomials which are in normalform wrt. P and with ideal(Pp) = ideal(P).
      • isReductionNF

        public boolean isReductionNF​(java.util.List<GenPolynomial<C>> row,
                                     java.util.List<GenPolynomial<C>> Pp,
                                     GenPolynomial<C> Ap,
                                     GenPolynomial<C> Np)
        Is reduction of normal form.
        Specified by:
        isReductionNF in interface Reduction<C extends RingElem<C>>
        Parameters:
        row - recording matrix.
        Pp - a polynomial list for reduction.
        Ap - a polynomial.
        Np - = nf(Pp,Ap), a normal form of Ap wrt. Pp.
        Returns:
        true, if Ap == sum( row[i]*Pp[i] ) + Np, else false. //??