public final class MultivariatePolynomialZp64 extends AMultivariatePolynomial<MonomialZp64,MultivariatePolynomialZp64>
MachineArithmetic.MAX_SUPPORTED_MODULUS). For details on polynomial data structure and properties see AMultivariatePolynomial.AMultivariatePolynomial,
Serialized Form| Modifier and Type | Class and Description |
|---|---|
static class |
MultivariatePolynomialZp64.HornerFormZp64
A representation of multivariate polynomial specifically optimized for fast evaluation of given variables
|
static class |
MultivariatePolynomialZp64.lPrecomputedPowers
cached powers used to save some time
|
static class |
MultivariatePolynomialZp64.lPrecomputedPowersHolder
holds an array of precomputed powers
|
AMultivariatePolynomial.PolynomialCollector<Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>>| Modifier and Type | Field and Description |
|---|---|
IntegersZp64 |
ring
The ring.
|
monomialAlgebra, nVariables, ordering| Modifier and Type | Method and Description |
|---|---|
MultivariatePolynomialZp64 |
add(long oth)
Adds
oth to this polynomial and returns it |
static MultivariatePolynomialZp64 |
asMultivariate(UnivariatePolynomialZp64 poly,
int nVariables,
int variable,
Comparator<DegreeVector> ordering)
Converts univariate polynomial to multivariate.
|
static MultivariatePolynomialZp64 |
asNormalMultivariate(MultivariatePolynomial<MultivariatePolynomialZp64> poly)
Converts multivariate polynomial over multivariate polynomial ring to a multivariate polynomial over coefficient
ring
|
static MultivariatePolynomialZp64 |
asNormalMultivariate(MultivariatePolynomial<MultivariatePolynomialZp64> poly,
int[] coefficientVariables,
int[] mainVariables)
Converts multivariate polynomial over multivariate polynomial ring to a multivariate polynomial over coefficient
ring
|
static MultivariatePolynomialZp64 |
asNormalMultivariate(MultivariatePolynomial<UnivariatePolynomialZp64> poly,
int variable)
Converts multivariate polynomial over univariate polynomial ring (Zp[variable][other_variables]) to a
multivariate polynomial over coefficient ring (Zp[all_variables])
|
MultivariatePolynomial<MultivariatePolynomialZp64> |
asOverMultivariate(int... variables)
Converts this to a multivariate polynomial with coefficients being multivariate polynomials polynomials over
variables that is polynomial in R[variables][other_variables] |
MultivariatePolynomial<MultivariatePolynomialZp64> |
asOverMultivariateEliminate(int[] variables,
Comparator<DegreeVector> ordering)
Converts this to a multivariate polynomial with coefficients being multivariate polynomials polynomials over
variables that is polynomial in R[variables][other_variables] |
MultivariatePolynomial<UnivariatePolynomialZp64> |
asOverUnivariate(int variable)
Converts this to a multivariate polynomial with coefficients being univariate polynomials over
variable |
MultivariatePolynomial<UnivariatePolynomialZp64> |
asOverUnivariateEliminate(int variable)
Converts this to a multivariate polynomial with coefficients being univariate polynomials over
variable,
the resulting polynomial have (nVariable - 1) multivariate variables (specified variable is eliminated) |
MultivariatePolynomial<BigInteger> |
asPolyZ()
Returns polynomial over Z formed from the coefficients of this
|
MultivariatePolynomial<BigInteger> |
asPolyZSymmetric()
Returns polynomial over Z formed from the coefficients of this represented in symmetric modular form (
-modulus/2 <= cfx <= modulus/2). |
UnivariatePolynomialZp64 |
asUnivariate()
Converts this to univariate polynomial or throws exception if conversion is impossible (more than one variable
have non zero exponents)
|
long |
cc()
Returns the constant coefficient of this polynomial.
|
MultivariatePolynomialZp64 |
ccAsPoly()
Returns the constant coefficient as a constant poly
|
MultivariatePolynomialZp64 |
clone()
Deep copy of this
|
BigInteger |
coefficientRingCardinality()
Returns cardinality of the coefficient ring of this poly
|
BigInteger |
coefficientRingCharacteristic()
Returns characteristic of the coefficient ring of this poly
|
BigInteger |
coefficientRingPerfectPowerBase()
Returns
base so that coefficientRingCardinality() == base^exponent or null if cardinality is not
finite |
BigInteger |
coefficientRingPerfectPowerExponent()
Returns
exponent so that coefficientRingCardinality() == base^exponent or null if cardinality is
not finite |
String |
coefficientRingToString(IStringifier<MultivariatePolynomialZp64> stringifier)
String representation of the coefficient ring of this
|
long[] |
coefficients()
Returns array of polynomial coefficients
|
int |
compareTo(MultivariatePolynomialZp64 oth) |
long |
content()
Returns the content of this polynomial.
|
MultivariatePolynomialZp64 |
contentAsPoly()
Returns the content of this (gcd of coefficients) as a constant poly
|
UnivariatePolynomialZp64 |
contentUnivariate(int variable)
Gives the content of this considered as R[variable][other_variables]
|
static MultivariatePolynomialZp64 |
create(int nVariables,
IntegersZp64 ring,
Comparator<DegreeVector> ordering,
Iterable<MonomialZp64> terms)
Creates multivariate polynomial from a list of monomial terms
|
static MultivariatePolynomialZp64 |
create(int nVariables,
IntegersZp64 ring,
Comparator<DegreeVector> ordering,
MonomialSet<MonomialZp64> terms)
Creates multivariate polynomial from a set of monomials
|
static MultivariatePolynomialZp64 |
create(int nVariables,
IntegersZp64 ring,
Comparator<DegreeVector> ordering,
MonomialZp64... terms)
Creates multivariate polynomial from a list of monomial terms
|
MultivariatePolynomialZp64[] |
createArray(int length)
overcome Java generics...
|
MultivariatePolynomialZp64[][] |
createArray2d(int length)
overcome Java generics...
|
MultivariatePolynomialZp64[][] |
createArray2d(int length1,
int length2)
overcome Java generics...
|
MultivariatePolynomialZp64 |
createConstant(long val)
Creates constant polynomial with specified value
|
MultivariatePolynomialZp64 |
createConstantFromTerm(MonomialZp64 monomial)
Creates multivariate polynomial over the same ring as this with the single constant element taken from given
monomial
|
MultivariatePolynomialZp64 |
createLinear(int variable,
long cc,
long lc)
Creates linear polynomial of the form
cc + lc * variable |
MultivariatePolynomialZp64 |
createOne()
Returns the new instance of unit polynomial (with the same coefficient ring)
|
MultivariatePolynomialZp64 |
createZero()
Returns the new instance of zero polynomial (with the same coefficient ring)
|
MultivariatePolynomialZp64 |
decrement()
Subtracts 1 from this
|
MultivariatePolynomialZp64 |
derivative(int variable,
int order)
Gives partial derivative of specified
order with respect to specified variable (new instance created) |
MultivariatePolynomialZp64 |
divide(long factor)
Divides this polynomial by a
factor |
MultivariatePolynomialZp64 |
divideByLC(MultivariatePolynomialZp64 other)
Divides this polynomial by the leading coefficient of
other or returns null (causing loss of
internal data) if some of the elements can't be exactly divided by the other.lc(). |
MultivariatePolynomialZp64 |
divideOrNull(MonomialZp64 monomial)
Divides this polynomial by a
monomial or returns null (causing loss of internal data) if some of
the elements can't be exactly divided by the monomial. |
MultivariatePolynomialZp64 |
eliminate(int[] variables,
long[] values)
Returns a copy of this with
values substituted for variables |
MultivariatePolynomialZp64 |
eliminate(int variable,
long value)
Substitutes
value for variable and eliminates variable from the list of variables so that
the resulting polynomial has result.nVariables = this.nVariables - 1. |
MultivariatePolynomialZp64 |
evaluate(int[] variables,
long[] values)
Returns a copy of this with
values substituted for variables |
MultivariatePolynomialZp64[] |
evaluate(int variable,
long... values)
Evaluates this polynomial at specified points
|
MultivariatePolynomialZp64 |
evaluate(int variable,
long value)
Returns a copy of this with
value substituted for variable |
long |
evaluate(long... values)
Evaluates this polynomial at specified points
|
MultivariatePolynomialZp64 |
evaluateAtRandom(int variable,
org.apache.commons.math3.random.RandomGenerator rnd)
Evaluates
poly at random point |
MultivariatePolynomialZp64 |
evaluateAtRandomPreservingSkeleton(int variable,
org.apache.commons.math3.random.RandomGenerator rnd)
Evaluates
poly at random point chosen in such way that the skeleton of evaluated version is the same as
of the original poly with respect to all except variable variables |
static long |
evaluateDenseRecursiveForm(IUnivariatePolynomial recForm,
long[] values)
Evaluates polynomial given in a dense recursive form at a given points
|
static long |
evaluateSparseRecursiveForm(AMultivariatePolynomial recForm,
long[] values)
Evaluates polynomial given in a sparse recursive form at a given points
|
static MultivariatePolynomialZp64 |
fromDenseRecursiveForm(IUnivariatePolynomial recForm,
Comparator<DegreeVector> ordering)
Converts poly from a recursive univariate representation.
|
static MultivariatePolynomialZp64 |
fromDenseRecursiveForm(IUnivariatePolynomial recForm,
int nVariables,
Comparator<DegreeVector> ordering)
Converts poly from a recursive univariate representation.
|
static MultivariatePolynomialZp64 |
fromSparseRecursiveForm(AMultivariatePolynomial recForm,
Comparator<DegreeVector> ordering)
Converts poly from a sparse recursive univariate representation.
|
static MultivariatePolynomialZp64 |
fromSparseRecursiveForm(AMultivariatePolynomial recForm,
int nVariables,
Comparator<DegreeVector> ordering)
Converts poly from a recursive univariate representation.
|
MultivariatePolynomialZp64.HornerFormZp64 |
getHornerForm(int[] evaluationVariables)
Gives data structure for fast Horner-like sparse evaluation of this multivariate polynomial
|
MultivariatePolynomialZp64 |
increment()
Adds 1 to this
|
boolean |
isConstant()
Returns
true if this polynomial has only constant term |
boolean |
isMonic()
Returns
true if this polynomial is monic |
boolean |
isOne()
Returns
true if this is one |
boolean |
isOverField()
Returns whether the coefficient ring of this polynomial is a field
|
boolean |
isOverFiniteField()
Returns whether the coefficient ring of this polynomial is a finite field
|
boolean |
isOverPerfectPower()
Returns whether the
coefficientRingCardinality() is a perfect power |
boolean |
isOverZ()
Returns whether the coefficient ring of this polynomial is Z
|
boolean |
isUnitCC()
Returns true if constant term is equal to one
|
long |
lc()
Returns the leading coefficient of this polynomial that is coefficient of the largest term according to the
ordering.
|
long |
lc(Comparator<DegreeVector> ordering)
Returns the leading coefficient of this polynomial with respect to specified ordering
|
MultivariatePolynomialZp64 |
lcAsPoly()
Returns the leading coefficient as a constant poly
|
MultivariatePolynomialZp64 |
lcAsPoly(Comparator<DegreeVector> ordering)
Returns the leading coefficient with respect to specified ordering as a constant poly
|
<T> MultivariatePolynomial<T> |
mapCoefficients(Ring<T> newRing,
LongFunction<T> mapper)
Maps coefficients of this using specified mapping function
|
<E> MultivariatePolynomial<E> |
mapCoefficientsAsPolys(Ring<E> ring,
Function<MultivariatePolynomialZp64,E> mapper) |
MultivariatePolynomialZp64 |
mapTerms(IntegersZp64 newRing,
Function<MonomialZp64,MonomialZp64> mapper)
Maps terms of this using specified mapping function
|
<T> MultivariatePolynomial<T> |
mapTerms(Ring<T> newRing,
Function<MonomialZp64,Monomial<T>> mapper)
Maps terms of this using specified mapping function
|
MultivariatePolynomialZp64.lPrecomputedPowersHolder |
mkPrecomputedPowers(int[] variables,
long[] values) |
static MultivariatePolynomialZp64.lPrecomputedPowersHolder |
mkPrecomputedPowers(int nVariables,
IntegersZp64 ring,
int[] variables,
long[] values) |
MultivariatePolynomialZp64.lPrecomputedPowersHolder |
mkPrecomputedPowers(int variable,
long value) |
MultivariatePolynomialZp64.lPrecomputedPowersHolder |
mkPrecomputedPowers(long[] values) |
MultivariatePolynomialZp64 |
monic()
Makes this polynomial monic
|
MultivariatePolynomialZp64 |
monic(Comparator<DegreeVector> ordering)
Make this poly monic considering leading term with respect to given ordering
|
MultivariatePolynomialZp64 |
monic(Comparator<DegreeVector> ordering,
long factor)
Sets
this to its monic part (with respect to given ordering) multiplied by the given factor; |
MultivariatePolynomialZp64 |
monic(long factor)
Sets
this to its monic part (with respect to given ordering) multiplied by the given factor; |
MultivariatePolynomialZp64 |
monicWithLC(Comparator<DegreeVector> ordering,
MultivariatePolynomialZp64 other)
Sets
this to its monic part multiplied by the leading coefficient of other with respect to given
ordering |
MultivariatePolynomialZp64 |
monicWithLC(MultivariatePolynomialZp64 other)
Sets
this to its monic part multiplied by the leading coefficient of other; |
MultivariatePolynomialZp64 |
multiply(long factor)
Multiplies this by
factor |
MultivariatePolynomialZp64 |
multiply(MonomialZp64 monomial)
Multiplies
this by the monomial |
MultivariatePolynomialZp64 |
multiply(MultivariatePolynomialZp64 oth)
Multiplies this by
oth |
MultivariatePolynomialZp64 |
multiplyByBigInteger(BigInteger factor)
Multiplies this by
factor |
MultivariatePolynomialZp64 |
multiplyByLC(MultivariatePolynomialZp64 other)
Multiply this by the leading coefficient of
other |
static MultivariatePolynomialZp64 |
one(int nVariables,
IntegersZp64 ring,
Comparator<DegreeVector> ordering)
Creates unit polynomial.
|
static MultivariatePolynomialZp64 |
parse(String string,
IntegersZp64 ring)
Deprecated.
use #parse(string, ring, ordering, variables)
|
static MultivariatePolynomialZp64 |
parse(String string,
IntegersZp64 ring,
Comparator<DegreeVector> ordering)
Deprecated.
use #parse(string, ring, ordering, variables)
|
static MultivariatePolynomialZp64 |
parse(String string,
IntegersZp64 ring,
Comparator<DegreeVector> ordering,
String... variables)
Parse multivariate polynomial from string.
|
static MultivariatePolynomialZp64 |
parse(String string,
IntegersZp64 ring,
String... variables)
Parse multivariate polynomial from string.
|
MultivariatePolynomialZp64 |
parsePoly(String string)
Deprecated.
|
MultivariatePolynomialZp64 |
primitivePart()
Reduces poly to its primitive part (primitive part will always have positive l.c.)
|
MultivariatePolynomialZp64 |
primitivePart(int variable)
Gives primitive part of this considered as R[variable][other_variables]
|
MultivariatePolynomialZp64 |
primitivePartSameSign()
Reduces poly to its primitive part, so that primitive part will have the same signum as the initial poly
|
protected void |
release()
release caches
|
boolean |
sameCoefficientRingWith(MultivariatePolynomialZp64 oth)
Returns whether
oth and this have the same coefficient ring |
MultivariatePolynomialZp64 |
seriesCoefficient(int variable,
int order)
Gives (unevaluated) coefficient of Taylor series expansion for specified variable that is
derivative(poly,
variable, order) / order! , where the derivative is formal derivative and calculated with arithmetic performed
in Z ring (to overcome possible zeros in Zp). |
MultivariatePolynomialZp64 |
setCoefficientRingFrom(MultivariatePolynomialZp64 lMonomialTerms)
Set the coefficient ring from specified poly
|
MultivariatePolynomialZp64 |
setLC(long val)
Sets the leading coefficient to the specified value
|
MultivariatePolynomialZp64 |
setRing(IntegersZp64 newDomain)
Switches to another ring specified by
newDomain |
MultivariatePolynomialZp64 |
setRing(long newModulus)
Switches to another ring specified by
newModulus |
<E> MultivariatePolynomial<E> |
setRing(Ring<E> newRing)
Switches to another ring specified by
newRing |
MultivariatePolynomialZp64 |
setRingUnsafe(IntegersZp64 newDomain)
internal API
|
MultivariatePolynomialZp64 |
shift(int[] variables,
long[] shifts)
Substitutes
variable -> variable + shift for each variable from variables array |
MultivariatePolynomialZp64 |
shift(int variable,
long shift)
Returns a copy of this with
variable -> variable + shift |
int |
signumOfLC()
Gives signum of the leading coefficient
|
MultivariatePolynomialZp64 |
square()
Squares
this |
MultivariatePolynomialZp64 |
substitute(int variable,
MultivariatePolynomialZp64 poly)
Returns a copy of this with
poly substituted for variable |
MultivariatePolynomialZp64 |
subtract(long oth)
Subtracts
oth from this polynomial and returns it |
MultivariatePolynomial<BigInteger> |
toBigPoly()
Returns polynomial over Z formed from the coefficients of this
|
IUnivariatePolynomial |
toDenseRecursiveForm()
Gives a recursive univariate representation of this poly.
|
AMultivariatePolynomial |
toSparseRecursiveForm()
Gives a recursive sparse univariate representation of this poly.
|
String |
toString(IStringifier<MultivariatePolynomialZp64> stringifier)
convert this to string with the use of stringifier
|
static MultivariatePolynomialZp64 |
zero(int nVariables,
IntegersZp64 ring,
Comparator<DegreeVector> ordering)
Creates zero polynomial.
|
add, add, add, add, ascendingIterator, asMultivariate, asMultivariate, asMultivariate, asOverMultivariateEliminate, asOverPoly, asUnivariate, asUnivariateEliminate, coefficientOf, coefficientOf, collection, composition, composition, composition, composition, composition, composition, content, contentExcept, create, create, create, create, createMonomial, degree, degree, degree, degreeMax, degrees, degrees, degreesRef, degreeSum, derivative, derivative, descendingIterator, divideDegreeVectorOrNull, dropCoefficientOf, dropSelectVariables, dropVariable, dropVariables, ecart, equals, evaluateAtZero, evaluateAtZero, first, getSkeleton, getSkeleton, getSkeletonDrop, getSkeletonExcept, hashCode, homogenize, insertVariable, insertVariable, isEffectiveUnivariate, isHomogeneous, isLinearExactly, isLinearOrConstant, isMonomial, isVariable, isZero, isZeroCC, iterator, joinNewVariable, joinNewVariables, last, lc, lt, lt, ltAsPoly, mapVariables, monomialContent, mt, multidegree, multiplyByDegreeVector, multiplyByMonomial, negate, nUsedVariables, put, renameVariables, renameVariables, renameVariables, sameSkeletonExceptQ, sameSkeletonQ, sameSkeletonQ, set, setAllCoefficientsToUnit, setLC, setNVariables, setOrdering, size, skeletonHashCode, sparsity, sparsity2, subtract, subtract, subtract, subtractLt, swapVariables, toArray, toString, totalDegree, toZero, univariateVariablefinalize, getClass, notify, notifyAll, wait, wait, waitadd, assertSameCoefficientRingWith, canonical, coefficientRingToString, copy, createArray, createArray, createArray, monicExact, multiply, multiply, setCoefficientRingFromOptional, subtract, toPositiveLC, toStringforEach, spliteratorpublic final IntegersZp64 ring
public static MultivariatePolynomialZp64 create(int nVariables, IntegersZp64 ring, Comparator<DegreeVector> ordering, MonomialSet<MonomialZp64> terms)
nVariables - number of variablesring - the ringordering - term orderingterms - the monomialspublic static MultivariatePolynomialZp64 create(int nVariables, IntegersZp64 ring, Comparator<DegreeVector> ordering, Iterable<MonomialZp64> terms)
ring - the ringordering - term orderingterms - the monomial termspublic static MultivariatePolynomialZp64 create(int nVariables, IntegersZp64 ring, Comparator<DegreeVector> ordering, MonomialZp64... terms)
ring - the ringordering - term orderingterms - the monomial termspublic static MultivariatePolynomialZp64 zero(int nVariables, IntegersZp64 ring, Comparator<DegreeVector> ordering)
nVariables - number of variablesring - the ringordering - the orderingpublic static MultivariatePolynomialZp64 one(int nVariables, IntegersZp64 ring, Comparator<DegreeVector> ordering)
nVariables - number of variablesring - the ringordering - the orderingpublic static MultivariatePolynomialZp64 parse(String string, IntegersZp64 ring, String... variables)
string - the stringring - the ringvariables - string variables that should be taken into account. For examples: parse("a", LEX) and
parse("a", LEX, "a", "b") although give the same mathematical expressions are differ,
since the first one is considered as Z[x], while the second as Z[x1,x2]@Deprecated public static MultivariatePolynomialZp64 parse(String string, IntegersZp64 ring)
string - the stringring - the ringpublic static MultivariatePolynomialZp64 parse(String string, IntegersZp64 ring, Comparator<DegreeVector> ordering, String... variables)
string - the stringring - the ringordering - monomial ordervariables - string variables that should be taken into account. For examples: parse("a", LEX) and
parse("a", LEX, "a", "b") although give the same mathematical expressions are differ,
since the first one is considered as Z[x], while the second as Z[x1,x2]@Deprecated public static MultivariatePolynomialZp64 parse(String string, IntegersZp64 ring, Comparator<DegreeVector> ordering)
string - the stringring - the ringordering - monomial orderpublic static MultivariatePolynomialZp64 asMultivariate(UnivariatePolynomialZp64 poly, int nVariables, int variable, Comparator<DegreeVector> ordering)
poly - univariate polynomialnVariables - number of variables in the resultvariable - variable that will be used as a primary variableordering - the orderingpublic UnivariatePolynomialZp64 asUnivariate()
AMultivariatePolynomialasUnivariate in class AMultivariatePolynomial<MonomialZp64,MultivariatePolynomialZp64>public MultivariatePolynomial<UnivariatePolynomialZp64> asOverUnivariate(int variable)
AMultivariatePolynomialvariableasOverUnivariate in class AMultivariatePolynomial<MonomialZp64,MultivariatePolynomialZp64>variable - variablevariablepublic MultivariatePolynomial<UnivariatePolynomialZp64> asOverUnivariateEliminate(int variable)
AMultivariatePolynomialvariable,
the resulting polynomial have (nVariable - 1) multivariate variables (specified variable is eliminated)asOverUnivariateEliminate in class AMultivariatePolynomial<MonomialZp64,MultivariatePolynomialZp64>variable - the variablevariable, the
resulting polynomial have (nVariable - 1) multivariate variablespublic MultivariatePolynomial<MultivariatePolynomialZp64> asOverMultivariate(int... variables)
AMultivariatePolynomialvariables that is polynomial in R[variables][other_variables]asOverMultivariate in class AMultivariatePolynomial<MonomialZp64,MultivariatePolynomialZp64>variables - the variables to separatevariables that is polynomial in R[variables][other_variables]public MultivariatePolynomial<MultivariatePolynomialZp64> asOverMultivariateEliminate(int[] variables, Comparator<DegreeVector> ordering)
AMultivariatePolynomialvariables that is polynomial in R[variables][other_variables]asOverMultivariateEliminate in class AMultivariatePolynomial<MonomialZp64,MultivariatePolynomialZp64>variables - the variables to separateordering - monomial order to use for resultvariables that is polynomial in R[variables][other_variables]public static MultivariatePolynomialZp64 asNormalMultivariate(MultivariatePolynomial<UnivariatePolynomialZp64> poly, int variable)
poly - the polynomialvariable - the variable to insertpublic static MultivariatePolynomialZp64 asNormalMultivariate(MultivariatePolynomial<MultivariatePolynomialZp64> poly)
poly - the polynomialpublic static MultivariatePolynomialZp64 asNormalMultivariate(MultivariatePolynomial<MultivariatePolynomialZp64> poly, int[] coefficientVariables, int[] mainVariables)
poly - the polynomialpublic MultivariatePolynomial<BigInteger> asPolyZSymmetric()
-modulus/2 <= cfx <= modulus/2).-modulus/2 <= cfx <=
modulus/2).public MultivariatePolynomial<BigInteger> asPolyZ()
public MultivariatePolynomial<BigInteger> toBigPoly()
public MultivariatePolynomialZp64 contentAsPoly()
IPolynomialpublic MultivariatePolynomialZp64 lcAsPoly()
IPolynomialpublic MultivariatePolynomialZp64 lcAsPoly(Comparator<DegreeVector> ordering)
AMultivariatePolynomiallcAsPoly in class AMultivariatePolynomial<MonomialZp64,MultivariatePolynomialZp64>public MultivariatePolynomialZp64 ccAsPoly()
IPolynomialpublic boolean isOverField()
IPolynomialpublic boolean isOverFiniteField()
IPolynomialpublic boolean isOverZ()
IPolynomialpublic BigInteger coefficientRingCardinality()
IPolynomialpublic BigInteger coefficientRingCharacteristic()
IPolynomialpublic boolean isOverPerfectPower()
IPolynomialcoefficientRingCardinality() is a perfect powercoefficientRingCardinality() is a perfect powerpublic BigInteger coefficientRingPerfectPowerBase()
IPolynomialbase so that coefficientRingCardinality() == base^exponent or null if cardinality is not
finitebase so that coefficientRingCardinality() == base^exponent or null if cardinality is not
finitepublic BigInteger coefficientRingPerfectPowerExponent()
IPolynomialexponent so that coefficientRingCardinality() == base^exponent or null if cardinality is
not finiteexponent so that coefficientRingCardinality() == base^exponent or null if cardinality is
not finitepublic MultivariatePolynomialZp64[] createArray(int length)
IPolynomialpublic MultivariatePolynomialZp64[][] createArray2d(int length)
IPolynomialpublic MultivariatePolynomialZp64[][] createArray2d(int length1, int length2)
IPolynomialpublic boolean sameCoefficientRingWith(MultivariatePolynomialZp64 oth)
IPolynomialoth and this have the same coefficient ringoth - other polynomialpublic MultivariatePolynomialZp64 setCoefficientRingFrom(MultivariatePolynomialZp64 lMonomialTerms)
IPolynomiallMonomialTerms - the polynomialpolyprotected void release()
release in class AMultivariatePolynomial<MonomialZp64,MultivariatePolynomialZp64>public MultivariatePolynomialZp64 setRing(long newModulus)
newModulusnewModulus - the new modulusnewModuluspublic MultivariatePolynomialZp64 setRing(IntegersZp64 newDomain)
newDomainnewDomain - the new ringnewDomainpublic <E> MultivariatePolynomial<E> setRing(Ring<E> newRing)
newRingnewRing - the new ringnewRingpublic MultivariatePolynomialZp64 setRingUnsafe(IntegersZp64 newDomain)
public MultivariatePolynomialZp64 createConstant(long val)
val - valuepublic MultivariatePolynomialZp64 createConstantFromTerm(MonomialZp64 monomial)
AMultivariatePolynomialcreateConstantFromTerm in class AMultivariatePolynomial<MonomialZp64,MultivariatePolynomialZp64>monomial - the monomialpublic MultivariatePolynomialZp64 createZero()
IPolynomialpublic MultivariatePolynomialZp64 createOne()
IPolynomialpublic MultivariatePolynomialZp64 createLinear(int variable, long cc, long lc)
cc + lc * variablevariable - the variablecc - the constant coefficientlc - the leading coefficientcc + lc * variablepublic boolean isMonic()
IPolynomialtrue if this polynomial is monicthis is monicpublic int signumOfLC()
IPolynomialpublic boolean isOne()
IPolynomialtrue if this is onethis is onepublic boolean isUnitCC()
IPolynomialpublic boolean isConstant()
IPolynomialtrue if this polynomial has only constant termthis is constantpublic long lc()
public long lc(Comparator<DegreeVector> ordering)
public MultivariatePolynomialZp64 setLC(long val)
val - new value for the lcpublic long cc()
public long content()
public long[] coefficients()
public MultivariatePolynomialZp64 primitivePart(int variable)
AMultivariatePolynomialprimitivePart in class AMultivariatePolynomial<MonomialZp64,MultivariatePolynomialZp64>variable - the variablepublic UnivariatePolynomialZp64 contentUnivariate(int variable)
AMultivariatePolynomialcontentUnivariate in class AMultivariatePolynomial<MonomialZp64,MultivariatePolynomialZp64>variable - the variablepublic MultivariatePolynomialZp64 primitivePart()
IPolynomialpublic MultivariatePolynomialZp64 primitivePartSameSign()
IPolynomialpublic MultivariatePolynomialZp64 divideByLC(MultivariatePolynomialZp64 other)
IPolynomialother or returns null (causing loss of
internal data) if some of the elements can't be exactly divided by the other.lc(). NOTE: if null
is returned, the content of this is destroyed.other - the polynomialthis divided by the other.lc() or null if exact division is not possiblepublic MultivariatePolynomialZp64 divide(long factor)
factorfactor - the factorthis / factorpublic MultivariatePolynomialZp64 divideOrNull(MonomialZp64 monomial)
AMultivariatePolynomialmonomial or returns null (causing loss of internal data) if some of
the elements can't be exactly divided by the monomial. NOTE: if null is returned, the content of
this is destroyed.divideOrNull in class AMultivariatePolynomial<MonomialZp64,MultivariatePolynomialZp64>monomial - monomial degreesthis divided by the factor * monomial or nullpublic MultivariatePolynomialZp64 monic()
public MultivariatePolynomialZp64 monic(Comparator<DegreeVector> ordering)
AMultivariatePolynomialmonic in class AMultivariatePolynomial<MonomialZp64,MultivariatePolynomialZp64>public MultivariatePolynomialZp64 monic(long factor)
this to its monic part (with respect to given ordering) multiplied by the given factor;public MultivariatePolynomialZp64 monic(Comparator<DegreeVector> ordering, long factor)
this to its monic part (with respect to given ordering) multiplied by the given factor;public MultivariatePolynomialZp64 monicWithLC(MultivariatePolynomialZp64 other)
IPolynomialthis to its monic part multiplied by the leading coefficient of other;other - other polynomialother or null if exact division by the
reduced leading coefficient is not possiblepublic MultivariatePolynomialZp64 monicWithLC(Comparator<DegreeVector> ordering, MultivariatePolynomialZp64 other)
AMultivariatePolynomialthis to its monic part multiplied by the leading coefficient of other with respect to given
orderingmonicWithLC in class AMultivariatePolynomial<MonomialZp64,MultivariatePolynomialZp64>public IUnivariatePolynomial toDenseRecursiveForm()
public static MultivariatePolynomialZp64 fromDenseRecursiveForm(IUnivariatePolynomial recForm, Comparator<DegreeVector> ordering)
recForm - recursive univariate representationordering - monomial orderpublic static MultivariatePolynomialZp64 fromDenseRecursiveForm(IUnivariatePolynomial recForm, int nVariables, Comparator<DegreeVector> ordering)
recForm - recursive univariate representationnVariables - number of variables in multivariate polynomialordering - monomial orderpublic static long evaluateDenseRecursiveForm(IUnivariatePolynomial recForm, long[] values)
public AMultivariatePolynomial toSparseRecursiveForm()
public static MultivariatePolynomialZp64 fromSparseRecursiveForm(AMultivariatePolynomial recForm, Comparator<DegreeVector> ordering)
recForm - recursive univariate representationordering - monomial orderpublic static MultivariatePolynomialZp64 fromSparseRecursiveForm(AMultivariatePolynomial recForm, int nVariables, Comparator<DegreeVector> ordering)
recForm - recursive univariate representationnVariables - number of variables in multivariate polynomialordering - monomial orderpublic static long evaluateSparseRecursiveForm(AMultivariatePolynomial recForm, long[] values)
public MultivariatePolynomialZp64.HornerFormZp64 getHornerForm(int[] evaluationVariables)
evaluationVariables - variables which will be substitutedpublic MultivariatePolynomialZp64 evaluate(int variable, long value)
value substituted for variablevariable - the variablevalue - the valuevalue substituted for variable but still with the same
AMultivariatePolynomial.nVariables (though the effective number of variables is nVariables - 1, compare to
eliminate(int, long))public MultivariatePolynomialZp64 evaluate(int[] variables, long[] values)
values substituted for variablesvariables - the variablesvalues - the valuesvalue substituted for variable but still with the same
AMultivariatePolynomial.nVariables (though the effective number of variables is nVariables - 1, compare to
eliminate(int, long))public long evaluate(long... values)
public MultivariatePolynomialZp64[] evaluate(int variable, long... values)
public MultivariatePolynomialZp64 eliminate(int variable, long value)
value for variable and eliminates variable from the list of variables so that
the resulting polynomial has result.nVariables = this.nVariables - 1.variable - the variablevalue - the valuevalue substituted for variable and nVariables
= nVariables - 1)public MultivariatePolynomialZp64 eliminate(int[] variables, long[] values)
values substituted for variablesvariables - the variablesvalues - the valuesvalue substituted for variable but still with the same
AMultivariatePolynomial.nVariables (though the effective number of variables is nVariables - 1, compare to
eliminate(int, long))public MultivariatePolynomialZp64.lPrecomputedPowersHolder mkPrecomputedPowers(int variable, long value)
public MultivariatePolynomialZp64.lPrecomputedPowersHolder mkPrecomputedPowers(int[] variables, long[] values)
public static MultivariatePolynomialZp64.lPrecomputedPowersHolder mkPrecomputedPowers(int nVariables, IntegersZp64 ring, int[] variables, long[] values)
public MultivariatePolynomialZp64.lPrecomputedPowersHolder mkPrecomputedPowers(long[] values)
public MultivariatePolynomialZp64 substitute(int variable, MultivariatePolynomialZp64 poly)
poly substituted for variablevariable - the variablepoly - the replacement for the variablevariable -> polypublic MultivariatePolynomialZp64 shift(int variable, long shift)
variable -> variable + shiftvariable - the variableshift - shift amountvariable -> variable + shiftpublic MultivariatePolynomialZp64 shift(int[] variables, long[] shifts)
variable -> variable + shift for each variable from variables arrayvariables - the variablesshifts - the corresponding shiftsvariable -> variable + shiftpublic MultivariatePolynomialZp64 add(long oth)
oth to this polynomial and returns itoth - other polynomialthis + othpublic MultivariatePolynomialZp64 subtract(long oth)
oth from this polynomial and returns itoth - other polynomialthis - othpublic MultivariatePolynomialZp64 increment()
IPolynomialthis + 1public MultivariatePolynomialZp64 decrement()
IPolynomialthis - 1public MultivariatePolynomialZp64 multiply(long factor)
IPolynomialfactorfactor - the factorthis * factorpublic MultivariatePolynomialZp64 multiplyByLC(MultivariatePolynomialZp64 other)
IPolynomialotherother - polynomialpublic MultivariatePolynomialZp64 multiplyByBigInteger(BigInteger factor)
IPolynomialfactorfactor - the factorthis * factorpublic MultivariatePolynomialZp64 multiply(MonomialZp64 monomial)
AMultivariatePolynomialthis by the monomialmultiply in class AMultivariatePolynomial<MonomialZp64,MultivariatePolynomialZp64>monomial - the monomialmonomialpublic MultivariatePolynomialZp64 multiply(MultivariatePolynomialZp64 oth)
IPolynomialoth oth - the polynomialthis * oth public MultivariatePolynomialZp64 square()
IPolynomialthisthis * thispublic MultivariatePolynomialZp64 evaluateAtRandom(int variable, org.apache.commons.math3.random.RandomGenerator rnd)
AMultivariatePolynomialpoly at random pointevaluateAtRandom in class AMultivariatePolynomial<MonomialZp64,MultivariatePolynomialZp64>public MultivariatePolynomialZp64 evaluateAtRandomPreservingSkeleton(int variable, org.apache.commons.math3.random.RandomGenerator rnd)
AMultivariatePolynomialpoly at random point chosen in such way that the skeleton of evaluated version is the same as
of the original poly with respect to all except variable variablesevaluateAtRandomPreservingSkeleton in class AMultivariatePolynomial<MonomialZp64,MultivariatePolynomialZp64>public MultivariatePolynomialZp64 derivative(int variable, int order)
AMultivariatePolynomialorder with respect to specified variable (new instance created)derivative in class AMultivariatePolynomial<MonomialZp64,MultivariatePolynomialZp64>variable - the variableorder - derivative orderorder with respect to specified variablepublic MultivariatePolynomialZp64 seriesCoefficient(int variable, int order)
AMultivariatePolynomialderivative(poly,
variable, order) / order! , where the derivative is formal derivative and calculated with arithmetic performed
in Z ring (to overcome possible zeros in Zp).seriesCoefficient in class AMultivariatePolynomial<MonomialZp64,MultivariatePolynomialZp64>variable - the variableorder - derivative orderderivative(poly, variable, order) / order! , where the derivative is formal derivative and
calculated with arithmetic performed in Z ring (to overcome possible zeros in Zp)public <T> MultivariatePolynomial<T> mapTerms(Ring<T> newRing, Function<MonomialZp64,Monomial<T>> mapper)
T - new element typenewRing - the new ringmapper - mappingpublic MultivariatePolynomialZp64 mapTerms(IntegersZp64 newRing, Function<MonomialZp64,MonomialZp64> mapper)
newRing - the new ringmapper - mappingpublic <T> MultivariatePolynomial<T> mapCoefficients(Ring<T> newRing, LongFunction<T> mapper)
T - new element typenewRing - the new ringmapper - mappingpublic <E> MultivariatePolynomial<E> mapCoefficientsAsPolys(Ring<E> ring, Function<MultivariatePolynomialZp64,E> mapper)
mapCoefficientsAsPolys in class AMultivariatePolynomial<MonomialZp64,MultivariatePolynomialZp64>public int compareTo(MultivariatePolynomialZp64 oth)
public MultivariatePolynomialZp64 clone()
IPolynomialclone in interface IPolynomial<MultivariatePolynomialZp64>clone in class AMultivariatePolynomial<MonomialZp64,MultivariatePolynomialZp64>@Deprecated public MultivariatePolynomialZp64 parsePoly(String string)
public String toString(IStringifier<MultivariatePolynomialZp64> stringifier)
Stringifiablepublic String coefficientRingToString(IStringifier<MultivariatePolynomialZp64> stringifier)
IPolynomialCopyright © 2022. All rights reserved.