aboutsummaryrefslogtreecommitdiff
path: root/src/input/octonion.input.pamphlet
blob: 4deb8e82be0a202a851f3f09046b9030790f2f4d (plain)
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
\documentclass{article}
\usepackage{axiom}
\begin{document}
\title{\$SPAD/src/input octonion.input}
\author{The Axiom Team}
\maketitle
\begin{abstract}
\end{abstract}
\eject
\tableofcontents
\eject
\section{License}
<<license>>=
--Copyright The Numerical Algorithms Group Limited 1991.
@
<<*>>=
<<license>>

)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)
@
\eject
\begin{thebibliography}{99}
\bibitem{1} nothing
\end{thebibliography}
\end{document}