# How can one best implement the multiplication of octonions using the Quaternions package?

I excerpt from p. 4 of the recent paper of P. J. Forrester (https://arxiv.org/pdf/1610.08081.pdf):

"Let $p_1$ and $p_2$ be quaternions. The octonion algebra consists of elements of the form $p_1+p_2 l$ with $p_2 l$ algebraically independent of $p_1$...,multiplication [is] defined by $$a b =(p_1 q_1 -\bar{q}_2 p_2)+(q_2 p_1 +p_2 \bar{q}_1) l, "$$ I have been trying to implement this multiplication via use of the Quaternions package. My "working hypothesis" is that this can be accomplished by

(Subscript[p, 1] + Subscript[p, 2] l) ** (Subscript[q, 1] +Subscript[q, 2 ] l)
`

but when I use particular values of quaternions for $p_1,p_2,q_1,q_2$, I don't get the results to fully distribute, to check the hypothesis. So, how might I most effectively implement the $a b$ multiplication? I want to incorporate such an algorithm into the (problematical?) calculation (http://link.springer.com/article/10.1007/s10496-010-0326-2) of determinants of $4 \times 4$ (random) matrices with octonionic entries (see Can one use the new random matrices features of Version 11 in addressing a certain octonionic-based question?).