Class RecSolvablePolynomial<C extends RingElem<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>>>, Serializable, Comparable<GenPolynomial<GenPolynomial<C>>>, 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.
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final booleanprivate static final org.apache.logging.log4j.Loggerfinal RecSolvablePolynomialRing<C> The factory for the recursive solvable polynomial ring.Fields inherited from class GenPolynomial
blen, hash, val -
Constructor Summary
ConstructorsModifierConstructorDescriptionConstructor for zero RecSolvablePolynomial.Constructor for RecSolvablePolynomial.Constructor for RecSolvablePolynomial.Constructor for RecSolvablePolynomial.Constructor for RecSolvablePolynomial.protectedConstructor for RecSolvablePolynomial. -
Method Summary
Modifier and TypeMethodDescriptioncopy()Clone this RecSolvablePolynomial.booleanComparison with any other object.Evaluate RecSolvablePolynomial as right coefficients polynomial.factory()Get the corresponding element factory.inthashCode()Hash code for this polynomial.booleanTest RecSolvablePolynomial right coefficients polynomial.RecSolvablePolynomial multiplication.RecSolvablePolynomial left and right multiplication.multiply(GenPolynomial<C> b, ExpVector e) RecSolvablePolynomial multiplication.multiply(GenPolynomial<C> b, ExpVector e, GenPolynomial<C> c, ExpVector f) RecSolvablePolynomial left and right multiplication.multiply(GenPolynomial<C> b, GenPolynomial<C> c) RecSolvablePolynomial left and right multiplication.RecSolvablePolynomial multiplication.RecSolvablePolynomial left and right multiplication.multiply(Map.Entry<ExpVector, GenPolynomial<C>> m) RecSolvablePolynomial multiplication.RecSolvablePolynomial multiplication.RecSolvablePolynomial multiplication.multiplyLeft(GenPolynomial<C> b, ExpVector e) RecSolvablePolynomial multiplication.RecSolvablePolynomial multiplication.RecSolvablePolynomial multiplication.RecSolvablePolynomial multiplication.RecSolvablePolynomial right coefficients from left coefficients.RecSolvablePolynomial multiplication.Methods inherited from class GenSolvablePolynomial
divide, leftMonic, monic, multiply, multiply, multiply, quotientRemainder, remainder, rightDivide, rightMonic, rightQuotientRemainder, rightRemainder, scaleSubtractMultiple, scaleSubtractMultiple, scaleSubtractMultiple, subtractMultiple, subtractMultipleMethods inherited from class 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, mapWrong, 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, weightDegreeMethods inherited from interface MonoidElem
leftDivide, leftRemainder, power, rightDivide, rightRemainder, twosidedDivide, twosidedRemainder
-
Field Details
-
ring
The factory for the recursive solvable polynomial ring. Hides super.ring. -
logger
private static final org.apache.logging.log4j.Logger logger -
debug
private static final boolean debug
-
-
Constructor Details
-
RecSolvablePolynomial
Constructor for zero RecSolvablePolynomial.- Parameters:
r- solvable polynomial ring factory.
-
RecSolvablePolynomial
Constructor for RecSolvablePolynomial.- Parameters:
r- solvable polynomial ring factory.e- exponent.
-
RecSolvablePolynomial
Constructor for RecSolvablePolynomial.- Parameters:
r- solvable polynomial ring factory.c- coefficient polynomial.e- exponent.
-
RecSolvablePolynomial
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, SortedMap<ExpVector, GenPolynomial<C>> v) Constructor for RecSolvablePolynomial.- Parameters:
r- solvable polynomial ring factory.v- the SortedMap of some other (solvable) polynomial.
-
-
Method Details
-
factory
Get the corresponding element factory. -
copy
Clone this RecSolvablePolynomial. -
equals
-
hashCode
-
multiply
RecSolvablePolynomial multiplication.- Parameters:
Bp- RecSolvablePolynomial.- Returns:
- this*Bp, where * denotes solvable multiplication.
-
multiply
RecSolvablePolynomial left and right multiplication. Product with two polynomials.- Parameters:
S- RecSolvablePolynomial.T- RecSolvablePolynomial.- Returns:
- S*this*T.
-
recMultiply
RecSolvablePolynomial multiplication. Product with coefficient ring element.- Parameters:
b- coefficient polynomial.- Returns:
- this*b, where * is coefficient multiplication.
-
multiply
RecSolvablePolynomial left and right multiplication. Product with coefficient ring element.- Overrides:
multiplyin classGenSolvablePolynomial<GenPolynomial<C extends RingElem<C>>>- Parameters:
b- coefficient polynomial.c- coefficient polynomial.- Returns:
- b*this*c, where * is coefficient multiplication.
-
multiply
RecSolvablePolynomial multiplication. Product with exponent vector.- Overrides:
multiplyin classGenSolvablePolynomial<GenPolynomial<C extends RingElem<C>>>- Parameters:
e- exponent.- Returns:
- this * xe, where * denotes solvable multiplication.
-
multiply
RecSolvablePolynomial left and right multiplication. Product with exponent vector.- Overrides:
multiplyin classGenSolvablePolynomial<GenPolynomial<C extends RingElem<C>>>- Parameters:
e- exponent.f- exponent.- Returns:
- xe * this * xf, where * denotes solvable multiplication.
-
multiply
RecSolvablePolynomial multiplication. Product with ring element and exponent vector.- Overrides:
multiplyin 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:
multiplyin 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
RecSolvablePolynomial multiplication. Left product with ring element and exponent vector.- Overrides:
multiplyLeftin classGenSolvablePolynomial<GenPolynomial<C extends RingElem<C>>>- Parameters:
b- coefficient polynomial.e- exponent.- Returns:
- b xe * this, where * denotes solvable multiplication.
-
multiplyLeft
RecSolvablePolynomial multiplication. Left product with exponent vector.- Overrides:
multiplyLeftin classGenSolvablePolynomial<GenPolynomial<C extends RingElem<C>>>- Parameters:
e- exponent.- Returns:
- xe * this, where * denotes solvable multiplication.
-
multiplyLeft
RecSolvablePolynomial multiplication. Left product with coefficient ring element.- Overrides:
multiplyLeftin classGenSolvablePolynomial<GenPolynomial<C extends RingElem<C>>>- Parameters:
b- coefficient polynomial.- Returns:
- b*this, where * is coefficient multiplication.
-
multiplyLeft
RecSolvablePolynomial multiplication. Left product with 'monomial'.- Overrides:
multiplyLeftin classGenSolvablePolynomial<GenPolynomial<C extends RingElem<C>>>- Parameters:
m- 'monomial'.- Returns:
- m * this, where * denotes solvable multiplication.
-
multiply
RecSolvablePolynomial multiplication. Product with 'monomial'.- Overrides:
multiplyin classGenSolvablePolynomial<GenPolynomial<C extends RingElem<C>>>- Parameters:
m- 'monomial'.- Returns:
- this * m, where * denotes solvable multiplication.
-
shift
RecSolvablePolynomial multiplication. Commutative product with exponent vector.- Parameters:
f- exponent vector.- Returns:
- B*f, where * is commutative multiplication.
-
multiplyRightComm
RecSolvablePolynomial multiplication. Commutative product with coefficient.- Parameters:
b- coefficient.- Returns:
- B*b, where * is commutative multiplication with respect to main variables.
-
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:
rightRecursivePolynomialin 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
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:
evalAsRightRecursivePolynomialin 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
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:
isRightRecursivePolynomialin 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)
-