# Octonion RΒΆ

Octonion implements octonions (Cayley-Dixon algebra) over a commutative ring, an eight-dimensional non-associative algebra, doubling the quaternions in the same way as doubling the complex numbers to get the quaternions the main constructor function is octon which takes 8 arguments: the real part, the i imaginary part, the j imaginary part, the k imaginary part, (as with quaternions) and in addition the imaginary parts E, I, J, K.

0: %
from AbelianMonoid
1: % if R has CharacteristicZero or R has CharacteristicNonZero
from MagmaWithUnit
*: (%, %) -> %
from Magma
*: (%, R) -> %
from RightModule R
*: (Integer, %) -> %
from AbelianGroup
*: (NonNegativeInteger, %) -> %
from AbelianMonoid
*: (PositiveInteger, %) -> %
from AbelianSemiGroup
*: (R, %) -> %
from LeftModule R
+: (%, %) -> %
from AbelianSemiGroup
-: % -> %
from AbelianGroup
-: (%, %) -> %
from AbelianGroup
<: (%, %) -> Boolean if R has OrderedSet
from PartialOrder
<=: (%, %) -> Boolean if R has OrderedSet
from PartialOrder
=: (%, %) -> Boolean
from BasicType
>: (%, %) -> Boolean if R has OrderedSet
from PartialOrder
>=: (%, %) -> Boolean if R has OrderedSet
from PartialOrder
^: (%, NonNegativeInteger) -> % if R has CharacteristicZero or R has CharacteristicNonZero
from MagmaWithUnit
^: (%, PositiveInteger) -> %
from Magma
~=: (%, %) -> Boolean
from BasicType
abs: % -> R if R has RealNumberSystem
from OctonionCategory R
alternative?: () -> Boolean
from FiniteRankNonAssociativeAlgebra R
annihilate?: (%, %) -> Boolean if R has CharacteristicZero or R has CharacteristicNonZero
from Rng
antiAssociative?: () -> Boolean
from FiniteRankNonAssociativeAlgebra R
antiCommutative?: () -> Boolean
from FiniteRankNonAssociativeAlgebra R
antiCommutator: (%, %) -> %
from NonAssociativeSemiRng
apply: (Matrix R, %) -> %
from FramedNonAssociativeAlgebra R
associative?: () -> Boolean
from FiniteRankNonAssociativeAlgebra R
associator: (%, %, %) -> %
from NonAssociativeRng
associatorDependence: () -> List Vector R if R has IntegralDomain
from FiniteRankNonAssociativeAlgebra R
basis: () -> Vector %
from FramedModule R
characteristic: () -> NonNegativeInteger if R has CharacteristicZero or R has CharacteristicNonZero
from NonAssociativeRing
charthRoot: % -> Union(%, failed) if R has CharacteristicNonZero
from CharacteristicNonZero
coerce: % -> OutputForm
from CoercibleTo OutputForm
coerce: Fraction Integer -> % if R has RetractableTo Fraction Integer or Quaternion R has RetractableTo Fraction Integer
from RetractableTo Fraction Integer
coerce: Integer -> % if R has CharacteristicNonZero or R has CharacteristicZero or Quaternion R has RetractableTo Integer or R has RetractableTo Integer
from RetractableTo Integer
coerce: Quaternion R -> %
from RetractableTo Quaternion R
coerce: R -> %
from RetractableTo R
commutative?: () -> Boolean
from FiniteRankNonAssociativeAlgebra R
commutator: (%, %) -> %
from NonAssociativeRng
conditionsForIdempotents: () -> List Polynomial R
from FramedNonAssociativeAlgebra R
conditionsForIdempotents: Vector % -> List Polynomial R
from FiniteRankNonAssociativeAlgebra R
conjugate: % -> %
from OctonionCategory R
convert: % -> InputForm if R has ConvertibleTo InputForm
from ConvertibleTo InputForm
convert: % -> Vector R
from FramedModule R
convert: Vector R -> %
from FramedModule R
coordinates: % -> Vector R
from FramedModule R
coordinates: (%, Vector %) -> Vector R
from FiniteRankNonAssociativeAlgebra R
coordinates: (Vector %, Vector %) -> Matrix R
from FiniteRankNonAssociativeAlgebra R
coordinates: Vector % -> Matrix R
from FramedModule R
elt: (%, Integer) -> R
from FramedNonAssociativeAlgebra R
elt: (%, R) -> % if R has Eltable(R, R)
from Eltable(R, %)
enumerate: () -> List % if R has Finite
from Finite
eval: (%, Equation R) -> % if R has Evalable R
from Evalable R
eval: (%, List Equation R) -> % if R has Evalable R
from Evalable R
eval: (%, List R, List R) -> % if R has Evalable R
from InnerEvalable(R, R)
eval: (%, List Symbol, List R) -> % if R has InnerEvalable(Symbol, R)
from InnerEvalable(Symbol, R)
eval: (%, R, R) -> % if R has Evalable R
from InnerEvalable(R, R)
eval: (%, Symbol, R) -> % if R has InnerEvalable(Symbol, R)
from InnerEvalable(Symbol, R)
flexible?: () -> Boolean
from FiniteRankNonAssociativeAlgebra R
hash: % -> SingleInteger
from SetCategory
hashUpdate!: (HashState, %) -> HashState
from SetCategory
imagE: % -> R
from OctonionCategory R
imagi: % -> R
from OctonionCategory R
imagI: % -> R
from OctonionCategory R
imagj: % -> R
from OctonionCategory R
imagJ: % -> R
from OctonionCategory R
imagk: % -> R
from OctonionCategory R
imagK: % -> R
from OctonionCategory R
index: PositiveInteger -> % if R has Finite
from Finite
inv: % -> % if R has Field
from OctonionCategory R
jacobiIdentity?: () -> Boolean
from FiniteRankNonAssociativeAlgebra R
jordanAdmissible?: () -> Boolean
from FiniteRankNonAssociativeAlgebra R
jordanAlgebra?: () -> Boolean
from FiniteRankNonAssociativeAlgebra R
latex: % -> String
from SetCategory
leftAlternative?: () -> Boolean
from FiniteRankNonAssociativeAlgebra R
leftCharacteristicPolynomial: % -> SparseUnivariatePolynomial R
from FiniteRankNonAssociativeAlgebra R
leftDiscriminant: () -> R
from FramedNonAssociativeAlgebra R
leftDiscriminant: Vector % -> R
from FiniteRankNonAssociativeAlgebra R
leftMinimalPolynomial: % -> SparseUnivariatePolynomial R if R has IntegralDomain
from FiniteRankNonAssociativeAlgebra R
leftNorm: % -> R
from FiniteRankNonAssociativeAlgebra R
leftPower: (%, NonNegativeInteger) -> % if R has CharacteristicZero or R has CharacteristicNonZero
from MagmaWithUnit
leftPower: (%, PositiveInteger) -> %
from Magma
leftRankPolynomial: () -> SparseUnivariatePolynomial Polynomial R if R has Field
from FramedNonAssociativeAlgebra R
leftRecip: % -> Union(%, failed) if R has CharacteristicZero or R has CharacteristicNonZero or R has IntegralDomain
from FiniteRankNonAssociativeAlgebra R
leftRegularRepresentation: % -> Matrix R
from FramedNonAssociativeAlgebra R
leftRegularRepresentation: (%, Vector %) -> Matrix R
from FiniteRankNonAssociativeAlgebra R
leftTrace: % -> R
from FiniteRankNonAssociativeAlgebra R
leftTraceMatrix: () -> Matrix R
from FramedNonAssociativeAlgebra R
leftTraceMatrix: Vector % -> Matrix R
from FiniteRankNonAssociativeAlgebra R
leftUnit: () -> Union(%, failed) if R has IntegralDomain
from FiniteRankNonAssociativeAlgebra R
leftUnits: () -> Union(Record(particular: %, basis: List %), failed) if R has IntegralDomain
from FiniteRankNonAssociativeAlgebra R
lieAdmissible?: () -> Boolean
from FiniteRankNonAssociativeAlgebra R
lieAlgebra?: () -> Boolean
from FiniteRankNonAssociativeAlgebra R
lookup: % -> PositiveInteger if R has Finite
from Finite
map: (R -> R, %) -> %
from FullyEvalableOver R
max: (%, %) -> % if R has OrderedSet
from OrderedSet
min: (%, %) -> % if R has OrderedSet
from OrderedSet
noncommutativeJordanAlgebra?: () -> Boolean
from FiniteRankNonAssociativeAlgebra R
norm: % -> R
from OctonionCategory R
octon: (Quaternion R, Quaternion R) -> %
octon(qe, qE) constructs an octonion from two quaternions using the relation O = Q + QE.
octon: (R, R, R, R, R, R, R, R) -> %
from OctonionCategory R
one?: % -> Boolean if R has CharacteristicZero or R has CharacteristicNonZero
from MagmaWithUnit
opposite?: (%, %) -> Boolean
from AbelianMonoid
plenaryPower: (%, PositiveInteger) -> %
from NonAssociativeAlgebra R
powerAssociative?: () -> Boolean
from FiniteRankNonAssociativeAlgebra R
random: () -> % if R has Finite
from Finite
rank: () -> PositiveInteger
from FramedModule R
rational: % -> Fraction Integer if R has IntegerNumberSystem
from OctonionCategory R
rational?: % -> Boolean if R has IntegerNumberSystem
from OctonionCategory R
rationalIfCan: % -> Union(Fraction Integer, failed) if R has IntegerNumberSystem
from OctonionCategory R
real: % -> R
from OctonionCategory R
recip: % -> Union(%, failed) if R has CharacteristicZero or R has CharacteristicNonZero or R has IntegralDomain
from FiniteRankNonAssociativeAlgebra R
represents: (Vector R, Vector %) -> %
from FiniteRankNonAssociativeAlgebra R
represents: Vector R -> %
from FramedModule R
retract: % -> Fraction Integer if R has RetractableTo Fraction Integer or Quaternion R has RetractableTo Fraction Integer
from RetractableTo Fraction Integer
retract: % -> Integer if R has RetractableTo Integer or Quaternion R has RetractableTo Integer
from RetractableTo Integer
retract: % -> Quaternion R
from RetractableTo Quaternion R
retract: % -> R
from RetractableTo R
retractIfCan: % -> Union(Fraction Integer, failed) if R has RetractableTo Fraction Integer or Quaternion R has RetractableTo Fraction Integer
from RetractableTo Fraction Integer
retractIfCan: % -> Union(Integer, failed) if R has RetractableTo Integer or Quaternion R has RetractableTo Integer
from RetractableTo Integer
retractIfCan: % -> Union(Quaternion R, failed)
from RetractableTo Quaternion R
retractIfCan: % -> Union(R, failed)
from RetractableTo R
rightAlternative?: () -> Boolean
from FiniteRankNonAssociativeAlgebra R
rightCharacteristicPolynomial: % -> SparseUnivariatePolynomial R
from FiniteRankNonAssociativeAlgebra R
rightDiscriminant: () -> R
from FramedNonAssociativeAlgebra R
rightDiscriminant: Vector % -> R
from FiniteRankNonAssociativeAlgebra R
rightMinimalPolynomial: % -> SparseUnivariatePolynomial R if R has IntegralDomain
from FiniteRankNonAssociativeAlgebra R
rightNorm: % -> R
from FiniteRankNonAssociativeAlgebra R
rightPower: (%, NonNegativeInteger) -> % if R has CharacteristicZero or R has CharacteristicNonZero
from MagmaWithUnit
rightPower: (%, PositiveInteger) -> %
from Magma
rightRankPolynomial: () -> SparseUnivariatePolynomial Polynomial R if R has Field
from FramedNonAssociativeAlgebra R
rightRecip: % -> Union(%, failed) if R has CharacteristicZero or R has CharacteristicNonZero or R has IntegralDomain
from FiniteRankNonAssociativeAlgebra R
rightRegularRepresentation: % -> Matrix R
from FramedNonAssociativeAlgebra R
rightRegularRepresentation: (%, Vector %) -> Matrix R
from FiniteRankNonAssociativeAlgebra R
rightTrace: % -> R
from FiniteRankNonAssociativeAlgebra R
rightTraceMatrix: () -> Matrix R
from FramedNonAssociativeAlgebra R
rightTraceMatrix: Vector % -> Matrix R
from FiniteRankNonAssociativeAlgebra R
rightUnit: () -> Union(%, failed) if R has IntegralDomain
from FiniteRankNonAssociativeAlgebra R
rightUnits: () -> Union(Record(particular: %, basis: List %), failed) if R has IntegralDomain
from FiniteRankNonAssociativeAlgebra R
sample: %
from AbelianMonoid
size: () -> NonNegativeInteger if R has Finite
from Finite
smaller?: (%, %) -> Boolean if R has Finite or R has OrderedSet
from Comparable
someBasis: () -> Vector %
from FiniteRankNonAssociativeAlgebra R
structuralConstants: () -> Vector Matrix R
from FramedNonAssociativeAlgebra R
structuralConstants: Vector % -> Vector Matrix R
from FiniteRankNonAssociativeAlgebra R
subtractIfCan: (%, %) -> Union(%, failed)
from CancellationAbelianMonoid
unit: () -> Union(%, failed) if R has IntegralDomain
from FiniteRankNonAssociativeAlgebra R
zero?: % -> Boolean
from AbelianMonoid

AbelianGroup

AbelianMonoid

AbelianSemiGroup

BasicType

BiModule(%, %) if R has CharacteristicZero or R has CharacteristicNonZero

BiModule(R, R)

CancellationAbelianMonoid

Comparable if R has Finite or R has OrderedSet

Eltable(R, %) if R has Eltable(R, R)

Evalable R if R has Evalable R

Finite if R has Finite

InnerEvalable(R, R) if R has Evalable R

InnerEvalable(Symbol, R) if R has InnerEvalable(Symbol, R)

LeftModule % if R has CharacteristicZero or R has CharacteristicNonZero

Magma

MagmaWithUnit if R has CharacteristicZero or R has CharacteristicNonZero

Monoid if R has CharacteristicZero or R has CharacteristicNonZero

NonAssociativeRing if R has CharacteristicZero or R has CharacteristicNonZero

NonAssociativeRng

NonAssociativeSemiRing if R has CharacteristicZero or R has CharacteristicNonZero

NonAssociativeSemiRng

OrderedSet if R has OrderedSet

PartialOrder if R has OrderedSet

RightModule % if R has CharacteristicZero or R has CharacteristicNonZero

Ring if R has CharacteristicZero or R has CharacteristicNonZero

Rng if R has CharacteristicZero or R has CharacteristicNonZero

SemiGroup if R has CharacteristicZero or R has CharacteristicNonZero

SemiRing if R has CharacteristicZero or R has CharacteristicNonZero

SemiRng if R has CharacteristicZero or R has CharacteristicNonZero

SetCategory

unitsKnown if R has CharacteristicZero or R has CharacteristicNonZero or R has IntegralDomain