summaryrefslogtreecommitdiff
path: root/Master
diff options
context:
space:
mode:
Diffstat (limited to 'Master')
-rw-r--r--Master/texmf-dist/doc/generic/xint/CHANGES.html16
-rw-r--r--Master/texmf-dist/doc/generic/xint/CHANGES.pdfbin59434 -> 59953 bytes
-rw-r--r--Master/texmf-dist/doc/generic/xint/README17
-rw-r--r--Master/texmf-dist/doc/generic/xint/README.html20
-rw-r--r--Master/texmf-dist/doc/generic/xint/README.pdfbin28744 -> 28483 bytes
-rw-r--r--Master/texmf-dist/doc/generic/xint/sourcexint.pdfbin522619 -> 524210 bytes
-rw-r--r--Master/texmf-dist/doc/generic/xint/xint.pdfbin672011 -> 675200 bytes
-rw-r--r--Master/texmf-dist/source/generic/xint/Makefile2
-rw-r--r--Master/texmf-dist/source/generic/xint/xint.dtx514
-rw-r--r--Master/texmf-dist/source/generic/xint/xint.ins2
-rw-r--r--Master/texmf-dist/tex/generic/xint/xint.sty4
-rw-r--r--Master/texmf-dist/tex/generic/xint/xintbinhex.sty4
-rw-r--r--Master/texmf-dist/tex/generic/xint/xintcfrac.sty4
-rw-r--r--Master/texmf-dist/tex/generic/xint/xintcore.sty4
-rw-r--r--Master/texmf-dist/tex/generic/xint/xintexpr.sty41
-rw-r--r--Master/texmf-dist/tex/generic/xint/xintfrac.sty4
-rw-r--r--Master/texmf-dist/tex/generic/xint/xintgcd.sty4
-rw-r--r--Master/texmf-dist/tex/generic/xint/xintkernel.sty4
-rw-r--r--Master/texmf-dist/tex/generic/xint/xintseries.sty4
-rw-r--r--Master/texmf-dist/tex/generic/xint/xinttools.sty83
20 files changed, 412 insertions, 315 deletions
diff --git a/Master/texmf-dist/doc/generic/xint/CHANGES.html b/Master/texmf-dist/doc/generic/xint/CHANGES.html
index 60167b904dc..9072d7f4032 100644
--- a/Master/texmf-dist/doc/generic/xint/CHANGES.html
+++ b/Master/texmf-dist/doc/generic/xint/CHANGES.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta name="generator" content="pandoc" />
- <meta name="author" content="xint v1.1b" />
+ <meta name="author" content="xint v1.1c" />
<title>CHANGE LOG</title>
<style type="text/css">code{white-space: pre;}</style>
<style type="text/css">
@@ -17,11 +17,12 @@
<body>
<div id="header">
<h1 class="title">CHANGE LOG</h1>
-<h2 class="author">xint v1.1b</h2>
-<h3 class="date">2015/08/31 (doc 2015/08/31)</h3>
+<h2 class="author">xint v1.1c</h2>
+<h3 class="date">2015/09/12</h3>
</div>
<div id="TOC">
<ul>
+<li><a href="#c-20150912"><code>1.1c (2015/09/12)</code></a></li>
<li><a href="#b-20150831"><code>1.1b (2015/08/31)</code></a></li>
<li><a href="#a-20141107"><code>1.1a (2014/11/07)</code></a></li>
<li><a href="#section"><code>1.1 (2014/10/28)</code></a></li>
@@ -51,10 +52,15 @@
<li><a href="#section-7"><code>1.0 (2013/03/28)</code></a></li>
</ul>
</div>
-<pre><code>Source: xint.dtx (v1.1b 2015/08/31, doc of 2015/08/31)
+<pre><code>Source: xint.dtx v1.1c 2015/09/12
Author: Jean-Francois Burnol
Info: Expandable operations on big integers, decimals, fractions
-License: LPPL 1.3c or later</code></pre>
+License: LPPL 1.3c</code></pre>
+<h2 id="c-20150912"><code>1.1c (2015/09/12)</code></h2>
+<ul>
+<li><p>bugfix regarding macro <code>\xintAssign</code> from <strong>xinttools</strong> which did not behave correctly in some circumstances (if there was a space before <code>\to</code>, in particular).</p></li>
+<li><p>very minor code improvements, and correction of some issues regarding the source code formatting in <code>sourcexint.pdf</code>, and minor issues in <code>Makefile.mk</code>.</p></li>
+</ul>
<h2 id="b-20150831"><code>1.1b (2015/08/31)</code></h2>
<ul>
<li><p>bugfix: some macros needed by the integer division routine from <strong>xintcore</strong> had been left in <strong>xint.sty</strong> since release <code>1.1</code>. This for example broke the <code>\xintGCD</code> from <strong>xintgcd</strong> if package <strong>xint</strong> was not loaded.</p></li>
diff --git a/Master/texmf-dist/doc/generic/xint/CHANGES.pdf b/Master/texmf-dist/doc/generic/xint/CHANGES.pdf
index 966e9055f3c..5300060c30f 100644
--- a/Master/texmf-dist/doc/generic/xint/CHANGES.pdf
+++ b/Master/texmf-dist/doc/generic/xint/CHANGES.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/generic/xint/README b/Master/texmf-dist/doc/generic/xint/README
index 59418b762cd..c821eb25d89 100644
--- a/Master/texmf-dist/doc/generic/xint/README
+++ b/Master/texmf-dist/doc/generic/xint/README
@@ -1,7 +1,7 @@
- Source: xint.dtx (v1.1b 2015/08/31, doc of 2015/08/31)
+ Source: xint.dtx v1.1c 2015/09/12
Author: Jean-Francois Burnol
Info: Expandable operations on big integers, decimals, fractions
- License: LPPL 1.3c or later
+ License: LPPL 1.3c
This README is also available as README.pdf and README.html.
@@ -31,7 +31,7 @@ With TeX
One does for example:
- \input xintexpr.sty\relax
+ \input xintexpr.sty
Again, all dependencies are handled automatically. The packages may be
loaded in any catcode context such that letters, digits, \ and % have
@@ -88,7 +88,8 @@ files as well as xint.tds.zip. It is for GNU/Linux-like (inc. Mac OS X)
systems, with a teTeX like installation such as TeXLive. Furthermore the
Pandoc software is required.
-1. obtain xint.dtx and Makefile from http://www.ctan.org/pkg/xint.
+1. obtain xint.dtx and Makefile from
+ http://www.ctan.org/tex-archive/macros/generic/xint.
2. put them in an otherwise empty working repertory, run make or
equivalently make help for further instructions.
@@ -150,15 +151,11 @@ LICENSE
Copyright (C) 2013-2015 by Jean-Francois Burnol
This Work may be distributed and/or modified under the conditions of the
-LaTeX Project Public License, either version 1.3c of this license or (at
-your option) any later version. This version of this license is in
+LaTeX Project Public License version 1.3c. This version of this license
+is in
http://www.latex-project.org/lppl/lppl-1-3c.txt
-and the latest version of this license is in
-
- http://www.latex-project.org/lppl.txt
-
and version 1.3 or later is part of all distributions of LaTeX version
2005/12/01 or later.
diff --git a/Master/texmf-dist/doc/generic/xint/README.html b/Master/texmf-dist/doc/generic/xint/README.html
index 0034daef4b0..ee081faeb54 100644
--- a/Master/texmf-dist/doc/generic/xint/README.html
+++ b/Master/texmf-dist/doc/generic/xint/README.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta name="generator" content="pandoc" />
- <meta name="author" content="xint v1.1b" />
+ <meta name="author" content="xint v1.1c" />
<title>README</title>
<style type="text/css">code{white-space: pre;}</style>
<style type="text/css">
@@ -17,8 +17,8 @@
<body>
<div id="header">
<h1 class="title">README</h1>
-<h2 class="author">xint v1.1b</h2>
-<h3 class="date">2015/08/31 (doc 2015/08/31)</h3>
+<h2 class="author">xint v1.1c</h2>
+<h3 class="date">2015/09/12</h3>
</div>
<div id="TOC">
<ul>
@@ -35,10 +35,10 @@
<li><a href="#license">License</a></li>
</ul>
</div>
-<pre><code>Source: xint.dtx (v1.1b 2015/08/31, doc of 2015/08/31)
+<pre><code>Source: xint.dtx v1.1c 2015/09/12
Author: Jean-Francois Burnol
Info: Expandable operations on big integers, decimals, fractions
-License: LPPL 1.3c or later</code></pre>
+License: LPPL 1.3c</code></pre>
<p>This README is also available as README.pdf and README.html.</p>
<p>Change log is in CHANGES.pdf and CHANGES.html.</p>
<h1 id="usage">Usage</h1>
@@ -49,7 +49,7 @@ License: LPPL 1.3c or later</code></pre>
<p>Further packages: <code>xintbinhex</code>, <code>xintgcd</code>, <code>xintseries</code> and <code>xintcfrac</code>. All dependencies are handled automatically. For example <code>xintexpr</code> automatically loads <code>xintfrac</code> which itself loads <code>xint</code>. Package <code>xintcore</code> is the subset of <code>xint</code> providing only the five operations on big integers: <code>\xintiiAdd</code>, <code>\xintiiMul</code>, ... There is also <code>xinttools</code> which is a separate package providing, among others, expandable and non-expandable loops such as <code>\xintFor</code>.</p>
<h2 id="with-tex">With TeX</h2>
<p>One does for example:</p>
-<pre><code>\input xintexpr.sty\relax</code></pre>
+<pre><code>\input xintexpr.sty</code></pre>
<p>Again, all dependencies are handled automatically. The packages may be loaded in any catcode context such that letters, digits, <code>\</code> and <code>%</code> have their standard catcodes.</p>
<p><code>xintcore.sty</code> and <code>xinttools.sty</code> both import <code>xintkernel.sty</code> which has the catcode handler and package identifier and defines a few utilities such as <code>\oodef</code> or <code>\xint_dothis/\xint_orthat</code>.</p>
<h1 id="installation">Installation</h1>
@@ -74,7 +74,7 @@ sudo texhash /usr/local/texlive/texmf-local</code></pre></li>
<h2 id="method-c-manual-installation-using-makefile-and-xint.dtx">Method C: manual installation using <code>Makefile</code> and <code>xint.dtx</code></h2>
<p>The Makefile automatizes rebuilding from <code>xint.dtx</code> all documentation files as well as <code>xint.tds.zip</code>. It is for GNU/Linux-like (inc. Mac OS X) systems, with a teTeX like installation such as TeXLive. Furthermore the <a href="http://johnmacfarlane.net/pandoc/">Pandoc</a> software is required.</p>
<ol style="list-style-type: decimal">
-<li><p>obtain <code>xint.dtx</code> and <code>Makefile</code> from <a href="http://www.ctan.org/pkg/xint" class="uri">http://www.ctan.org/pkg/xint</a>.</p></li>
+<li><p>obtain <code>xint.dtx</code> and <code>Makefile</code> from <a href="http://www.ctan.org/tex-archive/macros/generic/xint" class="uri">http://www.ctan.org/tex-archive/macros/generic/xint</a>.</p></li>
<li><p>put them in an otherwise empty working repertory, run <code>make</code> or equivalently <code>make help</code> for further instructions.</p></li>
</ol>
<h2 id="method-d-installation-starting-with-only-xint.dtx">Method D: installation starting with only <code>xint.dtx</code></h2>
@@ -111,14 +111,10 @@ sudo texhash /usr/local/texlive/texmf-local</code></pre></li>
<h1 id="license">License</h1>
<div class="mono">
<p>Copyright (C) 2013-2015 by Jean-Francois Burnol</p>
-<p>This Work may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.3c of this license or (at your option) any later version. This version of this license is in</p>
+<p>This Work may be distributed and/or modified under the conditions of the LaTeX Project Public License version 1.3c. This version of this license is in</p>
<blockquote>
<p><a href="http://www.latex-project.org/lppl/lppl-1-3c.txt" class="uri">http://www.latex-project.org/lppl/lppl-1-3c.txt</a></p>
</blockquote>
-<p>and the latest version of this license is in</p>
-<blockquote>
-<p><a href="http://www.latex-project.org/lppl.txt" class="uri">http://www.latex-project.org/lppl.txt</a></p>
-</blockquote>
<p>and version 1.3 or later is part of all distributions of LaTeX version 2005/12/01 or later.</p>
<p>This Work has the LPPL maintenance status <code>author-maintained</code>.</p>
<p>The Author of this Work is Jean-Francois Burnol.</p>
diff --git a/Master/texmf-dist/doc/generic/xint/README.pdf b/Master/texmf-dist/doc/generic/xint/README.pdf
index 2efbcf3ca87..802d564416f 100644
--- a/Master/texmf-dist/doc/generic/xint/README.pdf
+++ b/Master/texmf-dist/doc/generic/xint/README.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/generic/xint/sourcexint.pdf b/Master/texmf-dist/doc/generic/xint/sourcexint.pdf
index 542d590bb90..a5e08f45990 100644
--- a/Master/texmf-dist/doc/generic/xint/sourcexint.pdf
+++ b/Master/texmf-dist/doc/generic/xint/sourcexint.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/generic/xint/xint.pdf b/Master/texmf-dist/doc/generic/xint/xint.pdf
index 3531128c122..71743b5919c 100644
--- a/Master/texmf-dist/doc/generic/xint/xint.pdf
+++ b/Master/texmf-dist/doc/generic/xint/xint.pdf
Binary files differ
diff --git a/Master/texmf-dist/source/generic/xint/Makefile b/Master/texmf-dist/source/generic/xint/Makefile
index cc38697b4ab..b1ba01eb889 100644
--- a/Master/texmf-dist/source/generic/xint/Makefile
+++ b/Master/texmf-dist/source/generic/xint/Makefile
@@ -1,6 +1,6 @@
# Makefile for compilation of the complete xint
# documentation, packages, and installation.
-# (C) 2014 Jean-Francois Burnol
+# (C) 2014-2015 Jean-Francois Burnol
# distributed under LPPL 1.3c or later at your convenience.
# with this file Makefile and xint.dtx in a working
diff --git a/Master/texmf-dist/source/generic/xint/xint.dtx b/Master/texmf-dist/source/generic/xint/xint.dtx
index eded65650c4..175a6ed9598 100644
--- a/Master/texmf-dist/source/generic/xint/xint.dtx
+++ b/Master/texmf-dist/source/generic/xint/xint.dtx
@@ -1,31 +1,33 @@
% -*- coding: iso-latin-1; time-stamp-format: "%02d-%02m-%:y at %02H:%02M:%02S %Z" -*-
+% N.B.: this dtx file does NOT use \DocInput, only docstrip. The user manual
+% latex source is NOT prefixed with %'s
%<*dtx>
-\def\xintdtxtimestamp {Time-stamp: <31-08-2015 at 11:53:55 CEST>}
+\def\xintdtxtimestamp {Time-stamp: <12-09-2015 at 23:47:01 CEST>}
%</dtx>
%<*drv>
%% ---------------------------------------------------------------
-\def\xintdocdate {2015/08/31}
-\def\xintbndldate{2015/08/31}
-\def\xintbndlversion {1.1b}
+\def\xintdocdate {2015/09/12}
+\def\xintbndldate{2015/09/12}
+\def\xintbndlversion {1.1c}
%</drv>
%<*dtx>
-\iffalse
+\iffalse % meta-comment
%</dtx>
%<readme>% README
%<changes>% CHANGE LOG
-%<readme|changes>% xint v1.1b
-%<readme|changes>% 2015/08/31 (doc 2015/08/31)
+%<readme|changes>% xint v1.1c
+%<readme|changes>% 2015/09/12
%<*readme|changes>
- Source: xint.dtx (v1.1b 2015/08/31, doc of 2015/08/31)
+ Source: xint.dtx v1.1c 2015/09/12
Author: Jean-Francois Burnol
Info: Expandable operations on big integers, decimals, fractions
- License: LPPL 1.3c or later
+ License: LPPL 1.3c
%</readme|changes>
%<*!readme&!changes&!dohtmlsh&!dopdfsh&!makefile>
%% ---------------------------------------------------------------
-%% The xint bundle v1.1b (2015/08/31; doc: 2015/08/31)
+%% The xint bundle v1.1c 2015/09/12
%% Copyright (C) 2013-2015 by Jean-Francois Burnol
%<xintkernel>%% xintkernel: Paraphernalia for the xint packages
%<xinttools>%% xinttools: Expandable and non-expandable utilities
@@ -65,7 +67,7 @@ among others, expandable and non-expandable loops such as `\xintFor`.
One does for example:
- \input xintexpr.sty\relax
+ \input xintexpr.sty
Again, all dependencies are handled automatically. The packages may
be loaded in any catcode context such that letters, digits, `\` and
@@ -119,7 +121,8 @@ files as well as `xint.tds.zip`. It is for GNU/Linux-like (inc. Mac OS X)
systems, with a teTeX like installation such as TeXLive. Furthermore the
[Pandoc](http://johnmacfarlane.net/pandoc/) software is required.
-1. obtain `xint.dtx` and `Makefile` from <http://www.ctan.org/pkg/xint>.
+1. obtain `xint.dtx` and `Makefile` from
+ <http://www.ctan.org/tex-archive/macros/generic/xint>.
2. put them in an otherwise empty working repertory, run `make` or
equivalently `make help` for further instructions.
@@ -178,16 +181,11 @@ License
Copyright (C) 2013-2015 by Jean-Francois Burnol
This Work may be distributed and/or modified under the
-conditions of the LaTeX Project Public License, either
-version 1.3c of this license or (at your option) any later
-version. This version of this license is in
+conditions of the LaTeX Project Public License version 1.3c.
+This version of this license is in
> <http://www.latex-project.org/lppl/lppl-1-3c.txt>
-and the latest version of this license is in
-
-> <http://www.latex-project.org/lppl.txt>
-
and version 1.3 or later is part of all distributions of
LaTeX version 2005/12/01 or later.
@@ -204,6 +202,18 @@ pandoctpl.latex, doHTMLs.sh, doPDFs.sh, xint.dvi, xint.pdf,
Makefile.mk.</div>
%</readme>--------------------------------------------------------
%<*changes>-------------------------------------------------------
+`1.1c (2015/09/12)`
+----
+
+ - bugfix regarding macro `\xintAssign` from **xinttools** which did
+ not behave correctly in some circumstances (if there was a space
+ before `\to`, in particular).
+
+ - very minor code improvements, and correction of some issues
+ regarding the source code formatting in `sourcexint.pdf`, and
+ minor issues in `Makefile.mk`.
+
+
`1.1b (2015/08/31)`
----
@@ -300,7 +310,7 @@ breaking changes
* neither **xint** nor **xintfrac** load **xinttools**. Only
**xintexpr** does,
-
+
* whenever some portion of code has been revised, often use has been made of
the `\xint_dothis` and `\xint_orthat` pair of macros for expandably
branching,
@@ -410,6 +420,7 @@ breaking changes
external macros. The dollar sign
`$` for place holders is not accepted anymore, only the standard macro
parameter `#`. Not all constructs are compatible with `\xintNewExpr`.
+% $ this docstripped line for emacs buffer fontification issues in doctex-mode
`1.09n (2014/04/01)`
----
@@ -922,7 +933,7 @@ Initial announcement:
# Tested on Mac OS X Mavericks with GNU Make 3.81,
# TeXLive 2014 and Pandoc 1.13.1.
# Either download the master Makefile from
-# http://www.ctan.org/pkg/xint
+# http://www.ctan.org/tex-archive/macros/generic/xint
# or rename the present one as "Makefile".
# Then run "make" or equivalently "make help" to
# get instructions. Compilation of the complete
@@ -1016,7 +1027,7 @@ make uninstalllocal
endef
-.PHONY: help helpless all extract doc PDF HTML clean cleanall\
+.PHONY: help helpless all extract doc PanPDF PanHTML clean cleanall\
installhome uninstallhome installlocal uninstalllocal
# for printf with subst and \n, got it from
@@ -2533,9 +2544,16 @@ This section provides recommended reading on first discovering the package.
\subsection{The packages of the \xintname bundle}
-The components of the \xintname bundle provide macros dedicated to
-\emph{expandable} computations on numbers exceeding the \TeX{} (and \eTeX{})
-limit of \dtt{\number"7FFFFFFF}.
+\begin{framed}
+ The \xintcorename and \xintname packages provide macros dedicated to
+ \emph{expandable} computations on numbers exceeding the \TeX{} (and \eTeX{})
+ limit of \dtt{\number"7FFFFFFF}. With package \xintfracname also decimal
+ numbers (with a dot \dtt{.} as decimal mark), numbers in scientific notation
+ (with a lowercase \dtt{e}), and even fractions (with a forward slash
+ \dtt{/}) are acceptable inputs. Package \xintexprname handles expressions
+ written with the standard infix notations, providing a more convenient
+ interface.
+\end{framed}
The \eTeX{} extensions (dating back to 1999) must be enabled; this is the case
by default in modern distributions, except for the |tex| executable itself
@@ -2622,6 +2640,40 @@ would be needed for a more user-friendly access. I will try to add here a
quick expos\'e of the package abilities, starting from the arithmetic
expressions handled by package \xintexprname.
+There are four expression parsers:
+\begin{itemize}[nosep]
+\item \csbxint{theiiexpr}| ... \relax| does exact computations on integers.
+ The forward slash \dtt{/} does rounded integer division. There are two
+ square root extractors \dtt{sqrt} and \dtt{sqrtr} for truncated, respectively
+ rounded square roots.
+\item \csbxint{thefloatexpr}| ... \relax| does computations with a given
+ precision \dtt{P}, specified via |\xintDigits:=P;|. The default is
+ \dtt{P=16} digits.
+\item \csbxint{theexpr}| ... \relax| handles integers, decimal numbers,
+ numbers in scientific notation and fractions. The algebraic computations are
+ done exactly. Currently, the only transcendental function implemented is
+ |sqrt|. It computes according to the precision specified by |\xintDigits|,
+ or the one given as optional second argument.
+\item \csbxint{theboolexpr}| ... \relax| is like the previous one but converts
+ the result to $1$ if it is not zero. See also the macro
+ \csbxint{ifboolexpr}.
+\end{itemize}
+
+\begin{framed}
+ Here is the (partial) list of recognized symbols: the comma (to separate
+ distinct computations or arguments to a function), the
+ parentheses, infix operators |+|, |-|, |*|, |/|, |^| (or |**|), branching
+ operators |?|, |??|, boolean operators |!|, |&&|, \verb+||+, comparison
+ operators |=| (or |==|), |<|, |>|, |<=|, |>=|, |!=|, factorial post-fix
+ operator |!|, and functions \dtt{num, reduce, abs, sgn, frac, floor, ceil,
+ sqr, sqrt, sqrtr, float, round, trunc, mod, quo, rem, gcd, lcm, max, min,
+ `+`, `*`, not, all, any, xor, if, ifsgn, even, odd, first, last, reversed,
+ bool, togl, add, mul, seq, subs, rseq, rrseq, iter}. And |"| may serve for
+ hexadecimal input (uppercase only; package \xintbinhexname required).
+
+ See also \autoref{ssec:syntax}, as well as \autoref{sec:expr11}.
+\end{framed}
+
Here is an example of a computation:
\begin{everbatim*}
\xinttheexpr (31.567^2 - 21.56*52)^3/13.52^5\relax
@@ -2636,36 +2688,41 @@ floating point computations:
Such ``floating-point'' computations are done by default with 16 digits of
precision (this can be increased via a prior assignment such as
-|\xintDigits:=24;|). \xintname has very few typesetting macros. \LaTeX{} users
+|\xintDigits:=24;|).
+
+\xintname has very few typesetting macros. \LaTeX{} users
can do:
\begin{everbatim*}
\[\xintFrac{\xintthefloatexpr (31.567^2 - 21.56*52)^3/13.52^5\relax }\]
\end{everbatim*}
but it probably is better to use packages dedicated to the typesetting of
-numbers in scientific format (but the output of |\xinttheexpr| will
-typically be in |A/B[N]| format which is unlikely to be understood by your
-favorite number formatting package).
+numbers in scientific format (notice that the display above is not in
+scientific notation). However, when using |\xinttheexpr| rather than
+|\xintthefloatexpr| the result will
+typically be in |A/B[N]| format and this is unlikely to be understood by your
+favorite number formatting package.
The computations are done expandably: you can put them in an |\edef| or a
|\write| or even force complete expansion via |\romannumeral-`0| (if you don't
understand the latter sentence, this doesn't matter; this manual should
contain a description of expandability in \TeX, but this is yet to arise.)
Let's just say that such expandable macros are maximally usable in almost all
-locations of \TeX{} code (but \TeX{} will choke on fractions |A/B| or integers
-with more than ten digits). However, the implementation is also maximally
-complicated as many functionalities of the \TeX{} macro language can not be
-used in the source code of \xintname by the poor author of the package.
-Besides, there is a speed impact, and although algebraic computations with
-numbers of up to one hundred digits are fine, my current implementation of
-multiplication needs of the order of the second for inputs with thousand
-digits. Macro \csbxint{XTrunc} is however able to compute and ouput tens of
-thousands of digits of a decimal expansion in reasonable time, still
-expandably, but it does not expand completely via |\romannumeral-`0|. As the
-|\xinttheexpr..\relax| mechanism only needs this weaker expandability of the
-underlying macros, perhaps some speed gains could be achieved via a complete
-rewrite of all basic macros of the package (but nesting of the macros would
-not be possible; only the |\xintexpr...\relax| and variants interface would be
-functional).
+locations of \TeX{} code. But \TeX{} will choke on
+fractions |A/B| or on integers with more than ten digits, as well as on
+numbers in scientific notation.
+
+The implementation is also maximally complicated as many functionalities of
+the \TeX{} macro language can't be used in the source code of \xintname by the
+masochist author of the package. Besides, there is a speed impact, and
+although algebraic computations with numbers of up to one hundred digits are
+fine, my current implementation of multiplication needs of the order of the
+second for inputs with thousand digits. Macro \csbxint{XTrunc} is however able
+to compute and output tens of thousands of digits of a decimal expansion in
+reasonable time, still expandably, but it does not expand completely via
+|\romannumeral-`0|. As the \csbxint{theexpr}|..\relax| mechanism only needs
+the weaker type of expandability as in \csbxint{XTrunc}, perhaps some speed
+gains could be achieved via a complete rewrite of all basic macros of the
+package.
This brings me to my second point here: the underlying macros are provided by
packages \xintcorename, \xintname for integers and \xintfracname for
@@ -2687,66 +2744,53 @@ This shows that package \xintfracname knows natively how to handle fractions
Again, all computations done by |\xintexpr..\relax| are completely exact.
Thus, very quickly very big numbers are created (and computation times
explode). To compute something like |1.23456789^10000| you will have to opt
-for the floating point version:
+for the floating point version (the braces are to limit the scope of the
+assignment to |\xintDigits|):
\begin{everbatim*}
{\xintDigits:=24; \xintthefloatexpr 1.23456789123456789^123456789\relax }
\end{everbatim*}
(notice the size of the power of ten: this surely largely exceeds your pocket
calculator abilities).
-Braces limit the scope of the assignment to |\xintDigits|. It is also possible
+It is also possible
to do some computer algebra like evaluations (only numerically though):
\begin{everbatim*}
-\xinttheiiexpr add(i^5, i=100..150)\relax
+\xinttheiiexpr add(i^5, i=100..200)\relax\par
+\noindent\xinttheexpr add(x/(x+1), x = 1000..[3]..1020)\relax
\end{everbatim*}
-Further examples are to be found in \autoref{sec:expr11} and \autoref{sec:expr}.
-Make sure to read \autoref{ssec:userinterface}.
+The latter fraction is not in reduced terms, but it would be if we had used
+the \dtt{reduce} function inside the expression.
+
+Make sure to read \autoref{ssec:userinterface}, \autoref{sec:expr11} and
+\autoref{sec:expr}.
\subsection {Changes}
-On |TeXLive| (and presumably |MikTeX|), type |texdoc --list xint| to get
-access to the
-various included documentation files, among them |CHANGES.html| provides
-the cumulative change log since the initial release.
+On |TeXLive| (and presumably |MikTeX|), issue in a console |texdoc --list
+xint| to get access to the documentation files, among them |CHANGES.html|
+provides the detailed cumulative change log since the initial release.
-It is also available on internet via
+It is also available on \href{http://ctan.org}{CTAN} via
\href{http://mirrors.ctan.org/macros/generic/xint/CHANGES.html}{this link}.
+Or, running |etex xint.dtx| in a working repertory will extract a |CHANGES.md|
+file with Markdown syntax.
-Here is a brief review of recent changes:
-
-\subsubsection{\unexpanded{\unexpanded{Changes from |1.1a 2014/11/07| to
-|1.1b 2015/08/31|}}}
-
-This is a bug-fix release to move from |xint.sty| to |xintcore.sty| some
-macros which are used by the division routines included in \xintcorename (as
-package \xintgcdname loads only \xintcorename, this dependency on macros which
-had been left in |xint.sty| broke \csbxint{GCD} for example).
+The most recent major changes came with release |1.1| from |2014/10/28|.
-Slight enhancements to the |Read this first| section of the documentation.
+Since, |xint| saw only minor modifications such as enhancements to the
+documentation and a few bug fixes (|1.1c 2015/09/12| fixed a bug with
+\csbxint{Assign}, |1.1b 2015/08/31| transferred some macros which had been
+left in |xint.sty| and should have been part of |xintcore.sty|, and earlier
+|1.1a 2014/11/07| had corrected a problem with \csbxint{NewExpr}).
-\subsubsection{\unexpanded{\unexpanded{Changes from |1.1 2014/10/28| to
-|1.1a 2014/11/07|}}}
+|1.1 2014/10/28| brought many additions, most of them to package
+\xintexprname, such as for example the evaluation of expressions with dummy
+variables, possibly iteratively, and with allowed nesting. See
+\autoref{sec:expr11} for a description of these new functionalities.
-Numerous small fixes to the documentation.
-
-Bug fix in \csbxint{NewExpr} to get it to correctly accept comma separated
-inputs. A new macro \csbxint{iiSqrtR} computes rounded integer square roots,
-the earlier \csbxint{iiSqrt} computing truncated integer square roots.
-
-Later release of |2015/03/07| only improved a few things in the documentation
-and the package version number was kept unchanged at |1.1a|.
-
-\subsubsection{\unexpanded{\unexpanded{Changes from |1.09n 2014/04/01| to
-|1.1 2014/10/28|}}}
-
-|1.1| brought many additions, most of them to package \xintexprname, for example
-the evaluation of expressions with dummy variables, possibly iteratively,
-and with allowed nesting. See \autoref{sec:expr11} for a description of these
-changes.
-
-Apart from that, the two main other changes were:
+Apart from that, |1.1| brought also two main other changes:
\begin{enumerate}
\item |\xintiiexpr...\relax| now associates |/| with the \emph{rounded}
division (the |//| operator being provided for the \emph{truncated}
@@ -2770,10 +2814,9 @@ only) now also loads only \xintcorename.
\xintname is made available under the
\href{http://www.latex-project.org/lppl/lppl-1-3c.txt}{LaTeX Project Public
- License 1.3c} (or any later version). It is included in the major \TeX\
-distributions, thus there is probably no need for a custom install: just use
-the package manager to update if necessary \xintname to the latest version
-available.
+ License 1.3c}. It is included in the major \TeX\ distributions, thus there
+is probably no need for a custom install: just use the package manager to
+update if necessary \xintname to the latest version available.
After installation, issuing in terminal |texdoc --list xint|, on installations
with a |"texdoc"| or similar utility, will offer the choice to display one of
@@ -2788,7 +2831,8 @@ use the archive file \href{http://www.ctan.org/pkg/xint}{xint.tds.zip},
downloadable from the same location.
The next simplest one is to make use of the |Makefile|, which is also
-downloadable from \href{http://www.ctan.org/pkg/xint}{CTAN}. This is
+downloadable from
+\href{http://www.ctan.org/tex-archive/macros/generic/xint}{CTAN}. This is
for GNU/Linux systems and Mac OS X, and necessitates use of the command
line. If for some reason you have |xint.dtx| but no internet access,
you can recreate |Makefile| as a file with this name and the following
@@ -2804,9 +2848,9 @@ Then run |make| in a working repertory where there is |xint.dtx| and the file
named |Makefile| and having only the two lines above. The |make| will extract
the package files from |xint.dtx| and display some further instructions.
-If you have |xint.dtx|, no internet access and can not use the Makefile method
-: |etex xint.dtx| extracts all files and among them the |README| as a file
-with name |README.md|. Further help and options will be found therein.
+If you have |xint.dtx|, no internet access and can not use the Makefile
+method: |etex xint.dtx| extracts all files and among them the |README| as a
+file with name |README.md|. Further help and options will be found therein.
\subsection{FAQ}
@@ -4613,7 +4657,11 @@ Thus, what |\xintAssign| does is to first apply an
after the other (using |\def|; an optional argument allows to modify the
expansion type, see \autoref{xintAssign} for details), the macros found after
|\to| to correspond to the successive braced contents (or single tokens) located
-prior to |\to|.
+prior to |\to|. In case the first token (after the
+optional parameter within brackets, \emph{cf.} the \csbxint{Assign} detailed
+document) is not an opening brace |{|, |\xintAssign| consider that there is
+ only one macro to define, and that its replacement text should be all that
+ follows until the |\to|.
\xintAssign
\xintBezout{3570902836026}{200467139463}\to\tmpA\tmpB\tmpU\tmpV\tmpD
@@ -7432,12 +7480,15 @@ then to each one of these items.
default, but it now does |\def|. Use the optional parameter |[e]| to force use
of |\edef|.
-\begin{framed}
- It is known that \csa{xintAssign} is very picky and does not want a space
- before the |\to| or will give a surprising result if the material prior to
- |\to| does not start with a brace but does contain brace pairs. Next
- release of \xinttoolsname will presumably modify these ``features''.
-\end{framed}
+{\small \emph{Remark:} since |xinttools 1.1c|, \csa{xintAssign} is less picky
+ and a stray space right before the |\to| causes no surprises, and the
+ successive braced items may be separated by spaces, which will get
+ discarded. In case the contents up to |\to| did not start with a brace a
+ single macro is defined and it will contain the spaces. Contrarily to the
+ earlier version, there is no problem if such contents do contain braces
+ after the first non-brace token.
+\par
+}
% This
% macro uses various \csa{edef}'s, thus is incompatible with expansion-only
@@ -9245,6 +9296,15 @@ scientific notation if possible. Here are the rules:
\end{itemize}
\end{everbatim*}
+There is an important difference between (for example) |\xintFloatPower
+[48]{X}{Y}| and |\xintthefloatexpr [48] X^Y \relax|: in the former case the
+computation is done with |48| digits or precision (but if |X| and |Y| are
+themselves floating point macros of \xintfracname, their respective
+evaluations obey only the precision set optionally in the macros), whereas
+with \csbxint{thefloatexpr} the evaluation of the expression proceeds with
+|\xintDigits| digits of precision, but is rounded to |48| digits (thus this
+example makes sense only if |48<\xintDigits|.)
+
\subsection{\csbh{xintAdd}}\label{xintAdd}
Computes the addition\etype{\Ff\Ff} of two fractions. To keep for integers the
@@ -9677,7 +9737,7 @@ it allows also to be prefixed with |\xintthe|. Furthemore, if |\a| and
|\b| are already defined |\edef\x {\xintexpr \a+\b\relax}| will do the
computation on the spot. Rather than |\edef| one can use |\oodef|.
-\subsection{The syntax}
+\subsection{The syntax}\label{ssec:syntax}
An expression is enclosed between either \csbxint{expr}, or \csbxint{iexpr},
or \csbxint{iiexpr}, or \csbxint{floatexpr}, or \csbxint{boolexpr} and a
@@ -13367,7 +13427,7 @@ $1$ or $-1$.
\fi
\XINT_providespackage
\ProvidesPackage {xintkernel}%
- [2015/08/31 v1.1b Paraphernalia for the xint packages (jfB)]%
+ [2015/09/12 v1.1c Paraphernalia for the xint packages (jfB)]%
% \end{macrocode}
% \subsection{Token management utilities}
% \begin{macrocode}
@@ -13597,7 +13657,7 @@ $1$ or $-1$.
% \begin{macrocode}
\XINT_providespackage
\ProvidesPackage{xinttools}%
- [2015/08/31 v1.1b Expandable and non-expandable utilities (jfB)]%
+ [2015/09/12 v1.1c Expandable and non-expandable utilities (jfB)]%
% \end{macrocode}
% \lverb|\XINT_toks is used in macros such as \xintFor. It is not used
% elsewhere in the xint bundle.|
@@ -13645,22 +13705,20 @@ $1$ or $-1$.
\def\XINT_revwbr_finish_b #1#2#3#4#5#6#7#8\Z
{%
\xint_gob_til_R
- #1\XINT_revwbr_finish_c \xint_c_viii
- #2\XINT_revwbr_finish_c \xint_c_vii
- #3\XINT_revwbr_finish_c \xint_c_vi
- #4\XINT_revwbr_finish_c \xint_c_v
- #5\XINT_revwbr_finish_c \xint_c_iv
- #6\XINT_revwbr_finish_c \xint_c_iii
- #7\XINT_revwbr_finish_c \xint_c_ii
- \R\XINT_revwbr_finish_c \xint_c_i\Z
-}%
-\def\XINT_revwbr_finish_c #1#2\Z
-{%
- \expandafter\expandafter\expandafter
- \space
- \csname xint_gobble_\romannumeral #1\endcsname
+ #1\XINT_revwbr_finish_c \xint_gobble_viii
+ #2\XINT_revwbr_finish_c \xint_gobble_vii
+ #3\XINT_revwbr_finish_c \xint_gobble_vi
+ #4\XINT_revwbr_finish_c \xint_gobble_v
+ #5\XINT_revwbr_finish_c \xint_gobble_iv
+ #6\XINT_revwbr_finish_c \xint_gobble_iii
+ #7\XINT_revwbr_finish_c \xint_gobble_ii
+ \R\XINT_revwbr_finish_c \xint_gobble_i\Z
}%
% \end{macrocode}
+% \lverb|1.1c revisited this old code and improved upon the earlier endings.|
+% \begin{macrocode}
+\edef\XINT_revwbr_finish_c #1#2\Z {\noexpand\expandafter\space #1}%
+% \end{macrocode}
% \subsection{\csh{xintZapFirstSpaces}}
% \lverb|1.09f, written [2013/11/01]. Modified (2014/10/21) for release 1.1 to
% correct the bug in case of an empty argument, or argument containing only
@@ -13815,21 +13873,23 @@ $1$ or $-1$.
{%
\XINT_csvtol_finish_b #3\R,\R,\R,\R,\R,\R,\R,\Z #2{#1}%
}%
+% \end{macrocode}
+% \lverb|1.1c revisits this old code and improves upon the earlier endings.
+% But as the _d.. macros have already nine parameters, I needed the
+% \expandafter and \xint_gob_til_Z in finish_b (compare \XINT_keep_endb, or
+% also \XINT_RQ_end_b).|
+% \begin{macrocode}
\def\XINT_csvtol_finish_b #1,#2,#3,#4,#5,#6,#7,#8\Z
{%
\xint_gob_til_R
- #1\XINT_csvtol_finish_c \xint_c_viii
- #2\XINT_csvtol_finish_c \xint_c_vii
- #3\XINT_csvtol_finish_c \xint_c_vi
- #4\XINT_csvtol_finish_c \xint_c_v
- #5\XINT_csvtol_finish_c \xint_c_iv
- #6\XINT_csvtol_finish_c \xint_c_iii
- #7\XINT_csvtol_finish_c \xint_c_ii
- \R\XINT_csvtol_finish_c \xint_c_i\Z
-}%
-\def\XINT_csvtol_finish_c #1#2\Z
-{%
- \csname XINT_csvtol_finish_d\romannumeral #1\endcsname
+ #1\expandafter\XINT_csvtol_finish_dviii\xint_gob_til_Z
+ #2\expandafter\XINT_csvtol_finish_dvii \xint_gob_til_Z
+ #3\expandafter\XINT_csvtol_finish_dvi \xint_gob_til_Z
+ #4\expandafter\XINT_csvtol_finish_dv \xint_gob_til_Z
+ #5\expandafter\XINT_csvtol_finish_div \xint_gob_til_Z
+ #6\expandafter\XINT_csvtol_finish_diii \xint_gob_til_Z
+ #7\expandafter\XINT_csvtol_finish_dii \xint_gob_til_Z
+ \R\XINT_csvtol_finish_di \Z
}%
\long\def\XINT_csvtol_finish_dviii #1#2#3#4#5#6#7#8#9{ #9}%
\long\def\XINT_csvtol_finish_dvii #1#2#3#4#5#6#7#8#9{ #9{#1}}%
@@ -13839,7 +13899,7 @@ $1$ or $-1$.
\long\def\XINT_csvtol_finish_diii #1#2#3#4#5#6#7#8#9{ #9{#1}{#2}{#3}{#4}{#5}}%
\long\def\XINT_csvtol_finish_dii #1#2#3#4#5#6#7#8#9%
{ #9{#1}{#2}{#3}{#4}{#5}{#6}}%
-\long\def\XINT_csvtol_finish_di #1#2#3#4#5#6#7#8#9%
+\long\def\XINT_csvtol_finish_di\Z #1#2#3#4#5#6#7#8#9%
{ #9{#1}{#2}{#3}{#4}{#5}{#6}{#7}}%
% \end{macrocode}
% \subsection{\csh{xintListWithSep}}
@@ -14721,7 +14781,16 @@ $1$ or $-1$.
\catcode`j 11
% \end{macrocode}
% \subsection{\csh{xintAssign}, \csh{xintAssignArray}, \csh{xintDigitsOf}}
-% \lverb|\xintAssign {a}{b}..{z}\to\A\B...\Z or \xintAssignArray {a}{b}..{z}\to\U|
+% \lverb|\xintAssign {a}{b}..{z}\to\A\B...\Z resp. \xintAssignArray
+% {a}{b}..{z}\to\U.
+%
+% \xintDigitsOf=\xintAssignArray.
+%
+% 1.1c 2015/09/12 has (belatedly) corrected some "features" of
+% \xintAssign which didn't like the case of a space right before the "\to", or
+% the case with the first token not an opening brace and the subsequent
+% material containing brace groups. The new code handles gracefully these
+% situations.|
% \begin{macrocode}
\def\xintAssign{\def\XINT_flet_macro {\XINT_assign_fork}\XINT_flet_zapsp }%
\def\XINT_assign_fork
@@ -14742,27 +14811,35 @@ $1$ or $-1$.
}%
\long\def\XINT_assign_a #1\to
{%
- \expandafter\XINT_assign_b\romannumeral-`0#1{}\to
+ \def\XINT_flet_macro{\XINT_assign_b}%
+ \expandafter\XINT_flet_zapsp\romannumeral-`0#1\xint_relax\to
}%
-\long\def\XINT_assign_b #1% attention to the # at the beginning of next line
-#{%
+\long\def\XINT_assign_b
+{%
+ \ifx\XINT_token\bgroup
+ \expandafter\XINT_assign_c
+ \else\expandafter\XINT_assign_f
+ \fi
+}%
+\long\def\XINT_assign_f #1\xint_relax\to #2%
+{%
+ \XINT_assign_def #2{#1}%
+}%
+\long\def\XINT_assign_c #1%
+{%
\def\xint_temp {#1}%
- \ifx\empty\xint_temp
- \expandafter\XINT_assign_c
+ \ifx\xint_temp\xint_brelax
+ \expandafter\XINT_assign_e
\else
\expandafter\XINT_assign_d
\fi
}%
-\long\def\XINT_assign_c #1#2\to #3%
-{%
- \XINT_assign_def #3{#1}%
- \def\xint_temp {#2}%
- \unless\ifx\empty\xint_temp\xint_afterfi{\XINT_assign_b #2\to }\fi
-}%
-\def\XINT_assign_d #1\to #2% normally #1 is {} here.
+\long\def\XINT_assign_d #1\to #2%
{%
\expandafter\XINT_assign_def\expandafter #2\expandafter{\xint_temp}%
+ \XINT_assign_c #1\to
}%
+\def\XINT_assign_e #1\to {}%
\def\xintRelaxArray #1%
{%
\edef\XINT_restoreescapechar {\escapechar\the\escapechar\relax}%
@@ -14930,7 +15007,7 @@ $1$ or $-1$.
% \begin{macrocode}
\XINT_providespackage
\ProvidesPackage{xintcore}%
- [2015/08/31 v1.1b Expandable arithmetic on big integers (jfB)]%
+ [2015/09/12 v1.1c Expandable arithmetic on big integers (jfB)]%
% \end{macrocode}
% \subsection{More token management, constants}
% \begin{macrocode}
@@ -15367,7 +15444,7 @@ $1$ or $-1$.
% \subsection{\csh{xintHalf}}
% \lverb|v1.08. Relase 1.1 left it in xint.sty, but it is needed by the
% division routines included in xintcore.sty. Thus moved here for bugfix
-% release 1.1b.
+% release 1.1c.
% Also \XINT_SQ which it uses. Moved here \xintDouble as well by sympathy.|
% \begin{macrocode}
\def\xintHalf {\romannumeral0\xinthalf }%
@@ -17847,7 +17924,7 @@ $1$ or $-1$.
% \begin{macrocode}
\XINT_providespackage
\ProvidesPackage{xint}%
- [2015/08/31 v1.1b Expandable operations on big integers (jfB)]%
+ [2015/09/12 v1.1c Expandable operations on big integers (jfB)]%
% \end{macrocode}
% \subsection{More token management}
% \begin{macrocode}
@@ -19690,7 +19767,7 @@ $1$ or $-1$.
% \begin{macrocode}
\XINT_providespackage
\ProvidesPackage{xintbinhex}%
- [2015/08/31 v1.1b Expandable binary and hexadecimal conversions (jfB)]%
+ [2015/09/12 v1.1c Expandable binary and hexadecimal conversions (jfB)]%
% \end{macrocode}
% \subsection{Constants, etc...}
% \lverb!v1.08!
@@ -20364,7 +20441,7 @@ $1$ or $-1$.
% \begin{macrocode}
\XINT_providespackage
\ProvidesPackage{xintgcd}%
- [2015/08/31 v1.1b Euclide algorithm with xint package (jfB)]%
+ [2015/09/12 v1.1c Euclide algorithm with xint package (jfB)]%
% \end{macrocode}
% \subsection{\csh{xintGCD}, \csh{xintiiGCD}}
% \lverb|The macros of 1.09a benefits from the \xintnum which has been inserted
@@ -21066,7 +21143,7 @@ $1$ or $-1$.
% \begin{macrocode}
\XINT_providespackage
\ProvidesPackage{xintfrac}%
- [2015/08/31 v1.1b Expandable operations on fractions (jfB)]%
+ [2015/09/12 v1.1c Expandable operations on fractions (jfB)]%
\chardef\xint_c_xviii 18
% \end{macrocode}
% \subsection{\csh{XINT_cntSgnFork}}
@@ -22211,7 +22288,9 @@ $1$ or $-1$.
{%
\XINT_xtrunc_e #4.{#6}{#5}{#3}{#2}{#1}%
}%
-% #1=numerator.#2=N,#3=B,#4=D,#5=Blocs,#6=extra
+% \end{macrocode}
+% \lverb+#1=numerator.#2=N,#3=B,#4=D,#5=Blocs,#6=extra+
+% \begin{macrocode}
\def\XINT_xtrunc_e #1%
{%
\xint_UDzerominusfork
@@ -22243,7 +22322,9 @@ $1$ or $-1$.
\expandafter\XINT_xtrunc_negN_R
\romannumeral0\XINT_div_prepare {#3}{#2}{#3}{#1}{#4}%
}%
-% #1=Q, #2=R, #3=B, #4=N<0, #5=D
+% \end{macrocode}
+% \lverb+#1=Q, #2=R, #3=B, #4=N<0, #5=D+
+% \begin{macrocode}
\def\XINT_xtrunc_negN_R #1#2#3#4#5%
{%
\expandafter\XINT_xtrunc_negN_S\expandafter
@@ -22262,7 +22343,9 @@ $1$ or $-1$.
\expandafter\XINT_xtrunc_negNW
\fi {#1}%
}%
-% #1=D-|N|>0, #2=|N|, #3=D, #4=R, #5=B, #6=Q
+% \end{macrocode}
+% \lverb+#1=D-|N|>0, #2=|N|, #3=D, #4=R, #5=B, #6=Q+
+% \begin{macrocode}
\def\XINT_xtrunc_unlock #10.{ }%
\def\XINT_xtrunc_negNA #1#2#3#4#5#6%
{%
@@ -22292,7 +22375,9 @@ $1$ or $-1$.
{%
0.\romannumeral0\XINT_dsx_zeroloop {-#1}{}\Z {}#2%
}%
-% #1=D-|N|<=0, #2=|N|, #3=D, #4=R, #5=B, #6=Q
+% \end{macrocode}
+% \lverb+#1=D-|N|<=0, #2=|N|, #3=D, #4=R, #5=B, #6=Q+
+% \begin{macrocode}
\def\XINT_xtrunc_negNW #1#2#3#4#5#6%
{%
\expandafter\XINT_xtrunc_negNX\expandafter
@@ -22721,8 +22806,10 @@ $1$ or $-1$.
\krof
}%
\def\XINT_infloat_zero #1\Z #2#3#4#5{ 0[0]}%
-% the 0[0] was stupidly changed to 0/1[0] in 1.09i, with the result that the
-% Float addition would crash when an operand was zero
+% \end{macrocode}
+% \lverb|the 0[0] was stupidly changed to 0/1[0] in 1.09i, with the result
+% that the Float addition would crash when an operand was zero.|
+% \begin{macrocode}
\def\XINT_infloat_J {\expandafter-\romannumeral0\XINT_float_K }%
\def\XINT_infloat_Q #1%
{%
@@ -23626,8 +23713,10 @@ $1$ or $-1$.
{#1*\ifodd #5 1\else 0\fi}%
}%
\def\XINT_flpow_zero [#1]#2#3#4#5%
-% xint is not equipped to signal infinity, the 2^31 will provoke
-% deliberately a number too big and arithmetic overflow in \XINT_float_Xb
+% \end{macrocode}
+% \lverb|xint is not equipped to signal infinity, the 2^31 will provoke
+% deliberately a number too big and arithmetic overflow in \XINT_float_Xb|
+% \begin{macrocode}
{%
\if #41\xint_afterfi {\xintError:DivisionByZero #5{1[2147483648]}}%
\else \xint_afterfi {#5{0[0]}}\fi
@@ -24082,7 +24171,7 @@ $1$ or $-1$.
% \begin{macrocode}
\XINT_providespackage
\ProvidesPackage{xintseries}%
- [2015/08/31 v1.1b Expandable partial sums with xint package (jfB)]%
+ [2015/09/12 v1.1c Expandable partial sums with xint package (jfB)]%
% \end{macrocode}
% \subsection{\csh{xintSeries}}
% \lverb|&
@@ -24587,7 +24676,7 @@ $1$ or $-1$.
% \begin{macrocode}
\XINT_providespackage
\ProvidesPackage{xintcfrac}%
- [2015/08/31 v1.1b Expandable continued fractions with xint package (jfB)]%
+ [2015/09/12 v1.1c Expandable continued fractions with xint package (jfB)]%
% \end{macrocode}
% \subsection{\csh{xintCFrac}}
% \begin{macrocode}
@@ -25986,7 +26075,7 @@ $1$ or $-1$.
% \begin{macrocode}
\XINT_providespackage
\ProvidesPackage{xintexpr}%
- [2015/08/31 v1.1b Expandable expression parser (jfB)]%
+ [2015/09/12 v1.1c Expandable expression parser (jfB)]%
% \end{macrocode}
% \subsection{Locking and unlocking}
% je dois réfléchir si je dois bloquer expansion après |unlock_a|, à
@@ -26033,8 +26122,6 @@ $1$ or $-1$.
\def\xintthefloatexpr {\romannumeral-`0\xintthe\xintfloatexpr }%
\def\xinttheiiexpr
{\romannumeral-`0\expandafter\XINT_iiexpr_print\romannumeral0\xintbareiieval }%
-% \let\xintnumexpr \xintiexpr % was deprecated, now obsolete with 1.1
-% \let\xintthenumexpr\xinttheiexpr % was deprecated, now obsolete with 1.1
% \end{macrocode}
% \subsection{\csh{xintthe}}
% \begin{macrocode}
@@ -26336,8 +26423,11 @@ $1$ or $-1$.
\romannumeral-`0\XINT_expr_scanexppart_a e}\fi
\if E#1\xint_dothis{\expandafter\XINT_expr_inexppart
\romannumeral-`0\XINT_expr_scanexppart_a e}\fi
- % \if @#1\xint_dothis{!*#1}\fi % tacit multiplication later
- % \if _#1\xint_dothis{!*#1}\fi % tacit multiplication for variables
+% \end{macrocode}
+% \lverb|\if @#1\xint_dothis{!*#1}\fi % tacit multiplication later|
+%
+% \lverb|\if _#1\xint_dothis{!*#1}\fi % tacit multiplication for variables|
+% \begin{macrocode}
\ifcat a#1\xint_dothis{!!*#1}\fi % includes subexpressions (#1=! letter)
\xint_orthat {\expandafter\XINT_expr_scanintpart_aa\string #1}%
}%
@@ -26563,11 +26653,14 @@ $1$ or $-1$.
}%
\catcode`* 12
\def\XINT_expr_foundend {\xint_c_ \relax }% \relax is a place holder here.
+% \end{macrocode}
+% \lverb| ? and : a special syntax in \xintexpr as they are
+% followed by braced arguments, and thus we must intercept them here.
+% I wanted to change this but now I don't have time to think about it.
+% 1.1 removes : as logic operator. Replaced by ??.|
+% \begin{macrocode}
\def\XINT_expr_getop_b #1%
-{% ? and : a special syntax in \xintexpr as they are
- % followed by braced arguments, and thus we must intercept them here.
- % I wanted to change this but now I don't have time to think about it.
- % 1.1 removes : as logic operator. Replaced by ??.
+{%
\if '#1\xint_dothis{\XINT_expr_binopwrd }\fi
\if ?#1\xint_dothis{\XINT_expr_precedence_? ?}\fi
\xint_orthat {\XINT_expr_scanop_a #1}%
@@ -27017,9 +27110,8 @@ $1$ or $-1$.
\else
\xint_afterfi
{\expandafter ##2\expandafter ##3\csname
- .=:\xintiiifSgn{\XINT_expr_unlock ##1}NPP.% : and dots for expansion
- \xintiiifSgn{\XINT_expr_unlock ##4}NPP.% in \xintNewExpr context
-% reason for \xintNum is a/1[x] format, but -0.5 will not work, seen <0, but 0 after
+ .=:\xintiiifSgn{\XINT_expr_unlock ##1}NPP.%
+ \xintiiifSgn{\XINT_expr_unlock ##4}NPP.%
\xintNum{\XINT_expr_unlock ##1};\xintNum{\XINT_expr_unlock ##4}\endcsname
}%
\fi
@@ -27042,12 +27134,16 @@ $1$ or $-1$.
\let\XINT_iiexpr_op_:] \XINT_expr_op_:]
\let\XINT_expr_precedence_][: \xint_c_iii
\edef\XINT_expr_op_][: #1{\xint_c_ii \expandafter\noexpand
- \csname XINT_expr_itself_][\endcsname #10\string :}%
-% : must be catcode 12, else will be mistaken for start of variable by expression parser
+ \csname XINT_expr_itself_][\endcsname #10\string :}%
+% \end{macrocode}
+% \lverb|: must be catcode 12, else will be mistaken for start of variable by
+% expression parser. In \xintListSel:csv some complications are due to
+% \xintNewExpr matters.|
+% \begin{macrocode}
\let\XINT_flexpr_op_][: \XINT_expr_op_][:
\let\XINT_iiexpr_op_][: \XINT_expr_op_][:
\catcode`[ 12 \catcode`] 12
-\def\xintListSel:csv #1{% these complications are due to \xintNewExpr matters
+\def\xintListSel:csv #1{%
\if ]\noexpand#1\xint_dothis{\expandafter\XINT_listsel:_s\romannumeral-`0}\fi
\if :\noexpand#1\xint_dothis{\XINT_listsel:_:}\fi
\xint_orthat {\XINT_listsel:_nth #1}%
@@ -27210,7 +27306,10 @@ $1$ or $-1$.
{%
\xintifCmp {#1}{#2}{,#1\expandafter\XINT_seqb::csv_p\expandafter}%
{,#1\xint_gobble_iii}{\xint_gobble_iii}%
-% \romannumeral0 stopped by \endcsname, XINT_expr_seq_empty? constructs "nil".
+% \end{macrocode}
+% \lverb|\romannumeral0 stopped by \endcsname, XINT_expr_seq_empty? constructs
+% "nil".|
+% \begin{macrocode}
{\romannumeral0\xintadd {#3}{#1}}{#2}{#3}%
}%
\def\XINT_seqb::csv_n #1#2#3%
@@ -27711,7 +27810,11 @@ $1$ or $-1$.
\def\XINT_flexpr_func_opx #1#2{\XINT_allexpr_opx \xintfloatexpr }%
\def\XINT_iiexpr_func_opx #1#2{\XINT_allexpr_opx \xintiiexpr }%
\def\XINT_allexpr_opx #1#2#3#4#5%
-{% au d\'epart on avait op(#4,#3=#2 (\'evalu\'e ici)) #3=la variable, #4=expression, #5=+ ou*.
+% \end{macrocode}
+% \lverb|au d\'epart on avait op(#4,#3=#2 (\'evalu\'e ici)) #3=la variable,
+% #4=expression, #5=+ ou*.|
+% \begin{macrocode}
+{%
\expandafter\XINT_expr_getop\romannumeral0\expandafter\XINT_expr_op:_a
\csname XINT_expr_op:_#5\expandafter\endcsname
\romannumeral-`0\XINT_expr_unlock #2!#5#1#3{#4}%
@@ -27720,16 +27823,23 @@ $1$ or $-1$.
% \subsubsection{\csh{XINT_expr_op:_a}, \dots}
% \begin{macrocode}
\def\XINT_expr_op:_a #1#2!#3#4#5#6{\XINT_expr_op:_b {#1#4#3{#6\relax\relax !#5}}#2,^,}%
-% #1=op_+ ou op_*, #2=liste, #3=+ou*,#4=\xintexpr, etc, #5=la var,#6=expression
+% \end{macrocode}
+% \lverb|#1=op_+ ou op_*, #2=liste, #3=+ou*,#4=\xintexpr, etc, #5=la
+% var,#6=expression|
+% \begin{macrocode}
\def\XINT_expr_op:_b #1#2,{\XINT_expr_op:_c #2,#1}%
\def\XINT_expr_op:_c #1{\if ,#1\xint_dothis\XINT_expr_op:_noop\fi
\if ^#1\xint_dothis\XINT_expr_op:_end\fi
\xint_orthat\XINT_expr_op:_d #1}%
\def\XINT_expr_op:_noop #1,#2#3#4#5{\XINT_expr_op:_b {{#2}#3#4{#5}}}%
\def\XINT_expr_op:_d #1,#2#3#4#5%
-% #1=valeur, #2=partiel, #3=\xintexpr #4=+ ou *, #5 = expression
+% \end{macrocode}
+% \lverb|#1=valeur, #2=partiel, #3=\xintexpr #4=+ ou *, #5 = expression|
+% \begin{macrocode}
{\expandafter\expandafter\expandafter\XINT_expr_op:_e #3#2#4#3#5{#1}{#3#4{#5}}}%
-% #2=nom de la variable, #3=ancienne valeur variable,
+% \end{macrocode}
+% \lverb|#2=nom de la variable, #3=ancienne valeur variable|
+% \begin{macrocode}
\def\XINT_expr_op:_e !#1!#2#3#4{\XINT_expr_op:_b {{!#1}#4}}%
\def\XINT_expr_op:_end ^,#1#2#3#4{\expandafter\expandafter\expandafter\space
\expandafter\xint_gobble_iv #1}%
@@ -27748,9 +27858,12 @@ $1$ or $-1$.
\csname .=\expandafter\XINT_expr_subx:_a
\romannumeral-`0\XINT_expr_unlock #2!{#1#4\relax !#3}\endcsname
}%
-\def\XINT_expr_subx:_a #1!#2% 10/25 that was a quick addition!
+\def\XINT_expr_subx:_a #1!#2%
{\expandafter\XINT_expr_subx:_end \romannumeral0#2{#1}}%
-% attention, if one day I add a space in unlock, will need \romannumeral-`0
+% \end{macrocode}
+% \lverb|attention, if one day I add a space in unlock, will need
+% \romannumeral-`0|
+% \begin{macrocode}
\def\XINT_expr_subx:_end #1!#2#3{\XINT_expr_unlock #1}%
% \end{macrocode}
% \subsection{rseq}
@@ -27776,11 +27889,12 @@ $1$ or $-1$.
}%
% \end{macrocode}
% \subsubsection{\csh{XINT_expr_rseqy}}
+% \lverb|#1=valeurs pour variable (locked),
+% #2=toutes les valeurs initiales (csv,locked),
+% #3=variable, #4=expr,
+% #5=\xintbareeval ou \xintbarefloateval ou \xintbareiieval|
% \begin{macrocode}
-\def\XINT_expr_rseqy #1#2#3#4#5% #1=valeurs pour variable (locked),
- % #2=toutes les valeurs initiales (csv,locked),
- % #3=variable, #4=expr,
- % #5=\xintbareeval ou \xintbarefloateval ou \xintbareiieval
+\def\XINT_expr_rseqy #1#2#3#4#5%
{%
\expandafter \XINT_expr_getop
\csname .=\XINT_expr_unlock #2%
@@ -27855,12 +27969,13 @@ $1$ or $-1$.
}%
% \end{macrocode}
% \subsubsection{\csh{XINT_expr_rrseqy}}
+% \lverb|#1=valeurs pour variable (locked),
+% #2=initial values (reversed, one (braced) token each)
+% #3=toutes les valeurs initiales (csv,locked),
+% #4=variable, #5=expr,
+% #6=\xintbareeval ou \xintbarefloateval ou \xintbareiieval|
% \begin{macrocode}
-\def\XINT_expr_rrseqy #1#2#3#4#5#6% #1=valeurs pour variable (locked),
- % #2=initial values (reversed, one (braced) token each)
- % #3=toutes les valeurs initiales (csv,locked),
- % #4=variable, #5=expr,
- % #6=\xintbareeval ou \xintbarefloateval ou \xintbareiieval
+\def\XINT_expr_rrseqy #1#2#3#4#5#6%
{%
\expandafter \XINT_expr_getop
\csname .=\XINT_expr_unlock #3%
@@ -27938,12 +28053,13 @@ $1$ or $-1$.
}%
% \end{macrocode}
% \subsubsection{\csh{XINT_expr_itery}}
+% \lverb|#1=valeurs pour variable (locked),
+% #2=initial values (reversed, one (braced) token each)
+% #3=toutes les valeurs initiales (csv,locked),
+% #4=variable, #5=expr,
+% #6=\xintbareeval ou \xintbarefloateval ou \xintbareiieval|
% \begin{macrocode}
-\def\XINT_expr_itery #1#2#3#4#5#6% #1=valeurs pour variable (locked),
- % #2=initial values (reversed, one (braced) token each)
- % #3=toutes les valeurs initiales (csv,locked),
- % #4=variable, #5=expr,
- % #6=\xintbareeval ou \xintbarefloateval ou \xintbareiieval
+\def\XINT_expr_itery #1#2#3#4#5#6%
{%
\expandafter \XINT_expr_getop
\csname .=%
@@ -28212,8 +28328,7 @@ $1$ or $-1$.
\def\XINT_flexpr_func_sqr #1#2#3%
{%
\expandafter #1\expandafter #2\csname
- .=\XINTinFloatMul % [\XINTdigits]% pour simplifier mes affaires avec \xintNewExpr
- {\XINT_expr_unlock #3}{\XINT_expr_unlock #3}\endcsname
+ .=\XINTinFloatMul{\XINT_expr_unlock #3}{\XINT_expr_unlock #3}\endcsname
}%
\def\XINT_iiexpr_func_sqr #1#2#3%
{\expandafter #1\expandafter #2\csname.=\xintiiSqr {\XINT_expr_unlock #3}\endcsname }%
@@ -28725,7 +28840,9 @@ $1$ or $-1$.
\def\xintPFloat::csv {~xintPFloat::csv }%
\def\xintIsTrue::csv {~xintIsTrue::csv }%
\def\xintRound::csv {~xintRound::csv }%
-% \def\XINTinFloat::csv {~XINTinFloat::csv }% should not be needed.
+% \end{macrocode}
+% \lverb|\def\XINTinFloat::csv {~XINTinFloat::csv }% should not be needed.|
+% \begin{macrocode}
\def\xintReversed::csv {~xintReversed::csv }%
\def\xintListSel:csv {~xintListSel:csv }%
}%
@@ -28733,7 +28850,6 @@ $1$ or $-1$.
\def\xintNewExpr {\xint_NewExpr\xinttheexpr }%
\def\xintNewFloatExpr {\xint_NewExpr\xintthefloatexpr }%
\def\xintNewIExpr {\xint_NewExpr\xinttheiexpr }%
-% \let\xintNewNumExpr\xintNewIExpr % made obsolete for 1.1 release
\def\xintNewIIExpr {\xint_NewExpr\xinttheiiexpr }%
\def\xintNewBoolExpr {\xint_NewExpr\xinttheboolexpr }%
% \end{macrocode}
@@ -28868,7 +28984,7 @@ $1$ or $-1$.
Right bracket \] Circumflex \^ Underscore \_
Grave accent \` Left brace \{ Vertical bar \|
Right brace \} Tilde \~}
-\CheckSum {25574}
+\CheckSum {25543}
\makeatletter\check@checksum\makeatother
\Finale
%% End of file xint.dtx
diff --git a/Master/texmf-dist/source/generic/xint/xint.ins b/Master/texmf-dist/source/generic/xint/xint.ins
index 252b3344e82..8532f6b6235 100644
--- a/Master/texmf-dist/source/generic/xint/xint.ins
+++ b/Master/texmf-dist/source/generic/xint/xint.ins
@@ -21,7 +21,7 @@
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
%% ---------------------------------------------------------------
-%% The xint bundle v1.1b (2015/08/31; doc: 2015/08/31)
+%% The xint bundle v1.1c 2015/09/12
%% Copyright (C) 2013-2015 by Jean-Francois Burnol
%% ---------------------------------------------------------------
%%
diff --git a/Master/texmf-dist/tex/generic/xint/xint.sty b/Master/texmf-dist/tex/generic/xint/xint.sty
index d67777bee4b..b07e96b1cbe 100644
--- a/Master/texmf-dist/tex/generic/xint/xint.sty
+++ b/Master/texmf-dist/tex/generic/xint/xint.sty
@@ -21,7 +21,7 @@
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
%% ---------------------------------------------------------------
-%% The xint bundle v1.1b (2015/08/31; doc: 2015/08/31)
+%% The xint bundle v1.1c 2015/09/12
%% Copyright (C) 2013-2015 by Jean-Francois Burnol
%% xint: Expandable operations on big integers
%% ---------------------------------------------------------------
@@ -70,7 +70,7 @@
\XINTsetupcatcodes% defined in xintkernel.sty (loaded by xintcore.sty)
\XINT_providespackage
\ProvidesPackage{xint}%
- [2015/08/31 v1.1b Expandable operations on big integers (jfB)]%
+ [2015/09/12 v1.1c Expandable operations on big integers (jfB)]%
\long\def\xint_firstofthree #1#2#3{#1}%
\long\def\xint_secondofthree #1#2#3{#2}%
\long\def\xint_thirdofthree #1#2#3{#3}%
diff --git a/Master/texmf-dist/tex/generic/xint/xintbinhex.sty b/Master/texmf-dist/tex/generic/xint/xintbinhex.sty
index 1ce6367d2c8..3876c864057 100644
--- a/Master/texmf-dist/tex/generic/xint/xintbinhex.sty
+++ b/Master/texmf-dist/tex/generic/xint/xintbinhex.sty
@@ -21,7 +21,7 @@
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
%% ---------------------------------------------------------------
-%% The xint bundle v1.1b (2015/08/31; doc: 2015/08/31)
+%% The xint bundle v1.1c 2015/09/12
%% Copyright (C) 2013-2015 by Jean-Francois Burnol
%% xintbinhex: Expandable binary and hexadecimal conversions
%% ---------------------------------------------------------------
@@ -70,7 +70,7 @@
\XINTsetupcatcodes% defined in xintkernel.sty
\XINT_providespackage
\ProvidesPackage{xintbinhex}%
- [2015/08/31 v1.1b Expandable binary and hexadecimal conversions (jfB)]%
+ [2015/09/12 v1.1c Expandable binary and hexadecimal conversions (jfB)]%
\chardef\xint_c_xvi 16
\chardef\xint_c_ii^vii 128
\mathchardef\xint_c_ii^viii 256
diff --git a/Master/texmf-dist/tex/generic/xint/xintcfrac.sty b/Master/texmf-dist/tex/generic/xint/xintcfrac.sty
index b5dfdf05712..f3585235d2f 100644
--- a/Master/texmf-dist/tex/generic/xint/xintcfrac.sty
+++ b/Master/texmf-dist/tex/generic/xint/xintcfrac.sty
@@ -21,7 +21,7 @@
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
%% ---------------------------------------------------------------
-%% The xint bundle v1.1b (2015/08/31; doc: 2015/08/31)
+%% The xint bundle v1.1c 2015/09/12
%% Copyright (C) 2013-2015 by Jean-Francois Burnol
%% xintcfrac: Expandable continued fractions with xint package
%% ---------------------------------------------------------------
@@ -70,7 +70,7 @@
\XINTsetupcatcodes% defined in xintkernel.sty
\XINT_providespackage
\ProvidesPackage{xintcfrac}%
- [2015/08/31 v1.1b Expandable continued fractions with xint package (jfB)]%
+ [2015/09/12 v1.1c Expandable continued fractions with xint package (jfB)]%
\def\xintCFrac {\romannumeral0\xintcfrac }%
\def\xintcfrac #1%
{%
diff --git a/Master/texmf-dist/tex/generic/xint/xintcore.sty b/Master/texmf-dist/tex/generic/xint/xintcore.sty
index 52a531a431f..d9bbb3779f8 100644
--- a/Master/texmf-dist/tex/generic/xint/xintcore.sty
+++ b/Master/texmf-dist/tex/generic/xint/xintcore.sty
@@ -21,7 +21,7 @@
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
%% ---------------------------------------------------------------
-%% The xint bundle v1.1b (2015/08/31; doc: 2015/08/31)
+%% The xint bundle v1.1c 2015/09/12
%% Copyright (C) 2013-2015 by Jean-Francois Burnol
%% xintcore: Expandable arithmetic on big integers
%% ---------------------------------------------------------------
@@ -70,7 +70,7 @@
\XINTsetupcatcodes% defined in xintkernel.sty
\XINT_providespackage
\ProvidesPackage{xintcore}%
- [2015/08/31 v1.1b Expandable arithmetic on big integers (jfB)]%
+ [2015/09/12 v1.1c Expandable arithmetic on big integers (jfB)]%
\def\xint_minus_thenstop { -}%
\def\xint_gob_til_zeros_iii #1000{}%
\def\xint_gob_til_zeros_iv #10000{}%
diff --git a/Master/texmf-dist/tex/generic/xint/xintexpr.sty b/Master/texmf-dist/tex/generic/xint/xintexpr.sty
index af29c4a9b0e..a7bc350cadd 100644
--- a/Master/texmf-dist/tex/generic/xint/xintexpr.sty
+++ b/Master/texmf-dist/tex/generic/xint/xintexpr.sty
@@ -21,7 +21,7 @@
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
%% ---------------------------------------------------------------
-%% The xint bundle v1.1b (2015/08/31; doc: 2015/08/31)
+%% The xint bundle v1.1c 2015/09/12
%% Copyright (C) 2013-2015 by Jean-Francois Burnol
%% xintexpr: Expandable expression parser
%% ---------------------------------------------------------------
@@ -81,7 +81,7 @@
\XINTsetupcatcodes%
\XINT_providespackage
\ProvidesPackage{xintexpr}%
- [2015/08/31 v1.1b Expandable expression parser (jfB)]%
+ [2015/09/12 v1.1c Expandable expression parser (jfB)]%
\def\xint_gob_til_! #1!{}% this ! has catcode 11
\edef\XINT_expr_lockscan#1!{\noexpand\expandafter\space\noexpand\csname .=#1\endcsname }%
\edef\XINT_expr_lockit #1{\noexpand\expandafter\space\noexpand\csname .=#1\endcsname }%
@@ -302,8 +302,6 @@
\romannumeral-`0\XINT_expr_scanexppart_a e}\fi
\if E#1\xint_dothis{\expandafter\XINT_expr_inexppart
\romannumeral-`0\XINT_expr_scanexppart_a e}\fi
- % \if @#1\xint_dothis{!*#1}\fi % tacit multiplication later
- % \if _#1\xint_dothis{!*#1}\fi % tacit multiplication for variables
\ifcat a#1\xint_dothis{!!*#1}\fi % includes subexpressions (#1=! letter)
\xint_orthat {\expandafter\XINT_expr_scanintpart_aa\string #1}%
}%
@@ -513,10 +511,7 @@
\catcode`* 12
\def\XINT_expr_foundend {\xint_c_ \relax }% \relax is a place holder here.
\def\XINT_expr_getop_b #1%
-{% ? and : a special syntax in \xintexpr as they are
- % followed by braced arguments, and thus we must intercept them here.
- % I wanted to change this but now I don't have time to think about it.
- % 1.1 removes : as logic operator. Replaced by ??.
+{%
\if '#1\xint_dothis{\XINT_expr_binopwrd }\fi
\if ?#1\xint_dothis{\XINT_expr_precedence_? ?}\fi
\xint_orthat {\XINT_expr_scanop_a #1}%
@@ -927,8 +922,8 @@
\else
\xint_afterfi
{\expandafter ##2\expandafter ##3\csname
- .=:\xintiiifSgn{\XINT_expr_unlock ##1}NPP.% : and dots for expansion
- \xintiiifSgn{\XINT_expr_unlock ##4}NPP.% in \xintNewExpr context
+ .=:\xintiiifSgn{\XINT_expr_unlock ##1}NPP.%
+ \xintiiifSgn{\XINT_expr_unlock ##4}NPP.%
\xintNum{\XINT_expr_unlock ##1};\xintNum{\XINT_expr_unlock ##4}\endcsname
}%
\fi
@@ -955,7 +950,7 @@
\let\XINT_flexpr_op_][: \XINT_expr_op_][:
\let\XINT_iiexpr_op_][: \XINT_expr_op_][:
\catcode`[ 12 \catcode`] 12
-\def\xintListSel:csv #1{% these complications are due to \xintNewExpr matters
+\def\xintListSel:csv #1{%
\if ]\noexpand#1\xint_dothis{\expandafter\XINT_listsel:_s\romannumeral-`0}\fi
\if :\noexpand#1\xint_dothis{\XINT_listsel:_:}\fi
\xint_orthat {\XINT_listsel:_nth #1}%
@@ -1451,7 +1446,7 @@
\def\XINT_flexpr_func_opx #1#2{\XINT_allexpr_opx \xintfloatexpr }%
\def\XINT_iiexpr_func_opx #1#2{\XINT_allexpr_opx \xintiiexpr }%
\def\XINT_allexpr_opx #1#2#3#4#5%
-{% au d\'epart on avait op(#4,#3=#2 (\'evalu\'e ici)) #3=la variable, #4=expression, #5=+ ou*.
+{%
\expandafter\XINT_expr_getop\romannumeral0\expandafter\XINT_expr_op:_a
\csname XINT_expr_op:_#5\expandafter\endcsname
\romannumeral-`0\XINT_expr_unlock #2!#5#1#3{#4}%
@@ -1479,7 +1474,7 @@
\csname .=\expandafter\XINT_expr_subx:_a
\romannumeral-`0\XINT_expr_unlock #2!{#1#4\relax !#3}\endcsname
}%
-\def\XINT_expr_subx:_a #1!#2% 10/25 that was a quick addition!
+\def\XINT_expr_subx:_a #1!#2%
{\expandafter\XINT_expr_subx:_end \romannumeral0#2{#1}}%
\def\XINT_expr_subx:_end #1!#2#3{\XINT_expr_unlock #1}%
\def\XINT_expr_func_rseq {\XINT_allexpr_rseq \xintbareeval }%
@@ -1495,10 +1490,7 @@
\expandafter\XINT_expr_rseqy\romannumeral0#1(#4)\relax
#2#3#1%
}%
-\def\XINT_expr_rseqy #1#2#3#4#5% #1=valeurs pour variable (locked),
- % #2=toutes les valeurs initiales (csv,locked),
- % #3=variable, #4=expr,
- % #5=\xintbareeval ou \xintbarefloateval ou \xintbareiieval
+\def\XINT_expr_rseqy #1#2#3#4#5%
{%
\expandafter \XINT_expr_getop
\csname .=\XINT_expr_unlock #2%
@@ -1555,11 +1547,7 @@
{\xintRevWithBraces{\xintCSVtoListNonStripped{\XINT_expr_unlock #2}}}}%
#2#3#1%
}%
-\def\XINT_expr_rrseqy #1#2#3#4#5#6% #1=valeurs pour variable (locked),
- % #2=initial values (reversed, one (braced) token each)
- % #3=toutes les valeurs initiales (csv,locked),
- % #4=variable, #5=expr,
- % #6=\xintbareeval ou \xintbarefloateval ou \xintbareiieval
+\def\XINT_expr_rrseqy #1#2#3#4#5#6%
{%
\expandafter \XINT_expr_getop
\csname .=\XINT_expr_unlock #3%
@@ -1621,11 +1609,7 @@
{\xintRevWithBraces{\xintCSVtoListNonStripped{\XINT_expr_unlock #2}}}}%
#2#3#1%
}%
-\def\XINT_expr_itery #1#2#3#4#5#6% #1=valeurs pour variable (locked),
- % #2=initial values (reversed, one (braced) token each)
- % #3=toutes les valeurs initiales (csv,locked),
- % #4=variable, #5=expr,
- % #6=\xintbareeval ou \xintbarefloateval ou \xintbareiieval
+\def\XINT_expr_itery #1#2#3#4#5#6%
{%
\expandafter \XINT_expr_getop
\csname .=%
@@ -1807,8 +1791,7 @@
\def\XINT_flexpr_func_sqr #1#2#3%
{%
\expandafter #1\expandafter #2\csname
- .=\XINTinFloatMul % [\XINTdigits]% pour simplifier mes affaires avec \xintNewExpr
- {\XINT_expr_unlock #3}{\XINT_expr_unlock #3}\endcsname
+ .=\XINTinFloatMul{\XINT_expr_unlock #3}{\XINT_expr_unlock #3}\endcsname
}%
\def\XINT_iiexpr_func_sqr #1#2#3%
{\expandafter #1\expandafter #2\csname.=\xintiiSqr {\XINT_expr_unlock #3}\endcsname }%
diff --git a/Master/texmf-dist/tex/generic/xint/xintfrac.sty b/Master/texmf-dist/tex/generic/xint/xintfrac.sty
index 29258f75d8d..f0e50614e0d 100644
--- a/Master/texmf-dist/tex/generic/xint/xintfrac.sty
+++ b/Master/texmf-dist/tex/generic/xint/xintfrac.sty
@@ -21,7 +21,7 @@
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
%% ---------------------------------------------------------------
-%% The xint bundle v1.1b (2015/08/31; doc: 2015/08/31)
+%% The xint bundle v1.1c 2015/09/12
%% Copyright (C) 2013-2015 by Jean-Francois Burnol
%% xintfrac: Expandable operations on fractions
%% ---------------------------------------------------------------
@@ -70,7 +70,7 @@
\XINTsetupcatcodes% defined in xintkernel.sty
\XINT_providespackage
\ProvidesPackage{xintfrac}%
- [2015/08/31 v1.1b Expandable operations on fractions (jfB)]%
+ [2015/09/12 v1.1c Expandable operations on fractions (jfB)]%
\chardef\xint_c_xviii 18
\def\XINT_cntSgnFork #1%
{%
diff --git a/Master/texmf-dist/tex/generic/xint/xintgcd.sty b/Master/texmf-dist/tex/generic/xint/xintgcd.sty
index f87f9686603..b5905103847 100644
--- a/Master/texmf-dist/tex/generic/xint/xintgcd.sty
+++ b/Master/texmf-dist/tex/generic/xint/xintgcd.sty
@@ -21,7 +21,7 @@
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
%% ---------------------------------------------------------------
-%% The xint bundle v1.1b (2015/08/31; doc: 2015/08/31)
+%% The xint bundle v1.1c 2015/09/12
%% Copyright (C) 2013-2015 by Jean-Francois Burnol
%% xintgcd: Euclidean algorithm with xint package
%% ---------------------------------------------------------------
@@ -70,7 +70,7 @@
\XINTsetupcatcodes% defined in xintkernel.sty
\XINT_providespackage
\ProvidesPackage{xintgcd}%
- [2015/08/31 v1.1b Euclide algorithm with xint package (jfB)]%
+ [2015/09/12 v1.1c Euclide algorithm with xint package (jfB)]%
\def\xintGCD {\romannumeral0\xintgcd }%
\def\xintgcd #1%
{%
diff --git a/Master/texmf-dist/tex/generic/xint/xintkernel.sty b/Master/texmf-dist/tex/generic/xint/xintkernel.sty
index 4ee08194d2e..8904861217e 100644
--- a/Master/texmf-dist/tex/generic/xint/xintkernel.sty
+++ b/Master/texmf-dist/tex/generic/xint/xintkernel.sty
@@ -21,7 +21,7 @@
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
%% ---------------------------------------------------------------
-%% The xint bundle v1.1b (2015/08/31; doc: 2015/08/31)
+%% The xint bundle v1.1c 2015/09/12
%% Copyright (C) 2013-2015 by Jean-Francois Burnol
%% xintkernel: Paraphernalia for the xint packages
%% ---------------------------------------------------------------
@@ -152,7 +152,7 @@
\fi
\XINT_providespackage
\ProvidesPackage {xintkernel}%
- [2015/08/31 v1.1b Paraphernalia for the xint packages (jfB)]%
+ [2015/09/12 v1.1c Paraphernalia for the xint packages (jfB)]%
\long\def\xint_gobble_ {}%
\long\def\xint_gobble_i #1{}%
\long\def\xint_gobble_ii #1#2{}%
diff --git a/Master/texmf-dist/tex/generic/xint/xintseries.sty b/Master/texmf-dist/tex/generic/xint/xintseries.sty
index 4245ce90a0c..1bec170ddc4 100644
--- a/Master/texmf-dist/tex/generic/xint/xintseries.sty
+++ b/Master/texmf-dist/tex/generic/xint/xintseries.sty
@@ -21,7 +21,7 @@
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
%% ---------------------------------------------------------------
-%% The xint bundle v1.1b (2015/08/31; doc: 2015/08/31)
+%% The xint bundle v1.1c 2015/09/12
%% Copyright (C) 2013-2015 by Jean-Francois Burnol
%% xintseries: Expandable partial sums with xint package
%% ---------------------------------------------------------------
@@ -70,7 +70,7 @@
\XINTsetupcatcodes% defined in xintkernel.sty
\XINT_providespackage
\ProvidesPackage{xintseries}%
- [2015/08/31 v1.1b Expandable partial sums with xint package (jfB)]%
+ [2015/09/12 v1.1c Expandable partial sums with xint package (jfB)]%
\def\xintSeries {\romannumeral0\xintseries }%
\def\xintseries #1#2%
{%
diff --git a/Master/texmf-dist/tex/generic/xint/xinttools.sty b/Master/texmf-dist/tex/generic/xint/xinttools.sty
index 103667e53fe..345777e41d8 100644
--- a/Master/texmf-dist/tex/generic/xint/xinttools.sty
+++ b/Master/texmf-dist/tex/generic/xint/xinttools.sty
@@ -21,7 +21,7 @@
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
%% ---------------------------------------------------------------
-%% The xint bundle v1.1b (2015/08/31; doc: 2015/08/31)
+%% The xint bundle v1.1c 2015/09/12
%% Copyright (C) 2013-2015 by Jean-Francois Burnol
%% xinttools: Expandable and non-expandable utilities
%% ---------------------------------------------------------------
@@ -70,7 +70,7 @@
\XINTsetupcatcodes% defined in xintkernel.sty
\XINT_providespackage
\ProvidesPackage{xinttools}%
- [2015/08/31 v1.1b Expandable and non-expandable utilities (jfB)]%
+ [2015/09/12 v1.1c Expandable and non-expandable utilities (jfB)]%
\newtoks\XINT_toks
\xint_firstofone{\let\XINT_sptoken= } %<- space here!
\def\xintgodef {\global\xintodef }%
@@ -102,21 +102,16 @@
\def\XINT_revwbr_finish_b #1#2#3#4#5#6#7#8\Z
{%
\xint_gob_til_R
- #1\XINT_revwbr_finish_c \xint_c_viii
- #2\XINT_revwbr_finish_c \xint_c_vii
- #3\XINT_revwbr_finish_c \xint_c_vi
- #4\XINT_revwbr_finish_c \xint_c_v
- #5\XINT_revwbr_finish_c \xint_c_iv
- #6\XINT_revwbr_finish_c \xint_c_iii
- #7\XINT_revwbr_finish_c \xint_c_ii
- \R\XINT_revwbr_finish_c \xint_c_i\Z
-}%
-\def\XINT_revwbr_finish_c #1#2\Z
-{%
- \expandafter\expandafter\expandafter
- \space
- \csname xint_gobble_\romannumeral #1\endcsname
-}%
+ #1\XINT_revwbr_finish_c \xint_gobble_viii
+ #2\XINT_revwbr_finish_c \xint_gobble_vii
+ #3\XINT_revwbr_finish_c \xint_gobble_vi
+ #4\XINT_revwbr_finish_c \xint_gobble_v
+ #5\XINT_revwbr_finish_c \xint_gobble_iv
+ #6\XINT_revwbr_finish_c \xint_gobble_iii
+ #7\XINT_revwbr_finish_c \xint_gobble_ii
+ \R\XINT_revwbr_finish_c \xint_gobble_i\Z
+}%
+\edef\XINT_revwbr_finish_c #1#2\Z {\noexpand\expandafter\space #1}%
\def\xintZapFirstSpaces {\romannumeral0\xintzapfirstspaces }%
\long\edef\xintzapfirstspaces #1%
{\noexpand\XINT_zapbsp_a \space #1\xint_relax \space\space\xint_relax }%
@@ -196,18 +191,14 @@
\def\XINT_csvtol_finish_b #1,#2,#3,#4,#5,#6,#7,#8\Z
{%
\xint_gob_til_R
- #1\XINT_csvtol_finish_c \xint_c_viii
- #2\XINT_csvtol_finish_c \xint_c_vii
- #3\XINT_csvtol_finish_c \xint_c_vi
- #4\XINT_csvtol_finish_c \xint_c_v
- #5\XINT_csvtol_finish_c \xint_c_iv
- #6\XINT_csvtol_finish_c \xint_c_iii
- #7\XINT_csvtol_finish_c \xint_c_ii
- \R\XINT_csvtol_finish_c \xint_c_i\Z
-}%
-\def\XINT_csvtol_finish_c #1#2\Z
-{%
- \csname XINT_csvtol_finish_d\romannumeral #1\endcsname
+ #1\expandafter\XINT_csvtol_finish_dviii\xint_gob_til_Z
+ #2\expandafter\XINT_csvtol_finish_dvii \xint_gob_til_Z
+ #3\expandafter\XINT_csvtol_finish_dvi \xint_gob_til_Z
+ #4\expandafter\XINT_csvtol_finish_dv \xint_gob_til_Z
+ #5\expandafter\XINT_csvtol_finish_div \xint_gob_til_Z
+ #6\expandafter\XINT_csvtol_finish_diii \xint_gob_til_Z
+ #7\expandafter\XINT_csvtol_finish_dii \xint_gob_til_Z
+ \R\XINT_csvtol_finish_di \Z
}%
\long\def\XINT_csvtol_finish_dviii #1#2#3#4#5#6#7#8#9{ #9}%
\long\def\XINT_csvtol_finish_dvii #1#2#3#4#5#6#7#8#9{ #9{#1}}%
@@ -217,7 +208,7 @@
\long\def\XINT_csvtol_finish_diii #1#2#3#4#5#6#7#8#9{ #9{#1}{#2}{#3}{#4}{#5}}%
\long\def\XINT_csvtol_finish_dii #1#2#3#4#5#6#7#8#9%
{ #9{#1}{#2}{#3}{#4}{#5}{#6}}%
-\long\def\XINT_csvtol_finish_di #1#2#3#4#5#6#7#8#9%
+\long\def\XINT_csvtol_finish_di\Z #1#2#3#4#5#6#7#8#9%
{ #9{#1}{#2}{#3}{#4}{#5}{#6}{#7}}%
\def\xintListWithSep {\romannumeral0\xintlistwithsep }%
\def\xintListWithSepNoExpand {\romannumeral0\xintlistwithsepnoexpand }%
@@ -965,27 +956,35 @@
}%
\long\def\XINT_assign_a #1\to
{%
- \expandafter\XINT_assign_b\romannumeral-`0#1{}\to
+ \def\XINT_flet_macro{\XINT_assign_b}%
+ \expandafter\XINT_flet_zapsp\romannumeral-`0#1\xint_relax\to
+}%
+\long\def\XINT_assign_b
+{%
+ \ifx\XINT_token\bgroup
+ \expandafter\XINT_assign_c
+ \else\expandafter\XINT_assign_f
+ \fi
+}%
+\long\def\XINT_assign_f #1\xint_relax\to #2%
+{%
+ \XINT_assign_def #2{#1}%
}%
-\long\def\XINT_assign_b #1% attention to the # at the beginning of next line
-#{%
+\long\def\XINT_assign_c #1%
+{%
\def\xint_temp {#1}%
- \ifx\empty\xint_temp
- \expandafter\XINT_assign_c
+ \ifx\xint_temp\xint_brelax
+ \expandafter\XINT_assign_e
\else
\expandafter\XINT_assign_d
\fi
}%
-\long\def\XINT_assign_c #1#2\to #3%
-{%
- \XINT_assign_def #3{#1}%
- \def\xint_temp {#2}%
- \unless\ifx\empty\xint_temp\xint_afterfi{\XINT_assign_b #2\to }\fi
-}%
-\def\XINT_assign_d #1\to #2% normally #1 is {} here.
+\long\def\XINT_assign_d #1\to #2%
{%
\expandafter\XINT_assign_def\expandafter #2\expandafter{\xint_temp}%
+ \XINT_assign_c #1\to
}%
+\def\XINT_assign_e #1\to {}%
\def\xintRelaxArray #1%
{%
\edef\XINT_restoreescapechar {\escapechar\the\escapechar\relax}%