Here is how I generated the tables for this page.
The tables were generated using this program.
The output of this program is shown below. To produce the results the program needs to have an XML input code. At the bottom of this page I have listed this input code.
Table for: octonion
a*b | b.1 | b.i | b.j | b.k | b.l | b.li | b.lj | b.lk |
a.1 | 1 | i | j | k | l | li | lj | lk |
a.i | i | -1 | k | -j | li | -l | -lk | lj |
a.j | j | -k | -1 | i | lj | lk | -l | -li |
a.k | k | j | -i | -1 | lk | -lj | li | -l |
a.l | l | -li | -lj | -lk | -1 | i | j | k |
a.li | li | l | -lk | lj | -i | -1 | -k | j |
a.lj | lj | lk | l | -li | -j | k | -1 | -i |
a.lk | lk | -lj | li | l | -k | -j | i | -1 |
analysing commutivity: table does not commute: for example: i*j != j*i
analysing associativity: table does not associate, for example, (i* j)* l=k* l=lk is not equal to i*(j* l)=i*lj=-lk
XML input code
To produce the results the program needs to have an XML input code listed here:
<classDef>
<outputTable type="product" format="html" name="octonion" analyse="on" enableLabels="on">
<mathTypeHypercomplex name="a" label="octonion" type="complex" elementLabels="1,i,j,k,l,li,lj,lk">
<mathTypeHypercomplex name="b" label="quaternion" type="complex" elementLabels="1,i,j,k">
<mathTypeHypercomplex name="c" label="complex" type="complex" elementLabels="1,i">
</mathTypeHypercomplex>
</mathTypeHypercomplex>
</mathTypeHypercomplex>
</outputTable>
</classDef>