edu.jas.poly
Class QuotientRing<C extends RingElem<C>>

java.lang.Object
  extended by edu.jas.poly.QuotientRing<C>
All Implemented Interfaces:
AbelianGroupFactory<Quotient<C>>, ElemFactory<Quotient<C>>, MonoidFactory<Quotient<C>>, RingFactory<Quotient<C>>, java.io.Serializable

public class QuotientRing<C extends RingElem<C>>
extends java.lang.Object
implements RingFactory<Quotient<C>>

Quotient ring factory using RingElem and RingFactory. Objects of this class are immutable.

Author:
Heinz Kredel
See Also:
Serialized Form

Field Summary
 RingFactory<C> ring
          Ring factory of this factory.
 
Constructor Summary
QuotientRing(RingFactory<C> r)
          The constructor creates a QuotientRing object from a RingFactory.
 
Method Summary
 java.math.BigInteger characteristic()
          Characteristic of this ring.
 Quotient<C> copy(Quotient<C> c)
          Copy Quotient element c.
 boolean equals(java.lang.Object b)
          Comparison with any other object.
 Quotient<C> fromInteger(java.math.BigInteger a)
          Get a Quotient element from a BigInteger value.
 Quotient<C> fromInteger(long a)
          Get a Quotient element from a long value.
 java.util.List<Quotient<C>> generators()
          Get a list of the generating elements.
 Quotient<C> getONE()
          Get the one element.
 Quotient<C> getZERO()
          Get the zero element.
 int hashCode()
          Hash code for this quotient 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.
 Quotient<C> parse(java.io.Reader r)
          Parse Quotient from Reader.
 Quotient<C> parse(java.lang.String s)
          Parse Quotient from String.
 Quotient<C> random(int n)
          Quotient random.
 Quotient<C> random(int n, java.util.Random rnd)
          Quotient random.
 java.lang.String toScript()
          Get a scripting compatible string representation.
 java.lang.String toString()
          Get the String representation as RingFactory.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

ring

public final RingFactory<C extends RingElem<C>> ring
Ring factory of this factory.

Constructor Detail

QuotientRing

public QuotientRing(RingFactory<C> r)
The constructor creates a QuotientRing object from a RingFactory.

Parameters:
r - ring factory.
Method Detail

isFinite

public boolean isFinite()
Is this structure finite or infinite.

Specified by:
isFinite in interface ElemFactory<Quotient<C extends RingElem<C>>>
Returns:
true if this structure is finite, else false.
See Also:
ElemFactory.isFinite()

copy

public Quotient<C> copy(Quotient<C> c)
Copy Quotient element c.

Specified by:
copy in interface ElemFactory<Quotient<C extends RingElem<C>>>
Parameters:
c -
Returns:
a copy of c.

getZERO

public Quotient<C> getZERO()
Get the zero element.

Specified by:
getZERO in interface AbelianGroupFactory<Quotient<C extends RingElem<C>>>
Returns:
0 as Quotient.

getONE

public Quotient<C> getONE()
Get the one element.

Specified by:
getONE in interface MonoidFactory<Quotient<C extends RingElem<C>>>
Returns:
1 as Quotient.

generators

public java.util.List<Quotient<C>> generators()
Get a list of the generating elements.

Specified by:
generators in interface ElemFactory<Quotient<C extends RingElem<C>>>
Returns:
list of generators for the algebraic structure.
See Also:
ElemFactory.generators()

isCommutative

public boolean isCommutative()
Query if this ring is commutative.

Specified by:
isCommutative in interface MonoidFactory<Quotient<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:
isAssociative in interface MonoidFactory<Quotient<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:
isField in interface RingFactory<Quotient<C extends RingElem<C>>>
Returns:
true.

characteristic

public java.math.BigInteger characteristic()
Characteristic of this ring.

Specified by:
characteristic in interface RingFactory<Quotient<C extends RingElem<C>>>
Returns:
characteristic of this ring.

fromInteger

public Quotient<C> fromInteger(java.math.BigInteger a)
Get a Quotient element from a BigInteger value.

Specified by:
fromInteger in interface ElemFactory<Quotient<C extends RingElem<C>>>
Parameters:
a - BigInteger.
Returns:
a Quotient.

fromInteger

public Quotient<C> fromInteger(long a)
Get a Quotient element from a long value.

Specified by:
fromInteger in interface ElemFactory<Quotient<C extends RingElem<C>>>
Parameters:
a - long.
Returns:
a Quotient.

toString

public java.lang.String toString()
Get the String representation as RingFactory.

Overrides:
toString in class java.lang.Object
See Also:
Object.toString()

toScript

public java.lang.String toScript()
Get a scripting compatible string representation.

Specified by:
toScript in interface ElemFactory<Quotient<C extends RingElem<C>>>
Returns:
script compatible representation for this ElemFactory.
See Also:
ElemFactory.toScript()

equals

public boolean equals(java.lang.Object b)
Comparison with any other object.

Overrides:
equals in class java.lang.Object
See Also:
Object.equals(java.lang.Object)

hashCode

public int hashCode()
Hash code for this quotient ring.

Overrides:
hashCode in class java.lang.Object
See Also:
Object.hashCode()

random

public Quotient<C> random(int n)
Quotient random.

Specified by:
random in interface ElemFactory<Quotient<C extends RingElem<C>>>
Parameters:
n - such that 0 ≤ v ≤ (2n-1).
Returns:
a random residue element.

random

public Quotient<C> random(int n,
                          java.util.Random rnd)
Quotient random.

Specified by:
random in interface ElemFactory<Quotient<C extends RingElem<C>>>
Parameters:
n - such that 0 ≤ v ≤ (2n-1).
rnd - is a source for random bits.
Returns:
a random residue element.

parse

public Quotient<C> parse(java.lang.String s)
Parse Quotient from String.

Specified by:
parse in interface ElemFactory<Quotient<C extends RingElem<C>>>
Parameters:
s - String.
Returns:
Quotient from s.

parse

public Quotient<C> parse(java.io.Reader r)
Parse Quotient from Reader.

Specified by:
parse in interface ElemFactory<Quotient<C extends RingElem<C>>>
Parameters:
r - Reader.
Returns:
next Quotient from r.