Uses of Class
cc.redberry.rings.poly.univar.UnivariatePolynomial
-
Packages that use UnivariatePolynomial Package Description cc.redberry.rings cc.redberry.rings.io cc.redberry.rings.poly cc.redberry.rings.poly.multivar cc.redberry.rings.poly.univar -
-
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 cardinalityprime ^ exponent
for arbitrary largeprime
static <E> UnivariateRing<UnivariatePolynomial<E>>
Rings. UnivariateRing(Ring<E> coefficientRing)
Ring of univariate polynomials over specified coefficient ringstatic 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 ringsstatic <E> Coder<UnivariatePolynomial<E>,?,?>
Coder. mkUnivariateCoder(IPolynomialRing<UnivariatePolynomial<E>> ring, Coder<E,?,?> cfCoder, Map<String,UnivariatePolynomial<E>> variables)
Create coder for univariate polynomial ringsMethod 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 ringsstatic <E> Coder<UnivariatePolynomial<E>,?,?>
Coder. mkUnivariateCoder(IPolynomialRing<UnivariatePolynomial<E>> ring, Coder<E,?,?> cfCoder, Map<String,UnivariatePolynomial<E>> variables)
Create coder for univariate polynomial ringsstatic <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 denominatorMethods 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 polystatic <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 fieldstatic <E> Util.Tuple2<UnivariatePolynomial<E>,E>
Util. toCommonDenominator(UnivariatePolynomial<Rational<E>> poly)
Brings polynomial with rational coefficients to common denominatorConstructors 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 polynomialUnivariatePolynomial<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)^mUnivariatePolynomial<Rational<BigInteger>>
GroebnerBases.HilbertSeries. remainderNumerator()
Remainder part R(t) of HPS(t): HPS(t) = I(t) + R(t)/(1-t)^mstatic <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 evaluationUnivariatePolynomial
MultivariatePolynomial. toDenseRecursiveForm()
Gives a recursive univariate representation of this poly.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>>
PolyAMultivariatePolynomial. asMultivariate(UnivariatePolynomial<Poly> uPoly, int variable)
Convert univariate polynomial over multivariate polynomials to a normal multivariate polystatic <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>>
PolyAMultivariatePolynomial. 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 pointsstatic <E> MultivariatePolynomial<E>
MultivariatePolynomial. fromDenseRecursiveForm(UnivariatePolynomial recForm, int nVariables, Comparator<DegreeVector> ordering)
Converts poly from a recursive univariate representation.static <Poly extends AMultivariatePolynomial<?,Poly>>
PolyMultivariateConversions. fromUnivariate(UnivariatePolynomial<Poly> poly, int variable)
Given poly in R[variables][other_variables] converts it to poly in R[x1,x2,...,xN] -
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] polyMethods 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)
Add constant to this.UnivariatePolynomial<E>
UnivariatePolynomial. addMonomial(E coefficient, int exponent)
Addscoefficient*x^exponent
tothis
UnivariatePolynomial<E>
UnivariatePolynomial. addMul(UnivariatePolynomial<E> oth, E factor)
Addsoth * factor
tothis
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 ringUnivariatePolynomial<E>
UnivariatePolynomial. contentAsPoly()
static UnivariatePolynomial<BigInteger>
UnivariatePolynomial. create(long... data)
Creates new univariate Z[x] polynomialstatic UnivariatePolynomial<BigInteger>
UnivariatePolynomial. create(Ring<BigInteger> ring, long... data)
Creates univariate polynomial over specified ring (with integer elements) with the specified coefficientsstatic <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 formcc + x * lc
(over the same ring)UnivariatePolynomial<E>
UnivariatePolynomial. createMonomial(int degree)
UnivariatePolynomial<E>
UnivariatePolynomial. createMonomial(E coefficient, int degree)
Creates monomialcoefficient * x^degree
(over the same ring)UnivariatePolynomial<E>
UnivariatePolynomial. createOne()
static <E> UnivariatePolynomial<E>
UnivariatePolynomial. createUnsafe(Ring<E> ring, E[] data)
skipsring.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 afactor
or throws exception if exact division is not possibleUnivariatePolynomial<E>
UnivariatePolynomial. divideOrNull(E factor)
Divides this polynomial by afactor
or returnsnull
(causing loss of internal data) if some of the elements can't be exactly divided by thefactor
.UnivariatePolynomial<E>
UnivariatePolynomial. getAsPoly(int i)
UnivariatePolynomial<E>
UnivariateInterpolation.Interpolation. getInterpolatingPolynomial()
Returns resulting interpolating polynomialUnivariatePolynomial<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 atpoints[i]
are exactlyvalues[i]
.static <E> UnivariatePolynomial<E>
UnivariateInterpolation. interpolateNewton(Ring<E> ring, E[] points, E[] values)
Constructs an interpolating polynomial which values atpoints[i]
are exactlyvalues[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 thats * 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 fieldstatic UnivariatePolynomial<BigInteger>
UnivariateResultants. ModularResultantInRingOfIntegersOfNumberField(UnivariatePolynomial<UnivariatePolynomial<BigInteger>> a, UnivariatePolynomial<UnivariatePolynomial<BigInteger>> b)
Modular resultant in the ring of integers of number fieldUnivariatePolynomial<E>
UnivariatePolynomial. monic()
UnivariatePolynomial<E>
UnivariatePolynomial. monic(E factor)
Setsthis
to its monic part multiplied by thefactor
.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)
Multipliesthis
by thefactor
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 ringstatic <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 polynomialUnivariatePolynomial<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 fieldstatic UnivariatePolynomial<UnivariatePolynomial<BigInteger>>
UnivariateGCD. PolynomialGCDInRingOfIntegersOfNumberField(UnivariatePolynomial<UnivariatePolynomial<BigInteger>> a, UnivariatePolynomial<UnivariatePolynomial<BigInteger>> b)
Computes some GCD associate via Langemyr & Mccallum modular algorithm over algebraic integersstatic <E> UnivariatePolynomial<E>
ModularComposition. powModulusMod(UnivariatePolynomial<E> poly, UnivariatePolynomial<E> polyModulus, UnivariateDivision.InverseModMonomial<UnivariatePolynomial<E>> invMod, ArrayList<UnivariatePolynomial<E>> xPowers)
Returnspoly^modulus mod polyModulus
using precomputed monomial powersx^{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 ofdividend
anddivider
.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 degreedegree
static UnivariatePolynomial<BigInteger>
IrreduciblePolynomials. randomIrreduciblePolynomialOverZ(int degree, org.apache.commons.math3.random.RandomGenerator rnd)
Generated random irreducible polynomial over Zstatic UnivariatePolynomial<BigInteger>
RandomUnivariatePolynomials. randomMonicPoly(int degree, BigInteger modulus, org.apache.commons.math3.random.RandomGenerator rnd)
Creates random polynomial of specifieddegree
.static <E> UnivariatePolynomial<E>
RandomUnivariatePolynomials. randomMonicPoly(int degree, Ring<E> ring, org.apache.commons.math3.random.RandomGenerator rnd)
Creates random polynomial of specifieddegree
.static UnivariatePolynomial<BigInteger>
RandomUnivariatePolynomials. randomPoly(int degree, BigInteger bound, org.apache.commons.math3.random.RandomGenerator rnd)
Creates random polynomial of specifieddegree
with elements bounded bybound
(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 specifieddegree
with elements from specified ringstatic <E> UnivariatePolynomial<E>
RandomUnivariatePolynomials. randomPoly(int degree, Ring<E> ring, org.apache.commons.math3.random.RandomGenerator rnd)
Creates random polynomial of specifieddegree
with elements from specified ringstatic <E> UnivariatePolynomial<E>
UnivariateDivision. remainder(UnivariatePolynomial<E> dividend, UnivariatePolynomial<E> divider, boolean copy)
Returns remainder ofdividend
anddivider
.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 copyUnivariatePolynomial<E>
UnivariatePolynomial. set(int i, E el)
Sets i-th coefficient of this poly with specified valueUnivariatePolynomial<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 polyUnivariatePolynomial<E>
UnivariatePolynomial. setRing(Ring<E> newRing)
Returns a copy of this with elements reduced to a new coefficient ringUnivariatePolynomial<E>
UnivariatePolynomial. setRingUnsafe(Ring<E> newRing)
internal APIUnivariatePolynomial<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)
Subtractsfactor * x^exponent * oth
fromthis
UnivariatePolynomial<E>
UnivariatePolynomial. subtract(E val)
Subtract constant from this.UnivariatePolynomial<BigInteger>
UnivariatePolynomialZ64. toBigPoly()
Converts this to a polynomial over BigIntegersUnivariatePolynomial<BigInteger>
UnivariatePolynomialZp64. toBigPoly()
Converts this to a polynomial over BigIntegersUnivariatePolynomial<E>
UnivariatePolynomial. toZero()
UnivariatePolynomial<E>
UnivariatePolynomial. truncate(int newDegree)
static <E> UnivariatePolynomial<E>
UnivariatePolynomial. zero(Ring<E> ring)
Creates zero polynomial over specified ringMethods 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)
Addsoth * factor
tothis
static UnivariatePolynomialZ64
UnivariatePolynomial. asOverZ64(UnivariatePolynomial<BigInteger> poly)
Converts poly over BigIntegers to machine-sized polynomial in Zstatic UnivariatePolynomialZp64
UnivariatePolynomial. asOverZp64(UnivariatePolynomial<BigInteger> poly)
Converts Zp[x] poly over BigIntegers to machine-sized polynomial in Zpstatic UnivariatePolynomialZp64
UnivariatePolynomial. asOverZp64(UnivariatePolynomial<BigInteger> poly, IntegersZp64 ring)
Converts Zp[x] poly over BigIntegers to machine-sized polynomial in Zpstatic UnivariatePolynomialZp64
UnivariatePolynomial. asOverZp64Q(UnivariatePolynomial<Rational<BigInteger>> poly, IntegersZp64 ring)
Converts Zp[x] poly over rationals to machine-sized polynomial in Zpstatic 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 algorithmint
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)
Creates quadratic Hensel lift.static HenselLifting.bQuadraticLift
HenselLifting. createQuadraticLift(BigInteger modulus, UnivariatePolynomial<BigInteger> poly, UnivariatePolynomialZp64 aFactor, UnivariatePolynomialZp64 bFactor)
Creates quadratic Hensel lift.static <E> E
UnivariateResultants. Discriminant(UnivariatePolynomial<E> a)
Computes discriminant of polynomialstatic <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 algorithmstatic <E> PolynomialFactorDecomposition<UnivariatePolynomial<Rational<E>>>
UnivariateFactorization. FactorInQ(UnivariatePolynomial<Rational<E>> poly)
Factors polynomial over Qstatic PolynomialFactorDecomposition<UnivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>>>
UnivariateFactorization. FactorSquareFreeInNumberField(UnivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>> poly)
Factors polynomial in Q(alpha)[x] via Trager's algorithmstatic List<UnivariatePolynomial<BigInteger>>
HenselLifting. liftFactorization(BigInteger modulus, BigInteger desiredBound, UnivariatePolynomial<BigInteger> poly, List<UnivariatePolynomialZp64> modularFactors)
Lifts modular factorization untilmodulus
will overcomedesiredBound
.static List<UnivariatePolynomial<BigInteger>>
HenselLifting. liftFactorization(BigInteger modulus, BigInteger desiredBound, UnivariatePolynomial<BigInteger> poly, List<UnivariatePolynomialZp64> modularFactors, boolean quadratic)
Lifts modular factorization untilmodulus
will overcomedesiredBound
.static List<UnivariatePolynomial<BigInteger>>
HenselLifting. liftFactorizationQuadratic(BigInteger modulus, BigInteger desiredBound, UnivariatePolynomial<BigInteger> poly, List<UnivariatePolynomial<BigInteger>> modularFactors)
Lifts modular factorization untilmodulus
will overcomedesiredBound
.static BigInteger
UnivariatePolynomial. mignotteBound(UnivariatePolynomial<BigInteger> poly)
Returns Mignotte's bound (sqrt(n+1) * 2^n max |this|) of the polystatic UnivariatePolynomial<Rational<BigInteger>>[]
UnivariateGCD. ModularExtendedRationalGCD(UnivariatePolynomial<Rational<BigInteger>> a, UnivariatePolynomial<Rational<BigInteger>> b)
Computes[gcd(a,b), s, t]
such thats * 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 Zstatic UnivariatePolynomial<Rational<BigInteger>>
UnivariateResultants. ModularResultantInNumberField(UnivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>> a, UnivariatePolynomial<UnivariatePolynomial<Rational<BigInteger>>> b)
Modular resultant in simple number fieldstatic UnivariatePolynomial<BigInteger>
UnivariateResultants. ModularResultantInRingOfIntegersOfNumberField(UnivariatePolynomial<UnivariatePolynomial<BigInteger>> a, UnivariatePolynomial<UnivariatePolynomial<BigInteger>> b)
Modular resultant in the ring of integers of number fieldUnivariatePolynomial<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 fieldstatic UnivariatePolynomial<UnivariatePolynomial<BigInteger>>
UnivariateGCD. PolynomialGCDInRingOfIntegersOfNumberField(UnivariatePolynomial<UnivariatePolynomial<BigInteger>> a, UnivariatePolynomial<UnivariatePolynomial<BigInteger>> b)
Computes some GCD associate via Langemyr & Mccallum modular algorithm over algebraic integersstatic <E> UnivariatePolynomial<E>
ModularComposition. powModulusMod(UnivariatePolynomial<E> poly, UnivariatePolynomial<E> polyModulus, UnivariateDivision.InverseModMonomial<UnivariatePolynomial<E>> invMod, ArrayList<UnivariatePolynomial<E>> xPowers)
Returnspoly^modulus mod polyModulus
using precomputed monomial powersx^{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 algorithmstatic <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 algorithmstatic <E> UnivariatePolynomial<E>
UnivariateDivision. quotient(UnivariatePolynomial<E> dividend, UnivariatePolynomial<E> divider, boolean copy)
Returns quotient ofdividend
anddivider
.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 algorithmstatic <E> UnivariatePolynomial<E>
UnivariateDivision. remainder(UnivariatePolynomial<E> dividend, UnivariatePolynomial<E> divider, boolean copy)
Returns remainder ofdividend
anddivider
.static <E> E
UnivariateDivision. remainderCoefficientBound(UnivariatePolynomial<E> dividend, UnivariatePolynomial<E> divider)
Gives an upper bound on the coefficients of remainder of division ofdividend
bydivider
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 polynomialsboolean
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 sequencestatic <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)
Subtractsfactor * x^exponent * oth
fromthis
static boolean
UnivariateGCD. updateCRT(ChineseRemainders.ChineseRemaindersMagic<BigInteger> magic, UnivariatePolynomial<BigInteger> accumulated, UnivariatePolynomialZp64 update)
Apply CRT to a polyConstructors 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)
-