texlive[68019] Master/texmf-dist: numerica-plus (23aug23)

commits+karl at tug.org commits+karl at tug.org
Wed Aug 23 00:46:00 CEST 2023


Revision: 68019
          http://tug.org/svn/texlive?view=revision&revision=68019
Author:   karl
Date:     2023-08-23 00:45:59 +0200 (Wed, 23 Aug 2023)
Log Message:
-----------
numerica-plus (23aug23)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/numerica-plus/README.txt
    trunk/Master/texmf-dist/doc/latex/numerica-plus/numerica-plus.pdf
    trunk/Master/texmf-dist/doc/latex/numerica-plus/numerica-plus.tex
    trunk/Master/texmf-dist/tex/latex/numerica-plus/numerica-plus.sty

Modified: trunk/Master/texmf-dist/doc/latex/numerica-plus/README.txt
===================================================================
--- trunk/Master/texmf-dist/doc/latex/numerica-plus/README.txt	2023-08-22 22:45:46 UTC (rev 68018)
+++ trunk/Master/texmf-dist/doc/latex/numerica-plus/README.txt	2023-08-22 22:45:59 UTC (rev 68019)
@@ -11,16 +11,18 @@
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
-This is version 2.0.0 of numerica-plus, the first stand-alone
-version. (Version 1 of numerica-plus was invoked from the
-numerica package by means of a package option.) The packages 
-numerica, l3kernel, l3packages, amsmath and mathtools are 
-required. numerica-plus defines three commands: \nmcIterate to 
-iterate and find fixed points of functions, \nmcSolve to find 
-zeros and extrema of functions, and \nmcRecur to calculate the 
-terms of recurrence relations. See numerica-plus.pdf for 
-details on how to use the package.
+numerica-plus defines three commands to (1) iterate 
+and find fixed points of functions, (2) find zeros 
+and extrema of functions, and (3) calculate the terms 
+of recurrence relations. 
 
+Version 3.0.0 of numerica-plus makes the necessary code 
+adjustments to accommodate the change to version 3 of 
+numerica, which must be loaded before numerica-plus.
+A section on Newton-Raphson iteration for finding zeros 
+of functions has been added to the documentation. See 
+numerica-plus.pdf for details on how to use the package.
+
 Manifest
 %%%%%%%%
 README.txt             this document

Modified: trunk/Master/texmf-dist/doc/latex/numerica-plus/numerica-plus.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/numerica-plus/numerica-plus.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/numerica-plus/numerica-plus.tex	2023-08-22 22:45:46 UTC (rev 68018)
+++ trunk/Master/texmf-dist/doc/latex/numerica-plus/numerica-plus.tex	2023-08-22 22:45:59 UTC (rev 68019)
@@ -1,4 +1,4 @@
-%% LyX 2.4.0-alpha3 created this file.  For more info, see https://www.lyx.org/.
+%% LyX 2.4.0-beta3-devel created this file.  For more info, see https://www.lyx.org/.
 %% Do not edit unless you really know what you are doing.
 \documentclass[english,tableposition=top]{report}
 \usepackage{lmodern}
@@ -11,13 +11,13 @@
 \usepackage{color}
 \definecolor{shadecolor}{rgb}{0.667969, 1, 1}
 \usepackage{babel}
-\usepackage{array}
 \usepackage{wrapfig}
 \usepackage{booktabs}
 \usepackage{framed}
 \usepackage{url}
 \usepackage{amsmath}
-\usepackage[unicode=true,pdfusetitle,
+\usepackage{graphicx}
+\usepackage[pdfusetitle,
  bookmarks=true,bookmarksnumbered=true,bookmarksopen=true,bookmarksopenlevel=2,
  breaklinks=true,pdfborder={0 0 1},backref=section,colorlinks=true]
  {hyperref}
@@ -30,19 +30,10 @@
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Textclass specific LaTeX commands.
 \newenvironment{centred}%
-  {\begin{center}\baselineskip=13pt\parskip=1pt}{\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}}
+  {\begin{center}}{\end{center}}
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands.
+\usepackage{numerica}
 \usepackage{numerica-plus}
 \usepackage{upquote}
 \newcommand\rel{\,\varrho\;}
@@ -50,7 +41,7 @@
 \DeclareMathOperator{\gd}{gd}
 
 \reuse{}
-\constants{ c=30,\omega=0.2 }
+\constants{ c=30, \omega=0.2 }
 
 \makeatother
 
@@ -61,68 +52,72 @@
 (\url{ajparsloe at gmail.com})}
 \maketitle
 \begin{abstract}
-The \verb`numerica-plus` package defines commands to iterate and
-find fixed points of functions of a single variable, to find the zeros
-or extrema of such functions, and to calculate the terms of recurrence
-relations.\\
-\\
+The \verb`numerica-plus` package defines commands to iterate functions
+of a single variable, find fixed points of such functions, find the
+zeros or extrema of such functions, and calculate the terms of recurrence
+relations.
+\end{abstract}
 \noindent\begin{minipage}[t]{1\columnwidth}%
 \begin{shaded}%
 
 \paragraph*{Note:}
 \begin{itemize}
-\item {\normalsize This document applies to version 2.0.0 of }{\normalsize\texttt{numerica-plus}}{\normalsize .def.}{\small\par}
-\item {\normalsize A version of }{\normalsize\texttt{numerica}}{\normalsize{}
-from or later than 2021/12/07 is required; (}{\normalsize\texttt{numerica}}{\normalsize{}
-requires }{\normalsize\texttt{amsmath}}{\normalsize , }{\normalsize\texttt{mathtools}}{\normalsize{}
-and the \LaTeX 3 bundles }{\normalsize\texttt{l3kernel}}{\normalsize{}
-and }{\normalsize\texttt{l3packages}}{\normalsize ).}{\small\par}
-\item {\normalsize I refer a number of times in this document to }{\normalsize\emph{Handbook
-of Mathematical Functions}}{\normalsize , edited by Milton Abramowitz
-and Irene A. Segun, Dover, 1965. This is abbreviated to }{\normalsize\emph{HMF}}{\normalsize .}{\small\par}
-\item {\normalsize Version 2 of }{\normalsize\texttt{numerica-plus}}{\small\par}
+\item This document applies to version 3.0.0 of \texttt{numerica-plus.}
+\item Version 3 of \texttt{numerica} is required; (\texttt{numerica} requires
+\texttt{amsmath} and \texttt{mathtools}).
+\item I refer many times in this document to \emph{Handbook of Mathematical
+Functions}, edited by Milton Abramowitz and Irene A. Stegun, Dover,
+1965. This is abbreviated to \emph{HMF}, and often followed by a number
+like 1.2.3 to locate the actual expression or value referenced.
+\item Version 3.0.0 of \texttt{numerica-plus}
 \begin{itemize}
-\item {\normalsize is the first stand-alone version; (in v.1 of }{\normalsize\texttt{numerica}}{\normalsize{}
-the commands }{\normalsize\texttt{\textbackslash nmcIterate}}{\normalsize ,
-}{\normalsize\texttt{\textbackslash nmcSolve}}{\normalsize{} and }{\normalsize\texttt{\textbackslash nmcRecur}}{\normalsize{}
-were loaded with the }{\normalsize\texttt{plus}}{\normalsize{} package
-option);}{\small\par}
-\item {\normalsize makes some small code adjustements;}{\small\par}
-\item {\normalsize amends documentation.}{\small\par}
+\item is compatible with the additional features of numerica version 3.0.0,
+\item including the decimal comma if the \verb`comma` package option is
+used with numerica;
+\item amends and adds to documentation, including
+\item a section on finding roots with Newton-Raphson iteration.
 \end{itemize}
 \end{itemize}
 \end{shaded}%
 \end{minipage}
-\end{abstract}
+
 \tableofcontents{}
 
 \chapter{Introduction}
 
-Entering 
-\begin{lyxcode}
-~\textbackslash usepackage\{numerica-plus\}
-\end{lyxcode}
+Entering
+\begin{verbatim}
+    \usepackage[<options>]{numerica}
+    \usepackage{numerica-plus}
+\end{verbatim}
 in the preamble of your document makes available the commands
 \begin{itemize}
 \item \verb`\nmcIterate`, a command to iterate a function (apply it repeatedly
-to itself), including finding fixed points (values $x$ where $f(x)=x$);
+to itself), including finding fixed points (values of $x$ where $f(x)=x$);
 \item \verb`\nmcSolve`, a command to find the zeros of functions of a single
-variable (values $x$ for which $f(x)=0$) or, failing that, local
+variable (values of $x$ for which $f(x)=0$) or, failing that, local
 maxima or minima of such functions;
 \item \verb`\nmcRecur`, a command to calculate the values of terms in recurrence
-relations in a single (recurrence) variable (like the terms of the
-Fibonacci sequence or Legendre polynomials).
+relations in a single recurrence variable (like the terms of the Fibonacci
+sequence or Legendre polynomials).
 \end{itemize}
-\verb`numerica-plus` requires a version of \verb`numerica` from
-or later than 2021/11/26. If found, \verb`numerica` is loaded automatically,
-making available the \verb`\nmcEvaluate`, \verb`\nmcInfo`, \verb`\nmcMacros`,
-\verb`\nmcConstants`, and \verb`\nmcReuse` commands; see the \verb`numerica`
-documentation for details on the use of these commands. 
+A main difference from version 2 of \verb`numerica-plus` is that
+the package now does not load \texttt{numerica} automatically but,
+rather, requires the user to explicitly call \texttt{numerica} (with
+options if wanted). Version 3 of \texttt{numerica} is required, and
+must be loaded \emph{before} \texttt{numerica-plus}. With \texttt{numerica}
+loaded you get access to the commands \verb`\nmcEvaluate` (\verb`\eval`),
+\verb`\nmcInfo` (\verb`\info`), \verb`\nmcMacros` (\verb`\macros`),
+\verb`\nmcConstants` (\verb`\constants`), and \verb`\nmcReuse`
+(\verb`\reuse`); see the \texttt{numerica} documentation for details
+on the use of these commands. The \texttt{numerica} package options,
+and particularly the \verb`comma` and \verb`rounding` options specifying
+the decimal comma and default rounding value, apply in \texttt{numerica-plus}.
 
 The commands of the present package all share the syntax of \verb`\nmcEvaluate`.
 I will discuss them individually in later chapters but turn first
-to something more than a `toy' example that illustrates their use
-and gives a sense of `what they are about'.
+to a meaningful example to illustrate their use and give a sense of
+`what they are about'.
 
 \section{Example of use: the rotating disk}
 
@@ -135,22 +130,22 @@
 as initial line so that $\theta_{1}=0$.
 
 The cosine rule for solving triangles tells us that the time $t_{ij}$
-in the underlying inertial system for a signal to pass from \textbf{i}
-to \textbf{j} satisfies the equation
+in the underlying inertial system for a signal to pass from point
+\textbf{i} to point \textbf{j} satisfies the equation
 \[
 t_{ij}=c^{-1}\sqrt{r_{i}^{2}+r_{j}^{2}-2r_{i}r_{j}\cos(\theta_{j}-\theta_{i}+\omega t_{ij})}\equiv f(t_{ij}),
 \]
-where $c$ is the speed of light. (Equally, we could be describing
-an acoustic signal between points on a disk rotating uniformly in
-a still, uniform atmosphere \textendash{} in which case $c$ would
-be the speed of sound.) Although the equation doesn't solve algebraically
-for the time $t_{ij},$ it does tell us that $t=t_{ij}$ is a \emph{fixed
-point} of the function $f(t)$. To calculate fixed points we use the
-command \verb`\nmcIterate`, or its short-name form \verb`\iter`,
-with the star option, \verb`\iter*`. For \verb`\iter` the star option
-means: continue iterating until a fixed point has been reached and,
-as with the \verb`\eval` command, suppress all elements from the
-display save for the numerical result. 
+where $c$ is the speed of light and $i,j\in\{1,2,3\}$. (Equally,
+we could be describing an acoustic signal between points on a disk
+rotating uniformly in a still, uniform atmosphere \textendash{} in
+which case $c$ would be the speed of sound.) Although the equation
+doesn't solve algebraically for the time $t_{ij},$ it does tell us
+that $t=t_{ij}$ is a \emph{fixed point} of the function $f$. To
+calculate fixed points we use the command \verb`\nmcIterate`, or
+its short-name form \verb`\iter`, with the star option, \verb`\iter*`.
+For \verb`\iter` the star option means: continue iterating until
+a fixed point has been reached and, as with the \verb`\eval` command,
+suppress all elements from the display save for the numerical result. 
 
 First, though, values need to be assigned to the various parameters.
 Suppose we use units in which $c=30,$ and $\omega=0.2$ radians per
@@ -162,8 +157,9 @@
 For the polar coordinates of \textbf{1 }and \textbf{3 }I have chosen
 $r_{1}=10$, $r_{3}=20$ and $\theta_{3}=0.2$ radians (remember $\theta_{1}=0$).
 To find a fixed point $t_{13}$ I give $t$ an initial trial value
-$1$ (plucked from the air). Its position as the rightmost item in
-the vv-list tells \verb`\iter` that $t$ is the iteration variable:
+$1$ (plucked from the air). Its position as the \emph{rightmost}
+item in the vv-list tells \verb`\iter` that $t$ is the iteration
+variable:
 \begin{verbatim}
     \iter*{ c^{-1}\sqrt{r_1^2+r_3^2-2r_1 r_3
               \cos(\theta_3+\omega t)}
@@ -194,48 +190,48 @@
 the $5$th iteration but also the next two just to confirm that the
 result is stable. We shall view all $7$: \texttt{see=7}. Because
 of the length of the formula I have suppressed display of the vv-list
-by giving the key \texttt{vvd}\emph{ }an empty value:\footnote{See the associated document \texttt{numerica.pdf}, the chapter on
-settings.}
+by giving the key \texttt{vv}\emph{ }an empty value:
 \begin{verbatim}
-    \iter[do=7,see=7,vvd=]
+    \iter[do=7,see=7,vv=]
       {\[ c^{-1}\sqrt{r_1^2+r_3^2-2r_1 r_3
         \cos(\theta_3+\omega t)} \]}
           [ r_1=10,r_3=20,\theta_3=0.2,t=1 ]
 \end{verbatim}
-$\Longrightarrow$     \iter[do=7,see=7,vvd=]
+$\Longrightarrow$     \iter[do=7,see=7,vv=]
       {\[ c^{-1}\sqrt{r_1^2+r_3^2-2r_1 r_3
-        \cos(\theta_3+\omega t)} \]}
+        \cos(\theta_3+\omega t)}\]}
           [ r_1=10,r_3=20,\theta_3=0.2,t=1 ]
-\noindent \begin{flushleft}
+\noindent\begin{flushleft}
 The display makes clear that on the $5$th iteration, the $6$-figure
 value has been attained. 
 \par\end{flushleft}
 
-Alternatively, we could use the \verb`\nmcRecur` command, or its
-short-name form \verb`\recur`, to view the successive iterations,
+Alternatively, we could use the \verb`\nmcRecur` command (or its
+short-name form \verb`\recur`) to view the successive iterations,
 since an iteration is a first-order recurrence: $f_{n+1}=f(f_{n})$:
 \begin{verbatim}
-    \recur[do=8,see1=0,see2=5,vvd={,\\(vv)\\},*]
-      {\[ f_{n+1}=c^{-1}\sqrt{r_1^2+r_3^2-2r_1 r_3
-        \cos(\theta_3+\omega f_{n})} \]}
+    \recur[env=multline*,vv={,}\\(vv)\\,
+                   do=8,see1=0,see2=5]
+      { f_{n+1}=c^{-1}\sqrt{r_1^2+r_3^2-2r_1 r_3
+        \cos(\theta_3+\omega f_{n})} }
           [ r_1=10,r_3=20,\theta_3=0.2,f_{0}=1 ]
 \end{verbatim}
-$\Longrightarrow$     \recur[do=8,see1=0,see2=5,vvd={,\\(vv)\\},*]
-      {\[ f_{n+1}=c^{-1}\sqrt{r_1^2+r_3^2-2r_1 r_3
-        \cos(\theta_3+\omega f_{n})} \]}
+$\Longrightarrow$     \recur[env=multline*,vv={,}\\(vv)\\,
+                   do=8,see1=0,see2=5]
+      { f_{n+1}=c^{-1}\sqrt{r_1^2+r_3^2-2r_1 r_3
+        \cos(\theta_3+\omega f_{n})} }
           [ r_1=10,r_3=20,\theta_3=0.2,f_{0}=1 ]
 
 \noindent I have specified \texttt{do=8} terms rather than $7$ since
 the zero-th term ($f_{0}=1$) is included in the count. I've chosen
 to view the last $5$ of them but none prior to those by writing \texttt{see1=0,see2=5}.
-Notice the \texttt{vvd} setting, pushing display of the vv-list and
-result to new lines and suppressing equation numbering with the \texttt{{*}}
-setting (which turns the \verb`multline` environment into a \verb`multline*`
-environment).
+Note the choice of environment and the \texttt{vv} setting, pushing
+display of the vv-list and result to new lines and suppressing equation
+numbering with the \texttt{{*}} on the \verb`multline`.
 
 Another and perhaps more obvious way to find the value of $t_{13}$,
 is to look for a zero of the function $f(t)-t$. That means using
-the command \verb`\nmcSolve` or its short-name form \verb`\solve`.
+the command \verb`\nmcSolve` (or its short-name form \verb`\solve`).
 I shall do so with the star option \verb`\solve*` which suppresses
 display of all but the numerical result. A trial value for $t$ is
 required. I have chosen \texttt{t=0}:
@@ -243,7 +239,7 @@
     \solve*{ c^{-1}\sqrt{r_1^2+r_3^2-2r_1 r_3
       \cos(\theta_3+\omega t)} - t }
         [ r_1=10,r_3=20,\theta_3=0.2,t=0 ],
-    \quad\nmcInfo{solve}.
+    \quad \nmcInfo{solve}.
 \end{verbatim}
 $\Longrightarrow$     \solve*{ c^{-1}\sqrt{r_1^2+r_3^2-2r_1 r_3
       \cos(\theta_3+\omega t)} - t }
@@ -252,24 +248,27 @@
 
 Nearly the same answer as before is attained but this time many more
 steps have been required. This is to be expected. The \verb`\solve`
-command uses the bisection method. Since $1/2^{10}\approx1/10^{3}$,
-about $10$ bisections are needed to determine $3$ decimal places.
-Hence we can expect about $20$ bisections for a $6$-decimal-place
-answer. The particular form of the \verb`\nmcInfo` command display,
-`$1+20$ steps', indicates that it took $1$ search step to find
-an interval in which the function vanished and, having found that
-interval, $20$ bisections to narrow the position of the zero to $6$-figures.
-I will discuss the discrepancy in the final figure in Chapter~\ref{chap:solveSolve};
-see \xA7\ref{subsec:solveExtraRounding}.
+command uses the bisection method, finding an interval where the function
+has opposite signs at the end points and successively bisecting it
+to locate the zero between. Since $1/2^{10}\approx1/10^{3}$, about
+$10$ bisections are needed to determine $3$ decimal places. Hence
+we can expect about $20$ bisections for a $6$-decimal-place answer.
+The particular form of the \verb`\nmcInfo` command display, `$1+20$
+steps', indicates that it took $1$ search step to find an interval
+where the function had opposite signs at the end points and, within
+that interval, $20$ bisections to narrow the position of the zero
+to $6$-figures. I will discuss the discrepancy in the final figure
+in Chapter~\ref{chap:solveSolve}; see \xA7\ref{subsec:solveExtraRounding}.
 
 \subsection{Circuits}
 
 Okay, so we can calculate the time taken in the underlying inertial
 system for a signal to pass from one point of the rotating disk to
-another. How long does it take to traverse the circuit \textbf{1}
-to \textbf{2} to \textbf{3} and back to \textbf{1}? That means forming
-the sum $t_{12}+t_{23}+t_{31}$, hence calculating the separate $t_{ij}$
-and then using \verb`\eval` to calculate their sum. 
+another. How long does it take to traverse the circuit \textbf{1231},
+i.e. a signal from \textbf{1} to \textbf{2} to \textbf{3} and back
+to \textbf{1}? That means forming the sum $t_{12}+t_{23}+t_{31}$,
+which means calculating the separate $t_{ij}$ and then using \verb`\eval`
+to calculate their sum. 
 
 To simplify things, I assume a little symmetry. Let the (polar) coordinates
 of \textbf{1} be $(a,0),$ of \textbf{2} be $(r,-\theta)$, and of
@@ -286,30 +285,39 @@
 to \textbf{1}, a signal against the rotation from \textbf{3} to \textbf{1}
 takes the same time as a signal from \textbf{1} to \textbf{2} and,
 in the sense of rotation, a signal from \textbf{2} to \textbf{1} takes
-the same time as a signal from \textbf{1} to \textbf{3}. To see this,
-suppose the signal from \textbf{2} to \textbf{1} starts at time $t=0$;
-it reaches \textbf{1} at a later time $t=t'$ when the disk has rotated
-an angle $\omega t'$. Viewed from the underlying inertial system,
-the signal path is  a straight line from a point on a circle of radius
-$r$ to a point on a concentric circle of radius $a$, the points
-subtending an angle at the centre \textbf{0} of $\theta+\omega t'$.
-But \textbf{3} at time $t'$ and \textbf{1} at time $t=0$ also subtend
-an angle $\theta+\omega t'$ at \textbf{0}, and also lie on circles
-of radii $r$ and $a$ respectively. In the underlying inertial system
-the line segments \textbf{1}$(0)$\textbf{3}$(t')$ and \textbf{2}$(0)$\textbf{1(}$t')$
-are of equal length. Similarly, if a signal from \textbf{3} at time
-$t=0$ reaches \textbf{1} at time $t=t''$ then \textbf{3}$(0)$\textbf{1}$(t'')$
-and \textbf{1}$(0)$\textbf{2}$(t'')$  are of equal length. Hence
-the round trip times are $2t_{12}+t_{23}$ and $2t_{13}+t_{32}$.
+the same time as a signal from \textbf{1} to \textbf{3}, so that the
+round trip times are $2t_{12}+t_{23}$ and $2t_{13}+t_{32}$. 
 
+\noindent{}%
+\noindent\begin{minipage}[t]{1\columnwidth}%
+\begin{shaded}%
+To see this, suppose the signal from \textbf{2} to \textbf{1} starts
+at time $t=0$; it reaches \textbf{1} at a later time $t'$ when the
+disk has rotated through an angle $\omega t'$. Viewed from the underlying
+inertial system, the signal path is  a straight line from point \textbf{2}
+$(r,-\theta)$ to point \textbf{1} $(a,\omega t')$ subtending an
+angle $\theta+\omega t'$ at the centre \textbf{0}. But \textbf{3}
+$(r,\theta+\omega t')$ at time $t'$ and \textbf{1} $(a,0)$ at time
+$t=0$ also subtend an angle $\theta+\omega t'$ at \textbf{0} in
+the underlying inertial system. In the underlying inertial system
+the line segments $\boldsymbol{1}_{0}\boldsymbol{3}_{t'}$ and $\boldsymbol{2}_{0}\boldsymbol{1}_{t'}$
+are of equal length (indeed reflections of each other in the bisector
+of the arc $\boldsymbol{1}_{0}\boldsymbol{1}_{t'}$) so that $t_{13}=t_{21}$.
+Similarly, if a signal from \textbf{3} at time $t=0$ reaches \textbf{1}
+at time $t=t''$ then $\boldsymbol{3}_{0}\boldsymbol{1}_{t''}$ and
+$\boldsymbol{1}_{0}\boldsymbol{2}_{t''}$ are of equal length and
+$t_{31}=t_{12}$. \end{shaded}%
+\end{minipage}
+
 \subsubsection{Nesting commands}
 
 Analytically, both $t_{21}$ and $t_{13}$ are the same fixed point
-of the function 
+of the function of $t$
 \[
 c^{-1}\sqrt{r^{2}+a^{2}-2ra\cos(\theta+\omega t)}
 \]
  and $t_{31}$ and $t_{12}$ are the same fixed point of the function
+of $t$
 \[
 c^{-1}\sqrt{r^{2}+a^{2}-2ra\cos(\theta-\omega t).}
 \]
@@ -326,84 +334,87 @@
 \begin{verbatim}
      
     \eval*{ % circuit 1231
-        2\iter*[var=t]{ c^{-1}\sqrt{a^2+r^2-2ar
+        2\iter[var=t]{ c^{-1}\sqrt{a^2+r^2-2ar
                   \cos(\theta-\omega t)} }[8]
-      + \iter*[var=t]{ c^{-1}\sqrt{2r^2-2r^2
+      + \iter[var=t]{ c^{-1}\sqrt{2r^2-2r^2
                   \cos(2\theta+\omega t)} }[8]
     % circuit 1321
-      - 2\iter*[var=t]{ c^{-1}\sqrt{a^2+r^2-2ar
+      - 2\iter[var=t]{ c^{-1}\sqrt{a^2+r^2-2ar
                   \cos(\theta+\omega t)} }[8]
-      - \iter*[var=t]{ c^{-1}\sqrt{2r^2-2r^2
+      - \iter[var=t]{ c^{-1}\sqrt{2r^2-2r^2
                   \cos(2\theta-\omega t)} }[8]
           }[ a=10,r=20,\theta=0.2,t=1 ] 
 \end{verbatim}
 $\Longrightarrow$     \eval*{ % circuit 1231
-        2\times\iter*[var=t]{ c^{-1}\sqrt{a^2+r^2-2ar
+        2\times\iter[var=t]{ c^{-1}\sqrt{a^2+r^2-2ar
                   \cos(\theta-\omega t)} }[8]
-      + \iter*[var=t]{ c^{-1}\sqrt{2r^2-2r^2
+      + \iter[var=t]{ c^{-1}\sqrt{2r^2-2r^2
                   \cos(2\theta+\omega t)} }[8]
     % circuit 1321
-      - 2\times\iter*[var=t]{ c^{-1}\sqrt{a^2+r^2-2ar
+      - 2\times\iter[var=t]{ c^{-1}\sqrt{a^2+r^2-2ar
                   \cos(\theta+\omega t)} }[8]
-      - \iter*[var=t]{ c^{-1}\sqrt{2r^2-2r^2
+      - \iter[var=t]{ c^{-1}\sqrt{2r^2-2r^2
                   \cos(2\theta-\omega t)} }[8]
-          }[ a=10,r=20,\theta=0.2,{t}=1 ] . 
+          }[a=10,r=20,\theta=0.2,{t}=1] . 
 
-By itself this result is of little interest beyond seeing that \verb`numerica-plus`
+By itself this result is of little interest beyond seeing that \texttt{numerica-plus}
 can handle the calculation. What \emph{is} interesting is to find
 values of our parameters for which the time difference vanishes \textendash{}
-say values of $\theta$, given the other parameters, especially the
-value of $r$. Is there a circuit such that it takes a signal the
-same time to travel in opposite senses around the circuit, despite
-the rotation of the disk? Rather than nesting the \verb`\iter*` commands
+say values of $\theta$, given the other parameters and especially
+the value of $r$. Is there a circuit such that it takes a signal
+the same time to travel in opposite senses around the circuit, despite
+the rotation of the disk? Rather than nesting the \verb`\iter` commands
 inside an \verb`\eval`, we need to nest them in a \verb`\solve`
 command:
 \begin{verbatim}
-    \solve[p=.,var=\theta,+=1,vvd=\\,*,+=1]
-      {\[ % circuit 1231    
-        2\times\iter*[var=t,+=1]{ c^{-1}\sqrt{a^2+r^2-2ar
+    \solve[env=multline*,p=.,var=\theta,+=1]
+      {% circuit 1231    
+        2\times\iter[var=t,+=1]{ c^{-1}\sqrt{a^2+r^2-2ar
                   \cos(\theta-\omega t)} }
-      + \iter*[var=t,+=1]{ c^{-1}\sqrt{2r^2-2r^2
+      + \iter[var=t,+=1]{ c^{-1}\sqrt{2r^2-2r^2
                   \cos(2\theta+\omega t)} }
       % circuit 1321
-      - 2\times\iter*[var=t,+=1]{ c^{-1}\sqrt{a^2+r^2-2ar
+      - 2\times\iter[var=t,+=1]{ c^{-1}\sqrt{a^2+r^2-2ar
                   \cos(\theta+\omega t)} }
-      - \iter*[var=t,+=1]{ c^{-1}\sqrt{2r^2-2r^2
+      - \iter[var=t,+=1]{ c^{-1}\sqrt{2r^2-2r^2
                   \cos(2\theta-\omega t)} }
-      \]}[ a=10,r=20,\theta=0.1,t=1 ]
+      }[ a=10,r=20,\theta=0.1,t=1 ][4]
 \end{verbatim}
-$\Longrightarrow$     \solve[p=.,var=\theta,+=1,vvd=\\,*]
-      {\[ % circuit 1231    
-        2\times\iter*[var=t,+=1]{ c^{-1}\sqrt{a^2+r^2-2ar
+$\Longrightarrow$     \solve[env=multline*,p=.,var=\theta,+=1]
+      {% circuit 1231    
+        2\times\iter[var=t,+=1]{ c^{-1}\sqrt{a^2+r^2-2ar
                   \cos(\theta-\omega t)} }
-      + \iter*[var=t,+=1]{ c^{-1}\sqrt{2r^2-2r^2
+      + \iter[var=t,+=1]{ c^{-1}\sqrt{2r^2-2r^2
                   \cos(2\theta+\omega t)} }
       % circuit 1321
-      - 2\times\iter*[var=t,+=1]{ c^{-1}\sqrt{a^2+r^2-2ar
+      - 2\times\iter[var=t,+=1]{ c^{-1}\sqrt{a^2+r^2-2ar
                   \cos(\theta+\omega t)} }
-      - \iter*[var=t,+=1]{ c^{-1}\sqrt{2r^2-2r^2
+      - \iter[var=t,+=1]{ c^{-1}\sqrt{2r^2-2r^2
                   \cos(2\theta-\omega t)} }
-      \]}[ a=10,r=20,\theta=0.1,t=1 ]
+      }[ a=10,r=20,\theta=0.1,t=1 ][4]
 
-One point to note here is the use of \verb`\times` (in \verb`2\times\iter*`).
-In this example the formula is displayed (\verb`\solve` wraps around
-math delimiters). Without the \verb`\times` the result would have
-been the same but the display of the formula would have juxtaposed
-the `$2$'s against the following decimals, making it look as if
-signal travel times were $20.537778$ and $20.61442$ (and no doubt
-causing perplexity). Also note the \texttt{vvd=\textbackslash\textbackslash}
-to place the result on a new line and suppress display of the vv-list.
+One point to note here is the use of \verb`\times` (in \verb`2\times\iter`).
+In this example the formula is displayed \textendash{} because of
+the use of the \verb`env` setting, \verb`env=multline*`. Without
+the \verb`\times` the result would have been the same but the display
+of the formula would have juxtaposed the `$2$'s against the following
+decimals, making it look as if signal travel times were $20.5378$
+and $20.6144$ (and no doubt causing perplexity). The unfamiliar settings
+are discussed in the relevant chapters below.
 
 So this expression gives a value of $\theta_{\Delta t=0}$ for one
 value of $r$. The obvious next step is to create a table of such
-values. I show how that is done in the document \verb`numerica-tables.pdf`
-using the command \verb`\nmcTabulate` defined in the associated package
-\verb`numerica-tables`. But this is not a research paper on the rotating
-disk. I wished to show how the different commands of \verb`numerica-plus`
+values, which can be done with the \verb`\tabulate` command from
+the associated package \texttt{numerica-tables} wrapped around an
+expression like the one above. (For my own interest I have done this.
+On a High St laptop it is not fast \textendash{} plenty of time to
+make a nice hot cup of tea.) But this is not a research paper on the
+rotating disk. I wished to show how the different commands of \texttt{numerica-plus}
 can be used to explore a meaningful problem. And although it looks
 as if a lot of typing is involved, once $c^{-1}\sqrt{r^{2}+a^{2}-2ra\cos(\theta-\omega t)}$
-has been formed in \LaTeX{} and values specified in the vv-list, much
-of the rest is copy-and-paste with minor editing.
+has been formed in \LaTeX{} and values specified in the vv-list (and
+the \verb`\constants` command in the preamble), much of the rest
+is copy-and-paste with minor editing.
 
 \section{Shared syntax of the new commands}
 
@@ -412,16 +423,14 @@
 functions, \verb`\nmcSolve` (short-name form \verb`\solve`) for
 finding the zeros or (local) extrema of functions, and \verb`\nmcRecur`
 (short-name form \verb`\recur`) for calculating terms of recurrence
-relations.
-
-All three commands share the syntax of the \verb`\nmcEvaluate` (or
-\verb`\eval`) command detailed in the associated document \texttt{numerica.pdf}.
+relations. All three commands share the syntax of \verb`\nmcEvaluate`
+(or \verb`\eval`) detailed in the associated document \texttt{numerica.pdf}.
 When all options are used the command looks like, for instance,
 \begin{centred}
-\noindent \verb`\nmcIterate*[settings]{expr.}[vv-list][num. format]`
+\noindent\verb`\nmcIterate*[settings]{expr.}[vv-list][num. format]`
 \end{centred}
 You can substitute \verb`\nmcSolve`, or \verb`\nmcRecur` for \verb`\nmcIterate`
-here. The arguments are similar to those for \verb`\nmcEvaluate`. 
+here. The arguments are the same as those for \verb`\nmcEvaluate`. 
 \begin{enumerate}
 \item \verb`*` optional switch; if present ensures a single number output
 with no formatting, or an appropriate error message if the single
@@ -437,99 +446,52 @@
 of the numerical result (rounding, padding with zeros, scientific
 notation); boolean output is suppressed for these commands.
 \end{enumerate}
-Like \verb`\nmcEvaluate`, for all three commands the way the result
-is displayed depends on whether the command wraps around math delimiters,
-or is used between math delimiters or in the absence of math delimiters.
-These distinctions are relevant\emph{ only if the optional star {*}
-is absent.}
-\begin{itemize}
-\item When the star option is used, the \emph{result} is a number only,
-without any formatting or vv-list display, or an error message is
-displayed.
-\item When the star option is not used and one of the following is the case
-\begin{itemize}
-\item the command wraps around math delimiters, e.g. \verb`\iter{$ expr. $}`,
-then 
-\begin{itemize}
-\item the result is displayed in the form \emph{formula~=~result, (vv-list)}
-or the form \emph{formula~$\rightarrow$~result, (vv-list)} as appropriate;
-\end{itemize}
-\item the command is used within math delimiters, e.g. \verb`\[\iter...\]`,
-then 
-\begin{itemize}
-\item the result is displayed in the form \emph{result, (vv-list)} (without
-reference to the formula);
-\end{itemize}
-\item the command is used in the absence of delimiters, then 
-\begin{itemize}
-\item the result is presented as if it had been used between \verb`\[`
-and \verb`\]`.
-\end{itemize}
-\end{itemize}
-\end{itemize}
-Looking at the various examples in the preceding section on the rotating
-disk you will see illustrations of all these situations.
+The way the result is displayed follows the same pattern as for \verb`\nmcEvaluate`
+(see the associated document \texttt{numerica.pdf}), depending on
+whether a math environment wraps around a command, is wrapped within
+a command, is invoked with the \verb`env` setting, or is completely
+absent. And with version $3$ of \texttt{numerica-plus}, as in \texttt{numerica},
+there is always the \verb`f` setting which turns on (\verb`f=1`)
+and turns off (\verb`f=0`) display of the formula. These matters
+are irrelevant for the starred forms of commands, which give number-only
+results. Looking at the various examples in the preceding section
+on the rotating disk you will see illustrations of many of these different
+situations. 
 
-\subsection{Settings}
+As well as the \verb`f` setting, most of the settings available to
+the \verb`\eval` command are also available to the present commands
+although not all will be relevant or have effect.\footnote{In particular the \texttt{ff} (multi-formula) setting has not, as
+yet, been implemented in version 3.0.0 of \texttt{numerica-plus} (in
+the interest of getting the whole revised \texttt{numerica} suite
+launched).} Refer to the associated document \texttt{numerica.pdf} for a discussion
+of such settings. The `trick' in version 2 of \texttt{numerica}
+and \texttt{numerica-plus} of converting environments delimited by
+\verb`\[` and \verb`\]`) into \verb`multline` environments whenever
+the vv-list specification included a newline character (\verb`\\`)
+has been dispensed with. Now, if you want a \verb`multline` or other
+environment, directly specify it with the \verb`env` setting. The
+enhanced handling of environments in \texttt{numerica} version 3 means
+the \verb`*` setting which was available in earlier versions of \texttt{numerica}
+and \texttt{numerica-plus} to suppress equation numbering is now unnecessary
+and has been removed (although its presence will not cause an error
+\textendash{} only leave a message in the log file and on the terminal).
+Starring the environment in the standard \LaTeX{} way, \verb`env=equation*`,
+\verb`env=multline*`, etc., does the job. 
 
-Nearly all the settings available to the \verb`\eval` command are
-available to these other commands. To save switching between documents
-I reproduce in Table~\ref{tab:introSettingsInherited} the options
-found in \texttt{numerica.pdf}, although for discussion of the options
-you will need to refer to that document. In addition, each of the
-present commands also has settings of its own, discussed at the relevant
-parts of the following chapters.
+In addition to the inherited settings, each of the \texttt{numerica-plus}
+commands has settings of its own, discussed at the relevant parts
+of the following chapters.
 
-\subsection{Nesting}
+Section \ref{sec:introExampleOfUse} also provides examples of commands
+being nested. Nesting may occur not only in the main argument of a
+command, but also in the vv-list, or even the settings option. (The
+associated document \texttt{numerica.pdf} has an example of the last
+possibility.)
 
-In v.1 of \verb`numerica`, for commands to be nested one within an
-another, it was necessary for the inner command to be starred (and
-thus produce a purely numerical result). With v.2 of \verb`numerica`
-this is no longer the case. A nested command is detected as such and
-the star automatically set, whether the user has explicitly starred
-the command or not. Provided the starred form of a command actually
-does produce a numerical result and not an error message then it can
-be nested within the main argument of any one of the other commands,
-including itself. The example of use, \xA7\ref{sec:introExampleOfUse}
-above, shows several examples of this. The starred form can also be
-used in the vv-list of any one of the commands, including itself.
-The associated document \texttt{numerica.pdf} shows examples of an
-\verb`\eval*` command being used in the vv-list of an \verb`\eval`
-command. 
-
-\begin{table}
-\noindent \centering{}\caption{\protect\label{tab:introSettingsInherited}Inherited settings options}
-\noindent \begin{center}
-\begin{tabular}{ll>{\raggedright}p{4cm}>{\raggedright}p{4cm}}
-\toprule 
-{\small key} & {\small type} & {\small meaning} & {\small default}\tabularnewline
-\midrule
-{\small\texttt{dbg}} & {\small int} & {\small debug `magic' integer} & {\small\texttt{0}}\tabularnewline
-{\small\texttt{\textasciicircum}} & {\small char} & {\small exponent mark for sci. notation input} & {\small\texttt{e}}\tabularnewline
-{\small\texttt{xx}} & {\small int (0/1)} & {\small multi-token variable switch} & {\small\texttt{1}}\tabularnewline
-{\small\texttt{()}} & {\small int (0/1/2)} & {\small trig. function arg. parsing} & {\small\texttt{0}}\tabularnewline
-{\small\texttt{o}} &  & {\small degree switch for trig. funcions} & \tabularnewline
-{\small\texttt{log}} & {\small num} & {\small base of logarithms for }{\small{\small\verb`\log`}} & {\small\texttt{10}}\tabularnewline
-{\small\texttt{vvmode}} & {\small int (0/1)} & {\small vv-list calculation mode} & {\small\texttt{0}}\tabularnewline
-{\small\texttt{vvd}} & {\small tokens} & {\small vv-list display-style spec.} & {\small\texttt{\{,\}\textbackslash mskip 12mu plus 6mu minus 9mu(vv)}}\tabularnewline
-{\small\texttt{vvi}} & {\small token(s)} & {\small vv-list text-style spec.} & {\small\texttt{\{,\}\textbackslash mskip 36mu minus 24mu(vv)}}\tabularnewline
-{*} &  & {\small suppress equation numbering if }{\small\texttt{\textbackslash\textbackslash}}{\small{}
-in }{\small\texttt{vvd}} & \tabularnewline
-{\small\texttt{p}} & char(s) & {\small punctuation (esp. in display-style)} & {\small\texttt{, (comma)}}\tabularnewline
-{\small\texttt{S+}} & {\small int} & {\small extra rounding for stopping criterion for sums} & {\small\texttt{2}}\tabularnewline
-{\small\texttt{S?}} & {\small$\text{int}\ge0$} & {\small stopping criterion query terms for sums} & {\small\texttt{0}}\tabularnewline
-{\small\texttt{P+}} & {\small int} & {\small extra rounding for stopping criterion for products} & {\small\texttt{2}}\tabularnewline
-{\small\texttt{P?}} & {\small$\text{int}\ge0$} & {\small stopping criterion query terms for products} & {\small\texttt{0}}\tabularnewline
-\bottomrule
-\end{tabular}
-\par\end{center}
-\end{table}
-
-
 \chapter{Iterating functions: \texttt{\textbackslash nmcIterate}}
 
-\label{chap:Iterating-functions}Only in desperation would one try
-to evaluate a continued fraction by stacking fraction upon fraction
+\label{chap:iterIterating-functions}Only in desperation would one
+try to evaluate a continued fraction by stacking fraction upon fraction
 upon fraction like so:
 \begin{verbatim}
     \eval{\[ 1+\frac{1}{1+\frac{1}{1+\frac{1}
@@ -544,109 +506,272 @@
           {1+\frac{1}{1+\frac{1}
             {1+\frac{1}{1}}}}}}}}}}}} \]}
 
-\noindent \verb`numerica-plus` provides a command for tackling problems
+\noindent\texttt{numerica-plus} provides a command for tackling problems
 like this sensibly. In such problems a function is repeatedly applied
 to itself (iterated). This is done through the command \verb`\nmcIterate`
-or (short-name form) \verb`\iter`. Thus to evaluate this continued
-fraction write (for instance),
+or (short-name form) \verb`\iter`. 
+
+\section{Basic use}
+
+\noindent\label{sec:iterBasic-use}To evaluate the continued fraction
+we want to apply $1+1/x$ to itself repeatedly. So, we wrap \verb`\iter`
+around \verb`1+1/x` and give \verb`x` an initial value \verb`1`
+in the vv-list: 
 \begin{centred}
-\verb`\iter[do=15,see=5]{\[ 1+1/x \]}[x=1]` $\Longrightarrow$ \iter[do=15,see=5]{\[ 1+1/x \]}[x=1]
+\verb`\iter{\[ 1+1/x \]}[x=1]` $\Longrightarrow$ \iter{\[ 1+1/x \]}[x=1]
 \end{centred}
-The \verb`\iter` command evaluates $1+1/x$ when $x=1$ and then
-uses this value as a new $x$-value to substitue into $1+1/x$, to
-once again evaluate and use as a new $x$-value, and so on. It looks
-as if the repeated iterations are approaching \verb`\eval{$ \tfrac{\sqrt{5}+1}2 $}`
-$\Longrightarrow$ \eval{$ \tfrac{\sqrt{5}+1}2 $}. Increasing the
-number of iterations in the example from \texttt{do=15} to, say, \texttt{do=18},
-shows that this is indeed the case. 
+This hints that it might be heading in the direction of \eval{$ \tfrac{\sqrt{5}+1}2 $}
+but clearly not enough iterations have been performed to confirm this.
+By default, the \verb`\iter` command performs $5$ evaluations, the
+initial evaluation producing in this instance the result $2$, which
+then becomes the new value of $x$, producing the first iteration
+proper and giving the value $1.5$, which in turn becomes the new
+value of $x$ and so on. Also by default, \verb`\iter` displays the
+first evaluation and the results of the final $4$. 
+
+Both these numbers, $5$ and $4$, are likely to be too small. They
+can be easily changed with the \verb`do` and \verb`see` settings.
+Increasing the number of iterations in the example to \verb`do=17`
+and the displayed results to \verb`see=5` shows how the iteration
+of $1+1/x$ indeed stabilizes at $1.618034$:
 \begin{centred}
-\verb`\iter[do=18,see=5]{\[ 1+1/x \]}[x=1]` $\Longrightarrow$ \iter[do=18,see=5]{\[ 1+1/x \]}[x=1] 
+\verb`\iter[do=17,see=5]{\[ 1+1/x \]}[x=1]` $\Longrightarrow$ \iter[do=17,see=5]{\[ 1+1/x \]}[x=1] 
 \end{centred}
 But iteration of functions is not limited to continued fractions.
 Particularly since the emergence of chaos theory, iteration has become
 an important study in its own right. Any function with range within
-its domain can be iterated \textendash{} repeatedly applied to itself
-\textendash{} like the cosine:
+its domain can be iterated \textendash{} repeatedly applied to itself.
+The cosine is an example:
 \begin{centred}
-\verb`\iter[do=20,see=4]{\[ \cos x \]}[x=\pi/2]` $\Longrightarrow$
-\iter[do=20,see=4]{\[ \cos x \]}[x=\pi/2]
+\verb`\iter[do=20]{\[ \cos x \]}[x=\pi/2]` $\Longrightarrow$ \iter[do=20,see=4]{\[ \cos x \]}[x=\pi/2]
 \end{centred}
-which displays the first one and last four of 20 iterations of $\cos x$
-when $x=\tfrac{\pi}{2}$. It looks as if the cosine is `cautiously'
-approaching a limit, perhaps around $0.738$ or $0.739$. You need
-to nearly double the number of iterations (\texttt{do=40}) to confirm
-that this is so.
+which displays the initial value and last four of 20 evaluations of
+$\cos x$ when the initial value of $x$ is $\tfrac{\pi}{2}$. It
+looks as if the cosine is `cautiously' approaching a limit, perhaps
+around $0.738$ or $0.739$. We need to nearly double the number of
+iterations to confirm that this is so (to the default $6$ figures):
+\begin{centred}
+\verb`\iter[do=39]{\[ \cos x \]}[x=\pi/2]` $\Longrightarrow$ \iter[do=39]{\[ \cos x \]}[x=\pi/2]
+\end{centred}
+The display is largely fixed, hard-coded, at least at this stage.
+It uses an \verb`array` environment. Whether it is centred or treated
+in an inline manner depends on whether displaystyle or inline (or
+no) delimiters are used. Rather than using explicit delimiters, the
+\verb`env` setting can also be used (there are examples below).
 
-The logistic function $kx(1-x)$ exhibits a variety of behaviours
-depending on the value of $k$. For instance, with $k=3.5$ we get
-a period-4 cycle:
+As already noted, for a function to be iterated indefinitely, its
+range must lie within or be equal to its domain. If even part of the
+range of a function lies outside its domain then on repeated iteration
+there is a chance that a value will eventually be calculated which
+lies in this `outside' region. Iteration cannot continue beyond
+this point and an error message is generated. As an example consider
+the inverse cosine, \verb`\arccos`. This can be iterated only so
+far as the iterated values lie between $\pm1$ inclusive. If we try
+to iterate \verb`\arccos` at 0 for example, since $\cos\frac{1}{2}\pi=0$,
+$\arccos0=\eval{0.5\pi}[4]$ ($\tfrac{1}{2}\pi$) so only a first
+iterate is possible. But we could choose an initial value more carefully;
+$37$ iterations of the cosine at $\tfrac{1}{2}\pi$ led to a fixed
+point $0.739085$, so let's choose $0.739085$ as initial point and
+perform $37$ iterations:
 \begin{centred}
-\verb`\iter[do=12,see=8]{\[ kx(1-x) \]}[k=3.5,x=0.5]` $\Longrightarrow$
- \iter[do=12,see=8]{\[ kx(1-x) \]}[k=3.5,x=0.5]
+\verb`\iter[do=37]{\[ \arccos x \]}[x=0.739085]` $\Longrightarrow$
+\iter[do=37]{\[ \arccos x \]}[x=0.739085]
 \end{centred}
-and with $k=3.1$ we get a period-2 cycle, although it takes many
-more iterations to stabilize there:
+The result of the $37$th iteration is greater than $1$. Thus increasing
+the number of iterations to 38 should generate an error message:
 \begin{centred}
-\verb`\iter[do=42,see=4]{\[ kx(1-x) \]}[k=3.1,x=0.5]` $\Longrightarrow$
-\iter[do=42,see=4]{\[ kx(1-x) \]}[k=3.1,x=0.5]
+\verb`\iter[do=38,see=4]{\[ \arccos x \]}[x=0.739085]` $\Longrightarrow$\iter[do=38,see=4]{\[ \arccos x \]} [x=0.739085]  
 \end{centred}
+which it does. \verb`l3fp` objects when asked to find the inverse
+cosine of a number greater than $1$.
 
+\subsection{Logistic map}
+
+\label{subsec:iterLogistic-map}The logistic map came to prominence
+with a 1976 paper by the biologist Robert May. He examined the equation
+\[
+x_{n+1}=rx_{n}(1-x_{n}),
+\]
+where $x_{n}\in[0,1]$ and represents the ratio of an existing population
+to the maximum possible population. The intent is to capture two opposed
+effects: reproduction, with the rate of population increase proportional
+to the population when the population is small ($x_{n+1}\approx rx_{n}$),
+and mortality, when the population approaches the `carrying capacity'
+of the environment ($x_{n+1}\approx r(1-x_{n})$ ).
+
+The logistic map $rx(1-x)$ exhibits a variety of behaviours depending
+on the value of $r\in(0,4)$. The Wikipedia article on the subject
+lists the following:
+\begin{enumerate}
+\item With $0\le r\le1$, the population dies, independent of the initial
+population.
+\item With $1\le r\le2$, the population will quickly approach the value
+$1-1/r$, independent of the initial population.
+\item With $2\le r\le3$, the population will also eventually approach the
+same value $1-1/r$, but first will fluctuate around that value for
+some time. The rate of convergence is linear, except for $r=3$, when
+it is dramatically slow.
+\item With $r$ between $3$ and $1+\surd6\approx3.44949$ the population
+will eventually oscillate between two values $x_{\pm}=\bigl(r+1\pm\sqrt{(r-3)(r+1)}\,\bigr)\big/2r$.
+\item With $r$ between $3.44949$ and $3.54409$ (approximately), from
+almost all initial conditions the population eventually oscillates
+among four values.
+\item With $r$ beyond $3.54409$, from almost all initial conditions, the
+population eventually oscillates among $8$ values, then $16$, then
+$32$, and so on. The lengths of the intervals of $r$ for each oscillation
+regime decrease rapidly; the ratio between the lengths of successive
+bifurcation intervals approaches the Feigenbaum constant $\delta\approx4.66920$.
+This is an example of a period-doubling cascade.
+\item $r\approx3.56995$, at the end of the period-doubling cascade, marks
+the onset of chaos. Most values of $r$ beyond this, from almost all
+initial conditions, no longer yield periodic oscillations. Slight
+variations in the initial population value yield significantly different
+results over time, but there are still certain isolated ranges of
+$r$ (islands of stability) that show non-chaotic behavior.
+\end{enumerate}
+This is a rich landscape of possibilities to explore. For instance,
+with $r=3.2$ we get a period-$2$ cycle, oscillating between $x_{\pm}$
+with values
+\begin{verbatim}
+    \eval[sep=\ \text{and}\ ,p=.,ff]
+        { (1/2r)[r+1+\sqrt{(r-3)(r+1)}] , 
+          (1/2r)[r+1-\sqrt{(r-3)(r+1)}] }[r=3.2]
+\end{verbatim}
+$\Longrightarrow$ \eval[sep=\ \text{and}\ ,p=.,ff]
+        { (1/2r)[r+1+\sqrt{(r-3)(r+1)}] , 
+          (1/2r)[r+1-\sqrt{(r-3)(r+1)}] }[r=3.2] 
+\begin{centred}
+\verb`\iter[do=18,see=6]{\[ rx(1-x) \]}[r=3.2,x=0.5]` $\Longrightarrow$
+\iter[do=18,see=6]{\[ rx(1-x) \]}[r=3.2,x=0.5]
+\end{centred}
+With $r=3.6$ we get chaos. For initial value of $x$ I have chosen
+neighbouring values, $0.3$ and $0.31$:
+\begin{centred}
+\verb`\iter[env=\[,do=100,see=6]{ rx(1-x) }[r=3.6,x=0.3]` $\Longrightarrow$
+ \iter[env=\[,do=100,see=6]{ rx(1-x) }[r=3.6,x=0.3]
+
+\verb`\iter[env=\[,do=100,see=6]{ rx(1-x) }[r=3.6,x=0.31]` $\Longrightarrow$
+ \iter[env=\[,do=100,see=6]{ rx(1-x) }[r=3.6,x=0.31]
+\end{centred}
+If you are using the decimal comma, make sure that the variables in
+the vv-list are separated by \emph{semicolons} rather than commas,
+otherwise puzzling errors are almost certain to arise.
+
 \section{Star (\texttt{{*}}) option: fixed points}
 
-In the first two of these examples, iteration eventually ended at
-a \emph{fixed point}. This is a point $x$ where $f(x)=x$. Appending
-a star (asterisk) to the \verb`\iter` command is the signal for iteration
-to continue until a fixed point has been reached at the specified
-rounding value:
+In some of the preceding examples, iteration eventually ended at a
+\emph{fixed point} \textendash{} a point $x$ where $f(x)=x$. Appending
+a star (asterisk) to the \verb`\iter` command is the signal for the
+\verb`\iter` command to continue iterating until a fixed point is
+reached at the specified rounding value, or some fixed maximum number
+of iterations have been performed. The star overrides any value specified
+by the the \verb`do` setting. It also overrides any elements of the
+display other than the numerical result \textendash{} meaning negative
+results display with a hyphen for the minus sign unless \verb`\iter*`
+is placed in a math environment. 
+
+Return to an earlier example, the continued fraction $1+1/x$. Starring
+the \verb`\iter` command gives 
 \begin{centred}
-\verb`\iter*{ 1+a/x }[a=n(n+1),n=1,x=1]` $\Longrightarrow$ \iter*{ 1+a/x }[a=n(n+1),n=1,x=1]
+\verb`\iter*{ 1+1/x }[x=1]` $\Longrightarrow$ \iter*{ 1+1/x }[x=1],
 \end{centred}
-(with the default rounding value $6$).\footnote{For your own interest try also putting $n=2,3,4,\ldots$ in the vv-list
-of this expression.} The star overrides any value for the number of iterations to perform
-(the \texttt{do} key) that may have been entered in the settings option.
-It also overrides any elements of the display other than the numerical
-result. With the star option math delimiters are irrelevant \textendash{}
-other than displaying minus signs correctly when \verb`\iter*` is
-between them.
+and generalizing the example,
+\begin{centred}
+\verb`\iter*{ 1+a/x }[a=n(n+1),n=3,x=1]` $\Longrightarrow$ \iter*{ 1+a/x }[a=n(n+1),n=3,x=1]
+\end{centred}
+Indeed, trying in turn $n=0,1,2,3,4,5$ we see that when iterated
+$1+a/x\to n+1$. A little invesigating shows that this is hardly surprising.
+If $x$ is a point such that 
+\[
+1+\frac{n(n+1)}{x}=x
+\]
+then $x^{2}-x-n(n+1)=0$. The quadratic factorizes: $(x-(n+1))(x+n)=0$
+so that, indeed, $x=n+1$ is a fixed point, as also \textendash{}
+we learn \textendash{} is $x=-n$, trivially. There is nothing here
+that requires $n$ to be an integer,
+\begin{centred}
+\verb`\iter*{ 1+a/x }[a=n(n+1),n=(\surd5-1)/2,x=1]` $\Longrightarrow$
+\iter*{ 1+a/x }[a=n(n+1),n=(\surd5-1)/2,x=1],
+\end{centred}
+but if we put $n=6$, we get a message:
+\begin{centred}
+\verb`\iter*{ 1+a/x }[a=n(n+1),n=6,x=1]` $\Longrightarrow$ \iter*{ 1+a/x }[a=n(n+1),n=6,x=1]
+\end{centred}
+It is easy to increase the $100$ here to a larger value as we will
+do in a moment but it is worth using the \verb`\info` command from
+\texttt{numerica} to see what is happening. For $n=1$ and initial
+value $x=1$,
+\begin{verbatim}
+    \iter*{1+a/x}[a=n(n+1),n=1,x=1],
+    we see that it takes \info{iter}
+\end{verbatim}
+$\Longrightarrow$ \iter*{1+a/x}[a=n(n+1),n=1,x=1],
+we see that it takes \info{iter} to attain a $6$-figure fixed point; when $n=2$ for this same initial
+value it takes 41; \ldots{} ; and when $n=5$ it takes $96$. The message
+when $n=6$ is hardly surprising.
 
-A function may not approach a fixed point when iterated \textendash{}
-see the examples with the logistic function above. To prevent an infinite
-loop \verb`\iter*` counts the number of iterations performed and
-when that number reaches a certain cut-off value \textendash{} the
-default is $100$ \textendash{} the loop terminates and a message
-is displayed:
+The maximum prevents \verb`\iter` falling into an infinite loop or
+similar state. We saw with the logistic map that there are parameter
+values that lead to $2$-cycles, $4$-cycles, $8$-cycles \ldots{}
+chaos, where iteration would continue indefinitely if there were no
+safeguard like a specified maximum number of iterations. For our case,
+however, it doesn't look as if infinite loops of this kind are the
+problem. We increase the maximum by using the setting \verb`max`:
 \begin{centred}
-\verb`\iter*{kx(1-x)}[k=3.5,x=0.5]` $\Longrightarrow$ \iter*{kx(1-x)}[k=3.5,x=0.5]
+\verb`\iter*[max=150]{1+a/x}[a=n(n+1),n=6,x=1], taking \info{iter}`
+$\Longrightarrow$ \iter*[max=150]{1+a/x}[a=n(n+1),n=6,x=1], taking \info{iter},
 \end{centred}
-In this case we \emph{know} that a fixed point does not exist, but
-that may not always be the case. One response to a message like this
-is to change parameter values or starting value of the iteration variable.
-For instance, changing the parameter value to $k=1.5$,
+and the fixed point is safely attained well within the bound of the
+new maximum. 
+
+Alternatively, we could have reduced the rounding value, say from
+the default $6$ to $5$:
 \begin{centred}
-\verb`\iter*{kx(1-x)}[k=1.5,x=0.5]` $\Longrightarrow$ \iter*{kx(1-x)}[k=1.5,x=0.5],
+\verb`\iter*{1+a/x}[a=n(n+1),n=6,x=1][5], taking \info{iter}` $\Longrightarrow$
+\iter*{1+a/x}[a=n(n+1),n=6,x=1][5], taking \info{iter}.
 \end{centred}
-means a fixed point is now attained. It is easy to check that $1/3$
-is indeed a fixed point (but that makes the $4$ in the last decimal
-place a concern; see the extra rounding setting, \xA7\ref{subsec:iterExtra-rounding}). 
+A fixed point is attained \textendash{} but with no room to spare.
+Generally, reducing the rounding value is the other strategy to pursue
+when faced with the `No fixed point attained' message, and perhaps
+the better one initially. If there is no fixed point after $100$
+iterations at some low rounding value \textendash{} say $2$ or $3$
+\textendash{} then there may well be no fixed point at all. 
 
-But should a fixed point still not eventuate after `fiddling' with
-parameter and start values, there are two general adjustments one
-might try: either 
-\begin{enumerate}
-\item reduce the rounding value, from the default $6$ (or the one specified),
-to a smaller value, or
-\item increase the cut-off figure from the default 100 to some higher value. 
-\end{enumerate}
-The former is done via the trailing number format optional argument
-of the \verb`\iter` command; the latter is done via the settings
-option, see \xA7\ref{sec:iterSettings-option}, specifically \xA7\ref{subsec:iterMaximum-iteration-count}. 
+\verb`\iter` determines that a fixed point has been attained when
+the difference between successive iterations vanishes when rounded
+to the current rounding value. This can lead to an error in the final
+digit: the \emph{difference }may vanish but the final value round
+\emph{away} from the fixed point. To seek reassurance that the fixed
+point really is the correct value you might wish to seek a fixed point
+at a higher rounding value without changing the number of digits displayed.
+The extra rounding is achieved by entering \verb`+=<integer>` in
+the settings option, where \verb`<integer>` is the \emph{extra} rounding
+desired.
 
+For example, for the logistics map with $r=1.5$ we expect a fixed
+point with value 
+\begin{centred}
+\verb`\eval{1-1/r}[r=1.5]` $\Longrightarrow$ \eval{1-1/r}[r=1.5],
+\end{centred}
+and indeed
+\begin{centred}
+\verb`\iter*{rx(1-x)}[r=1.5,x=0.5]` $\Longrightarrow$ \iter*{rx(1-x)} [r=1.5,x=0.5],
+\end{centred}
+the expected value \textendash{} if we ignore the final digit. So
+let's use the \verb`+` setting, to demand that the difference between
+successive iterate values at $6+1=7$ figures vanishes. That should
+ensure the correct $6$-figure fixed point is attained, and it is:
+\begin{centred}
+\verb`\iter*[+=1]{rx(1-x)}[r=1.5,x=0.5]` $\Longrightarrow$ \iter*[+=1]{rx(1-x)}[r=1.5,x=0.5].
+\end{centred}
+
 \subsection{Use with \texttt{\textbackslash nmcInfo}}
 
-It is of interest to know how many iterations are required to reach
-a fixed point at a particular rounding value. That knowledge allows
-a good guess as to whether a fixed point will be attained at a greater
-rounding value. Thus when iterating the function
+We have already seen that the \verb`\nmcInfo` command provides information
+on the number of iterations necessary to attain a fixed point, especially
+how many are required at a particular rounding value. That knowledge
+allows a good guess as to whether a fixed point will be attained at
+a greater rounding value. Thus when iterating the function
 \[
 f(t_{ij})=c^{-1}\sqrt{r_{i}^{2}+r_{j}^{2}-2r_{i}r_{j}\cos(\theta_{j}-\theta_{i}+\omega t_{ij})}
 \]
@@ -668,64 +793,97 @@
 $\Longrightarrow$     \iter*{ c^{-1}\sqrt{r_i^2+r_j^2-2r_i r_j
       \cos(\theta_{ij}+\omega t)}
         }[ r_i=10,r_j=20,\theta_{ij}=0.2,t=1 ][12]         
-    ,\quad\info{iter}. (Remember, \verb`numerica-plus` knows the values of $c$ and $\omega$
+    ,\quad\info{iter}. (Remember, \texttt{numerica-plus} knows the values of $c$ and $\omega$
 from a \verb`\constants` statement in the preamble.) And indeed only
 $9$ iterations suffice to achieve $12$-figure accuracy: 
 \begin{verbatim}
-    \iter[do =11,see=4]
+    \iter[env=\[,vv=,do =11,see=4]
       { c^{-1}\sqrt{r_i^2+r_j^2-2r_i r_j
         \cos(\theta_{ij}+\omega t)}
       }[ r_i=10,r_j=20,\theta_{ij}=0.2,t=1 ][12]
 \end{verbatim}
-$\Longrightarrow$     \iter[do =11,see=4]
+$\Longrightarrow$     \iter[env=\[,vv=,do =11]
       { c^{-1}\sqrt{r_i^2+r_j^2-2r_i r_j
         \cos(\theta_{ij}+\omega t)}
       }[ r_i=10,r_j=20,\theta_{ij}=0.2,t=1 ][12]
 
+\noindent (Display of the vv-list has been suppressed with the setting
+\verb`vv=` .)
+
 Or again, with another example from earlier,
 \begin{centred}
-\verb`$ \iter*{\cos x}[x=\pi/2] $,\ \info{iter}.` $\Longrightarrow$
-$\iter*{\cos x}[x=\pi/2] $,\ \info{iter}.
+\verb`\iter*{\cos x}[x=\pi/2],\ \info{iter}` $\Longrightarrow$ \iter*{\cos x}[x=\pi/2],\ \info{iter}.
 \end{centred}
 That suggests that around $2\times37=74$ iterations will give a $2\times6=12$-figure
 answer, well within the cut-off figure of $100$:
 \begin{centred}
-\verb`$ \iter*{\cos x}[x=\pi/2][12] $,\ \info{iter}.` $\Longrightarrow$
-$\iter*{\cos x}[x=\pi/2][12] $,\ \info{iter}.
+\verb`\iter*{\cos x}[x=\pi/2][12],\ \info{iter}.` $\Longrightarrow$
+\iter*{\cos x}[x=\pi/2][12],\ \info{iter}.
 \end{centred}
 
-\section{Settings option}
+\section{Settings, saving results, errors, }
 
 \label{sec:iterSettings-option}The settings option is a comma-separated
-list of items of the form \emph{key~=~value}.
-
-\subsection{Inherited settings}
-
-Nearly all of the keys discussed in the settings\emph{ }option for
-\verb`\nmcEvaluate` are available for \verb`\nmcIterate`. Table~\ref{tab:introSettingsInherited}
-above lists these, repeating a table from \texttt{numerica.pdf}. Thus
-should a quantity in the vv-list depend on the iteration variable,
-forcing an implicit mode calculation, simply enter, as with \verb`\eval`,
-\verb`vv@=1` (alternatively, \verb`vvmode=1`) in the settings option:
+list of items of the form \emph{key~=~value}. Only some of the keys
+for \verb`\nmcEvaluate` discussed in Chapter~$5$ of the associated
+document \texttt{numerica.pdf} are relevant for \verb`\nmcIterate`.
+Thus should a quantity in the vv-list depend on the iteration variable,
+forcing an implicit mode calculation, simply enter \verb`vv@=1` (alternatively,
+\verb`vvmode=1`) in the settings option, as with \verb`\eval`:
 \begin{centred}
-\verb`\iter*[vv@=1]{$ f(x) $}[f(x)=1+a/x,a=12,x=1]` $\Longrightarrow$
-\iter*[vv@=1]{$ f(x) $}[f(x)=1+a/x,a=12,x=1].
+\verb`\iter*[vv@=1]{ f(x) }[f(x)=1+a/x,a=12,x=1]` $\Longrightarrow$
+\iter*[vv@=1]{ f(x) }[f(x)=1+a/x,a=12,x=1].
 \end{centred}
-Implicit in the example is the default multi-token setting \texttt{xx=1}
+Implicit in the example is the default multi-token setting \verb`xx=1`
 inherited from \verb`\eval` and ensuring that the multi-token variable
 $f(x)$ is treated correctly. 
 
-Let's add \verb`dbg=1` to the example:
+We could add \verb`dbg=1` to the example \textendash{} or just enter
+\verb`view` \textendash{} to get a glimpse at the `innards' of
+what is going on:
+\begin{verbatim}
+    \iter*[view,vv@=1]{ f(x) }[f(x)=1+a/x,a=12,x=1]
+    \info{iter}
+\end{verbatim}
+$\Longrightarrow$ \iter*[view,vv@=1]{ f(x) }[f(x)=1+a/x,a=12,x=1]
+    \info{iter}
+
+The multi-token variable \verb`f(x)` has been changed to a single-token.
+The difference between the two long `stored' numbers is less than
+$5$ in the $7$th decimal place, meaning a fixed point has been found.
+Since $59$ iterations are required to attain the fixed point at $6$-decimal
+place accuracy, the values shown correspond to the $60$th iteration,
+the \emph{final} iteration. Because the \verb`\iter` command is the
+starred form, the result that is fed to \LaTeX{} is simply the fixed
+point $4$ expressed as a number. Remove the star, add \verb`do=60`
+and replace \verb`view` with \verb`dbg=55` (or equivalently \verb`dbg=5*11`)
+in the settings option:
 \begin{centred}
-\verb`\iter*[dbg=1,vv@=1]{$ f(x) $}[f(x)=1+a/x,a=12,x=1]` $\Longrightarrow$
-\iter*[dbg=1,vv@=1]{$ f(x) $} [f(x)=1+a/x,a=12,x=1]
+\verb`\iter[dbg=55,vv@=1,do=60]{ f(x) }[f(x)=1+a/x,a=12,x=1]` $\Longrightarrow$
+\iter[dbg=55,vv@=1,do=60]{ f(x) }[f(x)=1+a/x,a=12,x=1]
 \end{centred}
-The multi-token variable \verb`f(x)` has been changed to a single-token.
-The values shown under `stored' and `fp-form' are those of the
-\emph{final} iteration.
+Now the \LaTeX{} form is much fuller and the stored numbers exactly
+match those of the starred form.
 
 \subsection{\texttt{\textbackslash nmcIter}ate-specific settings}
 
+\begin{table}
+\centering{}\caption{\protect\label{tab:iterSettings}Settings for \texttt{\textbackslash nmcIterate}}
+\begin{center}
+\begin{tabular}{llll}
+\toprule 
+{\small key} & {\small type} & {\small meaning} & {\small initial}\tabularnewline
+\midrule
+{\small\texttt{var}} & {\small token(s)} & {\small iteration variable} & \tabularnewline
+{\small\texttt{+}} & {\small int} & {\small fixed point extra rounding} & {\small\texttt{0}}\tabularnewline
+{\small\texttt{max}} & {\small int > 0} & {\small max. iteration count (fixed points)} & {\small\texttt{100}}\tabularnewline
+{\small\texttt{do}} & {\small int > 0} & {\small number of iterations to perform} & {\small\texttt{5}}\tabularnewline
+{\small\texttt{see}} & {\small int > 0} & {\small number of final iterations to view} & {\small\texttt{4}}\tabularnewline
+ & {\small int ($\mathtt{0}/\mathtt{1}/\mathtt{2}$)} & {\small form of result saved with }{\small{\small\verb`\`}} & {\small\texttt{0}}\tabularnewline
+\bottomrule
+\end{tabular}
+\par\end{center}
+\end{table}
 In addition to the inherited settings there are some specific to \verb`\nmcIterate`.
 These are listed in Table~\ref{tab:iterSettings}.
 
@@ -735,64 +893,49 @@
 the rightmost variable in the vv-list and has not needed to be otherwise
 specified. However it is sometimes not feasible to indicate the variable
 in this way. In that case, entering
-\begin{lyxcode}
-var~=~<variable~name>
-\end{lyxcode}
+\begin{verbatim}
+    var = <variable name>
+\end{verbatim}
 in the settings option enables the variable to be specified, irrespective
-of what the rightmost variable in the vv-list is. Here, \texttt{<variable
-name>} will generally be a character like \texttt{x} or \texttt{t}
-or a token like \verb`\alpha`, but it could also be a multi-token
-name like {\ttfamily\verb`x'`}\texttt{ }or \texttt{\textbackslash beta\_\{ij\}}
-(or even \texttt{Fred} if you so chose). Although the iteration variable
+of what the rightmost variable in the vv-list is. Here, \verb`<variable name>`
+will generally be a character like \verb`x` or \verb`t` or a token
+like \verb`\alpha`, but it could also be a multi-token name like
+{\ttfamily\verb`x'`}\texttt{ }or \verb`\beta_{ij}` (or
+even \verb`Fred` if you so chose). Although the iteration variable
 can be independently specified like this, it must still be given an
-initial \emph{value} in the vv-list \textendash{} only it need not
-be the rightmost variable.
+initial \emph{value} in the vv-list \textendash{} only now it need
+not be the rightmost variable.
 
-In the following example the rightmost variable is $a$ which is clearly
-\emph{not} the iteration variable:
+In the following example the rightmost variable is \verb`n` which
+is clearly \emph{not} the iteration variable:
 \begin{centred}
-\verb`\iter[var=x,do=40,see=5]{$ 1+a/x $}[x=a/6,a=6][*]` $\Longrightarrow$
-\iter[var=x,do=40,see=5]{$ 1+a/x $}[x=a/6,a=6][*]
+\verb`\iter[var=x,do=40]{$ 1+a/x $}[x=n-1,a=n(n+1),n=2][*]` $\Longrightarrow$
+\iter[var=x,do=40]{$ 1+a/x $}[x=n-1,a=n(n+1),n=2][*]
 \end{centred}
 
 \subsubsection{Extra rounding for fixed-point calculations}
 
-\label{subsec:iterExtra-rounding}
-\begin{table}
-\centering{}\caption{\protect\label{tab:iterSettings}Settings for \texttt{\textbackslash nmcIterate}}
-\begin{center}
-\begin{tabular}{llll}
-\toprule 
-{\small key} & {\small type} & {\small meaning} & {\small default}\tabularnewline
-\midrule
-{\small\texttt{var}} & {\small token(s)} & {\small iteration variable} & \tabularnewline
-{\small\texttt{+}} & {\small int} & {\small fixed point extra rounding} & {\small\texttt{0}}\tabularnewline
-{\small\texttt{max}} & {\small int > 0} & {\small max. iteration count (fixed points)} & {\small\texttt{100}}\tabularnewline
-{\small\texttt{do}} & {\small int > 0} & {\small number of iterations to perform} & {\small\texttt{5}}\tabularnewline
-{\small\texttt{see}} & {\small int > 0} & {\small number of final iterations to view} & {\small\texttt{4}}\tabularnewline
- & {\small int ($\mathtt{0}/\mathtt{1}/\mathtt{2}$)} & {\small form of result saved with }{\small{\small\verb`\`}} & {\small\texttt{0}}\tabularnewline
-\bottomrule
-\end{tabular}
-\par\end{center}
-\end{table}
-\verb`numerica-plus` determines that a fixed point has been reached
-when the difference between successive iterations vanishes when rounded
-to the current rounding value. One might want reassurance that this
-really is the correct value by seeking a fixed point at a higher rounding
-value than that displayed. This extra rounding is achieved by entering 
-\begin{lyxcode}
-+~=~<integer>
-\end{lyxcode}
+\label{subsec:iterExtra-rounding}The criterion used to signal the
+attainment of a fixed point is that the difference between successive
+iterations vanishes when rounded to the current rounding value. As
+already noted, because of rounding errors and the `round to even'
+tie-breaking rule, this criterion may lead to error in the last digit.
+That can be avoided by rounding to a greater number of digits than
+the actual rounding value. This \emph{extra} rounding is achieved
+by entering 
+\begin{verbatim}
+    + = <integer>
+\end{verbatim}
 in the settings option. By default this extra rounding is set to zero. 
 
 We have seen before that $\cos x$ starting at $x=\tfrac{1}{2}\pi$
 takes $37$ iterations to reach a $6$-figure fixed point $0.739085$,
-about $6$ iterations per decimal place. By entering \texttt{+=1}
-in the settings option the number of iterations is increased to $43$,
+about $6$ iterations per decimal place. By entering \verb`+=1` in
+the settings option the number of iterations is increased to $43$,
 $6$ more than $37$ but, reassuringly, the $6$-figure result that
 is displayed remains unchanged:
 \begin{centred}
-\verb`$ \iter*[+=1]{\cos x}[x=\pi/2] $,\ \info{iter}.` $\Longrightarrow$
+\verb`$ \iter*[+=1]{\cos x}[x=\pi/2] $,\ \info{iter}` $\Longrightarrow$
 $ \iter*[+=1]{\cos x}[x=\pi/2] $,\ \info{iter}.
 \end{centred}
 
@@ -799,141 +942,191 @@
 \subsubsection{Maximum {\small iteration count for fixed-point searches}}
 
 \label{subsec:iterMaximum-iteration-count}To prevent a fixed-point
-search from continuing indefinitely when no fixed point exists, there
-needs to be a maximum number of iterations specified after which point
-the search is called off. By default this number is $100$. To change
-it enter
-\begin{lyxcode}
-max~=~<positive~integer>
-\end{lyxcode}
+search from continuing indefinitely, perhaps because no fixed point
+exists, there needs to be a maximum number of iterations specified
+after which point the search is called off. By default this number
+is $100$. To change it enter
+\begin{verbatim}
+    max = <positive integer>
+\end{verbatim}
 in the settings option.
 
 \subsubsection{Number of iterations to perform}
 
 To specify the number of iterations to perform enter
-\begin{lyxcode}
-do~=~<positive~integer>
-\end{lyxcode}
+\begin{verbatim}
+    do = <positive integer>
+\end{verbatim}
 in the settings option. Note that if the \verb`*` option is present
 this value will be ignored and iteration will continue until either
 a fixed point or the maximum iteration count is reached. By default
-\texttt{do} is set to $5$. (Note that \texttt{do} can be set to a
-greater number than \texttt{max}; \texttt{max} applies only to \verb`\iter*`.)
+\verb`do` is set to $5$. (Note that \texttt{do} can be set to a
+greater number than the initial $100$ setting of \verb`max`; \verb`max`
+applies only to the starred form \verb`\iter*`.)
 
 \subsubsection{Number of iterations to show}
 
 To specify the number of final iterations to show enter 
-\begin{lyxcode}
-see~=~<positive~integer>
-\end{lyxcode}
-in the settings option. By default \texttt{see} is set to $4$. Always
-it is the \emph{last} \texttt{see} iterations that are displayed.
-If \texttt{see} is set to a greater value than \texttt{do}, all iterations
-are shown. If the star option is used the \texttt{see} value is ignored.
+\begin{verbatim}
+    see = <positive integer>
+\end{verbatim}
+in the settings option. By default \verb`see` is set to $4$. Always
+it is the \emph{last} \verb`see` iterations that are displayed. If
+\verb`see` is set to an equal or greater value than \verb`do`, all
+iterations are shown. If the star option is used the \verb`see` value
+is ignored.
 
-\subsubsection{Form of result saved by \texttt{\textbackslash nmcReuse}}
+\subsection{Form of result saved by \texttt{\textbackslash nmcReuse}}
 
-By entering
-\begin{lyxcode}
-reuse~=~<integer>
-\end{lyxcode}
-in the settings option of the \verb`iter` command it is possible
-to specify the form of result that is saved when using \verb`\nmcReuse`.
-(This setting has no effect when the star option is used with \verb`\nmcIterate`.
-In that case only the numerical result of the fixed point calculation
-\textendash{} if successful \textendash{} is saved.) The possibilities
-are:
-\begin{itemize}
-\item \texttt{int=0} (or any integer $\mathtt{\ne1,2}$) saves the display
-resulting from the \verb`\iter` command (the default);
-\item \texttt{int=1} saves a comma-separated list of braced pairs of the
-form:\texttt{ }~\\
-\texttt{\{$k$, value-of-$k$-th-iterate\}};
-\item \texttt{int=2} saves a comma-separated list of iterate values.
-\end{itemize}
-Note that the number and content of the items in the lists are those
-resulting from the \texttt{see} setting (the number of iterations
-to view).
+In version 2 of \texttt{numerica-plus} there was a setting \verb`reuse`
+that determined the content of what was saved with the\texttt{ }\verb`\nmcReuse`
+command. This has been removed. Now it is only the last \verb`see`
+values that are saved as a comma list. The values stored in the list
+are each wrapped in braces. In this way no confusion arises if the
+decimal comma is being used. For a fixed point calculation, it is
+the fixed point as displayed that is saved. 
 \begin{verbatim}
-    \iter[reuse=1,do=12,see=4]
+    \iter[do=12,see=4]
       {\[ kx(1-x) \]}[k=3.5,x=0.5]
     \reuse{logistic}
 \end{verbatim}
-$\Longrightarrow$ \iter[reuse=1,do=12,see=4]{\[ kx(1-x) \]}[k=3.5,x=0.5]  \reuse[renew]{logistic}
+$\Longrightarrow$ \iter[do=12,see=4]{\[ kx(1-x) \]}[k=3.5,x=0.5] \reuse[renew]{logistic}
 
-\noindent whence \verb`\logistic` $\Longrightarrow$ \logistic{}.
-As you can see the control sequence \verb`\logistic` displays as
-a comma-separated list of numbers, alternating between the iterate
-ordinal and the iterate value. That these are stored as braced pairs
-can be seen by using \TeX 's \verb`\meaning` command:
-\begin{verbatim}
-    \meaning \logistic
-\end{verbatim}
-$\Longrightarrow$ \meaning \logistic
+\noindent whence \verb`$\logistic$` $\Longrightarrow$ $\logistic$.
+(I have placed \verb`\logistic` between \verb`$` delimiters to get
+thin spaces after the commas.)
 
-\subsection{Changing default values}
+If you want to isolate just one member of the comma list, \texttt{numerica-plus}
+offers the utility function \verb`\clitem` (`comma list item')
+which acts on the control sequence followed by a number:
+\begin{centred}
+\verb`\clitem\logistic 3` $\Longrightarrow$ \clitem\logistic 3.
+\end{centred}
+Use positive numbers for counting from the left, negative numbers
+for counting from the right. Multi-digit numbers must be enclosed
+in braces. See \xA7\ref{subsec:recurAccessing-individual-terms} for
+more on the use of \verb`\clitem`.
 
-\begin{wraptable}[11]{o}{0.5\columnwidth}%
-\centering{}\vspace{-2.7ex}
-\caption{\protect\label{tab:iterSettingsDefaults}Defaults for \texttt{\textbackslash nmcIterate}}
-\begin{center}
-\begin{tabular}{ll}
-\toprule 
-{\small key} & {\small default}\tabularnewline
-\midrule
-{\small iter-extra-rounding} & {\small\texttt{0}}\tabularnewline
-{\small iter-max-iterations} & {\small\texttt{100}}\tabularnewline
-{\small iter-do} & {\small\texttt{5}}\tabularnewline
-{\small iter-see-last} & {\small\texttt{4}}\tabularnewline
-{\small iter-reuse} & {\small\texttt{0}}\tabularnewline
-\bottomrule
-\end{tabular}
-\par\end{center}\end{wraptable}%
-If you wish to change the default values of the various settings for
-\verb`\nmcIterate` this can be done by entering new values in a configuration
-file \texttt{numerica-plus.cfg} as described in the chapter on settings
-in the associated document \texttt{numerica.pdf}. The relevant keys
-are listed in Table~\ref{tab:iterSettingsDefaults}, corresponding
-to the \verb`+`, \verb`max`, \verb`do`, \verb`see` and \verb`reuse`
-settings of the \verb`\iter` command. (Obviously it makes no sense
-to have a default setting for the iteration variable. That will change
-from case to case.)
+\subsection{Errors}
 
-\section{Errors}
-
-By errors I refer to \verb`numerica-plus` errors rather than \LaTeX{}
-errors. We have already met one in the discussion of fixed points:
+There is only one error specifically related to \verb`\nmcIterate`
+and that is when the number of iterations exceeds the specified maximum
+number in a fixed point calculation. We have already met this in the
+earlier discussion of fixed points. Another example is
 \begin{centred}
 \verb`\iter*{kx(1-x)}[k=3.5,x=0.5]` $\Longrightarrow$ \iter*{kx(1-x)}[k=3.5,x=0.5]
 \end{centred}
-For a function to be iterated indefinitely, its range must lie within
-or be equal to its domain. If even part of the range of a function
-lies outside its domain, then on repeated iteration there is a chance
-that a value will eventually be calculated which lies in this `outside'
-region. Iteration cannot continue beyond this point and an error message
-is generated. As an example consider the inverse cosine, \verb`\arccos`.
-This can be iterated only so far as the iterated values lie between
-$\pm1$ inclusive. If we try to iterate \verb`\arccos` at 0 for example,
-since $\cos\frac{1}{2}\pi=0$, $\arccos0=\eval{0.5\pi}[4]$ (which
-is $\tfrac{1}{2}\pi$) so only a first iterate is possible. But we
-could choose an initial value more carefully; $37$ iterations of
-the cosine at $\tfrac{1}{2}\pi$ led to a fixed point $0.739085$,
-so let's choose $0.739085$ as initial point and perform $37$ iterations:
+Other \texttt{numerica} errors can also afflict an iteration calculation.
+Again an example of this was provided in \xA7\ref{sec:iterBasic-use}
+when we sought to iterate \verb`\arccos` $38$ times rather than
+the previously successful $37$: 
 \begin{centred}
-\verb`\iter[do=37,see=4]{\[ \arccos x \]}[x=0.739085]` $\Longrightarrow$
-\iter[do=37,see=4]{\[ \arccos x \]}[x=0.739085]
+\verb`\iter[do=38,see=4]{\[ \arccos x \]}[x=0.739085]` $\Longrightarrow$\iter[do=38,see=4]{\[ \arccos x \]} [x=0.739085]  
 \end{centred}
-The result of the $37$th iteration is greater than $1$. Thus increasing
-the number of iterations to 38 should generate an error message:
+The $38$th iterate is attempting to take the inverse cosine of a
+number greater than $1$; \texttt{numerica} objects.
+
+\section{Newton-Raphson method}
+
+\label{subsec:iterNewton-Raphson-method}This is a method for solving
+equations in one variable, say $f(x)=0$, by iterating the expression
+\[
+x_{n+1}-\frac{f(x_{n})}{f'(x_{n})}
+\]
+where $f'$ is the derivative of $f$. \texttt{numerica-plus} does
+not automatically calculate the derivative; given the function $f$
+the user needs to manually insert (the analytic expression for) it.
+
+\begin{wrapfigure}{o}{0.4\columnwidth}%
+\centering{}\includegraphics[scale=0.8]{figures/NewtonRaphson}\caption{N-R method\protect\label{fig:Newton-Raphson-method}}
+\end{wrapfigure}%
+Fig.~\ref{fig:Newton-Raphson-method} depicts a situation where the
+method works well. This will not always be the case. If $x=z$ is
+the zero ($f(z)=0$) then should the derivative vanish at $z$ ($f'(z)=0$)
+there may well be problems. I give an example below, after first giving
+a simple illustration of the method.
+
+Suppose $f(x)=\sin x$; then $f'(x)=\cos x$. If the initial test
+value is $4$, then $x-\sin x/\cos x=x-\tan x$ is the expression
+to insert in the \verb`\iter*` command:
 \begin{centred}
-\verb`\iter[do=38,see=4]{\[ \arccos x \]}[x=0.739085]` $\Longrightarrow$\iter[do=38,see=4]{\[ \arccos x \]} [x=0.739085]  
+\verb`\iter*{x-\tan x}[x=4], \info{iter}` $\Longrightarrow$ \iter*{x-\tan x}[x=4], \info{iter},
 \end{centred}
-\verb`l3fp` objects when asked to find the inverse cosine of a number
-greater than $1$.
+which we recognize as the 6-figure value of $\pi$, attained very
+quickly after only 3 iterations. To check this omit the asterisk:
+\begin{centred}
+\verb`\iter[f=1]{x-\tan x}[x=4]` $\Longrightarrow$ \iter[f=1]{x-\tan x}[x=4]
+\end{centred}
+But that is $4$ iterations, not the claimed $3$, before the correct
+value appears. This is an example of the difference between successive
+values vanishing at the $6$-figure rounding value, but the final
+digit being $1$ shy of the correct value. If we put \verb`+=1` in
+the settings and round to $7$ figures, we get
+\begin{centred}
+\verb`\iter[f=1,+=1]{x-\tan x}[x=4][7]` $\Longrightarrow$ \iter[f=1,+=1]{x-\tan x}[x=4][7]
+\end{centred}
+The difference between the $3$rd and $4$th values is $0.0000003$
+which rounds to $0$ at $6$ figures whereas $3.1415924$ rounds to
+$3.141592$.
 
+We could also do the calculation in implicit mode (the \verb`f=1`
+in the settings means the formula is part of the display and has \emph{nothing}
+to do with the \verb`f` in the main argument and vv-list):
+\begin{centred}
+\verb`\iter[f=1,vv@=1]{x-f(x)/f'(x)}[f(x)=\sin x,{f'(x)}=\cos x,x=4]`
+$\Longrightarrow$ \iter[f=1,vv@=1]{x-f(x)/f'(x)}[f(x)=\sin x,{f'(x)}=\cos x,x=4]
+\end{centred}
+where display of the derivative from the vv-list has been suppressed
+(by the enclosing braces).
+
+Let's tackle something less obvious, finding the roots of $\cos x\cosh x\pm1$.
+(\emph{HMF }Table~4.18 gives small tables of the first five roots
+in both cases; subsequent roots are essentially $\cos^{-1}(\mp1)=\tfrac{1}{2}(2n\pm1)\pi$
+since $\cosh x$ is so large.) Writing $f(x)$ for the function, in
+both cases $f'(x)=\cos x\sinh x-\sin x\cosh x$. In the example, our
+initial test value is \verb`x=5`. We save the result in the control
+sequence \verb`\zilch` and then check that it really does contain
+a zero of $f(x)$ in the final statement:
+\begin{verbatim}
+    \iter*[vv@=1]{ x-f(x)/f'(x) }
+      [f(x)=\cos x\cosh x-1, {f'(x)}=
+        \cos x\sinh x-\sin x\cosh x,x=5][15],
+    \quad \info{iter}
+    \reuse[renew]{zilch} \macros{ \zilch } \par
+    \eval{\[\cos x\cosh x -1 \]}[x=\zilch][15]
+\end{verbatim}
+$\Longrightarrow$      \iter*[vv@=1]{ x-f(x)/f'(x) }
+      [f(x)=\cos x\cosh x-1, {f'(x)}=
+        \cos x\sinh x-\sin x\cosh x,x=5][15],
+    \quad \info{iter}
+    \reuse[renew]{zilch} \macros{ \zilch } \par
+    \eval{\[\cos x\cosh x -1 \]}[x=\zilch][15*]
+
+It is remarkable that only $5$ iterations are required for $15$-place
+accuracy; \emph{HMF} gives only $6$-figures, $4.7300407$.
+
+\noindent{}%
+\noindent\begin{minipage}[t]{1\columnwidth}%
+\begin{shaded}%
+Of course, $x=0$ is a zero of $\cos x\cosh x-1$, but $f'(x)$ vanishes
+at zero and the Newton-Raphson method fails there for that reason.
+Indeed it's easy to check that $f'(0)=f''(0)=f'''(0)=0$ and $f^{iv}(x)=-4(f(x)+1)$
+meaning $f^{iv}(0)=-4$ and on repeated differentiation the pattern
+repeats. Thus the Maclaurin series for $f(x)$ near $x=0$ is
+\[
+f(x)=\sum_{n=1}^{\infty}\frac{(-1)^{n}4^{n}x^{4n}}{(4n)!}=-\frac{x^{4}}{6}+\frac{x^{8}}{2520}-\dots
+\]
+\emph{Any }value of $x$ close to $0$ is going to give a value of
+$f(x)=\cos x\cosh x-1$ about $4$ decimal places closer. Indeed,
+when trial values like $x=1$, $x=0.5$, $x=0.3$ and so on are used
+in the iteration of $x-f(x)/f'(x)$, the iteration converges on a
+series of `pseudo-zeros' of $f(x)$, all artifacts of the rapidity
+with which $\cos x\cosh x$ converges to $1$ at $x=0$.\end{shaded}%
+\end{minipage}
+
 \chapter{Finding zeros and extrema: \texttt{\textbackslash nmcSolve}}
 
-\label{chap:solveSolve}\verb`numerica-plus` provides a command,\textbf{
+\label{chap:solveSolve}\texttt{numerica-plus} provides a command,\textbf{
 }\verb`\nmcSolve` (short-name form \verb`\solve`), for finding a
 zero of a function, should it have one. In the following example, 
 \begin{centred}
@@ -974,18 +1167,18 @@
 \solve{$ \tan x - \lambda x $}[\lambda=-1/0.8,{x}=2][5].
 \end{centred}
 Table 4.19 of \emph{HMF }lists values of $x$ against $\lambda$ and
-this is the value tabulated there.
+this is the $5$-decimal place value tabulated there.
 
 \section{Extrema}
 
 A function may not have a zero; or, for the given initial trial value
 and initial step in the search for a zero, there may be a local extremum
-in the way. In that case \verb`numerica-plus` may well locate the
+in the way. In that case \texttt{numerica-plus} may well locate the
 local extremum (maximum or minimum but not a saddle point). For example
 for the quadratic $(2x-1)^{2}+3x+1$ the \verb`\solve` command gives
 the result 
 \begin{centred}
-\verb`\solve[vvi=]{$ (2x-1)^2+3x+1 $}[x=2]` $\Longrightarrow$\solve[vvi=]{$ (2x-1)^2+3x+1 $}[{x}=2]. 
+\verb`\solve[vv=]{$ (2x-1)^2+3x+1 $}[x=2]` $\Longrightarrow$ \solve[vvi=]{$ (2x-1)^2+3x+1 $}[{x}=2]. 
 \end{centred}
 Since $(2x-1)^{2}+3x+1\ne0$ for any (real number) $x$, we deduce
 that the quadratic takes a minimum value $1.9375$ at $x=0.125$ \textendash{}
@@ -994,11 +1187,12 @@
 function may well take larger or smaller values (or vanish for that
 matter) further afield.
 
-It is also worth noting in this example the \verb`vvi=` in the settings
+It is also worth noting in this example the \verb`vv=` in the settings
 option which suppresses display of the vv-list. (The only member of
 the vv-list is the trial value \verb`x=2` which we do not want to
 display.)
 
+\noindent{}%
 \noindent\begin{minipage}[t]{1\columnwidth}%
 \begin{shaded}%
 Note that the function for which a zero is being sought is \emph{not}
@@ -1019,10 +1213,11 @@
 therefore needs \emph{two} initial values. For the first it uses the
 trial value you specify, call it $a$ and for the second, by default,
 it uses $a+1$. (The default value $1$ for the initial step from
-the trial value can be changed in the settings option; see \xA7\ref{sec:solveSettings-option}.)
-If $f(a)$ and $f(a+1)$ have opposite signs then that is good. Bisection
-of the interval $[a,a+1]$ can begin immediately in order to home
-in on the precise point where $f$ vanishes. Write $b=a+1$.
+the trial value can be changed in the settings option with the setting
+\verb`dvar`; see \xA7\ref{sec:solveSettings-option}.) If $f(a)$ and
+$f(a+1)$ have opposite signs then that is good. Bisection of the
+interval $[a,a+1]$ can begin immediately in order to home in on the
+precise point where $f$ vanishes. Write $b=a+1$.
 \begin{itemize}
 \item Let $c=\tfrac{1}{2}(a+b)$; if $f(c)=0$ the zero is found; otherwise
 either $f(a),f(c)$ are of opposite signs or $f(c),f(b)$ are of opposite
@@ -1067,14 +1262,14 @@
 \texttt{numerica} uses a cut-off value for the maximum number of steps
 pursued \textendash{} by default set at 100.
 
-\subsubsection{Elusive extrema}
+\subsection{Elusive extrema}
 
-The strategy `search always towards the $x$-axis' has a consequence:
-it means that a local maximum above the $x$-axis will almost certainly
-not be found, since `towards the $x$-axis' pulls the search away
-from the maximum. Similarly a local minimum below the $x$-axis will
-also not be found since `towards the $x$-axis' pulls the search
-away from the minimum. 
+\label{subsec:solveElusive-extrema}The strategy `search always towards
+the $x$-axis' has a consequence: it means that a local maximum above
+the $x$-axis will almost certainly not be found, since `towards
+the $x$-axis' pulls the search away from the maximum. Similarly
+a local minimum below the $x$-axis will also not be found since `towards
+the $x$-axis' pulls the search away from the minimum. 
 
 One way of countering this elusiveness is to add a constant value
 (possibly negative) to the function whose zeros and extrema are being
@@ -1087,196 +1282,200 @@
 For example $f(x)=x^{3}-x$ has roots at $-1,0,1$, a local maximum
 at $-\tfrac{1}{\surd3}$ and a local minimum at $\tfrac{1}{\surd3}$.
 To locate the minimum, I have added an unnecessarily large constant
-$k$ to $f(x)$. ($k=1$ would have sufficed, but note, $k=0$ fails.)
+$k$ to $f(x)$ ($k=1$ would have sufficed) and a start value at
+the rightmost zero. Searching `towards the $x$-axis' will take
+the search towards the local minimum.
 \begin{centred}
-\verb`\solve{$ x^3-x+k $}[k=5,{x}=0.5]` $\Longrightarrow$ \solve{$ x^3-x+k $}[k=5,{x}=0.5].
+\verb`\solve{$ x^3-x+k $}[k=5,{x}=1]` $\Longrightarrow$ \solve{$ x^3-x+k $}[k=5,{x}=1].
 \end{centred}
 Checking, \verb`\eval{$\tfrac1{\surd 3}$}` $\Longrightarrow$ \eval{$\tfrac1{\surd 3}$}.
 There is a discrepancy in the $6$th decimal place which can be eliminated
 by using the extra rounding setting; see \xA7\ref{subsec:solveExtraRounding}.
+The value of the local minimum of $x^{3}-x$ is then $\eval[f=1]{4.6151-5}$.
 
-\subsubsection{False extrema}
+Or, we can find the value of that local minimum value and the $x$
+value where it occurs `in one go' by \emph{nesting} \verb`\solve`
+within the vv-list of an \verb`\eval` command:
+\begin{centred}
+\verb`\eval{$ x^3-x $}[x={\solve{y^3-y+k}[k=5,y=1]}]` $\Longrightarrow$
+\eval{$ x^3-x $}[x={\solve[dvar=0.25]{y^3-y+k}[k=5,y=1]}].
+\end{centred}
+The braces around the \verb`\solve` and its vv-list hide \emph{its}
+square-brackets  from the parsing of the vv-list of the \verb`\eval`
+command. 
 
+\subsection{False extrema}
+
 A function which `has an infinity' at a particular value can result
 in a false extremum being found:
 \begin{centred}
 \verb`\solve{$ 1/x $}[x=-1/3]` $\Longrightarrow$ \solve{$ 1/x $}[x=-1/3].
 \end{centred}
-One needs to look for extrema with some awareness, a general sense
-of how the function behaves. `Searching blind' may lead to nonsense
-results. In this particular example, changing the rounding value will
-show the supposed extremum jumping from one large value to another
-and not settling at a particular value.
+One needs to look for extrema with some awareness of how the function
+behaves. `Searching blind' may lead to nonsense results. In this
+particular example, changing the rounding value will show the supposed
+extremum jumping from one large value to another and not settling
+at any particular value.
 
 \section{Star (\texttt{{*}}) option}
 
-A starred form of the\textbf{ }\verb`\nmcSolve` command suppresses
-all elements of display of the result apart from the numerical value.
-In v.1 of \verb`numerica`, when the commands of \verb`numerica-plus`
-were invoked with a package option, nesting a \verb`\solve*` command
-within another command was the form to use. Now that \verb`numerica-plus`
-is a separate package (but labelled v.2), the star is no longer necessary.
-\verb`numerica` and associated packages understand a nested command
-to be the starred form, whether the star is explicitly present or
-not. 
-
-With the `elusive' extremum example above, we can find the actual
-value of the minimum by nesting \verb`\solve*` or \verb`\solve`
-within the vv-list of an \verb`\eval` command:
+A starred form of the\textbf{ }\verb`\nmcSolve` command gives a purely
+numerical result; should it be negative it displays with a hyphen
+for the minus sign outside a math environment. All other elements
+of the display are suppressed. When commands are nested, \texttt{numerica}
+and associated packages treat an inner command as if it were the starred
+form, whether the star is explicitly present or not. Returning to
+a previous example,
 \begin{centred}
-\verb`\eval{$ x^3-x $}[x={\solve{y^3-y+k}[k=5,y=0.5]}]` $\Longrightarrow$
-\eval{$ x^3-x $}[x={\solve{y^3-y+k}[k=5,y=0.5]}].
+\verb`\solve*{$ \tan x - \lambda x $}[\lambda=-1/0.8,{x}=2][5]` $\Longrightarrow$
+\solve*{$ \tan x - \lambda x $}[\lambda=-1/0.8,{x}=2][5],
 \end{centred}
-(Note the braces around the \verb`\solve` and its vv-list to hide
-\emph{its} square-brackets  from the parsing of the vv-list of the
-\verb`\eval` command.) The result is to be compared with \verb`$\eval*{x^3-x}[x=\tfrac1{\surd3}]$`
-$\Longrightarrow$ $\eval*{x^3-x}[x=\tfrac1{\surd3}]$. 
+giving the zero and nothing more.
 
 \section{Settings option}
 
 \label{sec:solveSettings-option}The settings option is a comma-separated
-list of items of the form \emph{key~=~value}.
+key-value list of items. The keys discussed in the settings\emph{
+}option for \verb`\nmcEvaluate` discussed in the associated document
+\texttt{numerica.pdf }are also available for \verb`\nmcSolve`. The
+very first example in this chapter used the punctuation option \texttt{p}
+(\verb`\solve[p]{\[... `) to ensure a comma after the display-style
+presentation of the result. We also saw in the quadratic example illustrating
+extrema the use of \verb`vv=` with no value to suppress display of
+the vv-list: \verb`\solve[vv=]{$ ...`. 
 
-\subsection{Inherited settings}
-
-The keys discussed in the settings\emph{ }option for \verb`\nmcEvaluate`
-are also available for \verb`\nmcSolve`. The very first example in
-this chapter used the punctuation option \texttt{p} (\verb`\solve[p]{\[... `)
-inherited from the \verb`\eval` command to ensure a comma after the
-display-style presentation of the result. We also saw in the quadratic
-example illustrating extrema the use of \texttt{vvi} with no value
-to suppress display of the vv-list: \verb`\solve[vvi=]{$ ...`. 
-
-Putting \verb`dbg=1` produces a familiar kind of display. Using the
-function 
+Putting \verb`dbg=1`, or more simply, entering \verb`view` in the
+settings option produces a familiar kind of display. Using the function
 \[
 ct-\sqrt{a^{2}+b^{2}-2ab\cos(\beta+\omega t)}
 \]
 from the rotating disk problem,
 \begin{verbatim}
-    \solve[dbg=1,var=t]
-      {$ ct-\sqrt{a^{2}+b^{2}-2ab\cos(\beta+\omega t)} 
-      $}[a=10,b=20,\beta=1,{t}=0][4]
+    \solve[view,var=t]
+      {$ ct-\sqrt{a^{2}+b^{2}-2ab\cos(\beta+\omega t)} $} 
+        [a=10,b=20,\beta=1,{t}=0][4]
 \end{verbatim}
-$\Longrightarrow$     \solve[dbg=1,var=t]
+$\Longrightarrow$     \solve[dbg=1,var=t] 
       {$ ct-\sqrt{a^{2}+b^{2}-2ab\cos(\beta+\omega t)} 
       $}[a=10,b=20,\beta=1,{t}=0][4]
 
+\noindent If that is too much information, understand that \verb`view`
+(or \verb`dbg=1`) for \verb`\nmcSolve` is equivalent to \verb`dbg=2*3*5*7*11`.
+Entering \verb`dbg=2*3*5*7` for instance will trim the \LaTeX{} expression
+from the debug display, and similarly, omitting other prime factors
+from \verb`dbg` will result in the corresponding element being absent
+from the display. (The prime factors can be multiplied out if you
+wish; see Chapter~5 of the associated document \texttt{numerica.pdf}.)
+
 \subsubsection{Multi-line display of the result}
 
 \label{subsec:solveMulti-line-display}By default the result is presented
-on a single line. Unless the star option is being used, this can be
-of the form \emph{function = function value, (vv-list) $\rightarrow$
-result}. It takes only a slightly complicated formula and only a few
-variables in the vv-list before this becomes a crowded line, likely
-to exceed the line width and extend into the margin. To split the
-display over two lines choose a \texttt{vvd} specification in the
-vv-list like, for instance, \texttt{vvd=\{,\}\textbackslash\textbackslash (vv)}.
-The \texttt{\textbackslash\textbackslash} is a trigger for \texttt{numerica}
-to replace whatever environment the \texttt{\textbackslash eval}
-command is wrapped around with a \texttt{multline} environment. An
-asterisk in the vv-list replaces \texttt{multline} with \texttt{multline{*}}
-so that no equation number is used:
+on a single line (unless the star option is being used). This can
+be of the form \emph{function = function value, (vv-list) $\rightarrow$
+variable = result}, where \emph{function value} will either be $0$
+or close to it, or an extremum of the function, and \emph{result}
+will be the value of the \emph{variable} producing that zero or extremum
+when substituted into the function. It takes only a slightly complicated
+formula and only a few variables in the vv-list before this becomes
+an overcrowded line, exceeding the line width and extending into and
+perhaps beyond the margin. To split the display over two lines specify
+a \verb`multline` or \verb`multline*` environment in the settings
+option (if you don't want an equation number use the starred form):
 \begin{verbatim}
-    \solve[p=.,vvd={,}\\(vv),*]
-      {$ ct-\sqrt{a^{2}+b^{2}-2ab\cos(\beta+\omega t)} 
-      $}[a=10,b=20,\beta=1,{t}=0][4]
+    \solve[env=multline*,p=.]
+      { ct-\sqrt{a^{2}+b^{2}-2ab\cos(\beta+\omega t)} 
+      }[a=10,b=20,\beta=1,{t}=0][4]
 \end{verbatim}
-$\Longrightarrow$ \solve[p=.,vvd={,}\\(vv),*]
-      {$ ct-\sqrt{a^{2}+b^{2}-2ab\cos(\beta+\omega t)} 
-      $}[a=10,b=20,\beta=1,{t}=0][4]
-\begin{verbatim}
+$\Longrightarrow$     \solve[env=multline*,p=.]
+      { ct-\sqrt{a^{2}+b^{2}-2ab\cos(\beta+\omega t)} }
+      [a=10,b=20,\beta=1,{t}=0][4]
 
-\end{verbatim}
-You could introduce a third line if you wished to display the result
-on a line of its own by using the spec. \texttt{vvd=\{,\}\textbackslash\textbackslash (vv)\textbackslash\textbackslash}.
+\noindent For a formula with a significantly longer vv-list you could
+introduce a third line to display the arrow and result on by entering
+a specification like \verb`vv={,}\\(vv)\\` in the settings option
+\emph{after} the \verb`env` setting.
 
-The function evaluates to $-0.0007$. Is this a zero that has been
-found or an extremum? To find out, the calculation needs to be carried
-out to a higher rounding value which is the reason why \verb`\nmcSolve`
+In the example the function evaluates to $-0.0007$. Is this a zero
+or an extremum? To find out, the calculation needs to be carried out
+to a higher rounding value \textendash{} which is the reason why \verb`\nmcSolve`
 has an extra rounding setting; see \xA7\ref{subsec:solveExtraRounding}
 below.
 
 \subsection{\texttt{\textbackslash nmcSolve}-specific settings}
 
-In addition there are some settings specific to \verb`\nmcSolve`.
-These are listed in Table~\ref{tab:solveSettings}.
-
-\begin{table}
+\begin{table}[b]
 \centering{}\caption{\protect\label{tab:solveSettings}Settings for \texttt{\textbackslash nmcSolve}}
 \begin{center}
 \begin{tabular}{llll}
 \toprule 
-{\small key} & {\small type} & {\small meaning} & {\small default}\tabularnewline
+{\small key} & {\small type} & {\small meaning} & {\small initial}\tabularnewline
 \midrule
 {\small\texttt{var}} & {\small token(s)} & {\small equation variable} & \tabularnewline
-{\small\texttt{dvar}} & {\small real $\ne0$ } & {\small initial step size} & {\small\texttt{1}}\tabularnewline
+{\small\texttt{dvar}} & {\small real $\ne0$} & {\small initial step size} & {\small\texttt{1}}\tabularnewline
 {\small\texttt{+}} & {\small int} & {\small extra rounding} & {\small\texttt{0}}\tabularnewline
 {\small\texttt{max}} & {\small int > 0} & {\small max. number of steps before cut off} & {\small\texttt{100}}\tabularnewline
-{\small\texttt{reuse}} & {\small int ($\mathtt{0}/\mathtt{1}$)} & {\small form of result saved with }{\small{\small\verb`\reuse`}} & {\small\texttt{0}}\tabularnewline
 \bottomrule
 \end{tabular}
 \par\end{center}
 \end{table}
+In addition to inherited settings there are some settings specific
+to \verb`\nmcSolve`. These are listed in Table~\ref{tab:solveSettings}. 
 
-
 \subsubsection{Equation variable}
 
 By default the equation variable is the \emph{rightmost} variable
 in the vv-list. This may not always be convenient. A different equation
 variable can be specified by entering
-\begin{lyxcode}
-var~=~<variable~name>
-\end{lyxcode}
-in the vv-list. \texttt{<variable name>} will generally be a single
-character or token \textendash{} $x$, $t$, $\alpha$, $\omega$
-\textendash{} but is not necessarily of this kind. Multi-token names
-are perfectly acceptable (with the default multi-token setting; see
-the associated document \verb`numerica.pdf` about this).
+\begin{verbatim}
+    var = <variable name>
+\end{verbatim}
+in the vv-list. \verb`<variable name>` will generally be a single
+character or token but multi-token names are perfectly acceptable
+(with \texttt{numerica}'s default multi-token setting; see the associated
+document \texttt{numerica.pdf} about this).
 
 \subsubsection{Initial step size}
 
-The vv-list contains the equation variable set to a trial value. But
-\verb`\solve` needs \emph{two} initial values to begin its search
-for a zero or extremum; see \xA7\ref{subsec:solveSearch-strategy}. Ideally,
-these values will straddle a zero of the function being investigated.
-By default, the second trial value is $1$ more than the first: if
-the equation variable is set to a trial value $a$ then the second
+The vv-list contains the equation variable set to the initial trial
+value. But \verb`\solve` needs \emph{two} initial values to begin
+its search for a zero or extremum; see \xA7\ref{subsec:solveSearch-strategy}.
+Ideally, these values will straddle a zero of the function being investigated.
+`Out of the box', the second trial value is $1$ more than the first:
+if the equation variable is set to trial value $a$ then the second
 value defaults to $a+1$. The `$+1$' here can be changed by entering
 in the settings option
-\begin{lyxcode}
-dvar~=~<non-zero~real~number>
-\end{lyxcode}
+\begin{verbatim}
+    dvar = <non-zero real number>
+\end{verbatim}
 For instance, \texttt{dvar=-1}, or \texttt{dvar=\textbackslash pi}
 are two valid specifications of initial step size. The notation is
 prompted by the use of expressions like $x$ and $x+dx$ for two nearby
 points in calculus.
 
-An example where the default step value is too big and a smaller one
-needs to be specified is provided by Planck's radiation function (\emph{HMF
-}Table 27.2),
+The initial step value may be too big or too small. An example where
+the default step value is too big and a smaller one needs to be specified
+is provided by Planck's radiation function (\emph{HMF }Table 27.2),
 \[
 f(x)=\frac{1}{x^{5}(e^{1/x}-1)}.
 \]
 From the (somewhat coarse-grained) table in \emph{HMF }it is clear
-that there is a maximum of about 21.2 when $x$ is a little more than
-$0.2$. This is a maximum above the $x$-axis and hence `elusive'.
-To find it, substract $100$ (say) from the formula and again use
-the ability to nest commands to display the result. In the example,
-I find in the vv-list of the \verb`\eval` command the value of $x$
+that there is a maximum of approximately 21.2 when $x$ is a little
+more than $0.2$. This is a maximum above the $x$-axis and hence
+`elusive' in the sense of \xA7\ref{subsec:solveElusive-extrema}. To
+find it, substract $100$ (say) from the formula and again use the
+ability to nest commands to display the result. In the example, I
+find in the vv-list of the \verb`\eval` command the value of $x$
 which maximizes the Planck radiation function, then calculate the
 maximum in the main argument of the \verb`\eval` command. Note the
-\verb`dvar=0.1` in the settings option of the \verb`\solve*` command: 
+\verb`dvar=0.1` in the settings option of the \verb`\solve` command: 
 \begin{verbatim}
     \eval[p=.]{\[ \frac1{x^5(e^{1/x}-1)} \]}
-      [ x={ \solve*[dvar=0.1]
-        { \frac1{y^5(e^{1/y}-1)}-100 }[y=0.1]
-          } ]
+      [ x={ \solve[dvar=0.1]
+        { \frac1{y^5(e^{1/y}-1)}-100 }[y=0.1] } ]
 \end{verbatim}
 $\Longrightarrow$     \eval[p=.]{\[ \frac1{x^5(e^{1/x}-1)} \]}
-      [ x={ \solve*[dvar=0.1]
-              { \frac1{y^5(e^{1/y}-1)}-100 }[y=0.1]
-          } ]
+      [ x={ \solve[dvar=0.1]
+         { \frac1{y^5(e^{1/y}-1)}-100 }[y=0.1] } ]          
 
 \noindent The maximum is indeed a little over $21.2$ and the $x$
 value a little more than $0.2$. 
@@ -1304,7 +1503,7 @@
 For instance, suppose $f(x)=1000x-3000$ and that our trial value
 is $x=e$:
 \begin{centred}
-\verb`\solve[vvi=]{$ 1000x-3000 $}[x=e][4*]` $\Longrightarrow$ \solve[vvi=]{$ 1000x-3000 $}[x=e][4*].
+\verb`\solve[vv=]{$ 1000x-3000 $}[x=e][4*]` $\Longrightarrow$ \solve[vv=]{$ 1000x-3000 $}[x=e][4*].
 \end{centred}
 Although the difference between successive $x$ values vanishes to
 $4$ places of decimals, $f(x)$ does not, not even to $2$ places.
@@ -1314,12 +1513,11 @@
 
 This is the purpose of the extra rounding key in the settings option.
 Enter
-\begin{lyxcode}
-+~=~<integer>
-\end{lyxcode}
-in the settings option of the \verb`\solve` command to add \texttt{<integer>}
-to the rounding value determining the conclusion of the calculation.
-By default, \texttt{+=}0. 
+\begin{verbatim}
+    + = <integer>
+\end{verbatim}
+in the settings option of the \verb`\solve` command to add \verb`<integer>`
+to the general rounding value. By default, \verb`+=0`. 
 
 With this option available it is easy to check that \verb`+=3` suffices
 in the example to ensure that both $x$ and $f(x)$ vanish to $4$
@@ -1327,10 +1525,10 @@
 \begin{centred}
 \verb`\solve[+=3]{$ 1000x-3000 $}[x=e][4*]` $\Longrightarrow$ \solve[+=3]{$ 1000x-3000 $}[x=e][4*],
 \end{centred}
-and that \texttt{+=2} does not, i.e., we need to locate the zero to
+and that \verb`+=2` does not, i.e., we need to locate the zero to
 $4+3=7$ figures to ensure the function vanishes to $4$ figures. 
 
-There is no need for the \texttt{<integer>} to be positive. In fact
+There is no need for the \verb`<integer>` to be positive. In fact
 negative values can illuminate what is going on. In the first of the
 following, the display is to $10$ places but (\verb`+=-4`) the calculation
 is only to $10-4=6$ places. In the second, the display is again to
@@ -1351,13 +1549,13 @@
 setting (and pad with zeros to emphasize the $4$-figure display by
 adding an asterisk in the trailing optional argument):
 \begin{verbatim}
-    \solve[+=2,vvd={,}\\(vv),*]
-      {$ ct-\sqrt{a^{2}+b^{2}-2ab\cos(\beta+\omega t)} 
-        $}[a=10,b=20,\beta=1,{t}=0][4*]
+    \solve[env=multline*,p=.,+=2]
+      { ct-\sqrt{a^{2}+b^{2}-2ab\cos(\beta+\omega t)} }
+      [a=10,b=20,\beta=1,{t}=0][4*]
 \end{verbatim}
-$\Longrightarrow$     \solve[+=2,vvd={,}\\(vv),*]
-      {$ct-\sqrt{a^{2}+b^{2}-2ab\cos(\beta+\omega t)} 
-        $}[a=10,b=20,\beta=1,{t}=0][4*]
+$\Longrightarrow$     \solve[env=multline*,p=.,+=2]
+      { ct-\sqrt{a^{2}+b^{2}-2ab\cos(\beta+\omega t)} }
+      [a=10,b=20,\beta=1,{t}=0][4*]
 
 \subsubsection{Maximum number of steps before cut-off}
 
@@ -1367,14 +1565,14 @@
 a function like $e^{x}$ which lacks both zeros and extrema. To prevent
 an infinite loop, \verb`\solve` cuts off the search after $100$
 steps. This cut-off value can be changed for a calculation by entering 
-\begin{lyxcode}
-max~=~<positive~integer>
-\end{lyxcode}
+\begin{verbatim}
+    max = <positive integer>
+\end{verbatim}
 in the settings option.
 
 To illustrate, we know that $1/x$ has neither zero nor extremum,
-but we do not get an infinite loop; we get an error message if we
-attempt to `solve' $1/x$:
+but we do not get an infinite loop \textendash{} we get an error message
+if we attempt to `solve' $1/x$:
 \begin{centred}
 \verb`\solve{ 1/x }[x=1]` $\Longrightarrow$ \solve{ 1/x }[x=1]
 \end{centred}
@@ -1381,50 +1579,10 @@
 
 \subsubsection{Form of result saved by \texttt{\textbackslash nmcReuse}}
 
-As wth \verb`\eval` and \verb`\iter` it is possible to specify to
-some extent what is saved to file when using \verb`\reuse` after
-a \verb`\solve` command. The form of entry in the settings option
-is
-\begin{lyxcode}
-reuse~=~<integer>
-\end{lyxcode}
-If the star option is used with the \verb`\solve` command the numerical
-result is the only thing saved, but in the absence of the star option,
-\begin{itemize}
-\item \texttt{reuse=0} saves\emph{ the form that is displayed}. For example,
-if the display is of the form \emph{function = function value, (vv-list)
-$\rightarrow$ result} then that is what is saved; this is the default
-behaviour;
-\item \texttt{reuse=1} (or any non-zero integer) saves only the numerical
-result.
-\end{itemize}
+\verb`\nmcReuse` saves (only) the numerical result. Version 2 offered
+a setting \verb`reuse` providing a choice of what was saved. That
+has been removed in version 3.
 
-\subsection{Changing default values}
-
-\begin{wraptable}[12]{o}{0.5\columnwidth}%
-\centering{}\caption{\protect\label{tab:solveSettingsDefaults}Defaults for \texttt{\textbackslash nmcSolve}}
-\begin{center}
-\begin{tabular}{ll}
-\toprule 
-{\small key} & {\small default}\tabularnewline
-\midrule
-{\small solve-first-step} & 1\tabularnewline
-{\small solve-extra-rounding} & {\small\texttt{0}}\tabularnewline
-{\small solve-max-steps} & {\small\texttt{100}}\tabularnewline
-{\small solve-reuse} & {\small\texttt{0}}\tabularnewline
-\bottomrule
-\end{tabular}
-\par\end{center}\end{wraptable}%
-If you wish to change the default values of the various settings for
-\verb`\nmcSolve` this can be done by entering new values in a configuration
-file \texttt{numerica-plus.cfg} as described in the chapter on settings
-in the associated document \texttt{numeric.pdf}. The relevant keys
-are listed in Table~\ref{tab:solveSettingsDefaults}, corresponding
-to the \verb`dvar`, \verb`+`, \verb`max` and \verb`reuse` settings
-of the \verb`\solve` command. (Obviously it makes no sense to have
-a default setting for the solution variable. That will change from
-case to case.)
-
 \chapter{Recurrence relations: \texttt{\textbackslash nmcRecur}}
 
 One of the simplest recurrence relations is that determining the Fibonacci
@@ -1433,8 +1591,7 @@
 calculation of the terms of this sequence:
 \begin{verbatim}
     $ \nmcRecur[do=8,see1=8,...]
-      { f_{n+2}=f_{n+1}+f_{n} }
-        [f_{1}=1,f_{0}=1] $
+      { f_{n+2}=f_{n+1}+f_{n} }[f_{1}=1,f_{0}=1] $
 \end{verbatim}
 $\Longrightarrow$     $\nmcRecur[do=8,see1=8,...]
       { f_{n+2}=f_{n+1}+f_{n} }
@@ -1461,55 +1618,61 @@
 on the left, equated to an expression involving a fixed number of
 lower-order terms on the right \textendash{} that \verb`numerica-plus`
 works with. For $P_{0}(x)=1,~P_{1}(x)=x$ and $x=0.5$, the terms
-are calculated thus:
+are calculated like this:
 \begin{verbatim}
-    \recur[p,do=11,see1=4,see2=2,vvd={,}\\(vv)\\,*]
-      {\[ P_{n+2}(x)=\frac{1}{n+2}
-        \Bigl((2n+3)xP_{n+1}(x)-(n+1)P_{n}(x)\Bigr)
-      \]}[P_{1}(x)=x,P_{0}(x)=1,x=0.5]
+    \recur[env=multline*,do=11,see1=4,see2=2,
+      vv={,}\\(vv)\\] { P_{n+2}(x)=\frac{1}{n+2}
+        \Bigl((2n+3)xP_{n+1}(x)-(n+1)P_{n}(x)\Bigr) }
+      [P_{1}(x)=x,P_{0}(x)=1,x=0.5][7]
 \end{verbatim}
-$\Longrightarrow$     \recur[p,do=11,see1=4,see2=2,vvd={,}\\(vv)\\,*]
-      {\[ P_{n+2}(x)=\frac{1}{n+2}
-        \Bigl((2n+3)xP_{n+1}(x)-(n+1)P_{n}(x)\Bigr)
-      \]}[P_{1}(x)=x,P_{0}(x)=1,x=0.5] 
+$\Longrightarrow$     \recur[env=multline*,do=11,see1=4,see2=2,
+      vv={,}\\(vv)\\,*]{ P_{n+2}(x)=\frac{1}{n+2}
+        \Bigl((2n+3)xP_{n+1}(x)-(n+1)P_{n}(x)\Bigr) }
+      [P_{1}(x)=x,P_{0}(x)=1,x=0.5][7] 
 
-\noindent where $P_{9}(0.5)$ and $P_{10}(0.5)$ are the last two
-displayed values (and to $6$-figures are the values listed in \emph{HMF
-}Table 8.1).
+\noindent where $P_{9}(0.5)=-0.2678986$ and $P_{10}(0.5)=-0.1882286$
+are the last two displayed values (and to seven figures are the values
+listed in \emph{HMF }Table 8.1).
 
-These examples also illustrate a common behaviour of the commands
-in \verb`numerica` and associated packages: when wrapped around math
-delimiters: the display is of the \emph{expression=result} form, and
-when placed between math delimiters the display is simply of the \emph{result}.
-When used without math delimiters, \verb`numerica-plus` treats the
-command as if it had been placed between \texttt{\textbackslash{[}
-\textbackslash{]}}.
+The examples also illustrate a consistent response with other commands
+of the \texttt{numerica} suite to math environments. For the Fibonacci
+sequence the \verb`\recur` command lay between \verb`$` delimiters
+and display of the formula was suppressed. For the Legendre polynomials,
+\verb`multline*` was specified in the settings option and the formula
+was included in the display. (`Formula show', `formula hide' can
+also be set with the \verb`f=1`, \verb`f=0` settings.) Note also
+the specification of the vv-list in the second example, spreading
+the display over three lines, and the \verb`see2` setting, specifying
+how many terms to display. The first example displays a concluding
+ellipsis; the second example doesn't. That is the result of the presence
+of the \verb`...` (three periods) setting in the first example.
 
 \section{Notational niceties}
 
-More than the other commands in {\ttfamily\verb`numerica`}
+More than any of the other commands in {\ttfamily\verb`numerica`}
 and associated packages, \verb`\nmcRecur` depends on getting the
-notation into a standard form.
+notation into a standard form. At least at this stage (version 3.0.0)
+of \texttt{numerica-plus}
 \begin{itemize}
-\item The terms of the recurrence must be \emph{subscripted}: $f_{n}$,
-$P_{n}(x)$ are examples.
-\item The recurrence relation is placed in the main (mandatory) argument
+\item the terms of the recurrence must be \emph{subscripted}: $f_{n}$,
+$P_{n}(x)$ are examples;
+\item the recurrence relation is placed in the main (mandatory) argument
 of \verb`\nmcRecur` in the form: \emph{high-order term=function of
-lower-order terms}.
-\item The initial-value terms in the vv-list must occur left-to-right in
-the order \emph{high }to \emph{low} order.
-\item The recurrence variable changes by $1$ between successive terms.
+consecutive lower-order terms};
+\item the initial-value terms in the vv-list must occur left-to-right in
+the order \emph{high }to \emph{low} order;
+\item the recurrence variable changes by $1$ between successive terms.
 \end{itemize}
 The example for Legendre polynomials in particular shows what is required.
 The Fibonacci example is simpler, since the recurrence variable does
 not occur independently in the recurrence relation as it does with
-the Legendre polynomials. In both cases though the recurrence variable
+the Legendre polynomials, although in both cases the recurrence variable
 is absent from the vv-list.
 
-\subsection{Vv-list and recurrence variable}
+\subsection{Recurrence variable in the vv-list}
 
 The recurrence variable is required in the vv-list only when an implicit
-mode calculation is undertaken. Suppose we write $A$ and $B$ for
+mode calculation is undertaken. To that end write $A$ and $B$ for
 the coefficients $2n+3$ and $n+1$ respectively in the Legendre recurrence.
 $A$ and $B$ will now need entries in the vv-list which means the
 recurrence variable will need a value assigned to it there too, and
@@ -1516,15 +1679,17 @@
 we will need to add \verb`vv@=1` (or \verb`vvmode=1`) to the settings
 option.
 \begin{verbatim}
-    \recur[p,vvmode=1,do=11,see1=4,see2=2,vvd={,}\\(vv)\\,*]
-      {\[ P_{n+2}(x)=\frac{1}{n+2}
-        \Bigl(AxP_{n+1}(x)-BP_{n}(x)\Bigr)
-      \]}[P_{1}(x)=x,P_{0}(x)=1,x=0.5,A=2n+3,B=n+1,n=0]
+    \recur[env=multline*,vvmode=1,do=11,see1=4,see2=2,
+             ...,vv={,}\\(vv)\\]
+      { P_{n+2}(x)=\frac{1}{n+2}
+        \Bigl(AxP_{n+1}(x)-BP_{n}(x)\Bigr) }
+      [P_{1}(x)=x,P_{0}(x)=1,x=0.5,A=2n+3,B=n+1,n=0]
 \end{verbatim}
-$\Longrightarrow$     \recur[p,vvmode=1,do=11,see1=4,see2=2,vvd={,}\\(vv)\\,*]
-      {\[ P_{n+2}(x)=\frac{1}{n+2}
-        \Bigl(AxP_{n+1}(x)-BP_{n}(x)\Bigr)
-      \]}[P_{1}(x)=x,P_{0}(x)=1,x=0.5,A=2n+3,B=n+1,n=0] 
+$\Longrightarrow$     \recur[env=multline*,vvmode=1,do=11,see1=4,see2=2,
+             ...,vv={,}\\(vv)\\]
+      { P_{n+2}(x)=\frac{1}{n+2}
+        \Bigl(AxP_{n+1}(x)-BP_{n}(x)\Bigr) }
+      [P_{1}(x)=x,P_{0}(x)=1,x=0.5,A=2n+3,B=n+1,n=0] 
 
 Since the vv-list is evaluated from the right, the left-to-right high-to-low
 ordering of the initial-value terms means the value of the lowest
@@ -1531,7 +1696,7 @@
 order term is read first. Although \verb`numerica-plus` depends on
 this order of occurrence of the terms, they do not need to be \emph{consecutive}
 as in the examples so far (although it is natural to enter them in
-this way). \verb`numerica-plus` reads the value of the subscript
+this way). \texttt{numerica-plus} reads the value of the subscript
 of only the right-most term (the lowest order term), increments it
 by $1$ when reading the next recurrence term to the left, and so
 on. The reading of the subscript of the lowest order term in the vv-list
@@ -1545,15 +1710,17 @@
 $n$ in `$B=n+1$' does not generate an `unknown token' message.)
 The result is unchanged.
 \begin{verbatim}
-    \recur[p,vvmode=1,do=11,see1=4,see2=2,vvd={,}\\(vv)\\,*]
-      {\[ P_{n+2}(x)=\frac{1}{n+2}
-        \Bigl(AxP_{n+1}(x)-BP_{n}(x)\Bigr)
-      \]}[A=2n+3,P_{1}(x)=x,B=n+1,n=\pi^2/12,P_{0}(x)=1,x=0.5]
+    \recur[env=multline*,vvmode=1,do=11,see1=4,see2=2,
+             ...,vv={,}\\(vv)\\]
+      { P_{n+2}(x)=\frac{1}{n+2}
+        \Bigl(AxP_{n+1}(x)-BP_{n}(x)\Bigr) }
+      [A=2n+3,P_{1}(x)=x,B=n+1,n=\pi^2/12,P_{0}(x)=1,x=0.5]
 \end{verbatim}
-$\Longrightarrow$     \recur[p,vvmode=1,do=11,see1=4,see2=2,vvd={,}\\(vv)\\,*]
-      {\[ P_{n+2}(x)=\frac{1}{n+2}
-        \Bigl(AxP_{n+1}(x)-BP_{n}(x)\Bigr)
-      \]}[A=2n+3,P_{1}(x)=x,B=n+1,n=\pi^2/12,P_{0}(x)=1,x=0.5]
+$\Longrightarrow$     \recur[env=multline*,vvmode=1,do=11,see1=4,see2=2,
+             ...,vv={,}\\(vv)\\]
+      { P_{n+2}(x)=\frac{1}{n+2}
+        \Bigl(AxP_{n+1}(x)-BP_{n}(x)\Bigr) }
+      [A=2n+3,P_{1}(x)=x,B=n+1,n=\pi^2/12,P_{0}(x)=1,x=0.5]
 
 \subsection{Form of the recurrence relation}
 
@@ -1561,8 +1728,8 @@
 main argument in the form: \emph{highest order term = function of
 consecutive lower order terms}. The number of lower\emph{ }order terms
 is the order of the recurrence. The Fibonacci and Legendre polynomial
-recurrences are both second order and presented in the form: \emph{$n+2$-th
-term = function of $n+1$-th term and $n$-th term}. We could equally
+recurrences are both second order and presented in the form: \emph{term
+$n+2$ = function of term $n+1$ and term $n$}. We could equally
 have done
 \begin{verbatim}
     \nmcRecur[p,do=8,see1=8,...]
@@ -1571,24 +1738,26 @@
 \end{verbatim}
 $\Longrightarrow$     \nmcRecur[p,do=8,see1=8,...]
       {$ f_{n}=f_{n-1}+f_{n-2} $}
-        [f_{1}=1,f_{0}=1] where now the recurrence is of the form $n$\emph{-th term = function
-of $n-1$-th term and $n-2$-th term}, or (adjusting the coefficients
+        [f_{1}=1,f_{0}=1] where now the recurrence is of the form \emph{term }$n$\emph{ =
+function of term $n-1$ and term $n-2$}, or (adjusting the coefficients
 as well as the recurrence terms),
 \begin{verbatim}
-    \recur[p=.,do=10,see1=4,see2=2,vvd={,}\\(vv)\\,*]{\[
-      P_{n+1}(x)=\frac{1}{n+1}
-        \Bigl((2n+1)xP_{n}(x)-nP_{n-1}(x)\Bigr)
-          \]}[P_{2}(x)=-0.125,P_{1}(x)=x,x=0.5]
+    \recur[env=multline*,p=.,do=10,see1=4,see2=2,
+             vv={,}\\(vv)\\]
+      { P_{n+1}(x)=\frac{1}{n+1}
+        \Bigl((2n+1)xP_{n}(x)-nP_{n-1}(x)\Bigr) }
+          [P_{2}(x)=-0.125,P_{1}(x)=x,x=0.5]
 \end{verbatim}
-$\Longrightarrow$     \recur[p=.,do=10,see1=4,see2=2,vvd={,}\\(vv)\\,*]{\[
-      P_{n+1}(x)=\frac{1}{n+1}
-        \Bigl((2n+1)xP_{n}(x)-nP_{n-1}(x)\Bigr)
-          \]}[P_{2}(x)=-0.125,P_{1}(x)=x,x=0.5]
+$\Longrightarrow$     \recur[env=multline*,p=.,do=10,see1=4,see2=2,
+             vv={,}\\(vv)\\]
+      { P_{n+1}(x)=\frac{1}{n+1}
+        \Bigl((2n+1)xP_{n}(x)-nP_{n-1}(x)\Bigr) }
+          [P_{2}(x)=-0.125,P_{1}(x)=x,x=0.5]
 
-\noindent The recurrence here is of the form $n+1$\emph{-th term
-= function of $n$-th term and $n-1$-th term}. This last example
-has one further `wrinkle'. I've made $P_{1}(x)$ the lowest order
-term and decreased the number of terms to calculate by $1$ accordingly. 
+\noindent The recurrence here is of the form \emph{term }$n+1$\emph{
+= function of term $n$ and term $n-1$}. This last example has one
+further `wrinkle'. I've made $P_{1}(x)$ the lowest order term and
+decreased the number of terms to calculate by $1$ accordingly. 
 
 \subsection{First order recurrences (iteration)}
 
@@ -1609,7 +1778,7 @@
       x_{n+1}=1+a/x_{n} 
         $}[x_{0}=1,a=1]
 
-\noindent to be compared with the example near the start of Chapter~\ref{chap:Iterating-functions}.
+\noindent to be compared with the example near the start of Chapter~\ref{chap:iterIterating-functions}.
 (\emph{That} effected $15$ iterations; \emph{this} uses $16$ terms
 because of the extra $x_{0}=1$ term.) 
 
@@ -1617,89 +1786,68 @@
 
 When the star option is used with the \verb`\nmcRecur` command, only
 a single term, the \emph{last}, is presented as the result. Repeating
-the last calculation, but with the star option produces
+the penultimate calculation, but with the star option produces
 \begin{verbatim}
-    \recur*[p=.,do=10]{\[
-      P_{n+1}(x)=\frac{1}{n+1}
-        \Bigl((2n+1)xP_{n}(x)-nP_{n-1}(x)\Bigr)
-          \]}[P_{2}(x)=-0.125,P_{1}(x)=x,x=0.5]
+    \recur*[do=10]{ P_{n+1}(x)=\frac{1}{n+1}
+        \Bigl((2n+1)xP_{n}(x)-nP_{n-1}(x)\Bigr) }
+          [P_{2}(x)=-0.125,P_{1}(x)=x,x=0.5]
 \end{verbatim}
-$\Longrightarrow$     \recur*[p=.,do=10]{\[
+$\Longrightarrow$     \recur*[do=10]{\[
       P_{n+1}(x)=\frac{1}{n+1}
         \Bigl((2n+1)xP_{n}(x)-nP_{n-1}(x)\Bigr)
           \]}[P_{2}(x)=-0.125,P_{1}(x)=x,x=0.5]
 
-Although punctuation (a full stop) was specified in the settings,
-it has been ignored in the display of the result. Other settings would
-also have been ignored with the exception of the \verb`do` key which
-is required to know exactly which term to calculate. The star option
-produces a purely numerical answer without any trimmings.
+\noindent With the exception of \verb`do`, any settings are ignored
+in the display of the result. The star option produces a purely numerical
+answer without any trimmings.
 
+\noindent{}%
 \noindent\begin{minipage}[t]{1\columnwidth}%
 \begin{shaded}%
 This seems something of a waste of the star option since it gives
-much the same result as choosing \texttt{do=10,see1=0,see2=1}. Not
-\emph{exactly} the same, since math delimiters are involved now, but
-sufficiently similar to make me wonder if I should change the starred
-form to apply only to those recurrences which approach a limit. The
-starred form would then produce the limiting value as its result (like
-\verb`\iter*`). This is a possible change for future versions of
-\verb`numerica-plus` and should be borne in mind if using \verb`\recur*`.\end{shaded}%
+much the same result as choosing \texttt{do=10,see1=0,see2=1} \textendash{}
+not \emph{exactly} the same, since math delimiters are involved here,
+but sufficiently similar to make me wonder if I should change the
+starred form to apply only to those recurrences which approach a limit.
+The starred form would then produce the limiting value as its result
+(like \verb`\iter*`). This is a possible change for future versions
+of \texttt{numerica-plus} and should be borne in mind if using \verb`\recur*`.\end{shaded}%
 \end{minipage}
 
 \section{Settings}
 
 The settings option is a comma-separated list of items of the form
-\emph{key~=~value}.
+\emph{key~=~value}. Because recurrence terms are necessarily multi-token,
+the multi-token key is hard-coded in \verb`\recur` to \texttt{xx=1}. 
 
-\subsection{Inherited settings}
-
-Because recurrence terms are necessarily multi-token, the multi-token
-key is hard-coded in \verb`\recur` to \texttt{xx=1}. 
-
 \subsubsection{Multi-line formatting of result}
 
 When the \verb`\recur` command wraps around math delimiters, the
-\texttt{vvd} setting is available to split display of the result over
-two or more lines. For example, \texttt{vvd=\{,\}\textbackslash\textbackslash (vv)}pushes
-the vv-list and sequence of calculated values to a second line; or,
-\texttt{vvd=\{,\}\textbackslash qquad(vv)\textbackslash\textbackslash}
-pushes only the sequence of calculated values to a second line; or
-\texttt{vvd=\{,\}\textbackslash\textbackslash (vv)\textbackslash\textbackslash}
+\texttt{vv} setting is available to split display of the result over
+two or more lines. With the enhanced treatment of environments in
+version 3 of \texttt{numerica}, some of which carries over to \texttt{numerica-plus},
+it is possible to spread a display over two lines simply by specifying
+\verb`env=multline*` (or \verb`env=multline` if you want equation
+numbers). The default vv-list specification in this case is \verb`vv={,}\\(vv)`
+which pushes the vv-list and sequence of calculated values to the
+second line. If two lines still give a crowded result, \verb`vv={,}\\(vv)\\`
 pushes the vv-list, centred, to a second line and the sequence of
-values, right aligned, to a third line. The \texttt{{*}} setting is
-available to suppress equation numbering (by substituting \verb`multline*`
-for \verb`multline`).
+values, right aligned, to a third. If you wanted only the sequence
+of calculated values on a second line with the vv-list on the same
+line as the formula then (for insance) \verb`vv={,}\qquad(vv)\\`
+achieves this: 
 \begin{verbatim}
- \nmcRecur[do=8,see1=8,...,vvd={,}\qquad(vv)\\,*]
+    \nmcRecur[do=8,see1=8,...,vv={,}\qquad(vv)\\,*]
       {$ f_{n+2}=f_{n+1}+f_{n} $}
         [f_{1}=1,f_{0}=1]
 \end{verbatim}
-$\Longrightarrow$     \nmcRecur[do=8,see1=8,...,vvd={,}\qquad(vv)\\,*]
+$\Longrightarrow$     \nmcRecur[do=8,see1=8,...,vv={,}\qquad(vv)\\,*]
       {$ f_{n+2}=f_{n+1}+f_{n} $}
         [f_{1}=1,f_{0}=1]
 
 \subsection{\texttt{\textbackslash nmcRecur}-specific settings}
 
-\label{subsec:recurSpecific-settings}In addition to the inherited
-settings there are some specific to \verb`\nmcRecur`. These are listed
-in Table~\ref{tab:recurSettings} below.
-
-\subsubsection{Number of terms to calculate}
-
-By entering
-\begin{lyxcode}
-do~=~<integer>
-\end{lyxcode}
-in the settings option you can specify how many terms of a recurrence
-to calculate. The default is set to $7$ (largely to show a sufficient
-number of terms of the Fibonacci series to begin to be interesting).
-Note that \texttt{<integer>} will generally \emph{not} correspond
-to the subscript on the last term calculated since that also depends
-on the value of the subscript of the lowest order term in the vv-list.
-
-\subsubsection{Number of terms to display}
-
+\label{subsec:recurSpecific-settings}
 \begin{table}[b]
 \centering{}\caption{\protect\label{tab:recurSettings}Settings for \texttt{\textbackslash nmcRecur}}
 \begin{center}
@@ -1711,119 +1859,115 @@
 {\small\texttt{see1}} & {\small int$\ge0$} & {\small number of initial terms to display} & {\small\texttt{3}}\tabularnewline
 {\small\texttt{see2}} & {\small int$\ge0$} & {\small number of final terms to display} & {\small\texttt{2}}\tabularnewline
 {\small\texttt{...}} & {\small chars} & {\small follow display of values with an ellipsis} & \tabularnewline
-{\small\texttt{reuse}} & {\small int ($\mathtt{0}/\mathtt{1}/\mathtt{2}$)} & {\small form of result saved with }{\small{\small\verb`\reuse`}} & {\small\texttt{0}}\tabularnewline
 \bottomrule
 \end{tabular}
 \par\end{center}
 \end{table}
+In addition to the inherited settings there are some specific to \verb`\nmcRecur`.
+These are listed in Table~\ref{tab:recurSettings}.
+
+\subsubsection{Number of terms to calculate}
+
 By entering
-\begin{lyxcode}
-see1~=~<integer1>,~see2=<integer2>
-\end{lyxcode}
+\begin{verbatim}
+    do = <integer>
+\end{verbatim}
+in the settings option you can specify how many terms of a recurrence
+to calculate. The default is set to $7$ (largely to show a sufficient
+number of terms of the Fibonacci series to begin to be interesting).
+Note that \verb`<integer>` will generally \emph{not} correspond to
+the subscript on the last term calculated since that also depends
+on the value of the subscript of the lowest order term in the vv-list.
+
+\subsubsection{Number of terms to display}
+
+By entering
+\begin{verbatim}
+    see1 = <integer1>, see2=<integer2>
+\end{verbatim}
 in the settings option, you can specify how many initial terms of
 the recurrence and how many of the final terms calculated you want
-to view. If the sum of these settings is less than the \texttt{do}
+to view. If the sum of these settings is less than the \verb`do`
 setting, then the terms are displayed with an intervening ellipsis.
-If the sum is greater than the \texttt{do} setting, then the values
-are adjusted so that their sum equals the \texttt{do} setting and
-all terms are displayed. 
+If the sum is greater than the \verb`do` setting, then the values
+are adjusted so that their sum equals the \verb`do` setting and all
+terms are displayed. 
 
-The adjustment is preferentially to \texttt{see1}. Suppose \texttt{do=}7,
-\texttt{see1=5}, \texttt{see2=4}. Then \texttt{see2} is left unchanged
-but \texttt{see1} is reduced to \texttt{7-4=3}. If, say, \texttt{do=}7,
-\texttt{see1=5}, \texttt{see2=8}, then \texttt{see2} is reduced to
-\texttt{7} and \texttt{see1} to \texttt{-1} (rather than zero, for
-technical reasons). The reason for preserving \texttt{see2} over \texttt{see1}
-is for the functioning of the \texttt{reuse} setting (see below).
+The adjustment is preferentially to \verb`see1`. Suppose \verb`do=7`,
+\verb`see1=5`, \verb`see2=4`. Then \verb`see2` is left unchanged
+but \verb`see1` is reduced to \verb`7-4=3`. If, say, \verb`do=7`,
+\verb`see1=5`, \verb`see2=8`, then \verb`see2` is reduced to $7$
+and \verb`see1` to \texttt{-1} (rather than zero, for technical reasons). 
 
-The default value for \texttt{see1} is $3$; the default value for
-\texttt{see2} is $2$.
+The default value for \verb`see1` is $3$; the default value for
+\verb`see2` is $2$.
 
 \subsubsection{Ellipsis}
 
-Including three dots in the settings option
-\begin{lyxcode}
-...
-\end{lyxcode}
+Including three dots (periods, fullstops) in the settings option 
+\begin{verbatim}
+    ...
+\end{verbatim}
 ensures that a (proper) ellipsis is inserted after the final term
 is displayed. An example is provided by the display of the Fibonacci
 sequence at the start of this chapter. By default this option is turned
 off.
 
-\subsubsection{Form of result saved by \texttt{\textbackslash nmcReuse}}
+\subsection{Form of result saved by \texttt{\textbackslash nmcReuse}}
 
-By entering
-\begin{lyxcode}
-reuse~=~<integer>
-\end{lyxcode}
-it is possible to specify the form of result that is saved when using
-\verb`\nmcReuse`. (This setting has no effect when the star option
-is used with \verb`\nmcRecur`. In that case only the numerical result
-of the final term calculated is saved.) There are three different
-outputs possible:
-\begin{itemize}
-\item \texttt{int=0} (or any integer $\mathtt{\ne1,2}$) saves the full
-display (the default);
-\item \texttt{int=1} saves a comma-separated list of braced pairs of the
-form: \texttt{\{$k$, value-of-term-$k$\}} for the last \texttt{see2}
-terms calculated;
-\item \texttt{int=2} saves a comma-separated list of the values of the last
-\texttt{see2} terms calculated.
-\end{itemize}
-As an example, using \texttt{reuse=1},
+In previous versions of \texttt{numerica-plus} it was possible to
+choose with the \verb`reuse` setting what was saved by the next \verb`\nmcReuse`
+command. The \verb`reuse` setting has been discontinued in version
+3 of \texttt{numeric-plus}. Now it is the last \verb`see2` values
+of the recurrence sequence which are saved as a comma list in which
+each saved value is wrapped in braces in case the decimal comma is
+being used. (This setting has no effect when the star option is used
+with \verb`\nmcRecur`. In that case only the numerical result of
+the final term calculated is saved.) 
+
+As an example, 
 \begin{verbatim}
-    \recur[reuse=1,p=.,vvmode=1,do=11,see1=4,see2=2,
-      vvd={,}\\(vv)\\,*]
-      {\[ P_{n+2}(x)=\frac{1}{n+2} 
-            \Bigl(kxP_{n+1}(x)-(n+1)P_{n}(x)\Bigr)
-      \]}[k=2n+3,n=1,P_{1}(x)=x,P_{0}(x)=1,x=0.5]
-    \reuse[legendre]
+    \recur[env=multline*,p=.,vv@=1,do=11,see1=4,see2=2,
+             vv={,}\\(vv)\\]
+      { P_{n+2}(x)=\frac{1}{n+2} 
+            \Bigl(kxP_{n+1}(x)-(n+1)P_{n}(x)\Bigr) }
+      [k=2n+3,n=1,P_{1}(x)=x,P_{0}(x)=1,x=0.5]
+    \reuse{legendre}
 \end{verbatim}
-$\Longrightarrow$     \recur[reuse=1,p=.,vvmode=1,do=11,see1=4,see2=2,
-      vvd={,}\\(vv)\\,*]
-      {\[ P_{n+2}(x)=\frac{1}{n+2} 
-            \Bigl(kxP_{n+1}(x)-(n+1)P_{n}(x)\Bigr)
-      \]}[k=2n+3,n=0,P_{1}(x)=x,P_{0}(x)=1,x=0.5]
-    \reuse[renew]{ legendre}
+$\Longrightarrow$     \recur[env=multline*,p=.,vv@=1,do=11,see1=4,see2=2,
+             vv={,}\\(vv)\\ ]
+      { P_{n+2}(x)=\frac{1}{n+2} 
+            \Bigl(kxP_{n+1}(x)-(n+1)P_{n}(x)\Bigr) }
+      [k=2n+3,n=1,P_{1}(x)=x,P_{0}(x)=1,x=0.5] \par
+    \reuse[renew]{legendre}
 
 \noindent Now check to see what has been saved: 
 \begin{centred}
-\verb`$\legendre$` $\Longrightarrow$ $ \legendre $.
+\verb`$\legendre$` $\Longrightarrow$  $ \legendre $.
 \end{centred}
-As you can see, the final two (because of \texttt{see2=2}) of the
-$11$ Legendre polynomials calculated ($P_{0}(x)$ is the first) have
-been saved, each value preceded by its index value. If the setting
-had been \texttt{reuse=2}, only the two values without the index values
-would have been saved. To see that they are saved as braced pairs,
-use \TeX 's \verb`\meaning` command:
-\begin{verbatim}
-    \meaning \legendre
-\end{verbatim}
-$\Longrightarrow$ \meaning \legendre
+As you can see, the final two (because of \verb`see2=2`) of the $11$
+Legendre polynomials calculated ($P_{0}(x)$ is the first) have been
+saved. 
 
-\subsection{Changing default values}
+\subsubsection{Accessing individual terms}
 
-\begin{wraptable}[12]{o}{0.5\columnwidth}%
-\centering{}\caption{\protect\label{tab:recurSettingsDefaults}Defaults for \texttt{\textbackslash nmcRecur}}
-\begin{center}
-\begin{tabular}{ll}
-\toprule 
-{\small key} & {\small default}\tabularnewline
-\midrule
-{\small recur-do} & {\small\texttt{7}}\tabularnewline
-{\small recur-see-first} & {\small\texttt{3}}\tabularnewline
-{\small recur-see-last} & {\small\texttt{2}}\tabularnewline
-{\small recur-reuse} & {\small\texttt{0}}\tabularnewline
-\bottomrule
-\end{tabular}
-\par\end{center}\end{wraptable}%
-If you wish to change the default values of the various settings for
-\verb`\nmcRecur` this can be done by entering new values in a configuration
-file \texttt{numerica-plus.cfg} as described in the chapter on settings
-in the associated document \texttt{numerica.pdf}. The relevant keys
-are listed in Table~\ref{tab:recurSettingsDefaults}, corresponding
-to the \verb`do`, \verb`see1`, \verb`see2` and \verb`reuse` settings
-of the \verb`\recur` command. 
+\label{subsec:recurAccessing-individual-terms}You may wish to gain
+access to individual members of the sequence of saved values. \texttt{numerica-plus}
+provides the utility function \verb`\clitem` for this purpose.\footnote{In fact a wrapper around the \texttt{expl3} function \texttt{\textbackslash clist\_item:Nn}.}
+It acts on the macro containing the comma list and a number specifying
+which member of the sequence is to be recovered: \verb`1` for the
+first (leftmost) item, \verb`2` for the second item, and so on. 
+\begin{centred}
+\verb`$\clitem\legendre 2$` $\Longrightarrow$ $\clitem\legendre 2$
+\end{centred}
+The \verb`$` delimiters ensure the minus sign displays correctly.
+Multi-digit numbers need to be enclosed in braces. Negative integers
+give access to the end of the sequence, \verb`-1` for the last (rightmost)
+item, \verb`-2` for the second last and so on. In the present case,
+\begin{centred}
+\verb`$\clitem\legendre{-1}=\clitem\legendre 2$` $\Longrightarrow$
+$\clitem\legendre{-1}=\clitem\legendre 2$.
+\end{centred}
 
 \subsection{Orthogonal polynomials}
 
@@ -1849,27 +1993,31 @@
 with initial values $L_{0}(x)=1$ and $L_{1}(x)=1-x$. So let's calculate
 the first $13$ Laguerre polynomials for, say, $x=0.5$: 
 \begin{verbatim}
-    \recur[do=13,see1=4,see2=2,vvd={,}\\(vv)\\,*]{\[
-      L_{n+1}(x)=\frac{2n+1-x}{n+1}L_{n}(x)-
-        \frac{n}{n+1}L_{n-1}(x) 
-           \]}[L_{1}(x)=1-x,L_{0}(x)=1,x=0.5]
+    \recur[env=multline*,do=13,see1=4,see2=2,
+             vv={,}\\(vv)\\]
+      { L_{n+1}(x)=\frac{2n+1-x}{n+1}L_{n}(x)-
+        \frac{n}{n+1}L_{n-1}(x) }
+           [L_{1}(x)=1-x,L_{0}(x)=1,x=0.5]
 \end{verbatim}
-$\Longrightarrow$     \recur[do=13,see1=4,see2=2,vvd={,}\\(vv)\\,*]{\[
-      L_{n+1}(x)=\frac{2n+1-x}{n+1}L_{n}(x)-
-        \frac{n}{n+1}L_{n-1}(x) 
-           \]}[L_{1}(x)=1-x,L_{0}(x)=1,x=0.5]
+$\Longrightarrow$     \recur[env=multline*,do=13,see1=4,see2=2,
+             vv={,}\\(vv)\\]
+      { L_{n+1}(x)=\frac{2n+1-x}{n+1}L_{n}(x)-
+        \frac{n}{n+1}L_{n-1}(x) }
+          [L_{1}(x)=1-x,L_{0}(x)=1,x=0.5]
 
 \noindent and for $x=5$: 
 \begin{verbatim}
-    \recur[p=.,do=13,see1=4,see2=2,vvd={,}\\(vv)\\,*]{\[
-      L_{n+1}(x)=\frac{2n+1-x}{n+1}L_{n}(x)-
-        \frac{n}{n+1}L_{n-1}(x) 
-           \]}[L_{1}(x)=1-x,L_{0}(x)=1,x=5]
+    \recur[env=multline*,p=.,do=13,see1=4,see2=2,
+             vv={,}\\(vv)\\]
+      { L_{n+1}(x)=\frac{2n+1-x}{n+1}L_{n}(x)-
+        \frac{n}{n+1}L_{n-1}(x) }
+          [L_{1}(x)=1-x,L_{0}(x)=1,x=5]
 \end{verbatim}
-$\Longrightarrow$    \recur[p=.,do=13,see1=4,see2=2,vvd={,}\\(vv)\\,*]{\[
-      L_{n+1}(x)=\frac{2n+1-x}{n+1}L_{n}(x)-
-        \frac{n}{n+1}L_{n-1}(x) 
-           \]}[L_{1}(x)=1-x,L_{0}(x)=1,x=5]
+$\Longrightarrow$     \recur[env=multline*,p=.,do=13,see1=4,see2=2,
+             vv={,}\\(vv)\\]
+      { L_{n+1}(x)=\frac{2n+1-x}{n+1}L_{n}(x)-
+        \frac{n}{n+1}L_{n-1}(x) }
+          [L_{1}(x)=1-x,L_{0}(x)=1,x=5]
 
 \noindent The results (reassuringly) coincide with those provided
 in \emph{HMF }Table 22.11.
@@ -1876,16 +2024,15 @@
 
 \subsection{Nesting}
 
-It is possible to use the \verb`\recur` command (with star in v.1
-of \verb`numerica`, with or without star in v.2 of \verb`numerica-plus`)
-within an \verb`\eval`, \verb`\iter`, or \verb`\solve` command,
-and indeed in \verb`\recur` itself, but with this caveat: if \verb`\recur`
-is nested within another command, the initial terms of the recurrence
-\textendash{} e.g., $f_{1}=1,f_{0}=1$, for the Fibonacci series,
-or $L_{1}(x)=1-x,L_{0}(x)=1$ for the Laguerre polynomials \textendash{}
-\emph{must be located in the vv-list of that inner }\verb`\recur`\emph{
-command}. Other shared variables can often be shifted to the vv-list
-of the outer command, but not these initial terms.
+It is possible to use the \verb`\recur` command within an \verb`\eval`,
+\verb`\iter`, or \verb`\solve` command, and indeed in \verb`\recur`
+itself, but with this caveat: if \verb`\recur` is nested within another
+command, the initial terms of the recurrence \textendash{} e.g., $f_{1}=1,f_{0}=1$,
+for the Fibonacci series, or $L_{1}(x)=1-x,L_{0}(x)=1$ for the Laguerre
+polynomials \textendash{} must be located in the vv-list of that\emph{
+inner }\verb`\recur`\emph{ }command. Other shared variables can often
+be shifted to the vv-list of the outer command, but not these initial
+terms.
 
 In the following example I multiply together (rather futilely) the
 third and fourth members of the sequence of Laguerre polynomials for
@@ -1896,12 +2043,12 @@
 only the \verb`x=5` entry has been transferred:
 \begin{verbatim}
     \eval[p=.]{$
-      \recur*[do=3]
+      \recur[do=3]
         { L_{n+1}(x)=\frac{2n+1-x}{n+1}L_{n}(x)-
             \frac{n}{n+1}L_{n-1}(x)}
           [L_{1}(x)=1-x,L_{0}(x)=1]
       \times 
-      \recur*[do=4]
+      \recur[do=4]
         { L_{n+1}(x)=\frac{2n+1-x}{n+1}L_{n}(x)-
             \frac{n}{n+1}L_{n-1}(x)}
           [L_{1}(x)=1-x,L_{0}(x)=1]
@@ -1908,17 +2055,18 @@
     $}[x=5]
 \end{verbatim}
 $\Longrightarrow$     \eval[p=.]{$
-      \recur*[do=3]
+      \recur[do=3]
         { L_{n+1}(x)=\frac{2n+1-x}{n+1}L_{n}(x)-
             \frac{n}{n+1}L_{n-1}(x)}
               [L_{1}(x)=1-x,L_{0}(x)=1,x=5]
       \times 
-      \recur*[do=4]
+      \recur[do=4]
         { L_{n+1}(x)=\frac{2n+1-x}{n+1}L_{n}(x)-
             \frac{n}{n+1}L_{n-1}(x)}
               [L_{1}(x)=1-x,L_{0}(x)=1,x=5]
     $}
 
+\noindent{}%
 \noindent\begin{minipage}[t]{1\columnwidth}%
 \begin{shaded}%
 The terms of a recurrence relation are multi-token variables but \texttt{numerica}
@@ -1953,18 +2101,19 @@
 \item \texttt{\textbackslash nmcIterate, \textbackslash iter}
 \item \texttt{\textbackslash nmcSolve, \textbackslash solve}
 \item \textbackslash\texttt{nmcRecur, \textbackslash recur}
+\item \texttt{\textbackslash clitem}
 \end{enumerate}
 
-\section{Settings for the three commands}
+\section{Settings for the three main commands}
 
 \subsection{Settings for \texttt{\textbackslash nmcIterate}}
 
-Settings option of \verb`\nmcIterate`:
+Settings keys for \verb`\nmcIterate`:
 
 \begin{center}
 \begin{tabular}{llll}
 \toprule 
-{\small key} & {\small type} & {\small meaning} & {\small default}\tabularnewline
+{\small key} & {\small type} & {\small meaning} & {\small initial}\tabularnewline
 \midrule
 {\small\texttt{var}} & {\small token(s)} & {\small iteration variable} & \tabularnewline
 {\small\texttt{+}} & {\small int} & {\small fixed point extra rounding} & {\small\texttt{0}}\tabularnewline
@@ -1971,90 +2120,41 @@
 {\small\texttt{max}} & {\small int > 0} & {\small max. iteration count (fixed points)} & {\small\texttt{100}}\tabularnewline
 {\small\texttt{do}} & {\small int > 0} & {\small number of iterations to perform} & {\small\texttt{5}}\tabularnewline
 {\small\texttt{see}} & {\small int > 0} & {\small number of final iterations to view} & {\small\texttt{4}}\tabularnewline
-{\small\texttt{reuse}} & {\small int ($\mathtt{0}/\mathtt{1}/\mathtt{2}$)} & {\small form of result saved with }{\small{\small\verb`\reuse`}} & {\small\texttt{0}}\tabularnewline
 \bottomrule
 \end{tabular}
 \par\end{center}
 
-Configuration settings for \verb`\nmcIterate`:
-
-\begin{center}
-\begin{tabular}{ll}
-\toprule 
-{\small key} & {\small default}\tabularnewline
-\midrule
-{\small iter-extra-rounding} & {\small\texttt{0}}\tabularnewline
-{\small iter-max-iterations} & {\small\texttt{100}}\tabularnewline
-{\small iter-do} & {\small\texttt{5}}\tabularnewline
-{\small iter-see-last} & {\small\texttt{4}}\tabularnewline
-{\small iter-reuse} & {\small\texttt{0}}\tabularnewline
-\bottomrule
-\end{tabular}
-\par\end{center}
-
 \subsection{Settings for \texttt{\textbackslash nmcSolve}}
 
-Settings option of \verb`\nmcSolve`:
+Settings keys for \verb`\nmcSolve`:
 
 \begin{center}
 \begin{tabular}{llll}
 \toprule 
-{\small key} & {\small type} & {\small meaning} & {\small default}\tabularnewline
+{\small key} & {\small type} & {\small meaning} & {\small initial}\tabularnewline
 \midrule
 {\small\texttt{var}} & {\small token(s)} & {\small equation variable} & \tabularnewline
 {\small\texttt{dvar}} & {\small real $\ne0$} & {\small initial step size} & {\small\texttt{1}}\tabularnewline
 {\small\texttt{+}} & {\small int} & {\small extra rounding} & {\small\texttt{0}}\tabularnewline
 {\small\texttt{max}} & {\small int > 0} & {\small max. number of steps before cut off} & {\small\texttt{100}}\tabularnewline
-{\small\texttt{reuse}} & {\small int ($\mathtt{0}/\mathtt{1}$)} & {\small form of result saved with }{\small{\small\verb`\reuse`}} & {\small\texttt{0}}\tabularnewline
 \bottomrule
 \end{tabular}
 \par\end{center}
 
-Configuration settings for \verb`\nmcSolve`:
-
-\begin{center}
-\begin{tabular}{ll}
-\toprule 
-{\small key} & {\small default}\tabularnewline
-\midrule
-{\small solve-first-step} & 1\tabularnewline
-{\small solve-extra-rounding} & {\small\texttt{0}}\tabularnewline
-{\small solve-max-steps} & {\small\texttt{100}}\tabularnewline
-{\small solve-reuse} & {\small\texttt{0}}\tabularnewline
-\bottomrule
-\end{tabular}
-\par\end{center}
-
 \subsection{Settings for \texttt{\textbackslash nmcRecur}}
 
-Settings option of \verb`\nmcRecur`:
+Settings keys for \verb`\nmcRecur`:
 
 \begin{center}
 \begin{tabular}{llll}
 \toprule 
-{\small key} & {\small type} & {\small meaning} & {\small default}\tabularnewline
+{\small key} & {\small type} & {\small meaning} & {\small initial}\tabularnewline
 \midrule
 {\small\texttt{do}} & {\small int$\ge0$} & {\small number of terms to calculate} & {\small\texttt{7}}\tabularnewline
 {\small\texttt{see1}} & {\small int$\ge0$} & {\small number of initial terms to display} & {\small\texttt{3}}\tabularnewline
 {\small\texttt{see2}} & {\small int$\ge0$} & {\small number of final terms to display} & {\small\texttt{2}}\tabularnewline
 {\small\texttt{...}} & {\small chars} & {\small follow display of values with an ellipsis} & \tabularnewline
-{\small\texttt{reuse}} & {\small int ($\mathtt{0}/\mathtt{1}/\mathtt{2}$)} & {\small form of result saved with }{\small{\small\verb`\reuse`}} & {\small\texttt{0}}\tabularnewline
 \bottomrule
 \end{tabular}
 \par\end{center}
-
-Configuration settings for \verb`\nmcRecur`:
-
-\begin{center}
-\begin{tabular}{ll}
-\toprule 
-{\small key} & {\small default}\tabularnewline
-\midrule
-{\small recur-do} & {\small\texttt{7}}\tabularnewline
-{\small recur-see-first} & {\small\texttt{3}}\tabularnewline
-{\small recur-see-last} & {\small\texttt{2}}\tabularnewline
-{\small recur-reuse} & {\small\texttt{0}}\tabularnewline
-\bottomrule
-\end{tabular}
-\par\end{center}
 \end{document}

Modified: trunk/Master/texmf-dist/tex/latex/numerica-plus/numerica-plus.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/numerica-plus/numerica-plus.sty	2023-08-22 22:45:46 UTC (rev 68018)
+++ trunk/Master/texmf-dist/tex/latex/numerica-plus/numerica-plus.sty	2023-08-22 22:45:59 UTC (rev 68019)
@@ -7,19 +7,26 @@
 %
 % Andrew Parsloe (ajparsloe at gmail.com)
 % 
-\RequirePackage{numerica}[2021/12/07]
-\@ifpackagelater{numerica}{2021/12/07}
-  {}
-  {%
-    \PackageError{numerica-plus}{Package numerica too old.}
-      {Please update the package.}
-    \endinput
-  }
 \ProvidesExplFile
   {numerica-plus.sty}
-  {2021/12/10}
-  {2.0.0}
-  {Iterate functions, find zeros/extrema of functions, evaluate recurrences }
+  {2023/08/13}
+  {3.0.0}
+  {Iterate functions, find zeros/extrema of functions, evaluate recurrences}
+
+\msg_new:nnn {numerica-plus} {version}
+  {
+    Package~too~old!~This~version~of~numerica-plus~requires~
+    numerica~version~3.
+  }
+\msg_new:nnn {numerica-plus} {load-order}
+  { Please~load~version~3~of~numerica~*before*~numerica~plus. }
+  
+\cs_if_exist:NTF \c_nmc_version_tl  
+  { 
+    \int_compare:nNnT { \c_nmc_version_tl } < { 30 }
+      { \msg_fatal:nn {numerica-plus} {version} }
+  }
+  { \msg_fatal:nn {numerica-plus} {load-order} }
 %----------------------------------------------------------
 \cs_generate_variant:Nn \tl_if_novalue:nTF { o }
 
@@ -30,6 +37,8 @@
   }
 \clist_gput_right:Nn \g__nmc_info_proc_clist { iter, solve }
 
+\int_if_zero:nT { \g__nmc_consts_vv_int }
+  { \int_incr:N \g__nmc_consts_vv_int }
 \cs_new_protected:Npn \__nmc_plus_get_var:NNn #1#2#3
   { 
     \tl_if_empty:NT #1
@@ -38,7 +47,7 @@
             { \seq_item:Nn \l__nmc_vv_all_seq { \g__nmc_consts_vv_int } }
         \quark_if_no_value:NTF \l_tmpa_tl
           { 
-            \__nmc_error_where:n { \__nmc_verb:n { #2 } }
+            \__nmc_error_where:n { #2 }
             \__nmc_error_what:n { No~#3~variable~specified~in } }
           { 
             \__nmc_vv_split_item:V \l_tmpa_tl
@@ -46,38 +55,25 @@
           }
       }
   }
-%#1 vv-list reversed #2 var_tl #3 \nmc<cmd> #4 {adjective}
+% #1 vv-seq reversed #2 var_tl #3 \nmc<cmd> #4 {adjective}
 \cs_new_protected:Npn \__nmc_plus_vv_digest:NNNn #1#2#3#4
-  {
-    \clist_push:NV \l_nmc_formula_tl #2
+  { 
+    \clist_push:NV \l__nmc_formula_tl #2
     \__nmc_vv_digest:N #1 
     \tl_if_empty:NTF #2
       { \__nmc_plus_get_var:NNn #2 #3 { #4 } }
-      { \clist_pop:NN \l_nmc_formula_tl #2 }
+      { \clist_pop:NN \l__nmc_formula_tl #2 }
   }
-\cs_new_protected:Npn \__nmc_plus_reuse:nNN #1#2#3
+\cs_new_protected:Npn \__nmc_plus_reuse:N #1
   {
-    \int_case:nnF { #1 }
-      { 
-        { 1 }
-          {
-            \seq_pop:NN #2 \l_tmpa_tl
-            \seq_pop:NN #3 \l_tmpb_tl
-            \tl_gset:Nx \g__nmc_reuse_tl 
-                { { \l_tmpa_tl , \l_tmpb_tl } }
-            \seq_mapthread_function:NNN #2 #3 \__nmc_plus_reuse_display:nn
-          }
-        { 2 }
-          { 
-            \tl_gset:Nx \g__nmc_reuse_tl 
-                { \seq_use:Nn #3 { , } } 
-          }
-      }
-      { \tl_gset_eq:NN \g__nmc_reuse_tl \l_nmc_result_tl }
+    \tl_gclear:N \g__nmc_reuse_tl
+    \seq_map_inline:Nn #1
+      { \tl_gput_right:Nn \g__nmc_reuse_tl { ,{##1} } }
+    \tl_gset:Nx \g__nmc_reuse_tl 
+        { \exp_last_unbraced:NV \use_none:n \g__nmc_reuse_tl }
   }
-\cs_new_protected:Npn \__nmc_plus_reuse_display:nn #1#2
-  { \clist_gput_right:Nx \g__nmc_reuse_tl { { #1 , #2 } } }
-  
+\NewDocumentCommand \clitem { m m }
+  { \clist_item:Nn #1 { #2 } }
 % \nmcIterate %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \int_new:N \l__nmc_iter_total_int
 \int_new:N \l__nmc_iter_view_int
@@ -95,12 +91,13 @@
 
 \nmc_define:NnN \nmcIterate { iter } \iter
 
-\cs_gset_protected:Npn \__nmc_iter_initialize:
+\cs_set_protected:Npn \__nmc_iter_initialize:
   {
-    \tl_set:Nn \l__nmc_dbg_idiii_tl { function }
+    \tl_set:Nn \l__nmc_dbg_idii_tl { function }
     \tl_set:Nn \l__nmc_dbg_idv_tl { stored }
+    \__nmc_env_initialize:
   }
-\cs_gset_protected:Npn \__nmc_iter_settings_digest:
+\cs_set_protected:Npn \__nmc_iter_settings:
   {
     \bool_set_false:N \l__nmc_allow_TF_out_bool
     \int_set:Nn \l__nmc_iter_total_int 
@@ -108,7 +105,13 @@
     \int_set:Nn \l__nmc_iter_view_int 
         { \int_min:nn { \int_max:nn { \l__nmc_iter_view_int } 
             { 1 } } { \l__nmc_iter_total_int } }
+    \__nmc_env_settings:
   }
+\cs_gset_protected:Npn \__nmc_iter_formula:
+  { 
+    \__nmc_env_formula:
+    \tl_set_eq:NN \l__nmc_formula_dup_tl \l__nmc_formula_tl 
+  }
 \cs_gset_protected:Npn \__nmc_iter_vv_digest:N #1
   { 
     \__nmc_plus_vv_digest:NNNn #1 
@@ -121,7 +124,7 @@
     % first iterate
     \__nmc_error_where:n { formula }
     \tl_clear:N \l__nmc_fp_expr_tl
-    \__nmc_fpify:VN \l_nmc_formula_tl \l__nmc_fp_expr_tl
+    \__nmc_fpify:VN \l__nmc_formula_tl \l__nmc_fp_expr_tl
     \fp_set:Nn \l__nmc_result_fp { \l__nmc_fp_expr_tl }
     \__nmc_error_fpflag:
     \bool_if:NF \g__nmc_error_bool
@@ -137,8 +140,18 @@
         \__nmc_iter_write:
       }
     \int_if_zero:nF \l__nmc_dbg_int
-      { \__nmc_dbg_get_data: }
+      { 
+        \__nmc_dbg_get_data:
+        \__nmc_if_mod_zero:nnT \l__nmc_dbg_int { 11 }
+          { \__nmc_iter_display: }
+      }
   }
+\cs_gset_protected:Npn \__nmc_iter_display:
+  {
+    \tl_gset_eq:NN \l__nmc_show_tl \l__nmc_result_tl
+    \__nmc_if_mod_zero:nnF { \l__nmc_dbg_int } { 11 }
+      { \l__nmc_show_tl }
+  }
 %--------------------------------------
 \cs_new_protected:Npn \__nmc_iter_do:
   { 
@@ -148,19 +161,20 @@
         \bool_if:NF \g__nmc_error_bool
           { 
             \__nmc_num_format:nNnN { \l__nmc_iter_fixedpti_fp }
-                \l_nmc_result_tl { \l__nmc_round_int } 
+                \l__nmc_result_tl { \l__nmc_round_int } 
                     \l__nmc_sci_num_out_bool
-            \int_decr:N \l__nmc_iter_total_int
+            \tl_gset_eq:NN \g__nmc_reuse_tl \l__nmc_result_tl
+            \int_decr:N \l__nmc_iter_total_int %  for checking iter.
             \tl_gset:Nx \g__nmc_info_iter_tl 
               { \int_use:N \l__nmc_iter_total_int }
           }
       }
-      { % don't print initial iterations
+      { % don't print initial iters
         \int_step_function:nnnN { 1 } { 1 }
             { \l__nmc_iter_total_int - \l__nmc_iter_view_int - 1 }
                 \__nmc_iter_current:n
         \bool_if:NF \g__nmc_error_bool
-          { % store then print these ones
+          { % store & print these ones
             \seq_clear:N \l__nmc_iter_result_seq
             \int_step_function:nnnN { 1 } { 1 } 
               { \int_min:nn { \l__nmc_iter_view_int } 
@@ -172,19 +186,19 @@
   { % stepping function
     \bool_if:NF \g__nmc_error_bool
       {
-        \__nmc_calc_fn_val:VNnN \l__nmc_iter_var_tl \l_nmc_formula_tl
+        \__nmc_calc_fn_val:VNnN \l__nmc_iter_var_tl \l__nmc_formula_tl
             { \l__nmc_result_fp } \l__nmc_result_fp
       }
   }
 \cs_new_protected:Npn \__nmc_iter_current_store:n #1
   { % stepping function
-    \__nmc_calc_fn_val:VNnN \l__nmc_iter_var_tl \l_nmc_formula_tl 
+    \__nmc_calc_fn_val:VNnN \l__nmc_iter_var_tl \l__nmc_formula_tl 
         { \l__nmc_result_fp } \l__nmc_result_fp
     \bool_if:NF \g__nmc_error_bool
       {
-        \__nmc_num_format:nNnN { \l__nmc_result_fp } \l_nmc_result_tl
+        \__nmc_num_format:nNnN { \l__nmc_result_fp } \l__nmc_result_tl
              { \l__nmc_round_int } \l__nmc_sci_num_out_bool 
-        \seq_put_right:NV \l__nmc_iter_result_seq \l_nmc_result_tl
+        \seq_put_right:NV \l__nmc_iter_result_seq \l__nmc_result_tl
         \int_set:Nn \l_tmpa_int
             { \l__nmc_iter_total_int - \l__nmc_iter_view_int + #1 }
         \seq_put_right:Nx \l__nmc_iter_index_seq { \int_use:N \l_tmpa_int }
@@ -195,6 +209,7 @@
     \int_set:Nn \l__nmc_iter_total_int { 1 }
     \fp_set_eq:NN \l__nmc_iter_fixedpti_fp \l__nmc_iter_first_fp
     \fp_set:Nn \l__nmc_iter_fixedptii_fp { \l__nmc_iter_fixedpti_fp + 1 }
+    \int_incr:N \l__nmc_iter_max_int % for fx pt checking iter
     \bool_until_do:nn
         { 
           \fp_compare_p:nNn { 0 } = 
@@ -205,28 +220,28 @@
       {
         \int_incr:N \l__nmc_iter_total_int
         \fp_set_eq:NN \l__nmc_iter_fixedptii_fp \l__nmc_iter_fixedpti_fp
-        \__nmc_calc_fn_val:VNnN \l__nmc_iter_var_tl \l_nmc_formula_tl
+        \__nmc_calc_fn_val:VNnN \l__nmc_iter_var_tl \l__nmc_formula_tl
             { \l__nmc_result_fp } \l__nmc_result_fp
         \fp_set_eq:NN \l__nmc_iter_fixedpti_fp \l__nmc_result_fp
-        \int_compare:nNnF { \l__nmc_iter_total_int } < 
-              { \l__nmc_iter_max_int }
+        \int_compare:nNnT {\l__nmc_iter_total_int} > {\l__nmc_iter_max_int}
           {
             \bool_gset_true:N \g__nmc_error_bool
+            \int_decr:N \l__nmc_iter_max_int
             \__nmc_error_what:n 
                 { 
-                  No~fixed~point~attained~after~$\int_use:N 
-                  \l__nmc_iter_total_int$~iterations~of 
+                  No~fixed~point~attained~after~$ \int_use:N 
+                  \l__nmc_iter_max_int $~iterations~of 
                 }
           }
       }
   }
 \cs_new_protected:Npn \__nmc_iter_environ:
-  {
+  { 
     \tl_set:Nx \l__nmc_iter_begin_tl 
         { 
           \mode_if_math:F { \exp_not:o \l__nmc_math_delimi_tl } 
           \exp_not:N \begin{array}{r@{}l} 
-          \bool_if:NTF \l__nmc_wraps_math_bool
+          \bool_if:NTF \l__nmc_see_formula_bool
             { \exp_not:o \l__nmc_formula_dup_tl &{}= }
             { &{} }
         }
@@ -241,40 +256,28 @@
     \__nmc_num_format:nNnN { \l__nmc_iter_first_fp } \l_tmpa_tl
          { \l__nmc_round_int } \l__nmc_sci_num_out_bool
     \tl_gset:Nx \g__nmc_info_iter_tl { \int_use:N \l__nmc_iter_total_int }
-    \__nmc_if_mod_zero:nnTF { \l__nmc_dbg_int } { 7 }
-      { \seq_get_right:NN \l__nmc_iter_result_seq \l_nmc_result_tl }
+    \tl_set:Nx \l__nmc_result_tl 
       {
-        \tl_set:Nx \l_nmc_result_tl 
+        \exp_not:o \l__nmc_iter_begin_tl
+        \l_tmpa_tl 
+        \exp_not:o \l__nmc_vv_tl
+        \int_compare:nNnT 
+            { \l__nmc_iter_total_int } > { \l__nmc_iter_view_int + 1 }
           {
-            \exp_not:o \l__nmc_iter_begin_tl
-            \l_tmpa_tl 
-            \exp_not:o \l__nmc_vv_display_tl
-            \int_compare:nNnT 
-                { \l__nmc_iter_total_int } > { \l__nmc_iter_view_int + 1 }
-              {
-                \\ & \exp_not:N \ldots
-                \ \exp_not:N\mbox{final\ 
-                \int_use:N \l__nmc_iter_view_int\ of\ \g__nmc_info_iter_tl :}
-              }
-            \int_compare:nNnT { \l__nmc_iter_total_int } > { 1 }
-              { \\ & \exp_not:N \hookrightarrow }
-            \seq_use:Nn \l__nmc_iter_result_seq { \\ & \hookrightarrow } 
-            \exp_not:o \l__nmc_iter_end_tl
+            \\ & \exp_not:N \ldots
+            \ \exp_not:N\mbox{final\ 
+            \int_use:N \l__nmc_iter_view_int\ of\ \g__nmc_info_iter_tl :}
           }
-        }
-  }
-\cs_gset_protected:Npn \__nmc_iter_display:
-  { 
-    \bool_if:NTF \l__nmc_num_only_bool
-      { \tl_gset_eq:NN \g__nmc_reuse_tl \l_nmc_result_tl }
-      {
-        \__nmc_plus_reuse:nNN { \l__nmc_iter_reuse_int }
-            \l__nmc_iter_index_seq \l__nmc_iter_result_seq
+        \int_compare:nNnT { \l__nmc_iter_total_int } > { 1 }
+          { \\ & \exp_not:N \hookrightarrow }
+        \seq_use:Nn \l__nmc_iter_result_seq { \\ & \hookrightarrow } 
+        \exp_not:o \l__nmc_iter_end_tl
       }
-    \l_nmc_result_tl
+    \__nmc_plus_reuse:N \l__nmc_iter_result_seq
   }
 %--------------------------------------
 %\nmcSolve
+\tl_new:N \l__nmc_solve_to_tl
 \int_new:N \l__nmc_solve_round_int
 \int_new:N \l__nmc_solve_steps_int
 \int_new:N \l__nmc_solve_slope_int
@@ -294,19 +297,24 @@
 
 \cs_gset_protected:Npn \__nmc_solve_initialize:
   {
-    \tl_set:Nn \l__nmc_dbg_idiii_tl { function }
+    \tl_set:Nn \l__nmc_dbg_idii_tl { function }
     \tl_set:Nn \l__nmc_dbg_idv_tl { stored }
+    \tl_clear:N \l__nmc_show_tl
+    \__nmc_env_initialize:
   }
-\cs_gset_protected:Npn \__nmc_solve_settings_digest: 
+\cs_gset_protected:Npn \__nmc_solve_settings: 
   {
     \bool_set_false:N \l__nmc_allow_TF_out_bool
     \tl_if_empty:NF \l__nmc_solve_step_tl
       { 
-        \__nmc_fpify_set:NV \l__nmc_solve_step_fp \l__nmc_solve_step_tl 
+        \__nmc_fpify_set:NV \l__nmc_solve_step_fp \l__nmc_solve_step_tl
         \fp_compare:nNnT \l__nmc_solve_step_fp = { 0 }
           { \__nmc_error_what:n { Non-zero~initial~step~required~in } }
       } 
+    \__nmc_env_settings:
   }
+\cs_gset_protected:Npn \__nmc_solve_formula:
+  { \__nmc_env_formula: }
 \cs_gset_protected:Npn \__nmc_solve_vv_digest:N #1
   { 
     \__nmc_plus_vv_digest:NNNn #1 
@@ -325,7 +333,7 @@
       }
     \bool_if:NF \g__nmc_error_bool
       { 
-        \__nmc_num_format:nNnN { \l__nmc_solvea_fp } \l_nmc_result_tl
+        \__nmc_num_format:nNnN { \l__nmc_solvea_fp } \l__nmc_result_tl
             { \l__nmc_round_int } \l__nmc_sci_num_out_bool
         \tl_gset:Nx \g__nmc_info_solve_tl 
           { \clist_use:Nn \g__nmc_info_solve_tl { + } }
@@ -332,8 +340,42 @@
         \tl_set_eq:NN \l__nmc_fp_expr_tl \l__nmc_fp_exprn_tl
       }
     \int_if_zero:nF \l__nmc_dbg_int
-      { \__nmc_dbg_get_data: }  
+      { 
+        \__nmc_dbg_get_data: 
+        \__nmc_if_mod_zero:nnT \l__nmc_dbg_int { 11 }
+          { \__nmc_solve_display: }
+      }  
   }
+\cs_gset_protected:Npn \__nmc_solve_display:
+  { 
+    \tl_gset_eq:NN \g__nmc_reuse_tl \l__nmc_result_tl
+    \bool_if:NTF \l__nmc_num_only_bool
+      { \tl_set_eq:NN \l__nmc_show_tl \l__nmc_result_tl }
+      { 
+        \__nmc_num_format:nNnN { \l__nmc_solvefa_fp } \l_tmpa_tl
+          { \l__nmc_round_int } \l__nmc_sci_num_out_bool
+        \tl_clear:N \l__nmc_display_tl
+        \tl_put_right:Nx \l__nmc_display_tl
+          {
+            \bool_if:NTF \l__nmc_see_formula_bool
+              {
+                \exp_not:o \l__nmc_formula_tl = \l_tmpa_tl
+                \bool_if:nT { \l__nmc_see_vv_bool 
+                    && !\l__nmc_env_rbrace_bool }
+                  { \exp_not:o \l__nmc_vv_tl }
+                \l__nmc_solve_to_tl \l__nmc_solve_var_tl = \l__nmc_result_tl
+              }
+              { \exp_not:o \l__nmc_solve_var_tl = \l__nmc_result_tl }
+          }
+        \__nmc_eval_rdisplay:ooo \l__nmc_display_tl 
+            \l__nmc_punc_tl \l__nmc_math_delimii_tl
+        \__nmc_eval_ldisplay:noo {} 
+            \l__nmc_math_delimi_tl \l__nmc_env_arg_tl
+      }
+    \__nmc_if_mod_zero:nnF { \l__nmc_dbg_int } { 11 }
+      { \l__nmc_show_tl }
+  }
+%%%%%%%%%
 \cs_new_protected:Npn \__nmc_solve_get_trial_vals:
   {
     \prop_get:NVN \l__nmc_subst_var_prop 
@@ -382,7 +424,7 @@
       }
     \bool_if:nF { \g__nmc_error_bool || \l__nmc_solve_stop_bool }
       {
-        \__nmc_error_where:n { $\l_nmc_formula_tl$ }
+        \__nmc_error_where:n { $\l__nmc_formula_tl$ }
         \__nmc_error_what:n 
             { 
               No~zero/extremum~found~after~$\int_use:N 
@@ -408,7 +450,7 @@
     \tl_gset:Nx \g__nmc_info_solve_tl { \int_use:N \l__nmc_solve_steps_int }
     \int_zero:N \l__nmc_solve_steps_int
     \fp_set:Nn \l__nmc_solvec_fp { ( \l__nmc_solvea_fp + \l__nmc_solveb_fp ) / 2 }
-    \__nmc_calc_fn_val:VNnN \l__nmc_solve_var_tl \l_nmc_formula_tl 
+    \__nmc_calc_fn_val:VNnN \l__nmc_solve_var_tl \l__nmc_formula_tl 
         { \l__nmc_solvec_fp } \l__nmc_solvefc_fp 
     \fp_set:Nn \l__nmc_solved_fp { \l__nmc_solvec_fp + 1 }
     \bool_until_do:nn
@@ -440,7 +482,7 @@
             \fp_set:Nn \l__nmc_solvec_fp 
                 { ( \l__nmc_solvea_fp + \l__nmc_solveb_fp ) / 2 }
             \__nmc_calc_fn_val:VNnN \l__nmc_solve_var_tl 
-                \l_nmc_formula_tl { \l__nmc_solvec_fp } \l__nmc_solvefc_fp 
+                \l__nmc_formula_tl { \l__nmc_solvec_fp } \l__nmc_solvefc_fp 
           }
       }
     \bool_set_true:N \l__nmc_solve_stop_bool
@@ -500,11 +542,12 @@
   }
 \cs_new_protected:Npn \__nmc_solve_calc_values:
   {
-    \__nmc_calc_fn_val:VNnN \l__nmc_solve_var_tl \l_nmc_formula_tl 
+    \__nmc_calc_fn_val:VNnN \l__nmc_solve_var_tl \l__nmc_formula_tl 
         { \l__nmc_solvea_fp } \l__nmc_solvefa_fp 
+
     \bool_if:NF \g__nmc_error_bool
       {
-        \__nmc_calc_fn_val:VNnN \l__nmc_solve_var_tl \l_nmc_formula_tl 
+        \__nmc_calc_fn_val:VNnN \l__nmc_solve_var_tl \l__nmc_formula_tl 
             { \l__nmc_solveb_fp } \l__nmc_solvefb_fp 
       }
     \bool_if:NF \g__nmc_error_bool
@@ -515,41 +558,6 @@
           { \fp_eval:n { sign(\l__nmc_solvefa_fp) sign(\l__nmc_solvefb_fp) } }
       }
   }
-\cs_gset_protected:Npn \__nmc_solve_display:
-  { 
-    \tl_gset_eq:NN \g__nmc_reuse_tl \l_nmc_result_tl
-    \bool_if:NF \l__nmc_num_only_bool
-      { 
-        \__nmc_num_format:nNnN { \l__nmc_solvefa_fp } \l_tmpa_tl
-             { \l__nmc_round_int } \l__nmc_sci_num_out_bool
-        \tl_set:Nx \l_nmc_result_tl
-            { 
-              \exp_not:o \l__nmc_math_delimi_tl
-              \bool_if:NTF \l__nmc_wraps_math_bool
-                { 
-                  \exp_not:o \l_nmc_formula_tl = \l_tmpa_tl
-                  \bool_if:NTF \l__nmc_vv_multline_bool
-                    { \exp_not:o \l__nmc_vv_display_tl }
-                    { 
-                     \mathchoice{ \exp_not:o \l__nmc_vv_display_tl }
-                          { \exp_not:o \l__nmc_vv_inline_tl }{}{} 
-                    }
-                  \rightarrow \exp_not:N \quad 
-                  \l__nmc_solve_var_tl = \l_nmc_result_tl
-                }
-                {                
-                  \l__nmc_solve_var_tl = \l_nmc_result_tl 
-                  \mathchoice{ \exp_not:o \l__nmc_vv_display_tl }
-                      { \exp_not:o \l__nmc_vv_inline_tl }{}{}
-                }
-              \l__nmc_punc_tl
-              \exp_not:o \l__nmc_math_delimii_tl
-            }
-        \int_if_zero:nT { \l__nmc_solve_reuse_int }
-          { \tl_gset_eq:NN \g__nmc_reuse_tl \l_nmc_result_tl }
-      }
-    \l_nmc_result_tl
-  }
 %--------------------------------------
 % \nmcRecur
 \bool_new:N \l__nmc_recur_ellipsis_bool
@@ -570,12 +578,13 @@
 
 \nmc_define:NnN \nmcRecur { recur } \recur
 
-\cs_gset_protected:Npn \__nmc_recur_initialize:
+\cs_set_protected:Npn \__nmc_recur_initialize:
   {
-    \tl_set:Nn \l__nmc_dbg_idiii_tl { relation }
+    \tl_set:Nn \l__nmc_dbg_idii_tl { relation }
     \tl_set:Nn \l__nmc_dbg_idv_tl { stored }
+    \__nmc_env_initialize:
   }
-\cs_gset_protected:Npn \__nmc_recur_settings_digest:
+\cs_set_protected:Npn \__nmc_recur_settings:
   { 
     \bool_set_false:N \l__nmc_allow_TF_out_bool
     \int_set:Nn \l__nmc_recur_total_int 
@@ -588,18 +597,64 @@
              { \l__nmc_recur_total_int - \l__nmc_recur_last_int } } }
     \int_if_zero:nT { \l__nmc_recur_first_int }
       { \int_decr:N \l__nmc_recur_first_int }
+   \__nmc_env_settings:
   }
-\cs_gset_protected:Npn \__nmc_recur_vv_digest:N #1
-  { % #1 = reversed vv clist
+\cs_set_protected:Npn \__nmc_recur_formula: 
+  { 
+    \__nmc_env_formula: 
+    \tl_set_eq:NN \l__nmc_formula_dup_tl \l__nmc_formula_tl
+  }
+\cs_set_protected:Npn \__nmc_recur_vv_digest:N #1
+  { % #1 = reversed vv seq
     \bool_set_true:N \l__nmc_multitok_bool
     \__nmc_recur_elements:
     \__nmc_recur_vars_change:N #1
-    \__nmc_vv_digest:N #1
+    \__nmc_vv_digest:N #1 
     \__nmc_recur_vv_post:
-    \tl_set_eq:NN \l_nmc_formula_tl \l__nmc_recurrence_tl
+    \tl_set_eq:NN \l__nmc_formula_tl \l__nmc_recurrence_tl
     \int_if_zero:nF \l__nmc_dbg_int
       { \__nmc_dbg_get_data: }
   }
+\cs_set_protected:Npn \__nmc_recur_process:
+  { % store initial vals; generate later vals
+    \__nmc_recur_store_ini:
+    \__nmc_error_where:n { recurrence~formula }
+    \__nmc_recur_generate:
+    \seq_get_right:NN \l__nmc_recur_result_seq \l__nmc_result_tl
+    \tl_set_eq:NN \l__nmc_fp_expr_tl \l__nmc_fp_exprn_tl
+  }
+\cs_set_protected:Npn \__nmc_recur_display:
+  { 
+    \tl_clear:N \l__nmc_show_tl
+    \bool_if:NTF \l__nmc_num_only_bool
+      {
+        \tl_gset_eq:NN \g__nmc_reuse_tl \l__nmc_result_tl
+        \l__nmc_result_tl
+      }
+      { 
+        \seq_clear:N \l_tmpa_seq
+        \seq_clear:N \l_tmpb_seq
+        \seq_clear:N \l_tmpc_seq
+        \__nmc_recur_result:NN \l_tmpa_seq \l_tmpb_seq
+        \tl_clear:N \l__nmc_display_tl
+        \tl_set:Nx \l__nmc_display_tl
+          {
+            \bool_if:NT \l__nmc_see_formula_bool
+              {
+                \exp_not:o \l__nmc_formula_dup_tl
+                \exp_not:o \l__nmc_vv_tl
+                \l__nmc_recur_to_tl
+              }
+            \seq_use:Nn \l_tmpa_seq { \c__nmc_vv_delim_tl\ } 
+          }
+        \__nmc_plus_reuse:N \l_tmpb_seq
+        \__nmc_eval_rdisplay:ooo \l__nmc_display_tl 
+            \l__nmc_punc_tl \l__nmc_math_delimii_tl
+        \__nmc_eval_ldisplay:noo {} 
+            \l__nmc_math_delimi_tl \l__nmc_env_arg_tl
+        \l__nmc_show_tl
+      }
+  }
 % \l__nmc_recurrence_tl, \l__nmc_recur_base_var_tl,
 % \l__nmc_recur_subscr_var_tl, \l__nmc_recur_subscr_val_int
 \cs_new_protected:Npn \__nmc_recur_elements:
@@ -606,7 +661,7 @@
   {
     \tl_clear:N \l_tmpa_tl
     \bool_set_false:N \l_tmpa_bool
-    \tl_map_inline:Nn \l_nmc_formula_tl
+    \tl_map_inline:Nn \l__nmc_formula_tl
       {
         \bool_if:NTF \l_tmpa_bool
           { 
@@ -623,7 +678,7 @@
           }
       }
     \__nmc_recur_parse_subscr:N \l_tmpa_tl
-    \exp_last_unbraced:NV\__nmc_split_eq:w \l_nmc_formula_tl \q_stop
+    \exp_last_unbraced:NV\__nmc_split_eq:w \l__nmc_formula_tl \q_stop
     \tl_set:NV \l__nmc_recurrence_tl \l__nmc_eq_val_tl
      \tl_set_rescan:Nno \l__nmc_recurrence_tl { \ExplSyntaxOn } \l__nmc_recurrence_tl
   }
@@ -648,15 +703,19 @@
       }
     \int_set:Nn \l__nmc_recur_subscr_val_int { \l_tmpb_tl }
   }
+\clist_new:N \l__nmca_clist
 \cs_new_protected:Npn \__nmc_recur_vars_change:N #1
   { % f_{1} etc ==> f_{n-1} etc in #1 (reverse order vv-list)
-    \clist_reverse:N #1
+    \seq_reverse:N #1
+    \clist_set:Nx \l__nmca_clist { \seq_use:Nn #1 {,} }
     \int_zero:N \l__nmc_recur_order_int
     \clist_clear:N \l_tmpa_clist % --> \l__nmc_recur_vars_seq
     \clist_clear:N \l_tmpb_clist % --> #1
     \int_set:Nn \l_tmpb_int { \l__nmc_recur_subscr_val_int - 1 }
-    \tl_set_rescan:Nno #1 { \ExplSyntaxOn } #1 
-    \clist_map_inline:Nn #1
+    % \tl_set_rescan:Nno #1 { \ExplSyntaxOn } #1 
+    % \clist_map_inline:Nn #1
+    \tl_set_rescan:Nno \l__nmca_clist { \ExplSyntaxOn } \l__nmca_clist 
+    \clist_map_inline:Nn \l__nmca_clist
       {
         \seq_set_split:Nnn \l_tmpa_seq {_} { ##1 }
         \seq_pop:NN \l_tmpa_seq \l_tmpa_tl
@@ -701,30 +760,23 @@
     \int_set:Nn \l__nmc_recur_var_int 
         { \l__nmc_recur_subscr_ini_int + \l__nmc_recur_order_int
             - \l__nmc_recur_subscr_val_int  }
-    \clist_set_eq:NN #1 \l_tmpb_clist
+    \clist_set_eq:NN \l__nmca_clist \l_tmpb_clist
+    \seq_set_from_clist:NN #1  \l__nmca_clist
     \clist_put_left:NV \l_tmpa_clist \l__nmc_recur_subscr_var_tl
-    \clist_concat:NNN \l_nmc_formula_tl \l__nmc_recurrence_tl \l_tmpa_clist
+    \clist_concat:NNN \l__nmc_formula_tl \l__nmc_recurrence_tl \l_tmpa_clist
   }
 \cs_new_protected:Npn \__nmc_recur_vv_post:
-  {
-    \clist_pop:NN \l_nmc_formula_tl \l__nmc_recurrence_tl
-    \clist_pop:NN \l_nmc_formula_tl \l__nmc_recur_subscr_var_tl
+  { 
+    \clist_pop:NN \l__nmc_formula_tl \l__nmc_recurrence_tl
+    \clist_pop:NN \l__nmc_formula_tl \l__nmc_recur_subscr_var_tl
     \tl_set:Nx \l_tmpa_tl { \int_use:N \l__nmc_recur_var_int }
     \__nmc_vv_record:NVN \l__nmc_recur_subscr_var_tl \l_tmpa_tl \c_empty_prop
     \tl_set_eq:NN \l_tmpa_tl \l__nmc_recur_subscr_var_tl
     \tl_put_right:Nn \l_tmpa_tl { =0 } % formal value
     \seq_put_left:NV \l__nmc_calc_fn_seq \l_tmpa_tl
-    \seq_set_from_clist:NN \l__nmc_recur_vars_seq \l_nmc_formula_tl
+    \seq_set_from_clist:NN \l__nmc_recur_vars_seq \l__nmc_formula_tl
   }
 %%%%%%%%%%%%%%%%%%%
-\cs_gset_protected:Npn \__nmc_recur_process:
-  { % store initial vals; generate later vals
-    \__nmc_recur_store_ini:
-    \__nmc_error_where:n { recurrence~formula }
-    \__nmc_recur_generate:
-    \seq_get_right:NN \l__nmc_recur_result_seq \l_nmc_result_tl
-    \tl_set_eq:NN \l__nmc_fp_expr_tl \l__nmc_fp_exprn_tl
-  }
 \cs_new_protected:Npn \__nmc_recur_store_ini:
   {
     \seq_set_eq:NN \l_tmpa_seq \l__nmc_recur_vars_seq
@@ -740,7 +792,7 @@
       }
   }
 \cs_new_protected:Npn \__nmc_recur_generate:
-  {
+  { 
     \prop_get:NVN \l__nmc_subst_var_prop 
         \l__nmc_recur_subscr_var_tl \l__nmc_subst_tl
     \int_set:Nn \l__nmc_recur_var_int { \l__nmc_subst_tl }
@@ -755,13 +807,13 @@
 \cs_new_protected:Npn \__nmc_recur_generate_loop:n #1
   { 
     \bool_if:NF \g__nmc_error_bool
-      { % calc. the next term
+      { % calc. next
         \fp_set:Nn \l_tmpa_fp { #1 }
         \__nmc_calc_fn_val:VNnN \l__nmc_recur_subscr_var_tl
             \l__nmc_recurrence_tl { \l_tmpa_fp } \l__nmc_recur_result_fp
       }
     \bool_if:NF \g__nmc_error_bool
-      { % store the result
+      { % store result
         \__nmc_num_format:nNnN { \l__nmc_recur_result_fp } 
             \l_tmpa_tl { \l__nmc_round_int } \l__nmc_sci_num_out_bool
         \seq_put_right:NV \l__nmc_recur_result_seq \l_tmpa_tl
@@ -783,37 +835,6 @@
               { \fp_use:N \l__nmc_recur_result_fp }
       }
   }
-\cs_gset_protected:Npn \__nmc_recur_display:
-  { 
-    \bool_if:NTF \l__nmc_num_only_bool
-      { \tl_gset_eq:NN \g__nmc_reuse_tl \l_nmc_result_tl }
-      { 
-        \seq_clear:N \l_tmpa_seq
-        \seq_clear:N \l_tmpb_seq
-        \seq_clear:N \l_tmpc_seq
-        \__nmc_recur_result:NN \l_tmpa_seq \l_tmpb_seq
-        \tl_set:Nx \l_nmc_result_tl
-            { 
-              \exp_not:o \l__nmc_math_delimi_tl
-              \bool_if:NT \l__nmc_wraps_math_bool
-                { 
-                  \exp_not:o \l__nmc_formula_dup_tl
-                  \bool_if:NTF \l__nmc_vv_multline_bool
-                    { \exp_not:o \l__nmc_vv_display_tl }
-                    { 
-                      \mathchoice{ \exp_not:o \l__nmc_vv_display_tl }
-                          { \exp_not:o \l__nmc_vv_inline_tl }{}{} 
-                    }
-                  \rightarrow \exp_not:N \quad 
-                } 
-              \seq_use:Nn \l_tmpa_seq { ,\ }
-              \l__nmc_punc_tl
-              \exp_not:o \l__nmc_math_delimii_tl
-            }
-        \__nmc_plus_reuse:nNN { \l__nmc_recur_reuse_int } \l_tmpc_seq \l_tmpb_seq 
-      }
-    \l_nmc_result_tl
-  }
 \cs_new_protected:Npn \__nmc_recur_result:NN #1#2
   {
     \int_zero:N \l_tmpa_int
@@ -838,79 +859,45 @@
         \int_incr:N \l_tmpa_int
       }
     \bool_if:NT \l__nmc_recur_ellipsis_bool
-      { \seq_put_right:Nn #1{ \ldots } }
+      { \seq_put_right:Nn #1 { \ldots } }
   }
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\keys_define:nn { numerica-plus }
-  { 
-    iter-do             .int_set:N = \l__nmc_iter_total_int,
-    iter-see-last       .int_set:N = \l__nmc_iter_view_int,
-    iter-max-iterations .int_set:N = \l__nmc_iter_max_int,
-    iter-extra-rounding .int_set:N = \l__nmc_iter_extra_int,
-    iter-reuse          .int_set:N = \l__nmc_iter_reuse_int,
-
-    iter-do             .default:n = 5,
-    iter-see-last       .default:n = 4,
-    iter-max-iterations .default:n = 100,
-    iter-extra-rounding .default:n = 0,
-    iter-reuse          .default:n = 0,
-%
-    solve-max-steps      .int_set:N = \l__nmc_solve_max_int,
-    solve-extra-rounding .int_set:N = \l__nmc_solve_extra_int,
-    solve-first-step      .tl_set:N = \l__nmc_solve_step_tl,
-    solve-reuse          .int_set:N = \l__nmc_solve_reuse_int,
-
-    solve-max-steps      .default:n = 100,
-    solve-extra-rounding .default:n = 0,
-    solve-first-step     .default:n = 1,
-    solve-reuse          .default:n = 0,
-%
-    recur-do         .int_set:N = \l__nmc_recur_total_int,
-    recur-see-first  .int_set:N = \l__nmc_recur_first_int,
-    recur-see-last   .int_set:N = \l__nmc_recur_last_int,
-    recur-reuse      .int_set:N = \l__nmc_recur_reuse_int,
-    
-    recur-do         .default:n = 7,
-    recur-see-first  .default:n = 3,
-    recur-see-last   .default:n = 2,
-    recur-reuse      .default:n = 0
-  }
-\keys_set_known:nn { numerica-plus } 
-  { 
-    iter-do,iter-see-last,iter-max-iterations,
-    iter-extra-rounding,iter-reuse,
-    solve-variable,solve-first-step,solve-max-steps,
-    solve-extra-rounding,solve-reuse,
-    recur-do,recur-see-first,recur-see-last,recur-reuse
-  }
 \keys_define:nn { numerica/iter }
   {
+    view     .code:n = \__nmc_dbg_int:nn { 1 } { 2*3*5*7*11 },
     var    .tl_set:N = \l__nmc_iter_var_tl,
     +     .int_set:N = \l__nmc_iter_extra_int,
+    +     .initial:n = 0,
     max   .int_set:N = \l__nmc_iter_max_int,
+    max   .initial:n = 100,
     do    .int_set:N = \l__nmc_iter_total_int,
+    do    .initial:n = 5,
     see   .int_set:N = \l__nmc_iter_view_int,
-    reuse .int_set:N = \l__nmc_iter_reuse_int
+    see   .initial:n = 4
   }
 \keys_define:nn { numerica/solve }
   {
-    var    .tl_set:N = \l__nmc_solve_var_tl,
-    +     .int_set:N = \l__nmc_solve_extra_int,
-    max   .int_set:N = \l__nmc_solve_max_int,
-    dvar   .tl_set:N = \l__nmc_solve_step_tl,
-    reuse .int_set:N = \l__nmc_solve_reuse_int
+    view      .code:n = \__nmc_dbg_int:nn { 1 } { 2*3*5*7*11 },
+    var     .tl_set:N = \l__nmc_solve_var_tl,
+    +      .int_set:N = \l__nmc_solve_extra_int,
+    +      .initial:n = 0,
+    max    .int_set:N = \l__nmc_solve_max_int,
+    max    .initial:n = 100,
+    dvar    .tl_set:N = \l__nmc_solve_step_tl,
+    dvar   .initial:n = 1,
+    to   .tl_set:N = \l__nmc_solve_to_tl,
+    to  .initial:n = {\,\to\,} ,
   }
 \keys_define:nn { numerica/recur }
   {
-    do    .int_set:N = \l__nmc_recur_total_int,
-    see1  .int_set:N = \l__nmc_recur_first_int,
-    see2  .int_set:N = \l__nmc_recur_last_int,
-    ...      .code:n = \bool_set_true:N \l__nmc_recur_ellipsis_bool,
-    reuse .int_set:N = \l__nmc_recur_reuse_int
+    do   .int_set:N = \l__nmc_recur_total_int,
+    do   .initial:n = 7,
+    see1 .int_set:N = \l__nmc_recur_first_int,
+    see1 .initial:n = 3,
+    see2 .int_set:N = \l__nmc_recur_last_int,
+    see2 .initial:n = 2,
+    ...     .code:n = \bool_set_true:N \l__nmc_recur_ellipsis_bool,
+    to  .tl_set:N = \l__nmc_recur_to_tl,
+    to .initial:n = {\,\to\,}
   }
-\file_if_exist:nT { numerica-plus.cfg }
-  { 
-    \file_get:nnN { numerica-plus.cfg } {} \l_tmpa_tl
-    \exp_args:NnV \keys_set_known:nn { numerica-plus } \l_tmpa_tl
-  }
 % end of `numerica-plus.sty'.



More information about the tex-live-commits mailing list.