Package edu.jas.root
Class ComplexAlgebraicRing<C extends GcdRingElem<C> & Rational>
java.lang.Object
edu.jas.root.ComplexAlgebraicRing<C>
- All Implemented Interfaces:
AbelianGroupFactory<ComplexAlgebraicNumber<C>>
,ElemFactory<ComplexAlgebraicNumber<C>>
,MonoidFactory<ComplexAlgebraicNumber<C>>
,RingFactory<ComplexAlgebraicNumber<C>>
,Serializable
public class ComplexAlgebraicRing<C extends GcdRingElem<C> & Rational>
extends Object
implements RingFactory<ComplexAlgebraicNumber<C>>
Complex algebraic number factory class based on AlgebraicNumberRing with
RingFactory interface. Objects of this class are immutable with the exception
of the isolating intervals.
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionfinal AlgebraicNumberRing
<Complex<C>> Representing AlgebraicNumberRing.protected ComplexRootsSturm
<C> Complex root computation engine.protected BigRational
Epsilon of the isolating rectangle for a complex root.private static final org.apache.logging.log4j.Logger
static final int
Precision of the isolating rectangle for a complex root.Isolating rectangle for a complex root. -
Constructor Summary
ConstructorsConstructorDescriptionComplexAlgebraicRing
(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. -
Method Summary
Modifier and TypeMethodDescriptionCharacteristic of this ring.Copy ComplexAlgebraicNumber element c.void
Ensure engine is initialized.boolean
Comparison with any other object.fromInteger
(long a) Get a ComplexAlgebraicNumber element from a long value.Get a ComplexAlgebraicNumber element from a BigInteger value.Get a list of the generating elements.getEps()
Get epsilon.Get the generating element.getIMAG()
Get the i element.getONE()
Get the one element.getRoot()
Get rectangle for the complex root.getZERO()
Get the zero element.int
hashCode()
Hash code for this ComplexAlgebraicNumber.boolean
Query if this ring is associative.boolean
Query if this ring is commutative.boolean
isField()
Query if this ring is a field.boolean
isFinite()
Is this structure finite or infinite.Parse ComplexAlgebraicNumber from Reader.Parse ComplexAlgebraicNumber from String.random
(int n) ComplexAlgebraicNumber random.ComplexAlgebraicNumber random.void
Refine root.void
Refine root.void
Set a new epsilon.void
Set a new epsilon.void
setField
(boolean isField) Assert that this ring is a field.void
Set a refined rectangle for the complex root.toScript()
Get a scripting compatible string representation.toString()
Get the String representation as RingFactory.Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface edu.jas.structure.ElemFactory
valueOf
-
Field Details
-
logger
private static final org.apache.logging.log4j.Logger logger -
algebraic
Representing AlgebraicNumberRing. -
root
Rectangle<C extends GcdRingElem<C> & Rational> rootIsolating rectangle for a complex root. Note: interval may shrink eventually. -
eps
Epsilon of the isolating rectangle for a complex root. -
PRECISION
public static final int PRECISIONPrecision of the isolating rectangle for a complex root. -
engine
Complex root computation engine.
-
-
Constructor Details
-
ComplexAlgebraicRing
The constructor creates a ComplexAlgebraicNumber factory object from a GenPolynomial objects module.- Parameters:
m
- module GenPolynomial<C>.root
- isolating rectangle for a complex root.
-
ComplexAlgebraicRing
The constructor creates a ComplexAlgebraicNumber factory object from a GenPolynomial objects module.- Parameters:
m
- module GenPolynomial<C>.root
- isolating rectangle for a complex root.isField
- indicator if m is prime.
-
-
Method Details
-
setRoot
Set a refined rectangle for the complex root. Note: rectangle may shrink eventually.- Parameters:
v
- rectangle.
-
getRoot
Get rectangle for the complex root.- Returns:
- v rectangle.
-
getEps
Get epsilon.- Returns:
- epsilon.
-
setEps
Set a new epsilon.- Parameters:
e
- epsilon.
-
setEps
Set a new epsilon.- Parameters:
e
- epsilon.
-
refineRoot
public void refineRoot()Refine root. -
ensureEngine
public void ensureEngine()Ensure engine is initialized. -
refineRoot
Refine root.- Parameters:
e
- epsilon.
-
isFinite
public boolean isFinite()Is this structure finite or infinite.- Specified by:
isFinite
in interfaceElemFactory<C extends GcdRingElem<C> & Rational>
- Returns:
- true if this structure is finite, else false.
- See Also:
-
copy
Copy ComplexAlgebraicNumber element c.- Specified by:
copy
in interfaceElemFactory<C extends GcdRingElem<C> & Rational>
- Parameters:
c
-- Returns:
- a copy of c.
-
getZERO
Get the zero element.- Specified by:
getZERO
in interfaceAbelianGroupFactory<C extends GcdRingElem<C> & Rational>
- Returns:
- 0 as ComplexAlgebraicNumber.
-
getONE
Get the one element.- Specified by:
getONE
in interfaceMonoidFactory<C extends GcdRingElem<C> & Rational>
- Returns:
- 1 as ComplexAlgebraicNumber.
-
getIMAG
Get the i element.- Returns:
- i as ComplexAlgebraicNumber.
-
getGenerator
Get the generating element.- Returns:
- alpha as ComplexAlgebraicNumber.
-
generators
Get a list of the generating elements.- Specified by:
generators
in interfaceElemFactory<C extends GcdRingElem<C> & Rational>
- Returns:
- list of generators for the algebraic structure.
- See Also:
-
isCommutative
public boolean isCommutative()Query if this ring is commutative.- Specified by:
isCommutative
in interfaceMonoidFactory<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 interfaceMonoidFactory<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 interfaceRingFactory<C extends GcdRingElem<C> & Rational>
- Returns:
- true if algebraic is prime, else false.
-
setField
public void setField(boolean isField) Assert that this ring is a field.- Parameters:
isField
- true if this ring is a field, else false.
-
characteristic
Characteristic of this ring.- Specified by:
characteristic
in interfaceRingFactory<C extends GcdRingElem<C> & Rational>
- Returns:
- characteristic of this ring.
-
fromInteger
Get a ComplexAlgebraicNumber element from a BigInteger value.- Specified by:
fromInteger
in interfaceElemFactory<C extends GcdRingElem<C> & Rational>
- Parameters:
a
- BigInteger.- Returns:
- a ComplexAlgebraicNumber.
-
fromInteger
Get a ComplexAlgebraicNumber element from a long value.- Specified by:
fromInteger
in interfaceElemFactory<C extends GcdRingElem<C> & Rational>
- Parameters:
a
- long.- Returns:
- a ComplexAlgebraicNumber.
-
toString
Get the String representation as RingFactory. -
toScript
Get a scripting compatible string representation.- Specified by:
toScript
in interfaceElemFactory<C extends GcdRingElem<C> & Rational>
- Returns:
- script compatible representation for this ElemFactory.
- See Also:
-
equals
Comparison with any other object. -
hashCode
public int hashCode()Hash code for this ComplexAlgebraicNumber. -
random
ComplexAlgebraicNumber random.- Specified by:
random
in interfaceElemFactory<C extends GcdRingElem<C> & Rational>
- Parameters:
n
- such that 0 ≤ v ≤ (2n-1).- Returns:
- a random integer mod modul.
-
random
ComplexAlgebraicNumber random.- Specified by:
random
in interfaceElemFactory<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
Parse ComplexAlgebraicNumber from String.- Specified by:
parse
in interfaceElemFactory<C extends GcdRingElem<C> & Rational>
- Parameters:
s
- String.- Returns:
- ComplexAlgebraicNumber from s.
-
parse
Parse ComplexAlgebraicNumber from Reader.- Specified by:
parse
in interfaceElemFactory<C extends GcdRingElem<C> & Rational>
- Parameters:
r
- Reader.- Returns:
- next ComplexAlgebraicNumber from r.
-