This is used to debug https://github.com/pygae/galgebra/issues/?? .
The following code uses https://github.com/pygae/galgebra/tree/new_printer .
In [1]:
from sympy import symbols, sin, cos, Abs
from galgebra.ga import Ga
from galgebra.printer import Format, Fmt
from IPython.display import Latex
Format()
$$
\DeclareMathOperator{\Tr}{Tr}
\DeclareMathOperator{\Adj}{Adj}
\newcommand{\bfrac}[2]{\displaystyle\frac{#1}{#2}}
\newcommand{\lp}{\left (}
\newcommand{\rp}{\right )}
\newcommand{\paren}[1]{\lp {#1} \rp}
\newcommand{\half}{\frac{1}{2}}
\newcommand{\llt}{\left <}
\newcommand{\rgt}{\right >}
\newcommand{\abs}[1]{\left |{#1}\right | }
\newcommand{\pdiff}[2]{\bfrac{\partial {#1}}{\partial {#2}}}
\newcommand{\npdiff}[3]{\bfrac{\partial^{#3} {#1}}{\partial {#2}^{#3}}}
\newcommand{\lbrc}{\left \{}
\newcommand{\rbrc}{\right \}}
\newcommand{\W}{\wedge}
\newcommand{\prm}[1]{{#1}'}
\newcommand{\ddt}[1]{\bfrac{d{#1}}{dt}}
\newcommand{\R}{\dagger}
\newcommand{\deriv}[3]{\bfrac{d^{#3}#1}{d{#2}^{#3}}}
\newcommand{\grd}[1]{\left < {#1} \right >}
\newcommand{\f}[2]{{#1}\lp {#2} \rp}
\newcommand{\eval}[2]{\left . {#1} \right |_{#2}}
\newcommand{\bs}[1]{\boldsymbol{#1}}
\newcommand{\es}[1]{\boldsymbol{e}_{#1}}
\newcommand{\eS}[1]{\boldsymbol{e}^{#1}}
\newcommand{\grade}[2]{\left < {#1} \right >_{#2}}
\newcommand{\lc}{\rfloor}
\newcommand{\rc}{\lfloor}
\newcommand{\T}[1]{\text{#1}}
\newcommand{\lop}[1]{\overleftarrow{#1}}
\newcommand{\rop}[1]{\overrightarrow{#1}}
\newcommand{\ldot}{\lfloor}
\newcommand{\rdot}{\rfloor}
%MacDonald LaTeX macros
\newcommand {\thalf} {\textstyle \frac{1}{2}}
\newcommand {\tthird} {\textstyle \frac{1}{3}}
\newcommand {\tquarter} {\textstyle \frac{1}{4}}
\newcommand {\tsixth} {\textstyle \frac{1}{6}}
\newcommand {\RE} {\mathbb{R}}
\newcommand {\GA} {\mathbb{G}}
\newcommand {\inner} {\mathbin{\pmb{\cdot}}}
\renewcommand {\outer} {\mathbin{\wedge}}
\newcommand {\cross} {\mathbin{\times}}
\newcommand {\meet} {\mathbin{{\,\vee\;}}}
\renewcommand {\iff} {\Leftrightarrow}
\renewcommand {\impliedby}{\Leftarrow}
\renewcommand {\implies} {\Rightarrow}
\newcommand {\perpc} {\perp} % Orthogonal complement
\newcommand {\perpm} {*} % Dual of multivector
\newcommand {\del} {\mathbf{\nabla}} %{\boldsymbol\nabla\!}
\newcommand {\mpart}[2]{\left\langle\, #1 \,\right\rangle_{#2}} % AMS has a \part
\newcommand {\spart}[1]{\mpart{#1}{0}}
\newcommand {\ds} {\displaystyle}
\newcommand {\os} {\overset}
\newcommand {\galgebra} {\mbox{$\mathcal{G\!A}$\hspace{.01in}lgebra}}
\newcommand {\latex} {\LaTeX}
$$
In [2]:
xyz_coords = (x, y, z) = symbols('x y z', real=True)
(o3d, ex, ey, ez) = Ga.build('e', g=[1, 1, 1], coords=xyz_coords, norm=True)
o3d.g
Out[2]:
$$\left[\begin{matrix}1 & 0 & 0\\0 & 1 & 0\\0 & 0 & 1\end{matrix}\right]$$
In [3]:
o3d.basis
Out[3]:
$$\left [ e_{x}, \quad e_{y}, \quad e_{z}\right ]$$
In [4]:
# FIXME BUG
o3d.blades
Out[4]:
$$\left [ \left [ \right ], \quad \left [ e_{x}, \quad e_{y}, \quad e_{z}\right ], \quad \left [ e^{e}_{x y}, \quad e^{e}_{x z}, \quad e^{e}_{y z}\right ], \quad \left [ e^{e e}_{x y z}\right ]\right ]$$
In [5]:
print(o3d.blades)
$$ [[], [\boldsymbol{e}_{x}, \boldsymbol{e}_{y}, \boldsymbol{e}_{z}], [\boldsymbol{e}_{x}\wedge \boldsymbol{e}_{y}, \boldsymbol{e}_{x}\wedge \boldsymbol{e}_{z}, \boldsymbol{e}_{y}\wedge \boldsymbol{e}_{z}], [\boldsymbol{e}_{x}\wedge \boldsymbol{e}_{y}\wedge \boldsymbol{e}_{z}]] $$
In [6]:
def cross(x, y):
return (x ^ y).dual()
GA = Ga('e*1|2|3')
print('g =',GA.g)
a = GA.mv('a', 'vector')
b = GA.mv('b', 'vector')
c = GA.mv('c', 'vector')
(e1,e2,e3) = GA.mv()
print('a =',a)
print('b =',b)
print('c =',c)
print('I =',GA.i)
e123 = e1^e2^e3
print(r'(e_\W e_2\W e_3)^2 =',e123*e123)
bc = e123*(b^c)
print(r'(e_\W e_2\W e_3)(b\W c) =',bc.Fmt(3))
abc = a^bc
$$ g = \left [ \begin{array}{ccc} \left ( e_{1}\cdot e_{1}\right ) & \left ( e_{1}\cdot e_{2}\right ) & \left ( e_{1}\cdot e_{3}\right ) \\ \left ( e_{1}\cdot e_{2}\right ) & \left ( e_{2}\cdot e_{2}\right ) & \left ( e_{2}\cdot e_{3}\right ) \\ \left ( e_{1}\cdot e_{3}\right ) & \left ( e_{2}\cdot e_{3}\right ) & \left ( e_{3}\cdot e_{3}\right ) \end{array}\right ] $$
$$ a = a^{1} \boldsymbol{e}_{1} + a^{2} \boldsymbol{e}_{2} + a^{3} \boldsymbol{e}_{3} $$
$$ b = b^{1} \boldsymbol{e}_{1} + b^{2} \boldsymbol{e}_{2} + b^{3} \boldsymbol{e}_{3} $$
$$ c = c^{1} \boldsymbol{e}_{1} + c^{2} \boldsymbol{e}_{2} + c^{3} \boldsymbol{e}_{3} $$
$$ I = \frac{1}{\sqrt{\left ( e_{1}\cdot e_{1}\right ) \left ( e_{2}\cdot e_{2}\right ) \left ( e_{3}\cdot e_{3}\right ) - \left ( e_{1}\cdot e_{1}\right ) \left ( e_{2}\cdot e_{3}\right ) ^{2} - \left ( e_{1}\cdot e_{2}\right ) ^{2} \left ( e_{3}\cdot e_{3}\right ) + 2 \left ( e_{1}\cdot e_{2}\right ) \left ( e_{1}\cdot e_{3}\right ) \left ( e_{2}\cdot e_{3}\right ) - \left ( e_{1}\cdot e_{3}\right ) ^{2} \left ( e_{2}\cdot e_{2}\right ) }} \boldsymbol{e}_{1}\wedge \boldsymbol{e}_{2}\wedge \boldsymbol{e}_{3} $$
$$ (e_\W e_2\W e_3)^2 = - \left ( e_{1}\cdot e_{1}\right ) \left ( e_{2}\cdot e_{2}\right ) \left ( e_{3}\cdot e_{3}\right ) + \left ( e_{1}\cdot e_{1}\right ) \left ( e_{2}\cdot e_{3}\right ) ^{2} + \left ( e_{1}\cdot e_{2}\right ) ^{2} \left ( e_{3}\cdot e_{3}\right ) - 2 \left ( e_{1}\cdot e_{2}\right ) \left ( e_{1}\cdot e_{3}\right ) \left ( e_{2}\cdot e_{3}\right ) + \left ( e_{1}\cdot e_{3}\right ) ^{2} \left ( e_{2}\cdot e_{2}\right ) $$
$$ (e_\W e_2\W e_3)(b\W c) = \begin{align*} & \left ( - \left ( e_{1}\cdot e_{2}\right ) \left ( e_{2}\cdot e_{3}\right ) b^{1} c^{2} + \left ( e_{1}\cdot e_{2}\right ) \left ( e_{2}\cdot e_{3}\right ) b^{2} c^{1} - \left ( e_{1}\cdot e_{2}\right ) \left ( e_{3}\cdot e_{3}\right ) b^{1} c^{3} + \left ( e_{1}\cdot e_{2}\right ) \left ( e_{3}\cdot e_{3}\right ) b^{3} c^{1} + \left ( e_{1}\cdot e_{3}\right ) \left ( e_{2}\cdot e_{2}\right ) b^{1} c^{2} - \left ( e_{1}\cdot e_{3}\right ) \left ( e_{2}\cdot e_{2}\right ) b^{2} c^{1} + \left ( e_{1}\cdot e_{3}\right ) \left ( e_{2}\cdot e_{3}\right ) b^{1} c^{3} - \left ( e_{1}\cdot e_{3}\right ) \left ( e_{2}\cdot e_{3}\right ) b^{3} c^{1} - \left ( e_{2}\cdot e_{2}\right ) \left ( e_{3}\cdot e_{3}\right ) b^{2} c^{3} + \left ( e_{2}\cdot e_{2}\right ) \left ( e_{3}\cdot e_{3}\right ) b^{3} c^{2} + \left ( e_{2}\cdot e_{3}\right ) ^{2} b^{2} c^{3} - \left ( e_{2}\cdot e_{3}\right ) ^{2} b^{3} c^{2}\right ) \boldsymbol{e}_{1} \\ & + \left ( \left ( e_{1}\cdot e_{1}\right ) \left ( e_{2}\cdot e_{3}\right ) b^{1} c^{2} - \left ( e_{1}\cdot e_{1}\right ) \left ( e_{2}\cdot e_{3}\right ) b^{2} c^{1} + \left ( e_{1}\cdot e_{1}\right ) \left ( e_{3}\cdot e_{3}\right ) b^{1} c^{3} - \left ( e_{1}\cdot e_{1}\right ) \left ( e_{3}\cdot e_{3}\right ) b^{3} c^{1} - \left ( e_{1}\cdot e_{2}\right ) \left ( e_{1}\cdot e_{3}\right ) b^{1} c^{2} + \left ( e_{1}\cdot e_{2}\right ) \left ( e_{1}\cdot e_{3}\right ) b^{2} c^{1} + \left ( e_{1}\cdot e_{2}\right ) \left ( e_{3}\cdot e_{3}\right ) b^{2} c^{3} - \left ( e_{1}\cdot e_{2}\right ) \left ( e_{3}\cdot e_{3}\right ) b^{3} c^{2} - \left ( e_{1}\cdot e_{3}\right ) ^{2} b^{1} c^{3} + \left ( e_{1}\cdot e_{3}\right ) ^{2} b^{3} c^{1} - \left ( e_{1}\cdot e_{3}\right ) \left ( e_{2}\cdot e_{3}\right ) b^{2} c^{3} + \left ( e_{1}\cdot e_{3}\right ) \left ( e_{2}\cdot e_{3}\right ) b^{3} c^{2}\right ) \boldsymbol{e}_{2} \\ & + \left ( - \left ( e_{1}\cdot e_{1}\right ) \left ( e_{2}\cdot e_{2}\right ) b^{1} c^{2} + \left ( e_{1}\cdot e_{1}\right ) \left ( e_{2}\cdot e_{2}\right ) b^{2} c^{1} - \left ( e_{1}\cdot e_{1}\right ) \left ( e_{2}\cdot e_{3}\right ) b^{1} c^{3} + \left ( e_{1}\cdot e_{1}\right ) \left ( e_{2}\cdot e_{3}\right ) b^{3} c^{1} + \left ( e_{1}\cdot e_{2}\right ) ^{2} b^{1} c^{2} - \left ( e_{1}\cdot e_{2}\right ) ^{2} b^{2} c^{1} + \left ( e_{1}\cdot e_{2}\right ) \left ( e_{1}\cdot e_{3}\right ) b^{1} c^{3} - \left ( e_{1}\cdot e_{2}\right ) \left ( e_{1}\cdot e_{3}\right ) b^{3} c^{1} - \left ( e_{1}\cdot e_{2}\right ) \left ( e_{2}\cdot e_{3}\right ) b^{2} c^{3} + \left ( e_{1}\cdot e_{2}\right ) \left ( e_{2}\cdot e_{3}\right ) b^{3} c^{2} + \left ( e_{1}\cdot e_{3}\right ) \left ( e_{2}\cdot e_{2}\right ) b^{2} c^{3} - \left ( e_{1}\cdot e_{3}\right ) \left ( e_{2}\cdot e_{2}\right ) b^{3} c^{2}\right ) \boldsymbol{e}_{3} \end{align*}
$$
In [9]:
# Mathematically incorrect but printing works
print(r'(e_\W e_2\W e_3)(b\W c) =',bc.Fmt(3))
$$ (e_\W e_2\W e_3)(b\W c) = \begin{align*} & \left ( - \left ( e_{1}\cdot e_{2}\right ) \left ( e_{2}\cdot e_{3}\right ) b^{1} c^{2} + \left ( e_{1}\cdot e_{2}\right ) \left ( e_{2}\cdot e_{3}\right ) b^{2} c^{1} - \left ( e_{1}\cdot e_{2}\right ) \left ( e_{3}\cdot e_{3}\right ) b^{1} c^{3} + \left ( e_{1}\cdot e_{2}\right ) \left ( e_{3}\cdot e_{3}\right ) b^{3} c^{1} + \left ( e_{1}\cdot e_{3}\right ) \left ( e_{2}\cdot e_{2}\right ) b^{1} c^{2} - \left ( e_{1}\cdot e_{3}\right ) \left ( e_{2}\cdot e_{2}\right ) b^{2} c^{1} + \left ( e_{1}\cdot e_{3}\right ) \left ( e_{2}\cdot e_{3}\right ) b^{1} c^{3} - \left ( e_{1}\cdot e_{3}\right ) \left ( e_{2}\cdot e_{3}\right ) b^{3} c^{1} - \left ( e_{2}\cdot e_{2}\right ) \left ( e_{3}\cdot e_{3}\right ) b^{2} c^{3} + \left ( e_{2}\cdot e_{2}\right ) \left ( e_{3}\cdot e_{3}\right ) b^{3} c^{2} + \left ( e_{2}\cdot e_{3}\right ) ^{2} b^{2} c^{3} - \left ( e_{2}\cdot e_{3}\right ) ^{2} b^{3} c^{2}\right ) \boldsymbol{e}_{1} \\ & + \left ( \left ( e_{1}\cdot e_{1}\right ) \left ( e_{2}\cdot e_{3}\right ) b^{1} c^{2} - \left ( e_{1}\cdot e_{1}\right ) \left ( e_{2}\cdot e_{3}\right ) b^{2} c^{1} + \left ( e_{1}\cdot e_{1}\right ) \left ( e_{3}\cdot e_{3}\right ) b^{1} c^{3} - \left ( e_{1}\cdot e_{1}\right ) \left ( e_{3}\cdot e_{3}\right ) b^{3} c^{1} - \left ( e_{1}\cdot e_{2}\right ) \left ( e_{1}\cdot e_{3}\right ) b^{1} c^{2} + \left ( e_{1}\cdot e_{2}\right ) \left ( e_{1}\cdot e_{3}\right ) b^{2} c^{1} + \left ( e_{1}\cdot e_{2}\right ) \left ( e_{3}\cdot e_{3}\right ) b^{2} c^{3} - \left ( e_{1}\cdot e_{2}\right ) \left ( e_{3}\cdot e_{3}\right ) b^{3} c^{2} - \left ( e_{1}\cdot e_{3}\right ) ^{2} b^{1} c^{3} + \left ( e_{1}\cdot e_{3}\right ) ^{2} b^{3} c^{1} - \left ( e_{1}\cdot e_{3}\right ) \left ( e_{2}\cdot e_{3}\right ) b^{2} c^{3} + \left ( e_{1}\cdot e_{3}\right ) \left ( e_{2}\cdot e_{3}\right ) b^{3} c^{2}\right ) \boldsymbol{e}_{2} \\ & + \left ( - \left ( e_{1}\cdot e_{1}\right ) \left ( e_{2}\cdot e_{2}\right ) b^{1} c^{2} + \left ( e_{1}\cdot e_{1}\right ) \left ( e_{2}\cdot e_{2}\right ) b^{2} c^{1} - \left ( e_{1}\cdot e_{1}\right ) \left ( e_{2}\cdot e_{3}\right ) b^{1} c^{3} + \left ( e_{1}\cdot e_{1}\right ) \left ( e_{2}\cdot e_{3}\right ) b^{3} c^{1} + \left ( e_{1}\cdot e_{2}\right ) ^{2} b^{1} c^{2} - \left ( e_{1}\cdot e_{2}\right ) ^{2} b^{2} c^{1} + \left ( e_{1}\cdot e_{2}\right ) \left ( e_{1}\cdot e_{3}\right ) b^{1} c^{3} - \left ( e_{1}\cdot e_{2}\right ) \left ( e_{1}\cdot e_{3}\right ) b^{3} c^{1} - \left ( e_{1}\cdot e_{2}\right ) \left ( e_{2}\cdot e_{3}\right ) b^{2} c^{3} + \left ( e_{1}\cdot e_{2}\right ) \left ( e_{2}\cdot e_{3}\right ) b^{3} c^{2} + \left ( e_{1}\cdot e_{3}\right ) \left ( e_{2}\cdot e_{2}\right ) b^{2} c^{3} - \left ( e_{1}\cdot e_{3}\right ) \left ( e_{2}\cdot e_{2}\right ) b^{3} c^{2}\right ) \boldsymbol{e}_{3} \end{align*}
$$
In [13]:
# FIXME Printing fails for this combination
print(r'a \W ((e_1 \W e_2 \W e_3)(b \W c)) =',abc.Fmt(3))
$$ a \W ((e_1 \W e_2 \W e_3)(b \W c)) = \begin{align*} & \left ( \left ( e_{1}\cdot e_{1}\right ) \left ( e_{2}\cdot e_{3}\right ) a^{1} b^{1} c^{2} - \left ( e_{1}\cdot e_{1}\right ) \left ( e_{2}\cdot e_{3}\right ) a^{1} b^{2} c^{1} + \left ( e_{1}\cdot e_{1}\right ) \left ( e_{3}\cdot e_{3}\right ) a^{1} b^{1} c^{3} - \left ( e_{1}\cdot e_{1}\right ) \left ( e_{3}\cdot e_{3}\right ) a^{1} b^{3} c^{1} - \left ( e_{1}\cdot e_{2}\right ) \left ( e_{1}\cdot e_{3}\right ) a^{1} b^{1} c^{2} + \left ( e_{1}\cdot e_{2}\right ) \left ( e_{1}\cdot e_{3}\right ) a^{1} b^{2} c^{1} + \left ( e_{1}\cdot e_{2}\right ) \left ( e_{2}\cdot e_{3}\right ) a^{2} b^{1} c^{2} - \left ( e_{1}\cdot e_{2}\right ) \left ( e_{2}\cdot e_{3}\right ) a^{2} b^{2} c^{1} + \left ( e_{1}\cdot e_{2}\right ) \left ( e_{3}\cdot e_{3}\right ) a^{1} b^{2} c^{3} - \left ( e_{1}\cdot e_{2}\right ) \left ( e_{3}\cdot e_{3}\right ) a^{1} b^{3} c^{2} + \left ( e_{1}\cdot e_{2}\right ) \left ( e_{3}\cdot e_{3}\right ) a^{2} b^{1} c^{3} - \left ( e_{1}\cdot e_{2}\right ) \left ( e_{3}\cdot e_{3}\right ) a^{2} b^{3} c^{1} - \left ( e_{1}\cdot e_{3}\right ) ^{2} a^{1} b^{1} c^{3} + \left ( e_{1}\cdot e_{3}\right ) ^{2} a^{1} b^{3} c^{1} - \left ( e_{1}\cdot e_{3}\right ) \left ( e_{2}\cdot e_{2}\right ) a^{2} b^{1} c^{2} + \left ( e_{1}\cdot e_{3}\right ) \left ( e_{2}\cdot e_{2}\right ) a^{2} b^{2} c^{1} - \left ( e_{1}\cdot e_{3}\right ) \left ( e_{2}\cdot e_{3}\right ) a^{1} b^{2} c^{3} + \left ( e_{1}\cdot e_{3}\right ) \left ( e_{2}\cdot e_{3}\right ) a^{1} b^{3} c^{2} - \left ( e_{1}\cdot e_{3}\right ) \left ( e_{2}\cdot e_{3}\right ) a^{2} b^{1} c^{3} + \left ( e_{1}\cdot e_{3}\right ) \left ( e_{2}\cdot e_{3}\right ) a^{2} b^{3} c^{1} + \left ( e_{2}\cdot e_{2}\right ) \left ( e_{3}\cdot e_{3}\right ) a^{2} b^{2} c^{3} - \left ( e_{2}\cdot e_{2}\right ) \left ( e_{3}\cdot e_{3}\right ) a^{2} b^{3} c^{2} - \left ( e_{2}\cdot e_{3}\right ) ^{2} a^{2} b^{2} c^{3} + \left ( e_{2}\cdot e_{3}\right ) ^{2} a^{2} b^{3} c^{2}\right ) \boldsymbol{e}_{1}\wedge \boldsymbol{e}_{2} \\ & + \left ( - \left ( e_{1}\cdot e_{1}\right ) \left ( e_{2}\cdot e_{2}\right ) a^{1} b^{1} c^{2} + \left ( e_{1}\cdot e_{1}\right ) \left ( e_{2}\cdot e_{2}\right ) a^{1} b^{2} c^{1} - \left ( e_{1}\cdot e_{1}\right ) \left ( e_{2}\cdot e_{3}\right ) a^{1} b^{1} c^{3} + \left ( e_{1}\cdot e_{1}\right ) \left ( e_{2}\cdot e_{3}\right ) a^{1} b^{3} c^{1} + \left ( e_{1}\cdot e_{2}\right ) ^{2} a^{1} b^{1} c^{2} - \left ( e_{1}\cdot e_{2}\right ) ^{2} a^{1} b^{2} c^{1} + \left ( e_{1}\cdot e_{2}\right ) \left ( e_{1}\cdot e_{3}\right ) a^{1} b^{1} c^{3} - \left ( e_{1}\cdot e_{2}\right ) \left ( e_{1}\cdot e_{3}\right ) a^{1} b^{3} c^{1} - \left ( e_{1}\cdot e_{2}\right ) \left ( e_{2}\cdot e_{3}\right ) a^{1} b^{2} c^{3} + \left ( e_{1}\cdot e_{2}\right ) \left ( e_{2}\cdot e_{3}\right ) a^{1} b^{3} c^{2} + \left ( e_{1}\cdot e_{2}\right ) \left ( e_{2}\cdot e_{3}\right ) a^{3} b^{1} c^{2} - \left ( e_{1}\cdot e_{2}\right ) \left ( e_{2}\cdot e_{3}\right ) a^{3} b^{2} c^{1} + \left ( e_{1}\cdot e_{2}\right ) \left ( e_{3}\cdot e_{3}\right ) a^{3} b^{1} c^{3} - \left ( e_{1}\cdot e_{2}\right ) \left ( e_{3}\cdot e_{3}\right ) a^{3} b^{3} c^{1} + \left ( e_{1}\cdot e_{3}\right ) \left ( e_{2}\cdot e_{2}\right ) a^{1} b^{2} c^{3} - \left ( e_{1}\cdot e_{3}\right ) \left ( e_{2}\cdot e_{2}\right ) a^{1} b^{3} c^{2} - \left ( e_{1}\cdot e_{3}\right ) \left ( e_{2}\cdot e_{2}\right ) a^{3} b^{1} c^{2} + \left ( e_{1}\cdot e_{3}\right ) \left ( e_{2}\cdot e_{2}\right ) a^{3} b^{2} c^{1} - \left ( e_{1}\cdot e_{3}\right ) \left ( e_{2}\cdot e_{3}\right ) a^{3} b^{1} c^{3} + \left ( e_{1}\cdot e_{3}\right ) \left ( e_{2}\cdot e_{3}\right ) a^{3} b^{3} c^{1} + \left ( e_{2}\cdot e_{2}\right ) \left ( e_{3}\cdot e_{3}\right ) a^{3} b^{2} c^{3} - \left ( e_{2}\cdot e_{2}\right ) \left ( e_{3}\cdot e_{3}\right ) a^{3} b^{3} c^{2} - \left ( e_{2}\cdot e_{3}\right ) ^{2} a^{3} b^{2} c^{3} + \left ( e_{2}\cdot e_{3}\right ) ^{2} a^{3} b^{3} c^{2}\right ) \boldsymbol{e}_{1}\wedge \boldsymbol{e}_{3} \\ & + \left ( - \left ( e_{1}\cdot e_{1}\right ) \left ( e_{2}\cdot e_{2}\right ) a^{2} b^{1} c^{2} + \left ( e_{1}\cdot e_{1}\right ) \left ( e_{2}\cdot e_{2}\right ) a^{2} b^{2} c^{1} - \left ( e_{1}\cdot e_{1}\right ) \left ( e_{2}\cdot e_{3}\right ) a^{2} b^{1} c^{3} + \left ( e_{1}\cdot e_{1}\right ) \left ( e_{2}\cdot e_{3}\right ) a^{2} b^{3} c^{1} - \left ( e_{1}\cdot e_{1}\right ) \left ( e_{2}\cdot e_{3}\right ) a^{3} b^{1} c^{2} + \left ( e_{1}\cdot e_{1}\right ) \left ( e_{2}\cdot e_{3}\right ) a^{3} b^{2} c^{1} - \left ( e_{1}\cdot e_{1}\right ) \left ( e_{3}\cdot e_{3}\right ) a^{3} b^{1} c^{3} + \left ( e_{1}\cdot e_{1}\right ) \left ( e_{3}\cdot e_{3}\right ) a^{3} b^{3} c^{1} + \left ( e_{1}\cdot e_{2}\right ) ^{2} a^{2} b^{1} c^{2} - \left ( e_{1}\cdot e_{2}\right ) ^{2} a^{2} b^{2} c^{1} + \left ( e_{1}\cdot e_{2}\right ) \left ( e_{1}\cdot e_{3}\right ) a^{2} b^{1} c^{3} - \left ( e_{1}\cdot e_{2}\right ) \left ( e_{1}\cdot e_{3}\right ) a^{2} b^{3} c^{1} + \left ( e_{1}\cdot e_{2}\right ) \left ( e_{1}\cdot e_{3}\right ) a^{3} b^{1} c^{2} - \left ( e_{1}\cdot e_{2}\right ) \left ( e_{1}\cdot e_{3}\right ) a^{3} b^{2} c^{1} - \left ( e_{1}\cdot e_{2}\right ) \left ( e_{2}\cdot e_{3}\right ) a^{2} b^{2} c^{3} + \left ( e_{1}\cdot e_{2}\right ) \left ( e_{2}\cdot e_{3}\right ) a^{2} b^{3} c^{2} - \left ( e_{1}\cdot e_{2}\right ) \left ( e_{3}\cdot e_{3}\right ) a^{3} b^{2} c^{3} + \left ( e_{1}\cdot e_{2}\right ) \left ( e_{3}\cdot e_{3}\right ) a^{3} b^{3} c^{2} + \left ( e_{1}\cdot e_{3}\right ) ^{2} a^{3} b^{1} c^{3} - \left ( e_{1}\cdot e_{3}\right ) ^{2} a^{3} b^{3} c^{1} + \left ( e_{1}\cdot e_{3}\right ) \left ( e_{2}\cdot e_{2}\right ) a^{2} b^{2} c^{3} - \left ( e_{1}\cdot e_{3}\right ) \left ( e_{2}\cdot e_{2}\right ) a^{2} b^{3} c^{2} + \left ( e_{1}\cdot e_{3}\right ) \left ( e_{2}\cdot e_{3}\right ) a^{3} b^{2} c^{3} - \left ( e_{1}\cdot e_{3}\right ) \left ( e_{2}\cdot e_{3}\right ) a^{3} b^{3} c^{2}\right ) \boldsymbol{e}_{2}\wedge \boldsymbol{e}_{3} \end{align*}
$$
In [11]:
print(r'a \wedge ((e_1 \wedge e_2 \wedge e_3)(b \wedge c)) =',abc.Fmt(3))
$$ a \wedge ((e_1 \wedge e_2 \wedge e_3)(b \wedge c)) = \begin{align*} & \left ( \left ( e_{1}\cdot e_{1}\right ) \left ( e_{2}\cdot e_{3}\right ) a^{1} b^{1} c^{2} - \left ( e_{1}\cdot e_{1}\right ) \left ( e_{2}\cdot e_{3}\right ) a^{1} b^{2} c^{1} + \left ( e_{1}\cdot e_{1}\right ) \left ( e_{3}\cdot e_{3}\right ) a^{1} b^{1} c^{3} - \left ( e_{1}\cdot e_{1}\right ) \left ( e_{3}\cdot e_{3}\right ) a^{1} b^{3} c^{1} - \left ( e_{1}\cdot e_{2}\right ) \left ( e_{1}\cdot e_{3}\right ) a^{1} b^{1} c^{2} + \left ( e_{1}\cdot e_{2}\right ) \left ( e_{1}\cdot e_{3}\right ) a^{1} b^{2} c^{1} + \left ( e_{1}\cdot e_{2}\right ) \left ( e_{2}\cdot e_{3}\right ) a^{2} b^{1} c^{2} - \left ( e_{1}\cdot e_{2}\right ) \left ( e_{2}\cdot e_{3}\right ) a^{2} b^{2} c^{1} + \left ( e_{1}\cdot e_{2}\right ) \left ( e_{3}\cdot e_{3}\right ) a^{1} b^{2} c^{3} - \left ( e_{1}\cdot e_{2}\right ) \left ( e_{3}\cdot e_{3}\right ) a^{1} b^{3} c^{2} + \left ( e_{1}\cdot e_{2}\right ) \left ( e_{3}\cdot e_{3}\right ) a^{2} b^{1} c^{3} - \left ( e_{1}\cdot e_{2}\right ) \left ( e_{3}\cdot e_{3}\right ) a^{2} b^{3} c^{1} - \left ( e_{1}\cdot e_{3}\right ) ^{2} a^{1} b^{1} c^{3} + \left ( e_{1}\cdot e_{3}\right ) ^{2} a^{1} b^{3} c^{1} - \left ( e_{1}\cdot e_{3}\right ) \left ( e_{2}\cdot e_{2}\right ) a^{2} b^{1} c^{2} + \left ( e_{1}\cdot e_{3}\right ) \left ( e_{2}\cdot e_{2}\right ) a^{2} b^{2} c^{1} - \left ( e_{1}\cdot e_{3}\right ) \left ( e_{2}\cdot e_{3}\right ) a^{1} b^{2} c^{3} + \left ( e_{1}\cdot e_{3}\right ) \left ( e_{2}\cdot e_{3}\right ) a^{1} b^{3} c^{2} - \left ( e_{1}\cdot e_{3}\right ) \left ( e_{2}\cdot e_{3}\right ) a^{2} b^{1} c^{3} + \left ( e_{1}\cdot e_{3}\right ) \left ( e_{2}\cdot e_{3}\right ) a^{2} b^{3} c^{1} + \left ( e_{2}\cdot e_{2}\right ) \left ( e_{3}\cdot e_{3}\right ) a^{2} b^{2} c^{3} - \left ( e_{2}\cdot e_{2}\right ) \left ( e_{3}\cdot e_{3}\right ) a^{2} b^{3} c^{2} - \left ( e_{2}\cdot e_{3}\right ) ^{2} a^{2} b^{2} c^{3} + \left ( e_{2}\cdot e_{3}\right ) ^{2} a^{2} b^{3} c^{2}\right ) \boldsymbol{e}_{1}\wedge \boldsymbol{e}_{2} \\ & + \left ( - \left ( e_{1}\cdot e_{1}\right ) \left ( e_{2}\cdot e_{2}\right ) a^{1} b^{1} c^{2} + \left ( e_{1}\cdot e_{1}\right ) \left ( e_{2}\cdot e_{2}\right ) a^{1} b^{2} c^{1} - \left ( e_{1}\cdot e_{1}\right ) \left ( e_{2}\cdot e_{3}\right ) a^{1} b^{1} c^{3} + \left ( e_{1}\cdot e_{1}\right ) \left ( e_{2}\cdot e_{3}\right ) a^{1} b^{3} c^{1} + \left ( e_{1}\cdot e_{2}\right ) ^{2} a^{1} b^{1} c^{2} - \left ( e_{1}\cdot e_{2}\right ) ^{2} a^{1} b^{2} c^{1} + \left ( e_{1}\cdot e_{2}\right ) \left ( e_{1}\cdot e_{3}\right ) a^{1} b^{1} c^{3} - \left ( e_{1}\cdot e_{2}\right ) \left ( e_{1}\cdot e_{3}\right ) a^{1} b^{3} c^{1} - \left ( e_{1}\cdot e_{2}\right ) \left ( e_{2}\cdot e_{3}\right ) a^{1} b^{2} c^{3} + \left ( e_{1}\cdot e_{2}\right ) \left ( e_{2}\cdot e_{3}\right ) a^{1} b^{3} c^{2} + \left ( e_{1}\cdot e_{2}\right ) \left ( e_{2}\cdot e_{3}\right ) a^{3} b^{1} c^{2} - \left ( e_{1}\cdot e_{2}\right ) \left ( e_{2}\cdot e_{3}\right ) a^{3} b^{2} c^{1} + \left ( e_{1}\cdot e_{2}\right ) \left ( e_{3}\cdot e_{3}\right ) a^{3} b^{1} c^{3} - \left ( e_{1}\cdot e_{2}\right ) \left ( e_{3}\cdot e_{3}\right ) a^{3} b^{3} c^{1} + \left ( e_{1}\cdot e_{3}\right ) \left ( e_{2}\cdot e_{2}\right ) a^{1} b^{2} c^{3} - \left ( e_{1}\cdot e_{3}\right ) \left ( e_{2}\cdot e_{2}\right ) a^{1} b^{3} c^{2} - \left ( e_{1}\cdot e_{3}\right ) \left ( e_{2}\cdot e_{2}\right ) a^{3} b^{1} c^{2} + \left ( e_{1}\cdot e_{3}\right ) \left ( e_{2}\cdot e_{2}\right ) a^{3} b^{2} c^{1} - \left ( e_{1}\cdot e_{3}\right ) \left ( e_{2}\cdot e_{3}\right ) a^{3} b^{1} c^{3} + \left ( e_{1}\cdot e_{3}\right ) \left ( e_{2}\cdot e_{3}\right ) a^{3} b^{3} c^{1} + \left ( e_{2}\cdot e_{2}\right ) \left ( e_{3}\cdot e_{3}\right ) a^{3} b^{2} c^{3} - \left ( e_{2}\cdot e_{2}\right ) \left ( e_{3}\cdot e_{3}\right ) a^{3} b^{3} c^{2} - \left ( e_{2}\cdot e_{3}\right ) ^{2} a^{3} b^{2} c^{3} + \left ( e_{2}\cdot e_{3}\right ) ^{2} a^{3} b^{3} c^{2}\right ) \boldsymbol{e}_{1}\wedge \boldsymbol{e}_{3} \\ & + \left ( - \left ( e_{1}\cdot e_{1}\right ) \left ( e_{2}\cdot e_{2}\right ) a^{2} b^{1} c^{2} + \left ( e_{1}\cdot e_{1}\right ) \left ( e_{2}\cdot e_{2}\right ) a^{2} b^{2} c^{1} - \left ( e_{1}\cdot e_{1}\right ) \left ( e_{2}\cdot e_{3}\right ) a^{2} b^{1} c^{3} + \left ( e_{1}\cdot e_{1}\right ) \left ( e_{2}\cdot e_{3}\right ) a^{2} b^{3} c^{1} - \left ( e_{1}\cdot e_{1}\right ) \left ( e_{2}\cdot e_{3}\right ) a^{3} b^{1} c^{2} + \left ( e_{1}\cdot e_{1}\right ) \left ( e_{2}\cdot e_{3}\right ) a^{3} b^{2} c^{1} - \left ( e_{1}\cdot e_{1}\right ) \left ( e_{3}\cdot e_{3}\right ) a^{3} b^{1} c^{3} + \left ( e_{1}\cdot e_{1}\right ) \left ( e_{3}\cdot e_{3}\right ) a^{3} b^{3} c^{1} + \left ( e_{1}\cdot e_{2}\right ) ^{2} a^{2} b^{1} c^{2} - \left ( e_{1}\cdot e_{2}\right ) ^{2} a^{2} b^{2} c^{1} + \left ( e_{1}\cdot e_{2}\right ) \left ( e_{1}\cdot e_{3}\right ) a^{2} b^{1} c^{3} - \left ( e_{1}\cdot e_{2}\right ) \left ( e_{1}\cdot e_{3}\right ) a^{2} b^{3} c^{1} + \left ( e_{1}\cdot e_{2}\right ) \left ( e_{1}\cdot e_{3}\right ) a^{3} b^{1} c^{2} - \left ( e_{1}\cdot e_{2}\right ) \left ( e_{1}\cdot e_{3}\right ) a^{3} b^{2} c^{1} - \left ( e_{1}\cdot e_{2}\right ) \left ( e_{2}\cdot e_{3}\right ) a^{2} b^{2} c^{3} + \left ( e_{1}\cdot e_{2}\right ) \left ( e_{2}\cdot e_{3}\right ) a^{2} b^{3} c^{2} - \left ( e_{1}\cdot e_{2}\right ) \left ( e_{3}\cdot e_{3}\right ) a^{3} b^{2} c^{3} + \left ( e_{1}\cdot e_{2}\right ) \left ( e_{3}\cdot e_{3}\right ) a^{3} b^{3} c^{2} + \left ( e_{1}\cdot e_{3}\right ) ^{2} a^{3} b^{1} c^{3} - \left ( e_{1}\cdot e_{3}\right ) ^{2} a^{3} b^{3} c^{1} + \left ( e_{1}\cdot e_{3}\right ) \left ( e_{2}\cdot e_{2}\right ) a^{2} b^{2} c^{3} - \left ( e_{1}\cdot e_{3}\right ) \left ( e_{2}\cdot e_{2}\right ) a^{2} b^{3} c^{2} + \left ( e_{1}\cdot e_{3}\right ) \left ( e_{2}\cdot e_{3}\right ) a^{3} b^{2} c^{3} - \left ( e_{1}\cdot e_{3}\right ) \left ( e_{2}\cdot e_{3}\right ) a^{3} b^{3} c^{2}\right ) \boldsymbol{e}_{2}\wedge \boldsymbol{e}_{3} \end{align*}
$$
In [ ]:
Content source: utensil/julia-playground
Similar notebooks: