Rename *ll* and *ul* to ll and ul in in-interval
[maxima.git] / share / calculus / rtest_cartan.mac
blob9518747a1afbf889044f402588abfd2b81e13822
1 /* SF bug report #926: "sign errors in cartan package" */
3 (if get ('cartan, 'version) = false
4    then load (cartan),
5 0);
6 0;
8 (kill (aliases),
9  init_cartan([x1,x2,x11,x21]));
10 [dx1, dx2, dx11, dx21];
12 foo: block ([ff],
13     ff:x11*dx2+x21*dx1,
14     ext_diff(ff));
15 - dx1*dx21 - dx2*dx11;
17 /* verify ordering of operands */
18 subst ("*" = ".", foo);
19 - dx1.dx21 - dx2.dx11;
21 (kill (aliases),
22  init_cartan([x1,x2,x3,x4]));
23 [dx1, dx2, dx3, dx4];
25 foo: block ([ff],
26     ff:x3*dx2+x4*dx1,
27     ext_diff(ff));
28 -dx1*dx4-dx2*dx3;
30 subst ("*" = ".", foo);
31 -dx1.dx4-dx2.dx3;
33 (kill (aliases),
34  init_cartan([y,x,z]));
35 [dy, dx, dz];
37 cartan_coords;
38 [y, x, z];
40 cartan_dim;
43 cartan_basis;
44 [dy, dx, dz];
46 extdim;
49 foo: dx ~ dy ~ dz;
50 - dy*dx*dz;
52 subst ("*" = ".", foo);
53 - dy.dx.dz;
55 foo: dx ~ dy;
56 - dy*dx;
58 subst ("*" = ".", foo);
59 - dy.dx;
61 foo: dy ~ dx;
62 dy*dx;
64 subst ("*" = ".", foo);
65 dy.dx;
67 /* example from the mailing list circa 2021-05-20: "Can't Take Exterior Derivative with diff_form" */
69 (kill (aliases),
70  init_cartan ([x, y]));
71 [dx, dy];
73 omega: -y * dx + x * dy;
74 x*dy - y*dx;
76 subst ("*" = ".", omega);
77 x.dy - y.dx;
79 foo: ext_diff (omega);
80 2*dx*dy;
82 subst ("*" = ".", foo);
83 2*dx.dy;
85 (kill (aliases),
86  init_cartan ([x, y, z]));
87 [dx, dy, dz];
89 foo: dx ~ dy;
90 dx*dy;
92 subst ("*" = ".", foo);
93 dx.dy;
95 foo: dy ~ dx;
96 -dx*dy;
98 subst ("*" = ".", foo);
99 -dx.dy;
101 /* continuing with basis [dx, dy, dz], these are additional examples
102  * from "Differential Forms 02.wxmx" by Jeffrey Rolland
103  */
105 eta1: x*dy~dz +y*dz~dx +z*dx~dy;
106 x*dy*dz-y*dx*dz+z*dx*dy;
108 subst ("*" = ".", eta1);
109 x.dy.dz-y.dx.dz+z.dx.dy;
111 foo: ext_diff(eta1);
112 3*dx*dy*dz;
114 subst ("*" = ".", foo);
115 3*dx.dy.dz;
117 eta2: x*dy~dz +y*dx~dz +z*dx~dy;
118 x*dy*dz+y*dx*dz+z*dx*dy;
120 subst ("*" = ".", eta2);
121 x.dy.dz+y.dx.dz+z.dx.dy;
123 foo: ext_diff(eta2);
124 dx*dy*dz;
126 subst ("*" = ".", foo);
127 dx.dy.dz;