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 classUnivariateResultants.APolynomialRemainderSequence<Poly extends IUnivariatePolynomial<Poly>>Polynomial remainder sequence (PRS).static classUnivariateResultants.PolynomialRemainderSequence<E>Polynomial remainder sequence (PRS).static classUnivariateResultants.PolynomialRemainderSequenceZp64Classical division rule for polynomials over Zp
-
Method Summary
All Methods Static Methods Concrete Methods 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.PolynomialRemainderSequenceZp64ClassicalPRS(UnivariatePolynomialZp64 a, UnivariatePolynomialZp64 b)Computes polynomial remainder sequence using classical division algorithmstatic <E> EDiscriminant(UnivariatePolynomial<E> a)Computes discriminant of polynomialstatic longDiscriminant(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 BigIntegerModularResultant(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 BigIntegerpolyPowNumFieldCfBound(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> EResultant(UnivariatePolynomial<E> a, UnivariatePolynomial<E> b)Computes resultant of two polynomialsstatic longResultant(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 Detail
-
DiscriminantAsPoly
public static <Poly extends IUnivariatePolynomial<Poly>> Poly DiscriminantAsPoly(Poly a)
Computes discriminant of polynomial and returns the result as a constant poly
-
Discriminant
public static <E> E Discriminant(UnivariatePolynomial<E> a)
Computes discriminant of polynomial
-
Discriminant
public static long Discriminant(UnivariatePolynomialZp64 a)
Computes discriminant of polynomial
-
ResultantAsPoly
public static <Poly extends IUnivariatePolynomial<Poly>> Poly ResultantAsPoly(Poly a, Poly b)
Computes resultant of two polynomials and returns the result as a constant poly
-
Resultant
public static <E> E Resultant(UnivariatePolynomial<E> a, UnivariatePolynomial<E> b)
Computes resultant of two polynomials
-
Resultant
public static long Resultant(UnivariatePolynomialZp64 a, UnivariatePolynomialZp64 b)
Computes resultant of two polynomials
-
Subresultants
public static <E> List<E> Subresultants(UnivariatePolynomial<E> a, UnivariatePolynomial<E> b)
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
-
-