Package edu.jas.arith
Class BigQuaternionRing
- java.lang.Object
-
- edu.jas.arith.BigQuaternionRing
-
- All Implemented Interfaces:
AbelianGroupFactory<BigQuaternion>
,ElemFactory<BigQuaternion>
,MonoidFactory<BigQuaternion>
,RingFactory<BigQuaternion>
,java.io.Serializable
public final class BigQuaternionRing extends java.lang.Object implements RingFactory<BigQuaternion>
BigQuaternion ring class based on BigRational implementing the RingElem interface.- Author:
- Heinz Kredel
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description BigQuaternion
I
The constant i.protected boolean
integral
Flag to signal if this ring is integral.BigQuaternion
J
The constant j.BigQuaternion
K
The constant k.BigQuaternion
ONE
The constant 1.protected static java.util.Random
random
BigQuaternion
ZERO
The constant 0.
-
Constructor Summary
Constructors Constructor Description BigQuaternionRing()
Constructor for a BigQuaternion ring.BigQuaternionRing(boolean i)
Constructor for a BigQuaternion ring.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.math.BigInteger
characteristic()
Characteristic of this ring.BigQuaternion
copy(BigQuaternion c)
Copy BigQuaternion element c.boolean
equals(java.lang.Object b)
Comparison with any other object.BigQuaternion
fromInteger(long a)
Get a BigQuaternion element from a long.BigQuaternion
fromInteger(long[] a)
Get a BigQuaternion element from a long vector.BigQuaternion
fromInteger(java.math.BigInteger a)
Get a BigQuaternion element from a BigInteger.java.util.List<BigQuaternion>
generators()
Get a list of the generating elements.BigQuaternion
getONE()
Get the one element.BigQuaternion
getZERO()
Get the zero element.int
hashCode()
Hash code for this BigQuaternionRing.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.BigQuaternion
parse(java.io.Reader r)
Parse quaternion number from Reader.BigQuaternion
parse(java.lang.String s)
Parse quaternion number from String.BigQuaternion
random(int n)
BigQuaternion random.BigQuaternion
random(int n, java.util.Random rnd)
BigQuaternion random.java.lang.String
toScript()
Get a scripting compatible string representation.java.lang.String
toString()
Get the string representation.java.util.List<BigQuaternion>
unitsOfHurwitzian()
BigQuaternion units of the Hurwitzian integers.-
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 Detail
-
integral
protected boolean integral
Flag to signal if this ring is integral.
-
random
protected static final java.util.Random random
-
ZERO
public final BigQuaternion ZERO
The constant 0.
-
ONE
public final BigQuaternion ONE
The constant 1.
-
I
public final BigQuaternion I
The constant i.
-
J
public final BigQuaternion J
The constant j.
-
K
public final BigQuaternion K
The constant k.
-
-
Constructor Detail
-
BigQuaternionRing
public BigQuaternionRing()
Constructor for a BigQuaternion ring.
-
BigQuaternionRing
public BigQuaternionRing(boolean i)
Constructor for a BigQuaternion ring.
-
-
Method Detail
-
generators
public java.util.List<BigQuaternion> generators()
Get a list of the generating elements.- Specified by:
generators
in interfaceElemFactory<BigQuaternion>
- Returns:
- list of generators for the algebraic structure.
- See Also:
ElemFactory.generators()
-
isFinite
public boolean isFinite()
Is this structure finite or infinite.- Specified by:
isFinite
in interfaceElemFactory<BigQuaternion>
- Returns:
- true if this structure is finite, else false.
- See Also:
ElemFactory.isFinite()
-
copy
public BigQuaternion copy(BigQuaternion c)
Copy BigQuaternion element c.- Specified by:
copy
in interfaceElemFactory<BigQuaternion>
- Parameters:
c
- BigQuaternion.- Returns:
- a copy of c.
-
getZERO
public BigQuaternion getZERO()
Get the zero element.- Specified by:
getZERO
in interfaceAbelianGroupFactory<BigQuaternion>
- Returns:
- 0 as BigQuaternion.
-
getONE
public BigQuaternion getONE()
Get the one element.- Specified by:
getONE
in interfaceMonoidFactory<BigQuaternion>
- Returns:
- q as BigQuaternion.
-
isCommutative
public boolean isCommutative()
Query if this ring is commutative.- Specified by:
isCommutative
in interfaceMonoidFactory<BigQuaternion>
- Returns:
- false.
-
isAssociative
public boolean isAssociative()
Query if this ring is associative.- Specified by:
isAssociative
in interfaceMonoidFactory<BigQuaternion>
- Returns:
- true.
-
isField
public boolean isField()
Query if this ring is a field.- Specified by:
isField
in interfaceRingFactory<BigQuaternion>
- Returns:
- true.
-
characteristic
public java.math.BigInteger characteristic()
Characteristic of this ring.- Specified by:
characteristic
in interfaceRingFactory<BigQuaternion>
- Returns:
- characteristic of this ring.
-
fromInteger
public BigQuaternion fromInteger(java.math.BigInteger a)
Get a BigQuaternion element from a BigInteger.- Specified by:
fromInteger
in interfaceElemFactory<BigQuaternion>
- Parameters:
a
- BigInteger.- Returns:
- a BigQuaternion.
-
fromInteger
public BigQuaternion fromInteger(long a)
Get a BigQuaternion element from a long.- Specified by:
fromInteger
in interfaceElemFactory<BigQuaternion>
- Parameters:
a
- long.- Returns:
- a BigQuaternion.
-
fromInteger
public BigQuaternion fromInteger(long[] a)
Get a BigQuaternion element from a long vector.- Parameters:
a
- long vector.- Returns:
- a BigQuaternion.
-
toString
public java.lang.String toString()
Get the string representation. Is compatible with the string constructor.- Overrides:
toString
in classjava.lang.Object
- See Also:
Object.toString()
-
toScript
public java.lang.String toScript()
Get a scripting compatible string representation.- Specified by:
toScript
in interfaceElemFactory<BigQuaternion>
- Returns:
- script compatible representation for this Element.
- See Also:
Element.toScript()
-
equals
public boolean equals(java.lang.Object b)
Comparison with any other object.- Overrides:
equals
in classjava.lang.Object
- See Also:
Object.equals(java.lang.Object)
-
hashCode
public int hashCode()
Hash code for this BigQuaternionRing.- Overrides:
hashCode
in classjava.lang.Object
- See Also:
Object.hashCode()
-
unitsOfHurwitzian
public java.util.List<BigQuaternion> unitsOfHurwitzian()
BigQuaternion units of the Hurwitzian integers. BigQuaternion units with all integer or all 1/2 times integer components.- Returns:
- list of all 24 units.
-
random
public BigQuaternion random(int n)
BigQuaternion random. Random rational numbers A, B, C and D are generated using random(n). Then R is the quaternion number with real part A and imaginary parts B, C and D.- Specified by:
random
in interfaceElemFactory<BigQuaternion>
- Parameters:
n
- such that 0 ≤ A, B, C, D ≤ (2n-1).- Returns:
- R, a random BigQuaternion.
-
random
public BigQuaternion random(int n, java.util.Random rnd)
BigQuaternion random. Random rational numbers A, B, C and D are generated using RNRAND(n). Then R is the quaternion number with real part A and imaginary parts B, C and D.- Specified by:
random
in interfaceElemFactory<BigQuaternion>
- Parameters:
n
- such that 0 ≤ A, B, C, D ≤ (2n-1).rnd
- is a source for random bits.- Returns:
- R, a random BigQuaternion.
-
parse
public BigQuaternion parse(java.lang.String s)
Parse quaternion number from String.- Specified by:
parse
in interfaceElemFactory<BigQuaternion>
- Parameters:
s
- String.- Returns:
- BigQuaternion from s.
-
parse
public BigQuaternion parse(java.io.Reader r)
Parse quaternion number from Reader.- Specified by:
parse
in interfaceElemFactory<BigQuaternion>
- Parameters:
r
- Reader.- Returns:
- next BigQuaternion from r.
-
-