Class QuotientRing<C extends GcdRingElem<C>>
java.lang.Object
edu.jas.ufd.QuotientRing<C>
- All Implemented Interfaces:
AbelianGroupFactory<Quotient<C>>, ElemFactory<Quotient<C>>, MonoidFactory<Quotient<C>>, QuotPairFactory<GenPolynomial<C>, Quotient<C>>, RingFactory<Quotient<C>>, Serializable
public class QuotientRing<C extends GcdRingElem<C>>
extends Object
implements RingFactory<Quotient<C>>, QuotPairFactory<GenPolynomial<C>, Quotient<C>>
Quotient ring factory based on GenPolynomial with RingElem interface. Objects
of this class are immutable.
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enumQuotient polynomial normalization, simplification. -
Field Summary
FieldsModifier and TypeFieldDescriptionfinal GreatestCommonDivisor<C> GCD engine of the factory.private static final org.apache.logging.log4j.Loggerstatic final QuotientRing.QuoNormDefault quotient polynomial normalization, simplification.final GenPolynomialRing<C> Polynomial ring of the factory.final booleanUse GCD of package edu.jas.ufd. -
Constructor Summary
ConstructorsConstructorDescriptionThe constructor creates a QuotientRing object from a GenPolynomialRing.QuotientRing(GenPolynomialRing<C> r, boolean ufdGCD) The constructor creates a QuotientRing object from a GenPolynomialRing. -
Method Summary
Modifier and TypeMethodDescriptionCharacteristic of this ring.Copy Quotient element c.create(GenPolynomial<C> n) Create from numerator.create(GenPolynomial<C> n, GenPolynomial<C> d) Create from numerator, denominator pair.protected GenPolynomial<C> divide(GenPolynomial<C> n, GenPolynomial<C> d) Divide.booleanComparison with any other object.longDegree of extension field.fromInteger(long a) Get a Quotient element from a long value.Get a Quotient element from a BigInteger value.protected GenPolynomial<C> gcd(GenPolynomial<C> n, GenPolynomial<C> d) Greatest common divisor.Get a list of the generating elements.getONE()Get the one element.getZERO()Get the zero element.inthashCode()Hash code for this quotient ring.booleanQuery if this ring is associative.booleanQuery if this ring is commutative.booleanisField()Query if this ring is a field.booleanisFinite()Is this structure finite or infinite.Factory for base elements.Parse Quotient from Reader.Parse Quotient from String.random(int n) Quotient random.random(int k, int l, int d, float q) Generate a random quotient polynomial.Quotient random.toScript()Get a scripting compatible string representation.toString()Get the String representation as RingFactory.Methods inherited from interface ElemFactory
valueOf
-
Field Details
-
logger
private static final org.apache.logging.log4j.Logger logger -
quoNorm
Default quotient polynomial normalization, simplification. -
ring
Polynomial ring of the factory. -
engine
GCD engine of the factory. -
ufdGCD
public final boolean ufdGCDUse GCD of package edu.jas.ufd.
-
-
Constructor Details
-
QuotientRing
The constructor creates a QuotientRing object from a GenPolynomialRing.- Parameters:
r- polynomial ring.
-
QuotientRing
The constructor creates a QuotientRing object from a GenPolynomialRing.- Parameters:
r- polynomial ring.ufdGCD- flag, if syzygy or gcd based algorithm used for engine.
-
-
Method Details
-
pairFactory
Factory for base elements.- Specified by:
pairFactoryin interfaceQuotPairFactory<GenPolynomial<C extends GcdRingElem<C>>, Quotient<C extends GcdRingElem<C>>>
-
create
Create from numerator.- Specified by:
createin interfaceQuotPairFactory<GenPolynomial<C extends GcdRingElem<C>>, Quotient<C extends GcdRingElem<C>>>
-
create
Create from numerator, denominator pair.- Specified by:
createin interfaceQuotPairFactory<GenPolynomial<C extends GcdRingElem<C>>, Quotient<C extends GcdRingElem<C>>>
-
divide
Divide.- Parameters:
n- first polynomial.d- second polynomial.- Returns:
- divide(n,d)
-
gcd
Greatest common divisor.- Parameters:
n- first polynomial.d- second polynomial.- Returns:
- gcd(n,d)
-
isFinite
public boolean isFinite()Is this structure finite or infinite.- Specified by:
isFinitein interfaceElemFactory<C extends GcdRingElem<C>>- Returns:
- true if this structure is finite, else false.
- See Also:
-
copy
Copy Quotient element c.- Specified by:
copyin interfaceElemFactory<C extends GcdRingElem<C>>- Parameters:
c-- Returns:
- a copy of c.
-
getZERO
Get the zero element.- Specified by:
getZEROin interfaceAbelianGroupFactory<C extends GcdRingElem<C>>- Returns:
- 0 as Quotient.
-
getONE
Get the one element.- Specified by:
getONEin interfaceMonoidFactory<C extends GcdRingElem<C>>- Returns:
- 1 as Quotient.
-
generators
Get a list of the generating elements.- Specified by:
generatorsin interfaceElemFactory<C extends GcdRingElem<C>>- Returns:
- list of generators for the algebraic structure.
- See Also:
-
isCommutative
public boolean isCommutative()Query if this ring is commutative.- Specified by:
isCommutativein interfaceMonoidFactory<C extends GcdRingElem<C>>- Returns:
- true if this ring is commutative, else false.
-
isAssociative
public boolean isAssociative()Query if this ring is associative.- Specified by:
isAssociativein interfaceMonoidFactory<C extends GcdRingElem<C>>- Returns:
- true if this ring is associative, else false.
-
isField
public boolean isField()Query if this ring is a field.- Specified by:
isFieldin interfaceRingFactory<C extends GcdRingElem<C>>- Returns:
- true.
-
characteristic
Characteristic of this ring.- Specified by:
characteristicin interfaceRingFactory<C extends GcdRingElem<C>>- Returns:
- characteristic of this ring.
-
fromInteger
Get a Quotient element from a BigInteger value.- Specified by:
fromIntegerin interfaceElemFactory<C extends GcdRingElem<C>>- Parameters:
a- BigInteger.- Returns:
- a Quotient.
-
fromInteger
Get a Quotient element from a long value.- Specified by:
fromIntegerin interfaceElemFactory<C extends GcdRingElem<C>>- Parameters:
a- long.- Returns:
- a Quotient.
-
toString
-
toScript
Get a scripting compatible string representation.- Specified by:
toScriptin interfaceElemFactory<C extends GcdRingElem<C>>- Returns:
- script compatible representation for this ElemFactory.
- See Also:
-
equals
-
hashCode
-
random
Quotient random.- Specified by:
randomin interfaceElemFactory<C extends GcdRingElem<C>>- Parameters:
n- such that 0 ≤ v ≤ (2n-1).- Returns:
- a random residue element.
-
random
-
random
Quotient random.- Specified by:
randomin interfaceElemFactory<C extends GcdRingElem<C>>- Parameters:
n- such that 0 ≤ v ≤ (2n-1).rnd- is a source for random bits.- Returns:
- a random quotient element.
-
parse
Parse Quotient from String. Syntax: "{ polynomial | polynomial }" or "{ polynomial }" or " polynomial | polynomial " or " polynomial "- Specified by:
parsein interfaceElemFactory<C extends GcdRingElem<C>>- Parameters:
s- String.- Returns:
- Quotient from s.
-
parse
Parse Quotient from Reader.- Specified by:
parsein interfaceElemFactory<C extends GcdRingElem<C>>- Parameters:
r- Reader.- Returns:
- next Quotient from r.
-
extensionDegree
public long extensionDegree()Degree of extension field.- Returns:
- degree of this extension field, -1 for transcendental extension.
-