# GeneralQuaternion(R, p, q)ΒΆ

GeneralQuaternion implements general quaternions over a commutative ring. The main constructor function is quatern which takes 4 arguments: the real part, the i imaginary part, the j imaginary part and the k imaginary part.

0: %
from AbelianMonoid
1: %
from MagmaWithUnit
*: (%, %) -> %
from Magma
*: (%, Fraction Integer) -> % if R has Field
from RightModule Fraction Integer
*: (%, R) -> %
from RightModule R
*: (Fraction Integer, %) -> % if R has Field
from LeftModule Fraction Integer
*: (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
^: (%, Integer) -> % if R has Field
from DivisionRing
^: (%, NonNegativeInteger) -> %
from MagmaWithUnit
^: (%, PositiveInteger) -> %
from Magma
~=: (%, %) -> Boolean
from BasicType
abs: % -> R if R has RealNumberSystem
from QuaternionCategory R
annihilate?: (%, %) -> Boolean
from Rng
antiCommutator: (%, %) -> %
from NonAssociativeSemiRng
associates?: (%, %) -> Boolean if R has EntireRing
from EntireRing
associator: (%, %, %) -> %
from NonAssociativeRng
characteristic: () -> NonNegativeInteger
from NonAssociativeRing
charthRoot: % -> Union(%, failed) if R has CharacteristicNonZero
from CharacteristicNonZero
coerce: % -> OutputForm
from CoercibleTo OutputForm
coerce: Fraction Integer -> % if R has Field or R has RetractableTo Fraction Integer
from Algebra Fraction Integer
coerce: Integer -> %
from NonAssociativeRing
coerce: R -> %
from RetractableTo R
commutator: (%, %) -> %
from NonAssociativeRng
conjugate: % -> %
from QuaternionCategory R
convert: % -> InputForm if R has ConvertibleTo InputForm
from ConvertibleTo InputForm
D: % -> % if R has DifferentialRing
from DifferentialRing
D: (%, List Symbol) -> % if R has PartialDifferentialRing Symbol
from PartialDifferentialRing Symbol
D: (%, List Symbol, List NonNegativeInteger) -> % if R has PartialDifferentialRing Symbol
from PartialDifferentialRing Symbol
D: (%, NonNegativeInteger) -> % if R has DifferentialRing
from DifferentialRing
D: (%, R -> R) -> %
from DifferentialExtension R
D: (%, R -> R, NonNegativeInteger) -> %
from DifferentialExtension R
D: (%, Symbol) -> % if R has PartialDifferentialRing Symbol
from PartialDifferentialRing Symbol
D: (%, Symbol, NonNegativeInteger) -> % if R has PartialDifferentialRing Symbol
from PartialDifferentialRing Symbol
differentiate: % -> % if R has DifferentialRing
from DifferentialRing
differentiate: (%, List Symbol) -> % if R has PartialDifferentialRing Symbol
from PartialDifferentialRing Symbol
differentiate: (%, List Symbol, List NonNegativeInteger) -> % if R has PartialDifferentialRing Symbol
from PartialDifferentialRing Symbol
differentiate: (%, NonNegativeInteger) -> % if R has DifferentialRing
from DifferentialRing
differentiate: (%, R -> R) -> %
from DifferentialExtension R
differentiate: (%, R -> R, NonNegativeInteger) -> %
from DifferentialExtension R
differentiate: (%, Symbol) -> % if R has PartialDifferentialRing Symbol
from PartialDifferentialRing Symbol
differentiate: (%, Symbol, NonNegativeInteger) -> % if R has PartialDifferentialRing Symbol
from PartialDifferentialRing Symbol
elt: (%, R) -> % if R has Eltable(R, R)
from Eltable(R, %)
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)
exquo: (%, %) -> Union(%, failed) if R has EntireRing
from EntireRing
hash: % -> SingleInteger
from SetCategory
hashUpdate!: (HashState, %) -> HashState
from SetCategory
imagI: % -> R
from QuaternionCategory R
imagJ: % -> R
from QuaternionCategory R
imagK: % -> R
from QuaternionCategory R
inv: % -> % if R has Field
from DivisionRing
latex: % -> String
from SetCategory
leftPower: (%, NonNegativeInteger) -> %
from MagmaWithUnit
leftPower: (%, PositiveInteger) -> %
from Magma
leftRecip: % -> Union(%, failed)
from MagmaWithUnit
map: (R -> R, %) -> %
from FullyEvalableOver R
max: (%, %) -> % if R has OrderedSet
from OrderedSet
min: (%, %) -> % if R has OrderedSet
from OrderedSet
norm: % -> R
from QuaternionCategory R
one?: % -> Boolean
from MagmaWithUnit
opposite?: (%, %) -> Boolean
from AbelianMonoid
quatern: (R, R, R, R) -> %
from QuaternionCategory R
rational: % -> Fraction Integer if R has IntegerNumberSystem
from QuaternionCategory R
rational?: % -> Boolean if R has IntegerNumberSystem
from QuaternionCategory R
rationalIfCan: % -> Union(Fraction Integer, failed) if R has IntegerNumberSystem
from QuaternionCategory R
real: % -> R
from QuaternionCategory R
recip: % -> Union(%, failed)
from MagmaWithUnit
reducedSystem: (Matrix %, Vector %) -> Record(mat: Matrix Integer, vec: Vector Integer) if R has LinearlyExplicitOver Integer
from LinearlyExplicitOver Integer
reducedSystem: (Matrix %, Vector %) -> Record(mat: Matrix R, vec: Vector R)
from LinearlyExplicitOver R
reducedSystem: Matrix % -> Matrix Integer if R has LinearlyExplicitOver Integer
from LinearlyExplicitOver Integer
reducedSystem: Matrix % -> Matrix R
from LinearlyExplicitOver 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
rightPower: (%, NonNegativeInteger) -> %
from MagmaWithUnit
rightPower: (%, PositiveInteger) -> %
from Magma
rightRecip: % -> Union(%, failed)
from MagmaWithUnit
sample: %
from AbelianMonoid
smaller?: (%, %) -> Boolean if R has OrderedSet
from Comparable
subtractIfCan: (%, %) -> Union(%, failed)
from CancellationAbelianMonoid
unit?: % -> Boolean if R has EntireRing
from EntireRing
unitCanonical: % -> % if R has EntireRing
from EntireRing
unitNormal: % -> Record(unit: %, canonical: %, associate: %) if R has EntireRing
from EntireRing
zero?: % -> Boolean
from AbelianMonoid

AbelianGroup

AbelianMonoid

AbelianSemiGroup

Algebra Fraction Integer if R has Field

BasicType

BiModule(%, %)

BiModule(Fraction Integer, Fraction Integer) if R has Field

BiModule(R, R)

CancellationAbelianMonoid

Comparable if R has OrderedSet

DifferentialRing if R has DifferentialRing

DivisionRing if R has Field

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

EntireRing if R has EntireRing

Evalable R if R has Evalable R

InnerEvalable(R, R) if R has Evalable R

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

LeftModule Fraction Integer if R has Field

Magma

MagmaWithUnit

Module Fraction Integer if R has Field

Monoid

NonAssociativeRing

NonAssociativeRng

NonAssociativeSemiRing

NonAssociativeSemiRng

noZeroDivisors if R has EntireRing

OrderedSet if R has OrderedSet

PartialOrder if R has OrderedSet

RightModule Fraction Integer if R has Field

Ring

Rng

SemiGroup

SemiRing

SemiRng

SetCategory

unitsKnown