%-*-EMaxima-*-

%Definitions to help mactex output look better.

\beginmaximanoshow
texput(%hbar,"\\hbar")$
texput(%me,"m_e")$
texput(%mp,"m_p")$
texput(%c,"c")$
texput(%%e,"e")$
texput(%mue,"\\mu_e")$
texput(%mup,"\\mu_p")$
texput(%g,"G")$
linenum : 0$
\maximaoutput

\endmaximanoshow

\noindent Author:

  Barton Willis 
  
  University of Nebraska at Kearney 
  
  Kearney Nebraska

\vspace{2ex}

\noindent Documentation adapted for the Maxima Book by CY

\subsection*{Introduction}

\noindent This document demonstrates some of the abilities
of a Maxima package called dimension.  Not surprisingly, its purpose is
to perform dimensional analysis.  Maxima 
comes with an older package dimensional analysis (dimen) that is 
similar to the one that was in the commercial Macsyma system. 
The software described in this document differs greatly from 
the older one.

\subsubsection*{Usage}

To use the package, you must first load it. From a Maxima prompt, this
is done using the command

\beginmaximasession
load("dimension.mac")$
\maximatexsession
\C1.  load("dimension.mac")$ \\
\endmaximasession

\noindent To begin, we need to assign  dimensions to the
variables  we want to use. Use the {\tt qput} function to do this;
for example,  to declare $x$ a length, $c$ a
speed, and $t$ a time, use the commands

\beginmaximasession
qput(x, "length", dimension)$
qput(c, "length" / "time", dimension)$
qput(t, "time", dimension)$
\maximatexsession
\C2.  qput(x, "length", dimension)$ \\
\C3.  qput(c, "length" / "time", dimension)$ \\
\C4.  qput(t, "time", dimension)$ \\
\endmaximasession

\noindent We've defined the dimensions length and time to be 
strings; doing so reduces the chance that they will conflict  
with other user variables. To declare a dimensionless  variable
$\sigma$, use $1$ for the dimension. Thus

\beginmaximasession
qput(sigma,1,dimension)$
\maximatexsession
\C5.  qput(sigma,1,dimension)$ \\
\endmaximasession

\noindent To find the dimension of an expression, use the
{\tt dimension} function. For example

\beginmaximasession
dimension(4 * sqrt(3) /t);
dimension(x + c * t);
dimension(sin(c * t / x));
dimension(abs(x - c * t));
dimension(sigma * x / c);
dimension(x * sqrt(1 - c * t / x));
\maximatexsession
\C6.  dimension(4 * sqrt(3) /t); \\
\D6.  \frac{1}{\mathrm{time}} \\
\C7.  dimension(x + c * t); \\
\D7.  \mathrm{length} \\
\C8.  dimension(sin(c * t / x)); \\
\D8.  1 \\
\C9.  dimension(abs(x - c * t)); \\
\D9.  \mathrm{length} \\
\C10.  dimension(sigma * x / c); \\
\D10.  \mathrm{time} \\
\C11.  dimension(x * sqrt(1 - c * t / x)); \\
\D11.  \mathrm{length} \\
\endmaximasession

\noindent {\tt dimension} applies {\tt logcontract} to its 
argument; thus expressions involving a difference of logarithms
with dimensionally equal arguments are dimensionless; thus

\beginmaximasession
dimension(log(x) - log(c*t));
\maximatexsession
\C12.  dimension(log(x) - log(c*t)); \\
\D12.  1 \\
\endmaximasession


\noindent {\tt dimension} is automatically maps over lists. Thus

\beginmaximasession
dimension([42, min(x,c*t), max(x,c*t), x^^4, x . c]);
\maximatexsession
\C13.  dimension([42, min(x,c*t), max(x,c*t), x^^4, x . c]); \\
\D13.  \left[ 1,\linebreak[0]\mathrm{length},\linebreak[0]\mathrm{length},\linebreak[0]\mathrm{length}^{4},\linebreak[0]\frac{\mathrm{length}^{2}}{\mathrm{time}} \right] \\
\endmaximasession

\noindent When an expression is dimensionally inconsistent,
{\tt dimension} should signal an error

\beginmaximasession
dimension(x + c);
dimension(sin(x));
\maximatexsession
\C14.  dimension(x + c); \\
\p
Expression is dimensionally inconsistent.
#0: dimension(e=x+c)(dimension.mac line 154)
 -- an error.  Quitting.  To debug this try DEBUGMODE(TRUE);) \\
\C15.  dimension(sin(x)); \\
\p
Expression is dimensionally inconsistent.
#0: dimension(e=SIN(x))(dimension.mac line 229)
 -- an error.  Quitting.  To debug this try DEBUGMODE(TRUE);) \\
\endmaximasession

\noindent An {\em equation\/} is dimensionally correct
when either the dimensions of both sides match or
when one side of the equation vanishes.  For example

\beginmaximasession
dimension(x = c * t);
dimension(x * t = 0);
\maximatexsession
\C16.  dimension(x = c * t); \\
\D16.  \mathrm{length} \\
\C17.  dimension(x * t = 0); \\
\D17.  \mathrm{length}\*\mathrm{time} \\
\endmaximasession

\noindent When the two sides of an equation have
different dimensions and neither side vanishes,
{\tt dimension} signals an error


\beginmaximasession
dimension(x = c);
\maximatexsession
\C18.  dimension(x = c); \\
\p
Expression is dimensionally inconsistent.
#0: dimension(e=x = c)(dimension.mac line 175)
 -- an error.  Quitting.  To debug this try DEBUGMODE(TRUE);) \\
\endmaximasession

\noindent The function {\tt dimension} works with derivatives and
integrals

\beginmaximasession
dimension('diff(x,t));
dimension('diff(x,t,2));
dimension('diff(x,c,2,t,1));
dimension('integrate (x,t));
\maximatexsession
\C19.  dimension('diff(x,t)); \\
\D19.  \frac{\mathrm{length}}{\mathrm{time}} \\
\C20.  dimension('diff(x,t,2)); \\
\D20.  \frac{\mathrm{length}}{\mathrm{time}^{2}} \\
\C21.  dimension('diff(x,c,2,t,1)); \\
\D21.  \frac{\mathrm{time}}{\mathrm{length}} \\
\C22.  dimension('integrate (x,t)); \\
\D22.  \mathrm{length}\*\mathrm{time} \\
\endmaximasession

Thus far, any string may be used as a dimension; the other
three functions in this package, 
\begin{verb} dimension_as_list  \end{verb}, 
\begin{verb} dimensionless \end{verb}, and
\begin{verb} natural_unit \end{verb} all require that each
dimension is a member of  the list 
\begin{verb} fundamental_dimensions \end{verb}. The default value  is of 
this list is

\beginmaximasession
fundamental_dimensions;
\maximatexsession
\C23.  fundamental_dimensions; \\
\D23.  \left[ \mathrm{mass},\linebreak[0]\mathrm{length},\linebreak[0]\mathrm{time} \right] \\
\endmaximasession

\noindent A user may insert or delete elements from this list.
The function \begin{verb} dimension_as_list \end{verb} returns the dimension
of an expression as a list of the exponents of the
fundamental dimensions. Thus

\beginmaximasession
dimension_as_list(x);
dimension_as_list(t);
dimension_as_list(c);
dimension_as_list(x/t);
dimension_as_list("temp");
\maximatexsession
\C24.  dimension_as_list(x); \\
\D24.  \left[ 0,\linebreak[0]1,\linebreak[0]0 \right] \\
\C25.  dimension_as_list(t); \\
\D25.  \left[ 0,\linebreak[0]0,\linebreak[0]1 \right] \\
\C26.  dimension_as_list(c); \\
\D26.  \left[ 0,\linebreak[0]1,\linebreak[0]-1 \right] \\
\C27.  dimension_as_list(x/t); \\
\D27.  \left[ 0,\linebreak[0]1,\linebreak[0]-1 \right] \\
\C28.  dimension_as_list("temp"); \\
\D28.  \left[ 0,\linebreak[0]0,\linebreak[0]0 \right] \\
\endmaximasession

\noindent In the last example, "temp" isn't an element of
\begin{verb} fundamental_dimensions \end{verb}; thus,  
\begin{verb} dimension_as_list \end{verb} 
reports that "temp" is dimensionless. To correct this, append "temp" to the list 
\begin{verb} fundamental_dimensions \end{verb}


\beginmaximasession
fundamental_dimensions : endcons("temp", fundamental_dimensions);
\maximatexsession
\C29.  fundamental_dimensions : endcons("temp", fundamental_dimensions); \\
\D29.  \left[ \mathrm{mass},\linebreak[0]\mathrm{length},\linebreak[0]\mathrm{time},\linebreak[0]\mathrm{temp} \right] \\
\endmaximasession


\noindent Now we have

\beginmaximasession
dimension_as_list(x);
dimension_as_list(t);
dimension_as_list(c);
dimension_as_list(x/t);
dimension_as_list("temp");
\maximatexsession
\C30.  dimension_as_list(x); \\
\D30.  \left[ 0,\linebreak[0]1,\linebreak[0]0,\linebreak[0]0 \right] \\
\C31.  dimension_as_list(t); \\
\D31.  \left[ 0,\linebreak[0]0,\linebreak[0]1,\linebreak[0]0 \right] \\
\C32.  dimension_as_list(c); \\
\D32.  \left[ 0,\linebreak[0]1,\linebreak[0]-1,\linebreak[0]0 \right] \\
\C33.  dimension_as_list(x/t); \\
\D33.  \left[ 0,\linebreak[0]1,\linebreak[0]-1,\linebreak[0]0 \right] \\
\C34.  dimension_as_list("temp"); \\
\D34.  \left[ 0,\linebreak[0]0,\linebreak[0]0,\linebreak[0]1 \right] \\
\endmaximasession

\noindent To remove "temp" from  
\begin{verb} fundamental_dimensions \end{verb}, use the {\tt delete} command
\beginmaximasession
fundamental_dimensions : delete("temp", fundamental_dimensions)$
\maximatexsession
\C35.  fundamental_dimensions : delete("temp", fundamental_dimensions)$ \\
\endmaximasession

The function {\tt dimensionless} finds a {\em basis\/} for the
dimensionless quantities that can be formed from a list of
dimensioned  quantities.  For example

\beginmaximasession
dimensionless([c,x,t]);
dimensionless([x,t]);
\maximatexsession
\C36.  dimensionless([c,x,t]); \\
\p
Dependent equations eliminated:  (1) \\
\D36.  \left[ \frac{c\*t}{x},\linebreak[0]1 \right] \\
\C37.  dimensionless([x,t]); \\
\p
Dependent equations eliminated:  (1) \\
\D37.  \left[ 1 \right] \\
\endmaximasession

\noindent In the first example, every dimensionless quantity
that can be formed as a product of powers of $c,x$, and $t$ is
a power of $c t/x$; in the second example, the only
dimensionless quantity that can be formed from
$x$ and $t$ are the constants.

The function \begin{verb} natural_unit(e, [v1,v2,...,vn]) \end{verb}
 finds powers $p_1,p_2, \dots p_n$ such that
\[
  \mbox{dimension}(e) = \mbox{dimension} (v_1^{p_1} v_2^{p_2} \dots v_n^{p_n}).
\]
Simple examples are

\beginmaximasession
natural_unit(x,[c,t]);
natural_unit(x,[x,c,t]);
\maximatexsession
\C38.  natural_unit(x,[c,t]); \\
\p
Dependent equations eliminated:  (1) \\
\D38.  \left[ c\*t \right] \\
\C39.  natural_unit(x,[x,c,t]); \\
\p
Dependent equations eliminated:  (1) \\
\D39.  \left[ x \right] \\
\endmaximasession

Here is a more complex example; we'll study the Bohr model of
the hydrogen atom using dimensional analysis.  To make things
more interesting, we'll include the magnetic moments of the
proton and electron as well as the universal gravitational
constant in with our list of physical quantities. 
Let  $\hbar$ be Planck's constant, $e$ the electron charge, $\mu_e$ the
magnetic moment of the electron, $\mu_p$ the magnetic
moment of the proton, $m_e$ the mass of the electron, $m_p$
the mass of the proton, $G$ the universal gravitational constant,
 and $c$ the speed of light in a vacuum.  For this problem, we might 
like to display the square root as an exponent instead  of as a radical;
to do this, set {\tt sqrtdispflag} to false

\beginmaximasession
SQRTDISPFLAG : false$
\maximatexsession
\C40.  SQRTDISPFLAG : false$ \\
\endmaximasession

\noindent  Assuming a system of units where Coulomb's law is
\[
  \mbox{force} = \frac{\mbox{product of charges}}{\mbox{distance}^2},
\]
we have

\beginmaximasession
qput(%hbar, "mass" * "length"^2 / "time",dimension)$
qput(%%e, "mass"^(1/2) * "length"^(3/2) / "time",dimension)$
qput(%mue, "mass"^(1/2) * "length"^(5/2) / "time",dimension)$
qput(%mup, "mass"^(1/2) * "length"^(5/2) / "time",dimension)$
qput(%me, "mass",dimension)$
qput(%mp, "mass",dimension)$
qput(%g, "length"^3 / ("time"^2 * "mass"), dimension)$
qput(%c, "length" / "time", dimension)$
\maximatexsession
\C41.  qput(%hbar, "mass" * "length"^2 / "time",dimension)$ \\
\C42.  qput(%%e, "mass"^(1/2) * "length"^(3/2) / "time",dimension)$ \\
\C43.  qput(%mue, "mass"^(1/2) * "length"^(5/2) / "time",dimension)$ \\
\C44.  qput(%mup, "mass"^(1/2) * "length"^(5/2) / "time",dimension)$ \\
\C45.  qput(%me, "mass",dimension)$ \\
\C46.  qput(%mp, "mass",dimension)$ \\
\C47.  qput(%g, "length"^3 / ("time"^2 * "mass"), dimension)$ \\
\C48.  qput(%c, "length" / "time", dimension)$ \\
\endmaximasession

\noindent  The numerical values of these quantities may 
defined using {\tt numerval}.  We have

\beginmaximasession
numerval(%%e, 1.5189073558044265d-14*sqrt(kg)*meter^(3/2)/sec)$
numerval(%hbar, 1.0545726691251061d-34*kg*meter^2/sec)$
numerval(%c, 2.99792458d8*meter/sec)$
numerval(%me, 9.1093897d-31*kg)$
numerval(%mp, 1.6726231d-27*kg)$
\maximatexsession
\C49.  numerval(%%e, 1.5189073558044265d-14*sqrt(kg)*meter^(3/2)/sec)$ \\
\C50.  numerval(%hbar, 1.0545726691251061d-34*kg*meter^2/sec)$ \\
\C51.  numerval(%c, 2.99792458d8*meter/sec)$ \\
\C52.  numerval(%me, 9.1093897d-31*kg)$ \\
\C53.  numerval(%mp, 1.6726231d-27*kg)$ \\
\endmaximasession


\noindent To begin, let's use only the variables $e, c, \hbar, m_e$, and
$m_p$ to find the dimensionless quantities.  We have


\beginmaximasession
dimensionless([%hbar, %me, %mp, %%e, %c]);
\maximatexsession
\C54.  dimensionless([%hbar, %me, %mp, %%e, %c]); \\
\D54.  \left[ \frac{m_e}{m_p},\linebreak[0]\frac{c\*\hbar}{e^{2}},\linebreak[0]1 \right] \\
\endmaximasession

\noindent The second element of this list is the reciprocal of the fine 
structure constant. To find numerical values, use {\tt float}

\beginmaximasession
float(%);
\maximatexsession
\C55.  float(%); \\
\D55.  \left[ 5.446169970987487 \times 10^{-4},\linebreak[0]137.03599074450503,\linebreak[0]1.0 \right] \\
\endmaximasession

The natural units of energy are given by

\beginmaximasession
natural_unit("mass" * "length"^2 / "time"^2, [%hbar, %me, %mp, %%e, %c]);
\maximatexsession
\C56.  natural_unit("mass" * "length"^2 / "time"^2, [%hbar, %me, %mp, %%e, %c]); \\
\D56.  \left[ c^{2}\*m_e,\linebreak[0]\frac{c^{3}\*\hbar\*m_p}{e^{2}} \right] \\
\endmaximasession

\noindent Let's see what happens when we include $\mu_e, \mu_p$, and  $G$.  We have

\beginmaximasession
dimensionless([%hbar, %%e, %mue, %mup, %me, %mp, %g, %c]);
\maximatexsession
\C57.  dimensionless([%hbar, %%e, %mue, %mup, %me, %mp, %g, %c]); \\
\D57.  \left[ \frac{\mu_p}{\mu_e},\linebreak[0]\frac{c^{2}\*m_e\*\mu_e}{e^{3}},\linebreak[0]\frac{c^{2}\*m_p\*\mu_e}{e^{3}},\linebreak[0]\frac{e^{4}\*G}{c^{4}\*\mu_e^{2}},\linebreak[0]\frac{c\*\hbar}{e^{2}},\linebreak[0]1 \right] \\
\endmaximasession

To find the natural units of mass, length, time,
speed, force, and energy, use  the commands

\beginmaximasession
natural_unit("mass", [%hbar, %%e, %me, %mp, %mue, %mup, %g, %c]);
natural_unit("length", [%hbar, %%e, %me, %mp, %mue, %mup, %g, %c]);
natural_unit("time", [%hbar, %%e, %me, %mp, %mue, %mup, %g, %c]);
natural_unit("mass" * "length" / "time"^2, [%hbar, %%e, %me, %mp, %mue, %mup, %g, %c]);
natural_unit("mass" * "length"^2 / "time"^2, [%hbar, %%e, %me, %mp, %mue, %mup, %g, %c]);
\maximatexsession
\C58.  natural_unit("mass", [%hbar, %%e, %me, %mp, %mue, %mup, %g, %c]); \\
\D58.  \left[ m_p,\linebreak[0]\frac{c^{2}\*m_e^{2}\*\mu_e}{e^{3}},\linebreak[0]\frac{c^{2}\*m_e^{2}\*\mu_p}{e^{3}},\linebreak[0]\frac{G\*m_e^{3}}{e^{2}},\linebreak[0]\frac{c\*\hbar\*m_e}{e^{2}} \right] \\
\C59.  natural_unit("length", [%hbar, %%e, %me, %mp, %mue, %mup, %g, %c]); \\
\D59.  \left[ \frac{e^{2}\*m_p}{c^{2}\*m_e^{2}},\linebreak[0]\frac{\mu_e}{e},\linebreak[0]\frac{\mu_p}{e},\linebreak[0]\frac{G\*m_e}{c^{2}},\linebreak[0]\frac{\hbar}{c\*m_e} \right] \\
\C60.  natural_unit("time", [%hbar, %%e, %me, %mp, %mue, %mup, %g, %c]); \\
\D60.  \left[ \frac{e^{2}\*m_p}{c^{3}\*m_e^{2}},\linebreak[0]\frac{\mu_e}{e\*c},\linebreak[0]\frac{\mu_p}{e\*c},\linebreak[0]\frac{G\*m_e}{c^{3}},\linebreak[0]\frac{\hbar}{c^{2}\*m_e} \right] \\
\C61.  natural_unit("mass" * "length" / "time"^2, [%hbar, %%e, %me, %mp, %mue, %mup, %g, %c]); \\
\D61.  \left[ \frac{c^{4}\*m_e\*m_p}{e^{2}},\linebreak[0]\frac{c^{6}\*m_e^{3}\*\mu_e}{e^{5}},\linebreak[0]\frac{c^{6}\*m_e^{3}\*\mu_p}{e^{5}},\linebreak[0]\frac{c^{4}\*G\*m_e^{4}}{e^{4}},\linebreak[0]\frac{c^{5}\*\hbar\*m_e^{2}}{e^{4}} \right] \\
\C62.  natural_unit("mass" * "length"^2 / "time"^2, [%hbar, %%e, %me, %mp, %mue, %mup, %g, %c]); \\
\D62.  \left[ c^{2}\*m_p,\linebreak[0]\frac{c^{4}\*m_e^{2}\*\mu_e}{e^{3}},\linebreak[0]\frac{c^{4}\*m_e^{2}\*\mu_p}{e^{3}},\linebreak[0]\frac{c^{2}\*G\*m_e^{3}}{e^{2}},\linebreak[0]\frac{c^{3}\*\hbar\*m_e}{e^{2}} \right] \\
\endmaximasession

\noindent The first element of this list is the rest mass energy of the 
proton.

The dimension package can handle vector operators such as
dot and cross products, and the vector operators div, grad, and curl.
To use the vector operators, we'll first declare them

\beginmaximasession
prefix(div)$
prefix(curl)$
infix("~")$
\maximatexsession
\C63.  prefix(div)$ \\
\C64.  prefix(curl)$ \\
\C65.  infix("~")$ \\
\endmaximasession

\noindent Let's work with the electric and magnetic fields;
again assuming a system of units where Coulomb's law is
\[
  \mbox{force} = \frac{\mbox{product of charges}}{\mbox{distance}^2}
\]
the dimensions of the electric and magnetic field are

\beginmaximasession
qput(e, sqrt("mass") / (sqrt("length") * "time"), dimension)$
qput(b, sqrt("mass") / (sqrt("length") * "time"),dimension)$
qput(rho, sqrt("mass")/("time" * "length"^(3/2)), dimension)$
qput(j, sqrt("mass") / ("time"^2 * sqrt("length")), dimension)$
\maximatexsession
\C66.  qput(e, sqrt("mass") / (sqrt("length") * "time"), dimension)$ \\
\C67.  qput(b, sqrt("mass") / (sqrt("length") * "time"),dimension)$ \\
\C68.  qput(rho, sqrt("mass")/("time" * "length"^(3/2)), dimension)$ \\
\C69.  qput(j, sqrt("mass") / ("time"^2 * sqrt("length")), dimension)$ \\
\endmaximasession

Finally, declare the speed of light $c$ as

\beginmaximasession
qput(c, "length" / "time", dimension);
\maximatexsession
\C70.  qput(c, "length" / "time", dimension); \\
\D70.  \frac{\mathrm{length}}{\mathrm{time}} \\
\endmaximasession

\noindent Let's find the dimensions of 
$\| \mathbf{E} \|^2, \mathbf{E} \cdot \mathbf{B},
\| \mathbf{B} \|^2$, and $\mathbf{E} \times \mathbf{B} / c$.  We have

\beginmaximasession
dimension(e.e);
dimension(e.b);
dimension(b.b);
dimension((e ~ b) / c);
\maximatexsession
\C71.  dimension(e.e); \\
\D71.  \frac{\mathrm{mass}}{\mathrm{length}\*\mathrm{time}^{2}} \\
\C72.  dimension(e.b); \\
\D72.  \frac{\mathrm{mass}}{\mathrm{length}\*\mathrm{time}^{2}} \\
\C73.  dimension(b.b); \\
\D73.  \frac{\mathrm{mass}}{\mathrm{length}\*\mathrm{time}^{2}} \\
\C74.  dimension((e ~ b) / c); \\
\D74.  \frac{\mathrm{mass}}{\mathrm{length}^{2}\*\mathrm{time}} \\
\endmaximasession

\noindent The physical significance of these quantities becomes more apparent if they are integrated over $\mathbf{R^3}$.  Defining

\beginmaximasession
qput(v, "length"^3, dimension);
\maximatexsession
\C75.  qput(v, "length"^3, dimension); \\
\D75.  \mathrm{length}^{3} \\
\endmaximasession

\noindent We now have

\beginmaximasession
dimension('integrate(e.e, v));
dimension('integrate(e.b, v));
dimension('integrate(b.b, v));
dimension('integrate((e ~ b) / c,v));
\maximatexsession
\C76.  dimension('integrate(e.e, v)); \\
\D76.  \frac{\mathrm{length}^{2}\*\mathrm{mass}}{\mathrm{time}^{2}} \\
\C77.  dimension('integrate(e.b, v)); \\
\D77.  \frac{\mathrm{length}^{2}\*\mathrm{mass}}{\mathrm{time}^{2}} \\
\C78.  dimension('integrate(b.b, v)); \\
\D78.  \frac{\mathrm{length}^{2}\*\mathrm{mass}}{\mathrm{time}^{2}} \\
\C79.  dimension('integrate((e ~ b) / c,v)); \\
\D79.  \frac{\mathrm{length}\*\mathrm{mass}}{\mathrm{time}} \\
\endmaximasession

\noindent It's clear that $\| \mathbf{E} \|^2, \mathbf{E} \cdot \mathbf{B}$
and $\| \mathbf{B} \|^2$ are energy densities while
$\mathbf{E} \times \mathbf{B} / c$ is a momentum density.

Let's also check that the Maxwell equations are
dimensionally consistent.

\beginmaximasession
dimension(DIV(e)= 4*%pi*rho);
dimension(CURL(b) - 'diff(e,t) / c = 4 * %pi * j / c);
dimension(CURL(e) + 'diff(b,t) / c = 0);
dimension(DIV(b) = 0);
\maximatexsession
\C80.  dimension(DIV(e)= 4*%pi*rho); \\
\D80.  \frac{\iexpt{\mathrm{mass}}{\frac{1}{2}}}{\iexpt{\mathrm{length}}{\frac{3}{2}}\*\mathrm{time}} \\
\C81.  dimension(CURL(b) - 'diff(e,t) / c = 4 * %pi * j / c); \\
\D81.  \frac{\iexpt{\mathrm{mass}}{\frac{1}{2}}}{\iexpt{\mathrm{length}}{\frac{3}{2}}\*\mathrm{time}} \\
\C82.  dimension(CURL(e) + 'diff(b,t) / c = 0); \\
\D82.  \frac{\iexpt{\mathrm{mass}}{\frac{1}{2}}}{\iexpt{\mathrm{length}}{\frac{3}{2}}\*\mathrm{time}} \\
\C83.  dimension(DIV(b) = 0); \\
\D83.  \frac{\iexpt{\mathrm{mass}}{\frac{1}{2}}}{\iexpt{\mathrm{length}}{\frac{3}{2}}\*\mathrm{time}} \\
\endmaximasession
