Package edu.jas.gbufd
Class PolyGBUtil
- java.lang.Object
-
- edu.jas.gbufd.PolyGBUtil
-
public class PolyGBUtil extends java.lang.Object
Package gbufd utilities.- Author:
- Heinz Kredel
-
-
Constructor Summary
Constructors Constructor Description PolyGBUtil()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static <C extends GcdRingElem<C>>
GenPolynomial<C>chineseRemainderTheorem(java.util.List<java.util.List<GenPolynomial<C>>> F, java.util.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>>coefficientPseudoRemainderBase(GenPolynomial<GenPolynomial<C>> P, GenPolynomial<C> A)
Polynomial leading coefficient pseudo remainder, base case.static <C extends GcdRingElem<C>>
GenPolynomial<C>CRTInterpolation(GenPolynomialRing<C> fac, java.util.List<java.util.List<C>> E, java.util.List<C> V)
Chinese remainder theorem, interpolation.static <C extends GcdRingElem<C>>
java.util.List<GenPolynomial<C>>intersect(GenPolynomialRing<C> pfac, java.util.List<GenPolynomial<C>> A, java.util.List<GenPolynomial<C>> B)
Intersection.static <C extends GcdRingElem<C>>
java.util.List<GenSolvablePolynomial<C>>intersect(GenSolvablePolynomialRing<C> pfac, java.util.List<GenSolvablePolynomial<C>> A, java.util.List<GenSolvablePolynomial<C>> B)
Intersection.static <C extends GcdRingElem<C>>
java.util.List<GenWordPolynomial<C>>intersect(GenWordPolynomialRing<C> pfac, java.util.List<GenWordPolynomial<C>> A, java.util.List<GenWordPolynomial<C>> B)
Intersection.static <C extends GcdRingElem<C>>
java.util.List<GenWordPolynomial<C>>intersect(GenWordPolynomialRing<C> pfac, java.util.List<GenWordPolynomial<C>> A, java.util.List<GenWordPolynomial<C>> B, WordGroebnerBaseAbstract<C> bb)
Intersection.static <C extends GcdRingElem<C>>
booleanisChineseRemainder(java.util.List<java.util.List<GenPolynomial<C>>> F, java.util.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>[]quotientRemainder(GenSolvablePolynomial<C> n, GenSolvablePolynomial<C> d)
Solvable quotient and remainder via reduction.static <C extends GcdRingElem<C>>
java.util.List<GenPolynomial<C>>subRing(java.util.List<GenPolynomial<C>> A)
Subring generators.static <C extends GcdRingElem<C>>
booleansubRingAndMember(java.util.List<GenPolynomial<C>> A, GenPolynomial<C> g)
Subring and membership test.static <C extends GcdRingElem<C>>
booleansubRingMember(java.util.List<GenPolynomial<C>> A, GenPolynomial<C> g)
Subring membership.static <C extends RingElem<C>>
GenPolynomial<C>topCoefficientPseudoRemainder(java.util.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(java.util.List<GenPolynomial<C>> A, GenPolynomial<C> P)
Top pseudo reduction wrt the main variables.static <C extends RingElem<C>>
java.util.List<GenPolynomial<C>>zeroDegrees(java.util.List<GenPolynomial<C>> A)
Extract polynomials with degree zero in the main variable.
-
-
-
Constructor Detail
-
PolyGBUtil
public PolyGBUtil()
-
-
Method Detail
-
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(java.util.List<GenPolynomial<C>> A, GenPolynomial<C> P)
Top pseudo reduction wrt the main variables.- Parameters:
P
- generic polynomial.A
- list of generic polynomials sorted according to appearing main variables.- Returns:
- top pseudo remainder of P wrt. A for the appearing variables.
-
topCoefficientPseudoRemainder
public static <C extends RingElem<C>> GenPolynomial<C> topCoefficientPseudoRemainder(java.util.List<GenPolynomial<C>> A, GenPolynomial<C> P)
Top coefficient pseudo remainder of the leading coefficient of P wrt A in the main variables.- Parameters:
P
- generic polynomial in n+1 variables.A
- list of generic polynomials in n variables sorted according to appearing main 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>> java.util.List<GenPolynomial<C>> zeroDegrees(java.util.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>> java.util.List<GenPolynomial<C>> intersect(GenPolynomialRing<C> pfac, java.util.List<GenPolynomial<C>> A, java.util.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>> java.util.List<GenSolvablePolynomial<C>> intersect(GenSolvablePolynomialRing<C> pfac, java.util.List<GenSolvablePolynomial<C>> A, java.util.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>> java.util.List<GenWordPolynomial<C>> intersect(GenWordPolynomialRing<C> pfac, java.util.List<GenWordPolynomial<C>> A, java.util.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>> java.util.List<GenWordPolynomial<C>> intersect(GenWordPolynomialRing<C> pfac, java.util.List<GenWordPolynomial<C>> A, java.util.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
public static <C extends GcdRingElem<C>> java.util.List<GenPolynomial<C>> subRing(java.util.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(java.util.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(java.util.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(java.util.List<java.util.List<GenPolynomial<C>>> F, java.util.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(java.util.List<java.util.List<GenPolynomial<C>>> F, java.util.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, java.util.List<java.util.List<C>> E, java.util.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.
-
-