Function: Octonion[omul] - octonion product in the octonion non-associative division ring and its infix form '&o'
Calling Sequence:
omul(o1,o2,...on);
o1 &o o2 &o ... &o on;
Parameters:
o1, o2, ..., on - expressions of the type 'octonion'
Description:
Procedure 'omul' and its infix form '&o' give the octonion product in the non-associative division ring of octonions.
Octonions are considered here as para-vectors in the Clifford algebra Cl(0,7), that is, any expression of the form
x0 + x1*e1 + x2*e2 + x3*e3 + x4*e4 + x5*e5 + x6*e6 + x7*e7
where x0, x1, ..., x7 are real numbers, is of type 'octonion'. See
`type/octonion`
for more information.
The basis elements for the octonion algebra are {1,e1,e2,e3,e4,e5,e6,e7} (sometimes 'Id' is returned instead of '1'). They are collected in a global variable '_octbasis'. The basis elements {e1,e2,e3,e4,e5,e6,e7} give pure octonions and are collected in a global variable _pureoctbasis.
To display environmental variables from CLIFFORD and Octonion, use Cliff5[CLIFFORD_ENV] .
The infix form is given by `&o`, e.g., omul(e1,e2) = e1 &o e2. Remember that 'omul' is non-associative!
Octonionic inverse is computed with Octonion[oinv] .
To speed up computations, set the global variable _prolevel to 'true'. To find out more, see help page on Cliff5[cliparse] .
To see the default multiplication table try Octonion[omultable] and to define your own octonionic mutliplication see Octonion[def_omultable] .
Examples:
> restart:with(Cliff5):with(Octonion);
Warning, new definition for init
The following is the default octonionic mutliplication table:
> omultable();
> o1:=1-2*e1+3*e3+e4-e6+e7;
> o2:=2+e3-4*e6+e7;
> type(o1,octonion),type(o2,octonion);
> omul(o1,o2);
Octonionic multiplication is not commutative:
> o1 &o o2;
> o2 &o o1;
We show now that it is not associative either:
> (e1 &o e2) &o e3;
> e1 &o (e2 &o e3);
> o3:=2-3*e1+e5-e7;
> (o1 &o o2) &o o3;
> o1 &o (o2 &o o3);
The difference between (o1 &o o2) &o o3 and o1 &o (o2 &o o3) is measured by an associator, or see Octonion[associator] :
> associator(o1,o2,o3);
The difference between o1 &o o2 and o2 &o o1 is measured by a commutator, or see Octonion[commutator] :
> commutator(o1,o2);
>
See Also: Cliff5[version] , Octonion[oinv] , Octonion[def_omultable] , Octonion[omultable]