summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/diffcoeff/diffcoeffx.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/latex/diffcoeff/diffcoeffx.tex')
-rw-r--r--Master/texmf-dist/doc/latex/diffcoeff/diffcoeffx.tex656
1 files changed, 0 insertions, 656 deletions
diff --git a/Master/texmf-dist/doc/latex/diffcoeff/diffcoeffx.tex b/Master/texmf-dist/doc/latex/diffcoeff/diffcoeffx.tex
deleted file mode 100644
index d7b48cac28d..00000000000
--- a/Master/texmf-dist/doc/latex/diffcoeff/diffcoeffx.tex
+++ /dev/null
@@ -1,656 +0,0 @@
-%% LyX 2.2.0 created this file. For more info, see http://www.lyx.org/.
-%% Do not edit unless you really know what you are doing.
-\documentclass[twoside,english]{article}
-\usepackage{lmodern}
-\renewcommand{\sfdefault}{lmss}
-\renewcommand{\ttdefault}{lmtt}
-\usepackage[T1]{fontenc}
-\usepackage[latin9]{inputenc}
-\usepackage{geometry}
-\geometry{verbose,lmargin=4cm,rmargin=3.5cm}
-\setcounter{secnumdepth}{2}
-\setcounter{tocdepth}{1}
-\usepackage{wrapfig}
-\usepackage{booktabs}
-\usepackage{amstext}
-\usepackage{esint}
-
-\makeatletter
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands.
-%% Because html converters don't know tabularnewline
-\providecommand{\tabularnewline}{\\}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Textclass specific LaTeX commands.
- \newenvironment{example}{\begin{center}\ttfamily}{\end{center}}
-\newenvironment{lyxcode}
-{\par\begin{list}{}{
-\setlength{\rightmargin}{\leftmargin}
-\setlength{\listparindent}{0pt}% needed for AMS classes
-\raggedright
-\setlength{\itemsep}{0pt}
-\setlength{\parsep}{0pt}
-\normalfont\ttfamily}%
- \item[]}
-{\end{list}}
-\newcommand{\strong}[1]{\textbf{#1}}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands.
-\usepackage{diffcoeffx}
-
-\@ifundefined{showcaptionsetup}{}{%
- \PassOptionsToPackage{caption=false}{subfig}}
-\usepackage{subfig}
-\makeatother
-
-\usepackage{babel}
-\begin{document}
-
-\title{\texttt{diffcoeffx}~\\
-extending the \texttt{diffcoeff} package}
-
-\author{Andrew Parsloe\\
-{\small{}(aparsloe@clear.net.nz)}}
-\maketitle
-\begin{abstract}
-\noindent \texttt{diffcoeffx.sty} is \texttt{diffcoeff.sty} `on steroids'.
-It provides additional functionality for the trailing optional argument
-and extends the algorithm used to calculate the overall order of differentiation
-of mixed partial derivatives. That now accepts order-of-differentiation
-specifications that include powers of numbers and variables, subscripts
-on variables, and (possibly nested) parentheses with numerical coefficients.
-The enhancements come under the category of `gilding the lily'.
-\end{abstract}
-
-\section{The \texttt{diffcoeffx} package}
-
-The \texttt{diffcoeffx} package is \texttt{diffcoeff} `on steroids',
-providing exactly the same commands but with some extra functionality.\texttt{ }It
-is called in the usual way in the LaTeX preamble:
-\begin{lyxcode}
-\textbackslash{}usepackage\{diffcoeffx\}
-\end{lyxcode}
-It is assumed that you are familiar with the \texttt{diffcoeff} package
-and its manual.\texttt{ }There are two enhancements to that package: \texttt{diffcoeffx}
-takes the calculation of the overall order of mixed partial derivatives
-deep into `overkill' territory, accepting single-token powers of numbers
-and variables, single-token subscripts on variables, and possibly nested
-parentheses with numerical coefficients. The \texttt{\textbackslash{}times}
-token ($\times$) can also be used in an order specification. The other
-enhancement is an extension to the capabilities of the trailing optional
-argument.
-
-\subsection[Exploiting the final argument]{Exploiting the trailing optional argument}
-
-For \texttt{diffcoeff }there was an attempt to give a `natural feel'
-to the design choices made and their use. By comparison the additional
-functionality that the trailing optional argument acquires in \texttt{diffcoeffx.sty}
-is in the nature of a \emph{hack}. It works, but I'm not sure that it should
-be encouraged.
-
-In \texttt{diffcoeff} if you write \texttt{\textbackslash{}diff yx\{\}}
-the trailing but \emph{empty} optional argument is ignored. Not so in \texttt{diffcoeffx}:
-\begin{example}
-\textbackslash{}diffp yx\{\}${\displaystyle \Longrightarrow\quad\diffp yx{}}$
-\end{example}
-The parentheses are inserted without a subscript. Thus we can write (for
-instance) Lagrange's equations of motion in analytical mechanics in the
-manner:
-\begin{example}
-\textbackslash{}diffp L\{q\_k\}-\textbackslash{}diff{*}\{\textbackslash{}diffp
-L\{\textbackslash{}dot\{q\}\_k\}\{\}\}t = 0 $\Longrightarrow\quad{\displaystyle \diffp L{q_{k}}-\diff*{\diffp L{\dot{q}_{k}}{}}t}=0$,
-\end{example}
-without having to bother with inserting \texttt{\textbackslash{}left(}
-and \texttt{\textbackslash{}right}).\texttt{ }The empty trailing optional
-argument and the default delimiters for partial derivatives do the job
-for us.
-
-There are many other places in analytical mechanics where using an empty
-trailing optional argument is a similarly convenient way of writing large
-parentheses, for instance,
-\begin{example}
-\textbackslash{}dot\{q\_k\}=\textbackslash{}diffp H\{\textbackslash{}diffp
-S\{q\_k\}\{\}\} ${\displaystyle \Longrightarrow\quad\dot{q_{k}}=\diffp H{\diffp S{q_{k}}{}}}\!.$
-\end{example}
-An application of Lagrange's equations (to a one-dimensional elastic solid)
-gives rise to a Langrangian density function,
-\begin{example}
-\textbackslash{}frac 12\textbackslash{}left\textbackslash{}\{ \textbackslash{}rho\textbackslash{}dot\{\textbackslash{}eta\}\textasciicircum{}2-E\textbackslash{}diff\textbackslash{}eta
-x\{;2;()\}\textbackslash{}right \textbackslash{}\} $\Longrightarrow\quad{\displaystyle \frac{1}{2}\left\{ \rho\dot{\eta}^{2}-E\diff\eta x{;2;()}\right\} }.$
-\end{example}
-Another application of those equations (the acoustic approximation to the
-irrotational motion of a compressible non-viscous fluid) produces a Lagrangian
-density
-\begin{example}
-\textbackslash{}frac 12\textbackslash{}rho\textbackslash{}left\textbackslash{}\{(\textbackslash{}nabla\textbackslash{}psi)\textasciicircum{}2-\textbackslash{}frac
-1\{c\textasciicircum{}2\}\textbackslash{}diff\textbackslash{}psi t\{;2;()\}\textbackslash{}right\textbackslash{}\}
-$\Longrightarrow\quad{\displaystyle \frac{1}{2}\rho\left\{ (\nabla\psi)^{2}-\frac{1}{c^{2}}\diff\psi t{;2;()}\right\} }.$
-\end{example}
-In both examples, the trailing optional argument of the \emph{ordinary}
-derivative has been filled by a semicolon-delimited list: \texttt{\{;2;()\}}.
-The initial slot where a subscript is specified is empty but the semicolon
-is necessarily included. The second spot specifies a \emph{superscript}
-and the third slot the delimiters to use. Since parentheses are not the
-default delimiters for an ordinary derivative we needed to specify them
-explicitly here. However, this does not change the default delimiters which
-remain \texttt{.|} for an ordinary derivative and can only be changed by
-means of the \texttt{\textbackslash{}diffset} command.
-
-Both subscript and superscript can be used at the same time. In a text
-on ordinary differential equations, an example employing Green's functions
-gives rise to
-\begin{example}
-\textbackslash{}diff{[}n-1{]}Gx\{\textbackslash{}xi-\textbackslash{}epsilon;\textbackslash{}xi+\textbackslash{}epsilon;{[}{]}\}
-$\Longrightarrow\quad{\displaystyle \diff[n-1]Gx{\xi-\epsilon;\xi+\epsilon;[]}}$
-\end{example}
-the derivative being evaluated at both superscript and subscript values
-and the difference taken. Here the trailing optional argument has its first
-three slots filled, with square brackets explicitly specified. The same
-book includes the example
-\begin{example}
-\textbackslash{}diff{*}{[}p-1{]}\{x\textasciicircum{}\textbackslash{}alpha\}\textbackslash{}alpha\{\textbackslash{}alpha=a;;\textbackslash{}\{\textbackslash{}\}\}
-$\Longrightarrow\quad{\displaystyle \diff*[p-1]{x^{\alpha}}\alpha{\alpha=a;;\{\}}}$
-\end{example}
-where, this time braces are specified in the trailing optional argument.\footnote{For LyX users, the braces \textbackslash{}\{ and \textbackslash{}\} are
-inserted into a formula in the maths editor simply by typing the braces
-without the backslashes. LyX takes care of the latter.}
-
-This argument can be used to form the absolute value of a derivative,
-\begin{example}
-\textbackslash{}diff yx\{;;||\} ${\displaystyle \Longrightarrow\quad\diff yx{;;||}}$
-\end{example}
-where both initial slots, subscript and superscript, are empty and two
-semicolons necessarily included in the trailing optional argument: \texttt{\{;;||\}}.
-It also provides an alternative way, indeed \emph{two} alternative ways,
-of forming a quotient of derivatives:
-\begin{example}
-\textbackslash{}diff yx\{;;./\}\textbackslash{}diff xy=\textbackslash{}diff
-yx\textbackslash{}diff xy\{;;/.\} ${\displaystyle {\displaystyle \Longrightarrow\quad\diff yx{;;./}}\diff xy={\displaystyle \diff yx}\diff xy{;;/.}}$
-\end{example}
-where the delimiter specification \texttt{./} on the left has been changed
-to \texttt{/.} on the right. The spacing in the two quotients is not quite
-identical, which might be relevant in some contexts. As a more realistic
-example of use of the same construct, if $F(x,t)$ is a function of $x$
-and $t$ and $x=x(t)$, then if $\diff Ft=0$,
-\begin{example}
-\textbackslash{}diff xt=-\textbackslash{}diffp Ft\{;;./\}\textbackslash{}diffp
-Fx $\Longrightarrow\quad{\displaystyle \diff xt=-\diffp Ft{;;./}\diffp Fx}$
-\end{example}
-For an inline use, you may prefer to use the slash form of the derivative
-$\diff y/z{0;;();-1}$. In this case a \emph{fourth} slot in the trailing
-optional argument has been filled, the \texttt{nudge override} slot, since
-the default nudge is designed to position the subscript relative to the
-\emph{displaystyle} delimiters.
-
-The complete specification of what is available in the trailing optional
-argument is:
-\begin{example}
-\{ subscript; superscript; delimiters; nudge override \}
-\end{example}
-\begin{itemize}
-\item In `normal' use, the \texttt{subscript} is the point of evaluation (ordinary
-derivatives), or list of variables held constant (partial derivatives).
-Since the list of variables held constant is likely to be comma-separated,
-so we have the need for semicolons to separate items in the larger list.
-\item The \texttt{superscript} is generally a power to which the derivative is
-raised but, as instanced by the Green's function example, it can also be
-another point of evaluation of the derivative.
-\item The \texttt{delimiters} are, by default, \texttt{.|} for ordinary derivatives
-and \texttt{()} for partial derivatives. These are not always the right
-ones for a particular task. Rather than changing them \emph{globally} as
-the use of \texttt{\textbackslash{}diffset} entails, they can be changed
-\emph{locally} for the particular instance by specifying them in this slot.
-The global choices are unaffected.
-\item If the built-in placement of sub- or superscript relative to the right
-delimiter is unsatisfactory, a value specified in the \texttt{nudge override}
-slot\texttt{ }overrides the default value locally. The value is a pure
-number which \texttt{diffcoeffx} treats as that number of mu (1/18 of an
-em). (For comparison, a thin space \textbackslash{}, and a negative thin
-space \textbackslash{}! are 3/18 of an em.) The default nudges are shown
-in Table~\ref{tab:Default-nudges}. They are intended for displaystyle
-presentation, and are not affected by any value included in this slot.
-\end{itemize}
-\noindent\begin{minipage}[t]{1\columnwidth}%
-\begin{wraptable}[10]{o}{0.35\columnwidth}%
-\centering{}\caption{\label{tab:Default-nudges}Default nudges}
-\begin{tabular}{|c|c|}
-\hline
-right delimiter & nudge\tabularnewline
-\hline
-\hline
-), > & -6\tabularnewline
-\hline
-\textbackslash{}\} & -4\tabularnewline
-\hline
-|, {]} & 0\tabularnewline
-\hline
-other & 0\tabularnewline
-\hline
-\end{tabular}\end{wraptable}%
-Note that if one wants to use the nudge override with the default delimiters,
-it is necessary to indicate all preceding slots, even if they are empty,
-e.g., \texttt{\{;;;-3\}}. Similarly, to change the delimiters, to parentheses
-say, without sub- or superscript, it is necessary to indicate all preceding
-empty slots, but the following one does not need to be indicated: \texttt{\{;;()\}}.
-If one wants to specify a superscript, 2 say, but leave all else unchanged,
-it is only necessary to specify the one preceding empty slot: \texttt{\{;2\}}.
-Trailing empty slots can be omitted, which is why, if one wants to use
-the trailing empty argument `as nature intended', i.e., to specify a
-point of evaluation or variables held constant, one can close one's mind
-to the other potential slots and simply write (for instance) \texttt{\{0\}}
-or \texttt{\{x=1\}}.%
-\end{minipage}
-
-\subsection{The enhanced mixed partial derivative algorithm\label{subsec:The-enhanced-mixed}}
-
-In the documentation for \texttt{diffcoeff.sty} I discussed the transition
-table, Table~\ref{tab:Input-output-states}, in which signed \strong{s},
-numeric \strong{n}, or algebraic \strong{a} states changed to one of
-the others, or not, depending on the nature of the current token: sign,
-digit or variable. Signs and digits were explicitly defined; anything and
-everything else was called a (prime) variable. (Not quite true: in fact
-\texttt{diffcoeff.sty} checked for \texttt{(}, \texttt{\textasciicircum{}}
-and \texttt{\_} and raised an error if they were encountered.)\texttt{ }
-
-\begin{table}[h]
-\noindent \begin{centering}
-\caption{A first enhancement}
-\subfloat[\label{tab:Input-output-states}State transitions]{\noindent \centering{}\medskip{}
-\begin{tabular}{ccccc}
-\cmidrule{2-5}
- & Curr. state & Curr. token & Action & Next state\tabularnewline
-\cmidrule{2-5}
-1 & \strong{s} & $s$ & $Ts\to s'$; $T=s'$ & \strong{s}\tabularnewline
-\cmidrule{2-5}
-2 & \strong{s} & $d$ & $Td$ & \strong{n}\tabularnewline
-\cmidrule{2-5}
-3 & \strong{s} & $v$ & $Vv$; $T1v$ & \strong{a}\tabularnewline
-\cmidrule{2-5}
-4 & \strong{n} & $s$ & $\mathbf{N}T$; $T=s$ & \strong{s}\tabularnewline
-\cmidrule{2-5}
-5 & \strong{n} & $d$ & $Td$ & \strong{n}\tabularnewline
-\cmidrule{2-5}
-6 & \strong{n} & $v$ & $Vv$; $Tv$ & \strong{a}\tabularnewline
-\cmidrule{2-5}
-7 & \strong{a} & $s$ & $\mathbf{V}V,$; $V=\textrm{Ø}$; $\mathbf{A}T$; $T=s$ & \strong{s}\tabularnewline
-\cmidrule{2-5}
-8 & \strong{a} & $d$ & error & \strong{!!}\tabularnewline
-\cmidrule{2-5}
-9 & \strong{a} & $v$ & $Vv$; $Tv$ & \strong{a}\tabularnewline
-\cmidrule{2-5}
-\end{tabular}}
-\par\end{centering}
-\noindent \centering{}\subfloat[\label{tab:Allowing-powers-variables}Allowing powers of variables]{\centering{}%
-\begin{tabular}{ccccc}
-\cmidrule{2-5}
- & Curr. state & Curr. token & Action & Next state\tabularnewline
-\cmidrule{2-5}
-8 & \strong{a} & $d$ & $Vd$; $Td$ & \strong{a}\tabularnewline
-\cmidrule{2-5}
-\end{tabular}}
-\end{table}
-There is a certain inner logic at play here. Multi-token variables like
-$kmn$ are included in the above scheme. But having accommodated $mn$,
-surely one should be able to handle $mm$, i.e. $m^{2}$? And if $m^{2}$,
-then why not $m^{n}$? In fact it is easy to do so. Since the superscript
-token \textasciicircum{} is neither sign nor digit, no longer raise an
-error if it is encountered but treat it, among the `everything else'
-tokens, as a variable. If we change row 8 of the table as in Table~\ref{tab:Allowing-powers-variables}
-we have enlarged our scheme to include powers of variables \textendash{}
-not only numerical powers (row 8) but also algebraic powers (row 9). As
-a side-effect, if we also suppress the raising of an error when the subscript
-token \texttt{\_} is encountered, it too will be classified as a variable
-and allow numeric and algebraic subscripts on variables: things like $k_{2}$
-or $k_{n}$.
-
-Implicit in this discussion is the understanding that exponents and subscripts
-are restricted to \emph{single tokens}. Coping with multi-token quantities
-in those positions would entail changes to other parts of the code, which
-I have chosen not to do.
-
-This is a simple way of enlarging the range of tokens acceptable to the
-overall-order algorithm, but it does assume that the user does \emph{not}
-include a sign as a superscript or subscript. If they do, then when the
-algorithm meets the sign it arrives at row 7 of the table and stores what
-is clearly an unintended variable, something like \texttt{k\textasciicircum{}}
-or \texttt{k\_}. So, we need to check when a sign is met whether the previous
-token was one of \texttt{\textasciicircum{}} or \texttt{\_} and raise an
-error if it was. But then the thought arises: if we are going to the trouble
-of checking for sub- or superscript tokens, why just raise an error? Why
-not incorporate signs in sub- or superscript positions into the scheme?
-
-To this end, we might introduce a fourth state, the \emph{script} state,
-denoted by \strong{p}. A script token, denoted $p$, is one of \texttt{\textasciicircum{}}
-or \texttt{\_}. There is only one way to enter a script state, and that
-is by appending a script token to a \emph{variable}. Appending a script
-token to a sign or number (or, indeed, another script token) raises an
-error. Table~\ref{tab:Enlarged-scheme-transitios} is the result. In this
-scheme, signs can be used as sub- or superscripts to variables, but not
-to numbers. We might console ourselves with the thought that this is, in
-any case, a limitation of the calculational engine used to evaluate our
-integer expressions. The \texttt{l3int} module of the LaTeX3 bundle \texttt{l3kernel}
-cannot handle powers of integers.
-
-\begin{table}[h]
-\caption{\label{tab:Enlarged-scheme-transitios}Transition states for an enlarged
-scheme}
-
-\noindent \centering{}%
-\begin{tabular}{ccccc}
-\cmidrule{2-5}
- & Curr. state & Curr. token & Action & Next state\tabularnewline
-\cmidrule{2-5}
-1 & \strong{s} & $s$ & $Ts\to s'$; $T=s'$ & \strong{s}\tabularnewline
-\cmidrule{2-5}
-2 & \strong{s} & $d$ & $Td$ & \strong{n}\tabularnewline
-\cmidrule{2-5}
-3 & \strong{s} & $v$ & $Vv$; $T1v$ & \strong{a}\tabularnewline
-\cmidrule{2-5}
-4 & \strong{s} & $p$ & error & \strong{!!}\tabularnewline
-\cmidrule{2-5}
-5 & \strong{n} & $s$ & $\mathbf{N}T$; $T=s$ & \strong{s}\tabularnewline
-\cmidrule{2-5}
-6 & \strong{n} & $d$ & $Td$ & \strong{n}\tabularnewline
-\cmidrule{2-5}
-7 & \strong{n} & $v$ & $Vv$; $Tv$ & \strong{a}\tabularnewline
-\cmidrule{2-5}
-8 & \strong{n} & $p$ & error & \strong{!!}\tabularnewline
-\cmidrule{2-5}
-9 & \strong{a} & $s$ & $\mathbf{V}V,$; $V=\textrm{Ø}$; $\mathbf{A}T$; $T=s$ & \strong{s}\tabularnewline
-\cmidrule{2-5}
-10 & \strong{a} & $x\in\{dv\}$ & $Vx$; $Tx$ & \strong{a}\tabularnewline
-\cmidrule{2-5}
-11 & \strong{a} & $p$ & $Vp$; $Tp$ & \strong{p}\tabularnewline
-\cmidrule{2-5}
-12 & \strong{p} & $x\in\{sdv\}$ & $Vx$; $Tx$ & \strong{a}\tabularnewline
-\cmidrule{2-5}
-13 & \strong{p} & $p$ & error & \strong{!!}\tabularnewline
-\cmidrule{2-5}
-\end{tabular}
-\end{table}
-Yet this still leaves an unfinished feeling. While attaching a script token
-to a sign or other script token is a nonmathematical usage, attaching a
-superscript token to a number is a basic mathematical use, and so two of
-the errors raised can really be ignored. For the other, the question nags:
-why should we have to remember that although variables can be raised to
-powers, numbers cannot be? The urge to enlarge the scheme again is irresistible.
-Exponents on numbers should be accepted; but subscripts should not. The
-latter is a nonmathematical usage or is used only in special contexts remote
-from the present one. But that means we need to distinguish sub- and superscript
-tokens. We can't lump them together as `script tokens'.
-
-\subsubsection{Raising numbers to powers: new states}
-
-So a first step is to enlarge the number of states. We need an \emph{exponent}
-state \strong{e} when we encounter the token \textasciicircum{} and a
-\emph{subscript }state \strong{b} when we encounter the token \_. That
-allows us to distinguish acceptable forms like \texttt{2\textasciicircum{}3}
-($2^{3}$) from unacceptable ones like \texttt{2\_3} ($2_{3}$). But how
-do we know which state to transition to when we meet the \texttt{3} in
-\texttt{2\textasciicircum{}3}? The current state is the exponent one \strong{e}
-and the \texttt{3} could be decorating either a variable or a number. We
-need to know the \emph{previous} state as well as the current one. If the
-previous state is numeric we transition to a numeric state; if it is algebraic,
-we transition to an algebraic state.
-
-But that also introduces a problem. It is perfectly acceptable to add a
-digit to a term in a numeric state. Normally, this is how a multi-digit
-number is accumulated: \texttt{23}4, two hundred and thirty four. That
-is a very different meaning from \texttt{2\textasciicircum{}34} which means
-$2^{3}4$ to us (rather than $2^{34}$ since we accept only single-token
-superscripts). At this point, the syntax required by the underlying engine
-used for evaluating numerical expressions comes into play. For all numerical
-evaluations except those involving exponents, \texttt{l3int} of the LaTeX3
-kernel is used; for expressions involving exponents, \texttt{l3fp} is used.
-To \texttt{l3fp}, \texttt{2\textasciicircum{}34} is read as $2^{34}$.
-We need to insert a multiplication token between the \texttt{3} and \texttt{4},
-which for \texttt{l3fp} is the asterisk, \texttt{{*}}. Considering the
-different tokens that might follow \emph{that}, we are forced to introduce
-a third new state, the \emph{multiplicative} state, \strong{m}. So, to
-introduce powers of numbers means considering three new states and reference
-to the previous state.
-
-That, of course, is \emph{numeric} powers of numbers. To also allow algebraic
-powers, forms like $2^{n}$, introduces further complication. These can't
-be evaluated numerically, so presumably they are to be classified as variables.
-We need to consider terms like $+2^{n}$, $3*2^{n}$, $3^{m}2^{n}$, and
-$2^{n}m$. The problem here is that we have something that looks as if
-it is going to be a number (the digit 2) but then transforms into a variable,
-$2^{n}$. Do we need a \emph{fourth} new state, the entangled state \strong{q}
-(the `q' as in `quantum entanglement')?
-
-\begin{table}
-\noindent \centering{}\caption{\label{tab:Revised-input-output}State transitions of the full scheme}
-\medskip{}
-\begin{tabular}{cccccc}
-\cmidrule{2-6}
- & $S_{-}$ & $S$ & $t\in\left\{ sdv\text{\textasciicircum\_}*\right\} $ & Action & $S_{+}$\tabularnewline
-\cmidrule{2-6}
-1 & & \strong{s} & $s$ & $Ts\to s'$; $T=s'$ & \strong{s}\tabularnewline
-\cmidrule{2-6}
-2 & & \strong{s} & $d$ & $Qd$; $Td$ & \strong{n}\tabularnewline
-\cmidrule{2-6}
-3 & & \strong{s} & $v$ & $Vv$; $T1v$ & \strong{a}\tabularnewline
-\cmidrule{2-6}
-4 & & \strong{n} & $s$ & $Q=\textrm{Ø}$; $\mathbf{N}T$; $T=s$ & \strong{s}\tabularnewline
-\cmidrule{2-6}
-5 & & \strong{n} & $d$ & $Qd$; $Td$ & \strong{n}\tabularnewline
-\cmidrule{2-6}
-6 & & \strong{n} & $v$ & $Q=\textrm{Ø}$; $Vv$; $Tv$ & \strong{a}\tabularnewline
-\cmidrule{2-6}
-7 & & \strong{n} & $\text{\textasciicircum}$ & $Q\text{\textasciicircum}$; $T\text{\textasciicircum}$ & \strong{e}\tabularnewline
-\cmidrule{2-6}
-8 & & \strong{n} & $*$ & $Q=\textrm{Ø}$; $T*$ & \strong{m}\tabularnewline
-\cmidrule{2-6}
-9 & & \strong{a} & $s$ & $\mathbf{V}V,$; $V=\textrm{Ø}$; $\mathbf{A}T$; $T=s$ & \strong{s}\tabularnewline
-\cmidrule{2-6}
-10 & \strong{e} & \strong{a} & $d$ & $Vd$; $Td$ & \strong{a}\tabularnewline
-\cmidrule{2-6}
-11 & & \strong{a} & $v$ & $Vv$; $Tv$ & \strong{a}\tabularnewline
-\cmidrule{2-6}
-12 & & \strong{a} & $\text{\textasciicircum}$ & $V\text{\textasciicircum}$; $T\text{\textasciicircum}$ & \strong{e}\tabularnewline
-\cmidrule{2-6}
-13 & & \strong{a} & $\text{\_}$ & $V\text{\_}$; $T\text{\_}$ & \strong{b}\tabularnewline
-\cmidrule{2-6}
-14 & \strong{a} & \strong{e} & $t\in\left\{ sdv\right\} $ & $Vt$; $Tt$ & \strong{a}\tabularnewline
-\cmidrule{2-6}
-15 & \strong{n} & \strong{e} & $d$ & $Q=\textrm{Ø}$; $Td*$ & \strong{m}\tabularnewline
-\cmidrule{2-6}
-16 & \strong{n} & \strong{e} & $v$ & $Qv$; $Tv$; $V=Q$; $Q=\textrm{Ø}$ & \strong{a}\tabularnewline
-\cmidrule{2-6}
-17 & \strong{a} & \strong{b} & $t\in\left\{ sdv\right\} $ & $Vt$; $Tt$ & \strong{a}\tabularnewline
-\cmidrule{2-6}
-18 & \strong{e} & \strong{m} & $s$ & $T1$; $\mathbf{N}T$; $T=s$ & \strong{s}\tabularnewline
-\cmidrule{2-6}
-19 & & \strong{m} & $d$ & $Qd$; $Td$ & \strong{n}\tabularnewline
-\cmidrule{2-6}
-20 & & \strong{m} & $v$ & $Vv$; $T1v$ & \strong{a}\tabularnewline
-\cmidrule{2-6}
-21 & & \strong{m} & $*$ & & \strong{m}\tabularnewline
-\cmidrule{2-6}
-\end{tabular}
-\end{table}
-In fact I find that these problems can all be dealt with not by creating
-another state but by including another accumulator for \emph{potential}
-variables. I'll call it $Q$ (from the quantum suggestion, or perhaps quasi-variable,
-or even acqumulator). It stores numbers whose status has not been determined
-yet: they might yet be followed by a superscript token which might in turn
-be followed by a variable. Once resolved, $Q$ either transfers its contents
-to $V$, the variable accumulator, and is emptied (row 16), or is emptied
-forthwith (rows 4, 6, 8, 15).
-
-Table~\ref{tab:Revised-input-output} lists the transitions. I've denoted
-the previous state by $S_{-}$, the present state by $S$, and the next
-state by $S_{+}$. The final row of the table is intended: do nothing if
-we meet a multiplicative token when in a multiplicative state. The first
-scan through an order specification (to split it into numeric and algebraic
-parts) may introduce a {*} token (rows 8 and 15). We don't want to introduce
-a second such token in the recursive determination of the coefficients
-of variables. Hence row 21: do nothing. Also, if in the order specification
-we have something like $2^{3}*3^{2}$ (since \texttt{2\textasciicircum{}33\textasciicircum{}2}
-looks weird), we don't want the manually inserted {*} to cause an error
-because of the automatically inserted one (row 15).
-
-Possibilities not explicitly present in the table generally raise an error,
-e.g. current state \strong{s} and current token $\textnormal{\textasciicircum}$,
-or previous state \strong{n}, current state \strong{e} and current token
-$s$ ($+$ or $-$), and so on. I have omitted them from the table in the
-interests of space. The table is big enough already.
-
-With this table of transitions it is now possible to handle order specifications
-that include components like $n^{2}$ or $n^{m}$ or $k^{+}$ or $k_{2}$
-or $k_{n}$ or $2^{2}$ or $2^{3}3^{2}$ or $2\times3^{n}$ or $2^{2}3^{n}$
-or \ldots{}
-
-Note that the \texttt{\textbackslash{}times} token is converted internally
-by \texttt{diffcoeffx.sty} to the asterisk. They can be used interchangeably
-but it certainly looks more elegant.
-
-So, what could be better on a cool winter's evening, snug before the warmth
-of the fire, a glass of sustaining liquid to hand, than to do a few mixed
-partial derivatives? Like this,
-\begin{example}
-\textbackslash{}diffp{[}3\textasciicircum{}22\textasciicircum{}22\textasciicircum{}n+m,12\textasciicircum{}n-3m+2\textasciicircum{}3k,5m+2\textbackslash{}times2\textasciicircum{}32\textasciicircum{}n{]}\{F(x,y,z)\}\{x,y,z\}$\Longrightarrow\quad{\displaystyle \diffp[3^{2}2^{2}2^{n}+m,12^{n}-3m+2^{3}k,5m+2\times2^{3}2^{n}]{F(x,y,z)}{x,y,z}}$
-\end{example}
-or like this,
-\begin{example}
-\textbackslash{}diffp{[}k\textasciicircum{}+k\_-+1,2\textbackslash{}times
-k\_-,3\textasciicircum{}2k\_-,3k\textasciicircum{}+{]}\{F(x,y,z,w)\}\{x,y,z,w\}
-${\displaystyle \Longrightarrow\quad\diffp[k^{+}k_{-}+1,2\times k_{-},3^{2}k_{-},3k^{+}]{F(x,y,z,w)}{x,y,z,w}}$
-\end{example}
-In the first example the \texttt{\textbackslash{}times} symbol is inserted
-by \texttt{diffcoeffx} in the overall order of differentiation in the numerator
-so as to prevent the formation $522^{n}$ which would be read as 522 raised
-to the power $n$ \textendash{} and for a similar reason it was used in
-specifying the order of differentiation of the variable $z$ in the denominator
-in the first example, but could and should have been deleted from the order
-of differentiation of the variable $y$ in the second example.
-
-\subsubsection{Parentheses}
-
-The other major shortcoming of the basic scheme outlined in \texttt{diffcoeff.sty}
-was the inability to handle even the simplest instance of parentheses in
-an order specification \textendash{} something like\texttt{ {[}m-(n-1),m+(n-1){]}}
-which might well arise in a Taylor expansion. Indeed, there is more reason
-for including these in our scheme than exponents of numbers or $+$ or
-$-$ as sub- or superscripts.
-
-How might we fit parentheses to the scheme? We are not seeking a general
-treatment. Rather we wish to be able to handle order specifications a little
-more complicated (but only a little) than the one just given, say something
-like \texttt{{[}m+2(n-1),m-(n-1){]}}, perhaps with nesting. In that case
-the following stipulations meet our needs:
-\begin{itemize}
-\item a left parenthesis, (, either starts an item in the comma list, or is preceded
-by a sign or a number or $*$ or (, but \emph{not} by a variable or \textasciicircum{}
-or \_ or );
-\item a right parenthesis, ), either concludes an item in the comma list, or
-is followed by a sign or ), but \emph{not} by a number or a variable or
-\textasciicircum{} or \_ or $*$ or (.
-\end{itemize}
-These limitations allow nesting of parentheses but not products of parentheses.
-The main limitation they impose is that a variable lie \emph{within} parentheses
-but not adjoining-outside. They enable us to get away with the following
-`cheap and cheerful' scheme. It means we do not need to add parenthesis
-states to our scheme. The particular point to note are the $+0$ insertions.
-When we start parsing an expression from the left we do not know what it
-contains. In particular when we meet a left parenthesis, we have no foreknowledge
-of whether the parenthesised expression will be numeric, algebraic or a
-mix of both. We need to prepare for both by inserting a left parenthesis
-to both numeric and algebraic parts. But that brings us up against a quirk
-of \texttt{l3int}, the `engine' behind the numerical evaluations performed
-in \texttt{diffcoeff} and \texttt{diffcoeffx}. \texttt{l3int} objects to
-an empty pair of parentheses, \texttt{()}, which we would have should either
-numeric or algebraic parts be missing from the parenthesised expression.
-To avoid this we insert $+0$ and \texttt{l3int} is happy.\texttt{ }
-
-\begin{table}
-\centering{}\caption{\label{tab:Parentheses}Parentheses}
-\begin{tabular}{ccccc}
-\cmidrule{2-5}
- & Curr. state & Curr. token & Action & Next state\tabularnewline
-\cmidrule{2-5}
-1 & \strong{s} & ( & $T\text{1*(}$; $\mathbf{N}T$; $\mathbf{A}T$; $T=+$ & \strong{s}\tabularnewline
-\cmidrule{2-5}
-2 & \strong{s} & ) & $\mathbf{N})$; $\mathbf{A})$ & \strong{s}\tabularnewline
-\cmidrule{2-5}
-3 & \strong{n} & ( & $T*($; $\mathbf{N}T$; $\mathbf{A}T$; $T=+$ & \strong{s}\tabularnewline
-\cmidrule{2-5}
-4 & \strong{n} & ) & $T)$; $\mathbf{N}T$; $\mathbf{A}\text{+0)}$; $T=+$ & \strong{s}\tabularnewline
-\cmidrule{2-5}
-5 & \strong{a} & ) & $\mathbf{V}V,$; $V=\textrm{Ø}$; $\mathbf{N}\text{+0)}$; $T)$; $\mathbf{A}T$
-; $T=+$ & \strong{s}\tabularnewline
-\cmidrule{2-5}
-6 & \strong{m} & ( & $T($; $\mathbf{N}T$; $\mathbf{A}T$; $T=+$ & \strong{s}\tabularnewline
-\cmidrule{2-5}
-\end{tabular}
-\end{table}
-
-\begin{itemize}
-\item Row 1. Quirks of the \texttt{l3int} module of the \LaTeX{}3 kernel mean
-we need to insert \strong{1{*}} before the left parenthesis.\footnote{Specifically, \texttt{\textbackslash{}int\_eval\{}\textbf{ }\texttt{\textendash (}
-or \texttt{\textbackslash{}int\_eval\{}\textbf{ }\texttt{+(} throw errors.} Note that we add $T$ to \emph{both} the numeric and algebraic parts of
-the expression. We are working through our expression $\mathbf{E}$ from
-the left, token by token, and have no foreknowledge of what the parenthesised
-expression contains, whether algebraic terms only or numeric terms only
-or some combination of both. Hence the need to prepare for both. The system
-shifts to a signed state \strong{s} with $T=+$, exactly the same as when
-beginning to scan $\mathbf{E}$. After all, the parenthesised expression
-is an expression in itself.
-\item Row 2. This is to allow nested parentheses like )). It shouldn't arise
-otherwise. Because of rows 4 and 5, the first right parenthesis puts the
-system into a signed state. The current term will be $T=+$, but we ignore
-it and store only a right parenthesis in both numeric and algebraic parts.
-\item Row 3. We already have a number present in $T$; only the asterisk needs
-inserting before the parenthesis. Again we add $T$ to \emph{both} the
-numeric and algebraic parts of the expression, initialise $T$ to $+$
-and change the state to a signed one.
-\item Row 4. We are in a numeric state. We append ) to the current term and the
-current term to the numeric part of the expression. We append $+0)$ to
-the algebraic part, and shift to a signed state \strong{s} with $T=+$,
-as at the outset. The $+0)$ in the algebraic part is necessary to prevent
-an empty parenthesis pair in $\mathbf{A}$ should the parenthesised expression
-have contained \emph{no} algebraic term.
-\item Row 5. We are in an algebraic state. We append ) to the current term and
-the current term to the algebraic part of the expression. We append $+0)$
-to the numeric part and shift to the initial signed state again. The $+0)$
-in the numeric part is necessary to prevent an empty parenthesis pair in
-$\mathbf{N}$ should the parenthesised expression have contained \emph{no}
-numeric term.
-\item Row 6. We are in the new state, the multiplicative state, and the current
-token is a left parenthesis. We have already met and inserted an asterisk
-(row 5); we don't need to insert another. We append ( to $T$, $T$ to
-both numeric and algebraic parts and shift to the initial signed state
-again. The use of the multiplicative state prevents a string of asterisks
-arising (but we have been able to avoid introducing new states for left
-and right parentheses).
-\end{itemize}
-To work through an example, suppose we have an order specificiation \strong{{[}m+(n\textendash (k\textendash 1)),m\textendash{} 2(n+(k\textendash 1)),k{]}}.
-(Digit \strong{1} rather than a lower-case letter \strong{l} within the
-parentheses!) Concatenating, with linking + signs gives \strong{m+(n\textendash (k-1))+m\textendash 2(n+(k\textendash 1))+k}.
-Splitting into numeric and algebraic parts now results in \strong{+1{*}(\textendash 1{*}(\textendash 1))\textendash 2{*}(+1{*}(\textendash 1))}
-for the numeric part, evaluating to \strong{3}, and \strong{+1m+1{*}(+1n\textendash 1{*}(+1k+0))+1m\textendash 2{*}(+1n+1{*}(+1k+0))+1k}
-for the algebraic part.
-
-Removing \strong{m} from the latter and splitting into numeric and algebraic
-parts gives \strong{+1+ 1{*}(\textendash 1{*}(+0))+1\textendash 2{*}(+1{*}(+0))}
-for the numeric part, evaluating to \strong{2} which is the overall coefficient
-of \strong{m}, and \strong{+1{*}(+1n\textendash 1{*}(+1k+0))\textendash 2{*}(+1n+1{*}(+1k+0))+1k}
-for the algebraic part.
-
-Now remove \strong{n} from this resulting algebraic part and again split
-into parts. The result is \strong{+1{*}(+1-1{*}(+0))\textendash 2{*}(+1+1{*}(+0))}
-for the numeric part, evaluating to \strong{\textendash 1} which is the
-overall coefficient of \strong{n}, and \strong{+1{*}(\textendash 1{*}(+1k+0))\textendash 2{*}(+1{*}(+1k+0))+1k}
-for the algebraic part.
-
-Removing \strong{k} from this and splitting gives \strong{+1{*}(\textendash 1{*}(+1+0))\textendash 2{*}(+1{*}(+1+0))+1}
-for the numeric part, evaluating to \strong{\textendash 2} which is the
-overall coefficient of \strong{k}, and \strong{+1{*}(\textendash 1{*}(+0)) \textendash 2{*}(+1{*}(+0))}
-for the algebraic part. But we have run out of variables and so the process
-stops at this point:
-\begin{example}
-\textbackslash{}diffp{[}m+(n-(k-1)),m-2(n+(k-1)),k{]}F\{x,y,z\}$\Longrightarrow{\displaystyle \hspace*{1em}\diffp[m+(n-(k-1)),m-2(n+(k-1)),k]F{x,y,z}}$
-\end{example}
-
-\end{document}