Package edu.jas.gbufd
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.
-