com.perisic.ring
Class UniversalRing

java.lang.Object
  |
  +--com.perisic.ring.Ring
        |
        +--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.


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
clone, equals, finalize, 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.
Overrides:
add in class Ring
Returns:
a + b.

mult

public RingElt mult(RingElt a,
                    RingElt b)
Multiplication.
Overrides:
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.
Overrides:
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.
Overrides:
zero in class Ring
Returns:
0

equalZero

public boolean equalZero(RingElt b)
true if b == 0.
Overrides:
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.