Package edu.jas.application
Class ResidueSolvablePolynomial<C extends GcdRingElem<C>>
- java.lang.Object
-
- edu.jas.poly.GenPolynomial<C>
-
- edu.jas.poly.GenSolvablePolynomial<SolvableResidue<C>>
-
- edu.jas.application.ResidueSolvablePolynomial<C>
-
- Type Parameters:
C
- coefficient type
- All Implemented Interfaces:
AbelianGroupElem<GenPolynomial<SolvableResidue<C>>>
,Element<GenPolynomial<SolvableResidue<C>>>
,MonoidElem<GenPolynomial<SolvableResidue<C>>>
,RingElem<GenPolynomial<SolvableResidue<C>>>
,java.io.Serializable
,java.lang.Comparable<GenPolynomial<SolvableResidue<C>>>
,java.lang.Iterable<Monomial<SolvableResidue<C>>>
public class ResidueSolvablePolynomial<C extends GcdRingElem<C>> extends GenSolvablePolynomial<SolvableResidue<C>>
ResidueSolvablePolynomial generic solvable polynomials with solvable residue coefficients implementing RingElem. n-variate ordered solvable polynomials over solvable 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. Will eventually be deprecated use QLRSolvablePolynomial.- Author:
- Heinz Kredel
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description ResidueSolvablePolynomialRing<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 ResidueSolvablePolynomial(ResidueSolvablePolynomialRing<C> r)
Constructor for zero ResidueSolvablePolynomial.ResidueSolvablePolynomial(ResidueSolvablePolynomialRing<C> r, SolvableResidue<C> c)
Constructor for ResidueSolvablePolynomial.ResidueSolvablePolynomial(ResidueSolvablePolynomialRing<C> r, SolvableResidue<C> c, ExpVector e)
Constructor for ResidueSolvablePolynomial.ResidueSolvablePolynomial(ResidueSolvablePolynomialRing<C> r, ExpVector e)
Constructor for ResidueSolvablePolynomial.ResidueSolvablePolynomial(ResidueSolvablePolynomialRing<C> r, GenSolvablePolynomial<SolvableResidue<C>> S)
Constructor for ResidueSolvablePolynomial.protected
ResidueSolvablePolynomial(ResidueSolvablePolynomialRing<C> r, java.util.SortedMap<ExpVector,SolvableResidue<C>> v)
Constructor for ResidueSolvablePolynomial.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ResidueSolvablePolynomial<C>
copy()
Clone this ResidueSolvablePolynomial.boolean
equals(java.lang.Object B)
Comparison with any other object.ResidueSolvablePolynomialRing<C>
factory()
Get the corresponding element factory.int
hashCode()
Hash code for this polynomial.ResidueSolvablePolynomial<C>
multiply(ResidueSolvablePolynomial<C> Bp)
ResidueSolvablePolynomial multiplication.ResidueSolvablePolynomial<C>
multiply(ResidueSolvablePolynomial<C> S, ResidueSolvablePolynomial<C> T)
ResidueSolvablePolynomial left and right multiplication.ResidueSolvablePolynomial<C>
multiply(SolvableResidue<C> b)
ResidueSolvablePolynomial multiplication.ResidueSolvablePolynomial<C>
multiply(SolvableResidue<C> b, SolvableResidue<C> c)
ResidueSolvablePolynomial left and right multiplication.ResidueSolvablePolynomial<C>
multiply(SolvableResidue<C> b, ExpVector e)
ResidueSolvablePolynomial multiplication.ResidueSolvablePolynomial<C>
multiply(SolvableResidue<C> b, ExpVector e, SolvableResidue<C> c, ExpVector f)
ResidueSolvablePolynomial left and right multiplication.ResidueSolvablePolynomial<C>
multiply(ExpVector e)
ResidueSolvablePolynomial multiplication.ResidueSolvablePolynomial<C>
multiply(ExpVector e, ExpVector f)
ResidueSolvablePolynomial left and right multiplication.ResidueSolvablePolynomial<C>
multiply(java.util.Map.Entry<ExpVector,SolvableResidue<C>> m)
ResidueSolvablePolynomial multiplication.ResidueSolvablePolynomial<C>
multiplyLeft(SolvableResidue<C> b)
ResidueSolvablePolynomial multiplication.ResidueSolvablePolynomial<C>
multiplyLeft(SolvableResidue<C> b, ExpVector e)
ResidueSolvablePolynomial multiplication.ResidueSolvablePolynomial<C>
multiplyLeft(ExpVector e)
ResidueSolvablePolynomial multiplication.ResidueSolvablePolynomial<C>
multiplyLeft(java.util.Map.Entry<ExpVector,SolvableResidue<C>> m)
ResidueSolvablePolynomial multiplication.protected ResidueSolvablePolynomial<C>
shift(ExpVector f)
ResidueSolvablePolynomial multiplication with exponent vector.-
Methods inherited from class edu.jas.poly.GenSolvablePolynomial
divide, evalAsRightRecursivePolynomial, isRightRecursivePolynomial, leftMonic, monic, multiply, multiply, quotientRemainder, remainder, rightDivide, rightMonic, rightQuotientRemainder, rightRecursivePolynomial, 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 ResidueSolvablePolynomialRing<C extends GcdRingElem<C>> ring
The factory for the recursive solvable polynomial ring. Hides super.ring.
-
-
Constructor Detail
-
ResidueSolvablePolynomial
public ResidueSolvablePolynomial(ResidueSolvablePolynomialRing<C> r)
Constructor for zero ResidueSolvablePolynomial.- Parameters:
r
- solvable polynomial ring factory.
-
ResidueSolvablePolynomial
public ResidueSolvablePolynomial(ResidueSolvablePolynomialRing<C> r, ExpVector e)
Constructor for ResidueSolvablePolynomial.- Parameters:
r
- solvable polynomial ring factory.e
- exponent.
-
ResidueSolvablePolynomial
public ResidueSolvablePolynomial(ResidueSolvablePolynomialRing<C> r, SolvableResidue<C> c, ExpVector e)
Constructor for ResidueSolvablePolynomial.- Parameters:
r
- solvable polynomial ring factory.c
- coefficient polynomial.e
- exponent.
-
ResidueSolvablePolynomial
public ResidueSolvablePolynomial(ResidueSolvablePolynomialRing<C> r, SolvableResidue<C> c)
Constructor for ResidueSolvablePolynomial.- Parameters:
r
- solvable polynomial ring factory.c
- coefficient polynomial.
-
ResidueSolvablePolynomial
public ResidueSolvablePolynomial(ResidueSolvablePolynomialRing<C> r, GenSolvablePolynomial<SolvableResidue<C>> S)
Constructor for ResidueSolvablePolynomial.- Parameters:
r
- solvable polynomial ring factory.S
- solvable polynomial.
-
ResidueSolvablePolynomial
protected ResidueSolvablePolynomial(ResidueSolvablePolynomialRing<C> r, java.util.SortedMap<ExpVector,SolvableResidue<C>> v)
Constructor for ResidueSolvablePolynomial.- Parameters:
r
- solvable polynomial ring factory.v
- the SortedMap of some other (solvable) polynomial.
-
-
Method Detail
-
factory
public ResidueSolvablePolynomialRing<C> factory()
Get the corresponding element factory.- Specified by:
factory
in interfaceElement<C extends GcdRingElem<C>>
- Overrides:
factory
in classGenSolvablePolynomial<SolvableResidue<C extends GcdRingElem<C>>>
- Returns:
- factory for this Element.
- See Also:
Element.factory()
-
copy
public ResidueSolvablePolynomial<C> copy()
Clone this ResidueSolvablePolynomial.- Specified by:
copy
in interfaceElement<C extends GcdRingElem<C>>
- Overrides:
copy
in classGenSolvablePolynomial<SolvableResidue<C extends GcdRingElem<C>>>
- Returns:
- copy of this.
- See Also:
Object.clone()
-
equals
public boolean equals(java.lang.Object B)
Comparison with any other object.- Specified by:
equals
in interfaceElement<C extends GcdRingElem<C>>
- Overrides:
equals
in classGenSolvablePolynomial<SolvableResidue<C extends GcdRingElem<C>>>
- 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:
hashCode
in interfaceElement<C extends GcdRingElem<C>>
- Overrides:
hashCode
in classGenSolvablePolynomial<SolvableResidue<C extends GcdRingElem<C>>>
- Returns:
- the hashCode.
- See Also:
Object.hashCode()
-
multiply
public ResidueSolvablePolynomial<C> multiply(ResidueSolvablePolynomial<C> Bp)
ResidueSolvablePolynomial multiplication.- Parameters:
Bp
- ResidueSolvablePolynomial.- Returns:
- this*Bp, where * denotes solvable multiplication.
-
multiply
public ResidueSolvablePolynomial<C> multiply(ResidueSolvablePolynomial<C> S, ResidueSolvablePolynomial<C> T)
ResidueSolvablePolynomial left and right multiplication. Product with two polynomials.- Parameters:
S
- ResidueSolvablePolynomial.T
- ResidueSolvablePolynomial.- Returns:
- S*this*T.
-
multiply
public ResidueSolvablePolynomial<C> multiply(SolvableResidue<C> b)
ResidueSolvablePolynomial multiplication. Product with coefficient ring element.- Overrides:
multiply
in classGenSolvablePolynomial<SolvableResidue<C extends GcdRingElem<C>>>
- Parameters:
b
- coefficient polynomial.- Returns:
- this*b, where * is coefficient multiplication.
-
multiply
public ResidueSolvablePolynomial<C> multiply(SolvableResidue<C> b, SolvableResidue<C> c)
ResidueSolvablePolynomial left and right multiplication. Product with coefficient ring element.- Overrides:
multiply
in classGenSolvablePolynomial<SolvableResidue<C extends GcdRingElem<C>>>
- Parameters:
b
- coefficient polynomial.c
- coefficient polynomial.- Returns:
- b*this*c, where * is coefficient multiplication.
-
multiply
public ResidueSolvablePolynomial<C> multiply(ExpVector e)
ResidueSolvablePolynomial multiplication. Product with exponent vector.- Overrides:
multiply
in classGenSolvablePolynomial<SolvableResidue<C extends GcdRingElem<C>>>
- Parameters:
e
- exponent.- Returns:
- this * xe, where * denotes solvable multiplication.
-
multiply
public ResidueSolvablePolynomial<C> multiply(ExpVector e, ExpVector f)
ResidueSolvablePolynomial left and right multiplication. Product with exponent vector.- Overrides:
multiply
in classGenSolvablePolynomial<SolvableResidue<C extends GcdRingElem<C>>>
- Parameters:
e
- exponent.f
- exponent.- Returns:
- xe * this * xf, where * denotes solvable multiplication.
-
multiply
public ResidueSolvablePolynomial<C> multiply(SolvableResidue<C> b, ExpVector e)
ResidueSolvablePolynomial multiplication. Product with ring element and exponent vector.- Overrides:
multiply
in classGenSolvablePolynomial<SolvableResidue<C extends GcdRingElem<C>>>
- Parameters:
b
- coefficient polynomial.e
- exponent.- Returns:
- this * b xe, where * denotes solvable multiplication.
-
multiply
public ResidueSolvablePolynomial<C> multiply(SolvableResidue<C> b, ExpVector e, SolvableResidue<C> c, ExpVector f)
ResidueSolvablePolynomial left and right multiplication. Product with ring element and exponent vector.- Overrides:
multiply
in classGenSolvablePolynomial<SolvableResidue<C extends GcdRingElem<C>>>
- Parameters:
b
- coefficient polynomial.e
- exponent.c
- coefficient polynomial.f
- exponent.- Returns:
- b xe * this * c xf, where * denotes solvable multiplication.
-
multiplyLeft
public ResidueSolvablePolynomial<C> multiplyLeft(SolvableResidue<C> b, ExpVector e)
ResidueSolvablePolynomial multiplication. Left product with ring element and exponent vector.- Overrides:
multiplyLeft
in classGenSolvablePolynomial<SolvableResidue<C extends GcdRingElem<C>>>
- Parameters:
b
- coefficient polynomial.e
- exponent.- Returns:
- b xe * this, where * denotes solvable multiplication.
-
multiplyLeft
public ResidueSolvablePolynomial<C> multiplyLeft(ExpVector e)
ResidueSolvablePolynomial multiplication. Left product with exponent vector.- Overrides:
multiplyLeft
in classGenSolvablePolynomial<SolvableResidue<C extends GcdRingElem<C>>>
- Parameters:
e
- exponent.- Returns:
- xe * this, where * denotes solvable multiplication.
-
multiplyLeft
public ResidueSolvablePolynomial<C> multiplyLeft(SolvableResidue<C> b)
ResidueSolvablePolynomial multiplication. Left product with coefficient ring element.- Overrides:
multiplyLeft
in classGenSolvablePolynomial<SolvableResidue<C extends GcdRingElem<C>>>
- Parameters:
b
- coefficient polynomial.- Returns:
- b*this, where * is coefficient multiplication.
-
multiplyLeft
public ResidueSolvablePolynomial<C> multiplyLeft(java.util.Map.Entry<ExpVector,SolvableResidue<C>> m)
ResidueSolvablePolynomial multiplication. Left product with 'monomial'.- Overrides:
multiplyLeft
in classGenSolvablePolynomial<SolvableResidue<C extends GcdRingElem<C>>>
- Parameters:
m
- 'monomial'.- Returns:
- m * this, where * denotes solvable multiplication.
-
multiply
public ResidueSolvablePolynomial<C> multiply(java.util.Map.Entry<ExpVector,SolvableResidue<C>> m)
ResidueSolvablePolynomial multiplication. Product with 'monomial'.- Overrides:
multiply
in classGenSolvablePolynomial<SolvableResidue<C extends GcdRingElem<C>>>
- Parameters:
m
- 'monomial'.- Returns:
- this * m, where * denotes solvable multiplication.
-
shift
protected ResidueSolvablePolynomial<C> shift(ExpVector f)
ResidueSolvablePolynomial multiplication with exponent vector.- Parameters:
f
- exponent vector.- Returns:
- B*f, where * is commutative multiplication.
-
-