Class MultivariatePolynomialRing<E>
java.lang.Object
dk.jonaslindstrom.ruffini.polynomials.structures.MultivariatePolynomialRingOverRing<E>
dk.jonaslindstrom.ruffini.polynomials.structures.MultivariatePolynomialRing<E>
- All Implemented Interfaces:
AdditiveGroup<MultivariatePolynomial<E>>
,CommutativeMonoid<MultivariatePolynomial<E>>
,EuclideanDomain<MultivariatePolynomial<E>>
,Monoid<MultivariatePolynomial<E>>
,Ring<MultivariatePolynomial<E>>
,Semigroup<MultivariatePolynomial<E>>
,SemiRing<MultivariatePolynomial<E>>
,Set<MultivariatePolynomial<E>>
public class MultivariatePolynomialRing<E>
extends MultivariatePolynomialRingOverRing<E>
implements EuclideanDomain<MultivariatePolynomial<E>>
This class implements the ring of polynomials K[x] over a field K.
-
Field Summary
Fields inherited from class dk.jonaslindstrom.ruffini.polynomials.structures.MultivariatePolynomialRingOverRing
variables
-
Constructor Summary
ConstructorsConstructorDescriptionMultivariatePolynomialRing
(Field<E> field, int variables) MultivariatePolynomialRing
(Field<E> field, int variables, Comparator<Monomial> ordering) -
Method Summary
Modifier and TypeMethodDescriptionReturn the result of a+b.Returns a pair (q, r) such that a = qb + r and 0 ≤ f(r) < f(b) where f is the Euclidean function (seeEuclideanDomain.norm(E)
for this domain.boolean
Returnstrue
if and only if a = b as elements of this set.getField()
identity()
Return the identity element of this monoid.Return the result of the product ab in this group.Return -a.The euclidean function is a multiplicative map that maps elements of the domain to the integers and is used in the division ofEuclideanDomain.divide(E, E)
.toString()
Returns a human-readable string representation of an element in this set.zero()
Return the zero element.Methods inherited from class dk.jonaslindstrom.ruffini.polynomials.structures.MultivariatePolynomialRingOverRing
getRing
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface dk.jonaslindstrom.ruffini.common.abstractions.AdditiveGroup
doubling, isZero, scale, scale, subtract, sum
Methods inherited from interface dk.jonaslindstrom.ruffini.common.abstractions.CommutativeMonoid
add, add
Methods inherited from interface dk.jonaslindstrom.ruffini.common.abstractions.EuclideanDomain
abs, divide, divideExact, divideExact, divides, mod, mod
Methods inherited from interface dk.jonaslindstrom.ruffini.common.abstractions.Monoid
isIdentity, power
-
Constructor Details
-
MultivariatePolynomialRing
-
MultivariatePolynomialRing
-
-
Method Details
-
getField
-
toString
- Overrides:
toString
in classMultivariatePolynomialRingOverRing<E>
-
identity
Description copied from interface:Monoid
Return the identity element of this monoid. -
multiply
Description copied from interface:Semigroup
Return the result of the product ab in this group. -
toString
Description copied from interface:Set
Returns a human-readable string representation of an element in this set. -
equals
Description copied from interface:Set
Returnstrue
if and only if a = b as elements of this set. -
add
Description copied from interface:CommutativeMonoid
Return the result of a+b.- Specified by:
add
in interfaceCommutativeMonoid<E>
- Overrides:
add
in classMultivariatePolynomialRingOverRing<E>
-
negate
Description copied from interface:AdditiveGroup
Return -a.- Specified by:
negate
in interfaceAdditiveGroup<E>
- Overrides:
negate
in classMultivariatePolynomialRingOverRing<E>
-
zero
Description copied from interface:CommutativeMonoid
Return the zero element.- Specified by:
zero
in interfaceCommutativeMonoid<E>
- Overrides:
zero
in classMultivariatePolynomialRingOverRing<E>
-
divide
public Pair<MultivariatePolynomial<E>,MultivariatePolynomial<E>> divide(MultivariatePolynomial<E> a, MultivariatePolynomial<E> b) Description copied from interface:EuclideanDomain
Returns a pair (q, r) such that a = qb + r and 0 ≤ f(r) < f(b) where f is the Euclidean function (seeEuclideanDomain.norm(E)
for this domain.- Specified by:
divide
in interfaceEuclideanDomain<E>
-
norm
Description copied from interface:EuclideanDomain
The euclidean function is a multiplicative map that maps elements of the domain to the integers and is used in the division ofEuclideanDomain.divide(E, E)
.- Specified by:
norm
in interfaceEuclideanDomain<E>
-