public final class BigQuaternion extends java.lang.Object implements StarRingElem<BigQuaternion>, GcdRingElem<BigQuaternion>, RingFactory<BigQuaternion>
Modifier and Type | Field and Description |
---|---|
static BigQuaternion |
I
The constant i.
|
BigRational |
im
Imaginary part i of the data structure.
|
static BigQuaternion |
J
The constant j.
|
BigRational |
jm
Imaginary part j of the data structure.
|
static BigQuaternion |
K
The constant k.
|
BigRational |
km
Imaginary part k of the data structure.
|
static BigQuaternion |
ONE
The constant 1.
|
BigRational |
re
Real part of the data structure.
|
static BigQuaternion |
ZERO
The constant 0.
|
Constructor and Description |
---|
BigQuaternion()
Constructor for a BigQuaternion with no arguments.
|
BigQuaternion(BigComplex r)
Constructor for a BigQuaternion from BigComplex.
|
BigQuaternion(BigRational r)
Constructor for a BigQuaternion from BigRationals.
|
BigQuaternion(BigRational r,
BigRational i)
Constructor for a BigQuaternion from BigRationals.
|
BigQuaternion(BigRational r,
BigRational i,
BigRational j)
Constructor for a BigQuaternion from BigRationals.
|
BigQuaternion(BigRational r,
BigRational i,
BigRational j,
BigRational k)
Constructor for a BigQuaternion from BigRationals.
|
BigQuaternion(long r)
Constructor for a BigQuaternion from long.
|
BigQuaternion(java.lang.String s)
The BigQuaternion string constructor accepts the following formats: empty
string, "rational", or "rat i rat j rat k rat" with no blanks around i, j
or k if used as polynoial coefficient.
|
Modifier and Type | Method and Description |
---|---|
BigQuaternion |
abs()
Quaternion number absolute value.
|
java.math.BigInteger |
characteristic()
Characteristic of this ring.
|
int |
compareTo(BigQuaternion b)
Since quaternion numbers are unordered, we use lexicographical order of
re, im, jm and km.
|
BigQuaternion |
conjugate()
BigQuaternion conjugate.
|
BigQuaternion |
copy()
Clone this.
|
BigQuaternion |
copy(BigQuaternion c)
Copy BigQuaternion element c.
|
BigQuaternion |
divide(BigQuaternion b)
BigQuaternion divide.
|
BigQuaternion |
divide(BigRational b)
BigQuaternion divide.
|
BigQuaternion[] |
egcd(BigQuaternion S)
BigQuaternion extended greatest common divisor.
|
boolean |
equals(java.lang.Object b)
Comparison with any other object.
|
BigQuaternion |
factory()
Get the corresponding element factory.
|
BigQuaternion |
fromInteger(java.math.BigInteger a)
Get a BigQuaternion element from a BigInteger.
|
BigQuaternion |
fromInteger(long a)
Get a BigQuaternion element from a long.
|
BigQuaternion |
gcd(BigQuaternion S)
Quaternion number greatest common divisor.
|
java.util.List<BigQuaternion> |
generators()
Get a list of the generating elements.
|
BigRational |
getIm()
Get the imaginary part im.
|
BigRational |
getJm()
Get the imaginary part jm.
|
BigRational |
getKm()
Get the imaginary part km.
|
BigQuaternion |
getONE()
Get the one element.
|
BigRational |
getRe()
Get the real part.
|
BigQuaternion |
getZERO()
Get the zero element.
|
int |
hashCode()
Hash code for this BigQuaternion.
|
BigQuaternion |
inverse()
BigQuaternion inverse.
|
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.
|
boolean |
isIMAG()
Is BigQuaternion imaginary one.
|
boolean |
isONE()
Is BigQuaternion number one.
|
static boolean |
isQONE(BigQuaternion A)
Is BigQuaternion number one.
|
static boolean |
isQZERO(BigQuaternion A)
Is Quaternion number zero.
|
boolean |
isUnit()
Is BigQuaternion unit element.
|
boolean |
isZERO()
Is BigQuaternion number zero.
|
BigQuaternion |
multiply(BigQuaternion B)
BigQuaternion multiply.
|
BigQuaternion |
negate()
BigQuaternion number negative.
|
BigQuaternion |
norm()
Quaternion number norm.
|
BigQuaternion |
parse(java.io.Reader r)
Parse quaternion number from Reader.
|
BigQuaternion |
parse(java.lang.String s)
Parse quaternion number from String.
|
static BigRational |
QABS(BigQuaternion A)
Quaternion number absolute value.
|
static BigQuaternion |
QCON(BigQuaternion A)
Quaternion number conjugate.
|
static BigQuaternion |
QDIF(BigQuaternion A,
BigQuaternion B)
Quaternion number difference.
|
static BigQuaternion |
QINV(BigQuaternion A)
Quaternion number inverse.
|
static BigQuaternion |
QNEG(BigQuaternion A)
Quaternion number negative.
|
static BigQuaternion |
QPROD(BigQuaternion A,
BigQuaternion B)
Quaternion number product.
|
static BigQuaternion |
QQ(BigQuaternion A,
BigQuaternion B)
Quaternion number quotient.
|
static BigQuaternion |
QRAND(int n)
Quaternion number, random.
|
static BigQuaternion |
QSUM(BigQuaternion A,
BigQuaternion B)
Quaternion number sum.
|
BigQuaternion |
random(int n)
BigQuaternion random.
|
BigQuaternion |
random(int n,
java.util.Random rnd)
BigQuaternion random.
|
BigQuaternion |
remainder(BigQuaternion S)
BigQuaternion remainder.
|
int |
signum()
Since quaternion numbers are unordered, we use lexicographical order of
re, im, jm and km.
|
BigQuaternion |
subtract(BigQuaternion B)
BigQuaternion subtraction.
|
BigQuaternion |
sum(BigQuaternion B)
BigQuaternion summation.
|
java.lang.String |
toScript()
Get a scripting compatible string representation.
|
java.lang.String |
toScriptFactory()
Get a scripting compatible string representation of the factory.
|
java.lang.String |
toString()
Get the string representation.
|
public final BigRational re
public final BigRational im
public final BigRational jm
public final BigRational km
public static final BigQuaternion ZERO
public static final BigQuaternion ONE
public static final BigQuaternion I
public static final BigQuaternion J
public static final BigQuaternion K
public BigQuaternion(BigRational r, BigRational i, BigRational j, BigRational k)
r
- BigRational.i
- BigRational.j
- BigRational.k
- BigRational.public BigQuaternion(BigRational r, BigRational i, BigRational j)
r
- BigRational.i
- BigRational.j
- BigRational.public BigQuaternion(BigRational r, BigRational i)
r
- BigRational.i
- BigRational.public BigQuaternion(BigRational r)
r
- BigRational.public BigQuaternion(BigComplex r)
r
- BigComplex.public BigQuaternion(long r)
r
- long.public BigQuaternion()
public BigQuaternion(java.lang.String s) throws java.lang.NumberFormatException
s
- String.java.lang.NumberFormatException
public BigQuaternion factory()
factory
in interface Element<BigQuaternion>
Element.factory()
public java.util.List<BigQuaternion> generators()
generators
in interface ElemFactory<BigQuaternion>
ElemFactory.generators()
public boolean isFinite()
isFinite
in interface ElemFactory<BigQuaternion>
ElemFactory.isFinite()
public BigQuaternion copy()
copy
in interface Element<BigQuaternion>
Object.clone()
public BigQuaternion copy(BigQuaternion c)
copy
in interface ElemFactory<BigQuaternion>
c
- BigQuaternion.public BigQuaternion getZERO()
getZERO
in interface AbelianGroupFactory<BigQuaternion>
public BigQuaternion getONE()
getONE
in interface MonoidFactory<BigQuaternion>
public boolean isCommutative()
isCommutative
in interface MonoidFactory<BigQuaternion>
public boolean isAssociative()
isAssociative
in interface MonoidFactory<BigQuaternion>
public boolean isField()
isField
in interface RingFactory<BigQuaternion>
public java.math.BigInteger characteristic()
characteristic
in interface RingFactory<BigQuaternion>
public BigQuaternion fromInteger(java.math.BigInteger a)
fromInteger
in interface ElemFactory<BigQuaternion>
a
- BigInteger.public BigQuaternion fromInteger(long a)
fromInteger
in interface ElemFactory<BigQuaternion>
a
- long.public BigRational getRe()
public BigRational getIm()
public BigRational getJm()
public BigRational getKm()
public java.lang.String toString()
toString
in class java.lang.Object
Object.toString()
public java.lang.String toScript()
toScript
in interface Element<BigQuaternion>
toScript
in interface ElemFactory<BigQuaternion>
Element.toScript()
public java.lang.String toScriptFactory()
toScriptFactory
in interface Element<BigQuaternion>
Element.toScriptFactory()
public static boolean isQZERO(BigQuaternion A)
A
- BigQuaternion.public boolean isZERO()
isZERO
in interface AbelianGroupElem<BigQuaternion>
AbelianGroupElem.isZERO()
public static boolean isQONE(BigQuaternion A)
A
- is a quaternion number.public boolean isONE()
isONE
in interface MonoidElem<BigQuaternion>
MonoidElem.isONE()
public boolean isIMAG()
public boolean isUnit()
isUnit
in interface MonoidElem<BigQuaternion>
MonoidElem.isUnit()
public boolean equals(java.lang.Object b)
equals
in interface Element<BigQuaternion>
equals
in class java.lang.Object
Object.equals(java.lang.Object)
public int hashCode()
hashCode
in interface Element<BigQuaternion>
hashCode
in class java.lang.Object
Object.hashCode()
public int compareTo(BigQuaternion b)
compareTo
in interface Element<BigQuaternion>
compareTo
in interface java.lang.Comparable<BigQuaternion>
b
- BigQuaternion.public int signum()
signum
in interface AbelianGroupElem<BigQuaternion>
AbelianGroupElem.signum()
public BigQuaternion sum(BigQuaternion B)
sum
in interface AbelianGroupElem<BigQuaternion>
B
- BigQuaternion.public static BigQuaternion QSUM(BigQuaternion A, BigQuaternion B)
A
- BigQuaternion.B
- BigQuaternion.public static BigQuaternion QDIF(BigQuaternion A, BigQuaternion B)
A
- BigQuaternion.B
- BigQuaternion.public BigQuaternion subtract(BigQuaternion B)
subtract
in interface AbelianGroupElem<BigQuaternion>
B
- BigQuaternion.public static BigQuaternion QNEG(BigQuaternion A)
A
- is a quaternion numberpublic BigQuaternion negate()
negate
in interface AbelianGroupElem<BigQuaternion>
AbelianGroupElem.negate()
public static BigQuaternion QCON(BigQuaternion A)
A
- is a quaternion number.public BigQuaternion conjugate()
conjugate
in interface StarRingElem<BigQuaternion>
public BigQuaternion norm()
norm
in interface StarRingElem<BigQuaternion>
StarRingElem.norm()
public BigQuaternion abs()
abs
in interface AbelianGroupElem<BigQuaternion>
AbelianGroupElem.abs()
public static BigRational QABS(BigQuaternion A)
A
- is a quaternion number.public static BigQuaternion QPROD(BigQuaternion A, BigQuaternion B)
A
- BigQuaternion.B
- BigQuaternion.public BigQuaternion multiply(BigQuaternion B)
multiply
in interface MonoidElem<BigQuaternion>
B
- BigQuaternion.public static BigQuaternion QINV(BigQuaternion A)
A
- is a non-zero quaternion number.public BigQuaternion inverse()
inverse
in interface MonoidElem<BigQuaternion>
MonoidElem.inverse()
public BigQuaternion remainder(BigQuaternion S)
remainder
in interface MonoidElem<BigQuaternion>
S
- BigQuaternion.public static BigQuaternion QQ(BigQuaternion A, BigQuaternion B)
A
- BigQuaternion.B
- BigQuaternion.public BigQuaternion divide(BigQuaternion b)
divide
in interface MonoidElem<BigQuaternion>
b
- BigQuaternion.public BigQuaternion divide(BigRational b)
b
- BigRational.public BigQuaternion random(int n)
random
in interface ElemFactory<BigQuaternion>
n
- such that 0 ≤ A, B, C, D ≤ (2n-1).public BigQuaternion random(int n, java.util.Random rnd)
random
in interface ElemFactory<BigQuaternion>
n
- such that 0 ≤ A, B, C, D ≤ (2n-1).rnd
- is a source for random bits.public static BigQuaternion QRAND(int n)
n
- such that 0 ≤ A, B, C, D ≤ (2n-1).public BigQuaternion parse(java.lang.String s)
parse
in interface ElemFactory<BigQuaternion>
s
- String.public BigQuaternion parse(java.io.Reader r)
parse
in interface ElemFactory<BigQuaternion>
r
- Reader.public BigQuaternion gcd(BigQuaternion S)
gcd
in interface RingElem<BigQuaternion>
S
- BigQuaternion.public BigQuaternion[] egcd(BigQuaternion S)
egcd
in interface RingElem<BigQuaternion>
S
- BigQuaternion.