Skip to content

Commit ca66680

Browse files
authored
Merge pull request #151 from eric-wieser/fix-dop-mutable-state
Don't allow *dop objects to be mutated, and correct the behavior of zero Dop / Sdop
2 parents 1c74c2e + 79eebfd commit ca66680

File tree

4 files changed

+66
-87
lines changed

4 files changed

+66
-87
lines changed

examples/ipython/LaTeX.ipynb

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -477,7 +477,7 @@
477477
"\\begin{document}\n",
478478
"\\begin{equation*} \\nabla = \\boldsymbol{e}_{x} \\frac{\\partial}{\\partial x} + \\boldsymbol{e}_{y} \\frac{\\partial}{\\partial y} + \\boldsymbol{e}_{z} \\frac{\\partial}{\\partial z} \\end{equation*}\n",
479479
"\\begin{equation*} \\nabla^{2} = \\nabla \\cdot \\nabla = \\frac{\\partial^{2}}{\\partial x^{2}} + \\frac{\\partial^{2}}{\\partial y^{2}} + \\frac{\\partial^{2}}{\\partial z^{2}} \\end{equation*}\n",
480-
"\\begin{equation*} \\lp\\nabla^{2}\\rp f = \\partial^{2}_{y} f + \\partial^{2}_{z} f \\end{equation*}\n",
480+
"\\begin{equation*} \\lp\\nabla^{2}\\rp f = \\partial^{2}_{x} f + \\partial^{2}_{y} f + \\partial^{2}_{z} f \\end{equation*}\n",
481481
"\\begin{equation*} \\nabla\\cdot\\lp\\nabla f\\rp = \\partial^{2}_{x} f + \\partial^{2}_{y} f + \\partial^{2}_{z} f \\end{equation*}\n",
482482
"\\begin{equation*} \\nabla^{2} = \\nabla\\cdot\\nabla = \\frac{2}{r} \\frac{\\partial}{\\partial r} + \\frac{1}{r^{2} \\tan{\\left (\\theta \\right )}} \\frac{\\partial}{\\partial \\theta } + \\frac{\\partial^{2}}{\\partial r^{2}} + r^{-2} \\frac{\\partial^{2}}{\\partial \\theta ^{2}} + \\frac{1}{r^{2} {\\sin{\\left (\\theta \\right )}}^{2}} \\frac{\\partial^{2}}{\\partial \\phi ^{2}} \\end{equation*}\n",
483483
"\\begin{equation*} \\lp\\nabla^{2}\\rp f = \\frac{r^{2} \\partial^{2}_{r} f + 2 r \\partial_{r} f + \\partial^{2}_{\\theta } f + \\frac{\\partial_{\\theta } f }{\\tan{\\left (\\theta \\right )}} + \\frac{\\partial^{2}_{\\phi } f }{{\\sin{\\left (\\theta \\right )}}^{2}}}{r^{2}} \\end{equation*}\n",
@@ -2216,7 +2216,7 @@
22162216
"\\begin{equation*} s \\boldsymbol{\\nabla} = \\boldsymbol{e}_{x} s \\frac{\\partial}{\\partial x} + \\boldsymbol{e}_{y} s \\frac{\\partial}{\\partial y} + \\boldsymbol{e}_{z} s \\frac{\\partial}{\\partial z} \\end{equation*}\n",
22172217
"\\begin{equation*} s \\W \\boldsymbol{\\nabla} = \\boldsymbol{e}_{x} s \\frac{\\partial}{\\partial x} + \\boldsymbol{e}_{y} s \\frac{\\partial}{\\partial y} + \\boldsymbol{e}_{z} s \\frac{\\partial}{\\partial z} \\end{equation*}\n",
22182218
"\\begin{equation*} s \\rfloor \\boldsymbol{\\nabla} = \\boldsymbol{e}_{x} s \\frac{\\partial}{\\partial x} + \\boldsymbol{e}_{y} s \\frac{\\partial}{\\partial y} + \\boldsymbol{e}_{z} s \\frac{\\partial}{\\partial z} \\end{equation*}\n",
2219-
"\\begin{equation*} s \\lfloor \\boldsymbol{\\nabla} = \\end{equation*}\n",
2219+
"\\begin{equation*} s \\lfloor \\boldsymbol{\\nabla} = 0 \\end{equation*}\n",
22202220
"\\begin{equation*} s s = {s }^{2} \\end{equation*}\n",
22212221
"\\begin{equation*} s \\W s = {s }^{2} \\end{equation*}\n",
22222222
"\\begin{equation*} s \\rfloor s = {s }^{2} \\end{equation*}\n",
@@ -2251,7 +2251,7 @@
22512251
"\\begin{equation*} b \\boldsymbol{\\nabla} = \\boldsymbol{e}_{x} \\left ( b^{xy} \\frac{\\partial}{\\partial y} + b^{xz} \\frac{\\partial}{\\partial z}\\right ) + \\boldsymbol{e}_{y} \\left ( - b^{xy} \\frac{\\partial}{\\partial x} + b^{yz} \\frac{\\partial}{\\partial z}\\right ) + \\boldsymbol{e}_{z} \\left ( - b^{xz} \\frac{\\partial}{\\partial x} - b^{yz} \\frac{\\partial}{\\partial y}\\right ) + \\boldsymbol{e}_{x}\\wedge \\boldsymbol{e}_{y}\\wedge \\boldsymbol{e}_{z} \\left ( b^{yz} \\frac{\\partial}{\\partial x} - b^{xz} \\frac{\\partial}{\\partial y} + b^{xy} \\frac{\\partial}{\\partial z}\\right ) \\end{equation*}\n",
22522252
"\\begin{equation*} b \\W \\boldsymbol{\\nabla} = \\boldsymbol{e}_{x}\\wedge \\boldsymbol{e}_{y}\\wedge \\boldsymbol{e}_{z} \\left ( b^{yz} \\frac{\\partial}{\\partial x} - b^{xz} \\frac{\\partial}{\\partial y} + b^{xy} \\frac{\\partial}{\\partial z}\\right ) \\end{equation*}\n",
22532253
"\\begin{equation*} b \\cdot \\boldsymbol{\\nabla} = \\boldsymbol{e}_{x} \\left ( b^{xy} \\frac{\\partial}{\\partial y} + b^{xz} \\frac{\\partial}{\\partial z}\\right ) + \\boldsymbol{e}_{y} \\left ( - b^{xy} \\frac{\\partial}{\\partial x} + b^{yz} \\frac{\\partial}{\\partial z}\\right ) + \\boldsymbol{e}_{z} \\left ( - b^{xz} \\frac{\\partial}{\\partial x} - b^{yz} \\frac{\\partial}{\\partial y}\\right ) \\end{equation*}\n",
2254-
"\\begin{equation*} b \\rfloor \\boldsymbol{\\nabla} = \\end{equation*}\n",
2254+
"\\begin{equation*} b \\rfloor \\boldsymbol{\\nabla} = 0 \\end{equation*}\n",
22552255
"\\begin{equation*} b \\lfloor \\boldsymbol{\\nabla} = \\boldsymbol{e}_{x} \\left ( b^{xy} \\frac{\\partial}{\\partial y} + b^{xz} \\frac{\\partial}{\\partial z}\\right ) + \\boldsymbol{e}_{y} \\left ( - b^{xy} \\frac{\\partial}{\\partial x} + b^{yz} \\frac{\\partial}{\\partial z}\\right ) + \\boldsymbol{e}_{z} \\left ( - b^{xz} \\frac{\\partial}{\\partial x} - b^{yz} \\frac{\\partial}{\\partial y}\\right ) \\end{equation*}\n",
22562256
"\\begin{equation*} b s = b^{xy} s \\boldsymbol{e}_{x}\\wedge \\boldsymbol{e}_{y} + b^{xz} s \\boldsymbol{e}_{x}\\wedge \\boldsymbol{e}_{z} + b^{yz} s \\boldsymbol{e}_{y}\\wedge \\boldsymbol{e}_{z} \\end{equation*}\n",
22572257
"\\begin{equation*} b \\W s = b^{xy} s \\boldsymbol{e}_{x}\\wedge \\boldsymbol{e}_{y} + b^{xz} s \\boldsymbol{e}_{x}\\wedge \\boldsymbol{e}_{z} + b^{yz} s \\boldsymbol{e}_{y}\\wedge \\boldsymbol{e}_{z} \\end{equation*}\n",
@@ -2287,7 +2287,7 @@
22872287
"\\begin{equation*} s \\W \\boldsymbol{\\nabla} = \\boldsymbol{e}_{x} \\left ( \\frac{\\left ( e_{y}\\cdot e_{y}\\right ) s }{\\left ( e_{x}\\cdot e_{x}\\right ) \\left ( e_{y}\\cdot e_{y}\\right ) - \\left ( e_{x}\\cdot e_{y}\\right ) ^{2}} \\frac{\\partial}{\\partial x} - \\frac{\\left ( e_{x}\\cdot e_{y}\\right ) s }{\\left ( e_{x}\\cdot e_{x}\\right ) \\left ( e_{y}\\cdot e_{y}\\right ) - \\left ( e_{x}\\cdot e_{y}\\right ) ^{2}} \\frac{\\partial}{\\partial y}\\right ) + \\boldsymbol{e}_{y} \\left ( - \\frac{\\left ( e_{x}\\cdot e_{y}\\right ) s }{\\left ( e_{x}\\cdot e_{x}\\right ) \\left ( e_{y}\\cdot e_{y}\\right ) - \\left ( e_{x}\\cdot e_{y}\\right ) ^{2}} \\frac{\\partial}{\\partial x} + \\frac{\\left ( e_{x}\\cdot e_{x}\\right ) s }{\\left ( e_{x}\\cdot e_{x}\\right ) \\left ( e_{y}\\cdot e_{y}\\right ) - \\left ( e_{x}\\cdot e_{y}\\right ) ^{2}} \\frac{\\partial}{\\partial y}\\right ) \\end{equation*}\n",
22882288
"\\begin{equation*} s \\cdot \\boldsymbol{\\nabla} = Not Allowed \\end{equation*}\n",
22892289
"\\begin{equation*} s \\rfloor \\boldsymbol{\\nabla} = \\boldsymbol{e}_{x} \\left ( \\frac{\\left ( e_{y}\\cdot e_{y}\\right ) s }{\\left ( e_{x}\\cdot e_{x}\\right ) \\left ( e_{y}\\cdot e_{y}\\right ) - \\left ( e_{x}\\cdot e_{y}\\right ) ^{2}} \\frac{\\partial}{\\partial x} - \\frac{\\left ( e_{x}\\cdot e_{y}\\right ) s }{\\left ( e_{x}\\cdot e_{x}\\right ) \\left ( e_{y}\\cdot e_{y}\\right ) - \\left ( e_{x}\\cdot e_{y}\\right ) ^{2}} \\frac{\\partial}{\\partial y}\\right ) + \\boldsymbol{e}_{y} \\left ( - \\frac{\\left ( e_{x}\\cdot e_{y}\\right ) s }{\\left ( e_{x}\\cdot e_{x}\\right ) \\left ( e_{y}\\cdot e_{y}\\right ) - \\left ( e_{x}\\cdot e_{y}\\right ) ^{2}} \\frac{\\partial}{\\partial x} + \\frac{\\left ( e_{x}\\cdot e_{x}\\right ) s }{\\left ( e_{x}\\cdot e_{x}\\right ) \\left ( e_{y}\\cdot e_{y}\\right ) - \\left ( e_{x}\\cdot e_{y}\\right ) ^{2}} \\frac{\\partial}{\\partial y}\\right ) \\end{equation*}\n",
2290-
"\\begin{equation*} s \\lfloor \\boldsymbol{\\nabla} = \\end{equation*}\n",
2290+
"\\begin{equation*} s \\lfloor \\boldsymbol{\\nabla} = 0 \\end{equation*}\n",
22912291
"\\begin{equation*} s s = {s }^{2} \\end{equation*}\n",
22922292
"\\begin{equation*} s \\W s = {s }^{2} \\end{equation*}\n",
22932293
"\\begin{equation*} s \\cdot s = Not Allowed \\end{equation*}\n",

examples/ipython/Old Format.ipynb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1027,7 +1027,7 @@
10271027
"s*grad = \\boldsymbol{e}_{x}*s {\\left (x,y,z \\right )} \\frac{\\partial}{\\partial x} + \\boldsymbol{e}_{y}*s {\\left (x,y,z \\right )} \\frac{\\partial}{\\partial y} + \\boldsymbol{e}_{z}*s {\\left (x,y,z \\right )} \\frac{\\partial}{\\partial z}\n",
10281028
"s^grad = \\boldsymbol{e}_{x}*s {\\left (x,y,z \\right )} \\frac{\\partial}{\\partial x} + \\boldsymbol{e}_{y}*s {\\left (x,y,z \\right )} \\frac{\\partial}{\\partial y} + \\boldsymbol{e}_{z}*s {\\left (x,y,z \\right )} \\frac{\\partial}{\\partial z}\n",
10291029
"s<grad = \\boldsymbol{e}_{x}*s {\\left (x,y,z \\right )} \\frac{\\partial}{\\partial x} + \\boldsymbol{e}_{y}*s {\\left (x,y,z \\right )} \\frac{\\partial}{\\partial y} + \\boldsymbol{e}_{z}*s {\\left (x,y,z \\right )} \\frac{\\partial}{\\partial z}\n",
1030-
"s>grad = \n",
1030+
"s>grad = 0 \n",
10311031
"s*s = s**2\n",
10321032
"s^s = s**2\n",
10331033
"s<s = s**2\n",
@@ -1064,7 +1064,7 @@
10641064
"b*grad = \\boldsymbol{e}_{x}*(b^{xy} {\\left (x,y,z \\right )} \\frac{\\partial}{\\partial y} + b^{xz} {\\left (x,y,z \\right )} \\frac{\\partial}{\\partial z}) + \\boldsymbol{e}_{y}*(- b^{xy} {\\left (x,y,z \\right )} \\frac{\\partial}{\\partial x} + b^{yz} {\\left (x,y,z \\right )} \\frac{\\partial}{\\partial z}) + \\boldsymbol{e}_{z}*(- b^{xz} {\\left (x,y,z \\right )} \\frac{\\partial}{\\partial x} - b^{yz} {\\left (x,y,z \\right )} \\frac{\\partial}{\\partial y}) + \\boldsymbol{e}_{x}\\wedge \\boldsymbol{e}_{y}\\wedge \\boldsymbol{e}_{z}*(b^{yz} {\\left (x,y,z \\right )} \\frac{\\partial}{\\partial x} - b^{xz} {\\left (x,y,z \\right )} \\frac{\\partial}{\\partial y} + b^{xy} {\\left (x,y,z \\right )} \\frac{\\partial}{\\partial z})\n",
10651065
"b^grad = \\boldsymbol{e}_{x}\\wedge \\boldsymbol{e}_{y}\\wedge \\boldsymbol{e}_{z}*(b^{yz} {\\left (x,y,z \\right )} \\frac{\\partial}{\\partial x} - b^{xz} {\\left (x,y,z \\right )} \\frac{\\partial}{\\partial y} + b^{xy} {\\left (x,y,z \\right )} \\frac{\\partial}{\\partial z})\n",
10661066
"b|grad = \\boldsymbol{e}_{x}*(b^{xy} {\\left (x,y,z \\right )} \\frac{\\partial}{\\partial y} + b^{xz} {\\left (x,y,z \\right )} \\frac{\\partial}{\\partial z}) + \\boldsymbol{e}_{y}*(- b^{xy} {\\left (x,y,z \\right )} \\frac{\\partial}{\\partial x} + b^{yz} {\\left (x,y,z \\right )} \\frac{\\partial}{\\partial z}) + \\boldsymbol{e}_{z}*(- b^{xz} {\\left (x,y,z \\right )} \\frac{\\partial}{\\partial x} - b^{yz} {\\left (x,y,z \\right )} \\frac{\\partial}{\\partial y})\n",
1067-
"b<grad = \n",
1067+
"b<grad = 0 \n",
10681068
"b>grad = \\boldsymbol{e}_{x}*(b^{xy} {\\left (x,y,z \\right )} \\frac{\\partial}{\\partial y} + b^{xz} {\\left (x,y,z \\right )} \\frac{\\partial}{\\partial z}) + \\boldsymbol{e}_{y}*(- b^{xy} {\\left (x,y,z \\right )} \\frac{\\partial}{\\partial x} + b^{yz} {\\left (x,y,z \\right )} \\frac{\\partial}{\\partial z}) + \\boldsymbol{e}_{z}*(- b^{xz} {\\left (x,y,z \\right )} \\frac{\\partial}{\\partial x} - b^{yz} {\\left (x,y,z \\right )} \\frac{\\partial}{\\partial y})\n",
10691069
"b*s = b__xy*s*e_x^e_y + b__xz*s*e_x^e_z + b__yz*s*e_y^e_z\n",
10701070
"b^s = b__xy*s*e_x^e_y + b__xz*s*e_x^e_z + b__yz*s*e_y^e_z\n",
@@ -1100,7 +1100,7 @@
11001100
"s*grad = \\boldsymbol{e}_{x}*(\\frac{\\left ( e_{y}\\cdot e_{y}\\right ) s {\\left (x,y \\right )}}{\\left ( e_{x}\\cdot e_{x}\\right ) \\left ( e_{y}\\cdot e_{y}\\right ) - \\left ( e_{x}\\cdot e_{y}\\right ) ^{2}} \\frac{\\partial}{\\partial x} - \\frac{\\left ( e_{x}\\cdot e_{y}\\right ) s {\\left (x,y \\right )}}{\\left ( e_{x}\\cdot e_{x}\\right ) \\left ( e_{y}\\cdot e_{y}\\right ) - \\left ( e_{x}\\cdot e_{y}\\right ) ^{2}} \\frac{\\partial}{\\partial y}) + \\boldsymbol{e}_{y}*(- \\frac{\\left ( e_{x}\\cdot e_{y}\\right ) s {\\left (x,y \\right )}}{\\left ( e_{x}\\cdot e_{x}\\right ) \\left ( e_{y}\\cdot e_{y}\\right ) - \\left ( e_{x}\\cdot e_{y}\\right ) ^{2}} \\frac{\\partial}{\\partial x} + \\frac{\\left ( e_{x}\\cdot e_{x}\\right ) s {\\left (x,y \\right )}}{\\left ( e_{x}\\cdot e_{x}\\right ) \\left ( e_{y}\\cdot e_{y}\\right ) - \\left ( e_{x}\\cdot e_{y}\\right ) ^{2}} \\frac{\\partial}{\\partial y})\n",
11011101
"s^grad = \\boldsymbol{e}_{x}*(\\frac{\\left ( e_{y}\\cdot e_{y}\\right ) s {\\left (x,y \\right )}}{\\left ( e_{x}\\cdot e_{x}\\right ) \\left ( e_{y}\\cdot e_{y}\\right ) - \\left ( e_{x}\\cdot e_{y}\\right ) ^{2}} \\frac{\\partial}{\\partial x} - \\frac{\\left ( e_{x}\\cdot e_{y}\\right ) s {\\left (x,y \\right )}}{\\left ( e_{x}\\cdot e_{x}\\right ) \\left ( e_{y}\\cdot e_{y}\\right ) - \\left ( e_{x}\\cdot e_{y}\\right ) ^{2}} \\frac{\\partial}{\\partial y}) + \\boldsymbol{e}_{y}*(- \\frac{\\left ( e_{x}\\cdot e_{y}\\right ) s {\\left (x,y \\right )}}{\\left ( e_{x}\\cdot e_{x}\\right ) \\left ( e_{y}\\cdot e_{y}\\right ) - \\left ( e_{x}\\cdot e_{y}\\right ) ^{2}} \\frac{\\partial}{\\partial x} + \\frac{\\left ( e_{x}\\cdot e_{x}\\right ) s {\\left (x,y \\right )}}{\\left ( e_{x}\\cdot e_{x}\\right ) \\left ( e_{y}\\cdot e_{y}\\right ) - \\left ( e_{x}\\cdot e_{y}\\right ) ^{2}} \\frac{\\partial}{\\partial y})\n",
11021102
"s<grad = \\boldsymbol{e}_{x}*(\\frac{\\left ( e_{y}\\cdot e_{y}\\right ) s {\\left (x,y \\right )}}{\\left ( e_{x}\\cdot e_{x}\\right ) \\left ( e_{y}\\cdot e_{y}\\right ) - \\left ( e_{x}\\cdot e_{y}\\right ) ^{2}} \\frac{\\partial}{\\partial x} - \\frac{\\left ( e_{x}\\cdot e_{y}\\right ) s {\\left (x,y \\right )}}{\\left ( e_{x}\\cdot e_{x}\\right ) \\left ( e_{y}\\cdot e_{y}\\right ) - \\left ( e_{x}\\cdot e_{y}\\right ) ^{2}} \\frac{\\partial}{\\partial y}) + \\boldsymbol{e}_{y}*(- \\frac{\\left ( e_{x}\\cdot e_{y}\\right ) s {\\left (x,y \\right )}}{\\left ( e_{x}\\cdot e_{x}\\right ) \\left ( e_{y}\\cdot e_{y}\\right ) - \\left ( e_{x}\\cdot e_{y}\\right ) ^{2}} \\frac{\\partial}{\\partial x} + \\frac{\\left ( e_{x}\\cdot e_{x}\\right ) s {\\left (x,y \\right )}}{\\left ( e_{x}\\cdot e_{x}\\right ) \\left ( e_{y}\\cdot e_{y}\\right ) - \\left ( e_{x}\\cdot e_{y}\\right ) ^{2}} \\frac{\\partial}{\\partial y})\n",
1103-
"s>grad = \n",
1103+
"s>grad = 0 \n",
11041104
"s*s = s**2\n",
11051105
"s^s = s**2\n",
11061106
"s<s = s**2\n",

examples/ipython/dop.ipynb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,10 +118,10 @@
118118
{
119119
"data": {
120120
"text/latex": [
121-
"\\begin{equation*} \\partial^{2}_{y} f + \\partial^{2}_{z} f \\end{equation*}"
121+
"\\begin{equation*} \\partial^{2}_{x} f + \\partial^{2}_{y} f + \\partial^{2}_{z} f \\end{equation*}"
122122
],
123123
"text/plain": [
124-
"\\partial^{2}_{y} f + \\partial^{2}_{z} f "
124+
"\\partial^{2}_{x} f + \\partial^{2}_{y} f + \\partial^{2}_{z} f "
125125
]
126126
},
127127
"execution_count": 6,

0 commit comments

Comments
 (0)