/usr/lib/open-axiom/input/octonion.input is in open-axiom-test 1.5.0~svn3056+ds-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | --Copyright The Numerical Algorithms Group Limited 1991.
)clear all
-- the octonions build a non-associative algebra:
oci1 := octon(1,2,3,4,5,6,7,8)
oci2 := octon(7,2,3,-4,5,6,-7,0)
oci3 := octon(-7,-12,3,-10,5,6,9,0)
oci := oci1 * oci2 * oci3
(oci1 * oci2) * oci3 - oci1 * (oci2 * oci3)
-- the following elements, together with 1, build a basis over the ground ring
octon(1,0,0,0,0,0,0,0)
i := octon(0,1,0,0,0,0,0,0)
j := octon(0,0,1,0,0,0,0,0)
octon(0,0,0,1,0,0,0,0)
octon(0,0,0,0,1,0,0,0)
octon(0,0,0,0,0,1,0,0)
J := octon(0,0,0,0,0,0,1,0)
octon(0,0,0,0,0,0,0,1)
i*(j*J)
(i*j)*J
-- we can extract the coefficient w.r.t. a basis element:
imagi oci
imagE oci
-- 1 and E build a basis with respect to the quaternions:
-- but what are the commuting rules?
qs := Quaternion Polynomial Integer
os := Octonion Polynomial Integer
-- a general quaternion:
q : qs := quatern(q1,qi,qj,qk)
E := octon(0,0,0,0,1,0,0,0)$os
q * E
E * q
q * 1$os
1$os * q
-- two general octonions:
o : os := octon(o1,oi,oj,ok,oE,oI,oJ,oK)
p : os := octon(p1,pi,pj,pk,pE,pI,pJ,pK)
-- the norm of an octonion is defined as the sum of the squares of the
-- coefficients:
norm o
-- and the norm is multiplicative:
norm(o*p)-norm(p*o)
|