edu.jas.arith
Class BigQuaternion
- java.lang.Object
-
- edu.jas.arith.BigQuaternion
-
- All Implemented Interfaces:
- AbelianGroupElem<BigQuaternion>, AbelianGroupFactory<BigQuaternion>, Element<BigQuaternion>, ElemFactory<BigQuaternion>, GcdRingElem<BigQuaternion>, MonoidElem<BigQuaternion>, MonoidFactory<BigQuaternion>, RingElem<BigQuaternion>, RingFactory<BigQuaternion>, StarRingElem<BigQuaternion>, java.io.Serializable, java.lang.Comparable<BigQuaternion>
public final class BigQuaternion extends java.lang.Object implements StarRingElem<BigQuaternion>, GcdRingElem<BigQuaternion>, RingFactory<BigQuaternion>
BigQuaternion class based on BigRational implementing the RingElem interface and with the familiar MAS static method names. Objects of this class are immutable.- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field and Description static BigQuaternionIThe constant i.BigRationalimImaginary part i of the data structure.static BigQuaternionJThe constant j.BigRationaljmImaginary part j of the data structure.static BigQuaternionKThe constant k.BigRationalkmImaginary part k of the data structure.static BigQuaternionONEThe constant 1.BigRationalreReal part of the data structure.static BigQuaternionZEROThe constant 0.
-
Constructor Summary
Constructors 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.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method and Description BigQuaternionabs()Quaternion number absolute value.java.math.BigIntegercharacteristic()Characteristic of this ring.intcompareTo(BigQuaternion b)Since quaternion numbers are unordered, we use lexicographical order of re, im, jm and km.BigQuaternionconjugate()BigQuaternion conjugate.BigQuaternioncopy()Clone this.BigQuaternioncopy(BigQuaternion c)Copy BigQuaternion element c.BigQuaterniondivide(BigQuaternion b)BigQuaternion divide.BigQuaterniondivide(BigRational b)BigQuaternion divide.BigQuaternion[]egcd(BigQuaternion S)BigQuaternion extended greatest common divisor.booleanequals(java.lang.Object b)Comparison with any other object.BigQuaternionfactory()Get the corresponding element factory.BigQuaternionfromInteger(java.math.BigInteger a)Get a BigQuaternion element from a BigInteger.BigQuaternionfromInteger(long a)Get a BigQuaternion element from a long.BigQuaterniongcd(BigQuaternion S)Quaternion number greatest common divisor.java.util.List<BigQuaternion>generators()Get a list of the generating elements.BigRationalgetIm()Get the imaginary part im.BigRationalgetJm()Get the imaginary part jm.BigRationalgetKm()Get the imaginary part km.BigQuaterniongetONE()Get the one element.BigRationalgetRe()Get the real part.BigQuaterniongetZERO()Get the zero element.inthashCode()Hash code for this BigQuaternion.BigQuaternioninverse()BigQuaternion inverse.booleanisAssociative()Query if this ring is associative.booleanisCommutative()Query if this ring is commutative.booleanisField()Query if this ring is a field.booleanisFinite()Is this structure finite or infinite.booleanisIMAG()Is BigQuaternion imaginary one.booleanisONE()Is BigQuaternion number one.static booleanisQONE(BigQuaternion A)Is BigQuaternion number one.static booleanisQZERO(BigQuaternion A)Is Quaternion number zero.booleanisUnit()Is BigQuaternion unit element.booleanisZERO()Is BigQuaternion number zero.BigQuaternionmultiply(BigQuaternion B)BigQuaternion multiply.BigQuaternionnegate()BigQuaternion number negative.BigQuaternionnorm()Quaternion number norm.BigQuaternionparse(java.io.Reader r)Parse quaternion number from Reader.BigQuaternionparse(java.lang.String s)Parse quaternion number from String.static BigRationalQABS(BigQuaternion A)Quaternion number absolute value.static BigQuaternionQCON(BigQuaternion A)Quaternion number conjugate.static BigQuaternionQDIF(BigQuaternion A, BigQuaternion B)Quaternion number difference.static BigQuaternionQINV(BigQuaternion A)Quaternion number inverse.static BigQuaternionQNEG(BigQuaternion A)Quaternion number negative.static BigQuaternionQPROD(BigQuaternion A, BigQuaternion B)Quaternion number product.static BigQuaternionQQ(BigQuaternion A, BigQuaternion B)Quaternion number quotient.static BigQuaternionQRAND(int n)Quaternion number, random.static BigQuaternionQSUM(BigQuaternion A, BigQuaternion B)Quaternion number sum.BigQuaternion[]quotientRemainder(BigQuaternion S)Quotient and remainder by division of this by S.BigQuaternionrandom(int n)BigQuaternion random.BigQuaternionrandom(int n, java.util.Random rnd)BigQuaternion random.BigQuaternionremainder(BigQuaternion S)BigQuaternion remainder.intsignum()Since quaternion numbers are unordered, we use lexicographical order of re, im, jm and km.BigQuaternionsubtract(BigQuaternion B)BigQuaternion subtraction.BigQuaternionsum(BigQuaternion B)BigQuaternion summation.java.lang.StringtoScript()Get a scripting compatible string representation.java.lang.StringtoScriptFactory()Get a scripting compatible string representation of the factory.java.lang.StringtoString()Get the string representation.
-
-
-
Field Detail
-
re
public final BigRational re
Real part of the data structure.
-
im
public final BigRational im
Imaginary part i of the data structure.
-
jm
public final BigRational jm
Imaginary part j of the data structure.
-
km
public final BigRational km
Imaginary part k of the data structure.
-
ZERO
public static final BigQuaternion ZERO
The constant 0.
-
ONE
public static final BigQuaternion ONE
The constant 1.
-
I
public static final BigQuaternion I
The constant i.
-
J
public static final BigQuaternion J
The constant j.
-
K
public static final BigQuaternion K
The constant k.
-
-
Constructor Detail
-
BigQuaternion
public BigQuaternion(BigRational r, BigRational i, BigRational j, BigRational k)
Constructor for a BigQuaternion from BigRationals.- Parameters:
r- BigRational.i- BigRational.j- BigRational.k- BigRational.
-
BigQuaternion
public BigQuaternion(BigRational r, BigRational i, BigRational j)
Constructor for a BigQuaternion from BigRationals.- Parameters:
r- BigRational.i- BigRational.j- BigRational.
-
BigQuaternion
public BigQuaternion(BigRational r, BigRational i)
Constructor for a BigQuaternion from BigRationals.- Parameters:
r- BigRational.i- BigRational.
-
BigQuaternion
public BigQuaternion(BigRational r)
Constructor for a BigQuaternion from BigRationals.- Parameters:
r- BigRational.
-
BigQuaternion
public BigQuaternion(BigComplex r)
Constructor for a BigQuaternion from BigComplex.- Parameters:
r- BigComplex.
-
BigQuaternion
public BigQuaternion(long r)
Constructor for a BigQuaternion from long.- Parameters:
r- long.
-
BigQuaternion
public BigQuaternion()
Constructor for a BigQuaternion with no arguments.
-
BigQuaternion
public BigQuaternion(java.lang.String s) throws java.lang.NumberFormatExceptionThe 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.- Parameters:
s- String.- Throws:
java.lang.NumberFormatException
-
-
Method Detail
-
factory
public BigQuaternion factory()
Get the corresponding element factory.- Specified by:
factoryin interfaceElement<BigQuaternion>- Returns:
- factory for this Element.
- See Also:
Element.factory()
-
generators
public java.util.List<BigQuaternion> generators()
Get a list of the generating elements.- Specified by:
generatorsin 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:
isFinitein interfaceElemFactory<BigQuaternion>- Returns:
- true if this structure is finite, else false.
- See Also:
ElemFactory.isFinite()
-
copy
public BigQuaternion copy()
Clone this.- Specified by:
copyin interfaceElement<BigQuaternion>- Returns:
- Creates and returns a copy of this Element.
- See Also:
Object.clone()
-
copy
public BigQuaternion copy(BigQuaternion c)
Copy BigQuaternion element c.- Specified by:
copyin interfaceElemFactory<BigQuaternion>- Parameters:
c- BigQuaternion.- Returns:
- a copy of c.
-
getZERO
public BigQuaternion getZERO()
Get the zero element.- Specified by:
getZEROin interfaceAbelianGroupFactory<BigQuaternion>- Returns:
- 0 as BigQuaternion.
-
getONE
public BigQuaternion getONE()
Get the one element.- Specified by:
getONEin interfaceMonoidFactory<BigQuaternion>- Returns:
- q as BigQuaternion.
-
isCommutative
public boolean isCommutative()
Query if this ring is commutative.- Specified by:
isCommutativein interfaceMonoidFactory<BigQuaternion>- Returns:
- false.
-
isAssociative
public boolean isAssociative()
Query if this ring is associative.- Specified by:
isAssociativein interfaceMonoidFactory<BigQuaternion>- Returns:
- true.
-
isField
public boolean isField()
Query if this ring is a field.- Specified by:
isFieldin interfaceRingFactory<BigQuaternion>- Returns:
- true.
-
characteristic
public java.math.BigInteger characteristic()
Characteristic of this ring.- Specified by:
characteristicin interfaceRingFactory<BigQuaternion>- Returns:
- characteristic of this ring.
-
fromInteger
public BigQuaternion fromInteger(java.math.BigInteger a)
Get a BigQuaternion element from a BigInteger.- Specified by:
fromIntegerin interfaceElemFactory<BigQuaternion>- Parameters:
a- BigInteger.- Returns:
- a BigQuaternion.
-
fromInteger
public BigQuaternion fromInteger(long a)
Get a BigQuaternion element from a long.- Specified by:
fromIntegerin interfaceElemFactory<BigQuaternion>- Parameters:
a- long.- Returns:
- a BigQuaternion.
-
getRe
public BigRational getRe()
Get the real part.- Returns:
- re.
-
getIm
public BigRational getIm()
Get the imaginary part im.- Returns:
- im.
-
getJm
public BigRational getJm()
Get the imaginary part jm.- Returns:
- jm.
-
getKm
public BigRational getKm()
Get the imaginary part km.- Returns:
- km.
-
toString
public java.lang.String toString()
Get the string representation. Is compatible with the string constructor.- Overrides:
toStringin classjava.lang.Object- See Also:
Object.toString()
-
toScript
public java.lang.String toScript()
Get a scripting compatible string representation.- Specified by:
toScriptin interfaceElement<BigQuaternion>- Specified by:
toScriptin interfaceElemFactory<BigQuaternion>- Returns:
- script compatible representation for this Element.
- See Also:
Element.toScript()
-
toScriptFactory
public java.lang.String toScriptFactory()
Get a scripting compatible string representation of the factory.- Specified by:
toScriptFactoryin interfaceElement<BigQuaternion>- Returns:
- script compatible representation for this ElemFactory.
- See Also:
Element.toScriptFactory()
-
isQZERO
public static boolean isQZERO(BigQuaternion A)
Is Quaternion number zero.- Parameters:
A- BigQuaternion.- Returns:
- true if A is 0, else false.
-
isZERO
public boolean isZERO()
Is BigQuaternion number zero.- Specified by:
isZEROin interfaceAbelianGroupElem<BigQuaternion>- Returns:
- true if this is 0, else false.
- See Also:
AbelianGroupElem.isZERO()
-
isQONE
public static boolean isQONE(BigQuaternion A)
Is BigQuaternion number one.- Parameters:
A- is a quaternion number.- Returns:
- true if A is 1, else false.
-
isONE
public boolean isONE()
Is BigQuaternion number one.- Specified by:
isONEin interfaceMonoidElem<BigQuaternion>- Returns:
- true if this is 1, else false.
- See Also:
MonoidElem.isONE()
-
isIMAG
public boolean isIMAG()
Is BigQuaternion imaginary one.- Returns:
- true if this is i, else false.
-
isUnit
public boolean isUnit()
Is BigQuaternion unit element.- Specified by:
isUnitin interfaceMonoidElem<BigQuaternion>- Returns:
- If this is a unit then true is returned, else false.
- See Also:
MonoidElem.isUnit()
-
equals
public boolean equals(java.lang.Object b)
Comparison with any other object.- Specified by:
equalsin interfaceElement<BigQuaternion>- Overrides:
equalsin classjava.lang.Object- Returns:
- true if this is equal to b, else false.
- See Also:
Object.equals(java.lang.Object)
-
hashCode
public int hashCode()
Hash code for this BigQuaternion.- Specified by:
hashCodein interfaceElement<BigQuaternion>- Overrides:
hashCodein classjava.lang.Object- Returns:
- the hashCode.
- See Also:
Object.hashCode()
-
compareTo
public int compareTo(BigQuaternion b)
Since quaternion numbers are unordered, we use lexicographical order of re, im, jm and km.- Specified by:
compareToin interfaceElement<BigQuaternion>- Specified by:
compareToin interfacejava.lang.Comparable<BigQuaternion>- Parameters:
b- BigQuaternion.- Returns:
- 0 if b is equal to this, 1 if this is greater b and -1 else.
-
signum
public int signum()
Since quaternion numbers are unordered, we use lexicographical order of re, im, jm and km.- Specified by:
signumin interfaceAbelianGroupElem<BigQuaternion>- Returns:
- 0 if this is equal to 0; 1 if re > 0, or re == 0 and im > 0, or ...; -1 if re < 0, or re == 0 and im < 0, or ...
- See Also:
AbelianGroupElem.signum()
-
sum
public BigQuaternion sum(BigQuaternion B)
BigQuaternion summation.- Specified by:
sumin interfaceAbelianGroupElem<BigQuaternion>- Parameters:
B- BigQuaternion.- Returns:
- this+B.
-
QSUM
public static BigQuaternion QSUM(BigQuaternion A, BigQuaternion B)
Quaternion number sum.- Parameters:
A- BigQuaternion.B- BigQuaternion.- Returns:
- A+B.
-
QDIF
public static BigQuaternion QDIF(BigQuaternion A, BigQuaternion B)
Quaternion number difference.- Parameters:
A- BigQuaternion.B- BigQuaternion.- Returns:
- A-B.
-
subtract
public BigQuaternion subtract(BigQuaternion B)
BigQuaternion subtraction.- Specified by:
subtractin interfaceAbelianGroupElem<BigQuaternion>- Parameters:
B- BigQuaternion.- Returns:
- this-B.
-
QNEG
public static BigQuaternion QNEG(BigQuaternion A)
Quaternion number negative.- Parameters:
A- is a quaternion number- Returns:
- -A.
-
negate
public BigQuaternion negate()
BigQuaternion number negative.- Specified by:
negatein interfaceAbelianGroupElem<BigQuaternion>- Returns:
- -this.
- See Also:
AbelianGroupElem.negate()
-
QCON
public static BigQuaternion QCON(BigQuaternion A)
Quaternion number conjugate.- Parameters:
A- is a quaternion number.- Returns:
- the quaternion conjugate of A.
-
conjugate
public BigQuaternion conjugate()
BigQuaternion conjugate.- Specified by:
conjugatein interfaceStarRingElem<BigQuaternion>- Returns:
- conjugate(this).
-
norm
public BigQuaternion norm()
Quaternion number norm.- Specified by:
normin interfaceStarRingElem<BigQuaternion>- Returns:
- ||this||.
- See Also:
StarRingElem.norm()
-
abs
public BigQuaternion abs()
Quaternion number absolute value.- Specified by:
absin interfaceAbelianGroupElem<BigQuaternion>- Returns:
- |this|^2. Note: The square root is not jet implemented.
- See Also:
AbelianGroupElem.abs()
-
QABS
public static BigRational QABS(BigQuaternion A)
Quaternion number absolute value.- Parameters:
A- is a quaternion number.- Returns:
- the absolute value of A, a rational number. Note: The square root is not jet implemented.
-
QPROD
public static BigQuaternion QPROD(BigQuaternion A, BigQuaternion B)
Quaternion number product.- Parameters:
A- BigQuaternion.B- BigQuaternion.- Returns:
- A*B.
-
multiply
public BigQuaternion multiply(BigQuaternion B)
BigQuaternion multiply.- Specified by:
multiplyin interfaceMonoidElem<BigQuaternion>- Parameters:
B- BigQuaternion.- Returns:
- this*B.
-
QINV
public static BigQuaternion QINV(BigQuaternion A)
Quaternion number inverse.- Parameters:
A- is a non-zero quaternion number.- Returns:
- S with S * A = 1.
-
inverse
public BigQuaternion inverse()
BigQuaternion inverse.- Specified by:
inversein interfaceMonoidElem<BigQuaternion>- Returns:
- S with S * this = 1.
- See Also:
MonoidElem.inverse()
-
remainder
public BigQuaternion remainder(BigQuaternion S)
BigQuaternion remainder.- Specified by:
remainderin interfaceMonoidElem<BigQuaternion>- Parameters:
S- BigQuaternion.- Returns:
- 0.
-
QQ
public static BigQuaternion QQ(BigQuaternion A, BigQuaternion B)
Quaternion number quotient.- Parameters:
A- BigQuaternion.B- BigQuaternion.- Returns:
- R/S.
-
divide
public BigQuaternion divide(BigQuaternion b)
BigQuaternion divide.- Specified by:
dividein interfaceMonoidElem<BigQuaternion>- Parameters:
b- BigQuaternion.- Returns:
- this/b.
-
divide
public BigQuaternion divide(BigRational b)
BigQuaternion divide.- Parameters:
b- BigRational.- Returns:
- this/b.
-
quotientRemainder
public BigQuaternion[] quotientRemainder(BigQuaternion S)
Quotient and remainder by division of this by S.- Parameters:
S- a quaternion number- Returns:
- [this/S, this - (this/S)*S].
-
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:
randomin 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:
randomin 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.
-
QRAND
public static BigQuaternion QRAND(int n)
Quaternion number, 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.- Parameters:
n- such that 0 ≤ A, B, C, D ≤ (2n-1).- Returns:
- R, a random BigQuaternion.
-
parse
public BigQuaternion parse(java.lang.String s)
Parse quaternion number from String.- Specified by:
parsein interfaceElemFactory<BigQuaternion>- Parameters:
s- String.- Returns:
- BigQuaternion from s.
-
parse
public BigQuaternion parse(java.io.Reader r)
Parse quaternion number from Reader.- Specified by:
parsein interfaceElemFactory<BigQuaternion>- Parameters:
r- Reader.- Returns:
- next BigQuaternion from r.
-
gcd
public BigQuaternion gcd(BigQuaternion S)
Quaternion number greatest common divisor.- Specified by:
gcdin interfaceRingElem<BigQuaternion>- Parameters:
S- BigQuaternion.- Returns:
- gcd(this,S).
-
egcd
public BigQuaternion[] egcd(BigQuaternion S)
BigQuaternion extended greatest common divisor.- Specified by:
egcdin interfaceRingElem<BigQuaternion>- Parameters:
S- BigQuaternion.- Returns:
- [ gcd(this,S), a, b ] with a*this + b*S = gcd(this,S).
-
-
DMelt 3.0 © DataMelt by jWork.ORG