Class PolyGBUtil
java.lang.Object
edu.jas.gbufd.PolyGBUtil
Package gbufd utilities.
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic <C extends GcdRingElem<C>>
GenPolynomial<C> chineseRemainderTheorem(List<List<GenPolynomial<C>>> F, List<GenPolynomial<C>> A) Chinese remainder theorem.static <C extends RingElem<C>>
GenPolynomial<GenPolynomial<GenPolynomial<C>>> coefficientPseudoRemainder(GenPolynomial<GenPolynomial<GenPolynomial<C>>> P, GenPolynomial<GenPolynomial<C>> A) Polynomial leading coefficient pseudo remainder.static <C extends RingElem<C>>
GenPolynomial<GenPolynomial<C>> Polynomial leading coefficient pseudo remainder, base case.static <C extends GcdRingElem<C>>
GenPolynomial<C> CRTInterpolation(GenPolynomialRing<C> fac, List<List<C>> E, List<C> V) Chinese remainder theorem, interpolation.static <C extends GcdRingElem<C>>
List<GenPolynomial<C>> intersect(GenPolynomialRing<C> pfac, List<GenPolynomial<C>> A, List<GenPolynomial<C>> B) Intersection.static <C extends GcdRingElem<C>>
List<GenSolvablePolynomial<C>> intersect(GenSolvablePolynomialRing<C> pfac, List<GenSolvablePolynomial<C>> A, List<GenSolvablePolynomial<C>> B) Intersection.static <C extends GcdRingElem<C>>
List<GenWordPolynomial<C>> intersect(GenWordPolynomialRing<C> pfac, List<GenWordPolynomial<C>> A, List<GenWordPolynomial<C>> B) Intersection.static <C extends GcdRingElem<C>>
List<GenWordPolynomial<C>> intersect(GenWordPolynomialRing<C> pfac, List<GenWordPolynomial<C>> A, List<GenWordPolynomial<C>> B, WordGroebnerBaseAbstract<C> bb) Intersection.static <C extends GcdRingElem<C>>
booleanisChineseRemainder(List<List<GenPolynomial<C>>> F, List<GenPolynomial<C>> A, GenPolynomial<C> h) Is Chinese remainder.static <C extends GcdRingElem<C>>
booleanisResultant(GenPolynomial<C> A, GenPolynomial<C> B, GenPolynomial<C> r) Test for resultant.static <C extends GcdRingElem<C>>
GenSolvablePolynomial<C>[]Solvable quotient and remainder via reduction.static <C extends GcdRingElem<C>>
List<GenPolynomial<C>> subRing(List<GenPolynomial<C>> A) Subring generators.static <C extends GcdRingElem<C>>
booleansubRingAndMember(List<GenPolynomial<C>> A, GenPolynomial<C> g) Subring and membership test.static <C extends GcdRingElem<C>>
booleansubRingMember(List<GenPolynomial<C>> A, GenPolynomial<C> g) Subring membership.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.static <C extends RingElem<C>>
GenPolynomial<C> topPseudoRemainder(List<GenPolynomial<C>> A, GenPolynomial<C> P) Top pseudo reduction wrt the main variables.static <C extends RingElem<C>>
List<GenPolynomial<C>> zeroDegrees(List<GenPolynomial<C>> A) Extract polynomials with degree zero in the main variable.
-
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
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 ringA- list of polynomialsB- 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 ringA- list of polynomialsB- 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 ringA- list of word polynomialsB- 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 ringA- list of word polynomialsB- list of word polynomialsbb- 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
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.
-