| Package | Description |
|---|---|
| cc.redberry.rings | |
| cc.redberry.rings.io | |
| cc.redberry.rings.linear | |
| cc.redberry.rings.poly | |
| cc.redberry.rings.poly.multivar | |
| cc.redberry.rings.poly.univar |
| Modifier and Type | Class and Description |
|---|---|
class |
ARing<E>
Abstract ring which holds perfect power decomposition of its cardinality.
|
class |
ImageRing<F,I>
A ring obtained via isomorphism specified by
ImageRing.image(Object) and ImageRing.inverse(Object) functions. |
class |
Integers
The ring of integers (Z).
|
class |
IntegersZp
Ring of integers modulo some
modulus. |
class |
Rationals<E>
The ring of rationals (Q).
|
| Modifier and Type | Field and Description |
|---|---|
Ring<E> |
Rationals.ring
Ring that numerator and denominator belongs to
|
Ring<E> |
Rational.ring
The ring.
|
Ring<F> |
ImageRing.ring
the ring
|
Ring<E> |
FactorDecomposition.ring
The ring
|
| Modifier and Type | Method and Description |
|---|---|
static <E> E |
ChineseRemainders.ChineseRemainders(Ring<E> ring,
ChineseRemainders.ChineseRemaindersMagic<E> magic,
E remainder1,
E remainder2)
Runs Chinese Remainders algorithm using the precomputed magic (speed's up computation when several invocations
with the same
magic performed) |
static <E> E |
ChineseRemainders.ChineseRemainders(Ring<E> ring,
E[] primes,
E[] remainders)
Runs Chinese Remainders algorithm
|
static <E> E |
ChineseRemainders.ChineseRemainders(Ring<E> ring,
E prime1,
E prime2,
E remainder1,
E remainder2)
Runs Chinese Remainders algorithm
|
static <E> ChineseRemainders.ChineseRemaindersMagic<E> |
ChineseRemainders.createMagic(Ring<E> ring,
E prime1,
E prime2)
Magic for fast repeated Chinese Remainders
|
static <E> FactorDecomposition<E> |
FactorDecomposition.empty(Ring<E> ring)
Empty factorization
|
static <E> Rationals<E> |
Rings.Frac(Ring<E> ring)
Ring of rational functions over specified ring
|
static <E> AlgebraicNumberField<UnivariatePolynomial<E>> |
Rings.GaussianNumbers(Ring<E> ring)
Gaussian numbers for a given ring (that is ring adjoined with imaginary unit)
|
<O> Rational<O> |
Rational.map(Ring<O> ring,
Function<E,O> function)
Maps rational to a new ring
|
<R> FactorDecomposition<R> |
FactorDecomposition.mapTo(Ring<R> othRing,
Function<E,R> mapper) |
static <E> MultivariateRing<MultivariatePolynomial<E>> |
Rings.MultivariateRing(int nVariables,
Ring<E> coefficientRing)
Ring of multivariate polynomials with specified number of variables over specified coefficient ring
|
static <E> MultivariateRing<MultivariatePolynomial<E>> |
Rings.MultivariateRing(int nVariables,
Ring<E> coefficientRing,
Comparator<DegreeVector> monomialOrder)
Ring of multivariate polynomials with specified number of variables over specified coefficient ring
|
static <E> FactorDecomposition<E> |
FactorDecomposition.of(Ring<E> ring,
Collection<E> factors)
Factor decomposition with specified factors and exponents
|
static <E> FactorDecomposition<E> |
FactorDecomposition.of(Ring<E> ring,
E... factors)
Factor decomposition with specified factors and exponents
|
static <E> FactorDecomposition<E> |
FactorDecomposition.of(Ring<E> ring,
E unit,
List<E> factors,
gnu.trove.list.array.TIntArrayList exponents)
Factor decomposition with specified factors and exponents
|
static <E> Rational<E> |
Rational.one(Ring<E> ring)
Constructs one
|
static <E> FactorDecomposition<E> |
FactorDecomposition.unit(Ring<E> ring,
E unit)
Unit factorization
|
static <E> UnivariateRing<UnivariatePolynomial<E>> |
Rings.UnivariateRing(Ring<E> coefficientRing)
Ring of univariate polynomials over specified coefficient ring
|
static <E> Rational<E> |
Rational.zero(Ring<E> ring)
Constructs zero
|
| Constructor and Description |
|---|
FactorDecomposition(Ring<E> ring,
E unit,
List<E> factors,
gnu.trove.list.array.TIntArrayList exponents) |
ImageRing(Ring<F> ring,
Function<I,F> inverseFunc,
Function<F,I> imageFunc) |
Rational(Ring<E> ring,
E numerator) |
Rational(Ring<E> ring,
E numerator,
E denominator) |
Rationals(Ring<E> ring) |
| Modifier and Type | Field and Description |
|---|---|
protected Ring<Element> |
Coder.baseRing
the base ring
|
| Modifier and Type | Field and Description |
|---|---|
protected Map<Ring<?>,Coder<?,?,?>> |
Coder.subcoders
inner coders
|
Map<Ring,IStringifier> |
IStringifier.SimpleStringifier.substringifiers |
| Modifier and Type | Method and Description |
|---|---|
<Oth> Coder<Oth,?,?> |
Coder.map(Ring<Oth> ring,
Function<Element,Oth> func)
Maps this coder to a given type via mapper
func which just applies to each parsed element as well as to
bindings (for IStringifier.stringify(Object)). |
static <E> Coder<E,?,?> |
Coder.mkCoder(Ring<E> ring)
Create coder for generic ring
|
static <E> Coder<E,?,?> |
Coder.mkCoder(Ring<E> ring,
Map<String,E> variables)
Create coder for generic rings
|
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 <E,I> Coder<E,?,?> |
Coder.mkNestedCoder(Ring<E> ring,
Map<String,E> variables,
Coder<I,?,?> innerCoder,
SerializableFunction<I,E> imageFunc)
Create coder for nested rings (e.g.
|
<K> IStringifier<K> |
Coder.substringifier(Ring<K> ring) |
<U> IStringifier<U> |
IStringifier.SimpleStringifier.substringifier(Ring<U> ring) |
<UnderlyingElement> |
IStringifier.substringifier(Ring<UnderlyingElement> ring)
Get stringifier for the specified ring of some underlying elements, should never give null (use dummy() for
absent stringifier)
|
| Modifier and Type | Method and Description |
|---|---|
static <E> void |
LinearSolver.reducedRowEchelonForm(Ring<E> ring,
E[][] lhs,
E[] rhs)
Gives the reduced row echelon form of the linear system
lhs.x = rhs from a given row echelon form. |
static <E> int |
LinearSolver.rowEchelonForm(Ring<E> ring,
E[][] matrix)
Gives the row echelon form of the matrix
|
static <E> int |
LinearSolver.rowEchelonForm(Ring<E> ring,
E[][] matrix,
boolean reduce)
Gives the row echelon form of the matrix
|
static <E> int |
LinearSolver.rowEchelonForm(Ring<E> ring,
E[][] lhs,
E[] rhs)
Gives the row echelon form of the linear system
lhs.x = rhs. |
static <E> int |
LinearSolver.rowEchelonForm(Ring<E> ring,
E[][] lhs,
E[] rhs,
boolean reduce,
boolean breakOnUnderDetermined)
Gives the row echelon form of the linear system
lhs.x = rhs. |
static <E> LinearSolver.SystemInfo |
LinearSolver.solve(Ring<E> ring,
ArrayList<E[]> lhs,
ArrayList<E> rhs,
E[] result)
Solves linear system
lhs.x = rhs and stores the result in result (which should be of the enough
length). |
static <E> E[] |
LinearSolver.solve(Ring<E> ring,
E[][] lhs,
E[] rhs)
Solves linear system
lhs.x = rhs and reduces lhs to row echelon form. |
static <E> LinearSolver.SystemInfo |
LinearSolver.solve(Ring<E> ring,
E[][] lhs,
E[] rhs,
E[] result)
Solves linear system
lhs.x = rhs and reduces the lhs to row echelon form. |
static <E> LinearSolver.SystemInfo |
LinearSolver.solve(Ring<E> ring,
E[][] lhs,
E[] rhs,
E[] result,
boolean solveIfUnderDetermined)
Solves linear system
lhs.x = rhs and reduces the lhs to row echelon form. |
static <E> E[] |
LinearSolver.solveVandermonde(Ring<E> ring,
E[] row,
E[] rhs)
Solves Vandermonde linear system (that is with i-th equation of the form {@code row[i]^0 * x0 + row[i]^1 * x1 +
...
|
static <E> LinearSolver.SystemInfo |
LinearSolver.solveVandermonde(Ring<E> ring,
E[] row,
E[] rhs,
E[] result)
Solves Vandermonde linear system (that is with i-th equation of the form {@code row[i]^0 * x0 + row[i]^1 * x1 +
...
|
static <E> E[] |
LinearSolver.solveVandermondeT(Ring<E> ring,
E[] row,
E[] rhs)
Solves transposed Vandermonde linear system (that is with i-th equation of the form {@code row[0]^i * x0 +
row[1]^i * x1 + ...
|
static <E> LinearSolver.SystemInfo |
LinearSolver.solveVandermondeT(Ring<E> ring,
E[] row,
E[] rhs,
E[] result)
Solves transposed Vandermonde linear system (that is with i-th equation of the form {@code row[0]^i * x0 +
row[1]^i * x1 + ...
|
| Modifier and Type | Interface and Description |
|---|---|
interface |
IPolynomialRing<Poly extends IPolynomial<Poly>>
Polynomial ring.
|
| Modifier and Type | Class and Description |
|---|---|
class |
AlgebraicNumberField<E extends IUnivariatePolynomial<E>>
Algebraic number field
F(α) represented as a simple field extension, for details see SimpleFieldExtension. |
class |
FiniteField<E extends IUnivariatePolynomial<E>>
Galois field
GF(p, q). |
class |
MultipleFieldExtension<Term extends AMonomial<Term>,mPoly extends AMultivariatePolynomial<Term,mPoly>,sPoly extends IUnivariatePolynomial<sPoly>>
Multiple field extension
F(α_1, α_2, ..., α_N). |
class |
MultivariateRing<Poly extends AMultivariatePolynomial<?,Poly>>
Ring of multivariate polynomials.
|
class |
QuotientRing<Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>>
Multivariate quotient ring
|
class |
SimpleFieldExtension<E extends IUnivariatePolynomial<E>>
A simple field extension
F(α) represented as a univariate quotient ring F[x]/<m(x)> where m(x) is the minimal polynomial of α. |
class |
UnivariateRing<Poly extends IUnivariatePolynomial<Poly>>
Ring of univariate polynomials.
|
| Modifier and Type | Method and Description |
|---|---|
static <E> MultivariatePolynomial<Rational<E>> |
Util.asOverRationals(Ring<Rational<E>> field,
MultivariatePolynomial<E> poly) |
static <E> UnivariatePolynomial<Rational<E>> |
Util.asOverRationals(Ring<Rational<E>> field,
UnivariatePolynomial<E> poly) |
static <E> MultivariatePolynomial<Rational<E>> |
Util.divideOverRationals(Ring<Rational<E>> field,
MultivariatePolynomial<E> poly,
E denominator) |
static <E> UnivariatePolynomial<Rational<E>> |
Util.divideOverRationals(Ring<Rational<E>> field,
UnivariatePolynomial<E> poly,
E denominator) |
| Modifier and Type | Field and Description |
|---|---|
Ring<E> |
MultivariatePolynomial.ring
The coefficient ring
|
Ring<E> |
IMonomialAlgebra.MonomialAlgebra.ring |
| Modifier and Type | Method and Description |
|---|---|
<sPoly extends IUnivariatePolynomial<sPoly>> |
AMultivariatePolynomial.composition(Ring<sPoly> uRing,
sPoly... values)
Substitutes given polynomials instead of variables of this (that is
this(values_1, ..., values_N)) |
static <E> MultivariatePolynomial<E> |
MultivariatePolynomial.create(int nVariables,
Ring<E> ring,
Comparator<DegreeVector> ordering,
Iterable<Monomial<E>> terms)
Creates multivariate polynomial from a list of monomial terms
|
static <E> MultivariatePolynomial<E> |
MultivariatePolynomial.create(int nVariables,
Ring<E> ring,
Comparator<DegreeVector> ordering,
Monomial<E>... terms)
Creates multivariate polynomial from a list of monomial terms
|
<T> MultivariatePolynomial<T> |
MultivariatePolynomial.mapCoefficients(Ring<T> newRing,
Function<E,T> mapper)
Maps coefficients of this using specified mapping function
|
<T> MultivariatePolynomial<T> |
MultivariatePolynomialZp64.mapCoefficients(Ring<T> newRing,
LongFunction<T> mapper)
Maps coefficients of this using specified mapping function
|
<E> MultivariatePolynomial<E> |
MultivariatePolynomialZp64.mapCoefficientsAsPolys(Ring<E> ring,
Function<MultivariatePolynomialZp64,E> mapper) |
abstract <E> MultivariatePolynomial<E> |
AMultivariatePolynomial.mapCoefficientsAsPolys(Ring<E> ring,
Function<Poly,E> mapper) |
<T> MultivariatePolynomial<T> |
MultivariatePolynomial.mapCoefficientsAsPolys(Ring<T> ring,
Function<MultivariatePolynomial<E>,T> mapper) |
<T> MultivariatePolynomial<T> |
MultivariatePolynomial.mapTerms(Ring<T> newRing,
Function<Monomial<E>,Monomial<T>> mapper)
Maps terms of this using specified mapping function
|
<T> MultivariatePolynomial<T> |
MultivariatePolynomialZp64.mapTerms(Ring<T> newRing,
Function<MonomialZp64,Monomial<T>> mapper)
Maps terms of this using specified mapping function
|
static <E> MultivariatePolynomial.PrecomputedPowersHolder<E> |
MultivariatePolynomial.mkPrecomputedPowers(int nVariables,
Ring<E> ring,
int[] variables,
E[] values) |
static <E> MultivariatePolynomial<E> |
MultivariatePolynomial.one(int nVariables,
Ring<E> ring,
Comparator<DegreeVector> ordering)
Creates unit polynomial.
|
static <E> Ideal<Monomial<E>,MultivariatePolynomial<E>> |
Ideal.parse(String[] generators,
Ring<E> field,
Comparator<DegreeVector> monomialOrder,
String[] variables)
Shortcut for parse
|
static <E> Ideal<Monomial<E>,MultivariatePolynomial<E>> |
Ideal.parse(String[] generators,
Ring<E> field,
String[] variables)
Shortcut for parse
|
static <E> MultivariatePolynomial<E> |
MultivariatePolynomial.parse(String string,
Ring<E> ring)
Deprecated.
use #parse(string, ring, ordering, variables)
|
static <E> MultivariatePolynomial<E> |
MultivariatePolynomial.parse(String string,
Ring<E> ring,
Comparator<DegreeVector> ordering)
Deprecated.
use #parse(string, ring, ordering, variables)
|
static <E> MultivariatePolynomial<E> |
MultivariatePolynomial.parse(String string,
Ring<E> ring,
Comparator<DegreeVector> ordering,
String... variables)
Parse multivariate polynomial from string.
|
static <E> MultivariatePolynomial<E> |
MultivariatePolynomial.parse(String string,
Ring<E> ring,
String... variables)
Parse multivariate polynomial from string.
|
static <E> MultivariatePolynomial<E> |
RandomMultivariatePolynomials.randomPolynomial(int nVars,
int minDegree,
int maxDegree,
int size,
Ring<E> ring,
Comparator<DegreeVector> ordering,
Function<org.apache.commons.math3.random.RandomGenerator,E> method,
org.apache.commons.math3.random.RandomGenerator rnd)
Generates random polynomial
|
static <E> MultivariatePolynomial<E> |
RandomMultivariatePolynomials.randomPolynomial(int nVars,
int degree,
int size,
Ring<E> ring,
Comparator<DegreeVector> ordering,
Function<org.apache.commons.math3.random.RandomGenerator,E> method,
org.apache.commons.math3.random.RandomGenerator rnd)
Generates random polynomial
|
static <E> MultivariatePolynomial<E> |
RandomMultivariatePolynomials.randomPolynomial(int nVars,
int degree,
int size,
Ring<E> ring,
Comparator<DegreeVector> ordering,
org.apache.commons.math3.random.RandomGenerator rnd)
Generates random polynomial
|
static <E> MultivariatePolynomial<E> |
RandomMultivariatePolynomials.randomSharpPolynomial(int nVars,
int degree,
int size,
Ring<E> ring,
Comparator<DegreeVector> ordering,
Function<org.apache.commons.math3.random.RandomGenerator,E> rndCoefficients,
org.apache.commons.math3.random.RandomGenerator rnd)
Generates random Zp[X] polynomial over machine integers
|
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
|
MultivariatePolynomial<E> |
MultivariatePolynomial.setRing(Ring<E> newRing)
Returns a copy of this with coefficient reduced to a
newRing |
<E> MultivariatePolynomial<E> |
MultivariatePolynomialZp64.setRing(Ring<E> newRing)
Switches to another ring specified by
newRing |
MultivariatePolynomial<E> |
MultivariatePolynomial.setRingUnsafe(Ring<E> newRing)
internal API
|
static <E> MultivariatePolynomial<E> |
MultivariatePolynomial.zero(int nVariables,
Ring<E> ring,
Comparator<DegreeVector> ordering)
Creates zero polynomial.
|
| Constructor and Description |
|---|
MonomialAlgebra(Ring<E> ring) |
PrecomputedPowersHolder(Ring<E> ring,
cc.redberry.rings.poly.multivar.MultivariatePolynomial.PrecomputedPowers<E>[] powers) |
| Modifier and Type | Field and Description |
|---|---|
Ring<E> |
UnivariatePolynomial.ring
The coefficient ring
|
| Modifier and Type | Method and Description |
|---|---|
default Poly |
IUnivariatePolynomial.composition(Ring<Poly> ring,
Poly value)
Calculates the composition of this(oth) (new instance, so the content of this is not changed))
|
static <E> UnivariatePolynomial<E> |
UnivariatePolynomial.constant(Ring<E> ring,
E constant)
Creates constant polynomial over specified ring
|
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.
|
static <E> UnivariatePolynomial<E> |
UnivariatePolynomial.createUnsafe(Ring<E> ring,
E[] data)
skips
ring.setToValueOf(data) |
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]. |
<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 <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
|
static <E> E[] |
RandomUnivariatePolynomials.randomArray(int degree,
Ring<E> ring,
Function<org.apache.commons.math3.random.RandomGenerator,E> method,
org.apache.commons.math3.random.RandomGenerator rnd)
Creates random array of length
degree + 1 with elements from the specified ring |
static <E> E[] |
RandomUnivariatePolynomials.randomArray(int degree,
Ring<E> ring,
org.apache.commons.math3.random.RandomGenerator rnd)
Creates random array of length
degree + 1 with elements from the specified ring |
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 <E> UnivariatePolynomial<E> |
RandomUnivariatePolynomials.randomMonicPoly(int degree,
Ring<E> ring,
org.apache.commons.math3.random.RandomGenerator rnd)
Creates random polynomial of specified
degree. |
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 |
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
|
static <E> UnivariatePolynomial<E> |
UnivariatePolynomial.zero(Ring<E> ring)
Creates zero polynomial over specified ring
|
| Constructor and Description |
|---|
Interpolation(Ring<E> ring)
Start new interpolation with
interpolation[point] = value |
PolynomialCollector(Ring<E> ring) |
Copyright © 2022. All rights reserved.