From r.hankin at noc.soton.ac.uk  Fri Jul 29 13:59:26 2005
From: r.hankin at noc.soton.ac.uk (Robin Hankin)
Date: Fri, 29 Jul 2005 12:59:26 +0100
Subject: [Rd] octonions
Message-ID: <245FBCC1-7FA2-4148-8F87-0C5D82D53DE8@soc.soton.ac.uk>

Hi

I  thought it would be fun to develop R functionality for
the octonions (there is  already some work on quaternions).

The octonions are an 8 dimensional algebra over the reals, so an  
octonion
may nicely be represented as a real vector of length 8.  Applications
are many and varied, mostly quantum mechanics.

I would like to develop some R functionality in this area.
My first problem is how to get (eg) a matrix whose entries are  
octonions?
It would  be nice for a %*% b to behave sensibly when a and b are
matrices with octonion elements.

Octonions  are not associative [that is,
x*(y*z) != (x*y)*z ] or commutative [x*y != y*x].
One usually sees an 8-by-8 table that gives the products.

At this stage, I'm polling for ideas on overall structure.
Would a package be the best way forward?  Or
writing an equivalent of complex.c? Or is there
another approach that would be better? The
basic multiplication table is easily implemented in C,
and I now have an (untested) R function OctonionProduct(. , .)
that multiplies two octonions; but I
am struggling to see how to make this play nicely with R: it's not
obvious how to make octonion matrices multiply as they should,
in the same way that (eg) complex matrices do.

Perhaps we could define "*" and "/"  appropriately for vectors of class
"octonion" (if such a thing makes sense):  or is there a better
way?  Also, Mod(), Re(), and perhaps
Conj() would have to be generalized to work with octonions.


comments please!


--
Robin Hankin
Uncertainty Analyst
National Oceanography Centre, Southampton
European Way, Southampton SO14 3ZH, UK
  tel  023-8059-7743



[Rd] octonions
Robin Hankin