Class BigOctonion
java.lang.Object
edu.jas.arith.BigOctonion
- All Implemented Interfaces:
AbelianGroupElem<BigOctonion>, AbelianGroupFactory<BigOctonion>, Element<BigOctonion>, ElemFactory<BigOctonion>, GcdRingElem<BigOctonion>, MonoidElem<BigOctonion>, MonoidFactory<BigOctonion>, RingElem<BigOctonion>, RingFactory<BigOctonion>, StarRingElem<BigOctonion>, Serializable, Comparable<BigOctonion>
public final class BigOctonion
extends Object
implements StarRingElem<BigOctonion>, GcdRingElem<BigOctonion>, RingFactory<BigOctonion>
BigOctonion class based on BigRational implementing the RingElem interface
and with the familiar MAS static method names. Objects of this class are
immutable.
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final booleanThe constant i.private static final org.apache.logging.log4j.Loggerfinal BigQuaternionSecond part of the data structure.The constant 1.final BigQuaternionFirst part of the data structure.private static final RandomThe constant 0. -
Constructor Summary
ConstructorsConstructorDescriptionConstructor for a BigOctonion from BigQuaternion.Constructor for a BigOctonion from Quaternions.Constructor for a BigOctonion with no arguments.BigOctonion(BigQuaternionRing fac, long r) Constructor for a BigOctonion from long.BigOctonion(BigQuaternionRing fac, BigComplex r) Constructor for a BigOctonion from BigComplex.BigOctonion(BigQuaternionRing fac, BigRational r) Constructor for a BigOctonion from BigRational.BigOctonion(BigQuaternionRing fac, String s) The BigOctonion string constructor accepts the following formats: empty string, "quaternion", or "quat o quat" with no blanks around o if used as polynoial coefficient. -
Method Summary
Modifier and TypeMethodDescriptionabs()Octonion number absolute value.longReturns the number of bits in the representation of this BigOctonion, including a sign bit.Characteristic of this ring.intSince quaternion numbers are unordered, we use lexicographical order of re, im, jm and km.BigOctonion conjugate.copy()Clone this.copy(BigOctonion c) Copy BigOctonion element c.BigOctonion divide.BigOctonion divide.egcd(BigOctonion S) BigOctonion extended greatest common divisor.booleanComparison with any other object.factory()Get the corresponding element factory.fromInteger(long a) Get a BigOctonion element from a long.Get a BigOctonion element from a BigInteger.gcd(BigOctonion S) Octonion number greatest common divisor.Get a list of the generating elements.getI()Get the oi part.getONE()Get the one element.getR()Get the or part.getZERO()Get the zero element.inthashCode()Hash code for this BigOctonion.inverse()BigOctonion inverse.booleanQuery if this ring is associative.booleanQuery if this ring is commutative.booleanisField()Query if this ring is a field.booleanisFinite()Is this structure finite or infinite.booleanisIMAG()Is BigOctonion imaginary one.booleanisONE()Is BigOctonion number one.static booleanIs BigOctonion number one.static booleanIs Octonion number zero.booleanisUnit()Is BigOctonion unit element.booleanisZERO()Is BigOctonion number zero.BigOctonion left divide.BigOctonion multiply.negate()BigOctonion number negative.norm()Octonion number norm.static BigRationalOABS(BigOctonion A) Octonion number absolute value.static BigOctonionOCON(BigOctonion A) Octonion number conjugate.static BigOctonionODIF(BigOctonion A, BigOctonion B) Octonion number difference.static BigOctonionOINV(BigOctonion A) Octonion number inverse.static BigOctonionONEG(BigOctonion A) Octonion number negative.static BigOctonionOPROD(BigOctonion A, BigOctonion B) Octonion number product.static BigOctonionOQ(BigOctonion A, BigOctonion B) Octonion number quotient.static BigOctonionOSUM(BigOctonion A, BigOctonion B) Octonion number sum.Parse quaternion number from Reader.Parse quaternion number from String.Quotient and remainder by division of this by S.random(int n) BigOctonion random.BigOctonion random.BigOctonion remainder.BigOctonion right divide.intsignum()Since quaternion numbers are unordered, we use lexicographical order of re, im, jm and km.BigOctonion subtraction.sum(BigOctonion B) BigOctonion summation.toScript()Get a scripting compatible string representation.Get a scripting compatible string representation of the factory.toString()Get the string representation.Methods inherited from interface ElemFactory
valueOfMethods inherited from interface MonoidElem
leftRemainder, power, rightRemainder, twosidedDivide, twosidedRemainder
-
Field Details
-
or
First part of the data structure. -
oi
Second part of the data structure. -
random
-
logger
private static final org.apache.logging.log4j.Logger logger -
debug
private static final boolean debug -
ZERO
The constant 0. -
ONE
The constant 1. -
I
The constant i.
-
-
Constructor Details
-
BigOctonion
Constructor for a BigOctonion from Quaternions.- Parameters:
r- BigQuaternion.i- BigQuaternion.
-
BigOctonion
Constructor for a BigOctonion from BigQuaternion.- Parameters:
r- BigQuaternion.
-
BigOctonion
Constructor for a BigOctonion from BigComplex.- Parameters:
fac- BigQuaternionRing.r- BigComplex.
-
BigOctonion
Constructor for a BigOctonion from BigRational.- Parameters:
fac- BigQuaternionRing.r- BigRational.
-
BigOctonion
Constructor for a BigOctonion from long.- Parameters:
fac- BigQuaternionRing.r- long.
-
BigOctonion
Constructor for a BigOctonion with no arguments.- Parameters:
fac- BigQuaternionRing.
-
BigOctonion
The BigOctonion string constructor accepts the following formats: empty string, "quaternion", or "quat o quat" with no blanks around o if used as polynoial coefficient.- Parameters:
fac- BigQuaternionRing.s- String.- Throws:
NumberFormatException
-
-
Method Details
-
factory
Get the corresponding element factory.- Specified by:
factoryin interfaceElement<BigOctonion>- Returns:
- factory for this Element.
- See Also:
-
generators
Get a list of the generating elements.- Specified by:
generatorsin interfaceElemFactory<BigOctonion>- Returns:
- list of generators for the algebraic structure.
- See Also:
-
isFinite
public boolean isFinite()Is this structure finite or infinite.- Specified by:
isFinitein interfaceElemFactory<BigOctonion>- Returns:
- true if this structure is finite, else false.
- See Also:
-
copy
Clone this.- Specified by:
copyin interfaceElement<BigOctonion>- Returns:
- Creates and returns a copy of this Element.
- See Also:
-
copy
Copy BigOctonion element c.- Specified by:
copyin interfaceElemFactory<BigOctonion>- Parameters:
c- BigOctonion.- Returns:
- a copy of c.
-
getZERO
Get the zero element.- Specified by:
getZEROin interfaceAbelianGroupFactory<BigOctonion>- Returns:
- 0 as BigOctonion.
-
getONE
Get the one element.- Specified by:
getONEin interfaceMonoidFactory<BigOctonion>- Returns:
- q as BigOctonion.
-
isCommutative
public boolean isCommutative()Query if this ring is commutative.- Specified by:
isCommutativein interfaceMonoidFactory<BigOctonion>- Returns:
- false.
-
isAssociative
public boolean isAssociative()Query if this ring is associative.- Specified by:
isAssociativein interfaceMonoidFactory<BigOctonion>- Returns:
- false.
-
isField
public boolean isField()Query if this ring is a field.- Specified by:
isFieldin interfaceRingFactory<BigOctonion>- Returns:
- true.
-
characteristic
Characteristic of this ring.- Specified by:
characteristicin interfaceRingFactory<BigOctonion>- Returns:
- characteristic of this ring.
-
fromInteger
Get a BigOctonion element from a BigInteger.- Specified by:
fromIntegerin interfaceElemFactory<BigOctonion>- Parameters:
a- BigInteger.- Returns:
- a BigOctonion.
-
fromInteger
Get a BigOctonion element from a long.- Specified by:
fromIntegerin interfaceElemFactory<BigOctonion>- Parameters:
a- long.- Returns:
- a BigOctonion.
-
getR
-
getI
-
toString
-
toScript
Get a scripting compatible string representation.- Specified by:
toScriptin interfaceElement<BigOctonion>- Specified by:
toScriptin interfaceElemFactory<BigOctonion>- Returns:
- script compatible representation for this Element.
- See Also:
-
toScriptFactory
Get a scripting compatible string representation of the factory.- Specified by:
toScriptFactoryin interfaceElement<BigOctonion>- Returns:
- script compatible representation for this ElemFactory.
- See Also:
-
isOZERO
Is Octonion number zero.- Parameters:
A- BigOctonion.- Returns:
- true if A is 0, else false.
-
isZERO
public boolean isZERO()Is BigOctonion number zero.- Specified by:
isZEROin interfaceAbelianGroupElem<BigOctonion>- Returns:
- true if this is 0, else false.
- See Also:
-
isOONE
Is BigOctonion number one.- Parameters:
A- is a quaternion number.- Returns:
- true if A is 1, else false.
-
isONE
public boolean isONE()Is BigOctonion number one.- Specified by:
isONEin interfaceMonoidElem<BigOctonion>- Returns:
- true if this is 1, else false.
- See Also:
-
isIMAG
public boolean isIMAG()Is BigOctonion imaginary one.- Returns:
- true if this is i, else false.
-
isUnit
public boolean isUnit()Is BigOctonion unit element.- Specified by:
isUnitin interfaceMonoidElem<BigOctonion>- Returns:
- If this is a unit then true is returned, else false.
- See Also:
-
equals
-
hashCode
public int hashCode()Hash code for this BigOctonion.- Specified by:
hashCodein interfaceElement<BigOctonion>- Overrides:
hashCodein classObject- Returns:
- the hashCode.
- See Also:
-
compareTo
Since quaternion numbers are unordered, we use lexicographical order of re, im, jm and km.- Specified by:
compareToin interfaceComparable<BigOctonion>- Specified by:
compareToin interfaceElement<BigOctonion>- Parameters:
b- BigOctonion.- 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<BigOctonion>- Returns:
- 0 if this is equal to 0; 1 if or > 0, or or == 0 and oi > 0; -1 if or < 0, or or == 0 and oi < 0.
- See Also:
-
sum
BigOctonion summation.- Specified by:
sumin interfaceAbelianGroupElem<BigOctonion>- Parameters:
B- BigOctonion.- Returns:
- this+B.
-
OSUM
Octonion number sum.- Parameters:
A- BigOctonion.B- BigOctonion.- Returns:
- A+B.
-
ODIF
Octonion number difference.- Parameters:
A- BigOctonion.B- BigOctonion.- Returns:
- A-B.
-
subtract
BigOctonion subtraction.- Specified by:
subtractin interfaceAbelianGroupElem<BigOctonion>- Parameters:
B- BigOctonion.- Returns:
- this-B.
-
ONEG
Octonion number negative.- Parameters:
A- is a octonion number- Returns:
- -A.
-
negate
BigOctonion number negative.- Specified by:
negatein interfaceAbelianGroupElem<BigOctonion>- Returns:
- -this.
- See Also:
-
OCON
Octonion number conjugate.- Parameters:
A- is a quaternion number.- Returns:
- the quaternion conjugate of A.
-
conjugate
BigOctonion conjugate.- Specified by:
conjugatein interfaceStarRingElem<BigOctonion>- Returns:
- conjugate(this).
-
norm
Octonion number norm.- Specified by:
normin interfaceStarRingElem<BigOctonion>- Returns:
- ||this||.
- See Also:
-
abs
Octonion number absolute value.- Specified by:
absin interfaceAbelianGroupElem<BigOctonion>- Returns:
- |this|.
- See Also:
-
OABS
Octonion 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.
-
OPROD
Octonion number product.- Parameters:
A- BigOctonion.B- BigOctonion.- Returns:
- A*B.
-
multiply
BigOctonion multiply.- Specified by:
multiplyin interfaceMonoidElem<BigOctonion>- Parameters:
B- BigOctonion.- Returns:
- this*B.
-
OINV
Octonion number inverse.- Parameters:
A- is a non-zero quaternion number.- Returns:
- S with S * A = 1.
-
inverse
BigOctonion inverse.- Specified by:
inversein interfaceMonoidElem<BigOctonion>- Returns:
- S with S * this = 1.
- See Also:
-
remainder
BigOctonion remainder.- Specified by:
remainderin interfaceMonoidElem<BigOctonion>- Parameters:
S- BigOctonion.- Returns:
- 0.
-
OQ
Octonion number quotient.- Parameters:
A- BigOctonion.B- BigOctonion.- Returns:
- R/S.
-
divide
BigOctonion divide.- Specified by:
dividein interfaceMonoidElem<BigOctonion>- Parameters:
b- BigOctonion.- Returns:
- this * b**(-1).
-
rightDivide
BigOctonion right divide.- Specified by:
rightDividein interfaceMonoidElem<BigOctonion>- Parameters:
b- BigOctonion.- Returns:
- this * b**(-1).
-
leftDivide
BigOctonion left divide.- Specified by:
leftDividein interfaceMonoidElem<BigOctonion>- Parameters:
b- BigOctonion.- Returns:
- b**(-1) * this.
-
divide
BigOctonion divide.- Parameters:
b- BigRational.- Returns:
- this/b.
-
quotientRemainder
Quotient and remainder by division of this by S.- Specified by:
quotientRemainderin interfaceMonoidElem<BigOctonion>- Parameters:
S- a octonion number- Returns:
- [this/S, this - (this/S)*S].
-
random
BigOctonion 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<BigOctonion>- Parameters:
n- such that 0 ≤ A, B, C, D ≤ (2n-1).- Returns:
- R, a random BigOctonion.
-
random
BigOctonion 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<BigOctonion>- Parameters:
n- such that 0 ≤ A, B, C, D ≤ (2n-1).rnd- is a source for random bits.- Returns:
- R, a random BigOctonion.
-
parse
Parse quaternion number from String.- Specified by:
parsein interfaceElemFactory<BigOctonion>- Parameters:
s- String.- Returns:
- BigOctonion from s.
-
parse
Parse quaternion number from Reader.- Specified by:
parsein interfaceElemFactory<BigOctonion>- Parameters:
r- Reader.- Returns:
- next BigOctonion from r.
-
gcd
Octonion number greatest common divisor.- Specified by:
gcdin interfaceRingElem<BigOctonion>- Parameters:
S- BigOctonion.- Returns:
- gcd(this,S).
-
egcd
BigOctonion extended greatest common divisor.- Specified by:
egcdin interfaceRingElem<BigOctonion>- Parameters:
S- BigOctonion.- Returns:
- [ gcd(this,S), a, b ] with a*this + b*S = gcd(this,S).
-
bitLength
public long bitLength()Returns the number of bits in the representation of this BigOctonion, including a sign bit. It is equivalent toor.bitLength() + oi.bitLength().)- Returns:
- number of bits in the representation of this BigOctonion, including a sign bit.
-