public class BigQuaternion extends java.lang.Object implements StarRingElem<BigQuaternion>, GcdRingElem<BigQuaternion>
Modifier and Type | Field and Description |
---|---|
BigRational |
im
Imaginary part i of the data structure.
|
BigRational |
jm
Imaginary part j of the data structure.
|
BigRational |
km
Imaginary part k of the data structure.
|
protected static java.util.Random |
random |
BigRational |
re
Real part of the data structure.
|
BigQuaternionRing |
ring
Corresponding BigQuaternion ring.
|
Constructor and Description |
---|
BigQuaternion(BigQuaternionRing fac)
Constructor for a BigQuaternion with no arguments.
|
BigQuaternion(BigQuaternionRing fac,
BigComplex r)
Constructor for a BigQuaternion from BigComplex.
|
BigQuaternion(BigQuaternionRing fac,
BigRational r)
Constructor for a BigQuaternion from BigRationals.
|
BigQuaternion(BigQuaternionRing fac,
BigRational r,
BigRational i)
Constructor for a BigQuaternion from BigRationals.
|
BigQuaternion(BigQuaternionRing fac,
BigRational r,
BigRational i,
BigRational j)
Constructor for a BigQuaternion from BigRationals.
|
BigQuaternion(BigQuaternionRing fac,
BigRational r,
BigRational i,
BigRational j,
BigRational k)
Constructor for a BigQuaternion from BigRationals.
|
BigQuaternion(BigQuaternionRing fac,
long r)
Constructor for a BigQuaternion from long.
|
BigQuaternion(BigQuaternionRing fac,
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.
|
long |
bitLength()
Returns the number of bits in the representation of this BigQuaternion,
including a sign bit.
|
BigQuaternion |
ceil()
BigQuaternion ceiling, component wise.
|
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 |
divide(BigQuaternion b)
BigQuaternion right 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.
|
BigQuaternionRing |
factory()
Get the corresponding element factory.
|
BigQuaternion |
floor()
BigQuaternion floor, component wise.
|
BigQuaternion |
gcd(BigQuaternion S)
Quaternion number greatest common divisor.
|
BigRational |
getIm()
Get the imaginary part im.
|
BigRational |
getJm()
Get the imaginary part jm.
|
BigRational |
getKm()
Get the imaginary part km.
|
BigRational |
getRe()
Get the real part.
|
int |
hashCode()
Hash code for this BigQuaternion.
|
BigQuaternion |
inverse()
BigQuaternion inverse.
|
boolean |
isEntier()
Is BigQuaternion entier element.
|
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 |
leftDivide(BigQuaternion b)
BigQuaternion left divide.
|
BigQuaternion |
leftGcd(BigQuaternion S)
Quaternion number greatest common divisor.
|
BigQuaternion |
multiply(BigQuaternion B)
BigQuaternion multiply.
|
BigQuaternion |
multiply(BigRational b)
BigQuaternion multiply with BigRational.
|
BigQuaternion |
negate()
BigQuaternion number negative.
|
BigQuaternion |
norm()
Quaternion number norm.
|
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 |
QSUM(BigQuaternion A,
BigQuaternion B)
Quaternion number sum.
|
BigQuaternion[] |
quotientRemainder(BigQuaternion S)
Quotient and remainder by division of this by S.
|
BigQuaternion |
remainder(BigQuaternion S)
BigQuaternion remainder.
|
BigQuaternion |
rightDivide(BigQuaternion b)
BigQuaternion right divide.
|
BigQuaternion |
rightGcd(BigQuaternion S)
Quaternion number greatest common divisor.
|
BigQuaternionInteger |
roundToHurwitzian()
BigQuaternion round to next Hurwitz integer.
|
BigQuaternionInteger |
roundToLipschitzian()
BigQuaternion round to next Lipschitz integer.
|
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.
|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
leftRemainder, power, rightRemainder, twosidedDivide, twosidedRemainder
public final BigRational re
public final BigRational im
public final BigRational jm
public final BigRational km
public final BigQuaternionRing ring
protected static final java.util.Random random
public BigQuaternion(BigQuaternionRing fac, BigRational r, BigRational i, BigRational j, BigRational k)
fac
- BigQuaternionRing.r
- BigRational.i
- BigRational.j
- BigRational.k
- BigRational.public BigQuaternion(BigQuaternionRing fac, BigRational r, BigRational i, BigRational j)
fac
- BigQuaternionRing.r
- BigRational.i
- BigRational.j
- BigRational.public BigQuaternion(BigQuaternionRing fac, BigRational r, BigRational i)
fac
- BigQuaternionRing.r
- BigRational.i
- BigRational.public BigQuaternion(BigQuaternionRing fac, BigRational r)
fac
- BigQuaternionRing.r
- BigRational.public BigQuaternion(BigQuaternionRing fac, BigComplex r)
fac
- BigQuaternionRing.r
- BigComplex.public BigQuaternion(BigQuaternionRing fac, long r)
fac
- BigQuaternionRing.r
- long.public BigQuaternion(BigQuaternionRing fac)
fac
- BigQuaternionRing.public BigQuaternion(BigQuaternionRing fac, java.lang.String s) throws java.lang.NumberFormatException
fac
- BigQuaternionRing.s
- String.java.lang.NumberFormatException
public BigQuaternionRing factory()
factory
in interface Element<BigQuaternion>
Element.factory()
public BigQuaternion copy()
copy
in interface Element<BigQuaternion>
Object.clone()
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>
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 isEntier()
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(BigRational b)
b
- BigRational.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 rightDivide(BigQuaternion b)
rightDivide
in interface MonoidElem<BigQuaternion>
b
- BigQuaternion.public BigQuaternion leftDivide(BigQuaternion b)
leftDivide
in interface MonoidElem<BigQuaternion>
b
- BigQuaternion.public BigQuaternion divide(BigRational b)
b
- BigRational.public BigQuaternion[] quotientRemainder(BigQuaternion S)
quotientRemainder
in interface MonoidElem<BigQuaternion>
S
- a quaternion numberpublic BigQuaternion gcd(BigQuaternion S)
gcd
in interface RingElem<BigQuaternion>
S
- BigQuaternion.public BigQuaternion leftGcd(BigQuaternion S)
leftGcd
in interface RingElem<BigQuaternion>
S
- BigQuaternion.public BigQuaternion rightGcd(BigQuaternion S)
rightGcd
in interface RingElem<BigQuaternion>
S
- BigQuaternion.public BigQuaternion[] egcd(BigQuaternion S)
egcd
in interface RingElem<BigQuaternion>
S
- BigQuaternion.public long bitLength()
re.bitLength()+im.bitLength()+jm.bitLength()+km.bitLength()
.)public BigQuaternion ceil()
public BigQuaternion floor()
public BigQuaternionInteger roundToLipschitzian()
public BigQuaternionInteger roundToHurwitzian()