com.perisic.ring
Class UniversalRing

java.lang.Object
  extended by com.perisic.ring.Ring
      extended by com.perisic.ring.UniversalRing
Direct Known Subclasses:
UniversalCyclotomicField, UniversalPolynomialRing

public abstract class UniversalRing
extends Ring

An abstract class for an universal ring. It can be used to implement a cyclotomic field of all unit roots (an inifinite algebraic extension) or a polynomial ring over an infinite number of variables. See the abstract method findRing(...) for details.

Version:
0.2
Author:
Marc Conrad

Field Summary
 
Fields inherited from class com.perisic.ring.Ring
C, F2, Q, R, Z
 
Constructor Summary
UniversalRing()
          No parameters in the constructor
 
Method Summary
 RingElt add(RingElt a, RingElt b)
          Addition.
 RingElt ediv(RingElt a, RingElt b)
          Euclidian division.
 boolean equalZero(RingElt b)
          true if b == 0.
abstract  Ring findRing()
          A suitable ring able to map 0 (and 1).
abstract  Ring findRing(RingElt a)
          A suitable ring able to map a.
abstract  Ring findRing(RingElt a, RingElt b)
          A suitable ring able to map a and b.
 RingElt gcd(RingElt a, RingElt b)
          gcd.
 RingElt inv(RingElt a)
          Multiplicative Inverse.
 RingElt map(RingElt a)
          Maps a RingElt using the findRing() method with one parameter.
 RingElt map(java.lang.String str)
          Maps a string to the ring obtained by findRing() without parameter.
 RingElt mod(RingElt a, RingElt b)
          Modular computation.
 RingElt mult(RingElt a, RingElt b)
          Multiplication.
 RingElt neg(RingElt b)
          The additive inverse of b.
 RingElt one()
          The 1 of the ring.
 RingElt tdiv(RingElt a, RingElt b)
          True division.
 java.lang.String toString()
           
 RingElt zero()
          The 0 of the ring.
 
Methods inherited from class com.perisic.ring.Ring
div, eltToString, equal, evaluatePolynomial, isEuclidian, isField, isUFD, map, map, map, pow, pow, sub
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

UniversalRing

public UniversalRing()
No parameters in the constructor

Method Detail

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object
Returns:
"(unspecified) Universal Ring"

add

public RingElt add(RingElt a,
                   RingElt b)
Addition.

Specified by:
add in class Ring
Returns:
a + b.

mult

public RingElt mult(RingElt a,
                    RingElt b)
Multiplication.

Specified by:
mult in class Ring
Returns:
a * b

tdiv

public RingElt tdiv(RingElt a,
                    RingElt b)
True division.

Overrides:
tdiv in class Ring
Returns:
a / b

ediv

public RingElt ediv(RingElt a,
                    RingElt b)
Euclidian division.

Overrides:
ediv in class Ring
Returns:
S.ediv(a,b) for a suitable ring S.

mod

public RingElt mod(RingElt a,
                   RingElt b)
Modular computation.

Overrides:
mod in class Ring
Returns:
a % b

gcd

public RingElt gcd(RingElt a,
                   RingElt b)
gcd.

Overrides:
gcd in class Ring
Returns:
gcd(a,b)

inv

public RingElt inv(RingElt a)
Multiplicative Inverse.

Overrides:
inv in class Ring
Returns:
a^-1

neg

public RingElt neg(RingElt b)
The additive inverse of b.

Specified by:
neg in class Ring
Returns:
-b

one

public RingElt one()
The 1 of the ring.

Overrides:
one in class Ring
Returns:
1

zero

public RingElt zero()
The 0 of the ring.

Specified by:
zero in class Ring
Returns:
0

equalZero

public boolean equalZero(RingElt b)
true if b == 0.

Specified by:
equalZero in class Ring
Returns:
b == 0

map

public RingElt map(java.lang.String str)
Maps a string to the ring obtained by findRing() without parameter. It is recommended to override this method in order to get enhanced flexibility.

Overrides:
map in class Ring

map

public RingElt map(RingElt a)
Maps a RingElt using the findRing() method with one parameter.

Overrides:
map in class Ring

findRing

public abstract Ring findRing()
A suitable ring able to map 0 (and 1).


findRing

public abstract Ring findRing(RingElt a)
A suitable ring able to map a.


findRing

public abstract Ring findRing(RingElt a,
                              RingElt b)
A suitable ring able to map a and b.