public class ComplexAlgebraicRing<C extends GcdRingElem<C> & Rational> extends java.lang.Object implements RingFactory<ComplexAlgebraicNumber<C>>
Modifier and Type | Field and Description |
---|---|
AlgebraicNumberRing<Complex<C>> |
algebraic
Representing AlgebraicNumberRing.
|
protected ComplexRootsSturm<C> |
engine
Complex root computation engine.
|
protected BigRational |
eps
Epsilon of the isolating rectangle for a complex root.
|
static int |
PRECISION
Precision of the isolating rectangle for a complex root.
|
Constructor and Description |
---|
ComplexAlgebraicRing(GenPolynomial<Complex<C>> m,
Rectangle<C> root)
The constructor creates a ComplexAlgebraicNumber factory object from a
GenPolynomial objects module.
|
ComplexAlgebraicRing(GenPolynomial<Complex<C>> m,
Rectangle<C> root,
boolean isField)
The constructor creates a ComplexAlgebraicNumber factory object from a
GenPolynomial objects module.
|
Modifier and Type | Method and Description |
---|---|
java.math.BigInteger |
characteristic()
Characteristic of this ring.
|
ComplexAlgebraicNumber<C> |
copy(ComplexAlgebraicNumber<C> c)
Copy ComplexAlgebraicNumber element c.
|
void |
ensureEngine()
Ensure engine is initialized.
|
boolean |
equals(java.lang.Object b)
Comparison with any other object.
|
ComplexAlgebraicNumber<C> |
fromInteger(java.math.BigInteger a)
Get a ComplexAlgebraicNumber element from a BigInteger value.
|
ComplexAlgebraicNumber<C> |
fromInteger(long a)
Get a ComplexAlgebraicNumber element from a long value.
|
java.util.List<ComplexAlgebraicNumber<C>> |
generators()
Get a list of the generating elements.
|
BigRational |
getEps()
Get epsilon.
|
ComplexAlgebraicNumber<C> |
getGenerator()
Get the generating element.
|
ComplexAlgebraicNumber<C> |
getIMAG()
Get the i element.
|
ComplexAlgebraicNumber<C> |
getONE()
Get the one element.
|
Rectangle<C> |
getRoot()
Get rectangle for the complex root.
|
ComplexAlgebraicNumber<C> |
getZERO()
Get the zero element.
|
int |
hashCode()
Hash code for this ComplexAlgebraicNumber.
|
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.
|
ComplexAlgebraicNumber<C> |
parse(java.io.Reader r)
Parse ComplexAlgebraicNumber from Reader.
|
ComplexAlgebraicNumber<C> |
parse(java.lang.String s)
Parse ComplexAlgebraicNumber from String.
|
ComplexAlgebraicNumber<C> |
random(int n)
ComplexAlgebraicNumber random.
|
ComplexAlgebraicNumber<C> |
random(int n,
java.util.Random rnd)
ComplexAlgebraicNumber random.
|
void |
refineRoot()
Refine root.
|
void |
refineRoot(BigRational e)
Refine root.
|
void |
setEps(BigRational e)
Set a new epsilon.
|
void |
setEps(C e)
Set a new epsilon.
|
void |
setField(boolean isField)
Assert that this ring is a field.
|
void |
setRoot(Rectangle<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.
|
public final AlgebraicNumberRing<Complex<C extends GcdRingElem<C> & Rational>> algebraic
protected BigRational eps
public static final int PRECISION
protected ComplexRootsSturm<C extends GcdRingElem<C> & Rational> engine
public ComplexAlgebraicRing(GenPolynomial<Complex<C>> m, Rectangle<C> root)
m
- module GenPolynomial<C>.root
- isolating rectangle for a complex root.public ComplexAlgebraicRing(GenPolynomial<Complex<C>> m, Rectangle<C> root, boolean isField)
m
- module GenPolynomial<C>.root
- isolating rectangle for a complex root.isField
- indicator if m is prime.public void setRoot(Rectangle<C> v)
v
- rectangle.public BigRational getEps()
public void setEps(BigRational e)
e
- epsilon.public void refineRoot()
public void ensureEngine()
public void refineRoot(BigRational e)
e
- epsilon.public boolean isFinite()
isFinite
in interface ElemFactory<ComplexAlgebraicNumber<C extends GcdRingElem<C> & Rational>>
ElemFactory.isFinite()
public ComplexAlgebraicNumber<C> copy(ComplexAlgebraicNumber<C> c)
copy
in interface ElemFactory<ComplexAlgebraicNumber<C extends GcdRingElem<C> & Rational>>
c
- public ComplexAlgebraicNumber<C> getZERO()
getZERO
in interface AbelianGroupFactory<ComplexAlgebraicNumber<C extends GcdRingElem<C> & Rational>>
public ComplexAlgebraicNumber<C> getONE()
getONE
in interface MonoidFactory<ComplexAlgebraicNumber<C extends GcdRingElem<C> & Rational>>
public ComplexAlgebraicNumber<C> getIMAG()
public ComplexAlgebraicNumber<C> getGenerator()
public java.util.List<ComplexAlgebraicNumber<C>> generators()
generators
in interface ElemFactory<ComplexAlgebraicNumber<C extends GcdRingElem<C> & Rational>>
ElemFactory.generators()
public boolean isCommutative()
isCommutative
in interface MonoidFactory<ComplexAlgebraicNumber<C extends GcdRingElem<C> & Rational>>
public boolean isAssociative()
isAssociative
in interface MonoidFactory<ComplexAlgebraicNumber<C extends GcdRingElem<C> & Rational>>
public boolean isField()
isField
in interface RingFactory<ComplexAlgebraicNumber<C extends GcdRingElem<C> & Rational>>
public void setField(boolean isField)
isField
- true if this ring is a field, else false.public java.math.BigInteger characteristic()
characteristic
in interface RingFactory<ComplexAlgebraicNumber<C extends GcdRingElem<C> & Rational>>
public ComplexAlgebraicNumber<C> fromInteger(java.math.BigInteger a)
fromInteger
in interface ElemFactory<ComplexAlgebraicNumber<C extends GcdRingElem<C> & Rational>>
a
- BigInteger.public ComplexAlgebraicNumber<C> fromInteger(long a)
fromInteger
in interface ElemFactory<ComplexAlgebraicNumber<C extends GcdRingElem<C> & Rational>>
a
- long.public java.lang.String toString()
toString
in class java.lang.Object
Object.toString()
public java.lang.String toScript()
toScript
in interface ElemFactory<ComplexAlgebraicNumber<C extends GcdRingElem<C> & Rational>>
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 ComplexAlgebraicNumber<C> random(int n)
random
in interface ElemFactory<ComplexAlgebraicNumber<C extends GcdRingElem<C> & Rational>>
n
- such that 0 ≤ v ≤ (2n-1).public ComplexAlgebraicNumber<C> random(int n, java.util.Random rnd)
random
in interface ElemFactory<ComplexAlgebraicNumber<C extends GcdRingElem<C> & Rational>>
n
- such that 0 ≤ v ≤ (2n-1).rnd
- is a source for random bits.public ComplexAlgebraicNumber<C> parse(java.lang.String s)
parse
in interface ElemFactory<ComplexAlgebraicNumber<C extends GcdRingElem<C> & Rational>>
s
- String.public ComplexAlgebraicNumber<C> parse(java.io.Reader r)
parse
in interface ElemFactory<ComplexAlgebraicNumber<C extends GcdRingElem<C> & Rational>>
r
- Reader.