Package cc.redberry.rings.poly.univar
Class UnivariateResultants
java.lang.Object
cc.redberry.rings.poly.univar.UnivariateResultants
public final class UnivariateResultants extends Object
Various algorithms to compute (sub)resultants via Euclidean algorithm. Implementation is based on Gathen & Lücking,
"Subresultants revisited", https://doi.org/10.1016/S0304-3975(02)00639-4
- Since:
- 2.5
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
UnivariateResultants.APolynomialRemainderSequence<Poly extends IUnivariatePolynomial<Poly>>
Polynomial remainder sequence (PRS).static class
UnivariateResultants.PolynomialRemainderSequence<E>
Polynomial remainder sequence (PRS).static class
UnivariateResultants.PolynomialRemainderSequenceZp64
Classical division rule for polynomials over Zp -
Method Summary
Modifier and Type Method Description static <E> UnivariateResultants.PolynomialRemainderSequence<E>
ClassicalPRS(UnivariatePolynomial<E> a, UnivariatePolynomial<E> b)
Computes polynomial remainder sequence using classical division algorithmstatic UnivariateResultants.PolynomialRemainderSequenceZp64
ClassicalPRS(UnivariatePolynomialZp64 a, UnivariatePolynomialZp64 b)
Computes polynomial remainder sequence using classical division algorithmstatic <E> E
Discriminant(UnivariatePolynomial<E> a)
Computes discriminant of polynomialstatic long
Discriminant(UnivariatePolynomialZp64 a)
Computes discriminant of polynomialstatic <Poly extends IUnivariatePolynomial<Poly>>
PolyDiscriminantAsPoly(Poly a)
Computes discriminant of polynomial and returns the result as a constant polystatic BigInteger
ModularResultant(UnivariatePolynomial<BigInteger> a, UnivariatePolynomial<BigInteger> b)
Modular algorithm for computing resultants over Zstatic UnivariatePolynomial<Rational<BigInteger>>
ModularResultantInNumberField(UnivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>> a, UnivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>> b)
Modular resultant in simple number fieldstatic UnivariatePolynomial<BigInteger>
ModularResultantInRingOfIntegersOfNumberField(UnivariatePolynomial<UnivariatePolynomial<BigInteger>> a, UnivariatePolynomial<UnivariatePolynomial<BigInteger>> b)
Modular resultant in the ring of integers of number fieldstatic BigInteger
polyPowNumFieldCfBound(BigInteger maxCf, BigInteger maxMinPolyCf, int minPolyDeg, int exponent)
static <E> UnivariateResultants.PolynomialRemainderSequence<E>
PrimitivePRS(UnivariatePolynomial<E> a, UnivariatePolynomial<E> b)
Computes polynomial remainder sequence using primitive division algorithmstatic <E> UnivariateResultants.PolynomialRemainderSequence<E>
PseudoPRS(UnivariatePolynomial<E> a, UnivariatePolynomial<E> b)
Computes polynomial remainder sequence using pseudo division algorithmstatic <E> UnivariateResultants.PolynomialRemainderSequence<E>
ReducedPRS(UnivariatePolynomial<E> a, UnivariatePolynomial<E> b)
Computes polynomial remainder sequence using reduced division algorithmstatic <E> E
Resultant(UnivariatePolynomial<E> a, UnivariatePolynomial<E> b)
Computes resultant of two polynomialsstatic long
Resultant(UnivariatePolynomialZp64 a, UnivariatePolynomialZp64 b)
Computes resultant of two polynomialsstatic <Poly extends IUnivariatePolynomial<Poly>>
PolyResultantAsPoly(Poly a, Poly b)
Computes resultant of two polynomials and returns the result as a constant polystatic <E> UnivariateResultants.PolynomialRemainderSequence<E>
SubresultantPRS(UnivariatePolynomial<E> a, UnivariatePolynomial<E> b)
Computes subresultant polynomial remainder sequencestatic <E> List<E>
Subresultants(UnivariatePolynomial<E> a, UnivariatePolynomial<E> b)
Computes sequence of scalar subresultants.
-
Method Details
-
DiscriminantAsPoly
Computes discriminant of polynomial and returns the result as a constant poly -
Discriminant
Computes discriminant of polynomial -
Discriminant
Computes discriminant of polynomial -
ResultantAsPoly
Computes resultant of two polynomials and returns the result as a constant poly -
Resultant
Computes resultant of two polynomials -
Resultant
Computes resultant of two polynomials -
Subresultants
Computes sequence of scalar subresultants. -
ModularResultant
public static BigInteger ModularResultant(UnivariatePolynomial<BigInteger> a, UnivariatePolynomial<BigInteger> b)Modular algorithm for computing resultants over Z -
ModularResultantInNumberField
public static UnivariatePolynomial<Rational<BigInteger>> ModularResultantInNumberField(UnivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>> a, UnivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>> b)Modular resultant in simple number field -
polyPowNumFieldCfBound
public static BigInteger polyPowNumFieldCfBound(BigInteger maxCf, BigInteger maxMinPolyCf, int minPolyDeg, int exponent) -
ModularResultantInRingOfIntegersOfNumberField
public static UnivariatePolynomial<BigInteger> ModularResultantInRingOfIntegersOfNumberField(UnivariatePolynomial<UnivariatePolynomial<BigInteger>> a, UnivariatePolynomial<UnivariatePolynomial<BigInteger>> b)Modular resultant in the ring of integers of number field -
ClassicalPRS
public static UnivariateResultants.PolynomialRemainderSequenceZp64 ClassicalPRS(UnivariatePolynomialZp64 a, UnivariatePolynomialZp64 b)Computes polynomial remainder sequence using classical division algorithm -
ClassicalPRS
public static <E> UnivariateResultants.PolynomialRemainderSequence<E> ClassicalPRS(UnivariatePolynomial<E> a, UnivariatePolynomial<E> b)Computes polynomial remainder sequence using classical division algorithm -
PseudoPRS
public static <E> UnivariateResultants.PolynomialRemainderSequence<E> PseudoPRS(UnivariatePolynomial<E> a, UnivariatePolynomial<E> b)Computes polynomial remainder sequence using pseudo division algorithm -
PrimitivePRS
public static <E> UnivariateResultants.PolynomialRemainderSequence<E> PrimitivePRS(UnivariatePolynomial<E> a, UnivariatePolynomial<E> b)Computes polynomial remainder sequence using primitive division algorithm -
ReducedPRS
public static <E> UnivariateResultants.PolynomialRemainderSequence<E> ReducedPRS(UnivariatePolynomial<E> a, UnivariatePolynomial<E> b)Computes polynomial remainder sequence using reduced division algorithm -
SubresultantPRS
public static <E> UnivariateResultants.PolynomialRemainderSequence<E> SubresultantPRS(UnivariatePolynomial<E> a, UnivariatePolynomial<E> b)Computes subresultant polynomial remainder sequence
-