C
- coefficient typepublic class GenPolynomial<C extends RingElem<C>> extends java.lang.Object implements RingElem<GenPolynomial<C>>, java.lang.Iterable<Monomial<C>>
Modifier and Type | Field and Description |
---|---|
protected long |
blen
Stored bitLength.
|
protected int |
hash
Stored hash code.
|
GenPolynomialRing<C> |
ring
The factory for the polynomial ring.
|
protected java.util.SortedMap<ExpVector,C> |
val
The data structure for polynomials.
|
Modifier | Constructor and Description |
---|---|
|
GenPolynomial(GenPolynomialRing<C> r)
Constructor for zero GenPolynomial.
|
|
GenPolynomial(GenPolynomialRing<C> r,
C c)
Constructor for GenPolynomial c * x0.
|
|
GenPolynomial(GenPolynomialRing<C> r,
C c,
ExpVector e)
Constructor for GenPolynomial c * xe.
|
|
GenPolynomial(GenPolynomialRing<C> r,
ExpVector e)
Constructor for GenPolynomial xe.
|
protected |
GenPolynomial(GenPolynomialRing<C> r,
java.util.Map<ExpVector,C> v)
Constructor for GenPolynomial.
|
protected |
GenPolynomial(GenPolynomialRing<C> r,
java.util.SortedMap<ExpVector,C> v)
Constructor for GenPolynomial.
|
Modifier and Type | Method and Description |
---|---|
GenPolynomial<C> |
abs()
GenPolynomial absolute value, i.e. leadingCoefficient > 0.
|
long |
bitLength()
Returns the number of bits in the representation of this polynomial.
|
C |
coefficient(ExpVector e)
Coefficient.
|
java.util.Iterator<C> |
coefficientIterator()
Iterator over coefficients.
|
int |
compareTo(GenPolynomial<C> b)
GenPolynomial comparison.
|
java.util.Map<ExpVector,GenPolynomial<C>> |
contract(GenPolynomialRing<C> pfac)
Contract variables.
|
GenPolynomial<C> |
contractCoeff(GenPolynomialRing<C> pfac)
Contract variables to coefficient polynomial.
|
GenPolynomial<C> |
copy()
Copy this GenPolynomial.
|
long |
degree()
Maximal degree.
|
long |
degree(int i)
Degree in variable i.
|
long |
degreeMin()
Minimal degree.
|
ExpVector |
degreeVector()
Maximal degree vector.
|
GenPolynomial<C> |
deHomogenize(GenPolynomialRing<C> pfac)
Dehomogenize.
|
java.util.List<ExpVector> |
deltaExpVectors()
Delta of exponent vectors.
|
java.util.List<ExpVector> |
deltaExpVectors(ExpVector u)
Delta of exponent vectors.
|
GenPolynomial<C> |
divide(C s)
GenPolynomial division.
|
GenPolynomial<C> |
divide(GenPolynomial<C> S)
GenPolynomial division.
|
void |
doAddTo(C a)
GenPolynomial destructive summation.
|
void |
doAddTo(C a,
ExpVector e)
GenPolynomial destructive summation.
|
void |
doAddTo(GenPolynomial<C> S)
GenPolynomial destructive summation.
|
void |
doPutToMap(ExpVector e,
C c)
Put an ExpVector to coefficient entry into the internal map of this
GenPolynomial.
|
void |
doPutToMap(java.util.SortedMap<ExpVector,C> vals)
Put an a sorted map of exponents to coefficients into the internal map of
this GenPolynomial.
|
void |
doRemoveFromMap(ExpVector e,
C c)
Remove an ExpVector to coefficient entry from the internal map of this
GenPolynomial.
|
GenPolynomial<C>[] |
egcd(GenPolynomial<C> S)
GenPolynomial extended greatest comon divisor.
|
boolean |
equals(java.lang.Object B)
Comparison with any other object.
|
java.util.Iterator<ExpVector> |
exponentIterator()
Iterator over exponents.
|
GenPolynomial<C> |
extend(GenPolynomialRing<C> pfac,
int j,
long k)
Extend variables.
|
GenPolynomial<C> |
extendLower(GenPolynomialRing<C> pfac,
int j,
long k)
Extend lower variables.
|
GenPolynomial<C> |
extendUnivariate(GenPolynomialRing<C> pfac,
int i)
Extend univariate to multivariate polynomial.
|
GenPolynomialRing<C> |
factory()
Get the corresponding element factory.
|
GenPolynomial<C> |
gcd(GenPolynomial<C> S)
GenPolynomial greatest common divisor.
|
java.util.SortedMap<ExpVector,C> |
getMap()
ExpVector to coefficient map of GenPolynomial.
|
int |
hashCode()
Hash code for this polynomial.
|
GenPolynomial<C>[] |
hegcd(GenPolynomial<C> S)
GenPolynomial half extended greatest comon divisor.
|
GenPolynomial<C> |
homogenize(GenPolynomialRing<C> pfac)
Make homogeneous.
|
GenPolynomial<C> |
inflate(long e)
GenPolynomial inflate.
|
GenPolynomial<C> |
inverse()
GenPolynomial inverse.
|
boolean |
isConstant()
Is GenPolynomial<C> a constant.
|
boolean |
isHomogeneous()
Is GenPolynomial<C> homogeneous.
|
boolean |
isONE()
Is GenPolynomial<C> one.
|
boolean |
isUnit()
Is GenPolynomial<C> a unit.
|
boolean |
isWeightHomogeneous()
Is GenPolynomial<C> homogeneous with respect to a weight.
|
boolean |
isZERO()
Is GenPolynomial<C> zero.
|
java.util.Iterator<Monomial<C>> |
iterator()
Iterator over monomials.
|
C |
leadingBaseCoefficient()
Leading base coefficient.
|
ExpVector |
leadingExpVector()
Leading exponent vector.
|
GenPolynomial<C> |
leadingFacetPolynomial(ExpVector u,
ExpVector uv)
Leading facet normal polynomial.
|
java.util.Map.Entry<ExpVector,C> |
leadingMonomial()
Leading monomial.
|
GenPolynomial<C> |
leadingWeightPolynomial()
Leading weight polynomial.
|
GenPolynomial<C> |
leftDivideCoeff(C s)
GenPolynomial left division.
|
int |
length()
Length of GenPolynomial.
|
GenPolynomial<C> |
map(UnaryFunctor<? super C,C> f)
Map a unary function to the coefficients.
|
GenPolynomial<C> |
mapOnStream(java.util.function.Function<? super java.util.Map.Entry<ExpVector,C>,? extends java.util.Map.Entry<ExpVector,C>> f)
Map a function to the polynomial stream entries.
|
GenPolynomial<C> |
mapOnStream(java.util.function.Function<? super java.util.Map.Entry<ExpVector,C>,? extends java.util.Map.Entry<ExpVector,C>> f,
boolean parallel)
Map a function to the polynomial stream entries.
|
C |
maxNorm()
GenPolynomial maximum norm.
|
GenPolynomial<C> |
modInverse(GenPolynomial<C> m)
GenPolynomial modular inverse.
|
GenPolynomial<C> |
monic()
GenPolynomial monic, i.e. leadingCoefficient == 1.
|
GenPolynomial<C> |
multiply(C s)
GenPolynomial multiplication.
|
GenPolynomial<C> |
multiply(C s,
ExpVector e)
GenPolynomial multiplication.
|
GenPolynomial<C> |
multiply(ExpVector e)
GenPolynomial multiplication.
|
GenPolynomial<C> |
multiply(GenPolynomial<C> S)
GenPolynomial multiplication.
|
GenPolynomial<C> |
multiply(java.util.Map.Entry<ExpVector,C> m)
GenPolynomial multiplication.
|
GenPolynomial<C> |
multiplyLeft(C s)
GenPolynomial left multiplication.
|
GenPolynomial<C> |
negate()
GenPolynomial negation.
|
GenPolynomial<C> |
negateAlt()
GenPolynomial negation, alternative implementation.
|
int |
numberOfVariables()
Number of variables.
|
GenPolynomial<C>[] |
quotientRemainder(GenPolynomial<C> S)
GenPolynomial division with remainder.
|
GenPolynomial<C> |
reductum()
Reductum.
|
GenPolynomial<C> |
remainder(GenPolynomial<C> S)
GenPolynomial remainder.
|
GenPolynomial<C> |
reverse(GenPolynomialRing<C> oring)
Reverse variables.
|
GenPolynomial<C> |
rightDivideCoeff(C s)
GenPolynomial right division.
|
GenPolynomial<C> |
scaleSubtractMultiple(C b,
C a,
ExpVector e,
GenPolynomial<C> S)
GenPolynomial scale and subtract a multiple.
|
GenPolynomial<C> |
scaleSubtractMultiple(C b,
C a,
GenPolynomial<C> S)
GenPolynomial scale and subtract a multiple.
|
GenPolynomial<C> |
scaleSubtractMultiple(C b,
ExpVector g,
C a,
ExpVector e,
GenPolynomial<C> S)
GenPolynomial scale and subtract a multiple.
|
int |
signum()
GenPolynomial signum.
|
java.util.Spliterator<Monomial<C>> |
spliterator()
Spliterator over monomials.
|
GenPolynomial<C> |
subtract(C a)
GenPolynomial subtract.
|
GenPolynomial<C> |
subtract(C a,
ExpVector e)
GenPolynomial subtraction.
|
GenPolynomial<C> |
subtract(GenPolynomial<C> S)
GenPolynomial subtraction.
|
GenPolynomial<C> |
subtract(Monomial<C> m)
GenPolynomial subtraction.
|
GenPolynomial<C> |
subtractMultiple(C a,
ExpVector e,
GenPolynomial<C> S)
GenPolynomial subtract a multiple.
|
GenPolynomial<C> |
subtractMultiple(C a,
GenPolynomial<C> S)
GenPolynomial subtract a multiple.
|
GenPolynomial<C> |
sum(C a)
GenPolynomial addition.
|
GenPolynomial<C> |
sum(C a,
ExpVector e)
GenPolynomial addition.
|
GenPolynomial<C> |
sum(GenPolynomial<C> S)
GenPolynomial summation.
|
GenPolynomial<C> |
sum(Monomial<C> m)
GenPolynomial addition.
|
C |
sumNorm()
GenPolynomial sum norm.
|
java.lang.String |
toScript()
Get a scripting compatible string representation.
|
java.lang.String |
toScriptFactory()
Get a scripting compatible string representation of the factory.
|
java.lang.String |
toString()
String representation of GenPolynomial.
|
java.lang.String |
toString(java.lang.String[] v)
String representation of GenPolynomial.
|
long |
totalDegree()
Total degree.
|
C |
trailingBaseCoefficient()
Trailing base coefficient.
|
ExpVector |
trailingExpVector()
Trailing exponent vector.
|
long |
weightDegree()
Weight degree.
|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
leftDivide, leftRemainder, power, rightDivide, rightRemainder, twosidedDivide, twosidedRemainder
public final GenPolynomialRing<C extends RingElem<C>> ring
protected final java.util.SortedMap<ExpVector,C extends RingElem<C>> val
protected transient int hash
protected transient long blen
public GenPolynomial(GenPolynomialRing<C> r)
r
- polynomial ring factory.public GenPolynomial(GenPolynomialRing<C> r, C c, ExpVector e)
r
- polynomial ring factory.c
- coefficient.e
- exponent.public GenPolynomial(GenPolynomialRing<C> r, C c)
r
- polynomial ring factory.c
- coefficient.public GenPolynomial(GenPolynomialRing<C> r, ExpVector e)
r
- polynomial ring factory.e
- exponent.protected GenPolynomial(GenPolynomialRing<C> r, java.util.SortedMap<ExpVector,C> v)
r
- polynomial ring factory.v
- the SortedMap of some other polynomial.protected GenPolynomial(GenPolynomialRing<C> r, java.util.Map<ExpVector,C> v)
r
- polynomial ring factory.v
- some Map from ExpVector to coefficients.public GenPolynomialRing<C> factory()
factory
in interface Element<GenPolynomial<C extends RingElem<C>>>
Element.factory()
public GenPolynomial<C> copy()
public int length()
public java.util.SortedMap<ExpVector,C> getMap()
public void doPutToMap(ExpVector e, C c)
c
- coefficient.e
- exponent.public void doRemoveFromMap(ExpVector e, C c)
e
- exponent.c
- expected coefficient, null for ignore.public void doPutToMap(java.util.SortedMap<ExpVector,C> vals)
vals
- sorted map of exponents and coefficients.public java.lang.String toString()
toString
in class java.lang.Object
Object.toString()
public java.lang.String toString(java.lang.String[] v)
v
- names for variables.Object.toString()
public java.lang.String toScript()
toScript
in interface Element<GenPolynomial<C extends RingElem<C>>>
Element.toScript()
public java.lang.String toScriptFactory()
toScriptFactory
in interface Element<GenPolynomial<C extends RingElem<C>>>
Element.toScriptFactory()
public boolean isZERO()
isZERO
in interface AbelianGroupElem<GenPolynomial<C extends RingElem<C>>>
AbelianGroupElem.isZERO()
public boolean isONE()
isONE
in interface MonoidElem<GenPolynomial<C extends RingElem<C>>>
MonoidElem.isONE()
public boolean isUnit()
isUnit
in interface MonoidElem<GenPolynomial<C extends RingElem<C>>>
MonoidElem.isUnit()
public boolean isConstant()
public boolean isHomogeneous()
public boolean equals(java.lang.Object B)
public int hashCode()
public int compareTo(GenPolynomial<C> b)
compareTo
in interface Element<GenPolynomial<C extends RingElem<C>>>
compareTo
in interface java.lang.Comparable<GenPolynomial<C extends RingElem<C>>>
b
- GenPolynomial.public int signum()
signum
in interface AbelianGroupElem<GenPolynomial<C extends RingElem<C>>>
public int numberOfVariables()
public java.util.Map.Entry<ExpVector,C> leadingMonomial()
public ExpVector leadingExpVector()
public ExpVector trailingExpVector()
public C leadingBaseCoefficient()
public C trailingBaseCoefficient()
public C coefficient(ExpVector e)
e
- exponent.public GenPolynomial<C> reductum()
public long degree(int i)
public long degree()
public long degreeMin()
public long totalDegree()
public long weightDegree()
public GenPolynomial<C> leadingWeightPolynomial()
public GenPolynomial<C> leadingFacetPolynomial(ExpVector u, ExpVector uv)
u
- leading exponent vector.uv
- exponent vector of facet normal.public boolean isWeightHomogeneous()
public ExpVector degreeVector()
public java.util.List<ExpVector> deltaExpVectors()
public java.util.List<ExpVector> deltaExpVectors(ExpVector u)
u
- marked ExpVector in this.expVectorspublic C sumNorm()
public GenPolynomial<C> sum(GenPolynomial<C> S)
sum
in interface AbelianGroupElem<GenPolynomial<C extends RingElem<C>>>
S
- GenPolynomial.public GenPolynomial<C> sum(C a, ExpVector e)
a
- coefficient.e
- exponent.public GenPolynomial<C> sum(Monomial<C> m)
m
- monomial.public GenPolynomial<C> sum(C a)
a
- coefficient.public void doAddTo(GenPolynomial<C> S)
S
- GenPolynomial.public void doAddTo(C a, ExpVector e)
a
- coefficient.e
- exponent.public GenPolynomial<C> subtract(GenPolynomial<C> S)
subtract
in interface AbelianGroupElem<GenPolynomial<C extends RingElem<C>>>
S
- GenPolynomial.public GenPolynomial<C> subtract(C a, ExpVector e)
a
- coefficient.e
- exponent.public GenPolynomial<C> subtract(Monomial<C> m)
m
- monomial.public GenPolynomial<C> subtract(C a)
a
- coefficient.public GenPolynomial<C> subtractMultiple(C a, GenPolynomial<C> S)
a
- coefficient.S
- GenPolynomial.public GenPolynomial<C> subtractMultiple(C a, ExpVector e, GenPolynomial<C> S)
a
- coefficient.e
- exponent.S
- GenPolynomial.public GenPolynomial<C> scaleSubtractMultiple(C b, C a, GenPolynomial<C> S)
b
- scale factor.a
- coefficient.S
- GenPolynomial.public GenPolynomial<C> scaleSubtractMultiple(C b, C a, ExpVector e, GenPolynomial<C> S)
b
- scale factor.a
- coefficient.e
- exponent.S
- GenPolynomial.public GenPolynomial<C> scaleSubtractMultiple(C b, ExpVector g, C a, ExpVector e, GenPolynomial<C> S)
b
- scale factor.g
- scale exponent.a
- coefficient.e
- exponent.S
- GenPolynomial.public GenPolynomial<C> negateAlt()
public GenPolynomial<C> negate()
negate
in interface AbelianGroupElem<GenPolynomial<C extends RingElem<C>>>
public GenPolynomial<C> abs()
abs
in interface AbelianGroupElem<GenPolynomial<C extends RingElem<C>>>
public GenPolynomial<C> multiply(GenPolynomial<C> S)
multiply
in interface MonoidElem<GenPolynomial<C extends RingElem<C>>>
S
- GenPolynomial.public GenPolynomial<C> multiply(C s)
s
- coefficient.public GenPolynomial<C> multiplyLeft(C s)
s
- coefficient.public GenPolynomial<C> monic()
public GenPolynomial<C> multiply(C s, ExpVector e)
s
- coefficient.e
- exponent.public GenPolynomial<C> multiply(ExpVector e)
e
- exponent (!= null).public GenPolynomial<C> multiply(java.util.Map.Entry<ExpVector,C> m)
m
- 'monomial'.public GenPolynomial<C> divide(C s)
s
- coefficient.public GenPolynomial<C> rightDivideCoeff(C s)
s
- coefficient.public GenPolynomial<C> leftDivideCoeff(C s)
s
- coefficient.public GenPolynomial<C>[] quotientRemainder(GenPolynomial<C> S)
quotientRemainder
in interface MonoidElem<GenPolynomial<C extends RingElem<C>>>
S
- nonzero GenPolynomial with invertible leading coefficient.PolyUtil.baseSparsePseudoRemainder(edu.jas.poly.GenPolynomial,edu.jas.poly.GenPolynomial)
public GenPolynomial<C> divide(GenPolynomial<C> S)
divide
in interface MonoidElem<GenPolynomial<C extends RingElem<C>>>
S
- nonzero GenPolynomial with invertible leading coefficient.PolyUtil.baseSparsePseudoRemainder(edu.jas.poly.GenPolynomial,edu.jas.poly.GenPolynomial)
public GenPolynomial<C> remainder(GenPolynomial<C> S)
remainder
in interface MonoidElem<GenPolynomial<C extends RingElem<C>>>
S
- nonzero GenPolynomial with invertible leading coefficient.PolyUtil.baseSparsePseudoRemainder(edu.jas.poly.GenPolynomial,edu.jas.poly.GenPolynomial)
public GenPolynomial<C> gcd(GenPolynomial<C> S)
public GenPolynomial<C>[] egcd(GenPolynomial<C> S)
public GenPolynomial<C>[] hegcd(GenPolynomial<C> S)
S
- GenPolynomial.public GenPolynomial<C> inverse()
inverse
in interface MonoidElem<GenPolynomial<C extends RingElem<C>>>
public GenPolynomial<C> modInverse(GenPolynomial<C> m)
m
- GenPolynomial.public GenPolynomial<C> extend(GenPolynomialRing<C> pfac, int j, long k)
pfac
- extended polynomial ring factory (by i variables).j
- index of variable to be used for multiplication.k
- exponent for x_j.public GenPolynomial<C> extendLower(GenPolynomialRing<C> pfac, int j, long k)
pfac
- extended polynomial ring factory (by i variables).j
- index of variable to be used for multiplication.k
- exponent for x_j.public java.util.Map<ExpVector,GenPolynomial<C>> contract(GenPolynomialRing<C> pfac)
pfac
- contracted polynomial ring factory (by i variables).public GenPolynomial<C> contractCoeff(GenPolynomialRing<C> pfac)
pfac
- contracted polynomial ring factory (by i variables).public GenPolynomial<C> extendUnivariate(GenPolynomialRing<C> pfac, int i)
pfac
- extended polynomial ring factory.i
- index of the variable of this polynomial in pfac.public GenPolynomial<C> homogenize(GenPolynomialRing<C> pfac)
pfac
- extended polynomial ring factory (by 1 variable).public GenPolynomial<C> deHomogenize(GenPolynomialRing<C> pfac)
pfac
- contracted polynomial ring factory (by 1 variable).public GenPolynomial<C> reverse(GenPolynomialRing<C> oring)
public GenPolynomial<C> inflate(long e)
e
- exponent.public java.util.Iterator<C> coefficientIterator()
public java.util.Iterator<ExpVector> exponentIterator()
public java.util.Spliterator<Monomial<C>> spliterator()
public GenPolynomial<C> map(UnaryFunctor<? super C,C> f)
f
- evaluation functor.public GenPolynomial<C> mapOnStream(java.util.function.Function<? super java.util.Map.Entry<ExpVector,C>,? extends java.util.Map.Entry<ExpVector,C>> f)
f
- evaluation functor.public GenPolynomial<C> mapOnStream(java.util.function.Function<? super java.util.Map.Entry<ExpVector,C>,? extends java.util.Map.Entry<ExpVector,C>> f, boolean parallel)
f
- evaluation functor.public long bitLength()