edu.jas.application
Class RealAlgebraicRing<C extends GcdRingElem<C> & Rational>

java.lang.Object
  extended by edu.jas.application.RealAlgebraicRing<C>
All Implemented Interfaces:
AbelianGroupFactory<RealAlgebraicNumber<C>>, ElemFactory<RealAlgebraicNumber<C>>, MonoidFactory<RealAlgebraicNumber<C>>, RingFactory<RealAlgebraicNumber<C>>, java.io.Serializable

public class RealAlgebraicRing<C extends GcdRingElem<C> & Rational>
extends java.lang.Object
implements RingFactory<RealAlgebraicNumber<C>>

Real algebraic number factory class based on bi-variate real algebraic numbers. Objects of this class are immutable with the exception of the isolating intervals. Bi-variate ideal implementation is in version 3614 2011-04-28 09:20:34Z.

Author:
Heinz Kredel
See Also:
Serialized Form

Field Summary
protected  C eps
          Epsilon of the isolating rectangle for a complex root.
 int PRECISION
          Precision of the isolating rectangle for a complex root.
 RealAlgebraicRing<RealAlgebraicNumber<C>> realRing
          Recursive real root ring.
 
Constructor Summary
RealAlgebraicRing(IdealWithUniv<C> m, RealRootTuple<C> root)
          The constructor creates a RealAlgebraicNumber factory object from a IdealWithUniv and a root tuple.
RealAlgebraicRing(IdealWithUniv<C> m, RealRootTuple<C> root, boolean isField)
          The constructor creates a RealAlgebraicNumber factory object from a IdealWithUniv and a root tuple.
RealAlgebraicRing(IdealWithUniv<C> m, ResidueRing<C> a, RealRootTuple<C> r)
          The constructor creates a RealAlgebraicNumber factory object from a IdealWithUniv, ResidueRing and a root tuple.
 
Method Summary
 java.math.BigInteger characteristic()
          Characteristic of this ring.
 RealAlgebraicNumber<C> copy(RealAlgebraicNumber<C> c)
          Copy RealAlgebraicNumber element c.
 boolean equals(java.lang.Object b)
          Comparison with any other object.
 RealAlgebraicNumber<C> fromInteger(java.math.BigInteger a)
          Get a RealAlgebraicNumber element from a BigInteger value.
 RealAlgebraicNumber<C> fromInteger(long a)
          Get a RealAlgebraicNumber element from a long value.
 java.util.List<RealAlgebraicNumber<C>> generators()
          Get a list of the generating elements.
 C getEps()
          Get epsilon.
 RealAlgebraicNumber<C> getONE()
          Get the one element.
 RealRootTuple<C> getRoot()
          Get rectangle for the complex root.
 RealAlgebraicNumber<C> getZERO()
          Get the zero element.
 int hashCode()
          Hash code for this RealAlgebraicNumber.
 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.
 RealAlgebraicNumber<C> parse(java.io.Reader r)
          Parse RealAlgebraicNumber from Reader.
 RealAlgebraicNumber<C> parse(java.lang.String s)
          Parse RealAlgebraicNumber from String.
 RealAlgebraicNumber<C> random(int n)
          RealAlgebraicNumber random.
 RealAlgebraicNumber<C> random(int n, java.util.Random rnd)
          RealAlgebraicNumber random.
 void setEps(BigRational e)
          Set a new epsilon.
 void setEps(C e)
          Set a new epsilon.
 void setRoot(RealRootTuple<C> v)
          Set a refined rectangle for the complex root.
 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

realRing

public final RealAlgebraicRing<RealAlgebraicNumber<C extends GcdRingElem<C> & Rational>> realRing
Recursive real root ring.


eps

protected C extends GcdRingElem<C> & Rational eps
Epsilon of the isolating rectangle for a complex root.


PRECISION

public final int PRECISION
Precision of the isolating rectangle for a complex root.

See Also:
Constant Field Values
Constructor Detail

RealAlgebraicRing

public RealAlgebraicRing(IdealWithUniv<C> m,
                         ResidueRing<C> a,
                         RealRootTuple<C> r)
The constructor creates a RealAlgebraicNumber factory object from a IdealWithUniv, ResidueRing and a root tuple.

Parameters:
m - module IdealWithUniv<C>.
a - module ResidueRing<C>.
r - isolating rectangle for a complex root.

RealAlgebraicRing

public RealAlgebraicRing(IdealWithUniv<C> m,
                         RealRootTuple<C> root)
The constructor creates a RealAlgebraicNumber factory object from a IdealWithUniv and a root tuple.

Parameters:
m - module IdealWithUniv<C>.
root - isolating rectangle for a complex root.

RealAlgebraicRing

public RealAlgebraicRing(IdealWithUniv<C> m,
                         RealRootTuple<C> root,
                         boolean isField)
The constructor creates a RealAlgebraicNumber factory object from a IdealWithUniv and a root tuple.

Parameters:
m - module IdealWithUniv<C>.
root - isolating rectangle for a complex root.
isField - indicator if m is maximal.
Method Detail

setRoot

public void setRoot(RealRootTuple<C> v)
Set a refined rectangle for the complex root. Note: rectangle may shrink eventually.

Parameters:
v - rectangle.

getRoot

public RealRootTuple<C> getRoot()
Get rectangle for the complex root.

Returns:
v rectangle.

getEps

public C getEps()
Get epsilon.

Returns:
epsilon.

setEps

public void setEps(C e)
Set a new epsilon.

Parameters:
e - epsilon.

setEps

public void setEps(BigRational e)
Set a new epsilon.

Parameters:
e - epsilon.

isFinite

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

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

copy

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

Specified by:
copy in interface ElemFactory<RealAlgebraicNumber<C extends GcdRingElem<C> & Rational>>
Parameters:
c -
Returns:
a copy of c.

getZERO

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

Specified by:
getZERO in interface AbelianGroupFactory<RealAlgebraicNumber<C extends GcdRingElem<C> & Rational>>
Returns:
0 as RealAlgebraicNumber.

getONE

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

Specified by:
getONE in interface MonoidFactory<RealAlgebraicNumber<C extends GcdRingElem<C> & Rational>>
Returns:
1 as RealAlgebraicNumber.

generators

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

Specified by:
generators in interface ElemFactory<RealAlgebraicNumber<C extends GcdRingElem<C> & Rational>>
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<RealAlgebraicNumber<C extends GcdRingElem<C> & Rational>>
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<RealAlgebraicNumber<C extends GcdRingElem<C> & Rational>>
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<RealAlgebraicNumber<C extends GcdRingElem<C> & Rational>>
Returns:
true if algebraic is prime, else false.

characteristic

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

Specified by:
characteristic in interface RingFactory<RealAlgebraicNumber<C extends GcdRingElem<C> & Rational>>
Returns:
characteristic of this ring.

fromInteger

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

Specified by:
fromInteger in interface ElemFactory<RealAlgebraicNumber<C extends GcdRingElem<C> & Rational>>
Parameters:
a - BigInteger.
Returns:
a RealAlgebraicNumber.

fromInteger

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

Specified by:
fromInteger in interface ElemFactory<RealAlgebraicNumber<C extends GcdRingElem<C> & Rational>>
Parameters:
a - long.
Returns:
a RealAlgebraicNumber.

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<RealAlgebraicNumber<C extends GcdRingElem<C> & Rational>>
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 RealAlgebraicNumber.

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

random

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

Specified by:
random in interface ElemFactory<RealAlgebraicNumber<C extends GcdRingElem<C> & Rational>>
Parameters:
n - such that 0 ≤ v ≤ (2n-1).
Returns:
a random integer mod modul.

random

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

Specified by:
random in interface ElemFactory<RealAlgebraicNumber<C extends GcdRingElem<C> & Rational>>
Parameters:
n - such that 0 ≤ v ≤ (2n-1).
rnd - is a source for random bits.
Returns:
a random integer mod modul.

parse

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

Specified by:
parse in interface ElemFactory<RealAlgebraicNumber<C extends GcdRingElem<C> & Rational>>
Parameters:
s - String.
Returns:
RealAlgebraicNumber from s.

parse

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

Specified by:
parse in interface ElemFactory<RealAlgebraicNumber<C extends GcdRingElem<C> & Rational>>
Parameters:
r - Reader.
Returns:
next RealAlgebraicNumber from r.