public class QuotientRing<Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>> extends ARing<Poly> implements IPolynomialRing<Poly>
Modifier and Type | Field and Description |
---|---|
MultivariateRing<Poly> |
baseRing
the base ring
|
Ideal<Term,Poly> |
ideal
the ideal
|
Constructor and Description |
---|
QuotientRing(MultivariateRing<Poly> baseRing,
Ideal<Term,Poly> ideal) |
Modifier and Type | Method and Description |
---|---|
Poly |
add(Poly a,
Poly b)
Add two elements
|
BigInteger |
cardinality()
Returns the number of elements in this ring (cardinality) or null if ring is infinite
|
BigInteger |
characteristic()
Returns characteristic of this ring
|
int |
compare(Poly o1,
Poly o2) |
Poly |
copy(Poly element)
Makes a deep copy of the specified element (for immutable instances the same reference returned).
|
Poly[] |
divideAndRemainder(Poly dividend,
Poly divider)
Returns quotient and remainder of
dividend / divider |
Poly |
factory()
Factory polynomial
|
Poly |
getOne()
Returns unit element of this ring (one)
|
Poly |
getZero()
Returns zero element of this ring
|
boolean |
isEuclideanRing()
Returns whether this ring is a Euclidean ring
|
boolean |
isField()
Returns whether this ring is a field
|
boolean |
isOne(Poly element)
Tests whether specified element is one (exactly)
|
boolean |
isUnit(Poly element)
Tests whether specified element is a ring unit
|
boolean |
isZero(Poly element)
Tests whether specified element is zero
|
Iterator<Poly> |
iterator()
Returns iterator over ring elements (for finite rings, otherwise throws exception)
|
Poly |
mod(Poly el) |
Poly |
multiply(Poly a,
Poly b)
Multiplies two elements
|
Poly |
negate(Poly element)
Negates the given element
|
Poly |
normalForm(Poly el) |
int |
nVariables()
Number of polynomial variables
|
Poly |
parse(String string)
Parse string into ring element
|
Poly |
randomElement(org.apache.commons.math3.random.RandomGenerator rnd)
Returns a random element from this ring
|
Poly |
randomElementTree(org.apache.commons.math3.random.RandomGenerator rnd)
If this ring has a complicated nested structure, this method guaranties that the resulting random element will
reflect ring complicated structure, i.e.
|
Poly |
reciprocal(Poly element)
Gives the inverse element
element ^ (-1) |
Poly |
subtract(Poly a,
Poly b)
Subtracts
b from a |
String |
toString() |
String |
toString(IStringifier<Poly> stringifier)
convert this to string with the use of stringifier
|
Poly |
valueOf(long val)
Returns ring element associated with specified
long |
Poly |
valueOf(Poly val)
Converts a value from other ring to this ring.
|
Poly |
valueOfBigInteger(BigInteger val)
Returns ring element associated with specified integer
|
Poly |
variable(int variable)
Creates poly representing a single specified variable
|
isPerfectPower, perfectPowerBase, perfectPowerExponent
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
mkCoder, parse, signum
abs, add, addMutable, createArray, createArray, createArray, createArray, createArray2d, createArray2d, createZeroesArray, createZeroesArray2d, decrement, divideExact, divideExactMutable, divideOrNull, extendedGCD, factor, factorial, factorSquareFree, fillZeros, firstBezoutCoefficient, gcd, gcd, gcd, getNegativeOne, increment, isFinite, isFiniteField, isMinusOne, isPerfectPower, isUnitOrZero, lcm, lcm, lcm, max, min, multiply, multiply, multiply, multiplyMutable, negateMutable, perfectPowerBase, perfectPowerExponent, pow, pow, pow, quotient, randomElement, randomElementTree, randomNonZeroElement, remainder, setToValueOf, subtractMutable, valueOf
comparing, comparing, comparingDouble, comparingInt, comparingLong, equals, naturalOrder, nullsFirst, nullsLast, reversed, reverseOrder, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLong
forEach, spliterator
public final MultivariateRing<Poly extends AMultivariatePolynomial<Term,Poly>> baseRing
public QuotientRing(MultivariateRing<Poly> baseRing, Ideal<Term,Poly> ideal)
public int nVariables()
IPolynomialRing
nVariables
in interface IPolynomialRing<Poly extends AMultivariatePolynomial<Term,Poly>>
public Poly factory()
IPolynomialRing
factory
in interface IPolynomialRing<Poly extends AMultivariatePolynomial<Term,Poly>>
public Poly variable(int variable)
IPolynomialRing
variable
in interface IPolynomialRing<Poly extends AMultivariatePolynomial<Term,Poly>>
public boolean isField()
Ring
public boolean isEuclideanRing()
Ring
isEuclideanRing
in interface Ring<Poly extends AMultivariatePolynomial<Term,Poly>>
public BigInteger cardinality()
Ring
cardinality
in interface Ring<Poly extends AMultivariatePolynomial<Term,Poly>>
public BigInteger characteristic()
Ring
characteristic
in interface Ring<Poly extends AMultivariatePolynomial<Term,Poly>>
public Poly subtract(Poly a, Poly b)
Ring
b
from a
public Poly multiply(Poly a, Poly b)
Ring
public Poly negate(Poly element)
Ring
public Poly copy(Poly element)
Ring
public Poly[] divideAndRemainder(Poly dividend, Poly divider)
Ring
dividend / divider
divideAndRemainder
in interface Ring<Poly extends AMultivariatePolynomial<Term,Poly>>
dividend
- the dividenddivider
- the divider{quotient, remainder}
public Poly reciprocal(Poly element)
Ring
element ^ (-1)
reciprocal
in interface Ring<Poly extends AMultivariatePolynomial<Term,Poly>>
element
- the elementelement ^ (-1)
public Poly getZero()
Ring
public Poly getOne()
Ring
public boolean isZero(Poly element)
Ring
public boolean isOne(Poly element)
Ring
isOne
in interface Ring<Poly extends AMultivariatePolynomial<Term,Poly>>
element
- the ring elementRing.isUnit(Object)
public boolean isUnit(Poly element)
Ring
isUnit
in interface Ring<Poly extends AMultivariatePolynomial<Term,Poly>>
element
- the ring elementRing.isOne(Object)
public Poly valueOf(long val)
Ring
long
public Poly valueOfBigInteger(BigInteger val)
Ring
valueOfBigInteger
in interface Ring<Poly extends AMultivariatePolynomial<Term,Poly>>
val
- integerpublic Poly valueOf(Poly val)
Ring
val
== valueOf(val)
is possible).public Iterator<Poly> iterator()
Ring
public int compare(Poly o1, Poly o2)
compare
in interface Comparator<Poly extends AMultivariatePolynomial<Term,Poly>>
public Poly parse(String string)
Ring
public Poly randomElement(org.apache.commons.math3.random.RandomGenerator rnd)
Ring
randomElement
in interface Ring<Poly extends AMultivariatePolynomial<Term,Poly>>
rnd
- the source of randomnesspublic Poly randomElementTree(org.apache.commons.math3.random.RandomGenerator rnd)
Ring
randomElementTree
in interface Ring<Poly extends AMultivariatePolynomial<Term,Poly>>
public String toString(IStringifier<Poly> stringifier)
Stringifiable
toString
in interface Stringifiable<Poly extends AMultivariatePolynomial<Term,Poly>>
Copyright © 2018. All rights reserved.