| Package | Description |
|---|---|
| cc.redberry.rings | |
| cc.redberry.rings.io | |
| cc.redberry.rings.poly | |
| cc.redberry.rings.poly.multivar |
| Modifier and Type | Method and Description |
|---|---|
static <Term extends AMonomial<Term>,mPoly extends AMultivariatePolynomial<Term,mPoly>,sPoly extends IUnivariatePolynomial<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 <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>> |
Rings.MultivariateRing(Poly factory)
Ring of multivariate polynomials with specified factory
|
static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>> |
Rings.QuotientRing(MultivariateRing<Poly> baseRing,
Ideal<Term,Poly> ideal)
Quotient ring
baseRing/<ideal> |
static <Term extends AMonomial<Term>,mPoly extends AMultivariatePolynomial<Term,mPoly>,sPoly extends IUnivariatePolynomial<sPoly>> |
Rings.SplittingField(sPoly polynomial)
Splitting field of a given polynomial.
|
| Modifier and Type | Class and Description |
|---|---|
class |
Coder<Element,Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>>
High-level parser and stringifier of ring elements.
|
| Modifier and Type | Method and Description |
|---|---|
static <Element,Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>> |
Coder.mkCoder(Ring<Element> baseRing,
Map<String,Element> eVariables,
MultivariateRing<Poly> polyRing,
Map<String,Poly> pVariables,
SerializableFunction<Poly,Element> polyToElement) |
static <Term extends AMonomial<Term>,mPoly extends AMultivariatePolynomial<Term,mPoly>,sPoly extends IUnivariatePolynomial<sPoly>> |
Coder.mkMultipleExtensionCoder(MultipleFieldExtension<Term,mPoly,sPoly> field,
Map<String,mPoly> variables)
Create coder for multiple field extension
|
static <Term extends AMonomial<Term>,mPoly extends AMultivariatePolynomial<Term,mPoly>,sPoly extends IUnivariatePolynomial<sPoly>> |
Coder.mkMultipleExtensionCoder(MultipleFieldExtension<Term,mPoly,sPoly> field,
String... variables)
Create coder for multiple field extension
|
static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>> |
Coder.mkMultivariateCoder(MultivariateRing<Poly> ring,
Map<String,Poly> variables)
Create coder for multivariate polynomial rings
|
static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>> |
Coder.mkMultivariateCoder(MultivariateRing<Poly> ring,
String... variables)
Create coder for multivariate polynomial rings
|
| Modifier and Type | Class and Description |
|---|---|
class |
MultipleFieldExtension<Term extends AMonomial<Term>,mPoly extends AMultivariatePolynomial<Term,mPoly>,sPoly extends IUnivariatePolynomial<sPoly>>
Multiple field extension
F(α_1, α_2, ..., α_N). |
class |
QuotientRing<Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>>
Multivariate quotient ring
|
| Modifier and Type | Method and Description |
|---|---|
<Term extends AMonomial<Term>,mPoly extends AMultivariatePolynomial<Term,mPoly>> |
SimpleFieldExtension.asMultipleExtension()
Returns a view of this as a multiple field extension
|
static <Term extends AMonomial<Term>,mPoly extends AMultivariatePolynomial<Term,mPoly>,sPoly extends IUnivariatePolynomial<sPoly>> |
MultipleFieldExtension.mkMultipleExtension(SimpleFieldExtension<sPoly> ext) |
static <Term extends AMonomial<Term>,mPoly extends AMultivariatePolynomial<Term,mPoly>,sPoly extends IUnivariatePolynomial<sPoly>> |
MultipleFieldExtension.mkMultipleExtension(sPoly... minimalPolynomials)
Creates multiple field extension
F(α_1, α_2, ..., α_i) where α_i are specified by their minimal
polynomials over F. |
static <Term extends AMonomial<Term>,mPoly extends AMultivariatePolynomial<Term,mPoly>,sPoly extends IUnivariatePolynomial<sPoly>> |
MultipleFieldExtension.mkMultipleExtension(sPoly a) |
static <Term extends AMonomial<Term>,mPoly extends AMultivariatePolynomial<Term,mPoly>,sPoly extends IUnivariatePolynomial<sPoly>> |
MultipleFieldExtension.mkSplittingField(sPoly poly)
Constructs splitting field for a given polynomial.
|
<Term extends AMonomial<Term>> |
MultivariateRing.monomialAlgebra() |
| Modifier and Type | Class and Description |
|---|---|
class |
AMonomial<Term extends AMonomial<Term>>
Abstract monomial (degree vector + coefficient).
|
class |
AMultivariatePolynomial<Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>>
Parent class for multivariate polynomials.
|
static class |
AMultivariatePolynomial.PolynomialCollector<Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>>
Collector which collects stream of element to a UnivariatePolynomial
|
static class |
GroebnerBases.SyzygyPair<Term extends AMonomial<Term>,Poly extends cc.redberry.rings.poly.multivar.MonomialSetView<Term>>
Abstract critical pair: used with different Poly type for Buchberger and F4 algorithms
|
class |
Ideal<Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>>
Ideal represented by its Groebner basis.
|
interface |
IMonomialAlgebra<Term extends AMonomial<Term>>
Algebraic operations (multiplication, division) and utility methods for monomials.
|
class |
MonomialSet<Term extends AMonomial<Term>>
Sorted set of monomials -- basic underlying data structure of multivariate polynomials.
|
class |
PairedIterator<Term1 extends AMonomial<Term1>,Poly1 extends AMultivariatePolynomial<Term1,Poly1>,Term2 extends AMonomial<Term2>,Poly2 extends AMultivariatePolynomial<Term2,Poly2>>
Iterator over a pair of polynomials
|
class |
PairedIterator<Term1 extends AMonomial<Term1>,Poly1 extends AMultivariatePolynomial<Term1,Poly1>,Term2 extends AMonomial<Term2>,Poly2 extends AMultivariatePolynomial<Term2,Poly2>>
Iterator over a pair of polynomials
|
| Modifier and Type | Class and Description |
|---|---|
class |
Monomial<E>
Monomial with coefficient from generic ring
|
class |
MonomialZp64
Monomial with coefficient from Zp with p < 2^64
|
| Modifier and Type | Field and Description |
|---|---|
Term1 |
PairedIterator.aTerm |
Term2 |
PairedIterator.bTerm |
| Modifier and Type | Method and Description |
|---|---|
static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>> |
AMultivariatePolynomial.asMultivariate(IUnivariatePolynomial poly,
int nVariables,
int variable,
Comparator<DegreeVector> ordering)
Converts univariate polynomial to multivariate.
|
static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,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>> |
AMultivariatePolynomial.asMultivariate(UnivariatePolynomial<Poly> univariate,
int uVariable,
boolean join) |
static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>,uPoly extends IUnivariatePolynomial<uPoly>> |
HenselLifting.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
|
static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>> |
GroebnerBases.BuchbergerGB(List<Poly> generators,
Comparator<DegreeVector> monomialOrder)
Computes minimized and reduced Groebner basis of a given ideal via Buchberger algorithm.
|
static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>> |
GroebnerBases.BuchbergerGB(List<Poly> generators,
Comparator<DegreeVector> monomialOrder,
Comparator<GroebnerBases.SyzygyPair> strategy)
Computes minimized and reduced Groebner basis of a given ideal via Buchberger algorithm.
|
static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>> |
MultivariateResultants.ClassicalResultant(Poly a,
Poly b,
int variable)
Computes resultant via subresultant sequences
|
static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>> |
GroebnerBases.ConvertBasis(List<Poly> generators,
Comparator<DegreeVector> desiredOrder)
Converts basis into a basis for desired monomial order
|
static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>> |
Ideal.create(List<Poly> generators)
Creates ideal given by a list of generators.
|
static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>> |
Ideal.create(List<Poly> generators,
Comparator<DegreeVector> monomialOrder)
Creates ideal given by a list of generators.
|
static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>> |
Ideal.create(Poly... generators)
Creates ideal given by a list of generators.
|
static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>> |
MultivariateDivision.divideAndRemainder(Poly dividend,
Poly... dividers)
Performs multivariate division with remainder.
|
static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>> |
MultivariateDivision.divideAndRemainder(Poly dividend,
Poly divider)
Performs multivariate division with remainder.
|
static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>> |
MultivariateDivision.divideExact(Poly dividend,
Poly divider)
Divides
dividend by divider or throws exception if exact division is not possible |
static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>> |
MultivariateDivision.divideOrNull(Poly dividend,
Poly divider)
Divides
dividend by divider or returns null if exact division is not possible |
static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>> |
MultivariateDivision.dividesQ(Poly dividend,
Poly divider)
Tests whether
divisor is a divisor of poly |
static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>> |
MultivariateGCD.EEZGCD(Poly a,
Poly b)
Calculates GCD of two multivariate polynomials over Zp using enhanced EZ algorithm
|
static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>> |
Ideal.empty(Poly factory)
Creates empty ideal
|
static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>> |
Ideal.empty(Poly factory,
Comparator<DegreeVector> monomialOrder)
Creates empty ideal
|
static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>> |
GroebnerBases.F4GB(List<Poly> generators,
Comparator<DegreeVector> monomialOrder)
Computes minimized and reduced Groebner basis of a given ideal via Faugère's F4 F4 algorithm.
|
static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>> |
MultivariateFactorization.FactorInGF(Poly polynomial)
Factors multivariate polynomial over finite field
|
static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>> |
GroebnerBases.GroebnerBasis(List<Poly> generators,
Comparator<DegreeVector> monomialOrder)
Computes Groebner basis (minimized and reduced) of a given ideal represented by a list of generators.
|
static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>> |
GroebnerBases.GroebnerBasisInGF(List<Poly> generators,
Comparator<DegreeVector> monomialOrder,
GroebnerBases.HilbertSeries hilbertSeries)
Computes Groebner basis (minimized and reduced) of a given ideal over finite filed represented by a list of
generators.
|
static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>> |
GroebnerBases.GroebnerBasisRegardingGrevLexWithPermutation(List<Poly> ideal,
cc.redberry.rings.poly.multivar.GroebnerBases.GroebnerAlgorithm<Term,Poly> baseAlgorithm,
MonomialOrder.GrevLexWithPermutation order)
computes Groebner basis in GREVLEX with shuffled variables
|
static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>> |
GroebnerBases.GroebnerBasisWithOptimizedGradedOrder(List<Poly> ideal)
computes Groebner basis in GREVLEX with shuffled variables
|
static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>> |
GroebnerBases.GroebnerBasisWithOptimizedGradedOrder(List<Poly> ideal,
cc.redberry.rings.poly.multivar.GroebnerBases.GroebnerAlgorithm<Term,Poly> baseAlgorithm)
computes Groebner basis in GREVLEX with shuffled variables
|
static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>> |
GroebnerBases.HilbertConvertBasis(List<Poly> groebnerBasis,
Comparator<DegreeVector> desiredOrdering)
Converts Groebner basis to a given monomial order using Hilbert-driven algorithm
|
static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>> |
GroebnerBases.HilbertGB(List<Poly> generators,
Comparator<DegreeVector> monomialOrder)
Hilbert-driven algorithm for Groebner basis computation
|
static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>> |
GroebnerBases.HilbertGB(List<Poly> generators,
Comparator<DegreeVector> monomialOrder,
cc.redberry.rings.poly.multivar.GroebnerBases.GroebnerAlgorithm<Term,Poly> baseAlgorithm)
Hilbert-driven algorithm for Groebner basis computation.
|
static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>> |
GroebnerBases.HilbertGB(List<Poly> generators,
Comparator<DegreeVector> monomialOrder,
GroebnerBases.HilbertSeries hilbertSeries)
Hilbert-driven algorithm for Groebner basis computation
|
static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>> |
GroebnerBases.isGroebnerBasis(List<Poly> ideal,
List<Poly> generators,
Comparator<DegreeVector> monomialOrder)
Check whether specified generators form Groebner basis of given ideal
|
static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>> |
MultivariateSquareFreeFactorization.isSquareFree(Poly poly)
Tests whether the given
poly is square free. |
static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>> |
GroebnerMethods.JacobianMatrix(List<Poly> sys)
Creates a Jacobian matrix of a given list of polynomials
|
static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>> |
GroebnerBases.minimizeGroebnerBases(List<Poly> basis)
Minimizes Groebner basis.
|
static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>> |
HenselLifting.multivariateLiftAutomaticLC(Poly base,
Poly[] factors,
cc.redberry.rings.poly.multivar.HenselLifting.IEvaluation<Term,Poly> evaluation)
Multivariate lift with automatic leading coefficient correction
|
static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>> |
HenselLifting.multivariateLiftAutomaticLC(Poly base,
Poly[] factors,
cc.redberry.rings.poly.multivar.HenselLifting.IEvaluation<Term,Poly> evaluation,
int from)
Multivariate lift with automatic leading coefficient correction
|
static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>> |
MultivariateDivision.nontrivialQuotientQ(Poly dividend,
Poly divider)
Tests whether there is nontrivial quotient
dividend / divider |
static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>> |
GroebnerBases.optimalOrder(List<Poly> ideal)
Deduce the optimal order for GB algorithms
|
static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>> |
MultivariateDivision.pseudoRemainder(Poly dividend,
Collection<Poly> dividers)
Performs multivariate division with remainder and rerurns the remainder.
|
static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>> |
MultivariateDivision.pseudoRemainder(Poly dividend,
Poly... dividers)
Performs multivariate pseudo division with remainder and returns the remainder.
|
static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>> |
MultivariateDivision.pseudoRemainder(Poly dividend,
Poly divider)
Performs multivariate division with remainder and rerurns the remainder.
|
static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>> |
RandomMultivariatePolynomials.randomPolynomial(Poly factory,
int degree,
int size,
org.apache.commons.math3.random.RandomGenerator rnd)
Generates random multivariate polynomial
|
static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>> |
MultivariateDivision.remainder(Poly dividend,
Collection<Poly> dividers)
Performs multivariate division with remainder and rerurns the remainder.
|
static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>> |
MultivariateDivision.remainder(Poly dividend,
Poly... dividers)
Performs multivariate division with remainder and returns the remainder.
|
static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>> |
MultivariateDivision.remainder(Poly dividend,
Poly divider)
Performs multivariate division with remainder and rerurns the remainder.
|
static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>> |
GroebnerBases.removeRedundant(List<Poly> basis)
Computes reduced Groebner basis
|
static <T extends AMonomial<T>,P extends AMultivariatePolynomial<T,P>> |
AMultivariatePolynomial.renameVariables(P poly,
int[] newVariables)
Rename variables from [0,1,...N] to [newVariables[0], newVariables[1], ..., newVariables[N]] (new instance
created)
|
static <T extends AMonomial<T>,P extends AMultivariatePolynomial<T,P>> |
AMultivariatePolynomial.renameVariables(P poly,
int[] newVariables,
Comparator<DegreeVector> newOrdering)
Rename variables from [0,1,...N] to [newVariables[0], newVariables[1], ..., newVariables[N]] (new instance
created)
|
static <T extends AMonomial<T>> |
AMultivariatePolynomial.renameVariables(T e,
int[] newVariables)
Rename variables from [0,1,...N] to [newVariables[0], newVariables[1], ..., newVariables[N]] (new instance
created)
|
static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>> |
MultivariateResultants.ResultantInSmallCharacteristic(Poly a,
Poly b,
int variable)
Resultant in small characteristic
|
static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>,uPoly extends IUnivariatePolynomial<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
|
static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>> |
GroebnerBases.solveGB(List<Poly> generators,
List<Collection<DegreeVector>> gbSkeleton,
Comparator<DegreeVector> monomialOrder)
Sparse Groebner basis via "linear lifting".
|
static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>> |
MultivariateSquareFreeFactorization.SquareFreeFactorization(Poly poly)
Performs square-free factorization of a {@code poly.
|
static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>> |
MultivariateSquareFreeFactorization.SquareFreeFactorizationMusser(Poly poly)
Performs square-free factorization of a
poly which coefficient ring has any characteristic using Musser's
algorithm. |
static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>> |
MultivariateSquareFreeFactorization.SquareFreeFactorizationMusserZeroCharacteristics(Poly poly)
Performs square-free factorization of a
poly which coefficient ring has zero characteristic using
Musser's algorithm. |
static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>> |
MultivariateSquareFreeFactorization.SquareFreeFactorizationYunZeroCharacteristics(Poly poly)
Performs square-free factorization of a
poly which coefficient ring has zero characteristic using Yun's
algorithm. |
static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>> |
MultivariateSquareFreeFactorization.SquareFreePart(Poly poly)
Returns square-free part of the
poly |
static <T extends AMonomial<T>,P extends AMultivariatePolynomial<T,P>> |
AMultivariatePolynomial.swapVariables(P poly,
int i,
int j)
Renames variable
i to j and j to i (new instance created) |
static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>> |
GroebnerBases.syzygy(GroebnerBases.SyzygyPair<Term,Poly> sPair)
Computes syzygy of given polynomials
|
static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>> |
GroebnerBases.syzygy(Poly a,
Poly b)
Computes syzygy of given polynomials
|
static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>> |
Ideal.trivial(Poly factory)
Creates trivial ideal (ideal = ring)
|
static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>> |
Ideal.trivial(Poly factory,
Comparator<DegreeVector> monomialOrder)
Creates trivial ideal (ideal = ring)
|
| Modifier and Type | Method and Description |
|---|---|
Term[] |
IMonomialAlgebra.createArray(int length)
creates generic array of specified length
|
Term[] |
AMultivariatePolynomial.toArray() |
| Modifier and Type | Method and Description |
|---|---|
Poly |
AMultivariatePolynomial.add(Term... monomials)
Adds monomials to this polynomial
|
Poly |
AMultivariatePolynomial.create(Term... terms)
Creates multivariate polynomial over the same ring as this from the list of monomials
|
Copyright © 2022. All rights reserved.