public class ProductRing<C extends RingElem<C>> extends java.lang.Object implements RingFactory<Product<C>>
Modifier and Type | Field and Description |
---|---|
protected int |
nCopies
Ring factory is n copies.
|
protected static java.util.Random |
random
A default random sequence generator.
|
protected RingFactory<C> |
ring
One Ring factory.
|
protected java.util.List<RingFactory<C>> |
ringList
Ring factory list.
|
Constructor and Description |
---|
ProductRing(java.util.List<RingFactory<C>> l)
The constructor creates a ProductRing object from an ring factory and a
modul.
|
ProductRing(RingFactory<C> r,
int n)
The constructor creates a ProductRing object from an ring factory and a
modul.
|
Modifier and Type | Method and Description |
---|---|
void |
addFactory(RingFactory<C> rf)
Add a ring factory.
|
java.math.BigInteger |
characteristic()
Characteristic of this ring.
|
boolean |
containsFactory(RingFactory<C> rf)
Contains a ring factory.
|
Product<C> |
copy(Product<C> c)
Copy Product element c.
|
boolean |
equals(java.lang.Object b)
Comparison with any other object.
|
Product<C> |
fromInteger(java.math.BigInteger a)
Get a Product element from a BigInteger value.
|
Product<C> |
fromInteger(long a)
Get a Product element from a long value.
|
java.util.List<Product<C>> |
generators()
Get a list of the generating elements.
|
Product<C> |
getAtomic(int i)
Get an atomic element.
|
RingFactory<C> |
getFactory(int i)
Get ring factory at index i.
|
Product<C> |
getONE()
Get the one element.
|
Product<C> |
getZERO()
Get the zero element.
|
int |
hashCode()
Hash code for this product ring.
|
boolean |
isAssociative()
Query if this ring is associative.
|
boolean |
isCommutative()
Query if this ring is commutative.
|
boolean |
isField()
Query if this ring is a field.
|
boolean |
isFinite()
Is this structure finite or infinite.
|
int |
length()
Get the number of factors of this ring.
|
boolean |
onlyFields()
Query if this ring consists only of fields.
|
Product<C> |
parse(java.io.Reader r)
Parse Product from Reader.
|
Product<C> |
parse(java.lang.String s)
Parse Product from String.
|
Product<C> |
random(int n)
Product random.
|
Product<C> |
random(int n,
float q)
Product random.
|
Product<C> |
random(int n,
float q,
java.util.Random rnd)
Product random.
|
Product<C> |
random(int n,
java.util.Random rnd)
Product random.
|
java.lang.String |
toScript()
Get a scripting compatible string representation.
|
java.lang.String |
toString()
Get the String representation as RingFactory.
|
protected int nCopies
protected final RingFactory<C extends RingElem<C>> ring
protected final java.util.List<RingFactory<C extends RingElem<C>>> ringList
protected static final java.util.Random random
public ProductRing(RingFactory<C> r, int n)
r
- ring factory.n
- number of copies.public ProductRing(java.util.List<RingFactory<C>> l)
l
- list of ring factories.public RingFactory<C> getFactory(int i)
i
- index.public void addFactory(RingFactory<C> rf)
rf
- new ring factory.public boolean containsFactory(RingFactory<C> rf)
rf
- ring factory.public boolean isFinite()
isFinite
in interface ElemFactory<Product<C extends RingElem<C>>>
ElemFactory.isFinite()
public java.util.List<Product<C>> generators()
generators
in interface ElemFactory<Product<C extends RingElem<C>>>
ElemFactory.generators()
public Product<C> getAtomic(int i)
i
- index.public int length()
public boolean isCommutative()
isCommutative
in interface MonoidFactory<Product<C extends RingElem<C>>>
public boolean isAssociative()
isAssociative
in interface MonoidFactory<Product<C extends RingElem<C>>>
public boolean isField()
public boolean onlyFields()
public java.math.BigInteger characteristic()
characteristic
in interface RingFactory<Product<C extends RingElem<C>>>
public Product<C> fromInteger(java.math.BigInteger a)
fromInteger
in interface ElemFactory<Product<C extends RingElem<C>>>
a
- BigInteger.public Product<C> fromInteger(long a)
fromInteger
in interface ElemFactory<Product<C extends RingElem<C>>>
a
- long.public java.lang.String toString()
toString
in class java.lang.Object
Object.toString()
public java.lang.String toScript()
toScript
in interface ElemFactory<Product<C extends RingElem<C>>>
ElemFactory.toScript()
public boolean equals(java.lang.Object b)
equals
in class java.lang.Object
Object.equals(java.lang.Object)
public int hashCode()
hashCode
in class java.lang.Object
Object.hashCode()
public Product<C> random(int n, float q)
n
- such that 0 ≤ v ≤ (2n-1).q
- density of nozero entries.public Product<C> random(int n, float q, java.util.Random rnd)
n
- such that 0 ≤ v ≤ (2n-1).q
- density of nozero entries.rnd
- is a source for random bits.