-
-
Notifications
You must be signed in to change notification settings - Fork 5
/
rtest_clifford2.mac
121 lines (117 loc) · 2.94 KB
/
rtest_clifford2.mac
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
/*******************************
Clifford algebra
a lightweight package for performing Geometric Algebra calculations
tests for version
v 2.5
usage:
file_search_maxima: append (file_search_maxima,["/path/to/clifford.mac"]);
batch("rtest_clifford", test);
@depends clifford.mac
**********************************
* @license This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
(kill(all),
%start : absolute_real_time(),
%path:"C:/Dropbox/maxima/$$$.{mac,mc}",
file_search_maxima:append (file_search_maxima , [%path]),
load("clifford"),
'done);
'done$
get('clifford,'version);
v25$
block(
"init clifford complex",
clifford(e,0,1,0),
mtable2()
);
matrix([1,e[1]],[e[1],-1])$
block(
"init clifford split-complex",
clifford(e,1,0,0),
mtable2()
);
matrix([1,e[1]],[e[1],1])$
block(
"init clifford dual",
clifford(e,0,0,1),
mtable2()
);
matrix([1,e[1]],[e[1],0])$
block(
"init clifford quaternion",
clifford(e,0,2,0),
mtable2()
);
matrix([1,e[1],e[2],e[1] . e[2]],
[e[1],-1,e[1] . e[2],-e[2]],
[e[2],-e[1] . e[2],-1,e[1]],
[e[1] . e[2],e[2],-e[1],-1])$
/* clifford simplification tests" */
e[1] . e[2] . e[1] . e[2], dotsimpc;
-1$
e[2] . e[1] . e[1] . e[2], dotsimpc;
1$
/*inverses*/
1/e[2],dotinvsimp;
-e[2]$
1/e[1] . e[2], dotinvsimp;
-e[1] . e[2]$
1/(1+e[1]),dotinvsimp;
(1-e[1])/2$
(e[1]- e[2])^^2,expand;
-2$
(e[1]- e[2])^2,expand;
e[1]^2-2*e[1]*e[2]+e[2]^2$
block(
"init clifford geom/pauli",
clifford(e,3),
mtable1()
);
matrix([1,e[1],e[2],e[3]],
[e[1],1,e[1] . e[2],e[1] . e[3]],
[e[2],-e[1] . e[2],1,e[2] . e[3]],
[e[3],-e[1] . e[3],-e[2] . e[3],1])$
1/(e[1] . e[2]. e[3]), dotinvsimp;
-e[1] . e[2] . e[3]$
5/(e[1] . e[3]), dotinvsimp;
-5*(e[1] . e[3])$
1/e[1]-e[1],dotinvsimp;
0$
/* tripple product tests" */
e[1]| (-%iv. (e[2]&e[3]));
1$
e[2]| (-%iv. (e[3]&e[1]));
1$
e[3]| (-%iv. (e[1]&e[2])),dotsimpc;
1$
e[1]| ( (e[2]&e[3]));
0$
-%iv.(e[1]& (-%iv. (e[2]&e[3]))),dotsimpc;
0$
e[2]. (e[1]|e[3])+e[3]. (e[1]|e[2]);
0$
-(%iv. e[1]) & (- %iv. (e[2] & e[3])),dotsimpc;
-e[1] . e[2] . e[3]$
clihdual(e[1] &e[2]),dotsimpc;
e[3]$
clihdual(e[3] &e[1]),dotsimpc;
e[2]$
clihdual(e[2] &e[3]),dotsimpc;
e[1]$
block(
jacobprod(a,b,c):= ( a & b & c + b & c & a + c & a & b),
ev(jacobprod(e[1] ,e[2], e[3]), dotsimpc)
);
3*(e[1] . e[2] . e[3])$