-
-
Notifications
You must be signed in to change notification settings - Fork 5
/
rtest_clifford.mac
87 lines (83 loc) · 2.25 KB
/
rtest_clifford.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
/*******************************
Clifford algebra
a lightweight package for performing Geometric Algebra calculations
tests for version
v 1.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),
/*
%path:read("Path to package"),
%path:append ([%path,"$$$.{mac,mc}"]),
*/
%path:"C:/Dropbox/maxima/$$$.{mac,mc}",
file_search_maxima:append (file_search_maxima , [%path]),
%start : absolute_real_time(),
load("clifford"),
'done);
'done$
get('clifford,'version);
v19$
permsign([a,c,b]);
-1$
permsign([a,b,c]);
1$
permsign([a,b,c*d]);
0$
/* init clifford" */
clifford(e,1,1,1);
[1,-1,0]$
/*matrix([1,0,0],[0,-1,0],[0,0,0])$*/
elements();
[e[1],e[2],e[3],e[1] . e[2],e[1] . e[3],e[2] . e[3],e[1] . e[2] . e[3]]$
/* clifford product tests" */
e[1].e[1];
1$
e[2].e[2];
-1$
e[3].e[3];
0$
e[2].e[1];
-e[1] . e[2]$
dotsimpc(e[2] . e[1] . e[2]);
e[1]$
e[1].e[2].e[1];
-e[2]$
e[1].e[1].e[2];
e[2]$
e[1].e[1].e[2].e[1];
-e[1] . e[2]$
e[1].e[1].e[2].e[1].e[2];
e[1]$
e[1].e[1].e[1].e[2].e[1];
-e[2]$
clifford(e,3,1);
[1,1,1,-1]$
dotsimpc(e[2] . e[1] . e[2]. e[3]);
-e[1] . e[3]$
oppart(e[2] . e[1] *x. e[2]. e[3], lambda([u], freeof(".", u)));
[-1,(e[1] . e[2])*(e[2] . e[3] . x)]$
dotsimpc(e[2] . e[1] . e[2]. e[3]*x);
-(e[1] . e[3])*x$
dotsimpc(e[2] . e[1] *x. e[2]. e[3]);
-e[1] . e[3] . x$
(declare(y, scalar),
dotsimpc(e[2] . e[1] .y. e[2]. e[3]));
-(e[1] . e[3])*y$