Package edu.jas.poly
Class RecSolvablePolynomial<C extends RingElem<C>>
- java.lang.Object
-
- edu.jas.poly.GenPolynomial<C>
-
- edu.jas.poly.GenSolvablePolynomial<GenPolynomial<C>>
-
- edu.jas.poly.RecSolvablePolynomial<C>
-
- Type Parameters:
C
- coefficient type
- All Implemented Interfaces:
AbelianGroupElem<GenPolynomial<GenPolynomial<C>>>
,Element<GenPolynomial<GenPolynomial<C>>>
,MonoidElem<GenPolynomial<GenPolynomial<C>>>
,RingElem<GenPolynomial<GenPolynomial<C>>>
,java.io.Serializable
,java.lang.Comparable<GenPolynomial<GenPolynomial<C>>>
,java.lang.Iterable<Monomial<GenPolynomial<C>>>
public class RecSolvablePolynomial<C extends RingElem<C>> extends GenSolvablePolynomial<GenPolynomial<C>>
RecSolvablePolynomial generic recursive solvable polynomials implementing RingElem. n-variate ordered solvable polynomials over solvable polynomial coefficients. Objects of this class are intended to be immutable. The implementation is based on TreeMap respectively SortedMap from exponents to coefficients by extension of GenPolynomial.- Author:
- Heinz Kredel
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description RecSolvablePolynomialRing<C>
ring
The factory for the recursive solvable polynomial ring.-
Fields inherited from class edu.jas.poly.GenPolynomial
blen, hash, val
-
-
Constructor Summary
Constructors Modifier Constructor Description RecSolvablePolynomial(RecSolvablePolynomialRing<C> r)
Constructor for zero RecSolvablePolynomial.RecSolvablePolynomial(RecSolvablePolynomialRing<C> r, ExpVector e)
Constructor for RecSolvablePolynomial.RecSolvablePolynomial(RecSolvablePolynomialRing<C> r, GenPolynomial<C> c)
Constructor for RecSolvablePolynomial.RecSolvablePolynomial(RecSolvablePolynomialRing<C> r, GenPolynomial<C> c, ExpVector e)
Constructor for RecSolvablePolynomial.RecSolvablePolynomial(RecSolvablePolynomialRing<C> r, GenSolvablePolynomial<GenPolynomial<C>> S)
Constructor for RecSolvablePolynomial.protected
RecSolvablePolynomial(RecSolvablePolynomialRing<C> r, java.util.SortedMap<ExpVector,GenPolynomial<C>> v)
Constructor for RecSolvablePolynomial.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description RecSolvablePolynomial<C>
copy()
Clone this RecSolvablePolynomial.boolean
equals(java.lang.Object B)
Comparison with any other object.GenSolvablePolynomial<GenPolynomial<C>>
evalAsRightRecursivePolynomial()
Evaluate RecSolvablePolynomial as right coefficients polynomial.RecSolvablePolynomialRing<C>
factory()
Get the corresponding element factory.int
hashCode()
Hash code for this polynomial.boolean
isRightRecursivePolynomial(GenSolvablePolynomial<GenPolynomial<C>> R)
Test RecSolvablePolynomial right coefficients polynomial.RecSolvablePolynomial<C>
multiply(ExpVector e)
RecSolvablePolynomial multiplication.RecSolvablePolynomial<C>
multiply(ExpVector e, ExpVector f)
RecSolvablePolynomial left and right multiplication.RecSolvablePolynomial<C>
multiply(GenPolynomial<C> b, ExpVector e)
RecSolvablePolynomial multiplication.RecSolvablePolynomial<C>
multiply(GenPolynomial<C> b, ExpVector e, GenPolynomial<C> c, ExpVector f)
RecSolvablePolynomial left and right multiplication.RecSolvablePolynomial<C>
multiply(GenPolynomial<C> b, GenPolynomial<C> c)
RecSolvablePolynomial left and right multiplication.RecSolvablePolynomial<C>
multiply(RecSolvablePolynomial<C> Bp)
RecSolvablePolynomial multiplication.RecSolvablePolynomial<C>
multiply(RecSolvablePolynomial<C> S, RecSolvablePolynomial<C> T)
RecSolvablePolynomial left and right multiplication.RecSolvablePolynomial<C>
multiply(java.util.Map.Entry<ExpVector,GenPolynomial<C>> m)
RecSolvablePolynomial multiplication.RecSolvablePolynomial<C>
multiplyLeft(ExpVector e)
RecSolvablePolynomial multiplication.RecSolvablePolynomial<C>
multiplyLeft(GenPolynomial<C> b)
RecSolvablePolynomial multiplication.RecSolvablePolynomial<C>
multiplyLeft(GenPolynomial<C> b, ExpVector e)
RecSolvablePolynomial multiplication.RecSolvablePolynomial<C>
multiplyLeft(java.util.Map.Entry<ExpVector,GenPolynomial<C>> m)
RecSolvablePolynomial multiplication.RecSolvablePolynomial<C>
multiplyRightComm(GenPolynomial<C> b)
RecSolvablePolynomial multiplication.RecSolvablePolynomial<C>
recMultiply(GenPolynomial<C> b)
RecSolvablePolynomial multiplication.GenSolvablePolynomial<GenPolynomial<C>>
rightRecursivePolynomial()
RecSolvablePolynomial right coefficients from left coefficients.RecSolvablePolynomial<C>
shift(ExpVector f)
RecSolvablePolynomial multiplication.-
Methods inherited from class edu.jas.poly.GenSolvablePolynomial
divide, leftMonic, monic, multiply, multiply, multiply, quotientRemainder, remainder, rightDivide, rightMonic, rightQuotientRemainder, rightRemainder, scaleSubtractMultiple, scaleSubtractMultiple, scaleSubtractMultiple, subtractMultiple, subtractMultiple
-
Methods inherited from class edu.jas.poly.GenPolynomial
abs, bitLength, coefficient, coefficientIterator, coeffPrimitivePart, compareTo, contract, contractCoeff, degree, degree, degreeMin, degreeVector, deHomogenize, deltaExpVectors, deltaExpVectors, divide, divide, doAddTo, doAddTo, doAddTo, doPutToMap, doPutToMap, doRemoveFromMap, egcd, exponentIterator, extend, extendLower, extendUnivariate, gcd, getMap, hegcd, homogenize, inflate, inverse, isConstant, isHomogeneous, isONE, isUnit, isWeightHomogeneous, isZERO, iterator, leadingBaseCoefficient, leadingExpVector, leadingFacetPolynomial, leadingMonomial, leadingWeightPolynomial, leftDivideCoeff, length, map, mapOnStream, mapOnStream, maxNorm, modInverse, monicRight, multiply, negate, negateAlt, numberOfVariables, quotientRemainder, reductum, remainder, reverse, rightDivideCoeff, rightGcd, scaleSubtractMultiple, scaleSubtractMultiple, scaleSubtractMultiple, signum, spliterator, squareNorm, subtract, subtract, subtract, subtract, subtractMultiple, subtractMultiple, sum, sum, sum, sum, sumNorm, toScript, toScriptFactory, toString, toString, totalDegree, trailingBaseCoefficient, trailingExpVector, weightDegree
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface edu.jas.structure.MonoidElem
leftDivide, leftRemainder, power, rightDivide, rightRemainder, twosidedDivide, twosidedRemainder
-
-
-
-
Field Detail
-
ring
public final RecSolvablePolynomialRing<C extends RingElem<C>> ring
The factory for the recursive solvable polynomial ring. Hides super.ring.
-
-
Constructor Detail
-
RecSolvablePolynomial
public RecSolvablePolynomial(RecSolvablePolynomialRing<C> r)
Constructor for zero RecSolvablePolynomial.- Parameters:
r
- solvable polynomial ring factory.
-
RecSolvablePolynomial
public RecSolvablePolynomial(RecSolvablePolynomialRing<C> r, ExpVector e)
Constructor for RecSolvablePolynomial.- Parameters:
r
- solvable polynomial ring factory.e
- exponent.
-
RecSolvablePolynomial
public RecSolvablePolynomial(RecSolvablePolynomialRing<C> r, GenPolynomial<C> c, ExpVector e)
Constructor for RecSolvablePolynomial.- Parameters:
r
- solvable polynomial ring factory.c
- coefficient polynomial.e
- exponent.
-
RecSolvablePolynomial
public RecSolvablePolynomial(RecSolvablePolynomialRing<C> r, GenPolynomial<C> c)
Constructor for RecSolvablePolynomial.- Parameters:
r
- solvable polynomial ring factory.c
- coefficient polynomial.
-
RecSolvablePolynomial
public RecSolvablePolynomial(RecSolvablePolynomialRing<C> r, GenSolvablePolynomial<GenPolynomial<C>> S)
Constructor for RecSolvablePolynomial.- Parameters:
r
- solvable polynomial ring factory.S
- solvable polynomial.
-
RecSolvablePolynomial
protected RecSolvablePolynomial(RecSolvablePolynomialRing<C> r, java.util.SortedMap<ExpVector,GenPolynomial<C>> v)
Constructor for RecSolvablePolynomial.- Parameters:
r
- solvable polynomial ring factory.v
- the SortedMap of some other (solvable) polynomial.
-
-
Method Detail
-
factory
public RecSolvablePolynomialRing<C> factory()
Get the corresponding element factory.- Specified by:
factory
in interfaceElement<C extends RingElem<C>>
- Overrides:
factory
in classGenSolvablePolynomial<GenPolynomial<C extends RingElem<C>>>
- Returns:
- factory for this Element.
- See Also:
Element.factory()
-
copy
public RecSolvablePolynomial<C> copy()
Clone this RecSolvablePolynomial.
-
equals
public boolean equals(java.lang.Object B)
Comparison with any other object.
-
hashCode
public int hashCode()
Hash code for this polynomial.
-
multiply
public RecSolvablePolynomial<C> multiply(RecSolvablePolynomial<C> Bp)
RecSolvablePolynomial multiplication.- Parameters:
Bp
- RecSolvablePolynomial.- Returns:
- this*Bp, where * denotes solvable multiplication.
-
multiply
public RecSolvablePolynomial<C> multiply(RecSolvablePolynomial<C> S, RecSolvablePolynomial<C> T)
RecSolvablePolynomial left and right multiplication. Product with two polynomials.- Parameters:
S
- RecSolvablePolynomial.T
- RecSolvablePolynomial.- Returns:
- S*this*T.
-
recMultiply
public RecSolvablePolynomial<C> recMultiply(GenPolynomial<C> b)
RecSolvablePolynomial multiplication. Product with coefficient ring element.- Parameters:
b
- coefficient polynomial.- Returns:
- this*b, where * is coefficient multiplication.
-
multiply
public RecSolvablePolynomial<C> multiply(GenPolynomial<C> b, GenPolynomial<C> c)
RecSolvablePolynomial left and right multiplication. Product with coefficient ring element.- Overrides:
multiply
in classGenSolvablePolynomial<GenPolynomial<C extends RingElem<C>>>
- Parameters:
b
- coefficient polynomial.c
- coefficient polynomial.- Returns:
- b*this*c, where * is coefficient multiplication.
-
multiply
public RecSolvablePolynomial<C> multiply(ExpVector e)
RecSolvablePolynomial multiplication. Product with exponent vector.- Overrides:
multiply
in classGenSolvablePolynomial<GenPolynomial<C extends RingElem<C>>>
- Parameters:
e
- exponent.- Returns:
- this * xe, where * denotes solvable multiplication.
-
multiply
public RecSolvablePolynomial<C> multiply(ExpVector e, ExpVector f)
RecSolvablePolynomial left and right multiplication. Product with exponent vector.- Overrides:
multiply
in classGenSolvablePolynomial<GenPolynomial<C extends RingElem<C>>>
- Parameters:
e
- exponent.f
- exponent.- Returns:
- xe * this * xf, where * denotes solvable multiplication.
-
multiply
public RecSolvablePolynomial<C> multiply(GenPolynomial<C> b, ExpVector e)
RecSolvablePolynomial multiplication. Product with ring element and exponent vector.- Overrides:
multiply
in classGenSolvablePolynomial<GenPolynomial<C extends RingElem<C>>>
- Parameters:
b
- coefficient polynomial.e
- exponent.- Returns:
- this * b xe, where * denotes solvable multiplication.
-
multiply
public RecSolvablePolynomial<C> multiply(GenPolynomial<C> b, ExpVector e, GenPolynomial<C> c, ExpVector f)
RecSolvablePolynomial left and right multiplication. Product with ring element and exponent vector.- Overrides:
multiply
in classGenSolvablePolynomial<GenPolynomial<C extends RingElem<C>>>
- Parameters:
b
- coefficient polynomial.e
- exponent.c
- coefficient polynomial.f
- exponent.- Returns:
- b xe * this * c xf, where * denotes solvable multiplication.
-
multiplyLeft
public RecSolvablePolynomial<C> multiplyLeft(GenPolynomial<C> b, ExpVector e)
RecSolvablePolynomial multiplication. Left product with ring element and exponent vector.- Overrides:
multiplyLeft
in classGenSolvablePolynomial<GenPolynomial<C extends RingElem<C>>>
- Parameters:
b
- coefficient polynomial.e
- exponent.- Returns:
- b xe * this, where * denotes solvable multiplication.
-
multiplyLeft
public RecSolvablePolynomial<C> multiplyLeft(ExpVector e)
RecSolvablePolynomial multiplication. Left product with exponent vector.- Overrides:
multiplyLeft
in classGenSolvablePolynomial<GenPolynomial<C extends RingElem<C>>>
- Parameters:
e
- exponent.- Returns:
- xe * this, where * denotes solvable multiplication.
-
multiplyLeft
public RecSolvablePolynomial<C> multiplyLeft(GenPolynomial<C> b)
RecSolvablePolynomial multiplication. Left product with coefficient ring element.- Overrides:
multiplyLeft
in classGenSolvablePolynomial<GenPolynomial<C extends RingElem<C>>>
- Parameters:
b
- coefficient polynomial.- Returns:
- b*this, where * is coefficient multiplication.
-
multiplyLeft
public RecSolvablePolynomial<C> multiplyLeft(java.util.Map.Entry<ExpVector,GenPolynomial<C>> m)
RecSolvablePolynomial multiplication. Left product with 'monomial'.- Overrides:
multiplyLeft
in classGenSolvablePolynomial<GenPolynomial<C extends RingElem<C>>>
- Parameters:
m
- 'monomial'.- Returns:
- m * this, where * denotes solvable multiplication.
-
multiply
public RecSolvablePolynomial<C> multiply(java.util.Map.Entry<ExpVector,GenPolynomial<C>> m)
RecSolvablePolynomial multiplication. Product with 'monomial'.- Overrides:
multiply
in classGenSolvablePolynomial<GenPolynomial<C extends RingElem<C>>>
- Parameters:
m
- 'monomial'.- Returns:
- this * m, where * denotes solvable multiplication.
-
shift
public RecSolvablePolynomial<C> shift(ExpVector f)
RecSolvablePolynomial multiplication. Commutative product with exponent vector.- Parameters:
f
- exponent vector.- Returns:
- B*f, where * is commutative multiplication.
-
multiplyRightComm
public RecSolvablePolynomial<C> multiplyRightComm(GenPolynomial<C> b)
RecSolvablePolynomial multiplication. Commutative product with coefficient.- Parameters:
b
- coefficient.- Returns:
- B*b, where * is commutative multiplication with respect to main variables.
-
rightRecursivePolynomial
public GenSolvablePolynomial<GenPolynomial<C>> rightRecursivePolynomial()
RecSolvablePolynomial right coefficients from left coefficients. Note: R is represented as a polynomial with left coefficients, the implementation can at the moment not distinguish between left and right coefficients.- Overrides:
rightRecursivePolynomial
in classGenSolvablePolynomial<GenPolynomial<C extends RingElem<C>>>
- Returns:
- R = sum( Xi bi ), with this = sum(ai Xi ) and eval(sum(Xi bi)) == sum(ai Xi)
-
evalAsRightRecursivePolynomial
public GenSolvablePolynomial<GenPolynomial<C>> evalAsRightRecursivePolynomial()
Evaluate RecSolvablePolynomial as right coefficients polynomial. Note: R is represented as a polynomial with left coefficients, the implementation can at the moment not distinguish between left and right coefficients.- Overrides:
evalAsRightRecursivePolynomial
in classGenSolvablePolynomial<GenPolynomial<C extends RingElem<C>>>
- Returns:
- this as evaluated polynomial R. R = sum( Xi bi ), this = sum(ai Xi ) = eval(sum(Xi bi))
-
isRightRecursivePolynomial
public boolean isRightRecursivePolynomial(GenSolvablePolynomial<GenPolynomial<C>> R)
Test RecSolvablePolynomial right coefficients polynomial. Note: R is represented as a polynomial with left coefficients, the implementation can at the moment not distinguish between left and right coefficients.- Overrides:
isRightRecursivePolynomial
in classGenSolvablePolynomial<GenPolynomial<C extends RingElem<C>>>
- Parameters:
R
- GenSolvablePolynomial with right coefficients.- Returns:
- true, if R is polynomial with right coefficients of this. R = sum( Xi bi ), with this = sum(ai Xi ) and eval(sum(Xi bi)) == sum(ai Xi)
-
-