Package edu.jas.gbufd

Class PolyGBUtil

java.lang.Object
edu.jas.gbufd.PolyGBUtil

public class PolyGBUtil extends Object
Package gbufd utilities.
  • Field Details

    • logger

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

      private static final boolean debug
  • Constructor Details

    • PolyGBUtil

      public PolyGBUtil()
  • Method Details

    • isResultant

      public static <C extends GcdRingElem<C>> boolean isResultant(GenPolynomial<C> A, GenPolynomial<C> B, GenPolynomial<C> r)
      Test for resultant.
      Parameters:
      A - generic polynomial.
      B - generic polynomial.
      r - generic polynomial.
      Returns:
      true if res(A,B) isContained in ideal(A,B), else false.
    • topPseudoRemainder

      public static <C extends RingElem<C>> GenPolynomial<C> topPseudoRemainder(List<GenPolynomial<C>> A, GenPolynomial<C> P)
      Top pseudo reduction wrt the main variables.
      Parameters:
      A - list of generic polynomials sorted according to appearing main variables.
      P - generic polynomial.
      Returns:
      top pseudo remainder of P wrt. A for the appearing variables.
    • topCoefficientPseudoRemainder

      public static <C extends RingElem<C>> GenPolynomial<C> topCoefficientPseudoRemainder(List<GenPolynomial<C>> A, GenPolynomial<C> P)
      Top coefficient pseudo remainder of the leading coefficient of P wrt A in the main variables.
      Parameters:
      A - list of generic polynomials in n variables sorted according to appearing main variables.
      P - generic polynomial in n+1 variables.
      Returns:
      pseudo remainder of the leading coefficient of P wrt A.
    • coefficientPseudoRemainder

      public static <C extends RingElem<C>> GenPolynomial<GenPolynomial<GenPolynomial<C>>> coefficientPseudoRemainder(GenPolynomial<GenPolynomial<GenPolynomial<C>>> P, GenPolynomial<GenPolynomial<C>> A)
      Polynomial leading coefficient pseudo remainder.
      Parameters:
      P - generic polynomial in n+1 variables.
      A - generic polynomial in n variables.
      Returns:
      pseudo remainder of the leading coefficient of P wrt A, with ldcf(A)m' P = quotient * A + remainder.
    • coefficientPseudoRemainderBase

      public static <C extends RingElem<C>> GenPolynomial<GenPolynomial<C>> coefficientPseudoRemainderBase(GenPolynomial<GenPolynomial<C>> P, GenPolynomial<C> A)
      Polynomial leading coefficient pseudo remainder, base case.
      Parameters:
      P - generic polynomial in 1+1 variables.
      A - generic polynomial in 1 variable.
      Returns:
      pseudo remainder of the leading coefficient of P wrt. A, with ldcf(A)m' P = quotient * A + remainder.
    • zeroDegrees

      public static <C extends RingElem<C>> List<GenPolynomial<C>> zeroDegrees(List<GenPolynomial<C>> A)
      Extract polynomials with degree zero in the main variable.
      Parameters:
      A - list of generic polynomials in n variables.
      Returns:
      Z = [a_i] with deg(a_i,x_n) = 0 and in n-1 variables.
    • intersect

      public static <C extends GcdRingElem<C>> List<GenPolynomial<C>> intersect(GenPolynomialRing<C> pfac, List<GenPolynomial<C>> A, List<GenPolynomial<C>> B)
      Intersection. Generators for the intersection of ideals.
      Parameters:
      pfac - polynomial ring
      A - list of polynomials
      B - list of polynomials
      Returns:
      generators for (A \cap B)
    • intersect

      public static <C extends GcdRingElem<C>> List<GenSolvablePolynomial<C>> intersect(GenSolvablePolynomialRing<C> pfac, List<GenSolvablePolynomial<C>> A, List<GenSolvablePolynomial<C>> B)
      Intersection. Generators for the intersection of ideals.
      Parameters:
      pfac - solvable polynomial ring
      A - list of polynomials
      B - list of polynomials
      Returns:
      generators for (A \cap B)
    • intersect

      public static <C extends GcdRingElem<C>> List<GenWordPolynomial<C>> intersect(GenWordPolynomialRing<C> pfac, List<GenWordPolynomial<C>> A, List<GenWordPolynomial<C>> B)
      Intersection. Generators for the intersection of word ideals.
      Parameters:
      pfac - word polynomial ring
      A - list of word polynomials
      B - list of word polynomials
      Returns:
      generators for (A \cap B) if it exists
    • intersect

      public static <C extends GcdRingElem<C>> List<GenWordPolynomial<C>> intersect(GenWordPolynomialRing<C> pfac, List<GenWordPolynomial<C>> A, List<GenWordPolynomial<C>> B, WordGroebnerBaseAbstract<C> bb)
      Intersection. Generators for the intersection of word ideals.
      Parameters:
      pfac - word polynomial ring
      A - list of word polynomials
      B - list of word polynomials
      bb - Groebner Base engine
      Returns:
      generators for (A \cap B) if it exists
    • quotientRemainder

      public static <C extends GcdRingElem<C>> GenSolvablePolynomial<C>[] quotientRemainder(GenSolvablePolynomial<C> n, GenSolvablePolynomial<C> d)
      Solvable quotient and remainder via reduction.
      Parameters:
      n - first solvable polynomial.
      d - second solvable polynomial.
      Returns:
      [ n/d, n - (n/d)*d ]
    • subRing

      public static <C extends GcdRingElem<C>> List<GenPolynomial<C>> subRing(List<GenPolynomial<C>> A)
      Subring generators.
      Parameters:
      A - list of polynomials in n variables.
      Returns:
      a Groebner base of polynomials in m > n variables generating the subring of K[A].
    • subRingMember

      public static <C extends GcdRingElem<C>> boolean subRingMember(List<GenPolynomial<C>> A, GenPolynomial<C> g)
      Subring membership.
      Parameters:
      A - Groebner base of polynomials in m > n variables generating the subring of elements of K[A].
      g - polynomial in n variables.
      Returns:
      true, if g \in K[A], else false.
    • subRingAndMember

      public static <C extends GcdRingElem<C>> boolean subRingAndMember(List<GenPolynomial<C>> A, GenPolynomial<C> g)
      Subring and membership test.
      Parameters:
      A - list of polynomials in n variables.
      g - polynomial in n variables.
      Returns:
      true, if g \in K[A], else false.
    • chineseRemainderTheorem

      public static <C extends GcdRingElem<C>> GenPolynomial<C> chineseRemainderTheorem(List<List<GenPolynomial<C>>> F, List<GenPolynomial<C>> A)
      Chinese remainder theorem.
      Parameters:
      F - = ( F_i ) list of list of polynomials in n variables.
      A - = ( f_i ) list of polynomials in n variables.
      Returns:
      p \in \Cap_i (f_i + ideal(F_i)) if it exists, else null.
    • isChineseRemainder

      public static <C extends GcdRingElem<C>> boolean isChineseRemainder(List<List<GenPolynomial<C>>> F, List<GenPolynomial<C>> A, GenPolynomial<C> h)
      Is Chinese remainder.
      Parameters:
      F - = ( F_i ) list of list of polynomials in n variables.
      A - = ( f_i ) list of polynomials in n variables.
      h - polynomial in n variables.
      Returns:
      true if h \in \Cap_i (f_i + ideal(F_i)), else false.
    • CRTInterpolation

      public static <C extends GcdRingElem<C>> GenPolynomial<C> CRTInterpolation(GenPolynomialRing<C> fac, List<List<C>> E, List<C> V)
      Chinese remainder theorem, interpolation.
      Parameters:
      fac - polynomial ring over K in n variables.
      E - = ( E_i ), E_i = ( e_ij ) list of list of elements of K, the evaluation points.
      V - = ( f_i ) list of elements of K, the evaluation values.
      Returns:
      p \in K[X1,...,Xn], with p(E_i) = f_i, if it exists, else null.