## Uses of Classcc.redberry.rings.poly.univar.UnivariatePolynomial

• ### Uses of UnivariatePolynomial in cc.redberry.rings

Fields in cc.redberry.rings with type parameters of type UnivariatePolynomial
Modifier and Type Field Description
`static AlgebraicNumberField<UnivariatePolynomial<BigInteger>>` Rings.`GaussianIntegers`
Ring of Gaussian integers (integer complex numbers).
`static AlgebraicNumberField<UnivariatePolynomial<Rational<BigInteger>>>` Rings.`GaussianRationals`
Field of Gaussian rationals (rational complex numbers).
`static UnivariateRing<UnivariatePolynomial<Rational<BigInteger>>>` Rings.`UnivariateRingQ`
Ring of univariate polynomials over rationals (Q[x])
`static UnivariateRing<UnivariatePolynomial<BigInteger>>` Rings.`UnivariateRingZ`
Ring of univariate polynomials over integers (Z[x])
Methods in cc.redberry.rings that return types with arguments of type UnivariatePolynomial
Modifier and Type Method Description
`static <E> AlgebraicNumberField<UnivariatePolynomial<E>>` Rings.`GaussianNumbers​(Ring<E> ring)`
Gaussian numbers for a given ring (that is ring adjoined with imaginary unit)
`static FiniteField<UnivariatePolynomial<BigInteger>>` Rings.```GF​(BigInteger prime, int exponent)```
Galois field with the cardinality `prime ^ exponent` for arbitrary large `prime`
`static <E> UnivariateRing<UnivariatePolynomial<E>>` Rings.`UnivariateRing​(Ring<E> coefficientRing)`
Ring of univariate polynomials over specified coefficient ring
`static UnivariateRing<UnivariatePolynomial<BigInteger>>` Rings.`UnivariateRingZp​(BigInteger modulus)`
Ring of univariate polynomials over Zp integers (Zp[x]) with arbitrary large modulus
• ### Uses of UnivariatePolynomial in cc.redberry.rings.io

Methods in cc.redberry.rings.io that return types with arguments of type UnivariatePolynomial
Modifier and Type Method Description
`static <E> Coder<UnivariatePolynomial<E>,​?,​?>` Coder.```mkUnivariateCoder​(IPolynomialRing<UnivariatePolynomial<E>> ring, Coder<E,​?,​?> cfCoder, String variable)```
Create coder for univariate polynomial rings
`static <E> Coder<UnivariatePolynomial<E>,​?,​?>` Coder.```mkUnivariateCoder​(IPolynomialRing<UnivariatePolynomial<E>> ring, Coder<E,​?,​?> cfCoder, Map<String,​UnivariatePolynomial<E>> variables)```
Create coder for univariate polynomial rings
Method parameters in cc.redberry.rings.io with type arguments of type UnivariatePolynomial
Modifier and Type Method Description
`static <E> Coder<UnivariatePolynomial<E>,​?,​?>` Coder.```mkUnivariateCoder​(IPolynomialRing<UnivariatePolynomial<E>> ring, Coder<E,​?,​?> cfCoder, String variable)```
Create coder for univariate polynomial rings
`static <E> Coder<UnivariatePolynomial<E>,​?,​?>` Coder.```mkUnivariateCoder​(IPolynomialRing<UnivariatePolynomial<E>> ring, Coder<E,​?,​?> cfCoder, Map<String,​UnivariatePolynomial<E>> variables)```
Create coder for univariate polynomial rings
`static <E> Coder<UnivariatePolynomial<E>,​?,​?>` Coder.```mkUnivariateCoder​(IPolynomialRing<UnivariatePolynomial<E>> ring, Coder<E,​?,​?> cfCoder, Map<String,​UnivariatePolynomial<E>> variables)```
Create coder for univariate polynomial rings
• ### Uses of UnivariatePolynomial in cc.redberry.rings.poly

Methods in cc.redberry.rings.poly that return UnivariatePolynomial
Modifier and Type Method Description
`static <E> UnivariatePolynomial<Rational<E>>` Util.```asOverRationals​(Ring<Rational<E>> field, UnivariatePolynomial<E> poly)```
`static <E> UnivariatePolynomial<Rational<E>>` Util.```divideOverRationals​(Ring<Rational<E>> field, UnivariatePolynomial<E> poly, E denominator)```
`UnivariatePolynomial<mPoly>` MultipleFieldExtension.`getGeneratorMinimalPoly​(int iGenerator)`
Returns minimal polynomial corresponding to i-th generator.
Methods in cc.redberry.rings.poly that return types with arguments of type UnivariatePolynomial
Modifier and Type Method Description
`static <E> Util.Tuple2<UnivariatePolynomial<E>,​E>` Util.`toCommonDenominator​(UnivariatePolynomial<Rational<E>> poly)`
Brings polynomial with rational coefficients to common denominator
Methods in cc.redberry.rings.poly with parameters of type UnivariatePolynomial
Modifier and Type Method Description
`static <E> UnivariatePolynomial<Rational<E>>` Util.```asOverRationals​(Ring<Rational<E>> field, UnivariatePolynomial<E> poly)```
`static <E> E` Util.`commonDenominator​(UnivariatePolynomial<Rational<E>> poly)`
Returns a common denominator of given poly
`static <E> UnivariatePolynomial<Rational<E>>` Util.```divideOverRationals​(Ring<Rational<E>> field, UnivariatePolynomial<E> poly, E denominator)```
`MultipleFieldExtension<Term,​mPoly,​sPoly>` MultipleFieldExtension.`joinAlgebraicElement​(UnivariatePolynomial<mPoly> algebraicElement)`
Adds algebraic element given by its minimal polynomial (not checked that it is irreducible) to this.
`E` SimpleFieldExtension.`normOfPolynomial​(UnivariatePolynomial<E> poly)`
Gives the norm of univariate polynomial over this field extension, which is always a polynomial with the coefficients from the base field
`static <E> Util.Tuple2<UnivariatePolynomial<E>,​E>` Util.`toCommonDenominator​(UnivariatePolynomial<Rational<E>> poly)`
Brings polynomial with rational coefficients to common denominator
Constructors in cc.redberry.rings.poly with parameters of type UnivariatePolynomial
Constructor Description
```MultipleFieldExtension​(MultipleFieldExtension<Term,​mPoly,​sPoly>[] tower, UnivariatePolynomial<mPoly>[] minimalPolynomialsOfGenerators, mPoly primitiveElement, sPoly[] generatorsReps, SimpleFieldExtension<sPoly> simpleExtension)```
• ### Uses of UnivariatePolynomial in cc.redberry.rings.poly.multivar

Fields in cc.redberry.rings.poly.multivar declared as UnivariatePolynomial
Modifier and Type Field Description
`UnivariatePolynomial<Rational<BigInteger>>` GroebnerBases.HilbertSeries.`initialNumerator`
Initial numerator (numerator and denominator may have nontrivial GCD)
`UnivariatePolynomial<Rational<BigInteger>>` GroebnerBases.HilbertSeries.`numerator`
Reduced numerator (GCD is cancelled)
Methods in cc.redberry.rings.poly.multivar that return UnivariatePolynomial
Modifier and Type Method Description
`UnivariatePolynomial<Poly>` AMultivariatePolynomial.`asUnivariate​(int variable)`
Converts this polynomial to a univariate polynomial over specified variable with the multivariate coefficient ring.
`static <Poly extends AMultivariatePolynomial<?,​Poly>>UnivariatePolynomial<Poly>` MultivariateConversions.```asUnivariate​(Poly poly, int variable)```
Given poly in R[x1,x2,...,xN] converts to poly in R[other_variables][variable]
`UnivariatePolynomial<E>` MultivariatePolynomial.`asUnivariate()`
`UnivariatePolynomial<Poly>` AMultivariatePolynomial.`asUnivariateEliminate​(int variable)`
Converts this polynomial to a univariate polynomial over specified variable with the multivariate coefficient ring.
`UnivariatePolynomial<E>` MultivariatePolynomial.`contentUnivariate​(int variable)`
`UnivariatePolynomial<Rational<BigInteger>>` GroebnerBases.HilbertSeries.`hilbertPolynomial()`
Hilbert polynomial
`UnivariatePolynomial<Rational<BigInteger>>` GroebnerBases.HilbertSeries.`hilbertPolynomialZ()`
Integral Hilbert polynomial (i.e.
`UnivariatePolynomial<Rational<BigInteger>>` GroebnerBases.HilbertSeries.`integralPart()`
Integral part I(t) of HPS(t): HPS(t) = I(t) + Q(t)/(1-t)^m
`UnivariatePolynomial<Rational<BigInteger>>` GroebnerBases.HilbertSeries.`remainderNumerator()`
Remainder part R(t) of HPS(t): HPS(t) = I(t) + R(t)/(1-t)^m
`static <Term extends AMonomial<Term>,​Poly extends AMultivariatePolynomial<Term,​Poly>,​uPoly extends IUnivariatePolynomial<uPoly>>UnivariatePolynomial<uPoly>` HenselLifting.```seriesExpansionDense​(Ring<uPoly> ring, Poly poly, int variable, cc.redberry.rings.poly.multivar.HenselLifting.IEvaluation<Term,​Poly> evaluate)```
Generates a power series expansion for poly about the point specified by variable and evaluation
`UnivariatePolynomial` MultivariatePolynomial.`toDenseRecursiveForm()`
Gives a recursive univariate representation of this poly.
Methods in cc.redberry.rings.poly.multivar that return types with arguments of type UnivariatePolynomial
Modifier and Type Method Description
`MultivariatePolynomial<UnivariatePolynomial<E>>` MultivariatePolynomial.`asOverUnivariate​(int variable)`
`MultivariatePolynomial<UnivariatePolynomial<E>>` MultivariatePolynomial.`asOverUnivariateEliminate​(int variable)`
`static <Poly extends AMultivariatePolynomial<?,​Poly>>UnivariateRing<UnivariatePolynomial<Poly>>` MultivariateConversions.```asUnivariate​(IPolynomialRing<Poly> ring, int variable)```
Given poly in R[x1,x2,...,xN] converts to poly in R[other_variables][variable]
`static PolynomialFactorDecomposition<MultivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>>>` MultivariateFactorization.`FactorInNumberField​(MultivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>> polynomial)`
Factors multivariate polynomial over simple number field via Trager's algorithm
`static MultivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>>` MultivariateGCD.```ModularGCDInNumberFieldViaLangemyrMcCallum​(MultivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>> a, MultivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>> b, BiFunction<MultivariatePolynomial<UnivariatePolynomialZp64>,​MultivariatePolynomial<UnivariatePolynomialZp64>,​MultivariatePolynomial<UnivariatePolynomialZp64>> modularAlgorithm)```
Zippel's sparse modular interpolation algorithm for polynomials over simple field extensions with the use of Langemyr & McCallum approach to avoid rational reconstruction
`static MultivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>>` MultivariateGCD.```ModularGCDInNumberFieldViaRationalReconstruction​(MultivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>> a, MultivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>> b, BiFunction<MultivariatePolynomial<UnivariatePolynomialZp64>,​MultivariatePolynomial<UnivariatePolynomialZp64>,​MultivariatePolynomial<UnivariatePolynomialZp64>> modularAlgorithm)```
Modular interpolation algorithm for polynomials over simple field extensions with the use of Langemyr & McCallum approach to avoid rational reconstruction
`static MultivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>>` MultivariateResultants.```ModularResultantInNumberField​(MultivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>> a, MultivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>> b, int variable)```
Modular resultant in simple number field
`static MultivariatePolynomial<UnivariatePolynomial<BigInteger>>` MultivariateResultants.```ModularResultantInRingOfIntegersOfNumberField​(MultivariatePolynomial<UnivariatePolynomial<BigInteger>> a, MultivariatePolynomial<UnivariatePolynomial<BigInteger>> b, int variable)```
Modular algorithm with Zippel sparse interpolation for resultant over rings of integers
`static MultivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>>` MultivariateGCD.```PolynomialGCDinNumberField​(MultivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>> a, MultivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>> b)```
Calculates greatest common divisor of two multivariate polynomials over Z
`static MultivariatePolynomial<UnivariatePolynomial<BigInteger>>` MultivariateGCD.```PolynomialGCDinRingOfIntegersOfNumberField​(MultivariatePolynomial<UnivariatePolynomial<BigInteger>> a, MultivariatePolynomial<UnivariatePolynomial<BigInteger>> b)```
Calculates greatest common divisor of two multivariate polynomials over Z
`static MultivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>>` MultivariateGCD.```ZippelGCDInNumberFieldViaLangemyrMcCallum​(MultivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>> a, MultivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>> b)```
Zippel's sparse modular interpolation algorithm for computing GCD associate for polynomials over simple field extensions with the use of Langemyr & McCallum approach to avoid rational reconstruction
`static MultivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>>` MultivariateGCD.```ZippelGCDInNumberFieldViaRationalReconstruction​(MultivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>> a, MultivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>> b)```
Zippel's sparse modular interpolation algorithm for polynomials over simple field extensions with the use of rational reconstruction to reconstruct the result
Methods in cc.redberry.rings.poly.multivar with parameters of type UnivariatePolynomial
Modifier and Type Method Description
`static <Term extends AMonomial<Term>,​Poly extends AMultivariatePolynomial<Term,​Poly>>Poly` AMultivariatePolynomial.```asMultivariate​(UnivariatePolynomial<Poly> uPoly, int variable)```
Convert univariate polynomial over multivariate polynomials to a normal multivariate poly
`static <Term extends AMonomial<Term>,​Poly extends AMultivariatePolynomial<Term,​Poly>>Poly` AMultivariatePolynomial.```asMultivariate​(UnivariatePolynomial<Poly> univariate, int uVariable, boolean join)```
`static <E> MultivariatePolynomial<E>` MultivariatePolynomial.```asMultivariate​(UnivariatePolynomial<E> poly, int nVariables, int variable, Comparator<DegreeVector> ordering)```
Converts univariate polynomial to multivariate.
`static <E> E` MultivariatePolynomial.```evaluateDenseRecursiveForm​(UnivariatePolynomial recForm, int nVariables, E[] values)```
Evaluates polynomial given in a dense recursive form at a given points
`static <E> MultivariatePolynomial<E>` MultivariatePolynomial.```fromDenseRecursiveForm​(UnivariatePolynomial recForm, int nVariables, Comparator<DegreeVector> ordering)```
Converts poly from a recursive univariate representation.
`static <Poly extends AMultivariatePolynomial<?,​Poly>>Poly` MultivariateConversions.```fromUnivariate​(UnivariatePolynomial<Poly> poly, int variable)```
Given poly in R[variables][other_variables] converts it to poly in R[x1,x2,...,xN]
Method parameters in cc.redberry.rings.poly.multivar with type arguments of type UnivariatePolynomial
Modifier and Type Method Description
`static <E> MultivariatePolynomial<E>` MultivariatePolynomial.```asNormalMultivariate​(MultivariatePolynomial<UnivariatePolynomial<E>> poly, int variable)```
Converts multivariate polynomial over univariate polynomial ring (R[variable][other_variables]) to a multivariate polynomial over coefficient ring (R[variables])
`static PolynomialFactorDecomposition<MultivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>>>` MultivariateFactorization.`FactorInNumberField​(MultivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>> polynomial)`
Factors multivariate polynomial over simple number field via Trager's algorithm
`static <Poly extends AMultivariatePolynomial<?,​Poly>>IPolynomialRing<Poly>` MultivariateConversions.```fromUnivariate​(IPolynomialRing<UnivariatePolynomial<Poly>> ring, int variable)```
Given poly in R[variables][other_variables] converts it to poly in R[x1,x2,...,xN]
`static MultivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>>` MultivariateGCD.```ModularGCDInNumberFieldViaLangemyrMcCallum​(MultivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>> a, MultivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>> b, BiFunction<MultivariatePolynomial<UnivariatePolynomialZp64>,​MultivariatePolynomial<UnivariatePolynomialZp64>,​MultivariatePolynomial<UnivariatePolynomialZp64>> modularAlgorithm)```
Zippel's sparse modular interpolation algorithm for polynomials over simple field extensions with the use of Langemyr & McCallum approach to avoid rational reconstruction
`static MultivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>>` MultivariateGCD.```ModularGCDInNumberFieldViaRationalReconstruction​(MultivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>> a, MultivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>> b, BiFunction<MultivariatePolynomial<UnivariatePolynomialZp64>,​MultivariatePolynomial<UnivariatePolynomialZp64>,​MultivariatePolynomial<UnivariatePolynomialZp64>> modularAlgorithm)```
Modular interpolation algorithm for polynomials over simple field extensions with the use of Langemyr & McCallum approach to avoid rational reconstruction
`static MultivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>>` MultivariateResultants.```ModularResultantInNumberField​(MultivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>> a, MultivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>> b, int variable)```
Modular resultant in simple number field
`static MultivariatePolynomial<UnivariatePolynomial<BigInteger>>` MultivariateResultants.```ModularResultantInRingOfIntegersOfNumberField​(MultivariatePolynomial<UnivariatePolynomial<BigInteger>> a, MultivariatePolynomial<UnivariatePolynomial<BigInteger>> b, int variable)```
Modular algorithm with Zippel sparse interpolation for resultant over rings of integers
`static MultivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>>` MultivariateGCD.```PolynomialGCDinNumberField​(MultivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>> a, MultivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>> b)```
Calculates greatest common divisor of two multivariate polynomials over Z
`static MultivariatePolynomial<UnivariatePolynomial<BigInteger>>` MultivariateGCD.```PolynomialGCDinRingOfIntegersOfNumberField​(MultivariatePolynomial<UnivariatePolynomial<BigInteger>> a, MultivariatePolynomial<UnivariatePolynomial<BigInteger>> b)```
Calculates greatest common divisor of two multivariate polynomials over Z
`static MultivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>>` MultivariateGCD.```ZippelGCDInNumberFieldViaLangemyrMcCallum​(MultivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>> a, MultivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>> b)```
Zippel's sparse modular interpolation algorithm for computing GCD associate for polynomials over simple field extensions with the use of Langemyr & McCallum approach to avoid rational reconstruction
`static MultivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>>` MultivariateGCD.```ZippelGCDInNumberFieldViaRationalReconstruction​(MultivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>> a, MultivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>> b)```
Zippel's sparse modular interpolation algorithm for polynomials over simple field extensions with the use of rational reconstruction to reconstruct the result
• ### Uses of UnivariatePolynomial in cc.redberry.rings.poly.univar

Fields in cc.redberry.rings.poly.univar declared as UnivariatePolynomial
Modifier and Type Field Description
`UnivariatePolynomial<BigInteger>` HenselLifting.bQuadraticLift.`base`
Initial Z[x] poly
Methods in cc.redberry.rings.poly.univar that return UnivariatePolynomial
Modifier and Type Method Description
`UnivariatePolynomial<BigInteger>` HenselLifting.bLinearLift.`aCoFactorMod()`
`UnivariatePolynomial<E>` UnivariatePolynomial.`add​(UnivariatePolynomial<E> oth)`
`UnivariatePolynomial<E>` UnivariatePolynomial.`add​(E val)`
`UnivariatePolynomial<E>` UnivariatePolynomial.```addMonomial​(E coefficient, int exponent)```
Adds `coefficient*x^exponent` to `this`
`UnivariatePolynomial<E>` UnivariatePolynomial.```addMul​(UnivariatePolynomial<E> oth, E factor)```
Adds `oth * factor` to `this`
`UnivariatePolynomial<BigInteger>` HenselLifting.bLinearLift.`aFactorMod()`
`static UnivariatePolynomial<BigInteger>` UnivariatePolynomial.`asPolyZSymmetric​(UnivariatePolynomial<BigInteger> poly)`
Converts Zp[x] polynomial to Z[x] polynomial formed from the coefficients of this represented in symmetric modular form (`-modulus/2 <= cfx <= modulus/2`).
`UnivariatePolynomial<BigInteger>` HenselLifting.bLinearLift.`bCoFactorMod()`
`UnivariatePolynomial<BigInteger>` HenselLifting.bLinearLift.`bFactorMod()`
`UnivariatePolynomial<E>` UnivariatePolynomial.`ccAsPoly()`
`UnivariatePolynomial<E>` UnivariatePolynomial.`clone()`
`UnivariatePolynomial<E>` UnivariatePolynomial.`composition​(UnivariatePolynomial<E> value)`
`static <E> UnivariatePolynomial<E>` UnivariatePolynomial.```constant​(Ring<E> ring, E constant)```
Creates constant polynomial over specified ring
`UnivariatePolynomial<E>` UnivariatePolynomial.`contentAsPoly()`
`static UnivariatePolynomial<BigInteger>` UnivariatePolynomial.`create​(long... data)`
Creates new univariate Z[x] polynomial
`static UnivariatePolynomial<BigInteger>` UnivariatePolynomial.```create​(Ring<BigInteger> ring, long... data)```
Creates univariate polynomial over specified ring (with integer elements) with the specified coefficients
`static <E> UnivariatePolynomial<E>` UnivariatePolynomial.```create​(Ring<E> ring, E... data)```
Creates new univariate polynomial over specified ring with the specified coefficients.
`UnivariatePolynomial<E>[]` UnivariatePolynomial.`createArray​(int length)`
`UnivariatePolynomial<E>[]` UnivariatePolynomial.```createArray​(UnivariatePolynomial<E> a, UnivariatePolynomial<E> b)```
`UnivariatePolynomial<E>[][]` UnivariatePolynomial.`createArray2d​(int length)`
`UnivariatePolynomial<E>[][]` UnivariatePolynomial.```createArray2d​(int length1, int length2)```
`UnivariatePolynomial<E>` UnivariatePolynomial.`createConstant​(E val)`
Creates constant polynomial with specified value (over the same ring)
`UnivariatePolynomial<E>` UnivariatePolynomial.`createFromArray​(E[] data)`
Creates new poly with the specified coefficients (over the same ring)
`UnivariatePolynomial<E>` UnivariatePolynomial.```createLinear​(E cc, E lc)```
Creates linear polynomial of form `cc + x * lc` (over the same ring)
`UnivariatePolynomial<E>` UnivariatePolynomial.`createMonomial​(int degree)`
`UnivariatePolynomial<E>` UnivariatePolynomial.```createMonomial​(E coefficient, int degree)```
Creates monomial `coefficient * x^degree` (over the same ring)
`UnivariatePolynomial<E>` UnivariatePolynomial.`createOne()`
`static <E> UnivariatePolynomial<E>` UnivariatePolynomial.```createUnsafe​(Ring<E> ring, E[] data)```
skips `ring.setToValueOf(data)`
`UnivariatePolynomial<E>` UnivariatePolynomial.`createZero()`
`UnivariatePolynomial<E>` UnivariatePolynomial.`decrement()`
`UnivariatePolynomial<E>` UnivariatePolynomial.`derivative()`
`static <E> UnivariatePolynomial<E>[]` UnivariateDivision.```divideAndRemainder​(UnivariatePolynomial<E> dividend, UnivariatePolynomial<E> divider, boolean copy)```
Returns quotient and remainder.
`static <E> UnivariatePolynomial<E>[]` UnivariateDivision.```divideAndRemainderClassic​(UnivariatePolynomial<E> dividend, UnivariatePolynomial<E> divider, boolean copy)```
Classical algorithm for division with remainder.
`static <E> UnivariatePolynomial<E>[]` UnivariateDivision.```divideAndRemainderFast​(UnivariatePolynomial<E> dividend, UnivariatePolynomial<E> divider, boolean copy)```
Fast algorithm for division with remainder using Newton's iteration.
`static <E> UnivariatePolynomial<E>[]` UnivariateDivision.```divideAndRemainderFast​(UnivariatePolynomial<E> dividend, UnivariatePolynomial<E> divider, UnivariateDivision.InverseModMonomial<UnivariatePolynomial<E>> invMod, boolean copy)```
Fast algorithm for division with remainder using Newton's iteration.
`UnivariatePolynomial<E>` UnivariatePolynomial.`divideByLC​(UnivariatePolynomial<E> other)`
`UnivariatePolynomial<E>` UnivariatePolynomial.`divideExact​(E factor)`
Divides this polynomial by a `factor` or throws exception if exact division is not possible
`UnivariatePolynomial<E>` UnivariatePolynomial.`divideOrNull​(E factor)`
Divides this polynomial by a `factor` or returns `null` (causing loss of internal data) if some of the elements can't be exactly divided by the `factor`.
`UnivariatePolynomial<E>` UnivariatePolynomial.`getAsPoly​(int i)`
`UnivariatePolynomial<E>` UnivariateInterpolation.Interpolation.`getInterpolatingPolynomial()`
Returns resulting interpolating polynomial
`UnivariatePolynomial<E>` UnivariatePolynomial.```getRange​(int from, int to)```
`UnivariatePolynomial<E>` UnivariatePolynomial.`increment()`
`static <E> UnivariatePolynomial<E>` UnivariateInterpolation.```interpolateLagrange​(Ring<E> ring, E[] points, E[] values)```
Constructs an interpolating polynomial which values at `points[i]` are exactly `values[i]`.
`static <E> UnivariatePolynomial<E>` UnivariateInterpolation.```interpolateNewton​(Ring<E> ring, E[] points, E[] values)```
Constructs an interpolating polynomial which values at `points[i]` are exactly `values[i]`.
`UnivariatePolynomial<E>` UnivariatePolynomial.`lcAsPoly()`
`<T> UnivariatePolynomial<T>` UnivariatePolynomial.```mapCoefficients​(Ring<T> ring, Function<E,​T> mapper)```
Applies transformation function to this and returns the result.
`default <E> UnivariatePolynomial<E>` IUnivariatePolynomial.```mapCoefficientsAsPolys​(Ring<E> ring, Function<Poly,​E> mapper)```
`static UnivariatePolynomial<Rational<BigInteger>>[]` UnivariateGCD.```ModularExtendedRationalGCD​(UnivariatePolynomial<Rational<BigInteger>> a, UnivariatePolynomial<Rational<BigInteger>> b)```
Computes `[gcd(a,b), s, t]` such that `s * a + t * b = gcd(a, b)`.
`static UnivariatePolynomial<Rational<BigInteger>>[]` UnivariateGCD.```ModularExtendedResultantGCDInQ​(UnivariatePolynomial<Rational<BigInteger>> a, UnivariatePolynomial<Rational<BigInteger>> b)```
Modular extended GCD algorithm for polynomials over Q with the use of resultants.
`static UnivariatePolynomial<BigInteger>[]` UnivariateGCD.```ModularExtendedResultantGCDInZ​(UnivariatePolynomial<BigInteger> a, UnivariatePolynomial<BigInteger> b)```
Modular extended GCD algorithm for polynomials over Z with the use of resultants.
`static UnivariatePolynomial<BigInteger>` UnivariateGCD.```ModularGCD​(UnivariatePolynomial<BigInteger> a, UnivariatePolynomial<BigInteger> b)```
Modular GCD algorithm for polynomials over Z.
`static UnivariatePolynomial<Rational<BigInteger>>` UnivariateResultants.```ModularResultantInNumberField​(UnivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>> a, UnivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>> b)```
Modular resultant in simple number field
`static UnivariatePolynomial<BigInteger>` UnivariateResultants.```ModularResultantInRingOfIntegersOfNumberField​(UnivariatePolynomial<UnivariatePolynomial<BigInteger>> a, UnivariatePolynomial<UnivariatePolynomial<BigInteger>> b)```
Modular resultant in the ring of integers of number field
`UnivariatePolynomial<E>` UnivariatePolynomial.`monic()`
`UnivariatePolynomial<E>` UnivariatePolynomial.`monic​(E factor)`
Sets `this` to its monic part multiplied by the `factor`.
`UnivariatePolynomial<E>` UnivariatePolynomial.`monicWithLC​(UnivariatePolynomial<E> other)`
`UnivariatePolynomial<E>` UnivariatePolynomial.`multiply​(long factor)`
`UnivariatePolynomial<E>` UnivariatePolynomial.`multiply​(UnivariatePolynomial<E> oth)`
`UnivariatePolynomial<E>` UnivariatePolynomial.`multiply​(E factor)`
Multiplies `this` by the `factor`
`UnivariatePolynomial<E>` UnivariatePolynomial.`multiplyByBigInteger​(BigInteger factor)`
`UnivariatePolynomial<E>` UnivariatePolynomial.`multiplyByLC​(UnivariatePolynomial<E> other)`
`UnivariatePolynomial<E>` UnivariatePolynomial.`negate()`
`static <E> UnivariatePolynomial<E>` UnivariatePolynomial.`one​(Ring<E> ring)`
Creates unit polynomial over specified ring
`static <E> UnivariatePolynomial<E>` UnivariatePolynomial.```parse​(String string, Ring<E> ring)```
Deprecated.
`static <E> UnivariatePolynomial<E>` UnivariatePolynomial.```parse​(String string, Ring<E> ring, String var)```
Parse string into polynomial
`UnivariatePolynomial<E>` UnivariatePolynomial.`parsePoly​(String string)`
`UnivariatePolynomial<BigInteger>` HenselLifting.bLinearLift.`polyMod()`
`UnivariatePolynomial<BigInteger>` HenselLifting.bQuadraticLift.`polyMod()`
`static UnivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>>` UnivariateGCD.```PolynomialGCDInNumberField​(UnivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>> a, UnivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>> b)```
Computes GCD via Langemyr & Mccallum modular algorithm over algebraic number field
`static UnivariatePolynomial<UnivariatePolynomial<BigInteger>>` UnivariateGCD.```PolynomialGCDInRingOfIntegersOfNumberField​(UnivariatePolynomial<UnivariatePolynomial<BigInteger>> a, UnivariatePolynomial<UnivariatePolynomial<BigInteger>> b)```
Computes some GCD associate via Langemyr & Mccallum modular algorithm over algebraic integers
`static <E> UnivariatePolynomial<E>` ModularComposition.```powModulusMod​(UnivariatePolynomial<E> poly, UnivariatePolynomial<E> polyModulus, UnivariateDivision.InverseModMonomial<UnivariatePolynomial<E>> invMod, ArrayList<UnivariatePolynomial<E>> xPowers)```
Returns `poly^modulus mod polyModulus` using precomputed monomial powers ```x^{i*modulus} mod polyModulus``` for i in `[0...degree(poly)]`
`UnivariatePolynomial<E>` UnivariatePolynomial.`primitivePart()`
`UnivariatePolynomial<E>` UnivariatePolynomial.`primitivePartSameSign()`
`static <E> UnivariatePolynomial<E>[]` UnivariateDivision.```pseudoDivideAndRemainder​(UnivariatePolynomial<E> dividend, UnivariatePolynomial<E> divider, boolean copy)```
Returns quotient and remainder using pseudo division.
`static <E> UnivariatePolynomial<E>` UnivariateDivision.```quotient​(UnivariatePolynomial<E> dividend, UnivariatePolynomial<E> divider, boolean copy)```
Returns quotient of `dividend` and `divider`.
`static <E> UnivariatePolynomial<E>` UnivariateDivision.```quotientFast​(UnivariatePolynomial<E> dividend, UnivariatePolynomial<E> divider, UnivariateDivision.InverseModMonomial<UnivariatePolynomial<E>> invMod, boolean copy)```
Fast quotient using Newton's iteration.
`static <E> UnivariatePolynomial<E>` IrreduciblePolynomials.```randomIrreduciblePolynomial​(Ring<E> ring, int degree, org.apache.commons.math3.random.RandomGenerator rnd)```
Generated random irreducible polynomial over specified ring of degree `degree`
`static UnivariatePolynomial<BigInteger>` IrreduciblePolynomials.```randomIrreduciblePolynomialOverZ​(int degree, org.apache.commons.math3.random.RandomGenerator rnd)```
Generated random irreducible polynomial over Z
`static UnivariatePolynomial<BigInteger>` RandomUnivariatePolynomials.```randomMonicPoly​(int degree, BigInteger modulus, org.apache.commons.math3.random.RandomGenerator rnd)```
Creates random polynomial of specified `degree`.
`static <E> UnivariatePolynomial<E>` RandomUnivariatePolynomials.```randomMonicPoly​(int degree, Ring<E> ring, org.apache.commons.math3.random.RandomGenerator rnd)```
Creates random polynomial of specified `degree`.
`static UnivariatePolynomial<BigInteger>` RandomUnivariatePolynomials.```randomPoly​(int degree, BigInteger bound, org.apache.commons.math3.random.RandomGenerator rnd)```
Creates random polynomial of specified `degree` with elements bounded by `bound` (by absolute value).
`static <E> UnivariatePolynomial<E>` RandomUnivariatePolynomials.```randomPoly​(int degree, Ring<E> ring, Function<org.apache.commons.math3.random.RandomGenerator,​E> method, org.apache.commons.math3.random.RandomGenerator rnd)```
Creates random polynomial of specified `degree` with elements from specified ring
`static <E> UnivariatePolynomial<E>` RandomUnivariatePolynomials.```randomPoly​(int degree, Ring<E> ring, org.apache.commons.math3.random.RandomGenerator rnd)```
Creates random polynomial of specified `degree` with elements from specified ring
`static <E> UnivariatePolynomial<E>` UnivariateDivision.```remainder​(UnivariatePolynomial<E> dividend, UnivariatePolynomial<E> divider, boolean copy)```
Returns remainder of `dividend` and `divider`.
`static <E> UnivariatePolynomial<E>` UnivariateDivision.```remainderFast​(UnivariatePolynomial<E> dividend, UnivariatePolynomial<E> divider, UnivariateDivision.InverseModMonomial<UnivariatePolynomial<E>> invMod, boolean copy)```
Fast remainder using Newton's iteration with switch to classical remainder for small polynomials.
`UnivariatePolynomial<E>` UnivariatePolynomial.`reverse()`
`UnivariatePolynomial<E>` UnivariatePolynomial.`scale​(E scaling)`
Replaces x -> scale * x and returns a copy
`UnivariatePolynomial<E>` UnivariatePolynomial.```set​(int i, E el)```
Sets i-th coefficient of this poly with specified value
`UnivariatePolynomial<E>` UnivariatePolynomial.`set​(UnivariatePolynomial<E> oth)`
`UnivariatePolynomial<E>` UnivariatePolynomial.`setAndDestroy​(UnivariatePolynomial<E> oth)`
`UnivariatePolynomial<E>` UnivariatePolynomial.`setCoefficientRingFrom​(UnivariatePolynomial<E> poly)`
`UnivariatePolynomial<E>` UnivariatePolynomial.```setFrom​(int indexInThis, UnivariatePolynomial<E> poly, int indexInPoly)```
`UnivariatePolynomial<E>` UnivariatePolynomial.`setLC​(E lc)`
Sets the leading coefficient of this poly
`UnivariatePolynomial<E>` UnivariatePolynomial.`setRing​(Ring<E> newRing)`
Returns a copy of this with elements reduced to a new coefficient ring
`UnivariatePolynomial<E>` UnivariatePolynomial.`setRingUnsafe​(Ring<E> newRing)`
internal API
`UnivariatePolynomial<E>` UnivariatePolynomial.`setZero​(int i)`
`UnivariatePolynomial<E>` UnivariatePolynomial.`shift​(E value)`
Shifts variable x -> x + value and returns the result (new instance)
`UnivariatePolynomial<E>` UnivariatePolynomial.`shiftLeft​(int offset)`
`UnivariatePolynomial<E>` UnivariatePolynomial.`shiftRight​(int offset)`
`UnivariatePolynomial<E>` UnivariatePolynomial.`square()`
`UnivariatePolynomial<E>` UnivariatePolynomial.`subtract​(UnivariatePolynomial<E> oth)`
`UnivariatePolynomial<E>` UnivariatePolynomial.```subtract​(UnivariatePolynomial<E> oth, E factor, int exponent)```
Subtracts `factor * x^exponent * oth` from `this`
`UnivariatePolynomial<E>` UnivariatePolynomial.`subtract​(E val)`
Subtract constant from this.
`UnivariatePolynomial<BigInteger>` UnivariatePolynomialZ64.`toBigPoly()`
Converts this to a polynomial over BigIntegers
`UnivariatePolynomial<BigInteger>` UnivariatePolynomialZp64.`toBigPoly()`
Converts this to a polynomial over BigIntegers
`UnivariatePolynomial<E>` UnivariatePolynomial.`toZero()`
`UnivariatePolynomial<E>` UnivariatePolynomial.`truncate​(int newDegree)`
`static <E> UnivariatePolynomial<E>` UnivariatePolynomial.`zero​(Ring<E> ring)`
Creates zero polynomial over specified ring
Methods in cc.redberry.rings.poly.univar that return types with arguments of type UnivariatePolynomial
Modifier and Type Method Description
`static PolynomialFactorDecomposition<UnivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>>>` UnivariateFactorization.`FactorInNumberField​(UnivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>> poly)`
Factors polynomial in Q(alpha)[x] via Trager's algorithm
`static PolynomialFactorDecomposition<UnivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>>>` UnivariateFactorization.`FactorInNumberField​(UnivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>> poly)`
Factors polynomial in Q(alpha)[x] via Trager's algorithm
`static <E> PolynomialFactorDecomposition<UnivariatePolynomial<Rational<E>>>` UnivariateFactorization.`FactorInQ​(UnivariatePolynomial<Rational<E>> poly)`
Factors polynomial over Q
`static PolynomialFactorDecomposition<UnivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>>>` UnivariateFactorization.`FactorSquareFreeInNumberField​(UnivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>> poly)`
Factors polynomial in Q(alpha)[x] via Trager's algorithm
`static PolynomialFactorDecomposition<UnivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>>>` UnivariateFactorization.`FactorSquareFreeInNumberField​(UnivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>> poly)`
Factors polynomial in Q(alpha)[x] via Trager's algorithm
`Function<List<E>,​UnivariatePolynomial<E>>` UnivariatePolynomial.PolynomialCollector.`finisher()`
`static List<UnivariatePolynomial<BigInteger>>` HenselLifting.```liftFactorization​(BigInteger modulus, BigInteger desiredBound, UnivariatePolynomial<BigInteger> poly, List<UnivariatePolynomialZp64> modularFactors)```
Lifts modular factorization until `modulus` will overcome `desiredBound`.
`static List<UnivariatePolynomial<BigInteger>>` HenselLifting.```liftFactorization​(BigInteger modulus, BigInteger desiredBound, UnivariatePolynomial<BigInteger> poly, List<UnivariatePolynomialZp64> modularFactors, boolean quadratic)```
Lifts modular factorization until `modulus` will overcome `desiredBound`.
`static List<UnivariatePolynomial<BigInteger>>` HenselLifting.```liftFactorizationQuadratic​(BigInteger modulus, BigInteger desiredBound, UnivariatePolynomial<BigInteger> poly, List<UnivariatePolynomial<BigInteger>> modularFactors)```
Lifts modular factorization until `modulus` will overcome `desiredBound`.
`static UnivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>>` UnivariateGCD.```PolynomialGCDInNumberField​(UnivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>> a, UnivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>> b)```
Computes GCD via Langemyr & Mccallum modular algorithm over algebraic number field
`static UnivariatePolynomial<UnivariatePolynomial<BigInteger>>` UnivariateGCD.```PolynomialGCDInRingOfIntegersOfNumberField​(UnivariatePolynomial<UnivariatePolynomial<BigInteger>> a, UnivariatePolynomial<UnivariatePolynomial<BigInteger>> b)```
Computes some GCD associate via Langemyr & Mccallum modular algorithm over algebraic integers
`Stream<UnivariatePolynomial<E>>` UnivariatePolynomial.`streamAsPolys()`
Methods in cc.redberry.rings.poly.univar with parameters of type UnivariatePolynomial
Modifier and Type Method Description
`UnivariatePolynomial<E>` UnivariatePolynomial.`add​(UnivariatePolynomial<E> oth)`
`UnivariatePolynomial<E>` UnivariatePolynomial.```addMul​(UnivariatePolynomial<E> oth, E factor)```
Adds `oth * factor` to `this`
`static UnivariatePolynomialZ64` UnivariatePolynomial.`asOverZ64​(UnivariatePolynomial<BigInteger> poly)`
Converts poly over BigIntegers to machine-sized polynomial in Z
`static UnivariatePolynomialZp64` UnivariatePolynomial.`asOverZp64​(UnivariatePolynomial<BigInteger> poly)`
Converts Zp[x] poly over BigIntegers to machine-sized polynomial in Zp
`static UnivariatePolynomialZp64` UnivariatePolynomial.```asOverZp64​(UnivariatePolynomial<BigInteger> poly, IntegersZp64 ring)```
Converts Zp[x] poly over BigIntegers to machine-sized polynomial in Zp
`static UnivariatePolynomialZp64` UnivariatePolynomial.```asOverZp64Q​(UnivariatePolynomial<Rational<BigInteger>> poly, IntegersZp64 ring)```
Converts Zp[x] poly over rationals to machine-sized polynomial in Zp
`static UnivariatePolynomial<BigInteger>` UnivariatePolynomial.`asPolyZSymmetric​(UnivariatePolynomial<BigInteger> poly)`
Converts Zp[x] polynomial to Z[x] polynomial formed from the coefficients of this represented in symmetric modular form (`-modulus/2 <= cfx <= modulus/2`).
`static <E> UnivariateResultants.PolynomialRemainderSequence<E>` UnivariateResultants.```ClassicalPRS​(UnivariatePolynomial<E> a, UnivariatePolynomial<E> b)```
Computes polynomial remainder sequence using classical division algorithm
`int` UnivariatePolynomial.`compareTo​(UnivariatePolynomial<E> o)`
`UnivariatePolynomial<E>` UnivariatePolynomial.`composition​(UnivariatePolynomial<E> value)`
`UnivariatePolynomial<E>[]` UnivariatePolynomial.```createArray​(UnivariatePolynomial<E> a, UnivariatePolynomial<E> b)```
`static HenselLifting.bLinearLift` HenselLifting.```createLinearLift​(long modulus, UnivariatePolynomial<BigInteger> poly, UnivariatePolynomialZp64 aFactor, UnivariatePolynomialZp64 bFactor)```
Creates linear Hensel lift.
`static HenselLifting.bLinearLift` HenselLifting.```createLinearLift​(BigInteger modulus, UnivariatePolynomial<BigInteger> poly, UnivariatePolynomialZp64 aFactor, UnivariatePolynomialZp64 bFactor)```
Creates linear Hensel lift.
`static HenselLifting.bQuadraticLift` HenselLifting.```createQuadraticLift​(BigInteger modulus, UnivariatePolynomial<BigInteger> poly, UnivariatePolynomial<BigInteger> aFactor, UnivariatePolynomial<BigInteger> bFactor)```
`static HenselLifting.bQuadraticLift` HenselLifting.```createQuadraticLift​(BigInteger modulus, UnivariatePolynomial<BigInteger> poly, UnivariatePolynomialZp64 aFactor, UnivariatePolynomialZp64 bFactor)```
`static <E> E` UnivariateResultants.`Discriminant​(UnivariatePolynomial<E> a)`
Computes discriminant of polynomial
`static <E> UnivariatePolynomial<E>[]` UnivariateDivision.```divideAndRemainder​(UnivariatePolynomial<E> dividend, UnivariatePolynomial<E> divider, boolean copy)```
Returns quotient and remainder.
`static <E> UnivariatePolynomial<E>[]` UnivariateDivision.```divideAndRemainderClassic​(UnivariatePolynomial<E> dividend, UnivariatePolynomial<E> divider, boolean copy)```
Classical algorithm for division with remainder.
`static <E> UnivariatePolynomial<E>[]` UnivariateDivision.```divideAndRemainderFast​(UnivariatePolynomial<E> dividend, UnivariatePolynomial<E> divider, boolean copy)```
Fast algorithm for division with remainder using Newton's iteration.
`static <E> UnivariatePolynomial<E>[]` UnivariateDivision.```divideAndRemainderFast​(UnivariatePolynomial<E> dividend, UnivariatePolynomial<E> divider, UnivariateDivision.InverseModMonomial<UnivariatePolynomial<E>> invMod, boolean copy)```
Fast algorithm for division with remainder using Newton's iteration.
`UnivariatePolynomial<E>` UnivariatePolynomial.`divideByLC​(UnivariatePolynomial<E> other)`
`static PolynomialFactorDecomposition<UnivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>>>` UnivariateFactorization.`FactorInNumberField​(UnivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>> poly)`
Factors polynomial in Q(alpha)[x] via Trager's algorithm
`static <E> PolynomialFactorDecomposition<UnivariatePolynomial<Rational<E>>>` UnivariateFactorization.`FactorInQ​(UnivariatePolynomial<Rational<E>> poly)`
Factors polynomial over Q
`static PolynomialFactorDecomposition<UnivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>>>` UnivariateFactorization.`FactorSquareFreeInNumberField​(UnivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>> poly)`
Factors polynomial in Q(alpha)[x] via Trager's algorithm
`static List<UnivariatePolynomial<BigInteger>>` HenselLifting.```liftFactorization​(BigInteger modulus, BigInteger desiredBound, UnivariatePolynomial<BigInteger> poly, List<UnivariatePolynomialZp64> modularFactors)```
Lifts modular factorization until `modulus` will overcome `desiredBound`.
`static List<UnivariatePolynomial<BigInteger>>` HenselLifting.```liftFactorization​(BigInteger modulus, BigInteger desiredBound, UnivariatePolynomial<BigInteger> poly, List<UnivariatePolynomialZp64> modularFactors, boolean quadratic)```
Lifts modular factorization until `modulus` will overcome `desiredBound`.
`static List<UnivariatePolynomial<BigInteger>>` HenselLifting.```liftFactorizationQuadratic​(BigInteger modulus, BigInteger desiredBound, UnivariatePolynomial<BigInteger> poly, List<UnivariatePolynomial<BigInteger>> modularFactors)```
Lifts modular factorization until `modulus` will overcome `desiredBound`.
`static BigInteger` UnivariatePolynomial.`mignotteBound​(UnivariatePolynomial<BigInteger> poly)`
Returns Mignotte's bound (sqrt(n+1) * 2^n max |this|) of the poly
`static UnivariatePolynomial<Rational<BigInteger>>[]` UnivariateGCD.```ModularExtendedRationalGCD​(UnivariatePolynomial<Rational<BigInteger>> a, UnivariatePolynomial<Rational<BigInteger>> b)```
Computes `[gcd(a,b), s, t]` such that `s * a + t * b = gcd(a, b)`.
`static UnivariatePolynomial<Rational<BigInteger>>[]` UnivariateGCD.```ModularExtendedResultantGCDInQ​(UnivariatePolynomial<Rational<BigInteger>> a, UnivariatePolynomial<Rational<BigInteger>> b)```
Modular extended GCD algorithm for polynomials over Q with the use of resultants.
`static UnivariatePolynomial<BigInteger>[]` UnivariateGCD.```ModularExtendedResultantGCDInZ​(UnivariatePolynomial<BigInteger> a, UnivariatePolynomial<BigInteger> b)```
Modular extended GCD algorithm for polynomials over Z with the use of resultants.
`static UnivariatePolynomial<BigInteger>` UnivariateGCD.```ModularGCD​(UnivariatePolynomial<BigInteger> a, UnivariatePolynomial<BigInteger> b)```
Modular GCD algorithm for polynomials over Z.
`static BigInteger` UnivariateResultants.```ModularResultant​(UnivariatePolynomial<BigInteger> a, UnivariatePolynomial<BigInteger> b)```
Modular algorithm for computing resultants over Z
`static UnivariatePolynomial<Rational<BigInteger>>` UnivariateResultants.```ModularResultantInNumberField​(UnivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>> a, UnivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>> b)```
Modular resultant in simple number field
`static UnivariatePolynomial<BigInteger>` UnivariateResultants.```ModularResultantInRingOfIntegersOfNumberField​(UnivariatePolynomial<UnivariatePolynomial<BigInteger>> a, UnivariatePolynomial<UnivariatePolynomial<BigInteger>> b)```
Modular resultant in the ring of integers of number field
`UnivariatePolynomial<E>` UnivariatePolynomial.`monicWithLC​(UnivariatePolynomial<E> other)`
`UnivariatePolynomial<E>` UnivariatePolynomial.`multiply​(UnivariatePolynomial<E> oth)`
`UnivariatePolynomial<E>` UnivariatePolynomial.`multiplyByLC​(UnivariatePolynomial<E> other)`
`static BigInteger` UnivariatePolynomial.`norm1​(UnivariatePolynomial<BigInteger> poly)`
Returns L1 norm of the polynomial, i.e.
`static BigInteger` UnivariatePolynomial.`norm2​(UnivariatePolynomial<BigInteger> poly)`
Returns L2 norm of the polynomial, i.e.
`static double` UnivariatePolynomial.`norm2Double​(UnivariatePolynomial<BigInteger> poly)`
Returns L2 norm of the poly, i.e.
`static UnivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>>` UnivariateGCD.```PolynomialGCDInNumberField​(UnivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>> a, UnivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>> b)```
Computes GCD via Langemyr & Mccallum modular algorithm over algebraic number field
`static UnivariatePolynomial<UnivariatePolynomial<BigInteger>>` UnivariateGCD.```PolynomialGCDInRingOfIntegersOfNumberField​(UnivariatePolynomial<UnivariatePolynomial<BigInteger>> a, UnivariatePolynomial<UnivariatePolynomial<BigInteger>> b)```
Computes some GCD associate via Langemyr & Mccallum modular algorithm over algebraic integers
`static <E> UnivariatePolynomial<E>` ModularComposition.```powModulusMod​(UnivariatePolynomial<E> poly, UnivariatePolynomial<E> polyModulus, UnivariateDivision.InverseModMonomial<UnivariatePolynomial<E>> invMod, ArrayList<UnivariatePolynomial<E>> xPowers)```
Returns `poly^modulus mod polyModulus` using precomputed monomial powers ```x^{i*modulus} mod polyModulus``` for i in `[0...degree(poly)]`
`static <E> UnivariateResultants.PolynomialRemainderSequence<E>` UnivariateResultants.```PrimitivePRS​(UnivariatePolynomial<E> a, UnivariatePolynomial<E> b)```
Computes polynomial remainder sequence using primitive division algorithm
`static <E> UnivariatePolynomial<E>[]` UnivariateDivision.```pseudoDivideAndRemainder​(UnivariatePolynomial<E> dividend, UnivariatePolynomial<E> divider, boolean copy)```
Returns quotient and remainder using pseudo division.
`static <E> UnivariateResultants.PolynomialRemainderSequence<E>` UnivariateResultants.```PseudoPRS​(UnivariatePolynomial<E> a, UnivariatePolynomial<E> b)```
Computes polynomial remainder sequence using pseudo division algorithm
`static <E> UnivariatePolynomial<E>` UnivariateDivision.```quotient​(UnivariatePolynomial<E> dividend, UnivariatePolynomial<E> divider, boolean copy)```
Returns quotient of `dividend` and `divider`.
`static <E> UnivariatePolynomial<E>` UnivariateDivision.```quotientFast​(UnivariatePolynomial<E> dividend, UnivariatePolynomial<E> divider, UnivariateDivision.InverseModMonomial<UnivariatePolynomial<E>> invMod, boolean copy)```
Fast quotient using Newton's iteration.
`static <E> UnivariateResultants.PolynomialRemainderSequence<E>` UnivariateResultants.```ReducedPRS​(UnivariatePolynomial<E> a, UnivariatePolynomial<E> b)```
Computes polynomial remainder sequence using reduced division algorithm
`static <E> UnivariatePolynomial<E>` UnivariateDivision.```remainder​(UnivariatePolynomial<E> dividend, UnivariatePolynomial<E> divider, boolean copy)```
Returns remainder of `dividend` and `divider`.
`static <E> E` UnivariateDivision.```remainderCoefficientBound​(UnivariatePolynomial<E> dividend, UnivariatePolynomial<E> divider)```
Gives an upper bound on the coefficients of remainder of division of `dividend` by `divider`
`static <E> UnivariatePolynomial<E>` UnivariateDivision.```remainderFast​(UnivariatePolynomial<E> dividend, UnivariatePolynomial<E> divider, UnivariateDivision.InverseModMonomial<UnivariatePolynomial<E>> invMod, boolean copy)```
Fast remainder using Newton's iteration with switch to classical remainder for small polynomials.
`static <E> E` UnivariateResultants.```Resultant​(UnivariatePolynomial<E> a, UnivariatePolynomial<E> b)```
Computes resultant of two polynomials
`boolean` UnivariatePolynomial.`sameCoefficientRingWith​(UnivariatePolynomial<E> oth)`
`UnivariatePolynomial<E>` UnivariatePolynomial.`set​(UnivariatePolynomial<E> oth)`
`UnivariatePolynomial<E>` UnivariatePolynomial.`setAndDestroy​(UnivariatePolynomial<E> oth)`
`UnivariatePolynomial<E>` UnivariatePolynomial.`setCoefficientRingFrom​(UnivariatePolynomial<E> poly)`
`UnivariatePolynomial<E>` UnivariatePolynomial.```setFrom​(int indexInThis, UnivariatePolynomial<E> poly, int indexInPoly)```
`static <E> UnivariateResultants.PolynomialRemainderSequence<E>` UnivariateResultants.```SubresultantPRS​(UnivariatePolynomial<E> a, UnivariatePolynomial<E> b)```
Computes subresultant polynomial remainder sequence
`static <E> List<E>` UnivariateResultants.```Subresultants​(UnivariatePolynomial<E> a, UnivariatePolynomial<E> b)```
Computes sequence of scalar subresultants.
`UnivariatePolynomial<E>` UnivariatePolynomial.`subtract​(UnivariatePolynomial<E> oth)`
`UnivariatePolynomial<E>` UnivariatePolynomial.```subtract​(UnivariatePolynomial<E> oth, E factor, int exponent)```
Subtracts `factor * x^exponent * oth` from `this`
`static boolean` UnivariateGCD.```updateCRT​(ChineseRemainders.ChineseRemaindersMagic<BigInteger> magic, UnivariatePolynomial<BigInteger> accumulated, UnivariatePolynomialZp64 update)```
Apply CRT to a poly
Method parameters in cc.redberry.rings.poly.univar with type arguments of type UnivariatePolynomial
Modifier and Type Method Description
`String` UnivariatePolynomial.`coefficientRingToString​(IStringifier<UnivariatePolynomial<E>> stringifier)`
`static <E> UnivariatePolynomial<E>[]` UnivariateDivision.```divideAndRemainderFast​(UnivariatePolynomial<E> dividend, UnivariatePolynomial<E> divider, UnivariateDivision.InverseModMonomial<UnivariatePolynomial<E>> invMod, boolean copy)```
Fast algorithm for division with remainder using Newton's iteration.
`static PolynomialFactorDecomposition<UnivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>>>` UnivariateFactorization.`FactorInNumberField​(UnivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>> poly)`
Factors polynomial in Q(alpha)[x] via Trager's algorithm
`static PolynomialFactorDecomposition<UnivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>>>` UnivariateFactorization.`FactorSquareFreeInNumberField​(UnivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>> poly)`
Factors polynomial in Q(alpha)[x] via Trager's algorithm
`static List<UnivariatePolynomial<BigInteger>>` HenselLifting.```liftFactorizationQuadratic​(BigInteger modulus, BigInteger desiredBound, UnivariatePolynomial<BigInteger> poly, List<UnivariatePolynomial<BigInteger>> modularFactors)```
Lifts modular factorization until `modulus` will overcome `desiredBound`.
`static UnivariatePolynomial<Rational<BigInteger>>` UnivariateResultants.```ModularResultantInNumberField​(UnivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>> a, UnivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>> b)```
Modular resultant in simple number field
`static UnivariatePolynomial<BigInteger>` UnivariateResultants.```ModularResultantInRingOfIntegersOfNumberField​(UnivariatePolynomial<UnivariatePolynomial<BigInteger>> a, UnivariatePolynomial<UnivariatePolynomial<BigInteger>> b)```
Modular resultant in the ring of integers of number field
`static UnivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>>` UnivariateGCD.```PolynomialGCDInNumberField​(UnivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>> a, UnivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>> b)```
Computes GCD via Langemyr & Mccallum modular algorithm over algebraic number field
`static UnivariatePolynomial<UnivariatePolynomial<BigInteger>>` UnivariateGCD.```PolynomialGCDInRingOfIntegersOfNumberField​(UnivariatePolynomial<UnivariatePolynomial<BigInteger>> a, UnivariatePolynomial<UnivariatePolynomial<BigInteger>> b)```
Computes some GCD associate via Langemyr & Mccallum modular algorithm over algebraic integers
`static <E> UnivariatePolynomial<E>` ModularComposition.```powModulusMod​(UnivariatePolynomial<E> poly, UnivariatePolynomial<E> polyModulus, UnivariateDivision.InverseModMonomial<UnivariatePolynomial<E>> invMod, ArrayList<UnivariatePolynomial<E>> xPowers)```
Returns `poly^modulus mod polyModulus` using precomputed monomial powers ```x^{i*modulus} mod polyModulus``` for i in `[0...degree(poly)]`
`static <E> UnivariatePolynomial<E>` ModularComposition.```powModulusMod​(UnivariatePolynomial<E> poly, UnivariatePolynomial<E> polyModulus, UnivariateDivision.InverseModMonomial<UnivariatePolynomial<E>> invMod, ArrayList<UnivariatePolynomial<E>> xPowers)```
Returns `poly^modulus mod polyModulus` using precomputed monomial powers ```x^{i*modulus} mod polyModulus``` for i in `[0...degree(poly)]`
`static <E> UnivariatePolynomial<E>` UnivariateDivision.```quotientFast​(UnivariatePolynomial<E> dividend, UnivariatePolynomial<E> divider, UnivariateDivision.InverseModMonomial<UnivariatePolynomial<E>> invMod, boolean copy)```
Fast quotient using Newton's iteration.
`static <E> UnivariatePolynomial<E>` UnivariateDivision.```remainderFast​(UnivariatePolynomial<E> dividend, UnivariatePolynomial<E> divider, UnivariateDivision.InverseModMonomial<UnivariatePolynomial<E>> invMod, boolean copy)```
Fast remainder using Newton's iteration with switch to classical remainder for small polynomials.
`String` UnivariatePolynomial.`toString​(IStringifier<UnivariatePolynomial<E>> stringifier)`
Constructors in cc.redberry.rings.poly.univar with parameters of type UnivariatePolynomial
Constructor Description
```bQuadraticLift​(BigInteger modulus, UnivariatePolynomial<BigInteger> base, UnivariatePolynomial<BigInteger> aFactor, UnivariatePolynomial<BigInteger> bFactor, UnivariatePolynomial<BigInteger> aCoFactor, UnivariatePolynomial<BigInteger> bCoFactor)```