Class ProductRing<C extends RingElem<C>>
java.lang.Object
edu.jas.arith.ProductRing<C>
- All Implemented Interfaces:
AbelianGroupFactory<Product<C>>, ElemFactory<Product<C>>, MonoidFactory<Product<C>>, RingFactory<Product<C>>, Serializable
Direct product ring factory based on RingElem and RingFactory module. Objects
of this class are mutable.
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final org.apache.logging.log4j.Loggerprotected intRing factory is n copies.protected static final RandomA default random sequence generator.protected final RingFactory<C> One Ring factory.protected final List<RingFactory<C>> Ring factory list. -
Constructor Summary
ConstructorsConstructorDescriptionProductRing(RingFactory<C> r, int n) The constructor creates a ProductRing object from an ring factory and a modul.ProductRing(List<RingFactory<C>> l) The constructor creates a ProductRing object from an ring factory and a modul. -
Method Summary
Modifier and TypeMethodDescriptionvoidaddFactory(RingFactory<C> rf) Add a ring factory.Characteristic of this ring.booleancontainsFactory(RingFactory<C> rf) Contains a ring factory.Copy Product element c.booleanComparison with any other object.fromInteger(long a) Get a Product element from a long value.Get a Product element from a BigInteger value.Get a list of the generating elements.getAtomic(int i) Get an atomic element.getFactory(int i) Get ring factory at index i.getONE()Get the one element.getZERO()Get the zero element.inthashCode()Hash code for this product 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.intlength()Get the number of factors of this ring.booleanQuery if this ring consists only of fields.Parse Product from Reader.Parse Product from String.random(int n) Product random.random(int n, float q) Product random.Product random.Product 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 -
nCopies
protected int nCopiesRing factory is n copies. -
ring
One Ring factory. -
ringList
Ring factory list. -
random
A default random sequence generator.
-
-
Constructor Details
-
ProductRing
The constructor creates a ProductRing object from an ring factory and a modul.- Parameters:
r- ring factory.n- number of copies.
-
ProductRing
The constructor creates a ProductRing object from an ring factory and a modul.- Parameters:
l- list of ring factories.
-
-
Method Details
-
getFactory
Get ring factory at index i.- Parameters:
i- index.- Returns:
- RingFactory_i.
-
addFactory
-
containsFactory
Contains a ring factory.- Parameters:
rf- ring factory.- Returns:
- true, if rf is contained in this, else false.
-
isFinite
public boolean isFinite()Is this structure finite or infinite.- Specified by:
isFinitein interfaceElemFactory<C extends RingElem<C>>- Returns:
- true if this structure is finite, else false.
- See Also:
-
copy
-
getZERO
-
getONE
-
generators
Get a list of the generating elements.- Specified by:
generatorsin interfaceElemFactory<C extends RingElem<C>>- Returns:
- list of generators for the algebraic structure.
- See Also:
-
getAtomic
-
length
public int length()Get the number of factors of this ring.- Returns:
- nCopies or ringList.size().
-
isCommutative
public boolean isCommutative()Query if this ring is commutative.- Specified by:
isCommutativein interfaceMonoidFactory<C extends RingElem<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 RingElem<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 RingElem<C>>- Returns:
- true or false.
-
onlyFields
public boolean onlyFields()Query if this ring consists only of fields.- Returns:
- true or false.
-
characteristic
Characteristic of this ring.- Specified by:
characteristicin interfaceRingFactory<C extends RingElem<C>>- Returns:
- minimal characteristic of ring component.
-
fromInteger
Get a Product element from a BigInteger value.- Specified by:
fromIntegerin interfaceElemFactory<C extends RingElem<C>>- Parameters:
a- BigInteger.- Returns:
- a Product.
-
fromInteger
Get a Product element from a long value.- Specified by:
fromIntegerin interfaceElemFactory<C extends RingElem<C>>- Parameters:
a- long.- Returns:
- a Product.
-
toString
-
toScript
-
equals
-
hashCode
-
random
-
random
-
random
-
random
-
parse
-
parse
-