# OctonionCategory R¶

OctonionCategory gives the categorial frame for the octonions, and eight-dimensional non-associative algebra, doubling the the quaternions in the same way as doubling the Complex numbers to get the quaternions.

- 0: %
- from AbelianMonoid
- 1: % if R has CharacteristicNonZero or R has CharacteristicZero
- 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 CharacteristicNonZero or R has CharacteristicZero
- from MagmaWithUnit
- ^: (%, PositiveInteger) -> %
- from Magma
- ~=: (%, %) -> Boolean
- from BasicType

- abs: % -> R if R has RealNumberSystem
`abs(o)`

computes the absolute value of an octonion, equal to the square root of the norm.- alternative?: () -> Boolean
- from FiniteRankNonAssociativeAlgebra R
- annihilate?: (%, %) -> Boolean if R has CharacteristicNonZero or R has CharacteristicZero
- 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 CharacteristicNonZero or R has CharacteristicZero
- 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
- from RetractableTo Fraction Integer
- coerce: Integer -> % if R has CharacteristicZero or R has CharacteristicNonZero or R has RetractableTo Integer
- from NonAssociativeRing
- 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: % -> %
`conjugate(o)`

negates the imaginary parts`i`

,`j`

,`k`

,`E`

,`I`

,`J`

,`K`

of octonian`o`

.- 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
`imagE(o)`

extracts the imaginary`E`

part of octonion`o`

.

- imagi: % -> R
`imagi(o)`

extracts the`i`

part of octonion`o`

.

- imagI: % -> R
`imagI(o)`

extracts the imaginary`I`

part of octonion`o`

.

- imagj: % -> R
`imagj(o)`

extracts the`j`

part of octonion`o`

.

- imagJ: % -> R
`imagJ(o)`

extracts the imaginary`J`

part of octonion`o`

.

- imagk: % -> R
`imagk(o)`

extracts the`k`

part of octonion`o`

.

- imagK: % -> R
`imagK(o)`

extracts the imaginary`K`

part of octonion`o`

.- index: PositiveInteger -> % if R has Finite
- from Finite

- inv: % -> % if R has Field
`inv(o)`

returns the inverse of`o`

if it exists.- 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 CharacteristicNonZero or R has CharacteristicZero
- from MagmaWithUnit
- leftPower: (%, PositiveInteger) -> %
- from Magma
- leftRankPolynomial: () -> SparseUnivariatePolynomial Polynomial R if R has Field
- from FramedNonAssociativeAlgebra R
- leftRecip: % -> Union(%, failed) if R has IntegralDomain or R has CharacteristicNonZero or R has CharacteristicZero
- 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
`norm(o)`

returns the norm of an octonion, equal to the sum of the squares of its coefficients.

- octon: (R, R, R, R, R, R, R, R) -> %
`octon(re, ri, rj, rk, rE, rI, rJ, rK)`

constructs an octonion from scalars.- one?: % -> Boolean if R has CharacteristicNonZero or R has CharacteristicZero
- 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
`rational(o)`

returns the real part if all seven imaginary parts are 0. Error: if`o`

is not rational.

- rational?: % -> Boolean if R has IntegerNumberSystem
`rational?(o)`

tests if`o`

is rational, i.e. that all seven imaginary parts are 0.

- rationalIfCan: % -> Union(Fraction Integer, failed) if R has IntegerNumberSystem
`rationalIfCan(o)`

returns the real part if all seven imaginary parts are 0, and “failed” otherwise.

- real: % -> R
`real(o)`

extracts real part of octonion`o`

.- recip: % -> Union(%, failed) if R has IntegralDomain or R has CharacteristicNonZero or R has CharacteristicZero
- 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
- from RetractableTo Fraction Integer
- retract: % -> Integer if R has RetractableTo Integer
- from RetractableTo Integer
- retract: % -> R
- from RetractableTo R
- retractIfCan: % -> Union(Fraction Integer, failed) if R has RetractableTo Fraction Integer
- from RetractableTo Fraction Integer
- retractIfCan: % -> Union(Integer, failed) if R has RetractableTo Integer
- from RetractableTo Integer
- 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 CharacteristicNonZero or R has CharacteristicZero
- from MagmaWithUnit
- rightPower: (%, PositiveInteger) -> %
- from Magma
- rightRankPolynomial: () -> SparseUnivariatePolynomial Polynomial R if R has Field
- from FramedNonAssociativeAlgebra R
- rightRecip: % -> Union(%, failed) if R has IntegralDomain or R has CharacteristicNonZero or R has CharacteristicZero
- 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 OrderedSet or R has Finite
- 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

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

BiModule(R, R)

CharacteristicNonZero if R has CharacteristicNonZero

CharacteristicZero if R has CharacteristicZero

Comparable if R has OrderedSet or R has Finite

ConvertibleTo InputForm if R has ConvertibleTo InputForm

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

Evalable R if R has Evalable R

FiniteRankNonAssociativeAlgebra R

InnerEvalable(R, R) if R has Evalable R

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

LeftModule % if R has CharacteristicNonZero or R has CharacteristicZero

MagmaWithUnit if R has CharacteristicNonZero or R has CharacteristicZero

Module R

Monoid if R has CharacteristicNonZero or R has CharacteristicZero

NonAssociativeRing if R has CharacteristicNonZero or R has CharacteristicZero

NonAssociativeSemiRing if R has CharacteristicNonZero or R has CharacteristicZero

OrderedSet if R has OrderedSet

PartialOrder if R has OrderedSet

RetractableTo Fraction Integer if R has RetractableTo Fraction Integer

RetractableTo Integer if R has RetractableTo Integer

RightModule % if R has CharacteristicNonZero or R has CharacteristicZero

Ring if R has CharacteristicNonZero or R has CharacteristicZero

Rng if R has CharacteristicNonZero or R has CharacteristicZero

SemiGroup if R has CharacteristicNonZero or R has CharacteristicZero

SemiRing if R has CharacteristicNonZero or R has CharacteristicZero

SemiRng if R has CharacteristicNonZero or R has CharacteristicZero

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