Uses of Interface
cc.redberry.rings.poly.univar.IUnivariatePolynomial
-
Packages that use IUnivariatePolynomial 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 IUnivariatePolynomial in cc.redberry.rings
Methods in cc.redberry.rings with type parameters of type IUnivariatePolynomial Modifier and Type Method Description static <Poly extends IUnivariatePolynomial<Poly>>
AlgebraicNumberField<Poly>Rings. AlgebraicNumberField(Poly minimalPoly)Algebraic number field generated by the specified minimal polynomialstatic <Poly extends IUnivariatePolynomial<Poly>>
FiniteField<Poly>Rings. GF(Poly irreducible)Galois field with the specified minimal polynomial.static <Term extends AMonomial<Term>,mPoly extends AMultivariatePolynomial<Term,mPoly>,sPoly extends IUnivariatePolynomial<sPoly>>
MultipleFieldExtension<Term,mPoly,sPoly>Rings. MultipleFieldExtension(sPoly... minimalPolynomials)Multiple field extension generated by given algebraic elements represented by their minimal polynomials (not tested that they are irreducible)static <Poly extends IUnivariatePolynomial<Poly>>
Poly[]RationalReconstruction. reconstruct(Poly n, Poly modulus, int numeratorBound, int denominatorBound)Performs a rational number reconstruction.static <uPoly extends IUnivariatePolynomial<uPoly>>
SimpleFieldExtension<uPoly>Rings. SimpleFieldExtension(uPoly minimalPolynomial)Returns a simple field extension generated by given minimal polynomialstatic <Term extends AMonomial<Term>,mPoly extends AMultivariatePolynomial<Term,mPoly>,sPoly extends IUnivariatePolynomial<sPoly>>
MultipleFieldExtension<Term,mPoly,sPoly>Rings. SplittingField(sPoly polynomial)Splitting field of a given polynomial.static <uPoly extends IUnivariatePolynomial<uPoly>>
SimpleFieldExtension<uPoly>Rings. UnivariateQuotientRing(uPoly modulus)Deprecated.static <Poly extends IUnivariatePolynomial<Poly>>
UnivariateRing<Poly>Rings. UnivariateRing(Poly factory)Ring of univariate polynomials with specified factoryMethods in cc.redberry.rings that return IUnivariatePolynomial Modifier and Type Method Description static <Poly extends IUnivariatePolynomial<Poly>>
Poly[]RationalReconstruction. reconstruct(Poly n, Poly modulus, int numeratorBound, int denominatorBound)Performs a rational number reconstruction.Methods in cc.redberry.rings with parameters of type IUnivariatePolynomial Modifier and Type Method Description static <Term extends AMonomial<Term>,mPoly extends AMultivariatePolynomial<Term,mPoly>,sPoly extends IUnivariatePolynomial<sPoly>>
MultipleFieldExtension<Term,mPoly,sPoly>Rings. MultipleFieldExtension(sPoly... minimalPolynomials)Multiple field extension generated by given algebraic elements represented by their minimal polynomials (not tested that they are irreducible) -
Uses of IUnivariatePolynomial in cc.redberry.rings.io
Methods in cc.redberry.rings.io with type parameters of type IUnivariatePolynomial Modifier and Type Method Description static <Term extends AMonomial<Term>,mPoly extends AMultivariatePolynomial<Term,mPoly>,sPoly extends IUnivariatePolynomial<sPoly>>
Coder<mPoly,?,?>Coder. mkMultipleExtensionCoder(MultipleFieldExtension<Term,mPoly,sPoly> field, String... variables)Create coder for multiple field extensionstatic <Term extends AMonomial<Term>,mPoly extends AMultivariatePolynomial<Term,mPoly>,sPoly extends IUnivariatePolynomial<sPoly>>
Coder<mPoly,?,?>Coder. mkMultipleExtensionCoder(MultipleFieldExtension<Term,mPoly,sPoly> field, Map<String,mPoly> variables)Create coder for multiple field extensionstatic <Poly extends IUnivariatePolynomial<Poly>>
Coder<Poly,?,?>Coder. mkUnivariateCoder(IPolynomialRing<Poly> ring, String variable)Create coder for univariate polynomial ringsstatic <Poly extends IUnivariatePolynomial<Poly>>
Coder<Poly,?,?>Coder. mkUnivariateCoder(IPolynomialRing<Poly> ring, Map<String,Poly> variables)Create coder for univariate polynomial rings -
Uses of IUnivariatePolynomial in cc.redberry.rings.poly
Classes in cc.redberry.rings.poly with type parameters of type IUnivariatePolynomial Modifier and Type Class Description classAlgebraicNumberField<E extends IUnivariatePolynomial<E>>Algebraic number fieldF(α)represented as a simple field extension, for details seeSimpleFieldExtension.classFiniteField<E extends IUnivariatePolynomial<E>>Galois fieldGF(p, q).classMultipleFieldExtension<Term extends AMonomial<Term>,mPoly extends AMultivariatePolynomial<Term,mPoly>,sPoly extends IUnivariatePolynomial<sPoly>>Multiple field extensionF(α_1, α_2, ..., α_N).classSimpleFieldExtension<E extends IUnivariatePolynomial<E>>A simple field extensionF(α)represented as a univariate quotient ringF[x]/<m(x)>wherem(x)is the minimal polynomial ofα.classUnivariateRing<Poly extends IUnivariatePolynomial<Poly>>Ring of univariate polynomials.Methods in cc.redberry.rings.poly with type parameters of type IUnivariatePolynomial Modifier and Type Method Description static <Term extends AMonomial<Term>,mPoly extends AMultivariatePolynomial<Term,mPoly>,sPoly extends IUnivariatePolynomial<sPoly>>
MultipleFieldExtension<Term,mPoly,sPoly>MultipleFieldExtension. mkMultipleExtension(SimpleFieldExtension<sPoly> ext)static <Term extends AMonomial<Term>,mPoly extends AMultivariatePolynomial<Term,mPoly>,sPoly extends IUnivariatePolynomial<sPoly>>
MultipleFieldExtension<Term,mPoly,sPoly>MultipleFieldExtension. mkMultipleExtension(sPoly a)static <Term extends AMonomial<Term>,mPoly extends AMultivariatePolynomial<Term,mPoly>,sPoly extends IUnivariatePolynomial<sPoly>>
MultipleFieldExtension<Term,mPoly,sPoly>MultipleFieldExtension. mkMultipleExtension(sPoly... minimalPolynomials)Creates multiple field extensionF(α_1, α_2, ..., α_i)whereα_iare specified by their minimal polynomials over F.static <Term extends AMonomial<Term>,mPoly extends AMultivariatePolynomial<Term,mPoly>,sPoly extends IUnivariatePolynomial<sPoly>>
MultipleFieldExtension<Term,mPoly,sPoly>MultipleFieldExtension. mkSplittingField(sPoly poly)Constructs splitting field for a given polynomial.static <T extends IUnivariatePolynomial<T>>
T[]PolynomialMethods. PolynomialExtendedGCD(T a, T b)Computes[gcd(a,b), s, t]such thats * a + t * b = gcd(a, b).Methods in cc.redberry.rings.poly that return IUnivariatePolynomial Modifier and Type Method Description E[]SimpleFieldExtension. createArray(int length)E[][]SimpleFieldExtension. createArray2d(int length)E[][]SimpleFieldExtension. createArray2d(int m, int n)E[]AlgebraicNumberField. divideAndRemainder(E a, E b)E[]FiniteField. divideAndRemainder(E a, E b)Poly[]UnivariateRing. divideAndRemainder(Poly a, Poly b)Poly[]UnivariateRing. extendedGCD(Poly a, Poly b)Poly[]UnivariateRing. firstBezoutCoefficient(Poly a, Poly b)sPoly[]MultipleFieldExtension. getGeneratorReps()Returns representation of generators as elements of simple field extension generated by primitive elementMultipleFieldExtension.getPrimitiveElement()static <T extends IUnivariatePolynomial<T>>
T[]PolynomialMethods. PolynomialExtendedGCD(T a, T b)Computes[gcd(a,b), s, t]such thats * a + t * b = gcd(a, b).Methods in cc.redberry.rings.poly with parameters of type IUnivariatePolynomial Modifier and Type Method Description static <Term extends AMonomial<Term>,mPoly extends AMultivariatePolynomial<Term,mPoly>,sPoly extends IUnivariatePolynomial<sPoly>>
MultipleFieldExtension<Term,mPoly,sPoly>MultipleFieldExtension. mkMultipleExtension(sPoly... minimalPolynomials)Creates multiple field extensionF(α_1, α_2, ..., α_i)whereα_iare specified by their minimal polynomials over F.Constructors in cc.redberry.rings.poly with parameters of type IUnivariatePolynomial Constructor Description MultipleFieldExtension(MultipleFieldExtension<Term,mPoly,sPoly>[] tower, UnivariatePolynomial<mPoly>[] minimalPolynomialsOfGenerators, mPoly primitiveElement, sPoly[] generatorsReps, SimpleFieldExtension<sPoly> simpleExtension) -
Uses of IUnivariatePolynomial in cc.redberry.rings.poly.multivar
Methods in cc.redberry.rings.poly.multivar with type parameters of type IUnivariatePolynomial Modifier and Type Method Description static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>,uPoly extends IUnivariatePolynomial<uPoly>>
voidHenselLifting. bivariateLiftNoLCCorrection0(Poly base, Poly[] factors, cc.redberry.rings.poly.multivar.HenselLifting.IEvaluation<Term,Poly> evaluation, int degreeBound)Fast bivariate Hensel lifting which uses dense representation for bivariate polynomials<sPoly extends IUnivariatePolynomial<sPoly>>
sPolyAMultivariatePolynomial. composition(Ring<sPoly> uRing, sPoly... values)Substitutes given polynomials instead of variables of this (that isthis(values_1, ..., values_N))<sPoly extends IUnivariatePolynomial<sPoly>>
sPolyAMultivariatePolynomial. composition(sPoly... values)Substitutes given polynomials instead of variables of this (that isthis(values_1, ..., values_N))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 evaluationMethods in cc.redberry.rings.poly.multivar that return IUnivariatePolynomial Modifier and Type Method Description abstract IUnivariatePolynomialAMultivariatePolynomial. asUnivariate()Converts this to univariate polynomial or throws exception if conversion is impossible (more than one variable have non zero exponents)abstract IUnivariatePolynomialAMultivariatePolynomial. contentUnivariate(int variable)Gives the content of this considered as R[variable][other_variables]IUnivariatePolynomialMultivariatePolynomialZp64. toDenseRecursiveForm()Gives a recursive univariate representation of this poly.Methods in cc.redberry.rings.poly.multivar that return types with arguments of type IUnivariatePolynomial Modifier and Type Method Description abstract MultivariatePolynomial<? extends IUnivariatePolynomial>AMultivariatePolynomial. asOverUnivariate(int variable)Converts this to a multivariate polynomial with coefficients being univariate polynomials overvariableabstract MultivariatePolynomial<? extends IUnivariatePolynomial>AMultivariatePolynomial. asOverUnivariateEliminate(int variable)Converts this to a multivariate polynomial with coefficients being univariate polynomials overvariable, the resulting polynomial have (nVariable - 1) multivariate variables (specifiedvariableis eliminated)Methods in cc.redberry.rings.poly.multivar with parameters of type IUnivariatePolynomial Modifier and Type Method Description static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>>
PolyAMultivariatePolynomial. asMultivariate(IUnivariatePolynomial poly, int nVariables, int variable, Comparator<DegreeVector> ordering)Converts univariate polynomial to multivariate.<sPoly extends IUnivariatePolynomial<sPoly>>
sPolyAMultivariatePolynomial. composition(Ring<sPoly> uRing, sPoly... values)Substitutes given polynomials instead of variables of this (that isthis(values_1, ..., values_N))<sPoly extends IUnivariatePolynomial<sPoly>>
sPolyAMultivariatePolynomial. composition(sPoly... values)Substitutes given polynomials instead of variables of this (that isthis(values_1, ..., values_N))static longMultivariatePolynomialZp64. evaluateDenseRecursiveForm(IUnivariatePolynomial recForm, long[] values)Evaluates polynomial given in a dense recursive form at a given pointsstatic MultivariatePolynomialZp64MultivariatePolynomialZp64. fromDenseRecursiveForm(IUnivariatePolynomial recForm, int nVariables, Comparator<DegreeVector> ordering)Converts poly from a recursive univariate representation.static MultivariatePolynomialZp64MultivariatePolynomialZp64. fromDenseRecursiveForm(IUnivariatePolynomial recForm, Comparator<DegreeVector> ordering)Converts poly from a recursive univariate representation. -
Uses of IUnivariatePolynomial in cc.redberry.rings.poly.univar
Classes in cc.redberry.rings.poly.univar with type parameters of type IUnivariatePolynomial Modifier and Type Class Description static classDiophantineEquations.DiophantineSolver<Poly extends IUnivariatePolynomial<Poly>>Solves a1 * x1 + a2 * x2 + ...static interfaceHenselLifting.LiftableQuintet<PolyZp extends IUnivariatePolynomial<PolyZp>>Liftable quintet.interfaceIUnivariatePolynomial<Poly extends IUnivariatePolynomial<Poly>>Parent interface for univariate polynomials.static classUnivariateDivision.InverseModMonomial<Poly extends IUnivariatePolynomial<Poly>>Holdspoly^(-1) mod x^istatic classUnivariateResultants.APolynomialRemainderSequence<Poly extends IUnivariatePolynomial<Poly>>Polynomial remainder sequence (PRS).Classes in cc.redberry.rings.poly.univar that implement IUnivariatePolynomial Modifier and Type Class Description classUnivariatePolynomial<E>Univariate polynomial over generic ring.classUnivariatePolynomialZ64Univariate polynomial over machine integers in range [-2^63, 2^63].classUnivariatePolynomialZp64Univariate polynomial over Zp ring with modulus in the range of[2, 2^62)(the last value is specified byMachineArithmetic.MAX_SUPPORTED_MODULUS_BITS.Fields in cc.redberry.rings.poly.univar declared as IUnivariatePolynomial Modifier and Type Field Description PolyUnivariateResultants.APolynomialRemainderSequence. aInitial polynomialsprotected PolyZpHenselLifting.QuadraticLiftAbstract. aCoFactorxgcd coefficientsprotected PolyZpHenselLifting.QuadraticLiftAbstract. aCoFactorxgcd coefficientsprotected PolyZpHenselLifting.QuadraticLiftAbstract. aFactorTwo factors of the initial Z[x] polyprotected PolyZpHenselLifting.QuadraticLiftAbstract. aFactorTwo factors of the initial Z[x] polyPolyUnivariateResultants.APolynomialRemainderSequence. bInitial polynomialsprotected PolyZpHenselLifting.QuadraticLiftAbstract. bCoFactorxgcd coefficientsprotected PolyZpHenselLifting.QuadraticLiftAbstract. bCoFactorxgcd coefficientsprotected PolyZpHenselLifting.QuadraticLiftAbstract. bFactorTwo factors of the initial Z[x] polyprotected PolyZpHenselLifting.QuadraticLiftAbstract. bFactorTwo factors of the initial Z[x] polyMethods in cc.redberry.rings.poly.univar with type parameters of type IUnivariatePolynomial Modifier and Type Method Description static <Poly extends IUnivariatePolynomial<Poly>>
PolynomialFactorDecomposition<Poly>EqualDegreeFactorization. CantorZassenhaus(Poly input, int d)Plain Cantor-Zassenhaus algorithm implementationstatic <T extends IUnivariatePolynomial<T>>
TModularComposition. composition(T poly, T point, T polyModulus)Returns modular compositionpoly(point) mod polyModulus.static <T extends IUnivariatePolynomial<T>>
TModularComposition. composition(T poly, T point, T polyModulus, UnivariateDivision.InverseModMonomial<T> invMod)Returns modular compositionpoly(point) mod polyModulus.static <T extends IUnivariatePolynomial<T>>
TModularComposition. compositionBrentKung(T poly, ArrayList<T> pointPowers, T polyModulus, UnivariateDivision.InverseModMonomial<T> invMod, int tBrentKung)Returns modular compositionpoly(point) mod polyModuluscalculated using Brent & Kung algorithm for modular composition.static <T extends IUnivariatePolynomial<T>>
TModularComposition. compositionBrentKung(T poly, T point, T polyModulus, UnivariateDivision.InverseModMonomial<T> invMod)Returns modular compositionpoly(point) mod polyModuluscalculated using Brent & Kung algorithm for modular composition.static <T extends IUnivariatePolynomial<T>>
TUnivariatePolynomialArithmetic. createMonomialMod(long exponent, T polyModulus, UnivariateDivision.InverseModMonomial<T> invMod)Createsx^exponent mod polyModulus.static <T extends IUnivariatePolynomial<T>>
TUnivariatePolynomialArithmetic. createMonomialMod(BigInteger exponent, T polyModulus, UnivariateDivision.InverseModMonomial<T> invMod)Createsx^exponent mod polyModulus.static <Poly extends IUnivariatePolynomial<Poly>>
PolyUnivariateResultants. DiscriminantAsPoly(Poly a)Computes discriminant of polynomial and returns the result as a constant polystatic <Poly extends IUnivariatePolynomial<Poly>>
PolynomialFactorDecomposition<Poly>DistinctDegreeFactorization. DistinctDegreeFactorization(Poly poly)Performs distinct-degree factorization for square-free polynomialpoly.static <Poly extends IUnivariatePolynomial<Poly>>
PolynomialFactorDecomposition<Poly>DistinctDegreeFactorization. DistinctDegreeFactorizationShoup(Poly poly)Performs distinct-degree factorization for square-free polynomialpolyusing Victor Shoup's baby step / giant step algorithm.static <Poly extends IUnivariatePolynomial<Poly>>
Poly[]UnivariateDivision. divideAndRemainder(Poly dividend, Poly divider, boolean copy)Returns{quotient, remainder}ofdividendanddividerornullif the division is not possible.static <Poly extends IUnivariatePolynomial<Poly>>
Poly[]UnivariateDivision. divideAndRemainderFast(Poly dividend, Poly divider, UnivariateDivision.InverseModMonomial<Poly> invMod, boolean copy)Returns{quotient, remainder}ofdividendanddividerstatic <Poly extends IUnivariatePolynomial<Poly>>
Poly[]UnivariateDivision. divideAndRemainderFast0(Poly dividend, Poly divider, UnivariateDivision.InverseModMonomial<Poly> invRevMod, boolean copy)fast division implementationstatic <Poly extends IUnivariatePolynomial<Poly>>
PolyUnivariateDivision. divideExact(Poly dividend, Poly divider, boolean copy)Dividesdividendbydivideror throwsArithmeticExceptionif exact division is not possiblestatic <Poly extends IUnivariatePolynomial<Poly>>
PolyUnivariateDivision. divideOrNull(Poly dividend, Poly divider, boolean copy)Dividesdividendbydivideror returnsnullif exact division is not possiblestatic <T extends IUnivariatePolynomial<T>>
T[]UnivariateGCD. EuclidFirstBezoutCoefficient(T a, T b)Returns array of[gcd(a,b), s]such thats * a + t * b = gcd(a, b)static <T extends IUnivariatePolynomial<T>>
TUnivariateGCD. EuclidGCD(T a, T b)Returns the GCD calculated with Euclidean algorithm.static <T extends IUnivariatePolynomial<T>>
T[]UnivariateGCD. ExtendedEuclidGCD(T a, T b)Runs extended Euclidean algorithm to compute[gcd(a,b), s, t]such thats * a + t * b = gcd(a, b).static <T extends IUnivariatePolynomial<T>>
T[]UnivariateGCD. ExtendedHalfGCD(T a, T b)Runs extended Half-GCD algorithm to compute[gcd(a,b), s, t]such thats * a + t * b = gcd(a, b).static <Poly extends IUnivariatePolynomial<Poly>>
PolynomialFactorDecomposition<Poly>UnivariateFactorization. Factor(Poly poly)Factors univariatepoly.static <Poly extends IUnivariatePolynomial<Poly>>
PolynomialFactorDecomposition<Poly>UnivariateFactorization. FactorInGF(Poly poly)Factors polynomial over finite fieldstatic <Poly extends IUnivariatePolynomial<Poly>>
PolynomialFactorDecomposition<Poly>UnivariateFactorization. FactorInZ(Poly poly)Factors polynomial in Z[x].static <T extends IUnivariatePolynomial<T>>
PolynomialFactorDecomposition<T>UnivariateFactorization. FactorSquareFreeInGF(T poly)Factors square-free polynomial over finite fieldstatic <PolyZ extends IUnivariatePolynomial<PolyZ>>
PolynomialFactorDecomposition<PolyZ>UnivariateFactorization. FactorSquareFreeInZ(PolyZ poly)static <Poly extends IUnivariatePolynomial<Poly>>
UnivariateDivision.InverseModMonomial<Poly>UnivariateDivision. fastDivisionPreConditioning(Poly divider)Preparesrev(divider)^(-1) mod x^ifor fast division.static <Poly extends IUnivariatePolynomial<Poly>>
UnivariateDivision.InverseModMonomial<Poly>UnivariateDivision. fastDivisionPreConditioningWithLCCorrection(Poly divider)Preparesrev(divider)^(-1) mod x^ifor fast division.static <Poly extends IUnivariatePolynomial<Poly>>
booleanIrreduciblePolynomials. finiteFieldIrreducibleBenOr(Poly poly)Tests whetherpolyis irreducible over the finite fieldstatic <Poly extends IUnivariatePolynomial<Poly>>
booleanIrreduciblePolynomials. finiteFieldIrreducibleQ(Poly poly)Tests whetherpolyis irreducible over the finite fieldstatic <Poly extends IUnivariatePolynomial<Poly>>
booleanIrreduciblePolynomials. finiteFieldIrreducibleViaModularComposition(Poly poly)Tests whetherpolyis irreducible over the finite fieldstatic <T extends IUnivariatePolynomial<T>>
TUnivariateGCD. HalfGCD(T a, T b)Half-GCD algorithm.static <Poly extends IUnivariatePolynomial<Poly>>
booleanIrreduciblePolynomials. irreducibleQ(Poly poly)Tests whetherpolyis irreduciblestatic <T extends IUnivariatePolynomial<T>>
booleanUnivariateSquareFreeFactorization. isSquareFree(T poly)Returnstrueifpolyis square-free andfalseotherwisestatic <Poly extends IUnivariatePolynomial<Poly>>
Poly[]DiophantineEquations. monicExtendedEuclid(Poly a, Poly b)runs xgcd for coprime polynomials ensuring that gcd is 1 (not another constant)static <T extends IUnivariatePolynomial<T>>
TUnivariatePolynomialArithmetic. polyAddMod(T m1, T m2, T polyModulus, boolean copy)Returns the remainder of the sum(m1 + m2)andpolyModulus.static <T extends IUnivariatePolynomial<T>>
TUnivariatePolynomialArithmetic. polyAddMod(T m1, T m2, T polyModulus, UnivariateDivision.InverseModMonomial<T> invMod, boolean copy)Returns the remainder of the sum(m1 + m2)andpolyModulususing fast algorithm for pre-conditioned modulus.static <T extends IUnivariatePolynomial<T>>
TUnivariatePolynomialArithmetic. polyMod(T dividend, T polyModulus, boolean copy)Returns the remainder ofdividendandpolyModulus.static <T extends IUnivariatePolynomial<T>>
TUnivariatePolynomialArithmetic. polyMod(T dividend, T polyModulus, UnivariateDivision.InverseModMonomial<T> invMod, boolean copy)Returns the remainder ofdividendandpolyModulususing fast algorithm for pre-conditioned modulus.static <T extends IUnivariatePolynomial<T>>
TUnivariatePolynomialArithmetic. polyMultiplyMod(T m1, T m2, T polyModulus, boolean copy)Returns the remainder of the product(m1 * m2)andpolyModulus.static <T extends IUnivariatePolynomial<T>>
TUnivariatePolynomialArithmetic. polyMultiplyMod(T m1, T m2, T polyModulus, UnivariateDivision.InverseModMonomial<T> invMod, boolean copy)Returns the remainder of the product(m1 * m2)andpolyModulususing fast algorithm for pre-conditioned modulus.static <T extends IUnivariatePolynomial<T>>
TUnivariatePolynomialArithmetic. polyNegateMod(T m1, T polyModulus, boolean copy)Returns the remainder of the negated poly-m1andpolyModulus.static <T extends IUnivariatePolynomial<T>>
TUnivariatePolynomialArithmetic. polyNegateMod(T m1, T polyModulus, UnivariateDivision.InverseModMonomial<T> invMod, boolean copy)Returns the remainder of the negated poly-m1andpolyModulususing fast algorithm for pre-conditioned modulus.static <T extends IUnivariatePolynomial<T>>
T[]UnivariateGCD. PolynomialExtendedGCD(T a, T b)Computes[gcd(a,b), s, t]such thats * a + t * b = gcd(a, b).static <T extends IUnivariatePolynomial<T>>
T[]UnivariateGCD. PolynomialFirstBezoutCoefficient(T a, T b)Returns array of[gcd(a,b), s]such thats * a + t * b = gcd(a, b)static <T extends IUnivariatePolynomial<T>>
TUnivariateGCD. PolynomialGCD(Iterable<T> polynomials)Returns GCD of a list of polynomials.static <T extends IUnivariatePolynomial<T>>
TUnivariateGCD. PolynomialGCD(T... polynomials)Returns GCD of a list of polynomials.static <T extends IUnivariatePolynomial<T>>
TUnivariateGCD. PolynomialGCD(T a, T b)Calculates the GCD of two polynomials.static <T extends IUnivariatePolynomial<T>>
TUnivariatePolynomialArithmetic. polyPow(T base, long exponent, boolean copy)Returnsbasein a power of non-negativeexponentstatic <T extends IUnivariatePolynomial<T>>
ArrayList<T>ModularComposition. polyPowers(T poly, T polyModulus, UnivariateDivision.InverseModMonomial<T> invMod, int nIterations)Returnspoly^{i} mod polyModulusfor i in[0...nIterations]static <T extends IUnivariatePolynomial<T>>
TUnivariatePolynomialArithmetic. polyPowMod(T base, long exponent, T polyModulus, boolean copy)Returnsbasein a power of non-negativeexponentmodulopolyModulusstatic <T extends IUnivariatePolynomial<T>>
TUnivariatePolynomialArithmetic. polyPowMod(T base, long exponent, T polyModulus, UnivariateDivision.InverseModMonomial<T> invMod, boolean copy)Returnsbasein a power of non-negativeexponentmodulopolyModulusstatic <T extends IUnivariatePolynomial<T>>
TUnivariatePolynomialArithmetic. polyPowMod(T base, BigInteger exponent, T polyModulus, boolean copy)Returnsbasein a power of non-negativeexponentmodulopolyModulusstatic <T extends IUnivariatePolynomial<T>>
TUnivariatePolynomialArithmetic. polyPowMod(T base, BigInteger exponent, T polyModulus, UnivariateDivision.InverseModMonomial<T> invMod, boolean copy)Returnsbasein a power of non-negativeexponentmodulopolyModulusstatic <T extends IUnivariatePolynomial<T>>
TUnivariatePolynomialArithmetic. polySubtractMod(T m1, T m2, T polyModulus, boolean copy)Returns the remainder of the difference(m1 - m2)andpolyModulus.static <T extends IUnivariatePolynomial<T>>
TUnivariatePolynomialArithmetic. polySubtractMod(T m1, T m2, T polyModulus, UnivariateDivision.InverseModMonomial<T> invMod, boolean copy)Returns the remainder of the difference(m1 - m2)andpolyModulususing fast algorithm for pre-conditioned modulus.static <T extends IUnivariatePolynomial<T>>
TModularComposition. powModulusMod(T poly, T polyModulus, UnivariateDivision.InverseModMonomial<T> invMod, ArrayList<T> xPowers)Returnspoly^modulus mod polyModulususing precomputed monomial powersx^{i*modulus} mod polyModulusfor i in[0...degree(poly)]static <Poly extends IUnivariatePolynomial<Poly>>
Poly[]UnivariateDivision. pseudoDivideAndRemainder(Poly dividend, Poly divider, boolean copy)Returns quotient and remainder ofdividendanddividerusing pseudo division.static <Poly extends IUnivariatePolynomial<Poly>>
PolyUnivariateDivision. quotient(Poly dividend, Poly divider, boolean copy)Returns quotientdividend/ divideror null if exact division ostatic <Poly extends IUnivariatePolynomial<Poly>>
PolyIrreduciblePolynomials. randomIrreduciblePolynomial(Poly factory, int degree, org.apache.commons.math3.random.RandomGenerator rnd)Generated random irreducible polynomial of degreedegreestatic <Poly extends IUnivariatePolynomial<Poly>>
PolyRandomUnivariatePolynomials. randomPoly(Poly factory, int degree, org.apache.commons.math3.random.RandomGenerator rnd)Creates random polynomial of specifieddegree.static <Poly extends IUnivariatePolynomial<Poly>>
PolyUnivariateDivision. remainder(Poly dividend, Poly divider, boolean copy)Returns remainder ofdividendanddivider.static <Poly extends IUnivariatePolynomial<Poly>>
PolyUnivariateDivision. remainderFast(Poly dividend, Poly divider, UnivariateDivision.InverseModMonomial<Poly> invMod, boolean copy)Fast remainder using Newton's iteration with switch to classical remainder for small polynomials.static <T extends IUnivariatePolynomial<T>>
TUnivariateDivision. remainderMonomial(T dividend, int xDegree, boolean copy)Returns the remainder ofdividendand monomialx^xDegreestatic <Poly extends IUnivariatePolynomial<Poly>>
PolyUnivariateResultants. ResultantAsPoly(Poly a, Poly b)Computes resultant of two polynomials and returns the result as a constant polystatic <T extends IUnivariatePolynomial<T>>
PolynomialFactorDecomposition<T>UnivariateSquareFreeFactorization. SquareFreeFactorization(T poly)Performs square-free factorization of apoly.static <Poly extends IUnivariatePolynomial<Poly>>
PolynomialFactorDecomposition<Poly>UnivariateSquareFreeFactorization. SquareFreeFactorizationMusser(Poly poly)Performs square-free factorization of apolyusing Musser's algorithm (both zero and non-zero characteristic of coefficient ring allowed).static <Poly extends IUnivariatePolynomial<Poly>>
PolynomialFactorDecomposition<Poly>UnivariateSquareFreeFactorization. SquareFreeFactorizationMusserZeroCharacteristics(Poly poly)Performs square-free factorization of a poly which coefficient ring has zero characteristic using Musser's algorithm.static <Poly extends IUnivariatePolynomial<Poly>>
PolynomialFactorDecomposition<Poly>UnivariateSquareFreeFactorization. SquareFreeFactorizationYunZeroCharacteristics(Poly poly)Performs square-free factorization of apolywhich coefficient ring has zero characteristic using Yun's algorithm.static <T extends IUnivariatePolynomial<T>>
TUnivariateSquareFreeFactorization. SquareFreePart(T poly)Returns square-free part of thepolystatic <T extends IUnivariatePolynomial<T>>
ArrayList<T>ModularComposition. xPowers(T polyModulus, UnivariateDivision.InverseModMonomial<T> invMod)Returnsx^{i*modulus} mod polyModulusfor i in[0...degree], wheredegreeispolyModulusdegree.Methods in cc.redberry.rings.poly.univar that return IUnivariatePolynomial Modifier and Type Method Description static <Poly extends IUnivariatePolynomial<Poly>>
Poly[]UnivariateDivision. divideAndRemainder(Poly dividend, Poly divider, boolean copy)Returns{quotient, remainder}ofdividendanddividerornullif the division is not possible.static <Poly extends IUnivariatePolynomial<Poly>>
Poly[]UnivariateDivision. divideAndRemainderFast(Poly dividend, Poly divider, UnivariateDivision.InverseModMonomial<Poly> invMod, boolean copy)Returns{quotient, remainder}ofdividendanddividerstatic <Poly extends IUnivariatePolynomial<Poly>>
Poly[]UnivariateDivision. divideAndRemainderFast0(Poly dividend, Poly divider, UnivariateDivision.InverseModMonomial<Poly> invRevMod, boolean copy)fast division implementationstatic <T extends IUnivariatePolynomial<T>>
T[]UnivariateGCD. EuclidFirstBezoutCoefficient(T a, T b)Returns array of[gcd(a,b), s]such thats * a + t * b = gcd(a, b)static <T extends IUnivariatePolynomial<T>>
T[]UnivariateGCD. ExtendedEuclidGCD(T a, T b)Runs extended Euclidean algorithm to compute[gcd(a,b), s, t]such thats * a + t * b = gcd(a, b).static <T extends IUnivariatePolynomial<T>>
T[]UnivariateGCD. ExtendedHalfGCD(T a, T b)Runs extended Half-GCD algorithm to compute[gcd(a,b), s, t]such thats * a + t * b = gcd(a, b).static <Poly extends IUnivariatePolynomial<Poly>>
Poly[]DiophantineEquations. monicExtendedEuclid(Poly a, Poly b)runs xgcd for coprime polynomials ensuring that gcd is 1 (not another constant)static <T extends IUnivariatePolynomial<T>>
T[]UnivariateGCD. PolynomialExtendedGCD(T a, T b)Computes[gcd(a,b), s, t]such thats * a + t * b = gcd(a, b).static <T extends IUnivariatePolynomial<T>>
T[]UnivariateGCD. PolynomialFirstBezoutCoefficient(T a, T b)Returns array of[gcd(a,b), s]such thats * a + t * b = gcd(a, b)static <Poly extends IUnivariatePolynomial<Poly>>
Poly[]UnivariateDivision. pseudoDivideAndRemainder(Poly dividend, Poly divider, boolean copy)Returns quotient and remainder ofdividendanddividerusing pseudo division.Poly[]DiophantineEquations.DiophantineSolver. solve(Poly rhs)Methods in cc.redberry.rings.poly.univar with parameters of type IUnivariatePolynomial Modifier and Type Method Description static <T extends IUnivariatePolynomial<T>>
TUnivariateGCD. PolynomialGCD(T... polynomials)Returns GCD of a list of polynomials.Constructors in cc.redberry.rings.poly.univar with parameters of type IUnivariatePolynomial Constructor Description DiophantineSolver(Poly[] factors)
-