Package edu.jas.poly
Class QLRSolvablePolynomial<C extends GcdRingElem<C> & QuotPair<GenPolynomial<D>>,D extends GcdRingElem<D>>
- java.lang.Object
-
- edu.jas.poly.GenPolynomial<C>
-
- edu.jas.poly.GenSolvablePolynomial<C>
-
- edu.jas.poly.QLRSolvablePolynomial<C,D>
-
- Type Parameters:
C- polynomial coefficient typeD- quotient coefficient type
- All Implemented Interfaces:
AbelianGroupElem<GenPolynomial<C>>,Element<GenPolynomial<C>>,MonoidElem<GenPolynomial<C>>,RingElem<GenPolynomial<C>>,java.io.Serializable,java.lang.Comparable<GenPolynomial<C>>,java.lang.Iterable<Monomial<C>>
public class QLRSolvablePolynomial<C extends GcdRingElem<C> & QuotPair<GenPolynomial<D>>,D extends GcdRingElem<D>> extends GenSolvablePolynomial<C>
QLRSolvablePolynomial generic recursive solvable polynomials implementing RingElem. n-variate ordered solvable polynomials over solvable quotient, local and local-residue 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 QLRSolvablePolynomialRing<C,D>ringThe factory for the recursive solvable polynomial ring.-
Fields inherited from class edu.jas.poly.GenPolynomial
blen, hash, val
-
-
Constructor Summary
Constructors Modifier Constructor Description QLRSolvablePolynomial(QLRSolvablePolynomialRing<C,D> r)Constructor for zero QLRSolvablePolynomial.QLRSolvablePolynomial(QLRSolvablePolynomialRing<C,D> r, C c)Constructor for QLRSolvablePolynomial.QLRSolvablePolynomial(QLRSolvablePolynomialRing<C,D> r, C c, ExpVector e)Constructor for QLRSolvablePolynomial.QLRSolvablePolynomial(QLRSolvablePolynomialRing<C,D> r, GenSolvablePolynomial<C> S)Constructor for QLRSolvablePolynomial.protectedQLRSolvablePolynomial(QLRSolvablePolynomialRing<C,D> r, java.util.SortedMap<ExpVector,C> v)Constructor for QLRSolvablePolynomial.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description QLRSolvablePolynomial<C,D>copy()Clone this QLRSolvablePolynomial.booleanequals(java.lang.Object B)Comparison with any other object.QLRSolvablePolynomialRing<C,D>factory()Get the corresponding element factory.inthashCode()Hash code for this polynomial.QLRSolvablePolynomial<C,D>multiply(C b)QLRSolvablePolynomial multiplication.QLRSolvablePolynomial<C,D>multiply(C b, C c)QLRSolvablePolynomial left and right multiplication.QLRSolvablePolynomial<C,D>multiply(C b, ExpVector e)QLRSolvablePolynomial multiplication.QLRSolvablePolynomial<C,D>multiply(C b, ExpVector e, C c, ExpVector f)QLRSolvablePolynomial left and right multiplication.QLRSolvablePolynomial<C,D>multiply(ExpVector e)QLRSolvablePolynomial multiplication.QLRSolvablePolynomial<C,D>multiply(ExpVector e, ExpVector f)QLRSolvablePolynomial left and right multiplication.QLRSolvablePolynomial<C,D>multiply(QLRSolvablePolynomial<C,D> Bp)QLRSolvablePolynomial multiplication.QLRSolvablePolynomial<C,D>multiply(QLRSolvablePolynomial<C,D> S, QLRSolvablePolynomial<C,D> T)QLRSolvablePolynomial left and right multiplication.QLRSolvablePolynomial<C,D>multiply(java.util.Map.Entry<ExpVector,C> m)QLRSolvablePolynomial multiplication.QLRSolvablePolynomial<C,D>multiplyLeft(C b)QLRSolvablePolynomial multiplication.QLRSolvablePolynomial<C,D>multiplyLeft(C b, ExpVector e)QLRSolvablePolynomial multiplication.QLRSolvablePolynomial<C,D>multiplyLeft(ExpVector e)QLRSolvablePolynomial multiplication.QLRSolvablePolynomial<C,D>multiplyLeft(java.util.Map.Entry<ExpVector,C> m)QLRSolvablePolynomial multiplication.protected QLRSolvablePolynomial<C,D>shift(ExpVector f)QLRSolvablePolynomial multiplication with exponent vector.-
Methods inherited from class edu.jas.poly.GenSolvablePolynomial
divide, evalAsRightRecursivePolynomial, isRightRecursivePolynomial, monic, multiply, multiply, quotientRemainder, remainder, rightDivide, rightQuotientRemainder, rightRecursivePolynomial, rightRemainder, scaleSubtractMultiple, scaleSubtractMultiple, scaleSubtractMultiple, subtractMultiple, subtractMultiple
-
Methods inherited from class edu.jas.poly.GenPolynomial
abs, bitLength, coefficient, coefficientIterator, 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, multiply, negate, negateAlt, numberOfVariables, quotientRemainder, reductum, remainder, reverse, rightDivideCoeff, 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 QLRSolvablePolynomialRing<C extends GcdRingElem<C> & QuotPair<GenPolynomial<D>>,D extends GcdRingElem<D>> ring
The factory for the recursive solvable polynomial ring. Hides super.ring.
-
-
Constructor Detail
-
QLRSolvablePolynomial
public QLRSolvablePolynomial(QLRSolvablePolynomialRing<C,D> r)
Constructor for zero QLRSolvablePolynomial.- Parameters:
r- solvable polynomial ring factory.
-
QLRSolvablePolynomial
public QLRSolvablePolynomial(QLRSolvablePolynomialRing<C,D> r, C c, ExpVector e)
Constructor for QLRSolvablePolynomial.- Parameters:
r- solvable polynomial ring factory.c- coefficient polynomial.e- exponent.
-
QLRSolvablePolynomial
public QLRSolvablePolynomial(QLRSolvablePolynomialRing<C,D> r, C c)
Constructor for QLRSolvablePolynomial.- Parameters:
r- solvable polynomial ring factory.c- coefficient polynomial.
-
QLRSolvablePolynomial
public QLRSolvablePolynomial(QLRSolvablePolynomialRing<C,D> r, GenSolvablePolynomial<C> S)
Constructor for QLRSolvablePolynomial.- Parameters:
r- solvable polynomial ring factory.S- solvable polynomial.
-
QLRSolvablePolynomial
protected QLRSolvablePolynomial(QLRSolvablePolynomialRing<C,D> r, java.util.SortedMap<ExpVector,C> v)
Constructor for QLRSolvablePolynomial.- Parameters:
r- solvable polynomial ring factory.v- the SortedMap of some other (solvable) polynomial.
-
-
Method Detail
-
factory
public QLRSolvablePolynomialRing<C,D> factory()
Get the corresponding element factory.- Specified by:
factoryin interfaceElement<C extends GcdRingElem<C> & QuotPair<GenPolynomial<D>>>- Overrides:
factoryin classGenSolvablePolynomial<C extends GcdRingElem<C> & QuotPair<GenPolynomial<D>>>- Returns:
- factory for this Element.
- See Also:
Element.factory()
-
copy
public QLRSolvablePolynomial<C,D> copy()
Clone this QLRSolvablePolynomial.- Specified by:
copyin interfaceElement<C extends GcdRingElem<C> & QuotPair<GenPolynomial<D>>>- Overrides:
copyin classGenSolvablePolynomial<C extends GcdRingElem<C> & QuotPair<GenPolynomial<D>>>- Returns:
- copy of this.
- See Also:
Object.clone()
-
equals
public boolean equals(java.lang.Object B)
Comparison with any other object.- Specified by:
equalsin interfaceElement<C extends GcdRingElem<C> & QuotPair<GenPolynomial<D>>>- Overrides:
equalsin classGenSolvablePolynomial<C extends GcdRingElem<C> & QuotPair<GenPolynomial<D>>>- Returns:
- true if this is equal to b, else false.
- See Also:
Object.equals(java.lang.Object)
-
hashCode
public int hashCode()
Hash code for this polynomial.- Specified by:
hashCodein interfaceElement<C extends GcdRingElem<C> & QuotPair<GenPolynomial<D>>>- Overrides:
hashCodein classGenSolvablePolynomial<C extends GcdRingElem<C> & QuotPair<GenPolynomial<D>>>- Returns:
- the hashCode.
- See Also:
Object.hashCode()
-
multiply
public QLRSolvablePolynomial<C,D> multiply(QLRSolvablePolynomial<C,D> Bp)
QLRSolvablePolynomial multiplication.- Parameters:
Bp- QLRSolvablePolynomial.- Returns:
- this*Bp, where * denotes solvable multiplication.
-
multiply
public QLRSolvablePolynomial<C,D> multiply(QLRSolvablePolynomial<C,D> S, QLRSolvablePolynomial<C,D> T)
QLRSolvablePolynomial left and right multiplication. Product with two polynomials.- Parameters:
S- QLRSolvablePolynomial.T- QLRSolvablePolynomial.- Returns:
- S*this*T.
-
multiply
public QLRSolvablePolynomial<C,D> multiply(C b)
QLRSolvablePolynomial multiplication. Product with coefficient ring element.- Overrides:
multiplyin classGenSolvablePolynomial<C extends GcdRingElem<C> & QuotPair<GenPolynomial<D>>>- Parameters:
b- solvable coefficient.- Returns:
- this*b, where * is coefficient multiplication.
-
multiply
public QLRSolvablePolynomial<C,D> multiply(C b, C c)
QLRSolvablePolynomial left and right multiplication. Product with coefficient ring element.- Overrides:
multiplyin classGenSolvablePolynomial<C extends GcdRingElem<C> & QuotPair<GenPolynomial<D>>>- Parameters:
b- coefficient polynomial.c- coefficient polynomial.- Returns:
- b*this*c, where * is coefficient multiplication.
-
multiply
public QLRSolvablePolynomial<C,D> multiply(ExpVector e)
QLRSolvablePolynomial multiplication. Product with exponent vector.- Overrides:
multiplyin classGenSolvablePolynomial<C extends GcdRingElem<C> & QuotPair<GenPolynomial<D>>>- Parameters:
e- exponent.- Returns:
- this * xe, where * denotes solvable multiplication.
-
multiply
public QLRSolvablePolynomial<C,D> multiply(ExpVector e, ExpVector f)
QLRSolvablePolynomial left and right multiplication. Product with exponent vector.- Overrides:
multiplyin classGenSolvablePolynomial<C extends GcdRingElem<C> & QuotPair<GenPolynomial<D>>>- Parameters:
e- exponent.f- exponent.- Returns:
- xe * this * xf, where * denotes solvable multiplication.
-
multiply
public QLRSolvablePolynomial<C,D> multiply(C b, ExpVector e)
QLRSolvablePolynomial multiplication. Product with ring element and exponent vector.- Overrides:
multiplyin classGenSolvablePolynomial<C extends GcdRingElem<C> & QuotPair<GenPolynomial<D>>>- Parameters:
b- coefficient polynomial.e- exponent.- Returns:
- this * b xe, where * denotes solvable multiplication.
-
multiply
public QLRSolvablePolynomial<C,D> multiply(C b, ExpVector e, C c, ExpVector f)
QLRSolvablePolynomial left and right multiplication. Product with ring element and exponent vector.- Overrides:
multiplyin classGenSolvablePolynomial<C extends GcdRingElem<C> & QuotPair<GenPolynomial<D>>>- Parameters:
b- coefficient polynomial.e- exponent.c- coefficient polynomial.f- exponent.- Returns:
- b xe * this * c xf, where * denotes solvable multiplication.
-
multiplyLeft
public QLRSolvablePolynomial<C,D> multiplyLeft(C b, ExpVector e)
QLRSolvablePolynomial multiplication. Left product with ring element and exponent vector.- Overrides:
multiplyLeftin classGenSolvablePolynomial<C extends GcdRingElem<C> & QuotPair<GenPolynomial<D>>>- Parameters:
b- coefficient polynomial.e- exponent.- Returns:
- b xe * this, where * denotes solvable multiplication.
-
multiplyLeft
public QLRSolvablePolynomial<C,D> multiplyLeft(ExpVector e)
QLRSolvablePolynomial multiplication. Left product with exponent vector.- Overrides:
multiplyLeftin classGenSolvablePolynomial<C extends GcdRingElem<C> & QuotPair<GenPolynomial<D>>>- Parameters:
e- exponent.- Returns:
- xe * this, where * denotes solvable multiplication.
-
multiplyLeft
public QLRSolvablePolynomial<C,D> multiplyLeft(C b)
QLRSolvablePolynomial multiplication. Left product with coefficient ring element.- Overrides:
multiplyLeftin classGenSolvablePolynomial<C extends GcdRingElem<C> & QuotPair<GenPolynomial<D>>>- Parameters:
b- coefficient polynomial.- Returns:
- b*this, where * is coefficient multiplication.
-
multiplyLeft
public QLRSolvablePolynomial<C,D> multiplyLeft(java.util.Map.Entry<ExpVector,C> m)
QLRSolvablePolynomial multiplication. Left product with 'monomial'.- Overrides:
multiplyLeftin classGenSolvablePolynomial<C extends GcdRingElem<C> & QuotPair<GenPolynomial<D>>>- Parameters:
m- 'monomial'.- Returns:
- m * this, where * denotes solvable multiplication.
-
multiply
public QLRSolvablePolynomial<C,D> multiply(java.util.Map.Entry<ExpVector,C> m)
QLRSolvablePolynomial multiplication. Product with 'monomial'.- Overrides:
multiplyin classGenSolvablePolynomial<C extends GcdRingElem<C> & QuotPair<GenPolynomial<D>>>- Parameters:
m- 'monomial'.- Returns:
- this * m, where * denotes solvable multiplication.
-
shift
protected QLRSolvablePolynomial<C,D> shift(ExpVector f)
QLRSolvablePolynomial multiplication with exponent vector.- Parameters:
f- exponent vector.- Returns:
- B*f, where * is commutative multiplication.
-
-