diff options
author | Karl Berry <karl@freefriends.org> | 2013-05-17 22:26:13 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2013-05-17 22:26:13 +0000 |
commit | 80eb7bfc5d988aac41d54fb476da10747288bf1c (patch) | |
tree | 5690a4b3e07227d1db88bd999d14c81be3f31b64 /Master | |
parent | 10710410fa127b4c7ebef6d49956901b912b16ba (diff) |
xint (17may13)
git-svn-id: svn://tug.org/texlive/trunk@30528 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r-- | Master/texmf-dist/doc/generic/xint/README | 2 | ||||
-rw-r--r-- | Master/texmf-dist/doc/generic/xint/xint.pdf | bin | 512307 -> 519270 bytes | |||
-rw-r--r-- | Master/texmf-dist/source/generic/xint/xint.dtx | 7975 | ||||
-rw-r--r-- | Master/texmf-dist/source/generic/xint/xint.ins | 2 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/xint/xint.sty | 3464 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/xint/xintcfrac.sty | 831 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/xint/xintfrac.sty | 1072 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/xint/xintgcd.sty | 295 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/xint/xintseries.sty | 215 |
9 files changed, 6853 insertions, 7003 deletions
diff --git a/Master/texmf-dist/doc/generic/xint/README b/Master/texmf-dist/doc/generic/xint/README index 47c8fd386f3..fa4d92bddcd 100644 --- a/Master/texmf-dist/doc/generic/xint/README +++ b/Master/texmf-dist/doc/generic/xint/README @@ -6,7 +6,7 @@ % xintseries.sty Expandable partial sums with xint package % xintcfrac.sty Expandable continued fractions with xint package % Copyright (C) 2013 by Jean-Francois Burnol -% Version: v1.06a (2013/05/09) +% Version: v1.06b (2013/05/14) %---------------------------------------------------------------- This work consists of the source file xint.dtx and of its derived files diff --git a/Master/texmf-dist/doc/generic/xint/xint.pdf b/Master/texmf-dist/doc/generic/xint/xint.pdf Binary files differindex d0dda761312..dc6f5d118e8 100644 --- a/Master/texmf-dist/doc/generic/xint/xint.pdf +++ b/Master/texmf-dist/doc/generic/xint/xint.pdf diff --git a/Master/texmf-dist/source/generic/xint/xint.dtx b/Master/texmf-dist/source/generic/xint/xint.dtx index e5738eb7a07..34f86ef47b8 100644 --- a/Master/texmf-dist/source/generic/xint/xint.dtx +++ b/Master/texmf-dist/source/generic/xint/xint.dtx @@ -1,23 +1,17 @@ % -*- coding: iso-latin-1; -*- -% This file: xint.dtx (1.06a, 2013/05/09) -%% -%%---------------------------------------------------------------- -%% The xint bundle (version 1.06a of May 9, 2013) -%<xint>%% xint: Expandable operations on long numbers -%<xintgcd>%% xintgcd: Euclidean algorithm with xint package -%<xintfrac>%% xintfrac: Expandable operations on fractions -%<xintseries>%% xintseries: Expandable partial sums with xint package -%<xintcfrac>%% xintcfrac: Expandable continued fractions with xint package -%% Copyright (C) 2013 by Jean-Francois Burnol -%%---------------------------------------------------------------- -%% -% Style files in the bundle: +% This file: xint.dtx (1.06b, 2013/05/14) +% +% Style files which will self-extract from xint.dtx: % (base) xint.sty Expandable operations on long numbers % xintgcd.sty Euclidean algorithm with xint package % xintfrac.sty Expandable operations on fractions % xintseries.sty Expandable partial sums with xint package % xintcfrac.sty Expandable continued fractions with xint package +% May be used with Plain TeX (\input) or as LaTeX packages (\usepackage) % +% License +% ======= +% % This work consists of the source file xint.dtx and of its derived files % xint.sty, xintgcd.sty, xintfrac.sty, xintseries.sty, xintcfrac.sty, xint.ins % and the documentation xint.pdf (or xint.dvi). @@ -32,8 +26,8 @@ % and version 1.3 or later is part of all distributions of % LaTeX version 2005/12/01 or later. % -% The author of this work is Jean-Francois Burnol <jfbu at free dot fr>. -% This work has the LPPL maintenance status `author-maintained'. +% The author of this work is Jean-Francois Burnol <jfbu at free dot fr>. +% This work has the LPPL maintenance status `author-maintained'. % % Installation and Usage: % ======================= @@ -59,8 +53,8 @@ % xint.dtx --> TDS:source/generic/xint/ % xint.pdf --> TDS:doc/generic/xint/ % -% It may be necessary to then refresh the TeX installation filename -% database. +% It may be necessary to then refresh the TeX installation filename +% database. % % Usage with LaTeX: \usepackage{xint} % \usepackage{xintgcd} % (loads xint) @@ -74,10 +68,21 @@ % \input xintseries.sty\relax % (loads xintfrac) % \input xintcfrac.sty\relax % (loads xintfrac) % +%% +%%---------------------------------------------------------------- +%% The xint bundle (version 1.06b of May 14, 2013) +%<xint>%% xint: Expandable operations on long numbers +%<xintgcd>%% xintgcd: Euclidean algorithm with xint package +%<xintfrac>%% xintfrac: Expandable operations on fractions +%<xintseries>%% xintseries: Expandable partial sums with xint package +%<xintcfrac>%% xintcfrac: Expandable continued fractions with xint package +%% Copyright (C) 2013 by Jean-Francois Burnol +%%---------------------------------------------------------------- +%% %<*none> -\def\lasttimestamp{Time-stamp: <09-05-2013 08:51:48 CEST BURNOL>} -\def\pkgversion{1.06a} -\def\pkgdate{2013/05/09} +\def\lasttimestamp{Time-stamp: <14-05-2013 22:00:09 CEST jfb>} +\def\pkgversion{1.06b} +\def\pkgdate{2013/05/14} \def\striptimestamp #1 <#2 #3 #4 #5>{#2 at #3 #4} \def\getdocdate #1 <#2-#3-#4 #5>{#4/#3/#2} \edef\docdate{\expandafter\getdocdate\lasttimestamp} @@ -123,7 +128,6 @@ \ProvidesFile{xint.dtx}[bundle source and documentation (\dtxtimestamp)] \documentclass[a4paper,11pt,abstract]{scrdoc} -%\OnlyDescription \pagestyle{headings} \usepackage[latin1]{inputenc} @@ -162,7 +166,7 @@ % attention de positionner \toctransition *après* le début de la section % "implémentation de xint" -\def\stripatdot #1.{} +\def\gobbletodot #1.{} \let\savedsectionline\l@section \etocsetstyle{section}{}{} @@ -174,7 +178,7 @@ \setlength{\columnsep}{1.5em} \begin{multicols}{2}}{} {\noindent\makebox[1.5em][l] - {\ttfamily\expandafter\stripatdot\etocthenumber}% + {\ttfamily\expandafter\gobbletodot\etocthenumber}% \etocname\leaders\etoctoclineleaders\hfill {\normalfont\etocpage}\endgraf} {\end{multicols}\endgroup}% @@ -246,6 +250,9 @@ \usepackage[english]{babel} \usepackage[autolanguage,np]{numprint} +\AtBeginDocument{ +\npthousandsep{,\hskip .16667em plus .01em minus .01em}} + \usepackage[pdfencoding=pdfdoc,bookmarks=true]{hyperref} @@ -281,17 +288,11 @@ pdfpagemode=UseOutlines} {\hbox to \linewidth \bgroup \hss \bgroup \aftergroup\centeredline@ } \makeatother -%---- ALLOWING COMMENTS INSIDE VERBATIM BLOCKS +%---- MODIFIED \verb, and verbatim like `environments' FITS BETTER OUR USE OF IT \makeatletter -\let\original@check@percent\check@percent -\let\check@percent\relax -\makeatother - -%---- A MODIFIED \verb, FITS BETTER OUR USE OF IT -\makeatletter -% le \verb de doc.sty est très chiant car il a retiré -% \verbatim@font pour mettre un \ttfamily hard-coded -% à la place. +% le \verb de doc.sty est très chiant car il a retiré \verbatim@font pour mettre +% un \ttfamily hard-coded à la place. [en fin de compte j'utilise dorénavant le +% vocable \MicroFont plutôt que \verbatim@font] % % Par ailleurs j'en ai marre des erreurs dues au fait que mes % paragraphes reformatés dans emacs passent à la ligne au milieu @@ -303,50 +304,139 @@ pdfpagemode=UseOutlines} % Et il n'y avait donc pas de \obeylines puisque la fin de ligne % devenait un message d'erreur dans \verb@eol@error % -% De plus je retire le \do@noligs qui me gêne plutôt qu'autre chose, -% surtout maintenant que les espaces ne sont pas des control spaces +% à propos \do@noligs: +% macro:#1->\catcode `#1\active \begingroup \lccode `\~=`#1\relax \lowercase +% {\endgroup \def ~{\leavevmode \kern \z@ \char `#1}} +% ne manque-t-il pas un espace après le \char `#1? En effet! ça me pose des +% problèmes lorsque l'espace a catcode 10!! % -% attention au signe - par contre, on ne veut *pas* de ligatures avec lui +% attention au signe - par contre, on ne veut vraiment *pas* de ligatures avec +% lui, donc pour lui et seulement pour lui je fais le boulot de \do@noligs. OK, +% je pense que la raison pour laquelle je ne le faisais que pour - est celle du +% paragraphe précédent que je viens d'ajouter, donc finalement je fais le +% \do@noligs entier +% \catcode`\-\active \def-{\kern \z@ \char`\- } % -\def\noligminus {\kern \z@ \char`\-} -\begingroup\catcode`\-\active -\gdef\verb {\relax \ifmmode \hbox \else \leavevmode \null \fi - \bgroup \verbatim@font - \let \do \@makeother \dospecials \catcode`\-\active - \let-\noligminus \catcode32 10 \@ifstar {\@sverb }{\@sverb }} -\endgroup -% ça c'est pour mes petits morceaux de code: -\def\verbatim@font {\ttfamily } -\def\MacroFont{\ttfamily\baselineskip12pt\relax} -% Mais j'ai besoin d'un verbatim différent pour les nombres car je -% ne veux pas passer en mode mathématique et je ne veux pas les 0 -% du txtt pour cela. Comme je n'utilise pas de tabulation, je vais -% prendre & +% 12 et 13 mai 2013. Je dois m'occuper des verbatim, et comme je n'ai (pas ou +% plus) envie de perdre du temps à aller re-regarder verbatim et en particulier +% son emploi de trivlist, avec les conséquences *lamentables* sur les +% espacements verticaux je décide de tester une variante de \verb spécialement +% pour remplacer mes blocs verbatim, particulièrement dans le code commenté. Et +% voilà \lverb! bye bye \begin{verbatim} +% +% bref, pour \lverb: d'abord il est \long. Ensuite j'utilise $ si j'ai besoin de +% control sequences. En fait j'ai juste eu besoin pour \%. Car le % lui je le +% mets (maintiens, donc la partie implémentation) à ignore. Ah, et finalement +% j'utilise aussi $\. Les espaces sont normaux. +% Enfin, je fais de & un caractère de commentaires. Tout cela c'est pour +% la partie Implémentation. +% +% Pour les verbatim dans la partie user manual, je fais une variante \dverb, qui +% elle respecte les lignes, en utilisant \obeylines. +% +\def\MicroFont {\ttfamily } +\def\MacroFont {\ttfamily\baselineskip12pt\relax} +% modif de \do@noligs: \char`#1} --> \char`#1 } +\def\do@noligs #1% +{% + \catcode `#1\active + \begingroup \lccode `\~=`#1\relax + \lowercase {\endgroup \def ~{\leavevmode \kern \z@ \char `#1 }}% +} +\def\verb +{% + \relax \ifmmode\hbox\else\leavevmode\null\fi + \bgroup \MicroFont + \let\do\do@noligs \verbatim@nolig@list + \let\do\@makeother \dospecials + \catcode32 10 \@jfverb +} +\def\@jfverb #1{\catcode`#1\active\lccode`\~`#1\lowercase{\let~\egroup}} +% ATTENTION! +% \def~{\\\relax} cause des problèmes infinis. Donc je vais simplement utiliser +% dans les parties commentées du code $\ puisque $ a catcode 0. +% attention à [, donc $\$relax en un endroit. +\long\def\lverb % pour utilisation dans la partie implémentation +{% + \relax\par\smallskip\noindent\null + \begingroup + \let\par\@@par\hbadness 100 \hfuzz 100pt\relax + \hsize .85\hsize + \MacroFont + \bgroup + \aftergroup\@@par \aftergroup\endgroup \aftergroup\medskip + \let\do\do@noligs \verbatim@nolig@list + \let\do\@makeother \dospecials + \catcode32 10 \catcode`\% 9 \catcode`\& 14 \catcode`\$ 0 + \@jfverb +} +% et voilà. Comme quoi, on peut aussi faire sans \trivlist si on veut. +\long\def\dverb % pour utilisation dans le manuel de l'utilisateur +% contrairement à \lverb, ici, on fait \obeylines +% à utiliser sous la forme: (ou avec un autre à la place de |)(on aurait pu +% imaginer aussi prendre ^^A ou dans le genre +% \dverb|& +% blahblah +% | +% pour qu'il y ait bien un dernier end of line, qui est compensé a posteriori +{% + \relax\par\smallskip + \bgroup + \parindent0pt + % \parskip0pt + \def\par{\@@par\leavevmode\null}% + \let\do\do@noligs \verbatim@nolig@list + \let\do\@makeother \dospecials + \catcode`\& 14 + \aftergroup\vskip\aftergroup-\aftergroup\baselineskip + \aftergroup\smallskip + \aftergroup\noindent\aftergroup\ignorespaces + \MacroFont \obeylines \@vobeyspaces + \@jfverb +} +% Mais j'ai besoin d'un mode verbatim différent pour les nombres car je +% ne veux pas passer en mode mathématique (que j'aime de moins en moins) et je +% ne veux pas les 0 du txtt pour cela. Comme je n'utilise pas de tabulation, je +% vais prendre & \catcode`\& 13 -\def&{\begingroup\let\do\@makeother\dospecials\catcode`\& 13 \@jfverb } -\def\@jfverb #1&{#1\endgroup } +\def&{\begingroup + \let\do\@makeother\dospecials + \catcode`\& 13 + \@jfendshrtverb } +\def\@jfendshrtverb #1&{#1\endgroup } \makeatother % Note: il n'y a plus de \hyphenchar-1 dans le \DeclareFontFamily de t1txtt % ATTENTION CEPENDANT À CE QUI SE PASSE EN CAS DE CHANGEMENT DE TAILLE -\DeclareRobustCommand\csa[1]{{\ttfamily\hyphenchar\font45 \char`\\#1}} -\DeclareRobustCommand\csb[1]{\hyperref[#1]{\color{blue}\ttfamily - \hyphenchar\font45 \char`\\#1}} -\DeclareRobustCommand\csbnolk[1]{{\color{blue}\ttfamily - \hyphenchar\font45 \char`\\#1}} +% 11 mai 2013: j'utilise dorénavant _ là où avant c'était @ +\catcode`\_=11 + +\def\csa_aux #1{\ttfamily\hyphenchar\font45 \char`\\#1\endgroup } + +\def\csb_aux #1{\hyperref[#1]{\color{blue}\ttfamily + \hyphenchar\font45 \char`\\#1}\endgroup } + +\DeclareRobustCommand\csa {\begingroup\catcode`\_=11 \csa_aux } +\DeclareRobustCommand\csb {\begingroup\catcode`\_=11 \csb_aux } +\DeclareRobustCommand\csbnolk {\begingroup\catcode`\_=11 \color{blue}\csa_aux } \newcommand\csh[1]{\texorpdfstring{\csa{#1}}{\textbackslash #1}} \newcommand\csbh[1]{\texorpdfstring{\csbnolk{#1}}{\textbackslash #1}} -\makeatletter -\@for\x:=xint,xintgcd,xintfrac,xintseries,xintcfrac\do -{\expandafter\edef\csname\x name\endcsname - {\noexpand\texorpdfstring{{\noexpand\color{joli}\noexpand\ttfamily - \hyphenchar\font45 - \noexpand\bfseries \x}} - {\x}\noexpand\xspace}} -\makeatother +\catcode`\_=8 + +\def\xintpackagenamedef #1% +{% + \expandafter\def\csname #1name\endcsname + {\texorpdfstring + {{\color{joli}\ttfamily\hyphenchar\font45 \bfseries #1}} + {#1}% + \xspace }% +}% +\xintApplyUnbraced\xintpackagenamedef + {{xint}{xintgcd}{xintfrac}{xintseries}{xintcfrac}} + \frenchspacing \renewcommand\familydefault\sfdefault @@ -369,6 +459,7 @@ pdfpagemode=UseOutlines} \thispagestyle{empty} \rmfamily + \pdfbookmark[1]{Title page}{TOP} {\normalfont\Large\parindent0pt \parfillskip 0pt\relax @@ -442,18 +533,46 @@ Here are some examples: {\xintiSub {\xintiPow {2}{200}}{1}}\to\A\B\U\V\D \printnumber\U$\times$(&7^200-3^200&)+\printnumber{\xintiOpp\V}$\times$(&2^200-1&)=\printnumber\D -{\color{magenta}The Euclide algorithm applied to - \np{179876541573} - and \np{66172838904}:}\\ +{\color{magenta}The Euclide algorithm applied to \np{179876541573} and + \np{66172838904}:}\footnote{this example is computed tremendously faster than + the + other ones, but we had to limit the space taken by the output.}\\ {\color{blue}|\xintTypesetEuclideAlgorithm {179876541573}{66172838904}|} -\xintTypesetEuclideAlgorithm {179876541573}{66172838904} - - +\xintTypesetEuclideAlgorithm {179876541573}{66172838904} \smallskip + +{\color{magenta}$\sum_{n=1}^{500} (4n^2 - 9)^{-2}$ with each term rounded to + twelve digits, and the sum to nine digits:} {\color{blue}% + |\def\coeff #1%|\\ + | {\xintiRound {12}{1/\xintiSqr{\the\numexpr 4*#1*#1-9\relax }[0]}}|\\ + |\xintRound {9}{\xintiSeries {1}{500}{\coeff}[-12]}|:} \def\coeff #1% +{\xintiRound {12}{1/\xintiSqr{\the\numexpr 4*#1*#1-9\relax }[0]}} \xintRound +{9}{\xintiSeries {1}{500}{\coeff}[-12]}\endgraf The complete series, extended to +infinity, has value +$\frac{\pi^2}{144}-\frac1{162}={}$\np{0.06236607994583659534684445}\dots\,% +\footnote{\label{fn:np}This number is typeset using the + \href{http://www.ctan.org/pkg/numprint}{\color{niceone}numprint} package, with + \texttt{\detokenize{\npthousandsep{,\hskip .16667em plus .01em minus .01em}}}. But the breaking accross + lines works only in text mode. The number itself was (of course...) computed + initially with \xintname, with 30 digits of $\pi$ as input. + See + \hyperref[ssec:Machin]{\color{niceone}{how \xintname may compute $\pi$ + from scratch}}.} I also used (this is a lengthier computation +than the one above) \xintseriesname to evaluate the sum with \np{100000} terms, +obtaining 16 +correct decimal digits for the complete sum. The +coefficient macro must be redefined to avoid a |\numexpr| overflow, as +|\numexpr| inputs must not exceed &2^31-1&; my choice +was: +{\color{blue}\dverb|& +\def\coeff #1% +{\xintiRound {22}{1/\xintiSqr{\xintiMul{\the\numexpr 2*#1-3\relax} + {\the\numexpr 2*#1+3\relax}}[0]}} +|} The first example uses only the base module \xintname, the next two require -loading also the \xintfracname package, which deals with fractions. The last two -require the \xintgcdname package. The bundle also comprises the \xintseriesname -package, for partial sums of series with fractional coefficients, and -\xintcfracname for continued fractions computations. +loading also the \xintfracname package, which deals with fractions. Then two +examples with the \xintgcdname package, and finally one with the +\xintseriesname package, for partial sums of series with fractional +coefficients. There is also \xintcfracname for continued fractions computations. To see more of \xintname in action, jump to the {\color{niceone}\autoref{sec:series}} describing the commands of the @@ -570,12 +689,12 @@ The present package is the result of this initial questioning. Except for some specific macros dealing with assignments or typesetting, the bundle macros all work in expansion-only context. For example, with the following code snippet within |myfile.tex|: -\begin{verbatim} +\dverb|& \newwrite\outfile \immediate\openout\outfile \jobname-out\relax \immediate\write\outfile {\xintQuo{\xintPow{2}{1000}}{\xintFac{100}}} % \immediate\closeout\outfile -\end{verbatim} +| the tex run creates a file |myfile-out.tex| containing the decimal representation of the integer quotient &2^{1000}/100!&. Such macros can also be used inside a |\csname...\endcsname|, and @@ -594,16 +713,19 @@ print them here: \printnumber\x. For the sake of typesetting this documentation and not have big numbers extend into the margin and go beyond the page physical limits, I use these commands (not provided by the package): -\begin{verbatim} +\dverb|& \def\allowsplits #1{\ifx #1\relax \else #1\hskip 0pt plus 1pt \relax \expandafter\allowsplits\fi}% \def\printnumber #1{\expandafter\expandafter\expandafter \allowsplits #1\relax }% % Expands twice before printing. -\end{verbatim} +| The |\printnumber| macro is not part of the package and would need additional -thinking for more general use. It may be used as |\printnumber +thinking for more general use.\footnote{as explained in + \hyperref[fn:np]{\color{niceone}a previous footnote}, + the |numprint| package may also be used, in text mode only (as the thousand + separator seemingly ends up typeset in a |\string\hbox| when in math mode).} It may be used as |\printnumber {\xintQuo{\xintPow {2}{1000}}{\xintFac{100}}}|, or as |\printnumber\mynumber| if the macro |\mynumber| was previously defined via an |\edef|, as for example:\centeredline{ |\edef\mynumber {\|\texttt{xintQuo}|{\xintPow @@ -1007,10 +1129,10 @@ digits. Using |\ifcase\xintSgn\A| without the braces is very dangerous, because the blanks (including the end of line) following |\A| will be skipped and not serve to stop the number which |\ifcase| is looking for. With |\def\A{1}|: -\begin{verbatim} +\dverb|& \ifcase \xintSgn\A 0\or OK\else ERROR\fi ---> gives ERROR \ifcase \xintSgn{\A} 0\or OK\else ERROR\fi ---> gives OK -\end{verbatim} +| % \def\A{1} % \ifcase \xintSgn\A 0\or OK\else ERROR\fi\ % \ifcase \xintSgn{\A} 0\or OK\else ERROR\fi @@ -1082,7 +1204,7 @@ expandability. For example why not allow oneself the two definitions }}}\vskip\dp\strutbox } so it is completely\strut{} expanded and may be a count register, not necessarily prefixed by |\the| or |\number|. Consider the following code snippet: -\begin{verbatim} +\dverb+& \newcount\cnta \newcount\cntb \begingroup @@ -1100,7 +1222,7 @@ their squares is \the\cntb. These digits are, from the least to the most significant: \cnta = \Out{0} \loop \Out{\cnta}\ifnum \cnta > 1 \advance\cnta -1 , \repeat. \endgroup -\end{verbatim} ++ \edef\z{\xintiPow {2}{100}} @@ -1178,12 +1300,13 @@ things', which were treated un-expandably in the previous section with \csb{xintReverseOrder}, \csb{xintLen} and \csb{xintLength} since the first release, \csb{xintApply} and \csb{xintListWithSep} since |1.04|, \csb{xintRevWithBraces}, -\csb{xintCSVtoList}, \csb{xintNthElt} now with |1.06|. +\csb{xintCSVtoList}, \csb{xintNthElt} with |1.06|, and +\csb{xintApplyUnbraced}, new with |1.06b|. \edef\z{\xintiPow {2}{100}} As an example the following code uses only expandable operations: -\begin{verbatim} +\dverb+& |2^{100}| (=\xintiPow {2}{100}) has \xintLen{\xintiPow {2}{100}}} digits and the sum of their squares is \xintiSum{\xintApply {\xintiSqr}{\xintiPow {2}{100}}}. @@ -1191,7 +1314,7 @@ These digits are, from the least to the most significant: \xintListWithSep {, }{\xintRev{\xintiPow {2}{100}}}. The thirteenth most significant digit is \xintNthElt{13}{\xintiPow {2}{100}}. The seventh least significant one is \xintNthElt{7}{\xintRev{\xintiPow {2}{100}}}. -\end{verbatim} ++ |2^{100}| (=\z) has \xintLen{\z} digits and the sum of their squares is \xintiSum{\xintApply\xintiSqr\z}. These digits are, from the least to the most significant: \xintListWithSep {, }{\xintRev\z}. The @@ -1204,9 +1327,9 @@ least significant one is \xintNthElt{7}{\xintRev\z}. % significant digit is \xintNthElt{13}{\xintiPow {2}{100}}. The seventh least % significant one is \xintNthElt{7}{\xintRev{\xintiPow {2}{100}}}. -Of course, with an earlier -|\edef\z{\xintiPow {2}{100}}|, using |\z| in place of - |\xintiPow {2}{100}| everywhere would spare the CPU some repetitions. +Of course, it would be nicer to do +|\edef\z{\xintiPow {2}{100}}|, and then use |\z| in place of + |\xintiPow {2}{100}| everywhere as this would spare the CPU some repetitions. \section{Exceptions (error messages)} @@ -1219,7 +1342,7 @@ end of the expansion so as to not disturb further processing of the token stream, after completion of the operation. Generally the problematic operation will output a zero. Possible such error message control sequences: -\begin{verbatim} +\dverb|& \xintError:ArrayIndexIsNegative \xintError:ArrayIndexBeyondLimit \xintError:FactorialOfNegativeNumber @@ -1232,7 +1355,7 @@ sequences: \xintError:TooBigDecimalShift \xintError:TooBigDecimalSplit \xintError:NoBezoutForZeros -\end{verbatim} +| \section{Common input errors when using the package macros} @@ -1259,17 +1382,22 @@ others are more annoying as they may pass through unsignaled. \section{Package namespace} Inner macros of \xintname, \xintgcdname, \xintfracname, \xintseriesname, and -\xintcfracname{} all begin either with |\XINT@| or with |\xint@|. The package -public commands all start with |\xint|. The major forms have their initials +\xintcfracname{} all begin either with |\XINT_| or with +|\xint_|.\footnote{starting with release |1.06b| the style files use for macro + names a more modern underscore |\_| rather than the |@| sign. Probability of a + name clash with \LaTeX2e packages is now even closer to nil, and with \LaTeX3 + packages it is also close to nil as our control sequences are all lacking the + argument specifier part of \LaTeX3 function names.} The package public +commands all start with |\xint|. The major forms have their initials capitalized, and lowercase forms, prefixed with |\romannumeral0|, allow definitions of further macros expanding in only two steps to their final outputs. Some other control sequences are used only as delimiters, and left -undefined, they may have been defined elsewhere, their meaning doesn't matter +undefined, they may have been defined elsewhere, their meaning doesn't matter and is not touched. \section{Loading and usage} -\begin{verbatim} +\dverb|& Usage with LaTeX: \usepackage{xint} \usepackage{xintgcd} % (loads xint) \usepackage{xintfrac} % (loads xint) @@ -1281,7 +1409,7 @@ Usage with TeX: \input xint.sty\relax \input xintfrac.sty\relax % (loads xint) \input xintseries.sty\relax % (loads xintfrac) \input xintcfrac.sty\relax % (loads xintfrac) -\end{verbatim} +| We have added, directly copied from packages by \textsc{Heiko Oberdiek}, a mecanism of re-load and \eTeX{} detection, @@ -1324,7 +1452,7 @@ compatible. \csa{xintTypesetBezoutAlgorithm} also uses the \section{Installation} -\begin{verbatim} +\dverb+& Run tex or latex on xint.dtx. This will extract the style files xint.sty, xintgcd.sty, xintfrac.sty, @@ -1348,7 +1476,7 @@ To get xint.pdf run pdflatex thrice on xint.dtx It may be necessary to then refresh the TeX installation filename database. -\end{verbatim} ++ \section{Commands of the \xintname package} @@ -1415,8 +1543,8 @@ expands its argument (in the manner described, triggered by a \csa{xintReverseOrder}\marg{list} does not do any expansion of its argument and just reverses the order of the -tokens in the `list'.\footnote{the argument is not a token list variable, just a - `list' of tokens.} Brace pairs encountered are removed once and the enclosed +tokens in the \meta{list}.\footnote{the argument is not a token list variable, just a + \meta{list} of tokens.} Brace pairs encountered are removed once and the enclosed material does not get reverted. Spaces are gobbled. \centeredline{|\xintReverseOrder{\xintDigitsOf\xintiPow {2}{100}\to\Stuff}|} \centeredline{gives: \ttfamily{\string\Stuff\string\to1002\string\xintiPow\string\xintDigitsOf}} @@ -1434,7 +1562,8 @@ material does not get reverted. Spaces are gobbled. (which thus may be macro), then it reverses the order of the tokens, or braced material, it encounters, adding a pair of braces to each (thus, maintaining brace pairs already existing). Spaces (in-between external brace pairs) are -gobbled. This macro is mainly thought out for use on a `list' of such braced +gobbled. This macro is mainly thought out for use on a \meta{list} of such +braced material; with such a list as argument the expansion will only hit against the first opening brace, hence do nothing, and the braced stuff may thus be macros one does not want to expand. \centeredline{|\edef\x{\xintRevWithBraces{12345}}|} @@ -1444,7 +1573,8 @@ one does not want to expand. \centeredline{|\edef\x{\xintRevWithBraces{12345}}|} defined with |\edef|'s because the braced material did not contain macros. Alternatively: \centeredline{|\expandafter\def\expandafter\w\expandafter|}% \centeredline{|{\romannumeral0\xintrevwithbraces{{\A}{\B}{\C}{\D}{\E}}}|} -\centeredline{|\meaning\w:|\ttfamily{\meaning\w}} The private macro |\XINT@RWB| +\centeredline{|\meaning\w:|\ttfamily{\meaning\w}} The macro +\csa{xintReverseWithBracesNoExpand} does the same job without the initial expansion of its argument. \subsection{\csbh{xintLen}}\label{xintiLen} @@ -1475,15 +1605,20 @@ count as one. \centeredline{|\xintLength {\xintiPow \def\y {a,b,c,d,e} \edef\z{\xintCSVtoList \y} -\makeatletter \csa{xintCSVtoList}|{a,b,c...,z}| returns |{a}{b}{c}...{z}|. The -argument may be a macro. It is first expanded: this means that if the argument -is |a,b,..|, then |a|, if a macro, will be expanded which may or may not be a -good thing. Chains of contiguous spaces are collapsed by the \TeX{} scanning -into single spaces. \centeredline{|\xintCSVtoList {1,2,a , b ,c d,x,y - }->|\texttt{\expandafter\strip@prefix\meaning\X}} -\centeredline{|\def\y{a,b,c,d,e}\xintCSVtoList\y->|\texttt{\expandafter\strip@prefix\meaning\z}} -The private macro |\XINT@CSVtoL| does the same job without the initial -expansion. \makeatother +\csa{xintCSVtoList}|{a,b,c...,z}| returns |{a}{b}{c}...{z}|. The argument may be +a macro. It is first expanded: this means that if the argument is |a,b,..|, then +|a|, if a macro, will be expanded which may or may not be a good thing (starting +the replacement text of the macro with |\space| stops the expansion at the first +level and gobbles +the space; prefixing a macro with |\space| stops preemptively the expansion and +gobbles the space). Chains of +contiguous spaces are collapsed by the \TeX{} scanning into single spaces. +\centeredline{|\xintCSVtoList {1,2,a , b ,c d,x,y + }->|\makeatletter\texttt{\expandafter\strip@prefix\meaning\X}\makeatother} +\centeredline{|\def\y{a,b,c,d,e}\xintCSVtoList\y->|\makeatletter\texttt{\expandafter\strip@prefix\meaning\z}\makeatother} + +% The macro \csa{xintCSVtoListNoExpand} does the same job without the initial +% expansion. \subsection{\csbh{xintNthElt}}\label{xintNthElt} @@ -1500,20 +1635,20 @@ thirty-seventh digit of &100!&. \centeredline{|\xintNthElt {10}{\xintFtoCv {566827/208524}}=|\texttt{\xintNthElt {10}{\xintFtoCv {566827/208524}}}} is the tenth convergent of &566827/208524& (uses \xintcfracname package). -If |x=0| -or |x<0|, the macro returns the length of the expanded list: this is not -equivalent to \csb{xintLength} due to the initial full expansion of the first -token, and differs from \csb{xintLen} which is to be used on numbers or +If |x=0| or |x<0|, the macro returns the length of the expanded list: this is +not equivalent to \csb{xintLength} due to the initial full expansion of the +first token, and differs from \csb{xintLen} which is to be used on numbers or fractions only. The situation with |x| larger than the length of the list is kept silent, the macro then returns nothing; this will perhaps be modified in future versions. \centeredline{|\xintNthElt {7}{\xintCSVtoList {1,2,3,4,5,6,7,8,9}}=|% \texttt{\xintNthElt {7}{\xintCSVtoList {1,2,3,4,5,6,7,8,9}}}}% -\centeredline{|\xintNthElt {0}{\xintCSVtoList - {1,2,3,4,5,6,7,8,9}}=|% - \texttt{\xintNthElt {0}{\xintCSVtoList {1,2,3,4,5,6,7,8,9}}}} The private -macro |\XINT@NthElt| does the same job without first expanding its second -argument. +\centeredline{|\xintNthElt {0}{\xintCSVtoList {1,2,3,4,5,6,7,8,9}}=|% + \texttt{\xintNthElt {0}{\xintCSVtoList {1,2,3,4,5,6,7,8,9}}}} + +% The macro +% \csa{xintNthEltNoExpand} does the same job without first expanding its +% second argument. \subsection{\csbh{xintListWithSep}}\label{xintListWithSep} @@ -1521,34 +1656,71 @@ argument. \def\macro #1{\the\numexpr 9-#1\relax} -\csa{xintListWithSep}|{sep}{list}| just inserts the given separator |sep| -in-between all elements of the given list. One level of braces is -removed. An empty input gives an empty output, a singleton gives a singleton, -the separator is used starting with at least two elements. The `list' argument -may be a macro: it is expanded. -\centeredline{|\xintListWithSep{:}{\xintFac +\csa{xintListWithSep}|{sep}|\marg{list} just inserts the given separator |sep| +in-between all elements of the given list: this separator may be a macro but +will not be expanded. The second argument also may be itself a macro: it is +expanded as usual, \emph{i.e.} fully for what comes first. Applying +\csa{xintListWithSep} removes one level of top braces to each list constituent. +An empty input gives an empty output, a singleton gives a singleton, the +separator is used starting with at least two elements. Using an empty separator +has the net effect of removing one-level of brace pairs from each ot the +top-level braced material constituting the \meta{list}. +\centeredline{|\xintListWithSep{:}{\xintFac {20}}=|\texttt{\xintListWithSep{:}{\xintFac {20}}}} -The private macro |XINT@LWS| does the same -job without the initial expansion. + +% The macro \csa{xintListWithSepNoExpand} does the same +% job without the initial expansion. \subsection{\csbh{xintApply}}\label{xintApply} -{\small New in release |1.04|.\par} +{\small New with release |1.04|.\par} \def\macro #1{\the\numexpr 9-#1\relax} -\csa{xintApply}|{\macro}{list}| applies the one parameter command |\macro| to -each item in the `list' (no separator) given as second argument. Each item is -given in turn as parameter to |\macro| which is (fully, as usual) expanded, and +\csa{xintApply}|{\macro}|\marg{list} applies the one parameter command |\macro| +to +each item in the \meta{list} (no separator) given as second argument. Each item +is +given in turn as parameter to |\macro| which is expanded (as usual, \emph{i.e.} +fully for what comes first), and the result is braced. On output, a new list with these braced results. The -`list' may itself be some macro expanding (in the previously described way) to +\meta{list} may itself be some macro expanding (in the previously described way) +to the list of tokens to which the command |\macro| will be applied. For example, -if the `list' expands to some positive number, then each digit will be replaced +if the \meta{list} expands to some positive number, then each digit will be +replaced by the result of applying |\macro| on it. \centeredline{|\def\macro #1{\the\numexpr 9-#1\relax}|} \centeredline{|\xintApply\macro{\xintFac - {20}}=|\texttt{\xintApply\macro{\xintFac {20}}}} The private macro -|XINT@Apply| does the same job without the first initial expansion providing the -`list'. + {20}}=|\texttt{\xintApply\macro{\xintFac {20}}}} + +% The macro +% \csa{xintApplyNoExpand} does the same job without the first initial expansion +% which gave the \meta{list} of braced tokens to which |\macro| is applied. + +\subsection{\csbh{xintApplyUnbraced}}\label{xintApplyUnbraced} + +{\small New in release |1.06b|.\par} + +\def\macro #1{\expandafter\def\csname myself#1\endcsname {#1}} +\xintApplyUnbraced\macro{{elta}{eltb}{eltc}} + +\csa{xintApplyUnbraced}|{\macro}|\marg{list} is like \csb{xintApply} except that +the +various outputs are not again braced. The net effect is the same as doing +\centeredline{|\xintListWithSep {}{\xintApply {\macro}|\marg{list}|}|} +This command is useful for non-expandable +things like doing macro definitions, for which braces are an inconvenience. +(sorry for the silly example: ) +% sorry also for the silly coding of the following verbatim block +\lverb|& +$ $ $ $ \def\macro #1{\expandafter\def\csname myself#1\endcsname {#1}}$\ +$null$ $ $ $ \xintApplyUnbraced\macro{{elta}{eltb}{eltc}}$\ +$null$ $ $ $ \meaning\myselfelta:$ $ $meaning$myselfelta +| +% The macro \csa{xintApplyUnbracedNoExpand} does the same job without the first +% initial expansion which gave the \meta{list} of braced tokens to which +% |\macro| +% is applied. \subsection{\csbh{xintAssign}}\label{xintAssign} @@ -1591,7 +1763,7 @@ pure expansion contexts, as assignments are made via the expands fully the first token then defines \csa{myArray} to be a macro with one parameter, such that \csa{myArray\x} expands in two steps (which provoke the full expansion of the `short' number \texttt{\x}, given to a -|\numexpr|) to give the |N|th braced +|\numexpr|) to give the |x|th braced thing, itself completely expanded. \csa{myArray}|{0}| returns the number |M| of elements of the array so that the successive elements are \csa{myArray}|{1}|, \dots, \csa{myArray}|{M}|. \centeredline{|\xintAssignArray\xintBezout @@ -2436,9 +2608,9 @@ as \csb{xintiNum}. \section{Commands of the \xintseriesname package}\label{sec:series} Some arguments to the package commands are macros which are expanded only later, -when given their parameters. The arguments serving as indices -({\color{niceone}new with |1.06|}) are systematically given to a |\numexpr| -expressions, hence fully expanded, they may be count registers, etc... +when given their parameters. The arguments serving as indices are systematically +given to a |\numexpr| expressions (new with |1.06|!) , hence fully expanded, +they may be count registers, etc... This package was first released with version |1.03| of the \xintname bundle. @@ -2457,15 +2629,14 @@ time of computing the successive |\coeff {n}|) should be defined as a one-parameter fully expandable command, providing its output from an input being an explicit number (string of digits, no need to make proviso for a count register). -\begin{verbatim} -\def\coeff #1{\xintiMON{#1}/#1.5} % (-1)^n/(n+1/2) +\dverb|& +\def\coeff #1{\xintiMON{#1}/#1.5} % (-1)^n/(n+1/2) \edef\w {\xintSeries {0}{50}{\coeff}} % we want to re-use it \edef\z {\xintJrr {\w}[0]} % the [0] for a microsecond gain. % \xintJrr preferred to \xintIrr: a big common factor is suspected. % But numbers much bigger would be needed to show the greater efficiency. \[ \sum_{n=0}^{n=50} \frac{(-1)^n}{n+\frac12} = \xintFrac\z \] -\end{verbatim} -\vspace*{-.5\baselineskip} +| \[ \sum_{n=0}^{n=50} \frac{(-1)^n}{n+\frac12} = \xintFrac\z \] For info, before action by |\xintJrr| the inner representation of the result has a denominator of |\xintLen {\xintDenominator\w}=|\xintLen @@ -2529,7 +2700,7 @@ digits) in the denominator. See the explanations in the next section. % \printnumber\z \setlength{\columnsep}{0pt} -\begin{verbatim} +\dverb|& \def\coeffleibnitz #1{\the\numexpr\ifodd #1 1\else-1\fi\relax/#1[0]} \cnta 1 \loop % in this loop we recompute from scratch each partial sum! @@ -2539,7 +2710,7 @@ digits) in the denominator. See the explanations in the next section. {\xintSeries {1}{\cnta}{\coeffleibnitz}}\dots \endgraf \ifnum\cnta < 30 \advance\cnta 1 \repeat -\end{verbatim} +| \begin{multicols}{3} \def\coeffleibnitz #1{\the\numexpr\ifodd #1 1\else-1\fi\relax/#1[0]} \cnta 1 \loop @@ -2562,18 +2733,18 @@ at the time of computing |\coeff {n}|) should be defined as a one-parameter fully expandable command, accepting on input an explicit number, and returning a (long) integer in the format understood by the integer-only \csa{xintiAdd}. -\begin{verbatim} +\dverb|& \def\coeff #1{\xintiTrunc {40}{\xintMON{#1}/#1.5}}% % better: \def\coeff #1{\xintiTrunc {40} - {\the\numexpr 2*\xintiMON{#1}\relax/\the\numexpr 2*#1+1\relax [0]}}% + {\the\numexpr 2*\xintiMON{#1}\relax/\the\numexpr 2*#1+1\relax [0]}}% % better still: \def\coeff #1{\xintiTrunc {40} - {\the\numexpr\ifodd #1 -2\else2\fi\relax/\the\numexpr 2*#1+1\relax [0]}}% + {\the\numexpr\ifodd #1 -2\else2\fi\relax/\the\numexpr 2*#1+1\relax [0]}}% % (-1)^n/(n+1/2) times 10^40, truncated to an integer. \[ \sum_{n=0}^{n=50} \frac{(-1)^n}{n+\frac12} \approx \xintTrunc {40}{\xintiSeries {0}{50}{\coeff}[-40]}\dots\] -\end{verbatim} +| The |#1.5| trick to define the |\coeff| macro was neat, but |1/3.5|, for example, turns internally into |10/35| whereas it would be more efficient to have |2/7|. The second way of coding the wanted coefficient avoids a superfluous @@ -2591,7 +2762,7 @@ should trash the last two digits, or at least round at 38 digits. It is interesting to compare with the computation where rounding rather than truncation is used, and with the decimal expansion of the exactly computed partial sum of the series: -\begin{verbatim} +\dverb|& \def\coeff #1{\xintiRound {40} % rounding at 40 {\the\numexpr\ifodd #1 -2\else2\fi\relax/\the\numexpr 2*#1+1\relax [0]}}% % (-1)^n/(n+1/2) times 10^40, rounded to an integer. @@ -2601,7 +2772,7 @@ expansion of the exactly computed partial sum of the series: {\the\numexpr\ifodd #1 -2\else2\fi\relax/\the\numexpr 2*#1+1\relax [0]}% \[ \sum_{n=0}^{n=50} \frac{(-1)^n}{n+\frac12} = \xintTrunc {50}{\xintSeries {0}{50}{\exactcoeff}}\dots\] -\end{verbatim} +| \def\coeff #1{\xintiRound {40} {\the\numexpr\ifodd #1 -2\else2\fi\relax/\the\numexpr 2*#1+1\relax [0]}}% % (-1)^n/(n+1/2) times 10^40, rounded to an integer. @@ -2630,7 +2801,7 @@ expanding to) the value |F(A)| and |\ratio| being a one-parameter expandable command, accepting on input an explicit number |n| and producing after (full iterated) expansion (of the first token) |F(n)/F(n-1)|. The initial and final indices are given to a |\numexpr| expression. -\begin{verbatim} +\dverb|& \def\ratio #1{2/#1[0]}% 2/n, comes from the series of exp(2) \cnta 0 % previously declared count \loop @@ -2639,7 +2810,7 @@ indices are given to a |\numexpr| expression. \xintTrunc{12}\z\dots= \xintFrac\z=\xintFrac{\xintIrr\z}$\vtop to 5pt{}\endgraf \ifnum\cnta<20 \advance\cnta 1 \repeat -\end{verbatim} +| \def\ratio #1{2/#1[0]}% 2/n, comes from the series of exp(2) \cnta 0 \loop @@ -2655,8 +2826,7 @@ Such computations would become quickly completely inaccessible via the all multiplied together: the raw addition and subtraction on fractions just blindly multiplies denominators! Whereas \csa{xintRationalSeries} evaluate the partial sums via a less silly iterative scheme. -\vspace*{-.5\baselineskip} -\begin{verbatim} +\dverb|& \def\ratio #1{-1/#1[0]}% -1/n, comes from the series of exp(-1) \cnta 0 % previously declared count \loop @@ -2665,7 +2835,7 @@ evaluate the partial sums via a less silly iterative scheme. \xintTrunc{20}\z\dots=\xintFrac{\z}=\xintFrac{\xintIrr\z}$ \vtop to 5pt{}\endgraf \ifnum\cnta<20 \advance\cnta 1 \repeat -\end{verbatim} +| \def\ratio #1{-1/#1[0]}% -1/n, comes from the series of exp(-1) \cnta 0 % previously declared count @@ -2685,8 +2855,7 @@ a macro with two parameters: |\def\ratioexp Then, if |\x| expands to some fraction |x|, the command \centeredline{|\xintRationalSeries {0}{b}{1}{\ratioexp{\x}}|} will compute $\sum_{n=0}^{n=b} x^n/n!$:\par -\vspace*{-.5\baselineskip} -\begin{verbatim} +\dverb|& \cnta 0 \def\ratioexp #1#2{\xintDiv{#1}{#2}}% #1/#2 \loop @@ -2695,7 +2864,7 @@ $\sum_{n=0}^{\the\cnta} (.57)^n/n! = \xintTrunc {50} {\xintRationalSeries {0}{\cnta}{1}{\ratioexp{.57}}}\dots$ \vtop to 5pt {}\endgraf \ifnum\cnta<50 \advance\cnta 10 \repeat -\end{verbatim} +| \cnta 0 \loop @@ -2718,7 +2887,7 @@ use this result without recomputing it. This is \csb{xintRationalSeriesX}, documented next. Here is a slightly more complicated evaluation: -\begin{verbatim} +\dverb|& \cnta 1 \loop \edef\z {\xintRationalSeries {\cnta} @@ -2731,7 +2900,7 @@ $\sum_{n=\the\cnta}^{\the\numexpr 2*\cnta-1\relax} \frac{\the\cnta^n}{n!}/% \sum_{n=0}^{\the\numexpr 2*\cnta-1\relax} \frac{\the\cnta^n}{n!} = \xintTrunc{8}{\xintDiv\z\w}\dots$ \vtop to 5pt{}\endgraf \ifnum\cnta<20 \advance\cnta 1 \repeat -\end{verbatim} +| \cnta 1 \begin{multicols}{2} \loop \edef\z {\xintRationalSeries @@ -2776,7 +2945,7 @@ explicit fraction encapsulated in a macro). The example will use the macro \csb{xintPowerSeries} which computes efficiently exact partial sums of power series, and is discussed in the next section. -\begin{verbatim} +\dverb|& \def\firstterm #1{1[0]}% first term of the exponential series % although it is the constant 1, here it must be defined as a % one-parameter macro. Next comes the ratio function for exp: @@ -2793,7 +2962,7 @@ next section. {\xintPowerSeries{1}{10}{\coefflog}{\the\cnta[-1]}}}\dots \endgraf \ifnum\cnta < 12 \advance \cnta 1 \repeat -\end{verbatim} +| \def\firstterm #1{1[0]}% first term of the exponential series % although it is the constant 1, here it must be defined as a @@ -2937,7 +3106,7 @@ was plaguing the |1.03| version. \footnote{with powers |x\string^k|, coefficients themselves. \end{framed} -\begin{verbatim} +\dverb|& \def\geom #1{1[0]} % the geometric series \def\x {5/17[0]} \[ \sum_{n=0}^{n=20} \Bigl(\frac 5{17}\Bigr)^n @@ -2947,7 +3116,7 @@ was plaguing the |1.03| version. \footnote{with powers |x\string^k|, % a parser for arbitrary algebraic expressions with the +,-,/,*,and ^ % operations would be dearly appreciated here ; implementing a completely % expandable one would be quite a lot of work, even if we plagiarize l3fp! -\end{verbatim} +| \def\geom #1{1[0]} % the geometric series \def\x {5/17[0]} % \[ \sum_{n=0}^{n=20} \Bigl(\frac 5{17}\Bigr)^n @@ -2955,14 +3124,14 @@ was plaguing the |1.03| version. \footnote{with powers |x\string^k|, =\xintFrac{\xintiSub{\xintiPow {17}{21}}{\xintiPow{5}{21}}% /\xintiMul{12}{\xintiPow {17}{20}}}\] -\begin{verbatim} +\dverb|& \def\coefflog #1{1/#1[0]}% 1/n \def\x {1/2[0]}% \[ \log 2 \approx \sum_{n=1}^{20} \frac1{n\cdot 2^n} = \xintFrac {\xintIrr {\xintPowerSeries {1}{20}{\coefflog}{\x}}}\] \[ \log 2 \approx \sum_{n=1}^{50} \frac1{n\cdot 2^n} = \xintFrac {\xintIrr {\xintPowerSeries {1}{50}{\coefflog}{\x}}}\] -\end{verbatim} +| \def\coefflog #1{1/#1[0]} % 1/n \def\x {1/2[0]}% \[ \log 2 \approx \sum_{n=1}^{20} \frac1{n\cdot 2^n} @@ -2970,7 +3139,7 @@ was plaguing the |1.03| version. \footnote{with powers |x\string^k|, {1}{20}{\coefflog}{\x}}}\] \[ \log 2 \approx \sum_{n=1}^{50} \frac1{n\cdot 2^n} = \xintFrac {\xintIrr {\xintPowerSeries {1}{50}{\coefflog}{\x}}}\] -\begin{verbatim} +\dverb|& \cnta 1 % previously declared count \loop % in this loop we recompute from scratch each partial sum! % we can afford that, as \xintPowerSeries is fast enough. @@ -2979,7 +3148,7 @@ was plaguing the |1.03| version. \footnote{with powers |x\string^k|, {\xintPowerSeries {1}{\cnta}{\coefflog}{\x}}\dots \endgraf \ifnum \cnta < 30 \advance\cnta 1 \repeat -\end{verbatim} +| \setlength{\columnsep}{0pt} \begin{multicols}{3} \cnta 1 % previously declared count @@ -2990,7 +3159,7 @@ was plaguing the |1.03| version. \footnote{with powers |x\string^k|, \endgraf \ifnum \cnta < 30 \advance\cnta 1 \repeat \end{multicols} -\begin{verbatim} +\dverb|& %\def\coeffarctg #1{1/\the\numexpr\xintMON{#1}*(2*#1+1)\relax }% \def\coeffarctg #1{1/\the\numexpr\ifodd #1 -2*#1-1\else2*#1+1\fi\relax }% % the above gives (-1)^n/(2n+1). The sign being in the denominator, @@ -3003,7 +3172,7 @@ was plaguing the |1.03| version. \footnote{with powers |x\string^k|, \frac15\sum_{n=0}^{15} \frac{(-1)^n}{(2n+1)25^n} = \xintFrac{\xintIrr {\xintDiv {\xintPowerSeries {0}{15}{\coeffarctg}{\x}}{5}}}\] -\end{verbatim} +| \def\coeffarctg #1{1/\the\numexpr\ifodd #1 -2*#1-1\else2*#1+1\fi\relax }% \def\x {1/25[0]}% 1/5^2 \[\mathrm{Arctg}(\frac15)\approx @@ -3031,7 +3200,7 @@ in token shuffling due to a very big fraction will not be avoided, but the far worse cost of re-doing each time the computations leading to such a fraction will be. The constraints of expandability make it impossible to encapsulate the result of this initial computation in a macro and have the best of both worlds. -\begin{verbatim} +\dverb|& \def\ratioexp #1#2{\xintDiv {#1}{#2}}% x/n % These are the (-1)^{n-1}/n of the log(1+h) series: \def\coefflog #1{\the\numexpr\ifodd #1 1\else-1\fi\relax/#1[0]}% @@ -3047,7 +3216,7 @@ result of this initial computation in a macro and have the best of both worlds. {1}}}\dots \endgraf \ifnum\cnta < 12 \advance \cnta 1 \repeat -\end{verbatim} +| \cnta 0 \def\ratioexp #1#2{\xintDiv {#1}{#2}}% x/n % These are the (-1)^{n-1}/n of the log(1+h) series @@ -3112,7 +3281,7 @@ $\ApproxExp {\cnta}{20}$\\ \advance\cnta 1 \repeat\par \end{multicols} -\begin{verbatim} +\dverb|& \def\coeffexp #1{1/\xintFac {#1}[0]}% 1/n! \def\x {-1/2[0]}% [0] for faster input parsing \def\ApproxExp #1#2{\xintFxPtPowerSeries {0}{#1}{\coeffexp}{\x}{#2}}% @@ -3125,7 +3294,7 @@ $\ApproxExp {\cnta}{20}$\\ % truncates 20 digits after decimal point % effect is attenuated by the alternating signs in the series). We can % confirm that the last two digits (of our evaluation of the nineteenth % partial sum) are wrong via the evaluation with more digits: -\end{verbatim} +| \centeredline{|\xintFxPtPowerSeries {0}{19}{\coeffexp}{\x}{25}=| \xintFxPtPowerSeries {0}{19}{\coeffexp}{\x}{25}} @@ -3171,7 +3340,7 @@ terms of their respective series. We will assume &|h|<0.5&. With only ten terms kept in the power series we do not have quite 3 digits precision as &2^10=1024&. So it wouldn't make sense to evaluate things more precisely than, say circa 5 digits after the decimal points. -\begin{verbatim} +\dverb|& \cnta 0 \def\coefflog #1{\the\numexpr\ifodd#1 1\else-1\fi\relax/#1[0]}% (-1)^{n-1}/n \def\coeffalt #1{\the\numexpr\ifodd#1 -1\else1\fi\relax [0]}% (-1)^n @@ -3182,7 +3351,7 @@ more precisely than, say circa 5 digits after the decimal points. {\xintFxPtPowerSeriesX {1}{10}{\coeffalt}{\the\cnta [-2]}{5}} {5}}\endgraf \ifnum\cnta < 49 \advance\cnta 7 \repeat -\end{verbatim} +| \cnta 0 \def\coefflog #1{\the\numexpr\ifodd#1 1\else-1\fi\relax/#1[0]}% (-1)^{n-1}/n @@ -3207,7 +3376,7 @@ digits precision. So we compute with 6 digits precision but return only 4 digits (rounded) after the decimal point. This result with 4 post-decimal points precision is then used as input to the next evaluation. -\begin{verbatim} +\dverb|& \loop \noindent \hbox to 2.5cm {\hss\texttt{D(\the\cnta/100): }}% \xintRound{4} @@ -3218,7 +3387,7 @@ to the next evaluation. {6}}% }\endgraf \ifnum\cnta < 49 \advance\cnta 7 \repeat -\end{verbatim} +| \begin{multicols}2 \loop @@ -3284,7 +3453,7 @@ correct exact truncated one. % 693147180559945309417232121458176568075500134360255254120680009493 -\begin{verbatim} +\dverb|& \def\coefflog #1{1/#1[0]}% 1/n \def\xa {13/256[0]}% we will compute log(1-13/256) \def\xb {1/9[0]}% we will compute log(1-1/9) @@ -3312,7 +3481,7 @@ correct exact truncated one. \noindent $\log 2 \approx \LogTwo {60}\dots$\endgraf \noindent\phantom{$\log 2$}${}\approx{}$\printnumber{\LogTwo {65}}\dots\endgraf \noindent\phantom{$\log 2$}${}\approx{}$\printnumber{\LogTwo {70}}\dots\endgraf -\end{verbatim} +| \def\coefflog #1{1/#1[0]}% 1/n \def\xa {13/256[0]}% we will compute log(1-13/256) \def\xb {1/9[0]}% we will compute log(1-1/9) @@ -3343,7 +3512,7 @@ first |D| digits, for all values from |D=0| to |D=100|, except in one case (|D=40|) where the last digit is wrong. For values of |D| higher than |100| it is more efficient to use the code using \csa{xintFxPtPowerSeries}. -\begin{verbatim} +\dverb|& \def\LogTwo #1% get log(2)=-2log(1-13/256)- 5log(1-1/9) {% \romannumeral0\expandafter\LogTwoDoIt \expandafter @@ -3359,7 +3528,7 @@ higher than |100| it is more efficient to use the code using {\xintMul {5}{\xintPowerSeries {1}{#1}{\coefflog}{\xb}}}% }% }% -\end{verbatim} +| Let us turn now to Pi, computed with the Machin formula. Again the numbers of terms to keep in the two |arctg| series were roughly estimated, @@ -3372,7 +3541,7 @@ always gets better than |10^{-D}| precision, but again, strings of zeros or nine encountered in the decimal expansion may falsify the ending digits, nines may be zeros (and the last non-nine one should be increased) and zeros may be nine (and the last non-zero one should be decreased). -\begin{verbatim} +\dverb|& % pi = 16 Arctg(1/5) - 4 Arctg(1/239) (John Machin's formula) \def\coeffarctg #1{\the\numexpr\ifodd#1 -1\else1\fi\relax/% \the\numexpr 2*#1+1\relax [0]}% @@ -3404,8 +3573,7 @@ zeros may be nine (and the last non-zero one should be decreased). {\xintMul {4/239}{\xintFxPtPowerSeries {0}{#2}{\coeffarctg}{\xb}{#3}}}% }}% \[ \pi = \Machin {60}\dots \] -\end{verbatim} -\vspace*{-\baselineskip} +| \def\coeffarctg #1{\the\numexpr\ifodd#1 -1\else1\fi\relax/% \the\numexpr 2*#1+1\relax [0]}% %\def\coeffarctg #1{\romannumeral0\xintmon{#1}/\the\numexpr 2*#1+1\relax }% @@ -3434,7 +3602,7 @@ Here is a variant|\MachinBis|, which evaluates the partial sums \emph{exactly} using \csa{xintPowerSeries}, before their final truncation. No need for a ``|+3|'' then. -\begin{verbatim} +\dverb|& \def\MachinBis #1{% #1 may be a count register, % the final result will be truncated to #1 digits post decimal point \romannumeral0\expandafter\MachinBisA \expandafter @@ -3450,7 +3618,7 @@ which evaluates the partial sums \emph{exactly} using {\xintMul {16/5}{\xintPowerSeries {0}{#1}{\coeffarctg}{\xa}}} {\xintMul{4/239}{\xintPowerSeries {0}{#2}{\coeffarctg}{\xb}}}% }}% -\end{verbatim} +| \def\MachinBis #1{% #1 may be a count register, % the final result will be truncated to #1 digits post decimal point @@ -3469,12 +3637,12 @@ which evaluates the partial sums \emph{exactly} using }}% Let us use this variant for a loop showing the build-up of digits: -\begin{verbatim} +\dverb|& \cnta 0 % previously declared \count register \loop \MachinBis{\cnta} \endgraf % Plain's \loop does not accept \par \ifnum\cnta < 30 \advance\cnta 1 \repeat -\end{verbatim} +| \begin{multicols}{2} \cnta 0 % previously declared \count register \loop \noindent @@ -3487,12 +3655,12 @@ Let us use this variant for a loop showing the build-up of digits: You want more digits and have some time? Copy the |\Machin| code to a Plain \TeX{} or \LaTeX{} document loading \xintseriesname, and compile: -\begin{verbatim} +\dverb|& \newwrite\outfile \immediate\openout\outfile \jobname-out\relax \immediate\write\outfile {\Machin {1000}} \immediate\closeout\outfile -\end{verbatim} +| This will create a file with the correct first 1000 digits of $\pi$ after the decimal point. On my laptop (a 2012 model) this took about 44 seconds last time I tried (and for 200 digits it is less than 1 second). @@ -3726,20 +3894,20 @@ fraction for $\pi$: \cfrac{4}{\xintGCFrac{\xintGCntoGC {5}{\an}{\bn}}} = \xintTrunc {10}{\xintDiv {4}{\xintGCntoF {5}{\an}{\bn}}}\dots\] was obtained with this code: -\begin{verbatim} +\dverb|& \def\an #1{\the\numexpr 2*#1+1\relax }% \def\bn #1{\the\numexpr (#1+1)*(#1+1)\relax }% \[ \xintFrac{\xintDiv {4}{\xintGCntoF {5}{\an}{\bn}}} = \cfrac{4}{\xintGCFrac{\xintGCntoGC {5}{\an}{\bn}}} = \xintTrunc {10}{\xintDiv {4}{\xintGCntoF {5}{\an}{\bn}}}\dots\] -\end{verbatim} +| We see that the quality of approximation is not fantastic compared to the simple continued fraction of $\pi$ with about as many terms: -\begin{verbatim} +\dverb|& \[ \xintFrac{\xintCstoF{3,7,15,1,292,1,1}}= \xintGCFrac{3+1/7+1/15+1/1+1/292+1/1+1/1}= \xintTrunc{10}{\xintCstoF{3,7,15,1,292,1,1}}\dots\] -\end{verbatim} +| \[ \xintFrac{\xintCstoF{3,7,15,1,292,1,1}}= \xintGCFrac{3+1/7+1/15+1/1+1/292+1/1+1/1}= \xintTrunc{10}{\xintCstoF{3,7,15,1,292,1,1}}\dots\] @@ -3747,7 +3915,7 @@ continued fraction of $\pi$ with about as many terms: \hypertarget{e-convergents}{To} conclude this overview of most of the package functionalities, let us explore the convergents of Euler's number $e$. -\begin{verbatim} +\dverb|& \def\cn #1{\the\numexpr\ifcase \numexpr #1+3-3*((#1+2)/3)\relax 1\or1\or2*(#1/3)\fi\relax } % produces the pattern 1,1,2,1,1,4,1,1,6,1,1,8,... which are the @@ -3760,7 +3928,7 @@ the convergents of Euler's number $e$. \xintFrac{\xintAdd {1[0]}{#1}}$}% \xintListWithSep{\vtop to 6pt{}\vbox to 12pt{}\par} {\xintApply\mymacro{\xintiCstoCv{\xintCntoCs {35}{\cn}}}} -\end{verbatim} +| \smallskip The volume of computation is kept minimal by the following steps: \begin{itemize} \item a comma separated list of the first 36 coefficients is produced by @@ -3809,14 +3977,14 @@ convergent already gets 799 digits correct! To allow speedy compilation of the source of this document when the need arises, I limit here to the 200th convergent (getting the 500th took about 1.2s on my laptop last time I tried, and the 200th convergent is obtained ten times faster). -\begin{verbatim} +\dverb|& \edef\z {\xintCntoF {199}{\cn}}% \begingroup\parindent 0pt \leftskip 2.5cm \indent\llap {Numerator = }\printnumber{\xintNumerator\z}\par \indent\llap {Denominator = }\printnumber{\xintDenominator\z}\par \indent\llap {Expansion = }\printnumber{\xintTrunc{268}\z}\dots \par\endgroup -\end{verbatim} +| \edef\z {\xintCntoF {199}{\cn}}% @@ -3981,19 +4149,19 @@ The output can then be used in \csb{xintGCFrac} for example. the inline generalized continued fraction. Coefficients may be fractions but must then be put within braces. They can be macros. The plus signs are mandatory. -\begin{verbatim} +\dverb|& \[\xintGCFrac {1+\xintPow{1.5}{3}/{1/7}+{-3/5}/\xintFac {6}} = \xintFrac{\xintGCtoF {1+\xintPow{1.5}{3}/{1/7}+{-3/5}/\xintFac {6}}} = \xintFrac{\xintIrr{\xintGCtoF {1+\xintPow{1.5}{3}/{1/7}+{-3/5}/\xintFac {6}}}}\] -\end{verbatim} +| \[\xintGCFrac {1+\xintPow{1.5}{3}/{1/7}+{-3/5}/\xintFac {6}} = \xintFrac{\xintGCtoF {1+\xintPow{1.5}{3}/{1/7}+{-3/5}/\xintFac {6}}} = \xintFrac{\xintIrr{\xintGCtoF {1+\xintPow{1.5}{3}/{1/7}+{-3/5}/\xintFac {6}}}}\] -\begin{verbatim} +\dverb|& \[ \xintGCFrac{{1/2}+{2/3}/{4/5}+{1/2}/{1/5}+{3/2}/{5/3}} = \xintFrac{\xintGCtoF {{1/2}+{2/3}/{4/5}+{1/2}/{1/5}+{3/2}/{5/3}}} \] -\end{verbatim} +| \[ \xintGCFrac{{1/2}+{2/3}/{4/5}+{1/2}/{1/5}+{3/2}/{5/3}} = \xintFrac{\xintGCtoF {{1/2}+{2/3}/{4/5}+{1/2}/{1/5}+{3/2}/{5/3}}} \] The macro tries its best not to accumulate superfluous factor in the @@ -4009,12 +4177,12 @@ then be inside braces. Or they may be macros, too. The convergents will in the general case be reducible. To put them into irreducible form, one needs one more step, for example it can be done with |\xintApply\xintIrr|. -\begin{verbatim} +\dverb|& \[\xintListWithSep{,}{\xintApply\xintFrac {\xintGCtoCv{3+{-2}/{7/2}+{3/4}/12+{-56}/3}}}\] \[\xintListWithSep{,}{\xintApply\xintFrac{\xintApply\xintIrr {\xintGCtoCv{3+{-2}/{7/2}+{3/4}/12+{-56}/3}}}}\] -\end{verbatim} +| \[\xintListWithSep{,}{\xintApply\xintFrac {\xintGCtoCv{3+{-2}/{7/2}+{3/4}/12+{-56}/3}}}\] \[\xintListWithSep{,}{\xintApply\xintFrac{\xintApply\xintIrr @@ -4089,13 +4257,13 @@ fractions. returns the corresponding |{a0}+{b0}/{a1}+{b1}/{a2}+...+{b(N-1)}/{aN}| inline generalized fraction. |N| is givent to a |\numexpr|. As shown, the coefficients are enclosed into added pairs of braces, and may thus be fractions. -\begin{verbatim} +\dverb|& \def\an #1{\the\numexpr #1*#1*#1+1\relax}% \def\bn #1{\the\numexpr \xintiMON{#1}*(#1+1)\relax}% \texttt{\xintGCntoGC {5}{\an}{\bn}}% ${}=\xintGCFrac {\xintGCntoGC {5}{\an}{\bn}} = \displaystyle\xintFrac {\xintGCntoF {5}{\an}{\bn}}$\par -\end{verbatim} +| \def\an #1{\the\numexpr #1*#1*#1+1\relax}% \def\bn #1{\the\numexpr \xintiMON{#1}*(#1+1)\relax}% \noindent\texttt{\xintGCntoGC {5}{\an}{\bn}}% @@ -4119,11 +4287,11 @@ hundreds of coefficients. \csa{xintGCtoGC}|{a+b/c+d/e+f/g+......+v/w+x/y}| expands (with the usual meaning) each one of the coefficients and returns an inline continued fraction of the same type, each expanded coefficient being enclosed withing braces. -\begin{verbatim} +\dverb|& \edef\x {\xintGCtoGC {1+\xintPow{1.5}{3}/{1/7}+{-3/5}/\xintFac {6}+\xintCstoF {2,-7,-5}/16}} \texttt{\meaning\x} -\end{verbatim} +| \edef\x {\xintGCtoGC {1+\xintPow{1.5}{3}/{1/7}+{-3/5}/\xintFac {6}+\xintCstoF {2,-7,-5}/16}} \texttt{\meaning\x} @@ -4131,23 +4299,22 @@ of the same type, each expanded coefficient being enclosed withing braces. To be honest I have, it seems, forgotten why I wrote this macro in the first place. - \catcode`\& 4 \makeatletter -\let\check@percent\original@check@percent \StopEventually{\end{document}\endinput} \makeatother -\newgeometry{hmarginratio=4:3,hscale=0.75} -\def\MacroFont{\ttfamily\small\baselineskip12pt\relax} +\newgeometry{hmarginratio=4:3,hscale=0.75} +\def\MacroFont{\ttfamily\small\hyphenchar\font45 + \baselineskip12pt\relax } \MakePercentIgnore % % \catcode`\<=0 \catcode`\>=11 \catcode`\*=11 \catcode`\/=11 % \let</none>\relax -% \def<*xint>{\catcode`\<=12 \catcode`\>=12 \catcode`\*=12 \catcode`\/=12} +% \def<*xint>{\catcode`\<=12 \catcode`\>=12 \catcode`\*=12 \catcode`\/=12 } % %</none> %<*xint> @@ -4164,7 +4331,7 @@ first place. % % The method for catcodes was also inspired by these packages, we proceed % slightly differently. |1.05| adds a |\relax| near the end of -% |\XINT@restorecatcodes@endinput|. Plain TeX users following the doc +% |\XINT_restorecatcodes_endinput|. Plain TeX users following the doc % instruction to do |\input xint.sty\relax| were anyhow protected from any side % effect. I didn't realize earlier that the |\endinput| would not have had the % effect of stopping the scanning from the last |\the\catcode61|. @@ -4173,6 +4340,11 @@ first place. % because we replace everywhere in the code the twice-expansion done with % |\expandafter| by the systematic use of |\romannumeral-`0|. % +% Starting with version |1.06b| I decide that I suffer from an indigestion of @ +% signs, so I replace them all with underscores |_|, \`a la \LaTeX 3. As this +% change makes it a bit more difficult to access the few private macros which +% were mentioned in the user documentation, I renamed them with only letters. +% % \begin{macrocode} \begingroup\catcode61\catcode48\catcode32=10\relax% \catcode13=5 % ^^M @@ -4180,6 +4352,7 @@ first place. \catcode123=1 % { \catcode125=2 % } \catcode64=11 % @ + \catcode95=11 % _ (starting with 1.06b, used inside cs names) \catcode35=6 % # \catcode44=12 % , \catcode45=12 % - @@ -4211,7 +4384,7 @@ first place. \def\ChangeCatcodesIfInputNotAborted {% \endgroup - \edef\XINT@restorecatcodes@endinput + \edef\XINT_restorecatcodes_endinput {% \catcode96=\the\catcode96 % ` \catcode47=\the\catcode47 % / @@ -4226,7 +4399,7 @@ first place. \catcode45=\the\catcode45 % - \catcode44=\the\catcode44 % , \catcode35=\the\catcode35 % # - \catcode64=\the\catcode64 % @ + \catcode95=\the\catcode95 % _ \catcode125=\the\catcode125 % } \catcode123=\the\catcode123 % { \endlinechar=\the\endlinechar @@ -4235,7 +4408,7 @@ first place. \catcode61=\the\catcode61\relax % = \noexpand\endinput }% - \def\XINT@setcatcodes + \def\XINT_setcatcodes {% \catcode61=12 % = \catcode32=10 % space @@ -4243,7 +4416,7 @@ first place. \endlinechar=13 % \catcode123=1 % { \catcode125=2 % } - \catcode64=11 % @ + \catcode95=11 % _ (replaces @ everywhere, starting with 1.06b) \catcode35=6 % # \catcode44=12 % , \catcode45=12 % - @@ -4258,7 +4431,7 @@ first place. \catcode47=12 % / \catcode96=12 % ` }% - \XINT@setcatcodes + \XINT_setcatcodes }% \ChangeCatcodesIfInputNotAborted % \end{macrocode} @@ -4268,6 +4441,7 @@ first place. % % \begin{macrocode} \begingroup + \catcode64=11 % @ \catcode91=12 % [ \catcode93=12 % ] \catcode58=12 % : (does not really matter, was letter) @@ -4289,500 +4463,516 @@ first place. \fi \expandafter\x\csname ver@xint.sty\endcsname \ProvidesPackage{xint}% - [2013/05/09 v1.06a Expandable operations on long numbers (jfB)]% + [2013/05/14 v1.06b Expandable operations on long numbers (jfB)]% % \end{macrocode} % \subsection{Token management macros} % \begin{macrocode} -\def\xint@gobble #1{}% -\def\xint@gobble@ {}% -\def\xint@gobble@i #1{}% -\def\xint@gobble@ii #1#2{}% -\def\xint@gobble@iii #1#2#3{}% -\def\xint@gobble@iv #1#2#3#4{}% -\def\xint@gobble@v #1#2#3#4#5{}% -\def\xint@gobble@vi #1#2#3#4#5#6{}% -\def\xint@gobble@vii #1#2#3#4#5#6#7{}% -\def\xint@gobble@viii #1#2#3#4#5#6#7#8{}% -\def\xint@firstoftwo #1#2{#1}% -\def\xint@secondoftwo #1#2{#2}% -\def\xint@firstoftwo@andstop #1#2{ #1}% -\def\xint@secondoftwo@andstop #1#2{ #2}% -\def\xint@exchangetwo@keepbraces@andstop #1#2{ {#2}{#1}}% -\def\xint@minus@andstop { -}% -\def\xint@r #1\R {}% -\def\xint@w #1\W {}% -\def\xint@z #1\Z {}% -\def\xint@zero #10{}% -\def\xint@one #11{}% -\def\xint@minus #1-{}% -\def\xint@relax #1\relax {}% -\def\xint@quatrezeros #10000{}% -\def\xint@bracedundef {\xint@undef }% -\def\xint@UDzerofork #10\dummy #2#3\xint@UDkrof {#2}% -\def\xint@UDsignfork #1-\dummy #2#3\xint@UDkrof {#2}% -\def\xint@UDwfork #1\W\dummy #2#3\xint@UDkrof {#2}% -\def\xint@UDzerosfork #100\dummy #2#3\xint@UDkrof {#2}% -\def\xint@UDonezerofork #110\dummy #2#3\xint@UDkrof {#2}% -\def\xint@UDzerominusfork #10-\dummy #2#3\xint@UDkrof {#2}% -\def\xint@UDsignsfork #1--\dummy #2#3\xint@UDkrof {#2}% -\def\xint@afterfi #1#2\fi {\fi #1}% +\def\xint_gobble_ {}% +\def\xint_gobble_i #1{}% +\def\xint_gobble_ii #1#2{}% +\def\xint_gobble_iii #1#2#3{}% +\def\xint_gobble_iv #1#2#3#4{}% +\def\xint_gobble_v #1#2#3#4#5{}% +\def\xint_gobble_vi #1#2#3#4#5#6{}% +\def\xint_gobble_vii #1#2#3#4#5#6#7{}% +\def\xint_gobble_viii #1#2#3#4#5#6#7#8{}% +\def\xint_firstoftwo #1#2{#1}% +\def\xint_secondoftwo #1#2{#2}% +\def\xint_firstoftwo_andstop #1#2{ #1}% +\def\xint_secondoftwo_andstop #1#2{ #2}% +\def\xint_exchangetwo_keepbraces_andstop #1#2{ {#2}{#1}}% +\def\xint_minus_andstop { -}% +\def\xint_gob_til_r #1\R {}% +\def\xint_gob_til_w #1\W {}% +\def\xint_gob_til_z #1\Z {}% +\def\xint_gob_til_zero #10{}% +\def\xint_gob_til_one #11{}% +\def\xint_gob_til_zeros_iv #10000{}% +\def\xint_gob_til_relax #1\relax {}% +\def\xint_gob_til_xint_undef #1\xint_undef {}% +\def\xint_gob_til_xint_relax #1\xint_relax {}% +\def\xint_UDzerofork #10\dummy #2#3\krof {#2}% +\def\xint_UDsignfork #1-\dummy #2#3\krof {#2}% +\def\xint_UDwfork #1\W\dummy #2#3\krof {#2}% +\def\xint_UDzerosfork #100\dummy #2#3\krof {#2}% +\def\xint_UDonezerofork #110\dummy #2#3\krof {#2}% +\def\xint_UDzerominusfork #10-\dummy #2#3\krof {#2}% +\def\xint_UDsignsfork #1--\dummy #2#3\krof {#2}% +\def\xint_afterfi #1#2\fi {\fi #1}% +\let\xint_relax\relax +\def\xint_braced_xint_relax {\xint_relax }% % \end{macrocode} % \subsection{\csh{xintRev}, \csh{xintReverseOrder}} -% \begin{verbatim} -% \xintRev: fait l'expansion avec \romannumeral-`0, vérifie le signe -% \xintReverseOrder: ne fait PAS l'expansion, ne regarde PAS le signe. -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|& +% \xintRev: fait l'expansion avec \romannumeral-`0, vérifie le signe.$\ +% \xintReverseOrder: ne fait PAS l'expansion, ne regarde PAS le signe.| % \begin{macrocode} \def\xintRev {\romannumeral0\xintrev }% \def\xintrev #1% {% - \expandafter\xint@rev\expandafter {\romannumeral-`0#1}% -}% -\def\xint@rev #1% -{% - \XINT@rev@fork #1\Z -}% -\def\XINT@rev@fork #1#2% -{% - \xint@UDsignfork - #1\dummy \XINT@rev@negative - -\dummy \XINT@rev@nonnegative - \xint@UDkrof - #1#2% -}% -\def\XINT@rev@negative #1#2\Z -{% - \expandafter\xint@minus@andstop\romannumeral0\XINT@rev {#2}% + \expandafter\XINT_rev_fork + \romannumeral-`0#1\xint_relax % empty #1 ok + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_relax }% -\def\XINT@rev@nonnegative #1\Z +\def\XINT_rev_fork #1% {% - \XINT@rev {#1}% + \xint_UDsignfork + #1\dummy {\expandafter\xint_minus_andstop + \romannumeral0\XINT_rord_main {}}% + -\dummy {\XINT_rord_main {}#1}% + \krof }% -\def\XINT@Rev {\romannumeral0\XINT@rev }% -\let\xintReverseOrder \XINT@Rev -\def\XINT@rev #1% +\def\XINT_Rev {\romannumeral0\XINT_rev }% +\def\xintReverseOrder {\romannumeral0\XINT_rev }% +\def\XINT_rev #1% {% - \XINT@rord@main {}#1% - \xint@UNDEF - \xint@undef\xint@undef\xint@undef\xint@undef - \xint@undef\xint@undef\xint@undef\xint@undef - \xint@UNDEF + \XINT_rord_main {}#1% + \xint_relax + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_relax }% -\def\XINT@rord@main #1#2#3#4#5#6#7#8#9% +\def\XINT_rord_main #1#2#3#4#5#6#7#8#9% {% - \XINT@strip@undef #9\XINT@rord@cleanup\xint@undef - \XINT@rord@main {#9#8#7#6#5#4#3#2#1}% + \xint_gob_til_xint_undef #9\XINT_rord_cleanup\xint_undef + \XINT_rord_main {#9#8#7#6#5#4#3#2#1}% }% -\def\XINT@rord@cleanup\xint@undef\XINT@rord@main #1#2\xint@UNDEF +\def\XINT_rord_cleanup\xint_undef\XINT_rord_main #1#2\xint_relax {% - \expandafter\space\XINT@strip@UNDEF #1% + \expandafter\space\xint_gob_til_xint_relax #1% }% -\def\XINT@strip@undef #1\xint@undef {}% -\def\XINT@strip@UNDEF #1\xint@UNDEF {}% % \end{macrocode} % \subsection{\csh{xintRevWithBraces}} -% \begin{verbatim} -% New with 1.06. Makes the expansion of its argument and then reverses the +% \lverb|New with 1.06. Makes the expansion of its argument and then reverses +% the % resulting tokens or braced tokens, adding a pair of braces to each (thus, -% maintaining it when it was already there.) -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% maintaining it when it was already there.) | % \begin{macrocode} -\def\xintRevWithBraces {\romannumeral0\xintrevwithbraces }% +\def\xintRevWithBraces {\romannumeral0\xintrevwithbraces }% +\def\xintRevWithBracesNoExpand {\romannumeral0\xintrevwithbracesnoexpand }% \def\xintrevwithbraces #1% {% - \expandafter\XINT@revwbr@prep\expandafter {\romannumeral-`0#1}% + \expandafter\XINT_revwbr_loop % #1 empty ok + \romannumeral-`0#1\xint_relax\xint_relax\xint_relax\xint_relax + \xint_relax\xint_relax\xint_relax\xint_relax\Z }% -\def\XINT@RWB {\romannumeral0\XINT@revwbr@prep }% -\def\XINT@revwbr@prep #1% +\def\xintrevwithbracesnoexpand #1% {% - \XINT@revwbr@loop - {}#1\xint@undef\xint@undef\xint@undef\xint@undef - \xint@undef\xint@undef\xint@undef\xint@undef\Z + \romannumeral0\XINT_revwbr_loop + #1\xint_relax\xint_relax\xint_relax\xint_relax + \xint_relax\xint_relax\xint_relax\xint_relax\Z }% -\def\XINT@revwbr@loop #1#2#3#4#5#6#7#8#9% +\def\XINT_revwbr_loop #1#2#3#4#5#6#7#8#9% {% - \XINT@strip@undef #9\XINT@revwbr@finish@a\xint@undef - \XINT@revwbr@loop {{#9}{#8}{#7}{#6}{#5}{#4}{#3}{#2}#1}% + \xint_gob_til_xint_relax #9\XINT_revwbr_finish_a\xint_relax + \XINT_revwbr_loop {{#9}{#8}{#7}{#6}{#5}{#4}{#3}{#2}#1}% }% -\def\XINT@revwbr@finish@a\xint@undef\XINT@revwbr@loop #1#2\Z +\def\XINT_revwbr_finish_a\xint_relax\XINT_revwbr_loop #1#2\Z {% - \XINT@revwbr@finish@b #2\R\R\R\R\R\R\R\Z #1% + \XINT_revwbr_finish_b #2\R\R\R\R\R\R\R\Z #1% }% -\def\XINT@revwbr@finish@b #1#2#3#4#5#6#7#8\Z +\def\XINT_revwbr_finish_b #1#2#3#4#5#6#7#8\Z {% - \xint@r #1\XINT@revwbr@finish@c 8% - #2\XINT@revwbr@finish@c 7% - #3\XINT@revwbr@finish@c 6% - #4\XINT@revwbr@finish@c 5% - #5\XINT@revwbr@finish@c 4% - #6\XINT@revwbr@finish@c 3% - #7\XINT@revwbr@finish@c 2% - \R\XINT@revwbr@finish@c 1\Z + \xint_gob_til_r + #1\XINT_revwbr_finish_c 8% + #2\XINT_revwbr_finish_c 7% + #3\XINT_revwbr_finish_c 6% + #4\XINT_revwbr_finish_c 5% + #5\XINT_revwbr_finish_c 4% + #6\XINT_revwbr_finish_c 3% + #7\XINT_revwbr_finish_c 2% + \R\XINT_revwbr_finish_c 1\Z }% -\def\XINT@revwbr@finish@c #1#2\Z +\def\XINT_revwbr_finish_c #1#2\Z {% \expandafter\expandafter\expandafter \space - \csname xint@gobble@\romannumeral #1\endcsname + \csname xint_gobble_\romannumeral #1\endcsname }% % \end{macrocode} % \subsection{\csh{xintLen}, \csh{xintLength}} -% \begin{verbatim} -% \xintLen -> fait l'expansion, ne compte PAS le signe -% \xintLength -> ne fait PAS l'expansion, compte le signe -% 1.06: improved code is roughly 20% faster than the one from earlier versions. -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|& +% \xintLen -> fait l'expansion, ne compte PAS le signe.$\ +% \xintLength -> ne fait PAS l'expansion, compte le signe.$\ +% 1.06: improved code is roughly 20$% faster than the one from earlier +% versions.| % \begin{macrocode} \def\xintiLen {\romannumeral0\xintilen }% \def\xintilen #1% {% - \expandafter\XINT@len@prep\expandafter {\romannumeral-`0#1}% + \expandafter\XINT_length_fork + \romannumeral-`0#1\xint_relax\xint_relax\xint_relax\xint_relax + \xint_relax\xint_relax\xint_relax\xint_relax\Z }% \let\xintLen\xintiLen \let\xintlen\xintilen -\def\XINT@Len {\romannumeral0\XINT@len@prep }% -\def\XINT@len@prep #1% +\def\XINT_Len #1% {% - \XINT@length@fork - #1\xint@undef\xint@undef\xint@undef\xint@undef - \xint@undef\xint@undef\xint@undef\xint@undef\Z + \romannumeral0\XINT_length_fork + #1\xint_relax\xint_relax\xint_relax\xint_relax + \xint_relax\xint_relax\xint_relax\xint_relax\Z }% -\def\XINT@length@fork #1% +\def\XINT_length_fork #1% {% - \expandafter\XINT@length@loop - \xint@UDsignfork + \expandafter\XINT_length_loop + \xint_UDsignfork #1\dummy {{0}}% -\dummy {{0}#1}% - \xint@UDkrof + \krof }% -\def\XINT@Length {\romannumeral0\XINT@length }% -\def\XINT@length #1% +\def\XINT_Length {\romannumeral0\XINT_length }% +\def\XINT_length #1% {% - \XINT@length@loop - {0}#1\xint@undef\xint@undef\xint@undef\xint@undef - \xint@undef\xint@undef\xint@undef\xint@undef\Z + \XINT_length_loop + {0}#1\xint_relax\xint_relax\xint_relax\xint_relax + \xint_relax\xint_relax\xint_relax\xint_relax\Z }% -\let\xintLength\XINT@Length -\def\XINT@length@loop #1#2#3#4#5#6#7#8#9% +\let\xintLength\XINT_Length +\def\XINT_length_loop #1#2#3#4#5#6#7#8#9% {% - \XINT@strip@undef #9\XINT@length@finish@a\xint@undef - \expandafter\XINT@length@loop\expandafter {\the\numexpr #1+8\relax}% + \xint_gob_til_xint_relax #9\XINT_length_finish_a\xint_relax + \expandafter\XINT_length_loop\expandafter {\the\numexpr #1+8\relax}% }% -\def\XINT@length@finish@a\xint@undef - \expandafter\XINT@length@loop\expandafter #1#2\Z +\def\XINT_length_finish_a\xint_relax + \expandafter\XINT_length_loop\expandafter #1#2\Z {% - \XINT@length@finish@b #2\W\W\W\W\W\W\W\Z {#1}% + \XINT_length_finish_b #2\W\W\W\W\W\W\W\Z {#1}% }% -\def\XINT@length@finish@b #1#2#3#4#5#6#7#8\Z +\def\XINT_length_finish_b #1#2#3#4#5#6#7#8\Z {% - \xint@w #1\XINT@length@finish@c 8% - #2\XINT@length@finish@c 7% - #3\XINT@length@finish@c 6% - #4\XINT@length@finish@c 5% - #5\XINT@length@finish@c 4% - #6\XINT@length@finish@c 3% - #7\XINT@length@finish@c 2% - \W\XINT@length@finish@c 1\Z + \xint_gob_til_w + #1\XINT_length_finish_c 8% + #2\XINT_length_finish_c 7% + #3\XINT_length_finish_c 6% + #4\XINT_length_finish_c 5% + #5\XINT_length_finish_c 4% + #6\XINT_length_finish_c 3% + #7\XINT_length_finish_c 2% + \W\XINT_length_finish_c 1\Z }% -\def\XINT@length@finish@c #1#2\Z #3{\expandafter\space\the\numexpr #3-#1\relax}% +\def\XINT_length_finish_c #1#2\Z #3% + {\expandafter\space\the\numexpr #3-#1\relax}% % \end{macrocode} % \subsection{\csh{xintCSVtoList}} -% \begin{verbatim} +% \lverb|& % \xintCSVtoList {a,b,..,z} returns {a}{b}...{z}. The comma separated list may -% be a macro which is first expanded. Each chain of spaces is collapsed -% into one space only. -% First included in release 1.06. -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% be a macro which is first expanded. Each chain of spaces from the initial +% input will be collapsed as usual by the TeX initial scanning +% First included in release 1.06.| % \begin{macrocode} \def\xintCSVtoList {\romannumeral0\xintcsvtolist }% +% \def\xintCSVtoListNoExpand {\romannumeral0\xintcsvtolistnoexpand }% \def\xintcsvtolist #1% {% - \expandafter\XINT@csvtol@prep\expandafter {\romannumeral-`0#1}% -}% -\def\XINT@CSVtoL {\romannumeral0\XINT@csvtol@prep }% -\def\XINT@csvtol@prep #1% -{% - \XINT@csvtol@loop@a - {}#1,\xint@undef,\xint@undef,\xint@undef,\xint@undef,% - \xint@undef,\xint@undef,\xint@undef,\xint@undef,\Z -}% -\def\XINT@csvtol@loop@a #1#2,#3,#4,#5,#6,#7,#8,#9,% -{% - \XINT@strip@undef #9\XINT@csvtol@finish@a\xint@undef - \XINT@csvtol@loop@b {#1}{{#2}{#3}{#4}{#5}{#6}{#7}{#8}{#9}}% -}% -\def\XINT@csvtol@loop@b #1#2{\XINT@csvtol@loop@a {#1#2}}% -\def\XINT@csvtol@finish@a\xint@undef\XINT@csvtol@loop@b #1#2#3\Z -{% - \XINT@csvtol@finish@b #3\R,\R,\R,\R,\R,\R,\R,\Z #2{#1}% -}% -\def\XINT@csvtol@finish@b #1,#2,#3,#4,#5,#6,#7,#8\Z -{% - \xint@r #1\XINT@csvtol@finish@c 8% - #2\XINT@csvtol@finish@c 7% - #3\XINT@csvtol@finish@c 6% - #4\XINT@csvtol@finish@c 5% - #5\XINT@csvtol@finish@c 4% - #6\XINT@csvtol@finish@c 3% - #7\XINT@csvtol@finish@c 2% - \R\XINT@csvtol@finish@c 1\Z -}% -\def\XINT@csvtol@finish@c #1#2\Z -{% - \csname XINT@csvtol@finish@d\romannumeral #1\endcsname -}% -\def\XINT@csvtol@finish@dviii #1#2#3#4#5#6#7#8#9{ #9}% -\def\XINT@csvtol@finish@dvii #1#2#3#4#5#6#7#8#9{ #9{#1}}% -\def\XINT@csvtol@finish@dvi #1#2#3#4#5#6#7#8#9{ #9{#1}{#2}}% -\def\XINT@csvtol@finish@dv #1#2#3#4#5#6#7#8#9{ #9{#1}{#2}{#3}}% -\def\XINT@csvtol@finish@div #1#2#3#4#5#6#7#8#9{ #9{#1}{#2}{#3}{#4}}% -\def\XINT@csvtol@finish@diii #1#2#3#4#5#6#7#8#9{ #9{#1}{#2}{#3}{#4}{#5}}% -\def\XINT@csvtol@finish@dii #1#2#3#4#5#6#7#8#9{ #9{#1}{#2}{#3}{#4}{#5}{#6}}% -\def\XINT@csvtol@finish@di #1#2#3#4#5#6#7#8#9{ #9{#1}{#2}{#3}{#4}{#5}{#6}{#7}}% + \expandafter\XINT_csvtol_loop_a\expandafter + {\expandafter}\romannumeral-`0#1% + ,\xint_undef,\xint_undef,\xint_undef,\xint_undef + ,\xint_undef,\xint_undef,\xint_undef,\xint_undef,\Z +}% +% \def\xintcsvtolistnoexpand #1% +% {% +% \romannumeral0\XINT_csvtol_loop_a +% {}#1,\xint_undef,\xint_undef,\xint_undef,\xint_undef +% ,\xint_undef,\xint_undef,\xint_undef,\xint_undef,\Z +% }% +\def\XINT_csvtol_loop_a #1#2,#3,#4,#5,#6,#7,#8,#9,% +{% + \xint_gob_til_xint_undef #9\XINT_csvtol_finish_a\xint_undef + \XINT_csvtol_loop_b {#1}{{#2}{#3}{#4}{#5}{#6}{#7}{#8}{#9}}% +}% +\def\XINT_csvtol_loop_b #1#2{\XINT_csvtol_loop_a {#1#2}}% +\def\XINT_csvtol_finish_a\xint_undef\XINT_csvtol_loop_b #1#2#3\Z +{% + \XINT_csvtol_finish_b #3\R,\R,\R,\R,\R,\R,\R,\Z #2{#1}% +}% +\def\XINT_csvtol_finish_b #1,#2,#3,#4,#5,#6,#7,#8\Z +{% + \xint_gob_til_r + #1\XINT_csvtol_finish_c 8% + #2\XINT_csvtol_finish_c 7% + #3\XINT_csvtol_finish_c 6% + #4\XINT_csvtol_finish_c 5% + #5\XINT_csvtol_finish_c 4% + #6\XINT_csvtol_finish_c 3% + #7\XINT_csvtol_finish_c 2% + \R\XINT_csvtol_finish_c 1\Z +}% +\def\XINT_csvtol_finish_c #1#2\Z +{% + \csname XINT_csvtol_finish_d\romannumeral #1\endcsname +}% +\def\XINT_csvtol_finish_dviii #1#2#3#4#5#6#7#8#9{ #9}% +\def\XINT_csvtol_finish_dvii #1#2#3#4#5#6#7#8#9{ #9{#1}}% +\def\XINT_csvtol_finish_dvi #1#2#3#4#5#6#7#8#9{ #9{#1}{#2}}% +\def\XINT_csvtol_finish_dv #1#2#3#4#5#6#7#8#9{ #9{#1}{#2}{#3}}% +\def\XINT_csvtol_finish_div #1#2#3#4#5#6#7#8#9{ #9{#1}{#2}{#3}{#4}}% +\def\XINT_csvtol_finish_diii #1#2#3#4#5#6#7#8#9{ #9{#1}{#2}{#3}{#4}{#5}}% +\def\XINT_csvtol_finish_dii #1#2#3#4#5#6#7#8#9{ #9{#1}{#2}{#3}{#4}{#5}{#6}}% +\def\XINT_csvtol_finish_di #1#2#3#4#5#6#7#8#9% + { #9{#1}{#2}{#3}{#4}{#5}{#6}{#7}}% % \end{macrocode} % \subsection{\csh{xintListWithSep}} -% \begin{verbatim} -% \xintListWithSep {sep}{{a}{b}...{z}} returns a sep b sep .... sep z +% \lverb|& +% \xintListWithSep {sep}{{a}{b}...{z}} returns a sep b sep .... sep z$\ % Included in release 1.04. The 'sep' can be \par's: the macro % xintlistwithsep etc... are all declared long. 'sep' does not have to be a % single token. The list may be a macro it is first expanded. % 1.06 modifies the `feature' of returning sep if the list is empty: the output % is now empty in that case. (sep was not used for a one element list, but -% strangely it was for a zero-element list). -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% strangely it was for a zero-element list).| % \begin{macrocode} \def\xintListWithSep {\romannumeral0\xintlistwithsep }% +% \def\xintListWithSepNoExpand {\romannumeral0\xintlistwithsepnoexpand }% \long\def\xintlistwithsep #1#2% + {\expandafter\XINT_lws\expandafter {\romannumeral-`0#2}{#1}}% +\long\def\XINT_lws #1#2{\XINT_lws_start {#2}#1\Z }% +% \long\def\xintlistwithsepnoexpand #1#2% +% {\romannumeral0\XINT_lws_start {#1}#2\Z }% +\long\def\XINT_lws_start #1#2% {% - \expandafter\XINT@lws\expandafter {\romannumeral-`0#2}% - {#1}% + \xint_gob_til_z #2\XINT_lws_dont\Z + \XINT_lws_loop_a {#2}{#1}% }% -\long\def\XINT@LWS #1#2{\romannumeral0\XINT@lws@start {#1}#2\Z }% -\long\def\XINT@lws #1#2% +\long\def\XINT_lws_dont\Z\XINT_lws_loop_a #1#2{ }% +\long\def\XINT_lws_loop_a #1#2#3% {% - \XINT@lws@start {#2}#1\Z + \xint_gob_til_z #3\XINT_lws_end\Z + \XINT_lws_loop_b {#1}{#2#3}{#2}% }% -\long\def\XINT@lws@start #1#2% -{% - \xint@z #2\XINT@lws@dont\Z - \XINT@lws@loop@a {#2}{#1}% -}% -\long\def\XINT@lws@dont\Z\XINT@lws@loop@a #1#2{ }% -\long\def\XINT@lws@loop@a #1#2#3% -{% - \xint@z #3\XINT@lws@end\Z - \XINT@lws@loop@b {#1}{#2#3}{#2}% -}% -\long\def\XINT@lws@loop@b #1#2{\XINT@lws@loop@a {#1#2}}% -\long\def\XINT@lws@end\Z\XINT@lws@loop@b #1#2#3{ #1}% +\long\def\XINT_lws_loop_b #1#2{\XINT_lws_loop_a {#1#2}}% +\long\def\XINT_lws_end\Z\XINT_lws_loop_b #1#2#3{ #1}% % \end{macrocode} % \subsection{\csh{xintNthElt}} -% \begin{verbatim} +% \lverb|& % \xintNthElt {i}{{a}{b}...{z}} (or `tokens' abcd...z) returns the i th % element (one pair of braces removed). The list is first expanded. % First included in release 1.06. With 1.06a, a value of i = 0 (or negative) % makes the macro return the length. This is different from \xintLen which is % for numbers (checks sign) and different from \xintLength which does not first -% expand its argument. -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% expand its argument.| % \begin{macrocode} -\def\xintNthElt {\romannumeral0\xintnthelt }% +\def\xintNthElt {\romannumeral0\xintnthelt }% +% \def\xintNthEltNoExpand {\romannumeral0\xintntheltnoexpand }% \def\xintnthelt #1#2% {% - \expandafter\XINT@nthelt\expandafter {\romannumeral-`0#2}% - {\numexpr #1\relax}% + \expandafter\XINT_nthelt\expandafter {\romannumeral-`0#2}% + {\numexpr #1\relax }% }% -\def\XINT@NthElt #1#2{\romannumeral0\XINT@nthelt {#2}{\numexpr #1\relax}}% -\def\XINT@nthelt #1#2% +% \def\xintntheltnoexpand #1#2% +% {% +% \romannumeral0\XINT_nthelt {#2}{\numexpr #1\relax}% +% }% +\def\XINT_nthelt #1#2% {% \ifnum #2>0 - \xint@afterfi {\XINT@nthelt@loop@a {#2}}% + \xint_afterfi {\XINT_nthelt_loop_a {#2}}% \else - \xint@afterfi {\XINT@length@loop {0}}% - \fi #1\xint@undef\xint@undef\xint@undef\xint@undef - \xint@undef\xint@undef\xint@undef\xint@undef\Z + \xint_afterfi {\XINT_length_loop {0}}% + \fi #1\xint_relax\xint_relax\xint_relax\xint_relax + \xint_relax\xint_relax\xint_relax\xint_relax\Z }% -\def\XINT@nthelt@loop@a #1% +\def\XINT_nthelt_loop_a #1% {% \ifnum #1>8 - \expandafter\XINT@nthelt@loop@b + \expandafter\XINT_nthelt_loop_b \else - \expandafter\XINT@nthelt@getit + \expandafter\XINT_nthelt_getit \fi {#1}% }% -\def\XINT@nthelt@loop@b #1#2#3#4#5#6#7#8#9% +\def\XINT_nthelt_loop_b #1#2#3#4#5#6#7#8#9% {% - \XINT@strip@undef #9\XINT@nthelt@silentend\xint@undef - \expandafter\XINT@nthelt@loop@a\expandafter{\the\numexpr #1-8\relax}% + \xint_gob_til_xint_relax #9\XINT_nthelt_silentend\xint_relax + \expandafter\XINT_nthelt_loop_a\expandafter{\the\numexpr #1-8\relax}% }% -\def\XINT@nthelt@silentend #1\Z { }% -\def\XINT@nthelt@getit #1% +\def\XINT_nthelt_silentend #1\Z { }% +\def\XINT_nthelt_getit #1% {% - \expandafter\expandafter\expandafter\XINT@nthelt@finish - \csname xint@gobble@\romannumeral\numexpr#1-1\endcsname + \expandafter\expandafter\expandafter\XINT_nthelt_finish + \csname xint_gobble_\romannumeral\numexpr#1-1\endcsname }% -\def\XINT@nthelt@finish #1#2\Z +\def\XINT_nthelt_finish #1#2\Z {% - \xint@UDwfork + \xint_UDwfork #1\dummy { }% \W\dummy { #1}% - \xint@UDkrof + \krof }% % \end{macrocode} % \subsection{\csh{xintApply}} -% \begin{verbatim} +% \lverb|& % \xintApply {\macro}{{a}{b}...{z}} returns {\macro{a}}...{\macro{b}} % where each instance of \macro is expanded. The list is first -% expanded. Introduced with release 1.04. -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% expanded. Introduced with release 1.04| % \begin{macrocode} -\def\xintApply {\romannumeral0\xintapply }% +\def\xintApply {\romannumeral0\xintapply }% +% \def\xintApplyNoExpand {\romannumeral0\xintapplynoexpand }% \def\xintapply #1#2% {% - \expandafter\XINT@apply\expandafter {\romannumeral-`0#2}% + \expandafter\XINT_apply\expandafter {\romannumeral-`0#2}% {#1}% }% -\def\XINT@Apply #1#2{\romannumeral0\XINT@apply@loop@a {}{#1}#2\Z }% -\def\XINT@apply #1#2% +\def\XINT_apply #1#2{\XINT_apply_loop_a {}{#2}#1\Z }% +% \def\xintapplynoexpand #1#2{\romannumeral0\XINT_apply_loop_a {}{#1}#2\Z }% +\def\XINT_apply_loop_a #1#2#3% +{% + \xint_gob_til_z #3\XINT_apply_end\Z + \expandafter + \XINT_apply_loop_b + \expandafter {\romannumeral-`0#2{#3}}{#1}{#2}% +}% +\def\XINT_apply_loop_b #1#2{\XINT_apply_loop_a {#2{#1}}}% +\def\XINT_apply_end\Z\expandafter\XINT_apply_loop_b\expandafter #1#2#3{ #2}% +% \end{macrocode} +% \subsection{\csh{xintApplyUnbraced}} +% \lverb|& +% \xintApplyUnbraced {\macro}{{a}{b}...{z}} returns \macro{a}...\macro{b} +% where each instance of \macro is expanded using \romannumeral-`0. No braces +% are added: this allows for example a non-expandable \def in \macro, without +% having to do \gdef. The list is first expanded. Introduced with release 1.06b| +% \begin{macrocode} +\def\xintApplyUnbraced {\romannumeral0\xintapplyunbraced }% +% \def\xintApplyUnbracedNoExpand {\romannumeral0\xintapplyunbracednoexpand }% +\def\xintapplyunbraced #1#2% {% - \XINT@apply@loop@a {}{#2}#1\Z + \expandafter\XINT_applyunbr\expandafter {\romannumeral-`0#2}% + {#1}% }% -\def\XINT@apply@loop@a #1#2#3% +\def\XINT_applyunbr #1#2{\XINT_applyunbr_loop_a {}{#2}#1\Z }% +% \def\xintapplyunbracednoexpand #1#2% +% {\romannumeral0\XINT_applyunbr_loop_a {}{#1}#2\Z }% +\def\XINT_applyunbr_loop_a #1#2#3% {% - \xint@z #3\XINT@apply@end\Z - \expandafter - \XINT@apply@loop@b + \xint_gob_til_z #3\XINT_applyunbr_end\Z + \expandafter\XINT_applyunbr_loop_b \expandafter {\romannumeral-`0#2{#3}}{#1}{#2}% }% -\def\XINT@apply@loop@b #1#2{\XINT@apply@loop@a {#2{#1}}}% -\def\XINT@apply@end\Z\expandafter\XINT@apply@loop@b\expandafter #1#2#3{ #2}% +\def\XINT_applyunbr_loop_b #1#2{\XINT_applyunbr_loop_a {#2#1}}% +\def\XINT_applyunbr_end\Z + \expandafter\XINT_applyunbr_loop_b\expandafter #1#2#3{ #2}% % \end{macrocode} +% % \subsection{\csh{xintAssign},~\csh{xintAssignArray},~\csh{xintDigitsOf}} -% \begin{verbatim} -% \xintAssign {a}{b}..{z}\to\A\B...\Z, +% \lverb|& +% \xintAssign {a}{b}..{z}\to\A\B...\Z,$\ % \xintAssignArray {a}{b}..{z}\to\U +% % version 1.01 corrects an oversight in 1.0 related to the value of % \escapechar at the time of using \xintAssignArray or \xintRelaxArray % These macros are an exception in the xint bundle, they do not care at % all about compatibility with expansion-only contexts. -% In version 1.05a I suddenly see some incongruous \expandafter's in -% \XINT@assignarray@@@@end, which I remove. +% +% In version 1.05a I suddenly see some incongruous \expandafter's in (what is +% called now) \XINT_assignarray_end_c, which I remove. +% % Release 1.06 modifies the macros created by \xintAssignArray to feed their % argument to a \numexpr. +% % Release 1.06a detects an incredible typo in 1.01, (bad copy-paste from % \xintRelaxArray) which caused \xintAssignArray to use #1 rather than the #2 as % in the correct earlier 1.0 version!!! This went through undetected because -% \xint@arrayname, although weird, was still usable: the probability to +% \xint_arrayname, although weird, was still usable: the probability to % overwrite something was almost zero. The bug got finally revealed doing -% \xintAssignArray {}{}{}\to\Stuff. -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \xintAssignArray {}{}{}\to\Stuff. +% +% With release 1.06b an empty argument (or expanding to empty) to +% \xintAssignArray is ok.| % \begin{macrocode} \def\xintAssign #1\to {% - \expandafter\XINT@assign@a\romannumeral-`0#1{}\to + \expandafter\XINT_assign_a\romannumeral-`0#1{}\to }% -\def\XINT@assign@a #1% attention to the # at the beginning of next line +\def\XINT_assign_a #1% attention to the # at the beginning of next line #{% - \def\xint@temp {#1}% - \ifx\empty\xint@temp - \expandafter\XINT@assign@b + \def\xint_temp {#1}% + \ifx\empty\xint_temp + \expandafter\XINT_assign_b \else - \expandafter\XINT@assign@B + \expandafter\XINT_assign_B \fi }% -\def\XINT@assign@b #1#2\to #3% +\def\XINT_assign_b #1#2\to #3% {% - \edef #3{#1}\def\xint@temp {#2}% - \ifx\empty\xint@temp + \edef #3{#1}\def\xint_temp {#2}% + \ifx\empty\xint_temp \else - \xint@afterfi{\XINT@assign@a #2\to }% + \xint_afterfi{\XINT_assign_a #2\to }% \fi }% -\def\XINT@assign@B #1\to #2% +\def\XINT_assign_B #1\to #2% {% - \edef #2{\xint@temp}% + \edef #2{\xint_temp}% }% \def\xintRelaxArray #1% {% - \edef\XINT@restoreescapechar {\escapechar\the\escapechar\relax}% + \edef\XINT_restoreescapechar {\escapechar\the\escapechar\relax}% \escapechar -1 - \edef\xint@arrayname {\string #1}% - \XINT@restoreescapechar - \expandafter\let\expandafter\xint@temp - \csname\xint@arrayname 0\endcsname + \edef\xint_arrayname {\string #1}% + \XINT_restoreescapechar + \expandafter\let\expandafter\xint_temp + \csname\xint_arrayname 0\endcsname \count 255 0 \loop \global\expandafter\let - \csname\xint@arrayname\the\count255\endcsname\relax - \ifnum \count 255 < \xint@temp + \csname\xint_arrayname\the\count255\endcsname\relax + \ifnum \count 255 < \xint_temp \advance\count 255 1 \repeat - \global\expandafter\let\csname\xint@arrayname 00\endcsname\relax + \global\expandafter\let\csname\xint_arrayname 00\endcsname\relax \global\let #1\relax }% -\def\xintAssignArray #1\to #2% +\def\xintAssignArray #1\to #2% 1.06b: #1 may now be empty {% - \edef\XINT@restoreescapechar {\escapechar\the\escapechar\relax}% + \edef\XINT_restoreescapechar {\escapechar\the\escapechar\relax }% \escapechar -1 - \edef\xint@arrayname {\string #2}% NOT #1! (amazing typo undetected during ages) - \XINT@restoreescapechar + \edef\xint_arrayname {\string #2}% + \XINT_restoreescapechar \count 255 0 - \expandafter - \XINT@assignarray@loop \romannumeral-`0#1\xint@undef - \csname\xint@arrayname 00\endcsname - \csname\xint@arrayname 0\endcsname - {\xint@arrayname}% + \expandafter\XINT_assignarray_loop \romannumeral-`0#1\xint_relax + \csname\xint_arrayname 00\endcsname + \csname\xint_arrayname 0\endcsname + {\xint_arrayname}% #2% }% -\def\XINT@assignarray@loop #1% +\def\XINT_assignarray_loop #1% {% - \def\xint@temp {#1}% - \ifx\xint@bracedundef\xint@temp - \edef\xint@temp{\the\count 255 }% - \expandafter\let\csname\xint@arrayname0\endcsname\xint@temp - \expandafter\XINT@assignarray@end + \def\xint_temp {#1}% + \ifx\xint_braced_xint_relax\xint_temp + \expandafter\edef\csname\xint_arrayname 0\endcsname{\the\count 255 }% + \expandafter\expandafter\expandafter\XINT_assignarray_end_a \else \advance\count 255 1 \expandafter\edef - \csname\xint@arrayname\the\count 255\endcsname{\xint@temp}% - \expandafter\XINT@assignarray@loop + \csname\xint_arrayname\the\count 255\endcsname{\xint_temp }% + \expandafter\XINT_assignarray_loop \fi }% -\def\XINT@assignarray@end {\expandafter\XINT@assignarray@@end }% -\def\XINT@assignarray@@end #1% +\def\XINT_assignarray_end_a #1% {% - \expandafter\XINT@assignarray@@@end\expandafter #1% + \expandafter\XINT_assignarray_end_b\expandafter #1% }% -\def\XINT@assignarray@@@end #1#2#3% +\def\XINT_assignarray_end_b #1#2#3% {% - \expandafter\XINT@assignarray@@@@end - \expandafter #1\expandafter #2\expandafter{#3}% + \expandafter\XINT_assignarray_end_c + \expandafter #1\expandafter #2\expandafter {#3}% }% -\def\XINT@assignarray@@@@end #1#2#3#4% +\def\XINT_assignarray_end_c #1#2#3#4% {% \def #4##1% {% - \romannumeral0% - \expandafter #1\expandafter{\the\numexpr ##1}% + \romannumeral0\expandafter #1\expandafter{\the\numexpr ##1}% }% \def #1##1% {% \ifnum ##1< 0 - \xint@afterfi {\xintError:ArrayIndexIsNegative\space 0}% + \xint_afterfi {\xintError:ArrayIndexIsNegative\space 0}% \else - \xint@afterfi {% + \xint_afterfi {% \ifnum ##1> #2 - \xint@afterfi {\xintError:ArrayIndexBeyondLimit\space 0}% + \xint_afterfi {\xintError:ArrayIndexBeyondLimit\space 0}% \else - \xint@afterfi + \xint_afterfi {\expandafter\expandafter\expandafter \space\csname #3##1\endcsname}% \fi}% @@ -4791,181 +4981,185 @@ first place. }% \let\xintDigitsOf\xintAssignArray % \end{macrocode} -% \subsection{\csh{XINT@RQ}} -% \begin{verbatim} +% \subsection{\csh{XINT\_RQ}} +% \lverb|& % cette macro renverse et ajoute le nombre minimal de zéros à -% la fin pour que la longueur soit alors multiple de 4 -% \romannumeral0\XINT@RQ {}<le truc à renverser>\R\R\R\R\R\R\R\R\Z +% la fin pour que la longueur soit alors multiple de 4$\ +% \romannumeral0\XINT_RQ {}<le truc à renverser>\R\R\R\R\R\R\R\R\Z$\ % Attention, ceci n'est utilisé que pour des chaînes de chiffres, et donc le % comportement avec des {..} ou autres espaces n'a fait l'objet d'aucune -% attention -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% attention | % \begin{macrocode} -\def\XINT@RQ #1#2#3#4#5#6#7#8#9% +\def\XINT_RQ #1#2#3#4#5#6#7#8#9% {% - \xint@r #9\XINT@RQ@end\R\XINT@RQ {#9#8#7#6#5#4#3#2#1}% + \xint_gob_til_r #9\XINT_RQ_end_a\R\XINT_RQ {#9#8#7#6#5#4#3#2#1}% }% -\def\XINT@RQ@end\R\XINT@RQ #1#2\Z +\def\XINT_RQ_end_a\R\XINT_RQ #1#2\Z {% - \XINT@RQ@end@ #1\Z + \XINT_RQ_end_b #1\Z }% -\def\XINT@RQ@end@ #1#2#3#4#5#6#7#8% +\def\XINT_RQ_end_b #1#2#3#4#5#6#7#8% {% - \xint@r #8\XINT@RQ@end@viii - #7\XINT@RQ@end@vii - #6\XINT@RQ@end@vi - #5\XINT@RQ@end@v - #4\XINT@RQ@end@iv - #3\XINT@RQ@end@iii - #2\XINT@RQ@end@ii - \R\XINT@RQ@end@i + \xint_gob_til_r + #8\XINT_RQ_end_viii + #7\XINT_RQ_end_vii + #6\XINT_RQ_end_vi + #5\XINT_RQ_end_v + #4\XINT_RQ_end_iv + #3\XINT_RQ_end_iii + #2\XINT_RQ_end_ii + \R\XINT_RQ_end_i \Z #2#3#4#5#6#7#8% }% -\def\XINT@RQ@end@viii #1\Z #2#3#4#5#6#7#8#9\Z { #9}% -\def\XINT@RQ@end@vii #1\Z #2#3#4#5#6#7#8#9\Z { #8#9000}% -\def\XINT@RQ@end@vi #1\Z #2#3#4#5#6#7#8#9\Z { #7#8#900}% -\def\XINT@RQ@end@v #1\Z #2#3#4#5#6#7#8#9\Z { #6#7#8#90}% -\def\XINT@RQ@end@iv #1\Z #2#3#4#5#6#7#8#9\Z { #5#6#7#8#9}% -\def\XINT@RQ@end@iii #1\Z #2#3#4#5#6#7#8#9\Z { #4#5#6#7#8#9000}% -\def\XINT@RQ@end@ii #1\Z #2#3#4#5#6#7#8#9\Z { #3#4#5#6#7#8#900}% -\def\XINT@RQ@end@i \Z #1#2#3#4#5#6#7#8\Z { #1#2#3#4#5#6#7#80}% +\def\XINT_RQ_end_viii #1\Z #2#3#4#5#6#7#8#9\Z { #9}% +\def\XINT_RQ_end_vii #1\Z #2#3#4#5#6#7#8#9\Z { #8#9000}% +\def\XINT_RQ_end_vi #1\Z #2#3#4#5#6#7#8#9\Z { #7#8#900}% +\def\XINT_RQ_end_v #1\Z #2#3#4#5#6#7#8#9\Z { #6#7#8#90}% +\def\XINT_RQ_end_iv #1\Z #2#3#4#5#6#7#8#9\Z { #5#6#7#8#9}% +\def\XINT_RQ_end_iii #1\Z #2#3#4#5#6#7#8#9\Z { #4#5#6#7#8#9000}% +\def\XINT_RQ_end_ii #1\Z #2#3#4#5#6#7#8#9\Z { #3#4#5#6#7#8#900}% +\def\XINT_RQ_end_i \Z #1#2#3#4#5#6#7#8\Z { #1#2#3#4#5#6#7#80}% % \end{macrocode} -% \subsection{\csh{XINT@cuz}} +% \subsection{\csh{XINT\_cuz}} % \begin{macrocode} -\def\xint@cleanupzeros@andstop #1#2#3#4% +\def\xint_cleanupzeros_andstop #1#2#3#4% {% \expandafter\space\the\numexpr #1#2#3#4\relax }% -\def\xint@cleanupzeros@nospace #1#2#3#4% +\def\xint_cleanupzeros_nospace #1#2#3#4% {% \the\numexpr #1#2#3#4\relax }% -\def\XINT@rev@andcuz #1% +\def\XINT_rev_andcuz #1% {% - \expandafter\xint@cleanupzeros@andstop - \romannumeral0\XINT@rord@main {}#1% - \xint@UNDEF - \xint@undef\xint@undef\xint@undef\xint@undef - \xint@undef\xint@undef\xint@undef\xint@undef - \xint@UNDEF + \expandafter\xint_cleanupzeros_andstop + \romannumeral0\XINT_rord_main {}#1% + \xint_relax + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_relax }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} +% \lverb|& % routine CleanUpZeros. Utilisée en particulier par la -% soustraction. -% INPUT: longueur **multiple de 4** (<-- ATTENTION) +% soustraction.$\ +% INPUT: longueur **multiple de 4** (<-- ATTENTION)$\ % OUTPUT: on a retiré tous les leading zéros, on n'est **plus* -% nécessairement de longueur 4n -% Délimiteur pour @main: \W\W\W\W\W\W\W\Z avec SEPT \W -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% nécessairement de longueur 4n$\ +% Délimiteur pour _main: \W\W\W\W\W\W\W\Z avec SEPT \W| % \begin{macrocode} -\def\XINT@cuz #1% +\def\XINT_cuz #1% {% - \XINT@cuz@loop #1\W\W\W\W\W\W\W\Z% + \XINT_cuz_loop #1\W\W\W\W\W\W\W\Z% }% -\def\XINT@cuz@loop #1#2#3#4#5#6#7#8% +\def\XINT_cuz_loop #1#2#3#4#5#6#7#8% {% - \xint@w #8\xint@cuz@enda\W - \xint@z #8\xint@cuz@endb\Z - \XINT@cuz@checka {#1#2#3#4#5#6#7#8}% + \xint_gob_til_w #8\xint_cuz_end_a\W + \xint_gob_til_z #8\xint_cuz_end_A\Z + \XINT_cuz_check_a {#1#2#3#4#5#6#7#8}% }% -\def\xint@cuz@enda #1\XINT@cuz@checka #2% +\def\xint_cuz_end_a #1\XINT_cuz_check_a #2% {% - \xint@cuz@endaa #2% + \xint_cuz_end_b #2% }% -\def\xint@cuz@endaa #1#2#3#4#5\Z +\def\xint_cuz_end_b #1#2#3#4#5\Z {% \expandafter\space\the\numexpr #1#2#3#4\relax }% -\def\xint@cuz@endb\Z\XINT@cuz@checka #1{ 0}% -\def\XINT@cuz@checka #1% +\def\xint_cuz_end_A \Z\XINT_cuz_check_a #1{ 0}% +\def\XINT_cuz_check_a #1% {% - \expandafter \XINT@cuz@checkb \the\numexpr #1\relax + \expandafter\XINT_cuz_check_b\the\numexpr #1\relax }% -\def\XINT@cuz@checkb #1% +\def\XINT_cuz_check_b #1% {% - \xint@zero #1\xint@cuz@backtoloop 0\XINT@cuz@Stop #1% + \xint_gob_til_zero #1\xint_cuz_backtoloop 0\XINT_cuz_stop #1% }% -\def\XINT@cuz@Stop #1\W #2\Z{ #1}% -\def\xint@cuz@backtoloop 0\XINT@cuz@Stop 0{\XINT@cuz@loop }% +\def\XINT_cuz_stop #1\W #2\Z{ #1}% +\def\xint_cuz_backtoloop 0\XINT_cuz_stop 0{\XINT_cuz_loop }% % \end{macrocode} -% \subsection{\csh{XINT@isOne}} -% Added in |1.03|. Attention: does not do any expansion. +% \subsection{\csh{XINT\_isOne}} +% \lverb|& +% Added in 1.03. Attention: does not do any expansion.| % \begin{macrocode} -\def\XINT@isOne #1{\romannumeral0\XINT@isone #1\W\Z }% -\def\XINT@isone #1#2% +\def\XINT_isOne #1{\romannumeral0\XINT_isone #1\W\Z }% +\def\XINT_isone #1#2% {% - \xint@one #1\XINT@isone@b 1\expandafter\space\expandafter 0\xint@z #2% + \xint_gob_til_one #1\XINT_isone_b 1% + \expandafter\space\expandafter 0\xint_gob_til_z #2% }% -\def\XINT@isone@b #1\xint@z #2% +\def\XINT_isone_b #1\xint_gob_til_z #2% {% - \xint@w #2\XINT@isone@yes\W\expandafter\space\expandafter 0\xint@z + \xint_gob_til_w #2\XINT_isone_yes \W + \expandafter\space\expandafter 0\xint_gob_til_z }% -\def\XINT@isone@yes #1\Z{ 1}% +\def\XINT_isone_yes #1\Z { 1}% % \end{macrocode} % \subsection{\csh{xintNum}} -% \begin{verbatim} -% For example \xintNum {----+-+++---+----000000000000003} +% \lverb|& +% For example \xintNum {----+-+++---+----000000000000003}$\ % 1.05 defines \xintiNum, which allows redefinition of \xintNum by xintfrac.sty -% \end{verbatim} +% Slightly modified in 1.06b (\R->\xint_relax) to avoid initial re-scan of +% input stack (while still allowing empty #1)| % \begin{macrocode} \def\xintiNum {\romannumeral0\xintinum }% \def\xintinum #1% {% - \expandafter\XINT@num\expandafter {\romannumeral-`0#1}% + \expandafter\XINT_num_loop + \romannumeral-`0#1\xint_relax\xint_relax\xint_relax\xint_relax + \xint_relax\xint_relax\xint_relax\xint_relax\Z }% \let\xintNum\xintiNum \let\xintnum\xintinum -\def\XINT@Num {\romannumeral0\XINT@num }% -\def\XINT@num #1{\XINT@num@loop #1\R\R\R\R\R\R\R\R\Z }% -\def\XINT@num@loop #1#2#3#4#5#6#7#8% +\def\XINT_num #1% +{% + \XINT_num_loop #1\xint_relax\xint_relax\xint_relax\xint_relax + \xint_relax\xint_relax\xint_relax\xint_relax\Z +}% +\def\XINT_num_loop #1#2#3#4#5#6#7#8% {% - \xint@r #8\XINT@num@end\R\XINT@num@NumEight #1#2#3#4#5#6#7#8% + \xint_gob_til_xint_relax #8\XINT_num_end\xint_relax + \XINT_num_NumEight #1#2#3#4#5#6#7#8% }% -\def\XINT@num@end\R\XINT@num@NumEight #1\R #2\Z +\def\XINT_num_end\xint_relax\XINT_num_NumEight #1\xint_relax #2\Z {% \expandafter\space\the\numexpr #1+0\relax }% -\def\XINT@num@NumEight #1#2#3#4#5#6#7#8% +\def\XINT_num_NumEight #1#2#3#4#5#6#7#8% {% - \ifnum \numexpr #1#2#3#4#5#6#7#8+0\relax = 0 - \xint@afterfi {\expandafter\XINT@num@keepsign@a + \ifnum \numexpr #1#2#3#4#5#6#7#8+0= 0 + \xint_afterfi {\expandafter\XINT_num_keepsign_a \the\numexpr #1#2#3#4#5#6#7#81\relax}% \else - \xint@afterfi {\expandafter\XINT@num@finish + \xint_afterfi {\expandafter\XINT_num_finish \the\numexpr #1#2#3#4#5#6#7#8\relax}% \fi }% -\def\XINT@num@keepsign@a #1% +\def\XINT_num_keepsign_a #1% {% - \xint@one#1\XINT@num@gobacktoloop 1\XINT@num@keepsign@b + \xint_gob_til_one#1\XINT_num_gobacktoloop 1\XINT_num_keepsign_b }% -\def\XINT@num@gobacktoloop 1\XINT@num@keepsign@b {\XINT@num@loop }% -\def\XINT@num@keepsign@b #1{\XINT@num@loop -}% -\def\XINT@num@finish #1\R #2\Z { #1}% +\def\XINT_num_gobacktoloop 1\XINT_num_keepsign_b {\XINT_num_loop }% +\def\XINT_num_keepsign_b #1{\XINT_num_loop -}% +\def\XINT_num_finish #1\xint_relax #2\Z { #1}% % \end{macrocode} % \subsection{\csh{xintSgn}} -% \begin{verbatim} -% Changed in 1.05. Earlier code was unnecessarily strange. -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|& +% Changed in 1.05. Earlier code was unnecessarily strange.| % \begin{macrocode} \def\xintiSgn {\romannumeral0\xintisgn }% \def\xintisgn #1% {% - \expandafter\XINT@sgn \romannumeral-`0#1\Z% + \expandafter\XINT_sgn \romannumeral-`0#1\Z% }% \let\xintSgn\xintiSgn \let\xintsgn\xintisgn -\def\XINT@Sgn #1{\romannumeral0\XINT@sgn #1\Z }% -\def\XINT@sgn #1#2\Z +\def\XINT_Sgn #1{\romannumeral0\XINT_sgn #1\Z }% +\def\XINT_sgn #1#2\Z {% - \xint@UDzerominusfork + \xint_UDzerominusfork #1-\dummy { 0}% 0#1\dummy { -1}% 0-\dummy { 1}% - \xint@UDkrof + \krof }% % \end{macrocode} % \subsection{\csh{xintOpp}} @@ -4973,17 +5167,17 @@ first place. \def\xintiOpp {\romannumeral0\xintiopp }% \def\xintiopp #1% {% - \expandafter\XINT@opp \romannumeral-`0#1% + \expandafter\XINT_opp \romannumeral-`0#1% }% \let\xintOpp\xintiOpp \let\xintopp\xintiopp -\def\XINT@Opp #1{\romannumeral0\XINT@opp #1}% -\def\XINT@opp #1% +\def\XINT_Opp #1{\romannumeral0\XINT_opp #1}% +\def\XINT_opp #1% {% - \xint@UDzerominusfork + \xint_UDzerominusfork #1-\dummy { 0}% zero 0#1\dummy { }% negative 0-\dummy { -#1}% positive - \xint@UDkrof + \krof }% % \end{macrocode} % \subsection{\csh{xintAbs}} @@ -4991,22 +5185,22 @@ first place. \def\xintiAbs {\romannumeral0\xintiabs }% \def\xintiabs #1% {% - \expandafter\XINT@abs \romannumeral-`0#1% + \expandafter\XINT_abs \romannumeral-`0#1% }% \let\xintAbs\xintiAbs \let\xintabs\xintiabs -\def\XINT@Abs #1{\romannumeral0\XINT@abs #1}% -\def\XINT@abs #1% +\def\XINT_Abs #1{\romannumeral0\XINT_abs #1}% +\def\XINT_abs #1% {% - \xint@UDsignfork + \xint_UDsignfork #1\dummy { }% -\dummy { #1}% - \xint@UDkrof + \krof }% % \end{macrocode} -% \begin{verbatim} -%----------------------------------------------------------------- -%----------------------------------------------------------------- -% ARITHMETIC OPERATIONS: ADDITION, SUBTRACTION, SUMS, +% \lverb|& +% -----------------------------------------------------------------$\ +% -----------------------------------------------------------------$\ +% ARITHMETIC OPERATIONS: ADDITION, SUBTRACTION, SUMS, % MULTIPLICATION, PRODUCTS, FACTORIAL, POWERS, EUCLIDEAN DIVISION. % % Release 1.03 re-organizes sub-routines to facilitate future developments: the @@ -5015,494 +5209,469 @@ first place. % the power routines. I am aware that the commenting is close to non-existent, % sorry about that. % -% ADDITION -% I: \XINT@add@A -% INPUT: -% \romannumeral0\XINT@add@A 0{}<N1>\W\X\Y\Z <N2>\W\X\Y\Z -% 1. <N1> et <N2> renversés -% 2. de longueur 4n (avec des leading zéros éventuels) -% 3. l'un des deux ne doit pas se terminer par 0000 +% ADDITION I: \XINT_add_A +% +% INPUT:$\ +% \romannumeral0\XINT_add_A 0{}<N1>\W\X\Y\Z <N2>\W\X\Y\Z$\ +% 1. <N1> et <N2> renversés $\ +% 2. de longueur 4n (avec des leading zéros éventuels)$\ +% 3. l'un des deux ne doit pas se terminer par 0000$\$relax % [Donc on peut avoir 0000 comme input si l'autre est >0 et ne se termine pas en % 0000 bien sûr]. On peut avoir l'un des deux vides. Mais alors l'autre ne doit % être ni vide ni 0000. -% OUTPUT: la somme <N1>+<N2>, order normal, plus sur 4n, pas de leading zeros -% La procédure est plus rapide lorsque <N1> est le plus court des deux. +% +% OUTPUT: la somme <N1>+<N2>, ordre normal, plus sur 4n, pas de leading zeros +% La procédure est plus rapide lorsque <N1> est le plus court des deux.$\ % Nota bene: (30 avril 2013). J'ai une version qui est deux fois plus rapide sur % des nombres d'environ 1000 chiffres chacun, et qui commence à être avantageuse % pour des nombres d'au moins 200 chiffres. Cependant il serait vraiment % compliqué d'en étendre l'utilisation aux emplois de l'addition dans les % autres routines, comme celle de multiplication ou celle de division; et son -% implémentation ajouterait au minimum la mesure de la longueur des summands. -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% implémentation ajouterait au minimum la mesure de la longueur des summands.| % \begin{macrocode} -\def\XINT@add@A #1#2#3#4#5#6% +\def\XINT_add_A #1#2#3#4#5#6% {% - \xint@w #3\xint@add@az\W\XINT@add@AB #1{#3#4#5#6}{#2}% + \xint_gob_til_w #3\xint_add_az\W + \XINT_add_AB #1{#3#4#5#6}{#2}% }% -\def\xint@add@az\W\XINT@add@AB #1#2% +\def\xint_add_az\W\XINT_add_AB #1#2% {% - \XINT@add@AC@checkcarry #1% + \XINT_add_AC_checkcarry #1% }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% ici #2 est prévu pour l'addition, mais attention il devra être renversé pour -% \numexpr. #3 = résultat partiel. #4 = chiffres qui restent. On vérifie si le -% deuxième nombre s'arrête. -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|& +% ici #2 est prévu pour l'addition, mais attention il devra être renversé +% pour \numexpr. #3 = résultat partiel. #4 = chiffres qui restent. On vérifie si +% le deuxième nombre s'arrête.| % \begin{macrocode} -\def\XINT@add@AB #1#2#3#4\W\X\Y\Z #5#6#7#8% +\def\XINT_add_AB #1#2#3#4\W\X\Y\Z #5#6#7#8% {% - \xint@w #5\xint@add@bz\W - \XINT@add@ABE #1#2{#8#7#6#5}{#3}#4\W\X\Y\Z + \xint_gob_til_w #5\xint_add_bz\W + \XINT_add_ABE #1#2{#8#7#6#5}{#3}#4\W\X\Y\Z }% -\def\XINT@add@ABE #1#2#3#4#5#6% +\def\XINT_add_ABE #1#2#3#4#5#6% {% - \expandafter\XINT@add@ABEA\the\numexpr #1+10#5#4#3#2+#6\relax.% + \expandafter\XINT_add_ABEA\the\numexpr #1+10#5#4#3#2+#6\relax.% }% -\def\XINT@add@ABEA #1#2#3.#4% +\def\XINT_add_ABEA #1#2#3.#4% {% - \XINT@add@A #2{#3#4}% + \XINT_add_A #2{#3#4}% }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} +% \lverb|& % ici le deuxième nombre est fini -% #6 part à la poubelle, #2#3#4#5 est le #2 dans \XINT@add@AB -% on ne vérifie pas la retenue cette fois, mais les fois suivantes -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% #6 part à la poubelle, #2#3#4#5 est le #2 dans \XINT_add_AB +% on ne vérifie pas la retenue cette fois, mais les fois suivantes| % \begin{macrocode} -\def\xint@add@bz\W\XINT@add@ABE #1#2#3#4#5#6% +\def\xint_add_bz\W\XINT_add_ABE #1#2#3#4#5#6% {% - \expandafter\XINT@add@CC\the\numexpr #1+10#5#4#3#2\relax.% + \expandafter\XINT_add_CC\the\numexpr #1+10#5#4#3#2\relax.% }% -\def\XINT@add@CC #1#2#3.#4% +\def\XINT_add_CC #1#2#3.#4% {% - \XINT@add@AC@checkcarry #2{#3#4}% on va examiner et \'eliminer #2 + \XINT_add_AC_checkcarry #2{#3#4}% on va examiner et \'eliminer #2 }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} +% \lverb|& % retenue plus chiffres qui restent de l'un des deux nombres. % #2 = résultat partiel -% #3#4#5#6 = summand, avec plus significatif à droite -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% #3#4#5#6 = summand, avec plus significatif à droite| % \begin{macrocode} -\def\XINT@add@AC@checkcarry #1% +\def\XINT_add_AC_checkcarry #1% {% - \xint@zero #1\xint@add@AC@nocarry 0\XINT@add@C + \xint_gob_til_zero #1\xint_add_AC_nocarry 0\XINT_add_C }% -\def\xint@add@AC@nocarry 0\XINT@add@C #1#2\W\X\Y\Z +\def\xint_add_AC_nocarry 0\XINT_add_C #1#2\W\X\Y\Z {% \expandafter - \xint@cleanupzeros@andstop + \xint_cleanupzeros_andstop \romannumeral0% - \XINT@rord@main {}#2% - \xint@UNDEF - \xint@undef\xint@undef\xint@undef\xint@undef - \xint@undef\xint@undef\xint@undef\xint@undef - \xint@UNDEF + \XINT_rord_main {}#2% + \xint_relax + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_relax #1% }% -\def\XINT@add@C #1#2#3#4#5% +\def\XINT_add_C #1#2#3#4#5% {% - \xint@w #2\xint@add@cz\W\XINT@add@CD {#5#4#3#2}{#1}%q + \xint_gob_til_w #2\xint_add_cz\W + \XINT_add_CD {#5#4#3#2}{#1}% }% -\def\XINT@add@CD #1% +\def\XINT_add_CD #1% {% - \expandafter\XINT@add@CC\the\numexpr 1+10#1\relax.% + \expandafter\XINT_add_CC\the\numexpr 1+10#1\relax.% }% -\def\xint@add@cz\W\XINT@add@CD #1#2{ 1#2}% +\def\xint_add_cz\W\XINT_add_CD #1#2{ 1#2}% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% Addition II: \XINT@addr@A. -% INPUT: -% \romannumeral0\XINT@addr@A 0{}<N1>\W\X\Y\Z <N2>\W\X\Y\Z -% Comme \XINT@add@A, la différence principale c'est qu'elle donne son résultat +% \lverb|Addition II: \XINT_addr_A.$\ +% INPUT: \romannumeral0\XINT_addr_A 0{}<N1>\W\X\Y\Z <N2>\W\X\Y\Z +% +% Comme \XINT_add_A, la différence principale c'est qu'elle donne son résultat % aussi *sur 4n*, renversé. De plus cette variante accepte que l'un ou même les -% deux inputs soient vides. -% Utilisé par la sommation et par la division (pour les quotients). Et aussi -% par la multiplication d'ailleurs. -% INPUT: comme pour \XINT@add@A -% 1. <N1> et <N2> renversés -% 2. de longueur 4n (avec des leading zéros éventuels) -% 3. l'un des deux ne doit pas se terminer par 0000 -% OUTPUT: la somme <N1>+<N2>, *aussi renversée* et *sur 4n* -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% deux inputs soient vides. Utilisé par la sommation et par la division (pour +% les quotients). Et aussi par la multiplication d'ailleurs.$\ +% INPUT: comme pour \XINT_add_A$\ +% 1. <N1> et <N2> renversés $\ +% 2. de longueur 4n (avec des leading zéros éventuels)$\ +% 3. l'un des deux ne doit pas se terminer par 0000$\ +% OUTPUT: la somme <N1>+<N2>, *aussi renversée* et *sur 4n*| % \begin{macrocode} -\def\XINT@addr@A #1#2#3#4#5#6% +\def\XINT_addr_A #1#2#3#4#5#6% {% - \xint@w #3\xint@addr@az\W\XINT@addr@B #1{#3#4#5#6}{#2}% + \xint_gob_til_w #3\xint_addr_az\W + \XINT_addr_B #1{#3#4#5#6}{#2}% }% -\def\xint@addr@az\W\XINT@addr@B #1#2% +\def\xint_addr_az\W\XINT_addr_B #1#2% {% - \XINT@addr@AC@checkcarry #1% + \XINT_addr_AC_checkcarry #1% }% -\def\XINT@addr@B #1#2#3#4\W\X\Y\Z #5#6#7#8% +\def\XINT_addr_B #1#2#3#4\W\X\Y\Z #5#6#7#8% {% - \xint@w #5\xint@addr@bz\W\XINT@addr@E #1#2{#8#7#6#5}{#3}#4\W\X\Y\Z + \xint_gob_til_w #5\xint_addr_bz\W + \XINT_addr_E #1#2{#8#7#6#5}{#3}#4\W\X\Y\Z }% -\def\XINT@addr@E #1#2#3#4#5#6% +\def\XINT_addr_E #1#2#3#4#5#6% {% - \expandafter\XINT@addr@ABEA\the\numexpr #1+10#5#4#3#2+#6\relax + \expandafter\XINT_addr_ABEA\the\numexpr #1+10#5#4#3#2+#6\relax }% -\def\XINT@addr@ABEA #1#2#3#4#5#6#7% +\def\XINT_addr_ABEA #1#2#3#4#5#6#7% {% - \XINT@addr@A #2{#7#6#5#4#3}% + \XINT_addr_A #2{#7#6#5#4#3}% }% -\def\xint@addr@bz\W\XINT@addr@E #1#2#3#4#5#6% +\def\xint_addr_bz\W\XINT_addr_E #1#2#3#4#5#6% {% - \expandafter\XINT@addr@CC\the\numexpr #1+10#5#4#3#2\relax + \expandafter\XINT_addr_CC\the\numexpr #1+10#5#4#3#2\relax }% -\def\XINT@addr@CC #1#2#3#4#5#6#7% +\def\XINT_addr_CC #1#2#3#4#5#6#7% {% - \XINT@addr@AC@checkcarry #2{#7#6#5#4#3}% + \XINT_addr_AC_checkcarry #2{#7#6#5#4#3}% }% -\def\XINT@addr@AC@checkcarry #1% +\def\XINT_addr_AC_checkcarry #1% {% - \xint@zero #1\xint@addr@AC@nocarry 0\XINT@addr@C + \xint_gob_til_zero #1\xint_addr_AC_nocarry 0\XINT_addr_C }% -\def\xint@addr@AC@nocarry 0\XINT@addr@C #1#2\W\X\Y\Z { #1#2}% -\def\XINT@addr@C #1#2#3#4#5% +\def\xint_addr_AC_nocarry 0\XINT_addr_C #1#2\W\X\Y\Z { #1#2}% +\def\XINT_addr_C #1#2#3#4#5% {% - \xint@w #2\xint@addr@cz\W\XINT@addr@D {#5#4#3#2}{#1}% + \xint_gob_til_w #2\xint_addr_cz\W + \XINT_addr_D {#5#4#3#2}{#1}% }% -\def\XINT@addr@D #1% +\def\XINT_addr_D #1% {% - \expandafter\XINT@addr@CC\the\numexpr 1+10#1\relax + \expandafter\XINT_addr_CC\the\numexpr 1+10#1\relax }% -\def\xint@addr@cz\W\XINT@addr@D #1#2{ #21000}% +\def\xint_addr_cz\W\XINT_addr_D #1#2{ #21000}% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% ADDITION III, \XINT@addm@A -% INPUT: -% \romannumeral0\XINT@addm@A 0{}<N1>\W\X\Y\Z <N2>\W\X\Y\Z -% 1. <N1> et <N2> renversés -% 2. <N1> de longueur 4n ; <N2> non -% 3. <N2> est *garanti au moins aussi long* que <N1> +% \lverb|ADDITION III, \XINT_addm_A$\ +% INPUT:\romannumeral0\XINT_addm_A 0{}<N1>\W\X\Y\Z <N2>\W\X\Y\Z$\ +% 1. <N1> et <N2> renversés$\ +% 2. <N1> de longueur 4n ; <N2> non$\ +% 3. <N2> est *garanti au moins aussi long* que <N1>$\ % OUTPUT: la somme <N1>+<N2>, ordre normal, pas sur 4n, leading zeros retirés. -% Utilisé par la multiplication. -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% Utilisé par la multiplication.| % \begin{macrocode} -\def\XINT@addm@A #1#2#3#4#5#6% +\def\XINT_addm_A #1#2#3#4#5#6% {% - \xint@w #3\xint@addm@az\W\XINT@addm@AB #1{#3#4#5#6}{#2}% + \xint_gob_til_w #3\xint_addm_az\W + \XINT_addm_AB #1{#3#4#5#6}{#2}% }% -\def\xint@addm@az\W\XINT@addm@AB #1#2% +\def\xint_addm_az\W\XINT_addm_AB #1#2% {% - \XINT@addm@AC@checkcarry #1% + \XINT_addm_AC_checkcarry #1% }% -\def\XINT@addm@AB #1#2#3#4\W\X\Y\Z #5#6#7#8% +\def\XINT_addm_AB #1#2#3#4\W\X\Y\Z #5#6#7#8% {% - \XINT@addm@ABE #1#2{#8#7#6#5}{#3}#4\W\X\Y\Z + \XINT_addm_ABE #1#2{#8#7#6#5}{#3}#4\W\X\Y\Z }% -\def\XINT@addm@ABE #1#2#3#4#5#6% +\def\XINT_addm_ABE #1#2#3#4#5#6% {% - \expandafter\XINT@addm@ABEA\the\numexpr #1+10#5#4#3#2+#6\relax.% + \expandafter\XINT_addm_ABEA\the\numexpr #1+10#5#4#3#2+#6\relax.% }% -\def\XINT@addm@ABEA #1#2#3.#4% +\def\XINT_addm_ABEA #1#2#3.#4% {% - \XINT@addm@A #2{#3#4}% + \XINT_addm_A #2{#3#4}% }% -\def\XINT@addm@AC@checkcarry #1% +\def\XINT_addm_AC_checkcarry #1% {% - \xint@zero #1\xint@addm@AC@nocarry 0\XINT@addm@C + \xint_gob_til_zero #1\xint_addm_AC_nocarry 0\XINT_addm_C }% -\def\xint@addm@AC@nocarry 0\XINT@addm@C #1#2\W\X\Y\Z +\def\xint_addm_AC_nocarry 0\XINT_addm_C #1#2\W\X\Y\Z {% \expandafter - \xint@cleanupzeros@andstop + \xint_cleanupzeros_andstop \romannumeral0% - \XINT@rord@main {}#2% - \xint@UNDEF - \xint@undef\xint@undef\xint@undef\xint@undef - \xint@undef\xint@undef\xint@undef\xint@undef - \xint@UNDEF + \XINT_rord_main {}#2% + \xint_relax + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_relax #1% }% -\def\XINT@addm@C #1#2#3#4#5% +\def\XINT_addm_C #1#2#3#4#5% {% - \xint@w - #5\xint@addm@cw - #4\xint@addm@cx - #3\xint@addm@cy - #2\xint@addm@cz - \W\XINT@addm@CD {#5#4#3#2}{#1}% + \xint_gob_til_w + #5\xint_addm_cw + #4\xint_addm_cx + #3\xint_addm_cy + #2\xint_addm_cz + \W\XINT_addm_CD {#5#4#3#2}{#1}% }% -\def\XINT@addm@CD #1% +\def\XINT_addm_CD #1% {% - \expandafter\XINT@addm@CC\the\numexpr 1+10#1\relax.% + \expandafter\XINT_addm_CC\the\numexpr 1+10#1\relax.% }% -\def\XINT@addm@CC #1#2#3.#4% +\def\XINT_addm_CC #1#2#3.#4% {% - \XINT@addm@AC@checkcarry #2{#3#4}% + \XINT_addm_AC_checkcarry #2{#3#4}% }% -\def\xint@addm@cw - #1\xint@addm@cx - #2\xint@addm@cy - #3\xint@addm@cz - \W\XINT@addm@CD +\def\xint_addm_cw + #1\xint_addm_cx + #2\xint_addm_cy + #3\xint_addm_cz + \W\XINT_addm_CD {% - \expandafter\XINT@addm@CDw\the\numexpr 1+#1#2#3\relax.% + \expandafter\XINT_addm_CDw\the\numexpr 1+#1#2#3\relax.% }% -\def\XINT@addm@CDw #1.#2#3\X\Y\Z +\def\XINT_addm_CDw #1.#2#3\X\Y\Z {% - \XINT@addm@end #1#3% + \XINT_addm_end #1#3% }% -\def\xint@addm@cx - #1\xint@addm@cy - #2\xint@addm@cz - \W\XINT@addm@CD +\def\xint_addm_cx + #1\xint_addm_cy + #2\xint_addm_cz + \W\XINT_addm_CD {% - \expandafter\XINT@addm@CDx\the\numexpr 1+#1#2\relax.% + \expandafter\XINT_addm_CDx\the\numexpr 1+#1#2\relax.% }% -\def\XINT@addm@CDx #1.#2#3\Y\Z +\def\XINT_addm_CDx #1.#2#3\Y\Z {% - \XINT@addm@end #1#3% + \XINT_addm_end #1#3% }% -\def\xint@addm@cy - #1\xint@addm@cz - \W\XINT@addm@CD +\def\xint_addm_cy + #1\xint_addm_cz + \W\XINT_addm_CD {% - \expandafter\XINT@addm@CDy\the\numexpr 1+#1\relax.% + \expandafter\XINT_addm_CDy\the\numexpr 1+#1\relax.% }% -\def\XINT@addm@CDy #1.#2#3\Z +\def\XINT_addm_CDy #1.#2#3\Z {% - \XINT@addm@end #1#3% + \XINT_addm_end #1#3% }% -\def\xint@addm@cz\W\XINT@addm@CD #1#2#3{\XINT@addm@end #1#3}% -\def\XINT@addm@end #1#2#3#4#5% +\def\xint_addm_cz\W\XINT_addm_CD #1#2#3{\XINT_addm_end #1#3}% +\def\XINT_addm_end #1#2#3#4#5% {\expandafter\space\the\numexpr #1#2#3#4#5\relax}% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% ADDITION IV, variante \XINT@addp@A +% \lverb|ADDITION IV, variante \XINT_addp_A$\ % INPUT: -% \romannumeral0\XINT@addp@A 0{}<N1>\W\X\Y\Z <N2>\W\X\Y\Z -% 1. <N1> et <N2> renversés -% 2. <N1> de longueur 4n ; <N2> non -% 3. <N2> est *garanti au moins aussi long* que <N1> +% \romannumeral0\XINT_addp_A 0{}<N1>\W\X\Y\Z <N2>\W\X\Y\Z$\ +% 1. <N1> et <N2> renversés$\ +% 2. <N1> de longueur 4n ; <N2> non$\ +% 3. <N2> est *garanti au moins aussi long* que <N1>$\ % OUTPUT: la somme <N1>+<N2>, dans l'ordre renversé, sur 4n, et en faisant % attention de ne pas terminer en 0000. -% Utilisé par la multiplication servant pour le calcul des puissances. -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% Utilisé par la multiplication servant pour le calcul des puissances.| % \begin{macrocode} -\def\XINT@addp@A #1#2#3#4#5#6% +\def\XINT_addp_A #1#2#3#4#5#6% {% - \xint@w #3\xint@addp@az\W\XINT@addp@AB #1{#3#4#5#6}{#2}% + \xint_gob_til_w #3\xint_addp_az\W + \XINT_addp_AB #1{#3#4#5#6}{#2}% }% -\def\xint@addp@az\W\XINT@addp@AB #1#2% +\def\xint_addp_az\W\XINT_addp_AB #1#2% {% - \XINT@addp@AC@checkcarry #1% + \XINT_addp_AC_checkcarry #1% }% -\def\XINT@addp@AC@checkcarry #1% +\def\XINT_addp_AC_checkcarry #1% {% - \xint@zero #1\xint@addp@AC@nocarry 0\XINT@addp@C + \xint_gob_til_zero #1\xint_addp_AC_nocarry 0\XINT_addp_C }% -\def\xint@addp@AC@nocarry 0\XINT@addp@C +\def\xint_addp_AC_nocarry 0\XINT_addp_C {% - \XINT@addp@F + \XINT_addp_F }% -\def\XINT@addp@AB #1#2#3#4\W\X\Y\Z #5#6#7#8% +\def\XINT_addp_AB #1#2#3#4\W\X\Y\Z #5#6#7#8% {% - \XINT@addp@ABE #1#2{#8#7#6#5}{#3}#4\W\X\Y\Z + \XINT_addp_ABE #1#2{#8#7#6#5}{#3}#4\W\X\Y\Z }% -\def\XINT@addp@ABE #1#2#3#4#5#6% +\def\XINT_addp_ABE #1#2#3#4#5#6% {% - \expandafter\XINT@addp@ABEA\the\numexpr #1+10#5#4#3#2+#6\relax + \expandafter\XINT_addp_ABEA\the\numexpr #1+10#5#4#3#2+#6\relax }% -\def\XINT@addp@ABEA #1#2#3#4#5#6#7% +\def\XINT_addp_ABEA #1#2#3#4#5#6#7% {% - \XINT@addp@A #2{#7#6#5#4#3}%<-- attention on met donc \`a droite + \XINT_addp_A #2{#7#6#5#4#3}%<-- attention on met donc \`a droite }% -\def\XINT@addp@C #1#2#3#4#5% +\def\XINT_addp_C #1#2#3#4#5% {% - \xint@w - #5\xint@addp@cw - #4\xint@addp@cx - #3\xint@addp@cy - #2\xint@addp@cz - \W\XINT@addp@CD {#5#4#3#2}{#1}% + \xint_gob_til_w + #5\xint_addp_cw + #4\xint_addp_cx + #3\xint_addp_cy + #2\xint_addp_cz + \W\XINT_addp_CD {#5#4#3#2}{#1}% }% -\def\XINT@addp@CD #1% +\def\XINT_addp_CD #1% {% - \expandafter\XINT@addp@CC\the\numexpr 1+10#1\relax + \expandafter\XINT_addp_CC\the\numexpr 1+10#1\relax }% -\def\XINT@addp@CC #1#2#3#4#5#6#7% +\def\XINT_addp_CC #1#2#3#4#5#6#7% {% - \XINT@addp@AC@checkcarry #2{#7#6#5#4#3}% + \XINT_addp_AC_checkcarry #2{#7#6#5#4#3}% }% -\def\xint@addp@cw - #1\xint@addp@cx - #2\xint@addp@cy - #3\xint@addp@cz - \W\XINT@addp@CD +\def\xint_addp_cw + #1\xint_addp_cx + #2\xint_addp_cy + #3\xint_addp_cz + \W\XINT_addp_CD {% - \expandafter\XINT@addp@CDw\the\numexpr 1+10#1#2#3\relax + \expandafter\XINT_addp_CDw\the\numexpr 1+10#1#2#3\relax }% -\def\XINT@addp@CDw #1#2#3#4#5#6% +\def\XINT_addp_CDw #1#2#3#4#5#6% {% - \xint@quatrezeros #2#3#4#5\XINT@addp@endDw@zeros - 0000\XINT@addp@endDw #2#3#4#5% + \xint_gob_til_zeros_iv #2#3#4#5\XINT_addp_endDw_zeros + 0000\XINT_addp_endDw #2#3#4#5% }% -\def\XINT@addp@endDw@zeros 0000\XINT@addp@endDw 0000#1\X\Y\Z{ #1}% -\def\XINT@addp@endDw #1#2#3#4#5\X\Y\Z{ #5#4#3#2#1}% -\def\xint@addp@cx - #1\xint@addp@cy - #2\xint@addp@cz - \W\XINT@addp@CD +\def\XINT_addp_endDw_zeros 0000\XINT_addp_endDw 0000#1\X\Y\Z{ #1}% +\def\XINT_addp_endDw #1#2#3#4#5\X\Y\Z{ #5#4#3#2#1}% +\def\xint_addp_cx + #1\xint_addp_cy + #2\xint_addp_cz + \W\XINT_addp_CD {% - \expandafter\XINT@addp@CDx\the\numexpr 1+100#1#2\relax + \expandafter\XINT_addp_CDx\the\numexpr 1+100#1#2\relax }% -\def\XINT@addp@CDx #1#2#3#4#5#6% +\def\XINT_addp_CDx #1#2#3#4#5#6% {% - \xint@quatrezeros #2#3#4#5\XINT@addp@endDx@zeros - 0000\XINT@addp@endDx #2#3#4#5% + \xint_gob_til_zeros_iv #2#3#4#5\XINT_addp_endDx_zeros + 0000\XINT_addp_endDx #2#3#4#5% }% -\def\XINT@addp@endDx@zeros 0000\XINT@addp@endDx 0000#1\Y\Z{ #1}% -\def\XINT@addp@endDx #1#2#3#4#5\Y\Z{ #5#4#3#2#1}% -\def\xint@addp@cy - #1\xint@addp@cz - \W\XINT@addp@CD +\def\XINT_addp_endDx_zeros 0000\XINT_addp_endDx 0000#1\Y\Z{ #1}% +\def\XINT_addp_endDx #1#2#3#4#5\Y\Z{ #5#4#3#2#1}% +\def\xint_addp_cy + #1\xint_addp_cz + \W\XINT_addp_CD {% - \expandafter\XINT@addp@CDy\the\numexpr 1+1000#1\relax + \expandafter\XINT_addp_CDy\the\numexpr 1+1000#1\relax }% -\def\XINT@addp@CDy #1#2#3#4#5#6% +\def\XINT_addp_CDy #1#2#3#4#5#6% {% - \xint@quatrezeros #2#3#4#5\XINT@addp@endDy@zeros - 0000\XINT@addp@endDy #2#3#4#5% + \xint_gob_til_zeros_iv #2#3#4#5\XINT_addp_endDy_zeros + 0000\XINT_addp_endDy #2#3#4#5% }% -\def\XINT@addp@endDy@zeros 0000\XINT@addp@endDy 0000#1\Z{ #1}% -\def\XINT@addp@endDy #1#2#3#4#5\Z{ #5#4#3#2#1}% -\def\xint@addp@cz\W\XINT@addp@CD #1#2{ #21000}% -\def\XINT@addp@F #1#2#3#4#5% +\def\XINT_addp_endDy_zeros 0000\XINT_addp_endDy 0000#1\Z{ #1}% +\def\XINT_addp_endDy #1#2#3#4#5\Z{ #5#4#3#2#1}% +\def\xint_addp_cz\W\XINT_addp_CD #1#2{ #21000}% +\def\XINT_addp_F #1#2#3#4#5% {% - \xint@w - #5\xint@addp@Gw - #4\xint@addp@Gx - #3\xint@addp@Gy - #2\xint@addp@Gz - \W\XINT@addp@G {#2#3#4#5}{#1}% + \xint_gob_til_w + #5\xint_addp_Gw + #4\xint_addp_Gx + #3\xint_addp_Gy + #2\xint_addp_Gz + \W\XINT_addp_G {#2#3#4#5}{#1}% }% -\def\XINT@addp@G #1#2% +\def\XINT_addp_G #1#2% {% - \XINT@addp@F {#2#1}% + \XINT_addp_F {#2#1}% }% -\def\xint@addp@Gw - #1\xint@addp@Gx - #2\xint@addp@Gy - #3\xint@addp@Gz - \W\XINT@addp@G #4% +\def\xint_addp_Gw + #1\xint_addp_Gx + #2\xint_addp_Gy + #3\xint_addp_Gz + \W\XINT_addp_G #4% {% - \xint@quatrezeros #3#2#10\XINT@addp@endGw@zeros - 0000\XINT@addp@endGw #3#2#10% + \xint_gob_til_zeros_iv #3#2#10\XINT_addp_endGw_zeros + 0000\XINT_addp_endGw #3#2#10% }% -\def\XINT@addp@endGw@zeros 0000\XINT@addp@endGw 0000#1\X\Y\Z{ #1}% -\def\XINT@addp@endGw #1#2#3#4#5\X\Y\Z{ #5#1#2#3#4}% -\def\xint@addp@Gx - #1\xint@addp@Gy - #2\xint@addp@Gz - \W\XINT@addp@G #3% +\def\XINT_addp_endGw_zeros 0000\XINT_addp_endGw 0000#1\X\Y\Z{ #1}% +\def\XINT_addp_endGw #1#2#3#4#5\X\Y\Z{ #5#1#2#3#4}% +\def\xint_addp_Gx + #1\xint_addp_Gy + #2\xint_addp_Gz + \W\XINT_addp_G #3% {% - \xint@quatrezeros #2#100\XINT@addp@endGx@zeros - 0000\XINT@addp@endGx #2#100% + \xint_gob_til_zeros_iv #2#100\XINT_addp_endGx_zeros + 0000\XINT_addp_endGx #2#100% }% -\def\XINT@addp@endGx@zeros 0000\XINT@addp@endGx 0000#1\Y\Z{ #1}% -\def\XINT@addp@endGx #1#2#3#4#5\Y\Z{ #5#1#2#3#4}% -\def\xint@addp@Gy - #1\xint@addp@Gz - \W\XINT@addp@G #2% +\def\XINT_addp_endGx_zeros 0000\XINT_addp_endGx 0000#1\Y\Z{ #1}% +\def\XINT_addp_endGx #1#2#3#4#5\Y\Z{ #5#1#2#3#4}% +\def\xint_addp_Gy + #1\xint_addp_Gz + \W\XINT_addp_G #2% {% - \xint@quatrezeros #1000\XINT@addp@endGy@zeros - 0000\XINT@addp@endGy #1000% + \xint_gob_til_zeros_iv #1000\XINT_addp_endGy_zeros + 0000\XINT_addp_endGy #1000% }% -\def\XINT@addp@endGy@zeros 0000\XINT@addp@endGy 0000#1\Z{ #1}% -\def\XINT@addp@endGy #1#2#3#4#5\Z{ #5#1#2#3#4}% -\def\xint@addp@Gz\W\XINT@addp@G #1#2{ #2}% +\def\XINT_addp_endGy_zeros 0000\XINT_addp_endGy 0000#1\Z{ #1}% +\def\XINT_addp_endGy #1#2#3#4#5\Z{ #5#1#2#3#4}% +\def\xint_addp_Gz\W\XINT_addp_G #1#2{ #2}% % \end{macrocode} % \subsection{\csh{xintAdd}} % \begin{macrocode} \def\xintiAdd {\romannumeral0\xintiadd }% \def\xintiadd #1% {% - \expandafter\xint@add\expandafter{\romannumeral-`0#1}% + \expandafter\xint_add\expandafter{\romannumeral-`0#1}% }% \let\xintAdd\xintiAdd \let\xintadd\xintiadd -\def\xint@add #1#2% +\def\xint_add #1#2% {% - \expandafter\XINT@add@fork \romannumeral-`0#2\Z #1\Z + \expandafter\XINT_add_fork \romannumeral-`0#2\Z #1\Z }% -\def\XINT@Add #1#2{\romannumeral0\XINT@add@fork #2\Z #1\Z }% -\def\XINT@add #1#2{\XINT@add@fork #2\Z #1\Z }% +\def\XINT_Add #1#2{\romannumeral0\XINT_add_fork #2\Z #1\Z }% +\def\XINT_add #1#2{\XINT_add_fork #2\Z #1\Z }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% ADDITION +% \lverb|ADDITION % Ici #1#2 vient du *deuxième* argument de \xintAdd et #3#4 donc du *premier* -% [algo plus efficace lorsque le premier est plus long que le second] -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% [algo plus efficace lorsque le premier est plus long que le second]| % \begin{macrocode} -\def\XINT@add@fork #1#2\Z #3#4\Z +\def\XINT_add_fork #1#2\Z #3#4\Z {% - \xint@UDzerofork - #1\dummy \XINT@add@secondiszero - #3\dummy \XINT@add@firstiszero + \xint_UDzerofork + #1\dummy \XINT_add_secondiszero + #3\dummy \XINT_add_firstiszero 0\dummy - {\xint@UDsignsfork - #1#3\dummy \XINT@add@minusminus % #1 = #3 = - - #1-\dummy \XINT@add@minusplus % #1 = - - #3-\dummy \XINT@add@plusminus % #3 = - - --\dummy \XINT@add@plusplus - \xint@UDkrof }% - \xint@UDkrof + {\xint_UDsignsfork + #1#3\dummy \XINT_add_minusminus % #1 = #3 = - + #1-\dummy \XINT_add_minusplus % #1 = - + #3-\dummy \XINT_add_plusminus % #3 = - + --\dummy \XINT_add_plusplus + \krof }% + \krof {#2}{#4}#1#3% }% -\def\XINT@add@secondiszero #1#2#3#4{ #4#2}% -\def\XINT@add@firstiszero #1#2#3#4{ #3#1}% +\def\XINT_add_secondiszero #1#2#3#4{ #4#2}% +\def\XINT_add_firstiszero #1#2#3#4{ #3#1}% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% #1 vient du *deuxième* et #2 vient du *premier* -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|#1 vient du *deuxième* et #2 vient du *premier*| % \begin{macrocode} -\def\XINT@add@minusminus #1#2#3#4% +\def\XINT_add_minusminus #1#2#3#4% {% - \expandafter\xint@minus@andstop% - \romannumeral0\XINT@add@pre {#2}{#1}% + \expandafter\xint_minus_andstop% + \romannumeral0\XINT_add_pre {#2}{#1}% }% -\def\XINT@add@minusplus #1#2#3#4% +\def\XINT_add_minusplus #1#2#3#4% {% - \XINT@sub@pre {#4#2}{#1}% + \XINT_sub_pre {#4#2}{#1}% }% -\def\XINT@add@plusminus #1#2#3#4% +\def\XINT_add_plusminus #1#2#3#4% {% - \XINT@sub@pre {#3#1}{#2}% + \XINT_sub_pre {#3#1}{#2}% }% -\def\XINT@add@plusplus #1#2#3#4% +\def\XINT_add_plusplus #1#2#3#4% {% - \XINT@add@pre {#4#2}{#3#1}% + \XINT_add_pre {#4#2}{#3#1}% }% -\def\XINT@add@pre #1% +\def\XINT_add_pre #1% {% - \expandafter\XINT@add@@pre\expandafter - {\romannumeral0\XINT@RQ {}#1\R\R\R\R\R\R\R\R\Z }% + \expandafter\XINT_add__pre\expandafter + {\romannumeral0\XINT_RQ {}#1\R\R\R\R\R\R\R\R\Z }% }% -\def\XINT@add@@pre #1#2% +\def\XINT_add__pre #1#2% {% - \expandafter\XINT@add@A + \expandafter\XINT_add_A \expandafter0\expandafter{\expandafter}% - \romannumeral0\XINT@RQ {}#2\R\R\R\R\R\R\R\R\Z + \romannumeral0\XINT_RQ {}#2\R\R\R\R\R\R\R\R\Z \W\X\Y\Z #1\W\X\Y\Z }% % \end{macrocode} @@ -5511,298 +5680,281 @@ first place. \def\xintiSub {\romannumeral0\xintisub }% \def\xintisub #1% {% - \expandafter\xint@sub\expandafter{\romannumeral-`0#1}% + \expandafter\xint_sub\expandafter{\romannumeral-`0#1}% }% \let\xintSub\xintiSub \let\xintsub\xintisub -\def\xint@sub #1#2% +\def\xint_sub #1#2% {% - \expandafter\XINT@sub@fork \romannumeral-`0#2\Z #1\Z + \expandafter\XINT_sub_fork \romannumeral-`0#2\Z #1\Z }% -\def\XINT@Sub #1#2{\romannumeral0\XINT@sub@fork #2\Z #1\Z }% -\def\XINT@sub #1#2{\XINT@sub@fork #2\Z #1\Z }% +\def\XINT_Sub #1#2{\romannumeral0\XINT_sub_fork #2\Z #1\Z }% +\def\XINT_sub #1#2{\XINT_sub_fork #2\Z #1\Z }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} +% \lverb|& % SOUSTRACTION -% #3#4-#1#2 +% #3#4-#1#2: % #3#4 vient du *premier* -% #1#2 vient du *second* -% \end{verbatim} -% \vspace*{-1.5\baselineskip} -% \begin{macrocode} -\def\XINT@sub@fork #1#2\Z #3#4\Z -{% - \xint@UDsignsfork - #1#3\dummy \XINT@sub@minusminus - #1-\dummy \XINT@sub@minusplus % attention, #3=0 possible - #3-\dummy \XINT@sub@plusminus % attention, #1=0 possible - --\dummy {\xint@UDzerofork - #1\dummy \XINT@sub@secondiszero - #3\dummy \XINT@sub@firstiszero - 0\dummy \XINT@sub@plusplus - \xint@UDkrof }% - \xint@UDkrof +% #1#2 vient du *second*| +% \begin{macrocode} +\def\XINT_sub_fork #1#2\Z #3#4\Z +{% + \xint_UDsignsfork + #1#3\dummy \XINT_sub_minusminus + #1-\dummy \XINT_sub_minusplus % attention, #3=0 possible + #3-\dummy \XINT_sub_plusminus % attention, #1=0 possible + --\dummy {\xint_UDzerofork + #1\dummy \XINT_sub_secondiszero + #3\dummy \XINT_sub_firstiszero + 0\dummy \XINT_sub_plusplus + \krof }% + \krof {#2}{#4}#1#3% }% -\def\XINT@sub@secondiszero #1#2#3#4{ #4#2}% -\def\XINT@sub@firstiszero #1#2#3#4{ -#3#1}% -\def\XINT@sub@plusplus #1#2#3#4% +\def\XINT_sub_secondiszero #1#2#3#4{ #4#2}% +\def\XINT_sub_firstiszero #1#2#3#4{ -#3#1}% +\def\XINT_sub_plusplus #1#2#3#4% {% - \XINT@sub@pre {#4#2}{#3#1}% + \XINT_sub_pre {#4#2}{#3#1}% }% -\def\XINT@sub@minusminus #1#2#3#4% +\def\XINT_sub_minusminus #1#2#3#4% {% - \XINT@sub@pre {#1}{#2}% + \XINT_sub_pre {#1}{#2}% }% -\def\XINT@sub@minusplus #1#2#3#4% +\def\XINT_sub_minusplus #1#2#3#4% {% - \xint@zero #4\xint@sub@mp0\XINT@add@pre {#4#2}{#1}% + \xint_gob_til_zero #4\xint_sub_mp0\XINT_add_pre {#4#2}{#1}% }% -\def\xint@sub@mp0\XINT@add@pre #1#2{ #2}% -\def\XINT@sub@plusminus #1#2#3#4% +\def\xint_sub_mp0\XINT_add_pre #1#2{ #2}% +\def\XINT_sub_plusminus #1#2#3#4% {% - \xint@zero #3\xint@sub@pm0\expandafter\xint@minus@andstop% - \romannumeral0\XINT@add@pre {#2}{#3#1}% + \xint_gob_til_zero #3\xint_sub_pm0\expandafter\xint_minus_andstop% + \romannumeral0\XINT_add_pre {#2}{#3#1}% }% -\def\xint@sub@pm #1\XINT@add@pre #2#3{ -#2}% -\def\XINT@sub@pre #1% +\def\xint_sub_pm #1\XINT_add_pre #2#3{ -#2}% +\def\XINT_sub_pre #1% {% - \expandafter\XINT@sub@@pre\expandafter - {\romannumeral0\XINT@RQ {}#1\R\R\R\R\R\R\R\R\Z }% + \expandafter\XINT_sub__pre\expandafter + {\romannumeral0\XINT_RQ {}#1\R\R\R\R\R\R\R\R\Z }% }% -\def\XINT@sub@@pre #1#2% +\def\XINT_sub__pre #1#2% {% - \expandafter\XINT@sub@A + \expandafter\XINT_sub_A \expandafter1\expandafter{\expandafter}% - \romannumeral0\XINT@RQ {}#2\R\R\R\R\R\R\R\R\Z + \romannumeral0\XINT_RQ {}#2\R\R\R\R\R\R\R\R\Z \W\X\Y\Z #1 \W\X\Y\Z }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% \romannumeral0\XINT@sub@A 1{}<N1>\W\X\Y\Z<N2>\W\X\Y\Z +% \lverb|& +% \romannumeral0\XINT_sub_A 1{}<N1>\W\X\Y\Z<N2>\W\X\Y\Z$\ % N1 et N2 sont présentés à l'envers ET ON A RAJOUTÉ DES ZÉROS % POUR QUE LEURS LONGUEURS À CHACUN SOIENT MULTIPLES DE 4, MAIS -% AUCUN NE SE TERMINE EN 0000 -% output: N2 - N1 +% AUCUN NE SE TERMINE EN 0000.$\ output: N2 - N1$\ % Elle donne le résultat dans le **bon ordre**, avec le bon signe, -% et sans zéros superflus. -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% et sans zéros superflus.| % \begin{macrocode} -\def\XINT@sub@A #1#2#3\W\X\Y\Z #4#5#6#7% +\def\XINT_sub_A #1#2#3\W\X\Y\Z #4#5#6#7% {% - \xint@w - #4\xint@sub@az - \W\XINT@sub@B #1{#4#5#6#7}{#2}#3\W\X\Y\Z + \xint_gob_til_w + #4\xint_sub_az + \W\XINT_sub_B #1{#4#5#6#7}{#2}#3\W\X\Y\Z }% -\def\XINT@sub@B #1#2#3#4#5#6#7% +\def\XINT_sub_B #1#2#3#4#5#6#7% {% - \xint@w - #4\xint@sub@bz - \W\XINT@sub@onestep #1#2{#7#6#5#4}{#3}% + \xint_gob_til_w + #4\xint_sub_bz + \W\XINT_sub_onestep #1#2{#7#6#5#4}{#3}% }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} +% \lverb|& % d'abord la branche principale % #6 = 4 chiffres de N1, plus significatif en *premier*, % #2#3#4#5 chiffres de N2, plus significatif en *dernier* -% On veut N2 - N1. -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% On veut N2 - N1.| % \begin{macrocode} -\def\XINT@sub@onestep #1#2#3#4#5#6% +\def\XINT_sub_onestep #1#2#3#4#5#6% {% - \expandafter\XINT@sub@backtoA\the\numexpr 11#5#4#3#2-#6+#1-1\relax.% + \expandafter\XINT_sub_backtoA\the\numexpr 11#5#4#3#2-#6+#1-1\relax.% }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% ON PRODUIT LE RÉSULTAT DANS LE BON ORDRE -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|ON PRODUIT LE RÉSULTAT DANS LE BON ORDRE| % \begin{macrocode} -\def\XINT@sub@backtoA #1#2#3.#4% +\def\XINT_sub_backtoA #1#2#3.#4% {% - \XINT@sub@A #2{#3#4}% + \XINT_sub_A #2{#3#4}% }% -\def\xint@sub@bz - \W\XINT@sub@onestep #1#2#3#4#5#6#7% +\def\xint_sub_bz + \W\XINT_sub_onestep #1#2#3#4#5#6#7% {% - \xint@UDzerofork - #1\dummy \XINT@sub@C % une retenue - 0\dummy \XINT@sub@D % pas de retenue - \xint@UDkrof + \xint_UDzerofork + #1\dummy \XINT_sub_C % une retenue + 0\dummy \XINT_sub_D % pas de retenue + \krof {#7}#2#3#4#5% }% -\def\XINT@sub@D #1#2\W\X\Y\Z +\def\XINT_sub_D #1#2\W\X\Y\Z {% \expandafter - \xint@cleanupzeros@andstop + \xint_cleanupzeros_andstop \romannumeral0% - \XINT@rord@main {}#2% - \xint@UNDEF - \xint@undef\xint@undef\xint@undef\xint@undef - \xint@undef\xint@undef\xint@undef\xint@undef - \xint@UNDEF + \XINT_rord_main {}#2% + \xint_relax + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_relax #1% }% -\def\XINT@sub@C #1#2#3#4#5% +\def\XINT_sub_C #1#2#3#4#5% {% - \xint@w - #2\xint@sub@cz - \W\XINT@sub@AC@onestep {#5#4#3#2}{#1}% + \xint_gob_til_w + #2\xint_sub_cz + \W\XINT_sub_AC_onestep {#5#4#3#2}{#1}% }% -\def\XINT@sub@AC@onestep #1% +\def\XINT_sub_AC_onestep #1% {% - \expandafter\XINT@sub@backtoC\the\numexpr 11#1-1\relax.% + \expandafter\XINT_sub_backtoC\the\numexpr 11#1-1\relax.% }% -\def\XINT@sub@backtoC #1#2#3.#4% +\def\XINT_sub_backtoC #1#2#3.#4% {% - \XINT@sub@AC@checkcarry #2{#3#4}% la retenue va \^etre examin\'ee + \XINT_sub_AC_checkcarry #2{#3#4}% la retenue va \^etre examin\'ee }% -\def\XINT@sub@AC@checkcarry #1% +\def\XINT_sub_AC_checkcarry #1% {% - \xint@one #1\xint@sub@AC@nocarry 1\XINT@sub@C + \xint_gob_til_one #1\xint_sub_AC_nocarry 1\XINT_sub_C }% -\def\xint@sub@AC@nocarry 1\XINT@sub@C #1#2\W\X\Y\Z +\def\xint_sub_AC_nocarry 1\XINT_sub_C #1#2\W\X\Y\Z {% \expandafter - \XINT@cuz@loop + \XINT_cuz_loop \romannumeral0% - \XINT@rord@main {}#2% - \xint@UNDEF - \xint@undef\xint@undef\xint@undef\xint@undef - \xint@undef\xint@undef\xint@undef\xint@undef - \xint@UNDEF + \XINT_rord_main {}#2% + \xint_relax + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_relax #1\W\W\W\W\W\W\W\Z }% -\def\xint@sub@cz\W\XINT@sub@AC@onestep #1% +\def\xint_sub_cz\W\XINT_sub_AC_onestep #1% {% - \XINT@cuz + \XINT_cuz }% -\def\xint@sub@az\W\XINT@sub@B #1#2#3#4#5#6#7% +\def\xint_sub_az\W\XINT_sub_B #1#2#3#4#5#6#7% {% - \xint@w - #4\xint@sub@ez - \W\XINT@sub@Eenter #1{#3}#4#5#6#7% + \xint_gob_til_w + #4\xint_sub_ez + \W\XINT_sub_Eenter #1{#3}#4#5#6#7% }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% le premier nombre continue, le résultat sera < 0. -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|le premier nombre continue, le résultat sera < 0.| % \begin{macrocode} -\def\XINT@sub@Eenter #1#2% +\def\XINT_sub_Eenter #1#2% {% \expandafter - \XINT@sub@E\expandafter1\expandafter{\expandafter}% + \XINT_sub_E\expandafter1\expandafter{\expandafter}% \romannumeral0% - \XINT@rord@main {}#2% - \xint@UNDEF - \xint@undef\xint@undef\xint@undef\xint@undef - \xint@undef\xint@undef\xint@undef\xint@undef - \xint@UNDEF + \XINT_rord_main {}#2% + \xint_relax + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_relax \W\X\Y\Z #1% }% -\def\XINT@sub@E #1#2#3#4#5#6% +\def\XINT_sub_E #1#2#3#4#5#6% {% - \xint@w #3\xint@sub@F\W\XINT@sub@Eonestep #1{#6#5#4#3}{#2}% + \xint_gob_til_w #3\xint_sub_F\W + \XINT_sub_Eonestep #1{#6#5#4#3}{#2}% }% -\def\XINT@sub@Eonestep #1#2% +\def\XINT_sub_Eonestep #1#2% {% - \expandafter\XINT@sub@backtoE\the\numexpr 109999-#2+#1\relax.% + \expandafter\XINT_sub_backtoE\the\numexpr 109999-#2+#1\relax.% }% -\def\XINT@sub@backtoE #1#2#3.#4% +\def\XINT_sub_backtoE #1#2#3.#4% {% - \XINT@sub@E #2{#3#4}% + \XINT_sub_E #2{#3#4}% }% -\def\xint@sub@F\W\XINT@sub@Eonestep #1#2#3#4% +\def\xint_sub_F\W\XINT_sub_Eonestep #1#2#3#4% {% - \xint@UDonezerofork - #4#1\dummy {\XINT@sub@Fdec 0}% soustraire 1. Et faire signe - - #1#4\dummy {\XINT@sub@Finc 1}% additionner 1. Et faire signe - - 10\dummy \XINT@sub@DD % terminer. Mais avec signe - - \xint@UDkrof + \xint_UDonezerofork + #4#1\dummy {\XINT_sub_Fdec 0}% soustraire 1. Et faire signe - + #1#4\dummy {\XINT_sub_Finc 1}% additionner 1. Et faire signe - + 10\dummy \XINT_sub_DD % terminer. Mais avec signe - + \krof {#3}% }% -\def\XINT@sub@DD {\expandafter\xint@minus@andstop\romannumeral0\XINT@sub@D }% -\def\XINT@sub@Fdec #1#2#3#4#5#6% +\def\XINT_sub_DD {\expandafter\xint_minus_andstop\romannumeral0\XINT_sub_D }% +\def\XINT_sub_Fdec #1#2#3#4#5#6% {% - \xint@w #3\xint@sub@Fdec@finish\W - \XINT@sub@Fdec@onestep #1{#6#5#4#3}{#2}% + \xint_gob_til_w #3\xint_sub_Fdec_finish\W + \XINT_sub_Fdec_onestep #1{#6#5#4#3}{#2}% }% -\def\XINT@sub@Fdec@onestep #1#2% +\def\XINT_sub_Fdec_onestep #1#2% {% - \expandafter\XINT@sub@backtoFdec\the\numexpr 11#2+#1-1\relax.% + \expandafter\XINT_sub_backtoFdec\the\numexpr 11#2+#1-1\relax.% }% -\def\XINT@sub@backtoFdec #1#2#3.#4% +\def\XINT_sub_backtoFdec #1#2#3.#4% {% - \XINT@sub@Fdec #2{#3#4}% + \XINT_sub_Fdec #2{#3#4}% }% -\def\xint@sub@Fdec@finish\W\XINT@sub@Fdec@onestep #1#2% +\def\xint_sub_Fdec_finish\W\XINT_sub_Fdec_onestep #1#2% {% - \expandafter\xint@minus@andstop\romannumeral0\XINT@cuz + \expandafter\xint_minus_andstop\romannumeral0\XINT_cuz }% -\def\XINT@sub@Finc #1#2#3#4#5#6% +\def\XINT_sub_Finc #1#2#3#4#5#6% {% - \xint@w #3\xint@sub@Finc@finish\W - \XINT@sub@Finc@onestep #1{#6#5#4#3}{#2}% + \xint_gob_til_w #3\xint_sub_Finc_finish\W + \XINT_sub_Finc_onestep #1{#6#5#4#3}{#2}% }% -\def\XINT@sub@Finc@onestep #1#2% +\def\XINT_sub_Finc_onestep #1#2% {% - \expandafter\XINT@sub@backtoFinc\the\numexpr 10#2+#1\relax.% + \expandafter\XINT_sub_backtoFinc\the\numexpr 10#2+#1\relax.% }% -\def\XINT@sub@backtoFinc #1#2#3.#4% +\def\XINT_sub_backtoFinc #1#2#3.#4% {% - \XINT@sub@Finc #2{#3#4}% + \XINT_sub_Finc #2{#3#4}% }% -\def\xint@sub@Finc@finish\W\XINT@sub@Finc@onestep #1#2#3% +\def\xint_sub_Finc_finish\W\XINT_sub_Finc_onestep #1#2#3% {% - \xint@UDzerofork - #1\dummy {\expandafter\xint@minus@andstop\xint@cleanupzeros@nospace}% + \xint_UDzerofork + #1\dummy {\expandafter\xint_minus_andstop\xint_cleanupzeros_nospace}% 0\dummy { -1}% - \xint@UDkrof + \krof #3% }% -\def\xint@sub@ez\W\XINT@sub@Eenter #1% +\def\xint_sub_ez\W\XINT_sub_Eenter #1% {% - \xint@UDzerofork - #1\dummy \XINT@sub@K % il y a une retenue - 0\dummy \XINT@sub@L % pas de retenue - \xint@UDkrof + \xint_UDzerofork + #1\dummy \XINT_sub_K % il y a une retenue + 0\dummy \XINT_sub_L % pas de retenue + \krof }% -\def\XINT@sub@L #1\W\X\Y\Z {\XINT@cuz@loop #1\W\W\W\W\W\W\W\Z }% -\def\XINT@sub@K #1% +\def\XINT_sub_L #1\W\X\Y\Z {\XINT_cuz_loop #1\W\W\W\W\W\W\W\Z }% +\def\XINT_sub_K #1% {% \expandafter - \XINT@sub@KK\expandafter1\expandafter{\expandafter}% + \XINT_sub_KK\expandafter1\expandafter{\expandafter}% \romannumeral0% - \XINT@rord@main {}#1% - \xint@UNDEF - \xint@undef\xint@undef\xint@undef\xint@undef - \xint@undef\xint@undef\xint@undef\xint@undef - \xint@UNDEF + \XINT_rord_main {}#1% + \xint_relax + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_relax }% -\def\XINT@sub@KK #1#2#3#4#5#6% +\def\XINT_sub_KK #1#2#3#4#5#6% {% - \xint@w #3\xint@sub@KK@finish\W - \XINT@sub@KK@onestep #1{#6#5#4#3}{#2}% + \xint_gob_til_w #3\xint_sub_KK_finish\W + \XINT_sub_KK_onestep #1{#6#5#4#3}{#2}% }% -\def\XINT@sub@KK@onestep #1#2% +\def\XINT_sub_KK_onestep #1#2% {% - \expandafter\XINT@sub@backtoKK\the\numexpr 109999-#2+#1\relax.% + \expandafter\XINT_sub_backtoKK\the\numexpr 109999-#2+#1\relax.% }% -\def\XINT@sub@backtoKK #1#2#3.#4% +\def\XINT_sub_backtoKK #1#2#3.#4% {% - \XINT@sub@KK #2{#3#4}% + \XINT_sub_KK #2{#3#4}% }% -\def\xint@sub@KK@finish\W\XINT@sub@KK@onestep #1#2#3% +\def\xint_sub_KK_finish\W\XINT_sub_KK_onestep #1#2#3% {% - \expandafter\xint@minus@andstop - \romannumeral0\XINT@cuz@loop #3\W\W\W\W\W\W\W\Z + \expandafter\xint_minus_andstop + \romannumeral0\XINT_cuz_loop #3\W\W\W\W\W\W\W\Z }% % \end{macrocode} % \subsection{\csh{xintCmp}} @@ -5810,306 +5962,287 @@ first place. \def\xintiCmp {\romannumeral0\xinticmp }% \def\xinticmp #1% {% - \expandafter\xint@cmp\expandafter{\romannumeral-`0#1}% + \expandafter\xint_cmp\expandafter{\romannumeral-`0#1}% }% \let\xintCmp\xintiCmp \let\xintcmp\xinticmp -\def\xint@cmp #1#2% -{% - \expandafter\XINT@cmp@fork \romannumeral-`0#2\Z #1\Z -}% -\def\XINT@Cmp #1#2{\romannumeral0\XINT@cmp@fork #2\Z #1\Z }% -% \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% COMPARAISON -% 1 si #3#4>#1#2, 0 si #3#4=#1#2, -1 si #3#4<#1#2 -% #3#4 vient du *premier* -% #1#2 vient du *second* -% \end{verbatim} -% \vspace*{-1.5\baselineskip} -% \begin{macrocode} -\def\XINT@cmp@fork #1#2\Z #3#4\Z -{% - \xint@UDsignsfork - #1#3\dummy \XINT@cmp@minusminus - #1-\dummy \XINT@cmp@minusplus - #3-\dummy \XINT@cmp@plusminus - --\dummy {\xint@UDzerosfork - #1#3\dummy \XINT@cmp@zerozero - #10\dummy \XINT@cmp@zeroplus - #30\dummy \XINT@cmp@pluszero - 00\dummy \XINT@cmp@plusplus - \xint@UDkrof }% - \xint@UDkrof +\def\xint_cmp #1#2% +{% + \expandafter\XINT_cmp_fork \romannumeral-`0#2\Z #1\Z +}% +\def\XINT_Cmp #1#2{\romannumeral0\XINT_cmp_fork #2\Z #1\Z }% +% \end{macrocode} +% \lverb|& +% COMPARAISON $\ +% 1 si #3#4>#1#2, 0 si #3#4=#1#2, -1 si #3#4<#1#2$\ +% #3#4 vient du *premier*,$ +% #1#2 vient du *second*| +% \begin{macrocode} +\def\XINT_cmp_fork #1#2\Z #3#4\Z +{% + \xint_UDsignsfork + #1#3\dummy \XINT_cmp_minusminus + #1-\dummy \XINT_cmp_minusplus + #3-\dummy \XINT_cmp_plusminus + --\dummy {\xint_UDzerosfork + #1#3\dummy \XINT_cmp_zerozero + #10\dummy \XINT_cmp_zeroplus + #30\dummy \XINT_cmp_pluszero + 00\dummy \XINT_cmp_plusplus + \krof }% + \krof {#2}{#4}#1#3% }% -\def\XINT@cmp@minusplus #1#2#3#4{ 1}% -\def\XINT@cmp@plusminus #1#2#3#4{ -1}% -\def\XINT@cmp@zerozero #1#2#3#4{ 0}% -\def\XINT@cmp@zeroplus #1#2#3#4{ 1}% -\def\XINT@cmp@pluszero #1#2#3#4{ -1}% -\def\XINT@cmp@plusplus #1#2#3#4% +\def\XINT_cmp_minusplus #1#2#3#4{ 1}% +\def\XINT_cmp_plusminus #1#2#3#4{ -1}% +\def\XINT_cmp_zerozero #1#2#3#4{ 0}% +\def\XINT_cmp_zeroplus #1#2#3#4{ 1}% +\def\XINT_cmp_pluszero #1#2#3#4{ -1}% +\def\XINT_cmp_plusplus #1#2#3#4% {% - \XINT@cmp@pre {#4#2}{#3#1}% + \XINT_cmp_pre {#4#2}{#3#1}% }% -\def\XINT@cmp@minusminus #1#2#3#4% +\def\XINT_cmp_minusminus #1#2#3#4% {% - \XINT@cmp@pre {#1}{#2}% + \XINT_cmp_pre {#1}{#2}% }% -\def\XINT@cmp@pre #1% +\def\XINT_cmp_pre #1% {% - \expandafter\XINT@cmp@@pre\expandafter - {\romannumeral0\XINT@RQ {}#1\R\R\R\R\R\R\R\R\Z }% + \expandafter\XINT_cmp__pre\expandafter + {\romannumeral0\XINT_RQ {}#1\R\R\R\R\R\R\R\R\Z }% }% -\def\XINT@cmp@@pre #1#2% +\def\XINT_cmp__pre #1#2% {% - \expandafter\XINT@cmp@A + \expandafter\XINT_cmp_A \expandafter1\expandafter{\expandafter}% - \romannumeral0\XINT@RQ {}#2\R\R\R\R\R\R\R\R\Z + \romannumeral0\XINT_RQ {}#2\R\R\R\R\R\R\R\R\Z \W\X\Y\Z #1\W\X\Y\Z }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% COMPARAISON +% \lverb|& +% COMPARAISON$\ % N1 et N2 sont présentés à l'envers ET ON A RAJOUTÉ DES ZÉROS -% POUR QUE LEURS LONGUEURS À CHACUN SOIENT MULTIPLES DE 4, MAIS -% AUCUN NE SE TERMINE EN 0000 -% routine appelée via \XINT@cmp@A 1{}<N1>\W\X\Y\Z<N2>\W\X\Y\Z -% ATTENTION RENVOIE 1 SI N1 < N2, 0 si N1 = N2, -1 si N1 > N2 -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% POUR QUE LEUR LONGUEURS À CHACUN SOIENT MULTIPLES DE 4, MAIS +% AUCUN NE SE TERMINE EN 0000. +% routine appelée via$\ +% \XINT_cmp_A 1{}<N1>\W\X\Y\Z<N2>\W\X\Y\Z$\ +% ATTENTION RENVOIE 1 SI N1 < N2, 0 si N1 = N2, -1 si N1 > N2| % \begin{macrocode} -\def\XINT@cmp@A #1#2#3\W\X\Y\Z #4#5#6#7% +\def\XINT_cmp_A #1#2#3\W\X\Y\Z #4#5#6#7% {% - \xint@w #4\xint@cmp@az\W\XINT@cmp@B #1{#4#5#6#7}{#2}#3\W\X\Y\Z + \xint_gob_til_w #4\xint_cmp_az\W + \XINT_cmp_B #1{#4#5#6#7}{#2}#3\W\X\Y\Z }% -\def\XINT@cmp@B #1#2#3#4#5#6#7% +\def\XINT_cmp_B #1#2#3#4#5#6#7% {% - \xint@w#4\xint@cmp@bz\W\XINT@cmp@onestep #1#2{#7#6#5#4}{#3}% + \xint_gob_til_w#4\xint_cmp_bz\W + \XINT_cmp_onestep #1#2{#7#6#5#4}{#3}% }% -\def\XINT@cmp@onestep #1#2#3#4#5#6% +\def\XINT_cmp_onestep #1#2#3#4#5#6% {% - \expandafter\XINT@cmp@backtoA\the\numexpr 11#5#4#3#2-#6+#1-1\relax.% + \expandafter\XINT_cmp_backtoA\the\numexpr 11#5#4#3#2-#6+#1-1\relax.% }% -\def\XINT@cmp@backtoA #1#2#3.#4% +\def\XINT_cmp_backtoA #1#2#3.#4% {% - \XINT@cmp@A #2{#3#4}% + \XINT_cmp_A #2{#3#4}% }% -\def\xint@cmp@bz\W\XINT@cmp@onestep #1\Z { 1}% -\def\xint@cmp@az\W\XINT@cmp@B #1#2#3#4#5#6#7% +\def\xint_cmp_bz\W\XINT_cmp_onestep #1\Z { 1}% +\def\xint_cmp_az\W\XINT_cmp_B #1#2#3#4#5#6#7% {% - \xint@w #4\xint@cmp@ez\W\XINT@cmp@Eenter #1{#3}#4#5#6#7% + \xint_gob_til_w #4\xint_cmp_ez\W + \XINT_cmp_Eenter #1{#3}#4#5#6#7% }% -\def\XINT@cmp@Eenter #1\Z { -1}% -\def\xint@cmp@ez\W\XINT@cmp@Eenter #1% +\def\XINT_cmp_Eenter #1\Z { -1}% +\def\xint_cmp_ez\W\XINT_cmp_Eenter #1% {% - \xint@UDzerofork - #1\dummy \XINT@cmp@K % il y a une retenue - 0\dummy \XINT@cmp@L % pas de retenue - \xint@UDkrof + \xint_UDzerofork + #1\dummy \XINT_cmp_K % il y a une retenue + 0\dummy \XINT_cmp_L % pas de retenue + \krof }% -\def\XINT@cmp@K #1\Z { -1}% -\def\XINT@cmp@L #1{\XINT@OneIfPositive@main #1}% -\def\XINT@OneIfPositive #1% +\def\XINT_cmp_K #1\Z { -1}% +\def\XINT_cmp_L #1{\XINT_OneIfPositive_main #1}% +\def\XINT_OneIfPositive #1% {% - \XINT@OneIfPositive@main #1\W\X\Y\Z% + \XINT_OneIfPositive_main #1\W\X\Y\Z% }% -\def\XINT@OneIfPositive@main #1#2#3#4% +\def\XINT_OneIfPositive_main #1#2#3#4% {% - \xint@z #4\xint@OneIfPositive@terminated\Z - \XINT@OneIfPositive@onestep #1#2#3#4% + \xint_gob_til_z #4\xint_OneIfPositive_terminated\Z + \XINT_OneIfPositive_onestep #1#2#3#4% }% -\def\xint@OneIfPositive@terminated\Z\XINT@OneIfPositive@onestep\W\X\Y\Z { 0}% -\def\XINT@OneIfPositive@onestep #1#2#3#4% +\def\xint_OneIfPositive_terminated\Z\XINT_OneIfPositive_onestep\W\X\Y\Z { 0}% +\def\XINT_OneIfPositive_onestep #1#2#3#4% {% - \expandafter\XINT@OneIfPositive@check\the\numexpr #1#2#3#4\relax + \expandafter\XINT_OneIfPositive_check\the\numexpr #1#2#3#4\relax }% -\def\XINT@OneIfPositive@check #1% +\def\XINT_OneIfPositive_check #1% {% - \xint@zero #1\xint@OneIfPositive@backtomain 0% - \XINT@OneIfPositive@finish #1% + \xint_gob_til_zero #1\xint_OneIfPositive_backtomain 0% + \XINT_OneIfPositive_finish #1% }% -\def\XINT@OneIfPositive@finish #1\W\X\Y\Z{ 1}% -\def\xint@OneIfPositive@backtomain 0\XINT@OneIfPositive@finish 0% - {\XINT@OneIfPositive@main }% +\def\XINT_OneIfPositive_finish #1\W\X\Y\Z{ 1}% +\def\xint_OneIfPositive_backtomain 0\XINT_OneIfPositive_finish 0% + {\XINT_OneIfPositive_main }% % \end{macrocode} % \subsection{\csh{xintGeq}} -% \begin{verbatim} -% PLUS GRAND OU ÉGAL -% attention compare les **valeurs absolues** -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|& +% PLUS GRAND OU ÉGAL +% attention compare les **valeurs absolues**| % \begin{macrocode} \def\xintiGeq {\romannumeral0\xintigeq }% \def\xintigeq #1% {% - \expandafter\xint@geq\expandafter {\romannumeral-`0#1}% + \expandafter\xint_geq\expandafter {\romannumeral-`0#1}% }% \let\xintGeq\xintiGeq \let\xintgeq\xintigeq -\def\xint@geq #1#2% -{% - \expandafter\XINT@geq@fork \romannumeral-`0#2\Z #1\Z -}% -\def\XINT@Geq #1#2{\romannumeral0\XINT@geq@fork #2\Z #1\Z }% -% \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% PLUS GRAND OU ÉGAL -% ATTENTION, TESTE les VALEURS ABSOLUES -% \end{verbatim} -% \vspace*{-1.5\baselineskip} -% \begin{macrocode} -\def\XINT@geq@fork #1#2\Z #3#4\Z -{% - \xint@UDzerofork - #1\dummy \XINT@geq@secondiszero % |#1#2|=0 - #3\dummy \XINT@geq@firstiszero % |#1#2|>0 - 0\dummy {\xint@UDsignsfork - #1#3\dummy \XINT@geq@minusminus - #1-\dummy \XINT@geq@minusplus - #3-\dummy \XINT@geq@plusminus - --\dummy \XINT@geq@plusplus - \xint@UDkrof }% - \xint@UDkrof +\def\xint_geq #1#2% +{% + \expandafter\XINT_geq_fork \romannumeral-`0#2\Z #1\Z +}% +\def\XINT_Geq #1#2{\romannumeral0\XINT_geq_fork #2\Z #1\Z }% +% \end{macrocode} +% \lverb|& +% PLUS GRAND OU ÉGAL +% ATTENTION, TESTE les VALEURS ABSOLUES| +% \begin{macrocode} +\def\XINT_geq_fork #1#2\Z #3#4\Z +{% + \xint_UDzerofork + #1\dummy \XINT_geq_secondiszero % |#1#2|=0 + #3\dummy \XINT_geq_firstiszero % |#1#2|>0 + 0\dummy {\xint_UDsignsfork + #1#3\dummy \XINT_geq_minusminus + #1-\dummy \XINT_geq_minusplus + #3-\dummy \XINT_geq_plusminus + --\dummy \XINT_geq_plusplus + \krof }% + \krof {#2}{#4}#1#3% }% -\def\XINT@geq@secondiszero #1#2#3#4{ 1}% -\def\XINT@geq@firstiszero #1#2#3#4{ 0}% -\def\XINT@geq@plusplus #1#2#3#4{\XINT@geq@pre {#4#2}{#3#1}}% -\def\XINT@geq@minusminus #1#2#3#4{\XINT@geq@pre {#2}{#1}}% -\def\XINT@geq@minusplus #1#2#3#4{\XINT@geq@pre {#4#2}{#1}}% -\def\XINT@geq@plusminus #1#2#3#4{\XINT@geq@pre {#2}{#3#1}}% -\def\XINT@geq@pre #1% +\def\XINT_geq_secondiszero #1#2#3#4{ 1}% +\def\XINT_geq_firstiszero #1#2#3#4{ 0}% +\def\XINT_geq_plusplus #1#2#3#4{\XINT_geq_pre {#4#2}{#3#1}}% +\def\XINT_geq_minusminus #1#2#3#4{\XINT_geq_pre {#2}{#1}}% +\def\XINT_geq_minusplus #1#2#3#4{\XINT_geq_pre {#4#2}{#1}}% +\def\XINT_geq_plusminus #1#2#3#4{\XINT_geq_pre {#2}{#3#1}}% +\def\XINT_geq_pre #1% {% - \expandafter\XINT@geq@@pre\expandafter - {\romannumeral0\XINT@RQ {}#1\R\R\R\R\R\R\R\R\Z }% + \expandafter\XINT_geq__pre\expandafter + {\romannumeral0\XINT_RQ {}#1\R\R\R\R\R\R\R\R\Z }% }% -\def\XINT@geq@@pre #1#2% +\def\XINT_geq__pre #1#2% {% - \expandafter\XINT@geq@A + \expandafter\XINT_geq_A \expandafter1\expandafter{\expandafter}% - \romannumeral0\XINT@RQ {}#2\R\R\R\R\R\R\R\R\Z + \romannumeral0\XINT_RQ {}#2\R\R\R\R\R\R\R\R\Z \W\X\Y\Z #1 \W\X\Y\Z }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% PLUS GRAND OU ÉGAL +% \lverb|& +% PLUS GRAND OU ÉGAL$\ % N1 et N2 sont présentés à l'envers ET ON A RAJOUTÉ DES ZÉROS % POUR QUE LEURS LONGUEURS À CHACUN SOIENT MULTIPLES DE 4, MAIS -% AUCUN NE SE TERMINE EN 0000 -% routine appelée via -% \romannumeral0\XINT@geq@A 1{}<N1>\W\X\Y\Z<N2>\W\X\Y\Z -% ATTENTION RENVOIE 1 SI N1 < N2 ou N1 = N2 et 0 si N1 > N2 -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% AUCUN NE SE TERMINE EN 0000$\ +% routine appelée via$\ +% \romannumeral0\XINT_geq_A 1{}<N1>\W\X\Y\Z<N2>\W\X\Y\Z$\ +% ATTENTION RENVOIE 1 SI N1 < N2 ou N1 = N2 et 0 si N1 > N2| % \begin{macrocode} -\def\XINT@geq@A #1#2#3\W\X\Y\Z #4#5#6#7% +\def\XINT_geq_A #1#2#3\W\X\Y\Z #4#5#6#7% {% - \xint@w #4\xint@geq@az\W\XINT@geq@B #1{#4#5#6#7}{#2}#3\W\X\Y\Z + \xint_gob_til_w #4\xint_geq_az\W + \XINT_geq_B #1{#4#5#6#7}{#2}#3\W\X\Y\Z }% -\def\XINT@geq@B #1#2#3#4#5#6#7% +\def\XINT_geq_B #1#2#3#4#5#6#7% {% - \xint@w #4\xint@geq@bz\W\XINT@geq@onestep #1#2{#7#6#5#4}{#3}% + \xint_gob_til_w #4\xint_geq_bz\W + \XINT_geq_onestep #1#2{#7#6#5#4}{#3}% }% -\def\XINT@geq@onestep #1#2#3#4#5#6% +\def\XINT_geq_onestep #1#2#3#4#5#6% {% - \expandafter\XINT@geq@backtoA\the\numexpr 11#5#4#3#2-#6+#1-1\relax.% + \expandafter\XINT_geq_backtoA\the\numexpr 11#5#4#3#2-#6+#1-1\relax.% }% -\def\XINT@geq@backtoA #1#2#3.#4% +\def\XINT_geq_backtoA #1#2#3.#4% {% - \XINT@geq@A #2{#3#4}% + \XINT_geq_A #2{#3#4}% }% -\def\xint@geq@bz\W\XINT@geq@onestep #1\W\X\Y\Z { 1}% -\def\xint@geq@az\W\XINT@geq@B #1#2#3#4#5#6#7% +\def\xint_geq_bz\W\XINT_geq_onestep #1\W\X\Y\Z { 1}% +\def\xint_geq_az\W\XINT_geq_B #1#2#3#4#5#6#7% {% - \xint@w #4\xint@geq@ez\W\XINT@geq@Eenter #1% + \xint_gob_til_w #4\xint_geq_ez\W + \XINT_geq_Eenter #1% }% -\def\XINT@geq@Eenter #1\W\X\Y\Z { 0}% -\def\xint@geq@ez\W\XINT@geq@Eenter #1% +\def\XINT_geq_Eenter #1\W\X\Y\Z { 0}% +\def\xint_geq_ez\W\XINT_geq_Eenter #1% {% - \xint@UDzerofork + \xint_UDzerofork #1\dummy { 0} % il y a une retenue 0\dummy { 1} % pas de retenue - \xint@UDkrof + \krof }% % \end{macrocode} % \subsection{\csh{xintMax}} -% \begin{verbatim} +% \lverb|& % The rationale is that it is more efficient than using \xintCmp. -% 1.03 makes the code a tiny bit slower but easier to re-use for fractions. -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% 1.03 makes the code a tiny bit slower but easier to re-use for fractions. | % \begin{macrocode} \def\xintiMax {\romannumeral0\xintimax }% \def\xintimax #1% {% - \expandafter\xint@max\expandafter {\romannumeral-`0#1}% + \expandafter\xint_max\expandafter {\romannumeral-`0#1}% }% \let\xintMax\xintiMax \let\xintmax\xintimax -\def\xint@max #1#2% -{% - \expandafter\XINT@max@pre\expandafter {\romannumeral-`0#2}{#1}% -}% -\def\XINT@max@pre #1#2{\XINT@max@fork #1\Z #2\Z {#2}{#1}}% -\def\XINT@Max #1#2{\romannumeral0\XINT@max@fork #2\Z #1\Z {#1}{#2}}% -% \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% #3#4 vient du *premier* -% #1#2 vient du *second* -% \end{verbatim} -% \vspace*{-1.5\baselineskip} -% \begin{macrocode} -\def\XINT@max@fork #1#2\Z #3#4\Z -{% - \xint@UDsignsfork - #1#3\dummy \XINT@max@minusminus % A < 0, B < 0 - #1-\dummy \XINT@max@minusplus % B < 0, A >= 0 - #3-\dummy \XINT@max@plusminus % A < 0, B >= 0 - --\dummy {\xint@UDzerosfork - #1#3\dummy \XINT@max@zerozero % A = B = 0 - #10\dummy \XINT@max@zeroplus % B = 0, A > 0 - #30\dummy \XINT@max@pluszero % A = 0, B > 0 - 00\dummy \XINT@max@plusplus % A, B > 0 - \xint@UDkrof }% - \xint@UDkrof +\def\xint_max #1#2% +{% + \expandafter\XINT_max_pre\expandafter {\romannumeral-`0#2}{#1}% +}% +\def\XINT_max_pre #1#2{\XINT_max_fork #1\Z #2\Z {#2}{#1}}% +\def\XINT_Max #1#2{\romannumeral0\XINT_max_fork #2\Z #1\Z {#1}{#2}}% +% \end{macrocode} +% \lverb|& +% #3#4 vient du *premier*, +% #1#2 vient du *second*| +% \begin{macrocode} +\def\XINT_max_fork #1#2\Z #3#4\Z +{% + \xint_UDsignsfork + #1#3\dummy \XINT_max_minusminus % A < 0, B < 0 + #1-\dummy \XINT_max_minusplus % B < 0, A >= 0 + #3-\dummy \XINT_max_plusminus % A < 0, B >= 0 + --\dummy {\xint_UDzerosfork + #1#3\dummy \XINT_max_zerozero % A = B = 0 + #10\dummy \XINT_max_zeroplus % B = 0, A > 0 + #30\dummy \XINT_max_pluszero % A = 0, B > 0 + 00\dummy \XINT_max_plusplus % A, B > 0 + \krof }% + \krof {#2}{#4}#1#3% }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% A = #4#2, B = #3#1 -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|& +% A = #4#2, B = #3#1| % \begin{macrocode} -\def\XINT@max@zerozero #1#2#3#4{\xint@firstoftwo@andstop }% -\def\XINT@max@zeroplus #1#2#3#4{\xint@firstoftwo@andstop }% -\def\XINT@max@pluszero #1#2#3#4{\xint@secondoftwo@andstop }% -\def\XINT@max@minusplus #1#2#3#4{\xint@firstoftwo@andstop }% -\def\XINT@max@plusminus #1#2#3#4{\xint@secondoftwo@andstop }% -\def\XINT@max@plusplus #1#2#3#4% +\def\XINT_max_zerozero #1#2#3#4{\xint_firstoftwo_andstop }% +\def\XINT_max_zeroplus #1#2#3#4{\xint_firstoftwo_andstop }% +\def\XINT_max_pluszero #1#2#3#4{\xint_secondoftwo_andstop }% +\def\XINT_max_minusplus #1#2#3#4{\xint_firstoftwo_andstop }% +\def\XINT_max_plusminus #1#2#3#4{\xint_secondoftwo_andstop }% +\def\XINT_max_plusplus #1#2#3#4% {% - \ifodd\XINT@Geq {#4#2}{#3#1} - \expandafter\xint@firstoftwo@andstop + \ifodd\XINT_Geq {#4#2}{#3#1} + \expandafter\xint_firstoftwo_andstop \else - \expandafter\xint@secondoftwo@andstop + \expandafter\xint_secondoftwo_andstop \fi }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% #3=-, #4=-, #1 = |B| = -B, #2 = |A| = -A -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb+#3=-, #4=-, #1 = |B| = -B, #2 = |A| = -A+ % \begin{macrocode} -\def\XINT@max@minusminus #1#2#3#4% +\def\XINT_max_minusminus #1#2#3#4% {% - \ifodd\XINT@Geq {#1}{#2} - \expandafter\xint@firstoftwo@andstop + \ifodd\XINT_Geq {#1}{#2} + \expandafter\xint_firstoftwo_andstop \else - \expandafter\xint@secondoftwo@andstop + \expandafter\xint_secondoftwo_andstop \fi }% % \end{macrocode} @@ -6118,147 +6251,134 @@ first place. \def\xintiMin {\romannumeral0\xintimin }% \def\xintimin #1% {% - \expandafter\xint@min\expandafter {\romannumeral-`0#1}% + \expandafter\xint_min\expandafter {\romannumeral-`0#1}% }% \let\xintMin\xintiMin \let\xintmin\xintimin -\def\xint@min #1#2% -{% - \expandafter\XINT@min@pre\expandafter {\romannumeral-`0#2}{#1}% -}% -\def\XINT@min@pre #1#2{\XINT@min@fork #1\Z #2\Z {#2}{#1}}% -\def\XINT@Min #1#2{\romannumeral0\XINT@min@fork #2\Z #1\Z {#1}{#2}}% -% \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% #3#4 vient du *premier* -% #1#2 vient du *second* -% \end{verbatim} -% \vspace*{-1.5\baselineskip} -% \begin{macrocode} -\def\XINT@min@fork #1#2\Z #3#4\Z -{% - \xint@UDsignsfork - #1#3\dummy \XINT@min@minusminus % A < 0, B < 0 - #1-\dummy \XINT@min@minusplus % B < 0, A >= 0 - #3-\dummy \XINT@min@plusminus % A < 0, B >= 0 - --\dummy {\xint@UDzerosfork - #1#3\dummy \XINT@min@zerozero % A = B = 0 - #10\dummy \XINT@min@zeroplus % B = 0, A > 0 - #30\dummy \XINT@min@pluszero % A = 0, B > 0 - 00\dummy \XINT@min@plusplus % A, B > 0 - \xint@UDkrof }% - \xint@UDkrof +\def\xint_min #1#2% +{% + \expandafter\XINT_min_pre\expandafter {\romannumeral-`0#2}{#1}% +}% +\def\XINT_min_pre #1#2{\XINT_min_fork #1\Z #2\Z {#2}{#1}}% +\def\XINT_Min #1#2{\romannumeral0\XINT_min_fork #2\Z #1\Z {#1}{#2}}% +% \end{macrocode} +% \lverb|& +% #3#4 vient du *premier*, +% #1#2 vient du *second*| +% \begin{macrocode} +\def\XINT_min_fork #1#2\Z #3#4\Z +{% + \xint_UDsignsfork + #1#3\dummy \XINT_min_minusminus % A < 0, B < 0 + #1-\dummy \XINT_min_minusplus % B < 0, A >= 0 + #3-\dummy \XINT_min_plusminus % A < 0, B >= 0 + --\dummy {\xint_UDzerosfork + #1#3\dummy \XINT_min_zerozero % A = B = 0 + #10\dummy \XINT_min_zeroplus % B = 0, A > 0 + #30\dummy \XINT_min_pluszero % A = 0, B > 0 + 00\dummy \XINT_min_plusplus % A, B > 0 + \krof }% + \krof {#2}{#4}#1#3% }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% A = #4#2, B = #3#1 -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|& +% A = #4#2, B = #3#1| % \begin{macrocode} -\def\XINT@min@zerozero #1#2#3#4{\xint@firstoftwo@andstop }% -\def\XINT@min@zeroplus #1#2#3#4{\xint@secondoftwo@andstop }% -\def\XINT@min@pluszero #1#2#3#4{\xint@firstoftwo@andstop }% -\def\XINT@min@minusplus #1#2#3#4{\xint@secondoftwo@andstop }% -\def\XINT@min@plusminus #1#2#3#4{\xint@firstoftwo@andstop }% -\def\XINT@min@plusplus #1#2#3#4% +\def\XINT_min_zerozero #1#2#3#4{\xint_firstoftwo_andstop }% +\def\XINT_min_zeroplus #1#2#3#4{\xint_secondoftwo_andstop }% +\def\XINT_min_pluszero #1#2#3#4{\xint_firstoftwo_andstop }% +\def\XINT_min_minusplus #1#2#3#4{\xint_secondoftwo_andstop }% +\def\XINT_min_plusminus #1#2#3#4{\xint_firstoftwo_andstop }% +\def\XINT_min_plusplus #1#2#3#4% {% - \ifodd\XINT@Geq {#4#2}{#3#1} - \expandafter\xint@secondoftwo@andstop + \ifodd\XINT_Geq {#4#2}{#3#1} + \expandafter\xint_secondoftwo_andstop \else - \expandafter\xint@firstoftwo@andstop + \expandafter\xint_firstoftwo_andstop \fi }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% #3=-, #4=-, #1 = |B| = -B, #2 = |A| = -A -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb+#3=-, #4=-, #1 = |B| = -B, #2 = |A| = -A+ % \begin{macrocode} -\def\XINT@min@minusminus #1#2#3#4% +\def\XINT_min_minusminus #1#2#3#4% {% - \ifodd\XINT@Geq {#1}{#2} - \expandafter\xint@secondoftwo@andstop + \ifodd\XINT_Geq {#1}{#2} + \expandafter\xint_secondoftwo_andstop \else - \expandafter\xint@firstoftwo@andstop + \expandafter\xint_firstoftwo_andstop \fi }% % \end{macrocode} % \subsection{\csh{xintSum}, \csh{xintSumExpr}} -% \begin{verbatim} -% \xintSum {{a}{b}...{z}} -% \xintSumExpr {a}{b}...{z}\relax +% \lverb|& +% \xintSum {{a}{b}...{z}}$\ +% \xintSumExpr {a}{b}...{z}\relax$\ % 1.03 (drastically) simplifies and makes the routines more efficient (for big % computations). Also the way \xintSum and \xintSumExpr ...\relax are related. % has been modified. Now \xintSumExpr \z \relax is accepted input when % \z expands to a list of braced terms (prior only \xintSum {\z} or \xintSum \z -% was possible). -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% was possible). | % \begin{macrocode} \def\xintiSum {\romannumeral0\xintisum }% \def\xintisum #1{\xintisumexpr #1\relax }% \def\xintiSumExpr {\romannumeral0\xintisumexpr }% -\def\xintisumexpr {\expandafter\XINT@sumexpr\romannumeral-`0}% +\def\xintisumexpr {\expandafter\XINT_sumexpr\romannumeral-`0}% \let\xintSum\xintiSum \let\xintsum\xintisum \let\xintSumExpr\xintiSumExpr \let\xintsumexpr\xintisumexpr -\def\XINT@sumexpr {\XINT@sum@loop {0000}{0000}}% -\def\XINT@sum@loop #1#2#3% +\def\XINT_sumexpr {\XINT_sum_loop {0000}{0000}}% +\def\XINT_sum_loop #1#2#3% {% - \expandafter\XINT@sum@checksign\romannumeral-`0#3\Z {#1}{#2}% + \expandafter\XINT_sum_checksign\romannumeral-`0#3\Z {#1}{#2}% }% -\def\XINT@sum@checksign #1% +\def\XINT_sum_checksign #1% {% - \xint@relax #1\XINT@sum@finished\relax - \xint@zero #1\XINT@sum@skipzeroinput0% - \xint@UDsignfork - #1\dummy \XINT@sum@N - -\dummy {\XINT@sum@P #1}% - \xint@UDkrof + \xint_gob_til_relax #1\XINT_sum_finished\relax + \xint_gob_til_zero #1\XINT_sum_skipzeroinput0% + \xint_UDsignfork + #1\dummy \XINT_sum_N + -\dummy {\XINT_sum_P #1}% + \krof }% -\def\XINT@sum@finished #1\Z #2#3% +\def\XINT_sum_finished #1\Z #2#3% {% - \XINT@sub@A 1{}#3\W\X\Y\Z #2\W\X\Y\Z + \XINT_sub_A 1{}#3\W\X\Y\Z #2\W\X\Y\Z }% -\def\XINT@sum@skipzeroinput #1\xint@UDkrof #2\Z {\XINT@sum@loop }% -\def\XINT@sum@P #1\Z #2% +\def\XINT_sum_skipzeroinput #1\krof #2\Z {\XINT_sum_loop }% +\def\XINT_sum_P #1\Z #2% {% - \expandafter\XINT@sum@loop\expandafter + \expandafter\XINT_sum_loop\expandafter {\romannumeral0\expandafter - \XINT@addr@A\expandafter0\expandafter{\expandafter}% - \romannumeral0\XINT@RQ {}#1\R\R\R\R\R\R\R\R\Z + \XINT_addr_A\expandafter0\expandafter{\expandafter}% + \romannumeral0\XINT_RQ {}#1\R\R\R\R\R\R\R\R\Z \W\X\Y\Z #2\W\X\Y\Z }% }% -\def\XINT@sum@N #1\Z #2#3% +\def\XINT_sum_N #1\Z #2#3% {% - \expandafter\XINT@sum@NN\expandafter + \expandafter\XINT_sum_NN\expandafter {\romannumeral0\expandafter - \XINT@addr@A\expandafter0\expandafter{\expandafter}% - \romannumeral0\XINT@RQ {}#1\R\R\R\R\R\R\R\R\Z + \XINT_addr_A\expandafter0\expandafter{\expandafter}% + \romannumeral0\XINT_RQ {}#1\R\R\R\R\R\R\R\R\Z \W\X\Y\Z #3\W\X\Y\Z }{#2}% }% -\def\XINT@sum@NN #1#2{\XINT@sum@loop {#2}{#1}}% +\def\XINT_sum_NN #1#2{\XINT_sum_loop {#2}{#1}}% % \end{macrocode} % \subsection{\csh{xintMul}} % \begin{macrocode} \def\xintiMul {\romannumeral0\xintimul }% \def\xintimul #1% {% - \expandafter\xint@mul\expandafter {\romannumeral-`0#1}% + \expandafter\xint_mul\expandafter {\romannumeral-`0#1}% }% \let\xintMul\xintiMul \let\xintmul\xintimul -\def\xint@mul #1#2% +\def\xint_mul #1#2% {% - \expandafter\XINT@mul@fork \romannumeral-`0#2\Z #1\Z + \expandafter\XINT_mul_fork \romannumeral-`0#2\Z #1\Z }% -\def\XINT@Mul #1#2{\romannumeral0\XINT@mul@fork #2\Z #1\Z }% +\def\XINT_Mul #1#2{\romannumeral0\XINT_mul_fork #2\Z #1\Z }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% MULTIPLICATION -% Ici #1#2 = 2e input et #3#4 = 1er input +% \lverb|& +% MULTIPLICATION$\ +% Ici #1#2 = 2e input et #3#4 = 1er input $\ % Release 1.03 adds some overhead to first compute and compare the % lengths of the two inputs. The algorithm is asymmetrical and whether % the first input is the longest or the shortest sometimes has a strong @@ -6267,473 +6387,454 @@ first place. % order does not matter as it is decided by the routine what is best. % This is important for the extension to fractions, as there is no way % then to generally control or guess the most frequent sizes of the -% inputs besides actually computing their lengths. -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% inputs besides actually computing their lengths. | % \begin{macrocode} -\def\XINT@mul@fork #1#2\Z #3#4\Z +\def\XINT_mul_fork #1#2\Z #3#4\Z {% - \xint@UDzerofork - #1\dummy \XINT@mul@zero - #3\dummy \XINT@mul@zero + \xint_UDzerofork + #1\dummy \XINT_mul_zero + #3\dummy \XINT_mul_zero 0\dummy - {\xint@UDsignsfork - #1#3\dummy \XINT@mul@minusminus % #1 = #3 = - - #1-\dummy {\XINT@mul@minusplus #3}% % #1 = - - #3-\dummy {\XINT@mul@plusminus #1}% % #3 = - - --\dummy {\XINT@mul@plusplus #1#3}% - \xint@UDkrof }% - \xint@UDkrof + {\xint_UDsignsfork + #1#3\dummy \XINT_mul_minusminus % #1 = #3 = - + #1-\dummy {\XINT_mul_minusplus #3}% % #1 = - + #3-\dummy {\XINT_mul_plusminus #1}% % #3 = - + --\dummy {\XINT_mul_plusplus #1#3}% + \krof }% + \krof {#2}{#4}% }% -\def\XINT@mul@zero #1#2{ 0}% -\def\XINT@mul@minusminus #1#2% +\def\XINT_mul_zero #1#2{ 0}% +\def\XINT_mul_minusminus #1#2% {% - \expandafter\XINT@mul@choice@a - \expandafter{\romannumeral0\XINT@length {#2}}% - {\romannumeral0\XINT@length {#1}}{#1}{#2}% + \expandafter\XINT_mul_choice_a + \expandafter{\romannumeral0\XINT_length {#2}}% + {\romannumeral0\XINT_length {#1}}{#1}{#2}% }% -\def\XINT@mul@minusplus #1#2#3% +\def\XINT_mul_minusplus #1#2#3% {% - \expandafter\xint@minus@andstop\romannumeral0\expandafter - \XINT@mul@choice@a - \expandafter{\romannumeral0\XINT@length {#1#3}}% - {\romannumeral0\XINT@length {#2}}{#2}{#1#3}% + \expandafter\xint_minus_andstop\romannumeral0\expandafter + \XINT_mul_choice_a + \expandafter{\romannumeral0\XINT_length {#1#3}}% + {\romannumeral0\XINT_length {#2}}{#2}{#1#3}% }% -\def\XINT@mul@plusminus #1#2#3% +\def\XINT_mul_plusminus #1#2#3% {% - \expandafter\xint@minus@andstop\romannumeral0\expandafter - \XINT@mul@choice@a - \expandafter{\romannumeral0\XINT@length {#3}}% - {\romannumeral0\XINT@length {#1#2}}{#1#2}{#3}% + \expandafter\xint_minus_andstop\romannumeral0\expandafter + \XINT_mul_choice_a + \expandafter{\romannumeral0\XINT_length {#3}}% + {\romannumeral0\XINT_length {#1#2}}{#1#2}{#3}% }% -\def\XINT@mul@plusplus #1#2#3#4% +\def\XINT_mul_plusplus #1#2#3#4% {% - \expandafter\XINT@mul@choice@a - \expandafter{\romannumeral0\XINT@length {#2#4}}% - {\romannumeral0\XINT@length {#1#3}}{#1#3}{#2#4}% + \expandafter\XINT_mul_choice_a + \expandafter{\romannumeral0\XINT_length {#2#4}}% + {\romannumeral0\XINT_length {#1#3}}{#1#3}{#2#4}% }% -\def\XINT@mul@choice@a #1#2% +\def\XINT_mul_choice_a #1#2% {% - \expandafter\XINT@mul@choice@b\expandafter{#2}{#1}% + \expandafter\XINT_mul_choice_b\expandafter{#2}{#1}% }% -\def\XINT@mul@choice@b #1#2% +\def\XINT_mul_choice_b #1#2% {% \ifnum #1<5 - \expandafter\XINT@mul@choice@littlebyfirst + \expandafter\XINT_mul_choice_littlebyfirst \else \ifnum #2<5 - \expandafter\expandafter\expandafter\XINT@mul@choice@littlebysecond + \expandafter\expandafter\expandafter\XINT_mul_choice_littlebysecond \else - \expandafter\expandafter\expandafter\XINT@mul@choice@compare + \expandafter\expandafter\expandafter\XINT_mul_choice_compare \fi \fi {#1}{#2}% }% -\def\XINT@mul@choice@littlebyfirst #1#2#3#4% +\def\XINT_mul_choice_littlebyfirst #1#2#3#4% {% - \expandafter\XINT@mul@M + \expandafter\XINT_mul_M \expandafter{\the\numexpr #3\expandafter}% - \romannumeral0\XINT@RQ {}#4\R\R\R\R\R\R\R\R\Z \Z\Z\Z\Z + \romannumeral0\XINT_RQ {}#4\R\R\R\R\R\R\R\R\Z \Z\Z\Z\Z }% -\def\XINT@mul@choice@littlebysecond #1#2#3#4% +\def\XINT_mul_choice_littlebysecond #1#2#3#4% {% - \expandafter\XINT@mul@M + \expandafter\XINT_mul_M \expandafter{\the\numexpr #4\expandafter}% - \romannumeral0\XINT@RQ {}#3\R\R\R\R\R\R\R\R\Z \Z\Z\Z\Z + \romannumeral0\XINT_RQ {}#3\R\R\R\R\R\R\R\R\Z \Z\Z\Z\Z }% -\def\XINT@mul@choice@compare #1#2% +\def\XINT_mul_choice_compare #1#2% {% \ifnum #1>#2 - \expandafter \XINT@mul@choice@i + \expandafter \XINT_mul_choice_i \else - \expandafter \XINT@mul@choice@ii + \expandafter \XINT_mul_choice_ii \fi {#1}{#2}% }% -\def\XINT@mul@choice@i #1#2% +\def\XINT_mul_choice_i #1#2% {% \ifnum #1<\numexpr\ifcase \numexpr (#2-3)/4\relax \or 330\or 168\or 109\or 80\or 66\or 52\else 0\fi\relax - \expandafter\XINT@mul@choice@same + \expandafter\XINT_mul_choice_same \else - \expandafter\XINT@mul@choice@permute + \expandafter\XINT_mul_choice_permute \fi }% -\def\XINT@mul@choice@ii #1#2% +\def\XINT_mul_choice_ii #1#2% {% \ifnum #2<\numexpr\ifcase \numexpr (#1-3)/4\relax \or 330\or 168\or 109\or 80\or 66\or 52\else 0\fi\relax - \expandafter\XINT@mul@choice@permute + \expandafter\XINT_mul_choice_permute \else - \expandafter\XINT@mul@choice@same + \expandafter\XINT_mul_choice_same \fi }% -\def\XINT@mul@choice@same #1#2% +\def\XINT_mul_choice_same #1#2% {% - \expandafter\XINT@mul@enter - \romannumeral0\XINT@RQ {}#1\R\R\R\R\R\R\R\R\Z + \expandafter\XINT_mul_enter + \romannumeral0\XINT_RQ {}#1\R\R\R\R\R\R\R\R\Z \W\X\Y\Z #2\W\X\Y\Z }% -\def\XINT@mul@choice@permute #1#2% +\def\XINT_mul_choice_permute #1#2% {% - \expandafter\XINT@mul@enter - \romannumeral0\XINT@RQ {}#2\R\R\R\R\R\R\R\R\Z + \expandafter\XINT_mul_enter + \romannumeral0\XINT_RQ {}#2\R\R\R\R\R\R\R\R\Z \W\X\Y\Z #1\W\X\Y\Z }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% Cette portion de routine d'addition se branche directement sur @addr@ lorsque +% \lverb|& +% Cette portion de routine d'addition se branche directement sur _addr_ +% lorsque % le premier nombre est épuisé, ce qui est garanti arriver avant le second % nombre. Elle produit son résultat toujours sur 4n, renversé. Ses deux inputs -% sont garantis sur 4n. -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% sont garantis sur 4n.| % \begin{macrocode} -\def\XINT@mul@Ar #1#2#3#4#5#6% +\def\XINT_mul_Ar #1#2#3#4#5#6% {% - \xint@z #6\xint@mul@br\Z\XINT@mul@Br #1{#6#5#4#3}{#2}% + \xint_gob_til_z #6\xint_mul_br\Z\XINT_mul_Br #1{#6#5#4#3}{#2}% }% -\def\xint@mul@br\Z\XINT@mul@Br #1#2% +\def\xint_mul_br\Z\XINT_mul_Br #1#2% {% - \XINT@addr@AC@checkcarry #1% + \XINT_addr_AC_checkcarry #1% }% -\def\XINT@mul@Br #1#2#3#4\W\X\Y\Z #5#6#7#8% +\def\XINT_mul_Br #1#2#3#4\W\X\Y\Z #5#6#7#8% {% - \expandafter\XINT@mul@ABEAr + \expandafter\XINT_mul_ABEAr \the\numexpr #1+10#2+#8#7#6#5\relax.{#3}#4\W\X\Y\Z }% -\def\XINT@mul@ABEAr #1#2#3#4#5#6.#7% +\def\XINT_mul_ABEAr #1#2#3#4#5#6.#7% {% - \XINT@mul@Ar #2{#7#6#5#4#3}% + \XINT_mul_Ar #2{#7#6#5#4#3}% }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} +% \lverb|& % << Petite >> multiplication. -% mul@Mr renvoie le résultat *à l'envers*, sur *4n* -% \romannumeral0\XINT@mul@Mr {<n>}<N>\Z\Z\Z\Z +% mul_Mr renvoie le résultat *à l'envers*, sur *4n*$\ +% \romannumeral0\XINT_mul_Mr {<n>}<N>\Z\Z\Z\Z$\ % Fait la multiplication de <N> par <n>, qui est < 10000. -% <N> est présenté *à l'envers*, sur *4n*. Lorsque <n> vaut 0, donne 0000. -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% <N> est présenté *à l'envers*, sur *4n*. Lorsque <n> vaut 0, donne 0000.| % \begin{macrocode} -\def\XINT@mul@Mr #1% +\def\XINT_mul_Mr #1% {% - \expandafter\XINT@mul@Mr@checkifzeroorone\expandafter{\the\numexpr #1}% + \expandafter\XINT_mul_Mr_checkifzeroorone\expandafter{\the\numexpr #1}% }% -\def\XINT@mul@Mr@checkifzeroorone #1% +\def\XINT_mul_Mr_checkifzeroorone #1% {% \ifcase #1 - \expandafter\XINT@mul@Mr@zero + \expandafter\XINT_mul_Mr_zero \or - \expandafter\XINT@mul@Mr@one + \expandafter\XINT_mul_Mr_one \else - \expandafter\XINT@mul@Nr + \expandafter\XINT_mul_Nr \fi {0000}{}{#1}% }% -\def\XINT@mul@Mr@zero #1\Z\Z\Z\Z { 0000}% -\def\XINT@mul@Mr@one #1#2#3#4\Z\Z\Z\Z { #4}% -\def\XINT@mul@Nr #1#2#3#4#5#6#7% +\def\XINT_mul_Mr_zero #1\Z\Z\Z\Z { 0000}% +\def\XINT_mul_Mr_one #1#2#3#4\Z\Z\Z\Z { #4}% +\def\XINT_mul_Nr #1#2#3#4#5#6#7% {% - \xint@z #4\xint@mul@pr\Z\XINT@mul@Pr {#1}{#3}{#7#6#5#4}{#2}{#3}% + \xint_gob_til_z #4\xint_mul_pr\Z\XINT_mul_Pr {#1}{#3}{#7#6#5#4}{#2}{#3}% }% -\def\XINT@mul@Pr #1#2#3% +\def\XINT_mul_Pr #1#2#3% {% - \expandafter\XINT@mul@Lr\the\numexpr 10000#1+#2*#3\relax + \expandafter\XINT_mul_Lr\the\numexpr 10000#1+#2*#3\relax }% -\def\XINT@mul@Lr 1#1#2#3#4#5#6#7#8#9% +\def\XINT_mul_Lr 1#1#2#3#4#5#6#7#8#9% {% - \XINT@mul@Nr {#1#2#3#4}{#9#8#7#6#5}% + \XINT_mul_Nr {#1#2#3#4}{#9#8#7#6#5}% }% -\def\xint@mul@pr\Z\XINT@mul@Pr #1#2#3#4#5% +\def\xint_mul_pr\Z\XINT_mul_Pr #1#2#3#4#5% {% - \xint@quatrezeros #1\XINT@mul@Mr@end@nocarry 0000% - \XINT@mul@Mr@end@carry #1{#4}% + \xint_gob_til_zeros_iv #1\XINT_mul_Mr_end_nocarry 0000% + \XINT_mul_Mr_end_carry #1{#4}% }% -\def\XINT@mul@Mr@end@nocarry 0000\XINT@mul@Mr@end@carry 0000#1{ #1}% -\def\XINT@mul@Mr@end@carry #1#2#3#4#5{ #5#4#3#2#1}% +\def\XINT_mul_Mr_end_nocarry 0000\XINT_mul_Mr_end_carry 0000#1{ #1}% +\def\XINT_mul_Mr_end_carry #1#2#3#4#5{ #5#4#3#2#1}% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} +% \lverb|& % << Petite >> multiplication. -%renvoie le résultat *à l'endroit*, avec *nettoyage des leading zéros*. -% \romannumeral0\XINT@mul@M {<n>}<N>\Z\Z\Z\Z +% renvoie le résultat *à l'endroit*, avec *nettoyage des leading zéros*.$\ +% \romannumeral0\XINT_mul_M {<n>}<N>\Z\Z\Z\Z$\ % Fait la multiplication de <N> par <n>, qui est < 10000. -% <N> est présenté *à l'envers*, sur *4n*. -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% <N> est présenté *à l'envers*, sur *4n*. | % \begin{macrocode} -\def\XINT@mul@M #1% +\def\XINT_mul_M #1% {% - \expandafter\XINT@mul@M@checkifzeroorone\expandafter{\the\numexpr #1}% + \expandafter\XINT_mul_M_checkifzeroorone\expandafter{\the\numexpr #1}% }% -\def\XINT@mul@M@checkifzeroorone #1% +\def\XINT_mul_M_checkifzeroorone #1% {% \ifcase #1 - \expandafter\XINT@mul@M@zero + \expandafter\XINT_mul_M_zero \or - \expandafter\XINT@mul@M@one + \expandafter\XINT_mul_M_one \else - \expandafter\XINT@mul@N + \expandafter\XINT_mul_N \fi {0000}{}{#1}% }% -\def\XINT@mul@M@zero #1\Z\Z\Z\Z { 0}% -\def\XINT@mul@M@one #1#2#3#4\Z\Z\Z\Z +\def\XINT_mul_M_zero #1\Z\Z\Z\Z { 0}% +\def\XINT_mul_M_one #1#2#3#4\Z\Z\Z\Z {% - \expandafter\xint@cleanupzeros@andstop\romannumeral0\XINT@rev{#4}% + \expandafter\xint_cleanupzeros_andstop\romannumeral0\XINT_rev{#4}% }% -\def\XINT@mul@N #1#2#3#4#5#6#7% +\def\XINT_mul_N #1#2#3#4#5#6#7% {% - \xint@z #4\xint@mul@p\Z\XINT@mul@P {#1}{#3}{#7#6#5#4}{#2}{#3}% + \xint_gob_til_z #4\xint_mul_p\Z\XINT_mul_P {#1}{#3}{#7#6#5#4}{#2}{#3}% }% -\def\XINT@mul@P #1#2#3% +\def\XINT_mul_P #1#2#3% {% - \expandafter\XINT@mul@L\the\numexpr 10000#1+#2*#3\relax + \expandafter\XINT_mul_L\the\numexpr 10000#1+#2*#3\relax }% -\def\XINT@mul@L 1#1#2#3#4#5#6#7#8#9% +\def\XINT_mul_L 1#1#2#3#4#5#6#7#8#9% {% - \XINT@mul@N {#1#2#3#4}{#5#6#7#8#9}% + \XINT_mul_N {#1#2#3#4}{#5#6#7#8#9}% }% -\def\xint@mul@p\Z\XINT@mul@P #1#2#3#4#5% +\def\xint_mul_p\Z\XINT_mul_P #1#2#3#4#5% {% - \XINT@mul@M@end #1#4% + \XINT_mul_M_end #1#4% }% -\def\XINT@mul@M@end #1#2#3#4#5#6#7#8% +\def\XINT_mul_M_end #1#2#3#4#5#6#7#8% {% \expandafter\space\the\numexpr #1#2#3#4#5#6#7#8\relax }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} +% \lverb|& % Routine de multiplication principale -% délimiteur \W\X\Y\Z +% délimiteur \W\X\Y\Z$\ % Le résultat partiel est toujours maintenu avec significatif à -% droite et il a un nombre multiple de 4 de chiffres -% \romannumeral0\XINT@mul@enter <N1>\W\X\Y\Z <N2>\W\X\Y\Z +% droite et il a un nombre multiple de 4 de chiffres$\ +% \romannumeral0\XINT_mul_enter <N1>\W\X\Y\Z <N2>\W\X\Y\Z$\ % avec <N1> *renversé*, *longueur 4n* (zéros éventuellement ajoutés % au-delà du chiffre le plus significatif) % et <N2> dans l'ordre *normal*, et pas forcément longueur 4n. -% pas de signes -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% pas de signes| % \begin{macrocode} -\def\XINT@mul@enter #1\W\X\Y\Z #2#3#4#5% +\def\XINT_mul_enter #1\W\X\Y\Z #2#3#4#5% {% - \xint@w - #5\xint@mul@enterw - #4\xint@mul@enterx - #3\xint@mul@entery - #2\xint@mul@enterz - \W\XINT@mul@start {#2#3#4#5}#1\W\X\Y\Z + \xint_gob_til_w + #5\xint_mul_enterw + #4\xint_mul_enterx + #3\xint_mul_entery + #2\xint_mul_enterz + \W\XINT_mul_start {#2#3#4#5}#1\W\X\Y\Z }% -\def\xint@mul@enterw - #1\xint@mul@enterx - #2\xint@mul@entery - #3\xint@mul@enterz - \W\XINT@mul@start #4#5\W\X\Y\Z \X\Y\Z +\def\xint_mul_enterw + #1\xint_mul_enterx + #2\xint_mul_entery + #3\xint_mul_enterz + \W\XINT_mul_start #4#5\W\X\Y\Z \X\Y\Z {% - \XINT@mul@M {#3#2#1}#5\Z\Z\Z\Z + \XINT_mul_M {#3#2#1}#5\Z\Z\Z\Z }% -\def\xint@mul@enterx - #1\xint@mul@entery - #2\xint@mul@enterz - \W\XINT@mul@start #3#4\W\X\Y\Z \Y\Z +\def\xint_mul_enterx + #1\xint_mul_entery + #2\xint_mul_enterz + \W\XINT_mul_start #3#4\W\X\Y\Z \Y\Z {% - \XINT@mul@M {#2#1}#4\Z\Z\Z\Z + \XINT_mul_M {#2#1}#4\Z\Z\Z\Z }% -\def\xint@mul@entery - #1\xint@mul@enterz - \W\XINT@mul@start #2#3\W\X\Y\Z \Z +\def\xint_mul_entery + #1\xint_mul_enterz + \W\XINT_mul_start #2#3\W\X\Y\Z \Z {% - \XINT@mul@M {#1}#3\Z\Z\Z\Z + \XINT_mul_M {#1}#3\Z\Z\Z\Z }% -\def\XINT@mul@start #1#2\W\X\Y\Z +\def\XINT_mul_start #1#2\W\X\Y\Z {% - \expandafter\XINT@mul@main\expandafter - {\romannumeral0\XINT@mul@Mr {#1}#2\Z\Z\Z\Z}#2\W\X\Y\Z + \expandafter\XINT_mul_main\expandafter + {\romannumeral0\XINT_mul_Mr {#1}#2\Z\Z\Z\Z}#2\W\X\Y\Z }% -\def\XINT@mul@main #1#2\W\X\Y\Z #3#4#5#6% +\def\XINT_mul_main #1#2\W\X\Y\Z #3#4#5#6% {% - \xint@w - #6\xint@mul@mainw - #5\xint@mul@mainx - #4\xint@mul@mainy - #3\xint@mul@mainz - \W\XINT@mul@compute {#1}{#3#4#5#6}#2\W\X\Y\Z + \xint_gob_til_w + #6\xint_mul_mainw + #5\xint_mul_mainx + #4\xint_mul_mainy + #3\xint_mul_mainz + \W\XINT_mul_compute {#1}{#3#4#5#6}#2\W\X\Y\Z }% -\def\XINT@mul@compute #1#2#3\W\X\Y\Z +\def\XINT_mul_compute #1#2#3\W\X\Y\Z {% - \expandafter\XINT@mul@main\expandafter + \expandafter\XINT_mul_main\expandafter {\romannumeral0\expandafter - \XINT@mul@Ar\expandafter0\expandafter{\expandafter}% - \romannumeral0\XINT@mul@Mr {#2}#3\Z\Z\Z\Z + \XINT_mul_Ar\expandafter0\expandafter{\expandafter}% + \romannumeral0\XINT_mul_Mr {#2}#3\Z\Z\Z\Z \W\X\Y\Z 0000#1\W\X\Y\Z }#3\W\X\Y\Z }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} +% \lverb|& % Ici, le deuxième nombre se termine. Fin du calcul. On utilise la variante -% \XINT@addm@A de l'addition car on sait que le deuxième terme est au moins +% \XINT_addm_A de l'addition car on sait que le deuxième terme est au moins % aussi long que le premier. Lorsque le multiplicateur avait longueur 4n, la % dernière addition a fourni le résultat à l'envers, il faut donc encore le -% renverser. -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% renverser. | % \begin{macrocode} -\def\xint@mul@mainw - #1\xint@mul@mainx - #2\xint@mul@mainy - #3\xint@mul@mainz - \W\XINT@mul@compute #4#5#6\W\X\Y\Z \X\Y\Z +\def\xint_mul_mainw + #1\xint_mul_mainx + #2\xint_mul_mainy + #3\xint_mul_mainz + \W\XINT_mul_compute #4#5#6\W\X\Y\Z \X\Y\Z {% - \expandafter\XINT@addm@A \expandafter0\expandafter{\expandafter}% + \expandafter\XINT_addm_A \expandafter0\expandafter{\expandafter}% \romannumeral0% - \XINT@mul@Mr {#3#2#1}#6\Z\Z\Z\Z + \XINT_mul_Mr {#3#2#1}#6\Z\Z\Z\Z \W\X\Y\Z 000#4\W\X\Y\Z }% -\def\xint@mul@mainx - #1\xint@mul@mainy - #2\xint@mul@mainz - \W\XINT@mul@compute #3#4#5\W\X\Y\Z \Y\Z +\def\xint_mul_mainx + #1\xint_mul_mainy + #2\xint_mul_mainz + \W\XINT_mul_compute #3#4#5\W\X\Y\Z \Y\Z {% - \expandafter\XINT@addm@A\expandafter + \expandafter\XINT_addm_A\expandafter 0\expandafter{\expandafter}% - \romannumeral0\XINT@mul@Mr {#2#1}#5\Z\Z\Z\Z + \romannumeral0\XINT_mul_Mr {#2#1}#5\Z\Z\Z\Z \W\X\Y\Z 00#3\W\X\Y\Z }% -\def\xint@mul@mainy - #1\xint@mul@mainz - \W\XINT@mul@compute #2#3#4\W\X\Y\Z \Z +\def\xint_mul_mainy + #1\xint_mul_mainz + \W\XINT_mul_compute #2#3#4\W\X\Y\Z \Z {% - \expandafter\XINT@addm@A\expandafter + \expandafter\XINT_addm_A\expandafter 0\expandafter{\expandafter}% - \romannumeral0\XINT@mul@Mr {#1}#4\Z\Z\Z\Z + \romannumeral0\XINT_mul_Mr {#1}#4\Z\Z\Z\Z \W\X\Y\Z 0#2\W\X\Y\Z }% -\def\xint@mul@mainz\W\XINT@mul@compute #1#2#3\W\X\Y\Z +\def\xint_mul_mainz\W\XINT_mul_compute #1#2#3\W\X\Y\Z {% - \expandafter\xint@cleanupzeros@andstop\romannumeral0\XINT@rev{#1}% + \expandafter\xint_cleanupzeros_andstop\romannumeral0\XINT_rev{#1}% }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% Variante de la Multiplication -% \romannumeral0\XINT@mulr@enter <N1>\W\X\Y\Z <N2>\W\X\Y\Z +% \lverb|& +% Variante de la Multiplication$\ +% \romannumeral0\XINT_mulr_enter <N1>\W\X\Y\Z <N2>\W\X\Y\Z$\ % Ici <N1> est à l'envers sur 4n, et <N2> est à l'endroit, pas sur 4n, comme -% dans \XINT@mul@enter, mais le résultat est lui-même fourni *à l'envers*, sur -% *4n* (en faisant attention de ne pas avoir 0000 à la fin). -% Utilisé par le calcul des puissances et aussi par la division. -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% dans \XINT_mul_enter, mais le résultat est lui-même fourni *à l'envers*, sur +% *4n* (en faisant attention de ne pas avoir 0000 à la fin).$\ +% Utilisé par le calcul des puissances et aussi par la division.| % \begin{macrocode} -\def\XINT@mulr@enter #1\W\X\Y\Z #2#3#4#5% +\def\XINT_mulr_enter #1\W\X\Y\Z #2#3#4#5% {% - \xint@w - #5\xint@mulr@enterw - #4\xint@mulr@enterx - #3\xint@mulr@entery - #2\xint@mulr@enterz - \W\XINT@mulr@start {#2#3#4#5}#1\W\X\Y\Z + \xint_gob_til_w + #5\xint_mulr_enterw + #4\xint_mulr_enterx + #3\xint_mulr_entery + #2\xint_mulr_enterz + \W\XINT_mulr_start {#2#3#4#5}#1\W\X\Y\Z }% -\def\xint@mulr@enterw - #1\xint@mulr@enterx - #2\xint@mulr@entery - #3\xint@mulr@enterz - \W\XINT@mulr@start #4#5\W\X\Y\Z \X\Y\Z +\def\xint_mulr_enterw + #1\xint_mulr_enterx + #2\xint_mulr_entery + #3\xint_mulr_enterz + \W\XINT_mulr_start #4#5\W\X\Y\Z \X\Y\Z {% - \XINT@mul@Mr {#3#2#1}#5\Z\Z\Z\Z + \XINT_mul_Mr {#3#2#1}#5\Z\Z\Z\Z }% -\def\xint@mulr@enterx - #1\xint@mulr@entery - #2\xint@mulr@enterz - \W\XINT@mulr@start #3#4\W\X\Y\Z \Y\Z +\def\xint_mulr_enterx + #1\xint_mulr_entery + #2\xint_mulr_enterz + \W\XINT_mulr_start #3#4\W\X\Y\Z \Y\Z {% - \XINT@mul@Mr {#2#1}#4\Z\Z\Z\Z + \XINT_mul_Mr {#2#1}#4\Z\Z\Z\Z }% -\def\xint@mulr@entery - #1\xint@mulr@enterz - \W\XINT@mulr@start #2#3\W\X\Y\Z \Z +\def\xint_mulr_entery + #1\xint_mulr_enterz + \W\XINT_mulr_start #2#3\W\X\Y\Z \Z {% - \XINT@mul@Mr {#1}#3\Z\Z\Z\Z + \XINT_mul_Mr {#1}#3\Z\Z\Z\Z }% -\def\XINT@mulr@start #1#2\W\X\Y\Z +\def\XINT_mulr_start #1#2\W\X\Y\Z {% - \expandafter\XINT@mulr@main\expandafter - {\romannumeral0\XINT@mul@Mr {#1}#2\Z\Z\Z\Z }#2\W\X\Y\Z + \expandafter\XINT_mulr_main\expandafter + {\romannumeral0\XINT_mul_Mr {#1}#2\Z\Z\Z\Z }#2\W\X\Y\Z }% -\def\XINT@mulr@main #1#2\W\X\Y\Z #3#4#5#6% +\def\XINT_mulr_main #1#2\W\X\Y\Z #3#4#5#6% {% - \xint@w - #6\xint@mulr@mainw - #5\xint@mulr@mainx - #4\xint@mulr@mainy - #3\xint@mulr@mainz - \W\XINT@mulr@compute {#1}{#3#4#5#6}#2\W\X\Y\Z + \xint_gob_til_w + #6\xint_mulr_mainw + #5\xint_mulr_mainx + #4\xint_mulr_mainy + #3\xint_mulr_mainz + \W\XINT_mulr_compute {#1}{#3#4#5#6}#2\W\X\Y\Z }% -\def\XINT@mulr@compute #1#2#3\W\X\Y\Z +\def\XINT_mulr_compute #1#2#3\W\X\Y\Z {% - \expandafter\XINT@mulr@main\expandafter + \expandafter\XINT_mulr_main\expandafter {\romannumeral0\expandafter - \XINT@mul@Ar \expandafter0\expandafter{\expandafter}% - \romannumeral0\XINT@mul@Mr {#2}#3\Z\Z\Z\Z \W\X\Y\Z 0000#1\W\X\Y\Z + \XINT_mul_Ar \expandafter0\expandafter{\expandafter}% + \romannumeral0\XINT_mul_Mr {#2}#3\Z\Z\Z\Z \W\X\Y\Z 0000#1\W\X\Y\Z }#3\W\X\Y\Z }% -\def\xint@mulr@mainw - #1\xint@mulr@mainx - #2\xint@mulr@mainy - #3\xint@mulr@mainz - \W\XINT@mulr@compute #4#5#6\W\X\Y\Z \X\Y\Z +\def\xint_mulr_mainw + #1\xint_mulr_mainx + #2\xint_mulr_mainy + #3\xint_mulr_mainz + \W\XINT_mulr_compute #4#5#6\W\X\Y\Z \X\Y\Z {% - \expandafter\XINT@addp@A + \expandafter\XINT_addp_A \expandafter0\expandafter{\expandafter}% - \romannumeral0\XINT@mul@Mr {#3#2#1}#6\Z\Z\Z\Z + \romannumeral0\XINT_mul_Mr {#3#2#1}#6\Z\Z\Z\Z \W\X\Y\Z 000#4\W\X\Y\Z }% -\def\xint@mulr@mainx - #1\xint@mulr@mainy - #2\xint@mulr@mainz - \W\XINT@mulr@compute #3#4#5\W\X\Y\Z \Y\Z +\def\xint_mulr_mainx + #1\xint_mulr_mainy + #2\xint_mulr_mainz + \W\XINT_mulr_compute #3#4#5\W\X\Y\Z \Y\Z {% - \expandafter\XINT@addp@A + \expandafter\XINT_addp_A \expandafter0\expandafter{\expandafter}% - \romannumeral0\XINT@mul@Mr {#2#1}#5\Z\Z\Z\Z + \romannumeral0\XINT_mul_Mr {#2#1}#5\Z\Z\Z\Z \W\X\Y\Z 00#3\W\X\Y\Z }% -\def\xint@mulr@mainy - #1\xint@mulr@mainz - \W\XINT@mulr@compute #2#3#4\W\X\Y\Z \Z +\def\xint_mulr_mainy + #1\xint_mulr_mainz + \W\XINT_mulr_compute #2#3#4\W\X\Y\Z \Z {% - \expandafter\XINT@addp@A + \expandafter\XINT_addp_A \expandafter0\expandafter{\expandafter}% - \romannumeral0\XINT@mul@Mr {#1}#4\Z\Z\Z\Z + \romannumeral0\XINT_mul_Mr {#1}#4\Z\Z\Z\Z \W\X\Y\Z 0#2\W\X\Y\Z }% -\def\xint@mulr@mainz\W\XINT@mulr@compute #1#2#3\W\X\Y\Z { #1}% +\def\xint_mulr_mainz\W\XINT_mulr_compute #1#2#3\W\X\Y\Z { #1}% % \end{macrocode} % \subsection{\csh{xintSqr}} % \begin{macrocode} \def\xintiSqr {\romannumeral0\xintisqr }% \def\xintisqr #1% {% - \expandafter\XINT@sqr\expandafter {\romannumeral0\xintiabs{#1}}% + \expandafter\XINT_sqr\expandafter {\romannumeral0\xintiabs{#1}}% }% \let\xintSqr\xintiSqr \let\xintsqr\xintisqr -\def\XINT@sqr #1% +\def\XINT_sqr #1% {% - \expandafter\XINT@mul@enter + \expandafter\XINT_mul_enter \romannumeral0% - \XINT@RQ {}#1\R\R\R\R\R\R\R\R\Z + \XINT_RQ {}#1\R\R\R\R\R\R\R\R\Z \W\X\Y\Z #1\W\X\Y\Z }% % \end{macrocode} % \subsection{\csh{xintPrd}, \csh{xintPrdExpr}} -% \begin{verbatim} -% \xintPrd {{a}...{z}} -% \xintPrdExpr {a}...{z}\relax +% \lverb|& +% \xintPrd {{a}...{z}}$\ +% \xintPrdExpr {a}...{z}\relax$\ % Release 1.02 modified the product routine. The earlier version was faster in % situations where each new term is bigger than the product of all previous % terms, a situation which arises in the algorithm for computing powers. The @@ -6752,1446 +6853,1299 @@ first place. % % In 1.06a I suddenly decide that \xintProductExpr was a silly name, and as the % package is new and certainly not used, I decide I may just switch to -% \xintPrdExpr which I should have used from the beginning. -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \xintPrdExpr which I should have used from the beginning.| % \begin{macrocode} \def\xintiPrd {\romannumeral0\xintiprd }% \def\xintiprd #1{\xintiprdexpr #1\relax }% \let\xintPrd\xintiPrd \let\xintprd\xintiprd \def\xintiPrdExpr {\romannumeral0\xintiprdexpr }% -\def\xintiprdexpr {\expandafter\XINT@prdexpr\romannumeral-`0}% +\def\xintiprdexpr {\expandafter\XINT_prdexpr\romannumeral-`0}% \let\xintPrdExpr\xintiPrdExpr \let\xintprdexpr\xintiprdexpr -\def\XINT@prdexpr {\XINT@prod@loop@a 1\Z }% -\def\XINT@prod@loop@a #1\Z #2% +\def\XINT_prdexpr {\XINT_prod_loop_a 1\Z }% +\def\XINT_prod_loop_a #1\Z #2% {% - \expandafter\XINT@prod@loop@b \romannumeral-`0#2\Z #1\Z \Z + \expandafter\XINT_prod_loop_b \romannumeral-`0#2\Z #1\Z \Z }% -\def\XINT@prod@loop@b #1% +\def\XINT_prod_loop_b #1% {% - \xint@relax #1\XINT@prod@finished\relax - \XINT@prod@loop@c #1% + \xint_gob_til_relax #1\XINT_prod_finished\relax + \XINT_prod_loop_c #1% }% -\def\XINT@prod@loop@c +\def\XINT_prod_loop_c {% - \expandafter\XINT@prod@loop@a\romannumeral0\XINT@mul@fork + \expandafter\XINT_prod_loop_a\romannumeral0\XINT_mul_fork }% -\def\XINT@prod@finished #1\Z #2\Z \Z { #2}% +\def\XINT_prod_finished #1\Z #2\Z \Z { #2}% % \end{macrocode} % \subsection{\csh{xintFac}} -% \begin{verbatim} -% Modified with 1.02 and again in 1.03 for greater efficiency. I am tempted, -% here and elsewhere, to use \ifcase\XINT@Geq {#1}{1000000000} rather than -% \ifnum\XINT@Length {#1}>9 but for the time being I leave things as they stand. -% With release 1.05, rather than using \XINT@Length I opt finally for direct use +% \lverb|& +% Modified with 1.02 and again in 1.03 for greater efficiency. I am +% tempted, +% here and elsewhere, to use \ifcase\XINT_Geq {#1}{1000000000} rather than +% \ifnum\XINT_Length {#1}>9 but for the time being I leave things as they stand. +% With release 1.05, rather than using \XINT_Length I opt finally for direct use % of \numexpr (which will throw a suitable number too big message), and to raise -% the \xintError:FactorialOfTooBigNumber for argument larger than 1000000 -% (rather than 1000000000). -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% the \xintError:$\ FactorialOfTooBigNumber for argument larger than 1000000 +% (rather than 1000000000). | % \begin{macrocode} \def\xintFac {\romannumeral0\xintfac }% \def\xintfac #1% {% - \expandafter\XINT@fac@fork\expandafter{\the\numexpr #1}% + \expandafter\XINT_fac_fork\expandafter{\the\numexpr #1}% }% -\def\XINT@fac@fork #1% +\def\XINT_fac_fork #1% {% - \ifcase\XINT@Sgn {#1} - \xint@afterfi{\expandafter\space\expandafter 1\xint@gobble }% + \ifcase\XINT_Sgn {#1} + \xint_afterfi{\expandafter\space\expandafter 1\xint_gobble_i }% \or - \expandafter\XINT@fac@checklength + \expandafter\XINT_fac_checklength \else - \xint@afterfi{\expandafter\xintError:FactorialOfNegativeNumber - \expandafter\space\expandafter 1\xint@gobble }% + \xint_afterfi{\expandafter\xintError:FactorialOfNegativeNumber + \expandafter\space\expandafter 1\xint_gobble_i }% \fi {#1}% }% -\def\XINT@fac@checklength #1% +\def\XINT_fac_checklength #1% {% \ifnum #1>999999 - \xint@afterfi{\expandafter\xintError:FactorialOfTooBigNumber - \expandafter\space\expandafter 1\xint@gobble }% + \xint_afterfi{\expandafter\xintError:FactorialOfTooBigNumber + \expandafter\space\expandafter 1\xint_gobble_i }% \else - \xint@afterfi{\ifnum #1>9999 - \expandafter\XINT@fac@big@loop + \xint_afterfi{\ifnum #1>9999 + \expandafter\XINT_fac_big_loop \else - \expandafter\XINT@fac@loop + \expandafter\XINT_fac_loop \fi }% \fi {#1}% }% -\def\XINT@fac@big@loop #1{\XINT@fac@big@loop@main {10000}{#1}{}}% -\def\XINT@fac@big@loop@main #1#2#3% +\def\XINT_fac_big_loop #1{\XINT_fac_big_loop_main {10000}{#1}{}}% +\def\XINT_fac_big_loop_main #1#2#3% {% \ifnum #1<#2 \expandafter - \XINT@fac@big@loop@main + \XINT_fac_big_loop_main \expandafter {\the\numexpr #1+1\expandafter }% \else - \expandafter\XINT@fac@big@docomputation + \expandafter\XINT_fac_big_docomputation \fi {#2}{#3{#1}}% }% -\def\XINT@fac@big@docomputation #1#2% +\def\XINT_fac_big_docomputation #1#2% {% - \expandafter \XINT@fac@bigcompute@loop \expandafter - {\romannumeral0\XINT@fac@loop {9999}}#2\relax + \expandafter \XINT_fac_bigcompute_loop \expandafter + {\romannumeral0\XINT_fac_loop {9999}}#2\relax }% -\def\XINT@fac@bigcompute@loop #1#2% +\def\XINT_fac_bigcompute_loop #1#2% {% - \xint@relax #2\XINT@fac@bigcompute@end\relax - \expandafter\XINT@fac@bigcompute@loop\expandafter - {\expandafter\XINT@mul@enter - \romannumeral0\XINT@RQ {}#2\R\R\R\R\R\R\R\R\Z + \xint_gob_til_relax #2\XINT_fac_bigcompute_end\relax + \expandafter\XINT_fac_bigcompute_loop\expandafter + {\expandafter\XINT_mul_enter + \romannumeral0\XINT_RQ {}#2\R\R\R\R\R\R\R\R\Z \W\X\Y\Z #1\W\X\Y\Z }% }% -\def\XINT@fac@bigcompute@end #1#2#3#4#5% +\def\XINT_fac_bigcompute_end #1#2#3#4#5% {% - \XINT@fac@bigcompute@end@ #5% + \XINT_fac_bigcompute_end_ #5% }% -\def\XINT@fac@bigcompute@end@ #1\R #2\Z \W\X\Y\Z #3\W\X\Y\Z { #3}% -\def\XINT@fac@loop #1{\XINT@fac@loop@main 1{1000}{#1}}% -\def\XINT@fac@loop@main #1#2#3% +\def\XINT_fac_bigcompute_end_ #1\R #2\Z \W\X\Y\Z #3\W\X\Y\Z { #3}% +\def\XINT_fac_loop #1{\XINT_fac_loop_main 1{1000}{#1}}% +\def\XINT_fac_loop_main #1#2#3% {% \ifnum #3>#1 \else - \expandafter\XINT@fac@loop@exit + \expandafter\XINT_fac_loop_exit \fi - \expandafter\XINT@fac@loop@main\expandafter + \expandafter\XINT_fac_loop_main\expandafter {\the\numexpr #1+1\expandafter }\expandafter - {\romannumeral0\XINT@mul@Mr {#1}#2\Z\Z\Z\Z }% + {\romannumeral0\XINT_mul_Mr {#1}#2\Z\Z\Z\Z }% {#3}% }% -\def\XINT@fac@loop@exit #1#2#3#4#5#6#7% +\def\XINT_fac_loop_exit #1#2#3#4#5#6#7% {% - \XINT@fac@loop@exit@ #6% + \XINT_fac_loop_exit_ #6% }% -\def\XINT@fac@loop@exit@ #1#2#3% +\def\XINT_fac_loop_exit_ #1#2#3% {% - \XINT@mul@M + \XINT_mul_M }% % \end{macrocode} % \subsection{\csh{xintPow}} -% \begin{verbatim} -% 1.02 modified the \XINT@posprod routine, and this meant that the original -% version was moved here and renamed to \XINT@pow@posprod, as it was well +% \lverb|& +% 1.02 modified the \XINT_posprod routine, and this meant that the +% original +% version was moved here and renamed to \XINT_pow_posprod, as it was well % adapted for computing powers. Then I moved in 1.03 the special variants of % multiplication (hence of addition) which were needed to earlier in this file. % Modified in 1.06, the exponent is given to a \numexpr rather than twice -% expanded. -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% expanded. | % \begin{macrocode} \def\xintiPow {\romannumeral0\xintipow }% \def\xintipow #1% {% - \expandafter\xint@pow\romannumeral-`0#1\Z% + \expandafter\xint_pow\romannumeral-`0#1\Z% }% \let\xintPow\xintiPow \let\xintpow\xintipow -\def\xint@pow #1#2\Z +\def\xint_pow #1#2\Z {% - \xint@UDsignfork - #1\dummy \XINT@pow@Aneg - -\dummy \XINT@pow@Anonneg - \xint@UDkrof + \xint_UDsignfork + #1\dummy \XINT_pow_Aneg + -\dummy \XINT_pow_Anonneg + \krof #1{#2}% }% -\def\XINT@pow@Aneg #1#2#3% +\def\XINT_pow_Aneg #1#2#3% {% - \expandafter\XINT@pow@Aneg@\expandafter{\the\numexpr #3}{#2}% + \expandafter\XINT_pow_Aneg_\expandafter{\the\numexpr #3}{#2}% }% -\def\XINT@pow@Aneg@ #1% +\def\XINT_pow_Aneg_ #1% {% \ifodd #1 - \expandafter\XINT@pow@Aneg@Bodd + \expandafter\XINT_pow_Aneg_Bodd \fi - \XINT@pow@Anonneg@ {#1}% + \XINT_pow_Anonneg_ {#1}% }% -\def\XINT@pow@Aneg@Bodd #1% +\def\XINT_pow_Aneg_Bodd #1% {% - \expandafter\XINT@opp\romannumeral0\XINT@pow@Anonneg@ + \expandafter\XINT_opp\romannumeral0\XINT_pow_Anonneg_ }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% B = #3, faire le xpxp. Modified with 1.06: use of \numexpr. -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|& +% B = #3, faire le xpxp. Modified with 1.06: use of \numexpr.| % \begin{macrocode} -\def\XINT@pow@Anonneg #1#2#3% +\def\XINT_pow_Anonneg #1#2#3% {% - \expandafter\XINT@pow@Anonneg@\expandafter {\the\numexpr #3}{#1#2}% + \expandafter\XINT_pow_Anonneg_\expandafter {\the\numexpr #3}{#1#2}% }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% #1 = B, #2 = |A| -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb+#1 = B, #2 = |A|+ % \begin{macrocode} -\def\XINT@pow@Anonneg@ #1#2% +\def\XINT_pow_Anonneg_ #1#2% {% - \ifcase\XINT@Cmp {#2}{1} - \expandafter\XINT@pow@AisOne + \ifcase\XINT_Cmp {#2}{1} + \expandafter\XINT_pow_AisOne \or - \expandafter\XINT@pow@AatleastTwo + \expandafter\XINT_pow_AatleastTwo \else - \expandafter\XINT@pow@AisZero + \expandafter\XINT_pow_AisZero \fi {#1}{#2}% }% -\def\XINT@pow@AisOne #1#2{ 1}% +\def\XINT_pow_AisOne #1#2{ 1}% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% #1 = B -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|& +% #1 = B| % \begin{macrocode} -\def\XINT@pow@AisZero #1#2% +\def\XINT_pow_AisZero #1#2% {% - \ifcase\XINT@Sgn {#1} - \xint@afterfi { 1}% + \ifcase\XINT_Sgn {#1} + \xint_afterfi { 1}% \or - \xint@afterfi { 0}% + \xint_afterfi { 0}% \else - \xint@afterfi {\xintError:DivisionByZero\space 0}% + \xint_afterfi {\xintError:DivisionByZero\space 0}% \fi }% -\def\XINT@pow@AatleastTwo #1% +\def\XINT_pow_AatleastTwo #1% {% - \ifcase\XINT@Sgn {#1} - \expandafter\XINT@pow@BisZero + \ifcase\XINT_Sgn {#1} + \expandafter\XINT_pow_BisZero \or - \expandafter\XINT@pow@checkBlength + \expandafter\XINT_pow_checkBlength \else - \expandafter\XINT@pow@BisNegative + \expandafter\XINT_pow_BisNegative \fi {#1}% }% -\def\XINT@pow@BisNegative #1#2{\xintError:FractionRoundedToZero\space 0}% -\def\XINT@pow@BisZero #1#2{ 1}% +\def\XINT_pow_BisNegative #1#2{\xintError:FractionRoundedToZero\space 0}% +\def\XINT_pow_BisZero #1#2{ 1}% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% B = #1 > 0, A = #2 > 1. With 1.05, I replace \xintiLen{#1}>9 by direct use +% \lverb|& +% B = #1 > 0, A = #2 > 1. With 1.05, I replace \xintiLen{#1}>9 by direct +% use % of \numexpr [to generate an error message if the exponent is too large] -% 1.06: \numexpr was already used above. -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% 1.06: \numexpr was already used above.| % \begin{macrocode} -\def\XINT@pow@checkBlength #1#2% +\def\XINT_pow_checkBlength #1#2% {% \ifnum #1>999999999 - \expandafter\XINT@pow@BtooBig + \expandafter\XINT_pow_BtooBig \else - \expandafter\XINT@pow@loop + \expandafter\XINT_pow_loop \fi - {#1}{#2}\XINT@pow@posprod - \xint@UNDEF - \xint@undef\xint@undef\xint@undef\xint@undef - \xint@undef\xint@undef\xint@undef\xint@undef - \xint@UNDEF + {#1}{#2}\XINT_pow_posprod + \xint_relax + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_relax }% -\def\XINT@pow@BtooBig #1\xint@UNDEF #2\xint@UNDEF +\def\XINT_pow_BtooBig #1\xint_relax #2\xint_relax {\xintError:ExponentTooBig\space 0}% -\def\XINT@pow@loop #1#2% +\def\XINT_pow_loop #1#2% {% \ifnum #1 = 1 - \expandafter\XINT@pow@loop@end + \expandafter\XINT_pow_loop_end \else - \xint@afterfi{\expandafter\XINT@pow@loop@a + \xint_afterfi{\expandafter\XINT_pow_loop_a \expandafter{\the\numexpr 2*(#1/2)-#1\expandafter }% b mod 2 \expandafter{\the\numexpr #1-#1/2\expandafter }% [b/2] \expandafter{\romannumeral0\xintisqr{#2}}}% \fi {{#2}}% }% -\def\XINT@pow@loop@end {\romannumeral0\XINT@rord@main {}\relax }% -\def\XINT@pow@loop@a #1% +\def\XINT_pow_loop_end {\romannumeral0\XINT_rord_main {}\relax }% +\def\XINT_pow_loop_a #1% {% \ifnum #1 = 1 - \expandafter\XINT@pow@loop + \expandafter\XINT_pow_loop \else - \expandafter\XINT@pow@loop@throwaway + \expandafter\XINT_pow_loop_throwaway \fi }% -\def\XINT@pow@loop@throwaway #1#2#3% +\def\XINT_pow_loop_throwaway #1#2#3% {% - \XINT@pow@loop {#1}{#2}% + \XINT_pow_loop {#1}{#2}% }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% Routine de produit servant pour le calcul des puissances. Chaque nouveau +% \lverb|& +% Routine de produit servant pour le calcul des puissances. Chaque +% nouveau % terme est plus grand que ce qui a déjà été calculé. Par conséquent on a % intérêt à le conserver en second dans la routine de multiplication, donc le % précédent calcul a intérêt à avoir été donné sur 4n, à l'envers. Il faut % donc modifier la multiplication pour qu'elle fasse cela. Ce qui oblige à -% utiliser une version spéciale de l'addition également. -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% utiliser une version spéciale de l'addition également.| % \begin{macrocode} -\def\XINT@pow@posprod #1% +\def\XINT_pow_posprod #1% {% - \XINT@pow@pprod@checkifempty #1\Z + \XINT_pow_pprod_checkifempty #1\Z }% -\def\XINT@pow@pprod@checkifempty #1% +\def\XINT_pow_pprod_checkifempty #1% {% - \xint@relax #1\XINT@pow@pprod@emptyproduct\relax - \XINT@pow@pprod@RQfirst #1% + \xint_gob_til_relax #1\XINT_pow_pprod_emptyproduct\relax + \XINT_pow_pprod_RQfirst #1% }% -\def\XINT@pow@pprod@emptyproduct #1\Z { 1}% -\def\XINT@pow@pprod@RQfirst #1\Z +\def\XINT_pow_pprod_emptyproduct #1\Z { 1}% +\def\XINT_pow_pprod_RQfirst #1\Z {% - \expandafter\XINT@pow@pprod@getnext\expandafter - {\romannumeral0\XINT@RQ {}#1\R\R\R\R\R\R\R\R\Z}% + \expandafter\XINT_pow_pprod_getnext\expandafter + {\romannumeral0\XINT_RQ {}#1\R\R\R\R\R\R\R\R\Z}% }% -\def\XINT@pow@pprod@getnext #1#2% +\def\XINT_pow_pprod_getnext #1#2% {% - \XINT@pow@pprod@checkiffinished #2\Z {#1}% + \XINT_pow_pprod_checkiffinished #2\Z {#1}% }% -\def\XINT@pow@pprod@checkiffinished #1% +\def\XINT_pow_pprod_checkiffinished #1% {% - \xint@relax #1\XINT@pow@pprod@end\relax - \XINT@pow@pprod@compute #1% + \xint_gob_til_relax #1\XINT_pow_pprod_end\relax + \XINT_pow_pprod_compute #1% }% -\def\XINT@pow@pprod@compute #1\Z #2% +\def\XINT_pow_pprod_compute #1\Z #2% {% - \expandafter\XINT@pow@pprod@getnext\expandafter - {\romannumeral0\XINT@mulr@enter #2\W\X\Y\Z #1\W\X\Y\Z}% + \expandafter\XINT_pow_pprod_getnext\expandafter + {\romannumeral0\XINT_mulr_enter #2\W\X\Y\Z #1\W\X\Y\Z}% }% -\def\XINT@pow@pprod@end\relax\XINT@pow@pprod@compute #1\Z #2% +\def\XINT_pow_pprod_end\relax\XINT_pow_pprod_compute #1\Z #2% {% - \expandafter\xint@cleanupzeros@andstop - \romannumeral0\XINT@rev {#2}% + \expandafter\xint_cleanupzeros_andstop + \romannumeral0\XINT_rev {#2}% }% % \end{macrocode} % \subsection{\csh{xintDivision}, \csh{xintQuo}, \csh{xintRem}} % \begin{macrocode} \def\xintiQuo {\romannumeral0\xintiquo }% \def\xintiRem {\romannumeral0\xintirem }% -\def\xintiquo {\expandafter\xint@firstoftwo@andstop +\def\xintiquo {\expandafter\xint_firstoftwo_andstop \romannumeral0\xintidivision }% -\def\xintirem {\expandafter\xint@secondoftwo@andstop +\def\xintirem {\expandafter\xint_secondoftwo_andstop \romannumeral0\xintidivision }% \let\xintQuo\xintiQuo \let\xintquo\xintiquo \let\xintRem\xintiRem \let\xintrem\xintirem % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% #1 = A, #2 = B. On calcule le quotient de A par B -% 1.03 adds the detection of 1 for B. -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|& +% #1 = A, #2 = B. On calcule le quotient de A par B.$\ +% 1.03 adds the detection of 1 for B.| % \begin{macrocode} \def\xintiDivision {\romannumeral0\xintidivision }% \def\xintidivision #1% {% - \expandafter\xint@division\expandafter {\romannumeral-`0#1}% + \expandafter\xint_division\expandafter {\romannumeral-`0#1}% }% \let\xintDivision\xintiDivision \let\xintdivision\xintidivision -\def\xint@division #1#2% +\def\xint_division #1#2% {% - \expandafter\XINT@div@fork \romannumeral-`0#2\Z #1\Z + \expandafter\XINT_div_fork \romannumeral-`0#2\Z #1\Z }% -\def\XINT@Division #1#2{\romannumeral0\XINT@div@fork #2\Z #1\Z }% +\def\XINT_Division #1#2{\romannumeral0\XINT_div_fork #2\Z #1\Z }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% #1#2 = 2e input = diviseur = B -% #3#4 = 1er input = divisé = A -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|& +% #1#2 = 2e input = diviseur = B. +% #3#4 = 1er input = divisé = A| % \begin{macrocode} -\def\XINT@div@fork #1#2\Z #3#4\Z +\def\XINT_div_fork #1#2\Z #3#4\Z {% - \xint@UDzerofork - #1\dummy \XINT@div@BisZero - #3\dummy \XINT@div@AisZero + \xint_UDzerofork + #1\dummy \XINT_div_BisZero + #3\dummy \XINT_div_AisZero 0\dummy - {\xint@UDsignfork - #1\dummy \XINT@div@BisNegative % B < 0 - #3\dummy \XINT@div@AisNegative % A < 0, B > 0 - -\dummy \XINT@div@plusplus % B > 0, A > 0 - \xint@UDkrof }% - \xint@UDkrof + {\xint_UDsignfork + #1\dummy \XINT_div_BisNegative % B < 0 + #3\dummy \XINT_div_AisNegative % A < 0, B > 0 + -\dummy \XINT_div_plusplus % B > 0, A > 0 + \krof }% + \krof {#2}{#4}#1#3% #1#2=B, #3#4=A }% -\def\XINT@div@BisZero #1#2#3#4{\xintError:DivisionByZero\space {0}{0}}% -\def\XINT@div@AisZero #1#2#3#4{ {0}{0}}% +\def\XINT_div_BisZero #1#2#3#4{\xintError:DivisionByZero\space {0}{0}}% +\def\XINT_div_AisZero #1#2#3#4{ {0}{0}}% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% jusqu'à présent c'est facile. -% minusplus signifie B < 0, A > 0 -% plusminus signifie B > 0, A < 0 -% Ici #3#1 correspond au diviseur B et #4#2 au divisé A +% \lverb|& +% jusqu'à présent c'est facile.$\ +% minusplus signifie B < 0, A > 0$\ +% plusminus signifie B > 0, A < 0$\ +% Ici #3#1 correspond au diviseur B et #4#2 au divisé A. +% % Cases with B<0 or especially A<0 are treated sub-optimally in terms of % post-processing, things get reversed which could have been produced directly -% in the wanted order, but A,B>0 is given priority for optimization. -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% in the wanted order, but A,B>0 is given priority for optimization. | % \begin{macrocode} -\def\XINT@div@plusplus #1#2#3#4% +\def\XINT_div_plusplus #1#2#3#4% {% - \XINT@div@prepare {#3#1}{#4#2}% + \XINT_div_prepare {#3#1}{#4#2}% }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% B = #3#1 < 0, A non nul positif ou négatif -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|& +% B = #3#1 < 0, A non nul positif ou négatif| % \begin{macrocode} -\def\XINT@div@BisNegative #1#2#3#4% +\def\XINT_div_BisNegative #1#2#3#4% {% - \expandafter\XINT@div@BisNegative@post - \romannumeral0\XINT@div@fork #1\Z #4#2\Z + \expandafter\XINT_div_BisNegative_post + \romannumeral0\XINT_div_fork #1\Z #4#2\Z }% -\def\XINT@div@BisNegative@post #1% +\def\XINT_div_BisNegative_post #1% {% - \expandafter\space\expandafter {\romannumeral0\XINT@opp #1}% + \expandafter\space\expandafter {\romannumeral0\XINT_opp #1}% }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% B = #3#1 > 0, A =-#2< 0 -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|& +% B = #3#1 > 0, A =-#2< 0| % \begin{macrocode} -\def\XINT@div@AisNegative #1#2#3#4% +\def\XINT_div_AisNegative #1#2#3#4% {% - \expandafter\XINT@div@AisNegative@post - \romannumeral0\XINT@div@prepare {#3#1}{#2}{#3#1}% + \expandafter\XINT_div_AisNegative_post + \romannumeral0\XINT_div_prepare {#3#1}{#2}{#3#1}% }% -\def\XINT@div@AisNegative@post #1#2% +\def\XINT_div_AisNegative_post #1#2% {% - \ifcase\XINT@Sgn {#2} - \expandafter \XINT@div@AisNegative@zerorem + \ifcase\XINT_Sgn {#2} + \expandafter \XINT_div_AisNegative_zerorem \or - \expandafter \XINT@div@AisNegative@posrem + \expandafter \XINT_div_AisNegative_posrem \fi {#1}{#2}% }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% en #3 on a une copie de B (à l'endroit) -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|& +% en #3 on a une copie de B (à l'endroit)| % \begin{macrocode} -\def\XINT@div@AisNegative@zerorem #1#2#3% +\def\XINT_div_AisNegative_zerorem #1#2#3% {% - \expandafter\space\expandafter {\romannumeral0\XINT@opp #1}{0}% + \expandafter\space\expandafter {\romannumeral0\XINT_opp #1}{0}% }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% #1 = quotient, #2 = reste, #3 = diviseur initial (à l'endroit) +% \lverb!#1 = quotient, #2 = reste, #3 = diviseur initial (à l'endroit) % remplace Reste par B - Reste, après avoir remplacé Q par -(Q+1) -% de sorte que la formule a = qb + r, 0<= r < |b| est valable -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% de sorte que la formule a = qb + r, 0<= r < |b| est valable! % \begin{macrocode} -\def\XINT@div@AisNegative@posrem #1% +\def\XINT_div_AisNegative_posrem #1% {% - \expandafter \XINT@div@AisNegative@posrem@b \expandafter + \expandafter \XINT_div_AisNegative_posrem_b \expandafter {\romannumeral0\xintiopp{\xintiAdd {#1}{1}}}% }% -\def\XINT@div@AisNegative@posrem@b #1#2#3% +\def\XINT_div_AisNegative_posrem_b #1#2#3% {% - \expandafter \xint@exchangetwo@keepbraces@andstop \expandafter - {\romannumeral0\XINT@sub {#3}{#2}}{#1}% + \expandafter \xint_exchangetwo_keepbraces_andstop \expandafter + {\romannumeral0\XINT_sub {#3}{#2}}{#1}% }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} +% \lverb|& % par la suite A et B sont > 0. % #1 = B. Pour le moment à l'endroit. -% Calcul du plus petit K = 4n >= longueur de B -% 1.03 adds the interception of B=1 -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% Calcul du plus petit K = 4n >= longueur de B$\ +% 1.03 adds the interception of B=1| % \begin{macrocode} -\def\XINT@div@prepare #1% +\def\XINT_div_prepare #1% {% - \expandafter \XINT@div@prepareB@aa \expandafter - {\romannumeral0\XINT@length {#1}}{#1}% B > 0 ici + \expandafter \XINT_div_prepareB_aa \expandafter + {\romannumeral0\XINT_length {#1}}{#1}% B > 0 ici }% -\def\XINT@div@prepareB@aa #1% +\def\XINT_div_prepareB_aa #1% {% \ifnum #1=1 - \expandafter\XINT@div@prepareB@ab + \expandafter\XINT_div_prepareB_ab \else - \expandafter\XINT@div@prepareB@a + \expandafter\XINT_div_prepareB_a \fi {#1}% }% -\def\XINT@div@prepareB@ab #1#2% +\def\XINT_div_prepareB_ab #1#2% {% \ifnum #2=1 - \expandafter\XINT@div@prepareB@BisOne + \expandafter\XINT_div_prepareB_BisOne \else - \expandafter\XINT@div@prepareB@e + \expandafter\XINT_div_prepareB_e \fi {000}{3}{4}{#2}% }% -\def\XINT@div@prepareB@BisOne #1#2#3#4#5{ {#5}{0}}% -\def\XINT@div@prepareB@a #1% +\def\XINT_div_prepareB_BisOne #1#2#3#4#5{ {#5}{0}}% +\def\XINT_div_prepareB_a #1% {% - \expandafter\XINT@div@prepareB@c\expandafter{\the\numexpr 4*((#1+1)/4)}{#1}% + \expandafter\XINT_div_prepareB_c\expandafter{\the\numexpr 4*((#1+1)/4)}{#1}% }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% #1 = K -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|& +% #1 = K| % \begin{macrocode} -\def\XINT@div@prepareB@c #1#2% +\def\XINT_div_prepareB_c #1#2% {% \ifcase \numexpr #1-#2\relax - \expandafter\XINT@div@prepareB@d + \expandafter\XINT_div_prepareB_d \or - \expandafter\XINT@div@prepareB@di + \expandafter\XINT_div_prepareB_di \or - \expandafter\XINT@div@prepareB@dii + \expandafter\XINT_div_prepareB_dii \or - \expandafter\XINT@div@prepareB@diii + \expandafter\XINT_div_prepareB_diii \fi {#1}% }% -\def\XINT@div@prepareB@d {\XINT@div@prepareB@e {}{0}}% -\def\XINT@div@prepareB@di {\XINT@div@prepareB@e {0}{1}}% -\def\XINT@div@prepareB@dii {\XINT@div@prepareB@e {00}{2}}% -\def\XINT@div@prepareB@diii {\XINT@div@prepareB@e {000}{3}}% +\def\XINT_div_prepareB_d {\XINT_div_prepareB_e {}{0}}% +\def\XINT_div_prepareB_di {\XINT_div_prepareB_e {0}{1}}% +\def\XINT_div_prepareB_dii {\XINT_div_prepareB_e {00}{2}}% +\def\XINT_div_prepareB_diii {\XINT_div_prepareB_e {000}{3}}% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% #1 = zéros à rajouter à B, #2=c, #3=K, #4 = B -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|& +% #1 = zéros à rajouter à B, #2=c, #3=K, #4 = B| % \begin{macrocode} -\def\XINT@div@prepareB@e #1#2#3#4% +\def\XINT_div_prepareB_e #1#2#3#4% {% - \XINT@div@prepareB@f #4#1\Z {#3}{#2}{#1}% + \XINT_div_prepareB_f #4#1\Z {#3}{#2}{#1}% }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} +% \lverb|& % x = #1#2#3#4 = 4 premiers chiffres de B. #1 est non nul. -% Ensuite on renverse B pour calculs plus rapides par la suite. -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% Ensuite on renverse B pour calculs plus rapides par la suite.| % \begin{macrocode} -\def\XINT@div@prepareB@f #1#2#3#4#5\Z +\def\XINT_div_prepareB_f #1#2#3#4#5\Z {% - \expandafter \XINT@div@prepareB@g \expandafter - {\romannumeral0\XINT@rev {#1#2#3#4#5}}{#1#2#3#4}% + \expandafter \XINT_div_prepareB_g \expandafter + {\romannumeral0\XINT_rev {#1#2#3#4#5}}{#1#2#3#4}% }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} +% \lverb|& % #3= K, #4 = c, #5= {} ou {0} ou {00} ou {000}, #6 = A initial % #1 = B préparé et renversé, #2 = x = quatre premiers chiffres -% On multiplie aussi A par 10^c. -% B, x, K, c, {} ou {0} ou {00} ou {000}, A initial -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% On multiplie aussi A par 10^c.$\ +% B, x, K, c, {} ou {0} ou {00} ou {000}, A initial| % \begin{macrocode} -\def\XINT@div@prepareB@g #1#2#3#4#5#6% +\def\XINT_div_prepareB_g #1#2#3#4#5#6% {% - \XINT@div@prepareA@a {#6#5}{#2}{#3}{#1}{#4}% + \XINT_div_prepareA_a {#6#5}{#2}{#3}{#1}{#4}% }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% A, x, K, B, c, -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|& +% A, x, K, B, c, | % \begin{macrocode} -\def\XINT@div@prepareA@a #1% +\def\XINT_div_prepareA_a #1% {% - \expandafter \XINT@div@prepareA@b \expandafter - {\romannumeral0\XINT@length {#1}}{#1}% A >0 ici + \expandafter \XINT_div_prepareA_b \expandafter + {\romannumeral0\XINT_length {#1}}{#1}% A >0 ici }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% L0, A, x, K, B, ... -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|& +% L0, A, x, K, B, ...| % \begin{macrocode} -\def\XINT@div@prepareA@b #1% +\def\XINT_div_prepareA_b #1% {% - \expandafter\XINT@div@prepareA@c\expandafter{\the\numexpr 4*((#1+1)/4)}{#1}% + \expandafter\XINT_div_prepareA_c\expandafter{\the\numexpr 4*((#1+1)/4)}{#1}% }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% L, L0, A, x, K, B,... -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|& +% L, L0, A, x, K, B,...| % \begin{macrocode} -\def\XINT@div@prepareA@c #1#2% +\def\XINT_div_prepareA_c #1#2% {% \ifcase \numexpr #1-#2\relax - \expandafter\XINT@div@prepareA@d + \expandafter\XINT_div_prepareA_d \or - \expandafter\XINT@div@prepareA@di + \expandafter\XINT_div_prepareA_di \or - \expandafter\XINT@div@prepareA@dii + \expandafter\XINT_div_prepareA_dii \or - \expandafter\XINT@div@prepareA@diii + \expandafter\XINT_div_prepareA_diii \fi {#1}% }% -\def\XINT@div@prepareA@d {\XINT@div@prepareA@e {}}% -\def\XINT@div@prepareA@di {\XINT@div@prepareA@e {0}}% -\def\XINT@div@prepareA@dii {\XINT@div@prepareA@e {00}}% -\def\XINT@div@prepareA@diii {\XINT@div@prepareA@e {000}}% +\def\XINT_div_prepareA_d {\XINT_div_prepareA_e {}}% +\def\XINT_div_prepareA_di {\XINT_div_prepareA_e {0}}% +\def\XINT_div_prepareA_dii {\XINT_div_prepareA_e {00}}% +\def\XINT_div_prepareA_diii {\XINT_div_prepareA_e {000}}% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% #1#3 = A préparé, #2 = longueur de ce A préparé, -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|& +% #1#3 = A préparé, #2 = longueur de ce A préparé, | % \begin{macrocode} -\def\XINT@div@prepareA@e #1#2#3% +\def\XINT_div_prepareA_e #1#2#3% {% - \XINT@div@startswitch {#1#3}{#2}% + \XINT_div_startswitch {#1#3}{#2}% }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% A, L, x, K, B, c -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|& +% A, L, x, K, B, c| % \begin{macrocode} -\def\XINT@div@startswitch #1#2#3#4% +\def\XINT_div_startswitch #1#2#3#4% {% \ifnum #2 > #4 - \expandafter\XINT@div@body@a + \expandafter\XINT_div_body_a \else \ifnum #2 = #4 - \expandafter\expandafter\expandafter\XINT@div@final@a + \expandafter\expandafter\expandafter\XINT_div_final_a \else - \expandafter\expandafter\expandafter\XINT@div@finished@a + \expandafter\expandafter\expandafter\XINT_div_finished_a \fi\fi {#1}{#4}{#3}{0000}{#2}% }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% A, K, x, Q, L, B, c -% ---- "Finished" -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|& +% ---- "Finished": A, K, x, Q, L, B, c| % \begin{macrocode} -\def\XINT@div@finished@a #1#2#3% +\def\XINT_div_finished_a #1#2#3% {% - \expandafter\XINT@div@finished@b\expandafter {\romannumeral0\XINT@cuz {#1}}% + \expandafter\XINT_div_finished_b\expandafter {\romannumeral0\XINT_cuz {#1}}% }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} +% \lverb|& % A, Q, L, B, c -% no leading zeros in A at this stage -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% no leading zeros in A at this stage| % \begin{macrocode} -\def\XINT@div@finished@b #1#2#3#4#5% +\def\XINT_div_finished_b #1#2#3#4#5% {% - \ifcase \XINT@Sgn {#1} - \xint@afterfi {\XINT@div@finished@c {0}}% + \ifcase \XINT_Sgn {#1} + \xint_afterfi {\XINT_div_finished_c {0}}% \or - \xint@afterfi {\expandafter\XINT@div@finished@c\expandafter - {\romannumeral0\XINT@dsh@checksignx #5\Z {#1}}% + \xint_afterfi {\expandafter\XINT_div_finished_c\expandafter + {\romannumeral0\XINT_dsh_checksignx #5\Z {#1}}% }% \fi {#2}% }% -\def\XINT@div@finished@c #1#2% +\def\XINT_div_finished_c #1#2% {% - \expandafter\space\expandafter {\romannumeral0\XINT@rev@andcuz {#2}}{#1}% + \expandafter\space\expandafter {\romannumeral0\XINT_rev_andcuz {#2}}{#1}% }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% ---- "Final" -% A, K, x, Q, L, B, c -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|& +% ---- "Final": A, K, x, Q, L, B, c| % \begin{macrocode} -\def\XINT@div@final@a #1% +\def\XINT_div_final_a #1% {% - \XINT@div@final@b #1\Z + \XINT_div_final_b #1\Z }% -\def\XINT@div@final@b #1#2#3#4#5\Z +\def\XINT_div_final_b #1#2#3#4#5\Z {% - \xint@quatrezeros #1#2#3#4\xint@div@final@c0000% - \XINT@div@final@c {#1#2#3#4}{#1#2#3#4#5}% + \xint_gob_til_zeros_iv #1#2#3#4\xint_div_final_c0000% + \XINT_div_final_c {#1#2#3#4}{#1#2#3#4#5}% }% -\def\xint@div@final@c0000\XINT@div@final@c #1{\XINT@div@finished@a }% +\def\xint_div_final_c0000\XINT_div_final_c #1{\XINT_div_finished_a }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} +% \lverb|& % a, A, K, x, Q, L, B ,c % 1.01: code ré-écrit pour optimisations diverses. -% 1.04: again, code rewritten for tiny speed increase (hopefully). -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% 1.04: again, code rewritten for tiny speed increase (hopefully).| % \begin{macrocode} -\def\XINT@div@final@c #1#2#3#4% +\def\XINT_div_final_c #1#2#3#4% {% - \expandafter \XINT@div@final@da \expandafter + \expandafter \XINT_div_final_da \expandafter {\the\numexpr #1-(#1/#4)*#4\expandafter }\expandafter {\the\numexpr #1/#4\expandafter }\expandafter - {\romannumeral0\xint@cleanupzeros@andstop #2}% + {\romannumeral0\xint_cleanupzeros_andstop #2}% }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% r, q, A sans leading zéros, Q, L, B à l'envers sur 4n, c -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|& +% r, q, A sans leading zéros, Q, L, B à l'envers sur 4n, c| % \begin{macrocode} -\def\XINT@div@final@da #1% +\def\XINT_div_final_da #1% {% \ifnum #1>9 - \expandafter\XINT@div@final@dP + \expandafter\XINT_div_final_dP \else - \xint@afterfi + \xint_afterfi {\ifnum #1<0 - \expandafter\XINT@div@final@dN + \expandafter\XINT_div_final_dN \else - \expandafter\XINT@div@final@db + \expandafter\XINT_div_final_db \fi }% \fi }% -\def\XINT@div@final@dN #1% +\def\XINT_div_final_dN #1% {% - \expandafter\XINT@div@final@dP\the\numexpr #1-1\relax + \expandafter\XINT_div_final_dP\the\numexpr #1-1\relax }% -\def\XINT@div@final@dP #1#2#3#4#5% q,A,Q,L,B (puis c) +\def\XINT_div_final_dP #1#2#3#4#5% q,A,Q,L,B (puis c) {% - \expandafter \XINT@div@final@f \expandafter + \expandafter \XINT_div_final_f \expandafter {\romannumeral0\xintisub {#2}% - {\romannumeral0\XINT@mul@M {#1}#5\Z\Z\Z\Z }}% - {\romannumeral0\XINT@add@A 0{}#1000\W\X\Y\Z #3\W\X\Y\Z }% + {\romannumeral0\XINT_mul_M {#1}#5\Z\Z\Z\Z }}% + {\romannumeral0\XINT_add_A 0{}#1000\W\X\Y\Z #3\W\X\Y\Z }% }% -\def\XINT@div@final@db #1#2#3#4#5% q,A,Q,L,B (puis c) +\def\XINT_div_final_db #1#2#3#4#5% q,A,Q,L,B (puis c) {% - \expandafter\XINT@div@final@dc\expandafter + \expandafter\XINT_div_final_dc\expandafter {\romannumeral0\xintisub {#2}% - {\romannumeral0\XINT@mul@M {#1}#5\Z\Z\Z\Z }}% + {\romannumeral0\XINT_mul_M {#1}#5\Z\Z\Z\Z }}% {#1}{#2}{#3}{#4}{#5}% }% -\def\XINT@div@final@dc #1#2% +\def\XINT_div_final_dc #1#2% {% - \ifnum\XINT@Sgn{#1}<0 - \xint@afterfi {\expandafter\XINT@div@final@dP\the\numexpr #2-1\relax}% - \else \xint@afterfi {\XINT@div@final@e {#1}#2}% + \ifnum\XINT_Sgn{#1}<0 + \xint_afterfi {\expandafter\XINT_div_final_dP\the\numexpr #2-1\relax}% + \else \xint_afterfi {\XINT_div_final_e {#1}#2}% \fi }% -\def\XINT@div@final@e #1#2#3#4#5#6% A final, q, trash, Q, L, B +\def\XINT_div_final_e #1#2#3#4#5#6% A final, q, trash, Q, L, B {% - \XINT@div@final@f {#1}% - {\romannumeral0\XINT@add@A 0{}#2000\W\X\Y\Z #4\W\X\Y\Z }% + \XINT_div_final_f {#1}% + {\romannumeral0\XINT_add_A 0{}#2000\W\X\Y\Z #4\W\X\Y\Z }% }% -\def\XINT@div@final@f #1#2#3% R,Q \`a d\'evelopper,c +\def\XINT_div_final_f #1#2#3% R,Q \`a d\'evelopper,c {% - \ifcase \XINT@Sgn {#1} - \xint@afterfi {\XINT@div@final@end {0}}% + \ifcase \XINT_Sgn {#1} + \xint_afterfi {\XINT_div_final_end {0}}% \or - \xint@afterfi {\expandafter\XINT@div@final@end\expandafter - {\romannumeral0\XINT@dsh@checksignx #3\Z {#1}}% + \xint_afterfi {\expandafter\XINT_div_final_end\expandafter + {\romannumeral0\XINT_dsh_checksignx #3\Z {#1}}% }% \fi {#2}% }% -\def\XINT@div@final@end #1#2% +\def\XINT_div_final_end #1#2% {% \expandafter\space\expandafter {#2}{#1}% }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% Boucle Principale (on reviendra en div@body@b pas div@body@a) -% A, K, x, Q, L, B, c -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|& +% Boucle Principale (on reviendra en div_body_b pas div_body_a)$\ +% A, K, x, Q, L, B, c| % \begin{macrocode} -\def\XINT@div@body@a #1% +\def\XINT_div_body_a #1% {% - \XINT@div@body@b #1\Z {#1}% + \XINT_div_body_b #1\Z {#1}% }% -\def\XINT@div@body@b #1#2#3#4#5#6#7#8#9\Z +\def\XINT_div_body_b #1#2#3#4#5#6#7#8#9\Z {% - \XINT@div@body@c {#1#2#3#4#5#6#7#8}% + \XINT_div_body_c {#1#2#3#4#5#6#7#8}% }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% a, A, K, x, Q, L, B, c -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|& +% a, A, K, x, Q, L, B, c| % \begin{macrocode} -\def\XINT@div@body@c #1#2#3% +\def\XINT_div_body_c #1#2#3% {% - \XINT@div@body@d {#3}{}#2\Z {#1}{#3}% + \XINT_div_body_d {#3}{}#2\Z {#1}{#3}% }% -\def\XINT@div@body@d #1#2#3#4#5#6% +\def\XINT_div_body_d #1#2#3#4#5#6% {% \ifnum #1 > 0 - \expandafter\XINT@div@body@d + \expandafter\XINT_div_body_d \expandafter{\the\numexpr #1-4\expandafter }% \else - \expandafter\XINT@div@body@e + \expandafter\XINT_div_body_e \fi {#6#5#4#3#2}% }% -\def\XINT@div@body@e #1#2\Z #3% +\def\XINT_div_body_e #1#2\Z #3% {% - \XINT@div@body@f {#3}{#1}{#2}% + \XINT_div_body_f {#3}{#1}{#2}% }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% a, alpha (à l'envers), alpha' (à l'endroit), K, x, Q, L, B (à l'envers), c -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|& +% a, alpha (à l'envers), alpha' (à l'endroit), K, x, Q, L, B (à l'envers), c| % \begin{macrocode} -\def\XINT@div@body@f #1#2#3#4#5#6#7#8% +\def\XINT_div_body_f #1#2#3#4#5#6#7#8% {% - \expandafter\XINT@div@body@gg + \expandafter\XINT_div_body_gg \the\numexpr (#1+(#5+1)/2)/(#5+1)+99999\relax {#8}{#2}{#8}{#4}{#5}{#3}{#6}{#7}{#8}% }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% q1 sur six chiffres (il en a 5 au max), B, alpha, B, K, x, alpha', Q, L, B, c -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|& +% q1 sur six chiffres (il en a 5 au max), B, alpha, B, K, x, alpha', Q, L, B, c| % \begin{macrocode} -\def\XINT@div@body@gg #1#2#3#4#5#6% +\def\XINT_div_body_gg #1#2#3#4#5#6% {% - \xint@UDzerofork - #2\dummy \XINT@div@body@gk - 0\dummy {\XINT@div@body@ggk #2}% - \xint@UDkrof + \xint_UDzerofork + #2\dummy \XINT_div_body_gk + 0\dummy {\XINT_div_body_ggk #2}% + \krof {#3#4#5#6}% }% -\def\XINT@div@body@gk #1#2#3% +\def\XINT_div_body_gk #1#2#3% {% - \expandafter\XINT@div@body@h - \romannumeral0\XINT@div@sub@xpxp - {\romannumeral0\XINT@mul@Mr {#1}#2\Z\Z\Z\Z }{#3}\Z {#1}% + \expandafter\XINT_div_body_h + \romannumeral0\XINT_div_sub_xpxp + {\romannumeral0\XINT_mul_Mr {#1}#2\Z\Z\Z\Z }{#3}\Z {#1}% }% -\def\XINT@div@body@ggk #1#2#3% +\def\XINT_div_body_ggk #1#2#3% {% - \expandafter \XINT@div@body@gggk \expandafter - {\romannumeral0\XINT@mul@Mr {#1}0000#3\Z\Z\Z\Z }% - {\romannumeral0\XINT@mul@Mr {#2}#3\Z\Z\Z\Z }% + \expandafter \XINT_div_body_gggk \expandafter + {\romannumeral0\XINT_mul_Mr {#1}0000#3\Z\Z\Z\Z }% + {\romannumeral0\XINT_mul_Mr {#2}#3\Z\Z\Z\Z }% {#1#2}% }% -\def\XINT@div@body@gggk #1#2#3#4% +\def\XINT_div_body_gggk #1#2#3#4% {% - \expandafter\XINT@div@body@h - \romannumeral0\XINT@div@sub@xpxp - {\romannumeral0\expandafter\XINT@mul@Ar + \expandafter\XINT_div_body_h + \romannumeral0\XINT_div_sub_xpxp + {\romannumeral0\expandafter\XINT_mul_Ar \expandafter0\expandafter{\expandafter}#2\W\X\Y\Z #1\W\X\Y\Z }% {#4}\Z {#3}% }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% alpha1 = alpha-q1 B, \Z, q1, B, K, x, alpha', Q, L, B, c -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|& +% alpha1 = alpha-q1 B, \Z, q1, B, K, x, alpha', Q, L, B, c| % \begin{macrocode} -\def\XINT@div@body@h #1#2#3#4#5#6#7#8#9\Z +\def\XINT_div_body_h #1#2#3#4#5#6#7#8#9\Z {% \ifnum #1#2#3#4>0 - \xint@afterfi{\XINT@div@body@i {#1#2#3#4#5#6#7#8}}% + \xint_afterfi{\XINT_div_body_i {#1#2#3#4#5#6#7#8}}% \else - \expandafter\XINT@div@body@k + \expandafter\XINT_div_body_k \fi {#1#2#3#4#5#6#7#8#9}% }% -\def\XINT@div@body@k #1#2#3% +\def\XINT_div_body_k #1#2#3% {% - \XINT@div@body@l {#1}{#2}% + \XINT_div_body_l {#1}{#2}% }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% a1, alpha1 (à l'endroit), q1, B, K, x, alpha', Q, L, B, c -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|& +% a1, alpha1 (à l'endroit), q1, B, K, x, alpha', Q, L, B, c| % \begin{macrocode} -\def\XINT@div@body@i #1#2#3#4#5#6% +\def\XINT_div_body_i #1#2#3#4#5#6% {% - \expandafter\XINT@div@body@j + \expandafter\XINT_div_body_j \expandafter{\the\numexpr (#1+(#6+1)/2)/(#6+1)-1}% {#2}{#3}{#4}{#5}{#6}% }% -\def\XINT@div@body@j #1#2#3#4% +\def\XINT_div_body_j #1#2#3#4% {% - \expandafter \XINT@div@body@l \expandafter - {\romannumeral0\XINT@div@sub@xpxp - {\romannumeral0\XINT@mul@Mr {#1}#4\Z\Z\Z\Z }{\XINT@Rev{#2}}}% + \expandafter \XINT_div_body_l \expandafter + {\romannumeral0\XINT_div_sub_xpxp + {\romannumeral0\XINT_mul_Mr {#1}#4\Z\Z\Z\Z }{\XINT_Rev{#2}}}% {#3+#1}% }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% alpha2 (à l'endroit, ou alpha1), q1+q2 (ou q1), K, x, alpha', Q, L, B, c -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|& +% alpha2 (à l'endroit, ou alpha1), q1+q2 (ou q1), K, x, alpha', Q, L, B, c| % \begin{macrocode} -\def\XINT@div@body@l #1#2#3#4#5#6#7% +\def\XINT_div_body_l #1#2#3#4#5#6#7% {% - \expandafter\XINT@div@body@m + \expandafter\XINT_div_body_m \the\numexpr 100000000+#2\relax {#6}{#3}{#7}{#1#5}{#4}% }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% chiffres de q, Q, K, L, A'=nouveau A, x, B, c -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|& +% chiffres de q, Q, K, L, A'=nouveau A, x, B, c| % \begin{macrocode} -\def\XINT@div@body@m #1#2#3#4#5#6#7#8#9% +\def\XINT_div_body_m #1#2#3#4#5#6#7#8#9% {% \ifnum #2#3#4#5>0 - \xint@afterfi {\XINT@div@body@n {#9#8#7#6#5#4#3#2}}% + \xint_afterfi {\XINT_div_body_n {#9#8#7#6#5#4#3#2}}% \else - \xint@afterfi {\XINT@div@body@n {#9#8#7#6}}% + \xint_afterfi {\XINT_div_body_n {#9#8#7#6}}% \fi }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% q renversé, Q, K, L, A', x, B, c -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|& +% q renversé, Q, K, L, A', x, B, c| % \begin{macrocode} -\def\XINT@div@body@n #1#2% +\def\XINT_div_body_n #1#2% {% - \expandafter\XINT@div@body@o\expandafter - {\romannumeral0\XINT@addr@A 0{}#1\W\X\Y\Z #2\W\X\Y\Z }% + \expandafter\XINT_div_body_o\expandafter + {\romannumeral0\XINT_addr_A 0{}#1\W\X\Y\Z #2\W\X\Y\Z }% }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% q+Q, K, L, A', x, B, c -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|& +% q+Q, K, L, A', x, B, c| % \begin{macrocode} -\def\XINT@div@body@o #1#2#3#4% +\def\XINT_div_body_o #1#2#3#4% {% - \XINT@div@body@p {#3}{#2}{}#4\Z {#1}% + \XINT_div_body_p {#3}{#2}{}#4\Z {#1}% }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% L, K, {}, A'\Z, q+Q, x, B, c -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|& +% L, K, {}, A'\Z, q+Q, x, B, c | % \begin{macrocode} -\def\XINT@div@body@p #1#2#3#4#5#6#7% +\def\XINT_div_body_p #1#2#3#4#5#6#7% {% \ifnum #1 > #2 - \xint@afterfi + \xint_afterfi {\ifnum #4#5#6#7 > 0 - \expandafter\XINT@div@body@q + \expandafter\XINT_div_body_q \else - \expandafter\XINT@div@body@repeatp + \expandafter\XINT_div_body_repeatp \fi }% \else - \expandafter\XINT@div@gotofinal@a + \expandafter\XINT_div_gotofinal_a \fi {#1}{#2}{#3}#4#5#6#7% }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% L, K, zeros, A' avec moins de zéros\Z, q+Q, x, B, c -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|& +% L, K, zeros, A' avec moins de zéros\Z, q+Q, x, B, c| % \begin{macrocode} -\def\XINT@div@body@repeatp #1#2#3#4#5#6#7% +\def\XINT_div_body_repeatp #1#2#3#4#5#6#7% {% - \expandafter\XINT@div@body@p\expandafter{\the\numexpr #1-4}{#2}{0000#3}% + \expandafter\XINT_div_body_p\expandafter{\the\numexpr #1-4}{#2}{0000#3}% }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} +% \lverb|& % L -> L-4, zeros->zeros+0000, répéter jusqu'à ce que soit L=K -% soit on ne trouve plus 0000 -% nouveau L, K, zeros, nouveau A=#4, \Z, Q+q (à l'envers), x, B, c -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% soit on ne trouve plus 0000$\ +% nouveau L, K, zeros, nouveau A=#4, \Z, Q+q (à l'envers), x, B, c| % \begin{macrocode} -\def\XINT@div@body@q #1#2#3#4\Z #5#6% +\def\XINT_div_body_q #1#2#3#4\Z #5#6% {% - \XINT@div@body@b #4\Z {#4}{#2}{#6}{#3#5}{#1}% + \XINT_div_body_b #4\Z {#4}{#2}{#6}{#3#5}{#1}% }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% A, K, x, Q, L, B, c --> iterate -% ---- -% Boucle Principale achevée -% ATTENTION IL FAUT AJOUTER 4 ZEROS DE MOINS QUE CEUX -% QUI ONT ÉTÉ PRÉPARÉS DANS #3!! -% L, K (L=K), zeros, A\Z, Q, x, B, c -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|& +% A, K, x, Q, L, B, c --> iterate$\ +% Boucle Principale achevée. ATTENTION IL FAUT AJOUTER 4 ZEROS DE MOINS QUE CEUX +% QUI ONT ÉTÉ PRÉPARÉS DANS #3!!$\ +% L, K (L=K), zeros, A\Z, Q, x, B, c| % \begin{macrocode} -\def\XINT@div@gotofinal@a #1#2#3#4\Z % +\def\XINT_div_gotofinal_a #1#2#3#4\Z % {% - \XINT@div@gotofinal@b #3\Z {#4}{#1}% + \XINT_div_gotofinal_b #3\Z {#4}{#1}% }% -\def\XINT@div@gotofinal@b 0000#1\Z #2#3#4#5% +\def\XINT_div_gotofinal_b 0000#1\Z #2#3#4#5% {% - \XINT@div@final@a {#2}{#3}{#5}{#1#4}{#3}% + \XINT_div_final_a {#2}{#3}{#5}{#1#4}{#3}% }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% La soustraction spéciale. +% \lverb|& +% La soustraction spéciale. +% % Elle fait l'expansion (une fois pour le premier, deux fois pour le second) de % ses arguments. Ceux-ci doivent être à l'envers sur 4n. De plus on sait a % priori que le second est > le premier. Et le résultat de la différence est % renvoyé **avec la même longueur que le second** (donc avec des leading zéros -% éventuels), et *à l'endroit*. -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% éventuels), et *à l'endroit*.| % \begin{macrocode} -\def\XINT@div@sub@xpxp #1% +\def\XINT_div_sub_xpxp #1% {% - \expandafter \XINT@div@sub@xpxp@ \expandafter{#1}% + \expandafter \XINT_div_sub_xpxp_ \expandafter{#1}% }% -\def\XINT@div@sub@xpxp@ #1#2% +\def\XINT_div_sub_xpxp_ #1#2% {% - \expandafter\expandafter\expandafter\XINT@div@sub@xpxp@@ + \expandafter\expandafter\expandafter\XINT_div_sub_xpxp__ #2\W\X\Y\Z #1\W\X\Y\Z }% -\def\XINT@div@sub@xpxp@@ +\def\XINT_div_sub_xpxp__ {% - \XINT@div@sub@A 1{}% + \XINT_div_sub_A 1{}% }% -\def\XINT@div@sub@A #1#2#3#4#5#6% +\def\XINT_div_sub_A #1#2#3#4#5#6% {% - \xint@w #3\xint@div@sub@az\W - \XINT@div@sub@B #1{#3#4#5#6}{#2}% + \xint_gob_til_w #3\xint_div_sub_az\W + \XINT_div_sub_B #1{#3#4#5#6}{#2}% }% -\def\XINT@div@sub@B #1#2#3#4\W\X\Y\Z #5#6#7#8% +\def\XINT_div_sub_B #1#2#3#4\W\X\Y\Z #5#6#7#8% {% - \xint@w #5\xint@div@sub@bz\W - \XINT@div@sub@onestep #1#2{#8#7#6#5}{#3}#4\W\X\Y\Z + \xint_gob_til_w #5\xint_div_sub_bz\W + \XINT_div_sub_onestep #1#2{#8#7#6#5}{#3}#4\W\X\Y\Z }% -\def\XINT@div@sub@onestep #1#2#3#4#5#6% +\def\XINT_div_sub_onestep #1#2#3#4#5#6% {% - \expandafter\XINT@div@sub@backtoA\the\numexpr 11#5#4#3#2-#6+#1-1\relax.% + \expandafter\XINT_div_sub_backtoA\the\numexpr 11#5#4#3#2-#6+#1-1\relax.% }% -\def\XINT@div@sub@backtoA #1#2#3.#4% +\def\XINT_div_sub_backtoA #1#2#3.#4% {% - \XINT@div@sub@A #2{#3#4}% + \XINT_div_sub_A #2{#3#4}% }% -\def\xint@div@sub@bz\W\XINT@div@sub@onestep #1#2#3#4#5#6#7% +\def\xint_div_sub_bz\W\XINT_div_sub_onestep #1#2#3#4#5#6#7% {% - \xint@UDzerofork - #1\dummy \XINT@div@sub@C % - 0\dummy \XINT@div@sub@D % pas de retenue - \xint@UDkrof + \xint_UDzerofork + #1\dummy \XINT_div_sub_C % + 0\dummy \XINT_div_sub_D % pas de retenue + \krof {#7}#2#3#4#5% }% -\def\XINT@div@sub@D #1#2\W\X\Y\Z +\def\XINT_div_sub_D #1#2\W\X\Y\Z {% \expandafter\space \romannumeral0% - \XINT@rord@main {}#2% - \xint@UNDEF - \xint@undef\xint@undef\xint@undef\xint@undef - \xint@undef\xint@undef\xint@undef\xint@undef - \xint@UNDEF + \XINT_rord_main {}#2% + \xint_relax + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_relax #1% }% -\def\XINT@div@sub@C #1#2#3#4#5% +\def\XINT_div_sub_C #1#2#3#4#5% {% - \xint@w #2\xint@div@sub@cz\W - \XINT@div@sub@AC@onestep {#5#4#3#2}{#1}% + \xint_gob_til_w #2\xint_div_sub_cz\W + \XINT_div_sub_AC_onestep {#5#4#3#2}{#1}% }% -\def\XINT@div@sub@AC@onestep #1% +\def\XINT_div_sub_AC_onestep #1% {% - \expandafter\XINT@div@sub@backtoC\the\numexpr 11#1-1\relax.% + \expandafter\XINT_div_sub_backtoC\the\numexpr 11#1-1\relax.% }% -\def\XINT@div@sub@backtoC #1#2#3.#4% +\def\XINT_div_sub_backtoC #1#2#3.#4% {% - \XINT@div@sub@AC@checkcarry #2{#3#4}% la retenue va \^etre examin\'ee + \XINT_div_sub_AC_checkcarry #2{#3#4}% la retenue va \^etre examin\'ee }% -\def\XINT@div@sub@AC@checkcarry #1% +\def\XINT_div_sub_AC_checkcarry #1% {% - \xint@one #1\xint@div@sub@AC@nocarry 1\XINT@div@sub@C + \xint_gob_til_one #1\xint_div_sub_AC_nocarry 1\XINT_div_sub_C }% -\def\xint@div@sub@AC@nocarry 1\XINT@div@sub@C #1#2\W\X\Y\Z +\def\xint_div_sub_AC_nocarry 1\XINT_div_sub_C #1#2\W\X\Y\Z {% \expandafter\space \romannumeral0% - \XINT@rord@main {}#2% - \xint@UNDEF - \xint@undef\xint@undef\xint@undef\xint@undef - \xint@undef\xint@undef\xint@undef\xint@undef - \xint@UNDEF + \XINT_rord_main {}#2% + \xint_relax + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_relax #1% }% -\def\xint@div@sub@cz\W\XINT@div@sub@AC@onestep #1#2{ #2}% -\def\xint@div@sub@az\W\XINT@div@sub@B #1#2#3#4\Z { #3}% +\def\xint_div_sub_cz\W\XINT_div_sub_AC_onestep #1#2{ #2}% +\def\xint_div_sub_az\W\XINT_div_sub_B #1#2#3#4\Z { #3}% % \end{macrocode} -% \begin{verbatim} -%----------------------------------------------------------------- -%----------------------------------------------------------------- +% \lverb|& +% & +% -----------------------------------------------------------------$\ +% -----------------------------------------------------------------$\ % DECIMAL OPERATIONS: FIRST DIGIT, LASTDIGIT, ODDNESS, % MULTIPLICATION BY TEN, QUOTIENT BY TEN, QUOTIENT OR -% MULTIPLICATION BY POWER OF TEN, SPLIT OPERATION. -% \end{verbatim} -% \vspace*{-2\baselineskip} +% MULTIPLICATION BY POWER OF TEN, SPLIT OPERATION.| % \subsection{\csh{xintFDg}} -% \begin{verbatim} -% FIRST DIGIT. Code simplified in 1.05. And prepared for redefinition by -% xintfrac to parse through \xintNum -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|& +% FIRST DIGIT. Code simplified in 1.05. +% And prepared for redefinition by xintfrac to parse through \xintNum| % \begin{macrocode} \def\xintiFDg {\romannumeral0\xintifdg }% \def\xintifdg #1% {% - \expandafter\XINT@fdg \romannumeral-`0#1\W\Z + \expandafter\XINT_fdg \romannumeral-`0#1\W\Z }% \let\xintFDg\xintiFDg \let\xintfdg\xintifdg -\def\XINT@FDg #1{\romannumeral0\XINT@fdg #1\W\Z }% -\def\XINT@fdg #1#2#3\Z +\def\XINT_FDg #1{\romannumeral0\XINT_fdg #1\W\Z }% +\def\XINT_fdg #1#2#3\Z {% - \xint@UDzerominusfork + \xint_UDzerominusfork #1-\dummy { 0}% zero 0#1\dummy { #2}% negative 0-\dummy { #1}% positive - \xint@UDkrof + \krof }% % \end{macrocode} % \subsection{\csh{xintLDg}} -% \begin{verbatim} -% LAST DIGIT. Simplified in 1.05. And prepared for extension by xintfrac -% to parse through \xintNum -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|& +% LAST DIGIT. Simplified in 1.05. And prepared for extension by xintfrac +% to parse through \xintNum| % \begin{macrocode} \def\xintiLDg {\romannumeral0\xintildg }% \def\xintildg #1% {% - \expandafter\XINT@ldg\expandafter {\romannumeral-`0#1}% + \expandafter\XINT_ldg\expandafter {\romannumeral-`0#1}% }% \let\xintLDg\xintiLDg \let\xintldg\xintildg -\def\XINT@LDg #1{\romannumeral0\XINT@ldg {#1}}% -\def\XINT@ldg #1% +\def\XINT_LDg #1{\romannumeral0\XINT_ldg {#1}}% +\def\XINT_ldg #1% {% - \expandafter\XINT@ldg@\romannumeral0\XINT@rev {#1}\Z + \expandafter\XINT_ldg_\romannumeral0\XINT_rev {#1}\Z }% -\def\XINT@ldg@ #1#2\Z{ #1}% +\def\XINT_ldg_ #1#2\Z{ #1}% % \end{macrocode} % \subsection{\csh{xintMON}} -% \begin{verbatim} -% MINUS ONE TO THE POWER N -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|& +% MINUS ONE TO THE POWER N| % \begin{macrocode} \def\xintiMON {\romannumeral0\xintimon }% \def\xintimon #1% {% \ifodd\xintiLDg {#1} - \xint@afterfi{ -1}% + \xint_afterfi{ -1}% \else - \xint@afterfi{ 1}% + \xint_afterfi{ 1}% \fi }% \def\xintiMMON {\romannumeral0\xintimmon }% \def\xintimmon #1% {% \ifodd\xintiLDg {#1} - \xint@afterfi{ 1}% + \xint_afterfi{ 1}% \else - \xint@afterfi{ -1}% + \xint_afterfi{ -1}% \fi }% \let\xintMON\xintiMON \let\xintmon\xintimon \let\xintMMON\xintiMMON \let\xintmmon\xintimmon % \end{macrocode} % \subsection{\csh{xintOdd}} -% \begin{verbatim} -% ODDNESS. 1.05 defines \xintiOdd, so \xintOdd can be modified by xintfrac -% to parse through \xintNum. -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|& +% ODDNESS. 1.05 defines \xintiOdd, so \xintOdd can be modified by +% xintfrac +% to parse through \xintNum.| % \begin{macrocode} \def\xintiOdd {\romannumeral0\xintiodd }% \def\xintiodd #1% {% \ifodd\xintiLDg{#1} - \xint@afterfi{ 1}% + \xint_afterfi{ 1}% \else - \xint@afterfi{ 0}% + \xint_afterfi{ 0}% \fi }% -\def\XINT@Odd #1% +\def\XINT_Odd #1% {\romannumeral0% - \ifodd\XINT@LDg{#1} - \xint@afterfi{ 1}% + \ifodd\XINT_LDg{#1} + \xint_afterfi{ 1}% \else - \xint@afterfi{ 0}% + \xint_afterfi{ 0}% \fi }% \let\xintOdd\xintiOdd \let\xintodd\xintiodd % \end{macrocode} % \subsection{\csh{xintDSL}} -% \begin{verbatim} -% DECIMAL SHIFT LEFT (=MULTIPLICATION PAR 10) -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|& +% DECIMAL SHIFT LEFT (=MULTIPLICATION PAR 10)| % \begin{macrocode} \def\xintDSL {\romannumeral0\xintdsl }% \def\xintdsl #1% {% - \expandafter\XINT@dsl \romannumeral-`0#1\Z + \expandafter\XINT_dsl \romannumeral-`0#1\Z }% -\def\XINT@DSL #1{\romannumeral0\XINT@dsl #1\Z }% -\def\XINT@dsl #1% +\def\XINT_DSL #1{\romannumeral0\XINT_dsl #1\Z }% +\def\XINT_dsl #1% {% - \xint@zero #1\xint@dsl@zero 0\XINT@dsl@ #1% + \xint_gob_til_zero #1\xint_dsl_zero 0\XINT_dsl_ #1% }% -\def\xint@dsl@zero 0\XINT@dsl@ 0#1\Z { 0}% -\def\XINT@dsl@ #1\Z { #10}% +\def\xint_dsl_zero 0\XINT_dsl_ 0#1\Z { 0}% +\def\XINT_dsl_ #1\Z { #10}% % \end{macrocode} % \subsection{\csh{xintDSR}} -% \begin{verbatim} -% DECIMAL SHIFT RIGHT (=DIVISION PAR 10) -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|& +% DECIMAL SHIFT RIGHT (=DIVISION PAR 10)| % \begin{macrocode} \def\xintDSR {\romannumeral0\xintdsr }% \def\xintdsr #1% {% - \expandafter\XINT@dsr@a\expandafter {\romannumeral-`0#1}\W\Z + \expandafter\XINT_dsr_a\expandafter {\romannumeral-`0#1}\W\Z }% -\def\XINT@DSR #1{\romannumeral0\XINT@dsr@a {#1}\W\Z }% -\def\XINT@dsr@a +\def\XINT_DSR #1{\romannumeral0\XINT_dsr_a {#1}\W\Z }% +\def\XINT_dsr_a {% - \expandafter\XINT@dsr@b\romannumeral0\XINT@rev + \expandafter\XINT_dsr_b\romannumeral0\XINT_rev }% -\def\XINT@dsr@b #1#2#3\Z +\def\XINT_dsr_b #1#2#3\Z {% - \xint@w #2\xint@dsr@onedigit\W - \xint@minus #2\xint@dsr@onedigit-% - \expandafter\XINT@dsr@removew - \romannumeral0\XINT@rev {#2#3}% + \xint_gob_til_w #2\xint_dsr_onedigit\W + \xint_minus #2\xint_dsr_onedigit-% + \expandafter\XINT_dsr_removew + \romannumeral0\XINT_rev {#2#3}% }% -\def\xint@dsr@onedigit #1\XINT@rev #2{ 0}% -\def\XINT@dsr@removew #1\W { }% +\def\xint_dsr_onedigit #1\XINT_rev #2{ 0}% +\def\XINT_dsr_removew #1\W { }% % \end{macrocode} % \subsection{\csh{xintDSH}, \csh{xintDSHr}} -% \begin{verbatim} -% DECIMAL SHIFTS -% \xintDSH {x}{A} -% si x <= 0, fait A -> A.10^(|x|). v1.03 corrige l'oversight pour A=0. -% si x > 0, et A >=0, fait A -> quo(A,10^(x)) -% si x > 0, et A < 0, fait A -> -quo(-A,10^(x)) -% (donc pour x > 0 c'est comme DSR itéré x fois) +% \lverb+DECIMAL SHIFTS \xintDSH {x}{A}$\ +% si x <= 0, fait A -> A.10^(|x|). v1.03 corrige l'oversight pour A=0.n +% si x > 0, et A >=0, fait A -> quo(A,10^(x))$\ +% si x > 0, et A < 0, fait A -> -quo(-A,10^(x))$\ +% (donc pour x > 0 c'est comme DSR itéré x fois)$\ % \xintDSHr donne le `reste' (si x<=0 donne zéro). +% % Release 1.06 now feeds x to a \numexpr first. I will revise the legacy code on -% another occasion. -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% another occasion.+ % \begin{macrocode} \def\xintDSHr {\romannumeral0\xintdshr }% \def\xintdshr #1% {% - \expandafter\XINT@dshr@checkxpositive \the\numexpr #1\relax\Z + \expandafter\XINT_dshr_checkxpositive \the\numexpr #1\relax\Z }% -\def\XINT@dshr@checkxpositive #1% +\def\XINT_dshr_checkxpositive #1% {% - \xint@UDzerominusfork - 0#1\dummy \XINT@dshr@xzeroorneg - #1-\dummy \XINT@dshr@xzeroorneg - 0-\dummy \XINT@dshr@xpositive - \xint@UDkrof #1% + \xint_UDzerominusfork + 0#1\dummy \XINT_dshr_xzeroorneg + #1-\dummy \XINT_dshr_xzeroorneg + 0-\dummy \XINT_dshr_xpositive + \krof #1% }% -\def\XINT@dshr@xzeroorneg #1\Z #2{ 0}% -\def\XINT@dshr@xpositive #1\Z +\def\XINT_dshr_xzeroorneg #1\Z #2{ 0}% +\def\XINT_dshr_xpositive #1\Z {% - \expandafter\xint@secondoftwo@andstop\romannumeral0\xintdsx {#1}% + \expandafter\xint_secondoftwo_andstop\romannumeral0\xintdsx {#1}% }% \def\xintDSH {\romannumeral0\xintdsh }% \def\xintdsh #1#2% {% - \expandafter\xint@dsh\expandafter {\romannumeral-`0#2}{#1}% + \expandafter\xint_dsh\expandafter {\romannumeral-`0#2}{#1}% }% -\def\xint@dsh #1#2% +\def\xint_dsh #1#2% {% - \expandafter\XINT@dsh@checksignx \the\numexpr #2\relax\Z {#1}% + \expandafter\XINT_dsh_checksignx \the\numexpr #2\relax\Z {#1}% }% -\def\XINT@dsh@checksignx #1% +\def\XINT_dsh_checksignx #1% {% - \xint@UDzerominusfork - #1-\dummy \XINT@dsh@xiszero - 0#1\dummy \XINT@dsx@xisNeg@checkA % on passe direct dans DSx - 0-\dummy {\XINT@dsh@xisPos #1}% - \xint@UDkrof + \xint_UDzerominusfork + #1-\dummy \XINT_dsh_xiszero + 0#1\dummy \XINT_dsx_xisNeg_checkA % on passe direct dans DSx + 0-\dummy {\XINT_dsh_xisPos #1}% + \krof }% -\def\XINT@dsh@xiszero #1\Z #2{ #2}% -\def\XINT@dsh@xisPos #1\Z #2% +\def\XINT_dsh_xiszero #1\Z #2{ #2}% +\def\XINT_dsh_xisPos #1\Z #2% {% - \expandafter\xint@firstoftwo@andstop - \romannumeral0\XINT@dsx@checksignA #2\Z {#1}% via DSx + \expandafter\xint_firstoftwo_andstop + \romannumeral0\XINT_dsx_checksignA #2\Z {#1}% via DSx }% % \end{macrocode} % \subsection{\csh{xintDSx}} -% \begin{verbatim} -% Je fais cette routine pour la version 1.01, après modification de +% \lverb+Je fais cette routine pour la version 1.01, après modification de % \xintDecSplit. Dorénavant \xintDSx fera appel à \xintDecSplit et de même % \xintDSH fera appel à \xintDSx. J'ai donc supprimé entièrement l'ancien code % de \xintDSH et re-écrit entièrement celui de \xintDecSplit pour x positif. -% --> Attention le cas x=0 est traité dans la même catégorie que x > 0 <-- -% si x < 0, fait A -> A.10^(|x|) -% si x >= 0, et A >=0, fait A -> {quo(A,10^(x))}{rem(A,10^(x))} -% si x >= 0, et A < 0, d'abord on calcule {quo(-A,10^(x))}{rem(-A,10^(x))} -% puis, si le premier n'est pas nul on lui donne le signe - +% +% --> Attention le cas x=0 est traité dans la même catégorie que x > 0 <--$\ +% si x < 0, fait A -> A.10^(|x|)$\ +% si x >= 0, et A >=0, fait A -> {quo(A,10^(x))}{rem(A,10^(x))}$\ +% si x >= 0, et A < 0, d'abord on calcule {quo(-A,10^(x))}{rem(-A,10^(x))}$\ +% puis, si le premier n'est pas nul on lui donne le signe -$\ % si le premier est nul on donne le signe - au second. +% % On peut donc toujours reconstituer l'original A par 10^x Q \pm R % où il faut prendre le signe plus si Q est positif ou nul et le signe moins si % Q est strictement négatif. -% Release 1.06 has a faster and more compactly coded \XINT@dsx@zeroloop. +% +% Release 1.06 has a faster and more compactly coded \XINT_dsx_zeroloop. % Also, x is now given to a \numexpr. The earlier code should be then -% simplified, but I leave as is for the time being. -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% simplified, but I leave as is for the time being.+ % \begin{macrocode} \def\xintDSx {\romannumeral0\xintdsx }% \def\xintdsx #1#2% {% - \expandafter\xint@dsx\expandafter {\romannumeral-`0#2}{#1}% + \expandafter\xint_dsx\expandafter {\romannumeral-`0#2}{#1}% }% -\def\xint@dsx #1#2% +\def\xint_dsx #1#2% {% - \expandafter\XINT@dsx@checksignx \the\numexpr #2\relax\Z {#1}% + \expandafter\XINT_dsx_checksignx \the\numexpr #2\relax\Z {#1}% }% -\def\XINT@DSx #1#2{\romannumeral0\XINT@dsx@checksignx #1\Z {#2}}% -\def\XINT@dsx #1#2{\XINT@dsx@checksignx #1\Z {#2}}% -\def\XINT@dsx@checksignx #1% +\def\XINT_DSx #1#2{\romannumeral0\XINT_dsx_checksignx #1\Z {#2}}% +\def\XINT_dsx #1#2{\XINT_dsx_checksignx #1\Z {#2}}% +\def\XINT_dsx_checksignx #1% {% - \xint@UDzerominusfork - #1-\dummy \XINT@dsx@xisZero - 0#1\dummy \XINT@dsx@xisNeg@checkA - 0-\dummy {\XINT@dsx@xisPos #1}% - \xint@UDkrof + \xint_UDzerominusfork + #1-\dummy \XINT_dsx_xisZero + 0#1\dummy \XINT_dsx_xisNeg_checkA + 0-\dummy {\XINT_dsx_xisPos #1}% + \krof }% -\def\XINT@dsx@xisZero #1\Z #2{ {#2}{0}}% attention comme x > 0 -\def\XINT@dsx@xisNeg@checkA #1\Z #2% +\def\XINT_dsx_xisZero #1\Z #2{ {#2}{0}}% attention comme x > 0 +\def\XINT_dsx_xisNeg_checkA #1\Z #2% {% - \XINT@dsx@xisNeg@checkA@ #2\Z {#1}% + \XINT_dsx_xisNeg_checkA_ #2\Z {#1}% }% -\def\XINT@dsx@xisNeg@checkA@ #1#2\Z #3% +\def\XINT_dsx_xisNeg_checkA_ #1#2\Z #3% {% - \xint@zero #1\XINT@dsx@xisNeg@Azero 0% - \XINT@dsx@xisNeg@checkx {#3}{#3}\Z {#1#2}% + \xint_gob_til_zero #1\XINT_dsx_xisNeg_Azero 0% + \XINT_dsx_xisNeg_checkx {#3}{#3}\Z {#1#2}% }% -\def\XINT@dsx@xisNeg@Azero #1\Z #2{ 0}% -\def\XINT@dsx@xisNeg@checkx #1% +\def\XINT_dsx_xisNeg_Azero #1\Z #2{ 0}% +\def\XINT_dsx_xisNeg_checkx #1% {% - \ifnum #1> 999999999 - \xint@afterfi + \ifnum #1>999999999 + \xint_afterfi {\xintError:TooBigDecimalShift - \expandafter\space\expandafter 0\xint@gobble@iii }% + \expandafter\space\expandafter 0\xint_gobble_iii }% \else - \expandafter \XINT@dsx@zeroloop + \expandafter \XINT_dsx_zeroloop \fi }% -\def\XINT@dsx@zeroloop #1% +\def\XINT_dsx_zeroloop #1% {% - \ifnum #1<9 \XINT@dsx@exita\fi - \expandafter\XINT@dsx@zeroloop\expandafter + \ifnum #1<9 \XINT_dsx_exita\fi + \expandafter\XINT_dsx_zeroloop\expandafter {\the\numexpr #1-8}00000000% }% -\def\XINT@dsx@exita\fi\expandafter\XINT@dsx@zeroloop +\def\XINT_dsx_exita\fi\expandafter\XINT_dsx_zeroloop {% - \fi\expandafter\XINT@dsx@exitb + \fi\expandafter\XINT_dsx_exitb }% -\def\XINT@dsx@exitb #1% +\def\XINT_dsx_exitb #1% {% \expandafter\expandafter\expandafter - \XINT@dsx@addzeros\csname xint@gobble@\romannumeral -#1\endcsname + \XINT_dsx_addzeros\csname xint_gobble_\romannumeral -#1\endcsname }% -\def\XINT@dsx@addzeros #1\Z #2{ #2#1}% -\def\XINT@dsx@xisPos #1\Z #2% +\def\XINT_dsx_addzeros #1\Z #2{ #2#1}% +\def\XINT_dsx_xisPos #1\Z #2% {% - \XINT@dsx@checksignA #2\Z {#1}% + \XINT_dsx_checksignA #2\Z {#1}% }% -\def\XINT@dsx@checksignA #1% +\def\XINT_dsx_checksignA #1% {% - \xint@UDzerominusfork - #1-\dummy \XINT@dsx@AisZero - 0#1\dummy \XINT@dsx@AisNeg - 0-\dummy {\XINT@dsx@AisPos #1}% - \xint@UDkrof + \xint_UDzerominusfork + #1-\dummy \XINT_dsx_AisZero + 0#1\dummy \XINT_dsx_AisNeg + 0-\dummy {\XINT_dsx_AisPos #1}% + \krof }% -\def\XINT@dsx@AisZero #1\Z #2{ {0}{0}}% -\def\XINT@dsx@AisNeg #1\Z #2% +\def\XINT_dsx_AisZero #1\Z #2{ {0}{0}}% +\def\XINT_dsx_AisNeg #1\Z #2% {% - \expandafter\XINT@dsx@AisNeg@dosplit@andcheckfirst - \romannumeral0\XINT@split@checksizex {#2}{#1}% + \expandafter\XINT_dsx_AisNeg_dosplit_andcheckfirst + \romannumeral0\XINT_split_checksizex {#2}{#1}% }% -\def\XINT@dsx@AisNeg@dosplit@andcheckfirst #1% +\def\XINT_dsx_AisNeg_dosplit_andcheckfirst #1% {% - \XINT@dsx@AisNeg@checkiffirstempty #1\Z + \XINT_dsx_AisNeg_checkiffirstempty #1\Z }% -\def\XINT@dsx@AisNeg@checkiffirstempty #1% +\def\XINT_dsx_AisNeg_checkiffirstempty #1% {% - \xint@z #1\XINT@dsx@AisNeg@finish@zero\Z - \XINT@dsx@AisNeg@finish@notzero #1% + \xint_gob_til_z #1\XINT_dsx_AisNeg_finish_zero\Z + \XINT_dsx_AisNeg_finish_notzero #1% }% -\def\XINT@dsx@AisNeg@finish@zero\Z - \XINT@dsx@AisNeg@finish@notzero\Z #1% +\def\XINT_dsx_AisNeg_finish_zero\Z + \XINT_dsx_AisNeg_finish_notzero\Z #1% {% - \expandafter\XINT@dsx@end - \expandafter {\romannumeral0\XINT@num {-#1}}{0}% + \expandafter\XINT_dsx_end + \expandafter {\romannumeral0\XINT_num {-#1}}{0}% }% -\def\XINT@dsx@AisNeg@finish@notzero #1\Z #2% +\def\XINT_dsx_AisNeg_finish_notzero #1\Z #2% {% - \expandafter\XINT@dsx@end - \expandafter {\romannumeral0\XINT@num {#2}}{-#1}% + \expandafter\XINT_dsx_end + \expandafter {\romannumeral0\XINT_num {#2}}{-#1}% }% -\def\XINT@dsx@AisPos #1\Z #2% +\def\XINT_dsx_AisPos #1\Z #2% {% - \expandafter\XINT@dsx@AisPos@finish - \romannumeral0\XINT@split@checksizex {#2}{#1}% + \expandafter\XINT_dsx_AisPos_finish + \romannumeral0\XINT_split_checksizex {#2}{#1}% }% -\def\XINT@dsx@AisPos@finish #1#2% +\def\XINT_dsx_AisPos_finish #1#2% {% - \expandafter\XINT@dsx@end - \expandafter {\romannumeral0\XINT@num {#2}}% - {\romannumeral0\XINT@num {#1}}% + \expandafter\XINT_dsx_end + \expandafter {\romannumeral0\XINT_num {#2}}% + {\romannumeral0\XINT_num {#1}}% }% -\def\XINT@dsx@end #1#2% +\def\XINT_dsx_end #1#2% {% \expandafter\space\expandafter{#2}{#1}% }% % \end{macrocode} % \subsection{\csh{xintDecSplit},~\csh{xintDecSplitL},~\csh{xintDecSplitR}} -% \begin{verbatim} -% DECIMAL SPLIT +% \lverb!DECIMAL SPLIT +% % The macro \xintDecSplit {x}{A} first replaces A with |A| (*) % This macro cuts the number into two pieces L and R. The concatenation LR % always reproduces |A|, and R may be empty or have leading zeros. The @@ -8200,172 +8154,175 @@ first place. % number. If x becomes equal to or larger than the length of the number then L % becomes empty. If x is negative the location of the cut is |x| slots to the % right of the left end of the number. +% % (*) warning: this may change in a future version. Only the behavior % for A non-negative is guaranteed to remain the same. -% v1.05a: \XINT@split@checksizex does not compute the length anymore, rather the +% +% v1.05a: \XINT_split_checksizex does not compute the length anymore, rather the % error will be from a \numexpr; but the limit of 999999999 does not make much % sense. -% v1.06: Improvements in \XINT@split@fromleft@loop, \XINT@split@fromright@loop +% +% v1.06: Improvements in \XINT_split_fromleft_loop, \XINT_split_fromright_loop % and related macros. More readable coding, speed gains. -% Also, I now feed immediately a \numexpr with x. Some simplifications may then -% be perhaps made to the code, it is kept as is for the time being. -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% Also, I now feed immediately a \numexpr with x. Some simplifications should +% probably be made to the code, which is kept as is for the time being.! % \begin{macrocode} \def\xintDecSplitL {\romannumeral0\xintdecsplitl }% \def\xintDecSplitR {\romannumeral0\xintdecsplitr }% \def\xintdecsplitl {% - \expandafter\xint@firstoftwo@andstop + \expandafter\xint_firstoftwo_andstop \romannumeral0\xintdecsplit }% \def\xintdecsplitr {% - \expandafter\xint@secondoftwo@andstop + \expandafter\xint_secondoftwo_andstop \romannumeral0\xintdecsplit }% \def\xintDecSplit {\romannumeral0\xintdecsplit }% \def\xintdecsplit #1#2% {% - \expandafter \xint@split \expandafter + \expandafter \xint_split \expandafter {\romannumeral0\xintiabs {#2}}{#1}% fait expansion de A }% -\def\xint@split #1#2% +\def\xint_split #1#2% {% - \expandafter\XINT@split@checksizex\expandafter{\the\numexpr #2}{#1}% + \expandafter\XINT_split_checksizex\expandafter{\the\numexpr #2}{#1}% }% -\def\XINT@split@checksizex #1% 999999999 is anyhow very big, could be reduced +\def\XINT_split_checksizex #1% 999999999 is anyhow very big, could be reduced {% - \ifnum\numexpr\XINT@Abs{#1}\relax > 999999999 - \xint@afterfi {\xintError:TooBigDecimalSplit\XINT@split@bigx }% + \ifnum\numexpr\XINT_Abs{#1}>999999999 + \xint_afterfi {\xintError:TooBigDecimalSplit\XINT_split_bigx }% \else - \expandafter\XINT@split@xfork + \expandafter\XINT_split_xfork \fi #1\Z }% -\def\XINT@split@bigx #1\Z #2% +\def\XINT_split_bigx #1\Z #2% {% - \ifcase\XINT@Sgn {#1} - \or \xint@afterfi { {}{#2}}% positive big x + \ifcase\XINT_Sgn {#1} + \or \xint_afterfi { {}{#2}}% positive big x \else - \xint@afterfi { {#2}{}}% negative big x + \xint_afterfi { {#2}{}}% negative big x \fi }% -\def\XINT@split@xfork #1% +\def\XINT_split_xfork #1% {% - \xint@UDzerominusfork - #1-\dummy \XINT@split@zerosplit - 0#1\dummy \XINT@split@fromleft - 0-\dummy {\XINT@split@fromright #1}% - \xint@UDkrof + \xint_UDzerominusfork + #1-\dummy \XINT_split_zerosplit + 0#1\dummy \XINT_split_fromleft + 0-\dummy {\XINT_split_fromright #1}% + \krof }% -\def\XINT@split@zerosplit #1\Z #2{ {#2}{}}% -\def\XINT@split@fromleft #1\Z #2% +\def\XINT_split_zerosplit #1\Z #2{ {#2}{}}% +\def\XINT_split_fromleft #1\Z #2% {% - \XINT@split@fromleft@loop {#1}{}#2\W\W\W\W\W\W\W\W\Z + \XINT_split_fromleft_loop {#1}{}#2\W\W\W\W\W\W\W\W\Z }% -\def\XINT@split@fromleft@loop #1% +\def\XINT_split_fromleft_loop #1% {% - \ifnum #1<8 \XINT@split@fromleft@exita\fi - \expandafter\XINT@split@fromleft@loop@perhaps\expandafter - {\the\numexpr #1-8\expandafter}\XINT@split@fromleft@eight + \ifnum #1<8 \XINT_split_fromleft_exita\fi + \expandafter\XINT_split_fromleft_loop_perhaps\expandafter + {\the\numexpr #1-8\expandafter}\XINT_split_fromleft_eight }% -\def\XINT@split@fromleft@eight #1#2#3#4#5#6#7#8#9{#9{#1#2#3#4#5#6#7#8#9}}% -\def\XINT@split@fromleft@loop@perhaps #1#2% +\def\XINT_split_fromleft_eight #1#2#3#4#5#6#7#8#9{#9{#1#2#3#4#5#6#7#8#9}}% +\def\XINT_split_fromleft_loop_perhaps #1#2% {% - \xint@w #2\XINT@split@fromleft@toofar\W\XINT@split@fromleft@loop {#1}% + \xint_gob_til_w #2\XINT_split_fromleft_toofar\W + \XINT_split_fromleft_loop {#1}% }% -\def\XINT@split@fromleft@toofar\W\XINT@split@fromleft@loop #1#2#3\Z +\def\XINT_split_fromleft_toofar\W\XINT_split_fromleft_loop #1#2#3\Z {% - \XINT@split@fromleft@toofar@b #2\Z + \XINT_split_fromleft_toofar_b #2\Z }% -\def\XINT@split@fromleft@toofar@b #1\W #2\Z { {#1}{}}% -\def\XINT@split@fromleft@exita\fi - \expandafter\XINT@split@fromleft@loop@perhaps\expandafter #1#2% - {\fi \XINT@split@fromleft@exitb #1}% -\def\XINT@split@fromleft@exitb\the\numexpr #1-8\expandafter +\def\XINT_split_fromleft_toofar_b #1\W #2\Z { {#1}{}}% +\def\XINT_split_fromleft_exita\fi + \expandafter\XINT_split_fromleft_loop_perhaps\expandafter #1#2% + {\fi \XINT_split_fromleft_exitb #1}% +\def\XINT_split_fromleft_exitb\the\numexpr #1-8\expandafter {% - \csname XINT@split@fromleft@endsplit@\romannumeral #1\endcsname + \csname XINT_split_fromleft_endsplit_\romannumeral #1\endcsname }% -\def\XINT@split@fromleft@endsplit@ #1#2\W #3\Z { {#1}{#2}}% -\def\XINT@split@fromleft@endsplit@i #1#2% - {\XINT@split@fromleft@checkiftoofar #2{#1#2}}% -\def\XINT@split@fromleft@endsplit@ii #1#2#3% - {\XINT@split@fromleft@checkiftoofar #3{#1#2#3}}% -\def\XINT@split@fromleft@endsplit@iii #1#2#3#4% - {\XINT@split@fromleft@checkiftoofar #4{#1#2#3#4}}% -\def\XINT@split@fromleft@endsplit@iv #1#2#3#4#5% - {\XINT@split@fromleft@checkiftoofar #5{#1#2#3#4#5}}% -\def\XINT@split@fromleft@endsplit@v #1#2#3#4#5#6% - {\XINT@split@fromleft@checkiftoofar #6{#1#2#3#4#5#6}}% -\def\XINT@split@fromleft@endsplit@vi #1#2#3#4#5#6#7% - {\XINT@split@fromleft@checkiftoofar #7{#1#2#3#4#5#6#7}}% -\def\XINT@split@fromleft@endsplit@vii #1#2#3#4#5#6#7#8% - {\XINT@split@fromleft@checkiftoofar #8{#1#2#3#4#5#6#7#8}}% -\def\XINT@split@fromleft@checkiftoofar #1#2#3\W #4\Z +\def\XINT_split_fromleft_endsplit_ #1#2\W #3\Z { {#1}{#2}}% +\def\XINT_split_fromleft_endsplit_i #1#2% + {\XINT_split_fromleft_checkiftoofar #2{#1#2}}% +\def\XINT_split_fromleft_endsplit_ii #1#2#3% + {\XINT_split_fromleft_checkiftoofar #3{#1#2#3}}% +\def\XINT_split_fromleft_endsplit_iii #1#2#3#4% + {\XINT_split_fromleft_checkiftoofar #4{#1#2#3#4}}% +\def\XINT_split_fromleft_endsplit_iv #1#2#3#4#5% + {\XINT_split_fromleft_checkiftoofar #5{#1#2#3#4#5}}% +\def\XINT_split_fromleft_endsplit_v #1#2#3#4#5#6% + {\XINT_split_fromleft_checkiftoofar #6{#1#2#3#4#5#6}}% +\def\XINT_split_fromleft_endsplit_vi #1#2#3#4#5#6#7% + {\XINT_split_fromleft_checkiftoofar #7{#1#2#3#4#5#6#7}}% +\def\XINT_split_fromleft_endsplit_vii #1#2#3#4#5#6#7#8% + {\XINT_split_fromleft_checkiftoofar #8{#1#2#3#4#5#6#7#8}}% +\def\XINT_split_fromleft_checkiftoofar #1#2#3\W #4\Z {% - \xint@w #1\XINT@split@fromleft@wenttoofar\W\space {#2}{#3}% + \xint_gob_til_w #1\XINT_split_fromleft_wenttoofar\W + \space {#2}{#3}% }% -\def\XINT@split@fromleft@wenttoofar\W\space #1% +\def\XINT_split_fromleft_wenttoofar\W\space #1% {% - \XINT@split@fromleft@wenttoofar@b #1\Z + \XINT_split_fromleft_wenttoofar_b #1\Z }% -\def\XINT@split@fromleft@wenttoofar@b #1\W #2\Z { {#1}}% -\def\XINT@split@fromright #1\Z #2% +\def\XINT_split_fromleft_wenttoofar_b #1\W #2\Z { {#1}}% +\def\XINT_split_fromright #1\Z #2% {% - \expandafter \XINT@split@fromright@a \expandafter - {\romannumeral0\XINT@rev {#2}}{#1}{#2}% + \expandafter \XINT_split_fromright_a \expandafter + {\romannumeral0\XINT_rev {#2}}{#1}{#2}% }% -\def\XINT@split@fromright@a #1#2% +\def\XINT_split_fromright_a #1#2% {% - \XINT@split@fromright@loop {#2}{}#1\W\W\W\W\W\W\W\W\Z + \XINT_split_fromright_loop {#2}{}#1\W\W\W\W\W\W\W\W\Z }% -\def\XINT@split@fromright@loop #1% +\def\XINT_split_fromright_loop #1% {% - \ifnum #1<8 \XINT@split@fromright@exita\fi - \expandafter\XINT@split@fromright@loop@perhaps\expandafter - {\the\numexpr #1-8\expandafter }\XINT@split@fromright@eight + \ifnum #1<8 \XINT_split_fromright_exita\fi + \expandafter\XINT_split_fromright_loop_perhaps\expandafter + {\the\numexpr #1-8\expandafter }\XINT_split_fromright_eight }% -\def\XINT@split@fromright@eight #1#2#3#4#5#6#7#8#9{#9{#9#8#7#6#5#4#3#2#1}}% -\def\XINT@split@fromright@loop@perhaps #1#2% +\def\XINT_split_fromright_eight #1#2#3#4#5#6#7#8#9{#9{#9#8#7#6#5#4#3#2#1}}% +\def\XINT_split_fromright_loop_perhaps #1#2% {% - \xint@w #2\XINT@split@fromright@toofar\W - \XINT@split@fromright@loop {#1}% + \xint_gob_til_w #2\XINT_split_fromright_toofar\W + \XINT_split_fromright_loop {#1}% }% -\def\XINT@split@fromright@toofar\W\XINT@split@fromright@loop #1#2#3\Z { {}}% -\def\XINT@split@fromright@exita\fi - \expandafter\XINT@split@fromright@loop@perhaps\expandafter #1#2% - {\fi \XINT@split@fromright@exitb #1}% -\def\XINT@split@fromright@exitb\the\numexpr #1-8\expandafter +\def\XINT_split_fromright_toofar\W\XINT_split_fromright_loop #1#2#3\Z { {}}% +\def\XINT_split_fromright_exita\fi + \expandafter\XINT_split_fromright_loop_perhaps\expandafter #1#2% + {\fi \XINT_split_fromright_exitb #1}% +\def\XINT_split_fromright_exitb\the\numexpr #1-8\expandafter {% - \csname XINT@split@fromright@endsplit@\romannumeral #1\endcsname + \csname XINT_split_fromright_endsplit_\romannumeral #1\endcsname }% -\def\XINT@split@fromright@endsplit@ #1#2\W #3\Z #4% +\def\XINT_split_fromright_endsplit_ #1#2\W #3\Z #4% {% - \expandafter\space\expandafter {\romannumeral0\XINT@rev{#2}}{#1}% + \expandafter\space\expandafter {\romannumeral0\XINT_rev{#2}}{#1}% }% -\def\XINT@split@fromright@endsplit@i #1#2% - {\XINT@split@fromright@checkiftoofar #2{#2#1}}% -\def\XINT@split@fromright@endsplit@ii #1#2#3% - {\XINT@split@fromright@checkiftoofar #3{#3#2#1}}% -\def\XINT@split@fromright@endsplit@iii #1#2#3#4% - {\XINT@split@fromright@checkiftoofar #4{#4#3#2#1}}% -\def\XINT@split@fromright@endsplit@iv #1#2#3#4#5% - {\XINT@split@fromright@checkiftoofar #5{#5#4#3#2#1}}% -\def\XINT@split@fromright@endsplit@v #1#2#3#4#5#6% - {\XINT@split@fromright@checkiftoofar #6{#6#5#4#3#2#1}}% -\def\XINT@split@fromright@endsplit@vi #1#2#3#4#5#6#7% - {\XINT@split@fromright@checkiftoofar #7{#7#6#5#4#3#2#1}}% -\def\XINT@split@fromright@endsplit@vii #1#2#3#4#5#6#7#8% - {\XINT@split@fromright@checkiftoofar #8{#8#7#6#5#4#3#2#1}}% -\def\XINT@split@fromright@checkiftoofar #1% +\def\XINT_split_fromright_endsplit_i #1#2% + {\XINT_split_fromright_checkiftoofar #2{#2#1}}% +\def\XINT_split_fromright_endsplit_ii #1#2#3% + {\XINT_split_fromright_checkiftoofar #3{#3#2#1}}% +\def\XINT_split_fromright_endsplit_iii #1#2#3#4% + {\XINT_split_fromright_checkiftoofar #4{#4#3#2#1}}% +\def\XINT_split_fromright_endsplit_iv #1#2#3#4#5% + {\XINT_split_fromright_checkiftoofar #5{#5#4#3#2#1}}% +\def\XINT_split_fromright_endsplit_v #1#2#3#4#5#6% + {\XINT_split_fromright_checkiftoofar #6{#6#5#4#3#2#1}}% +\def\XINT_split_fromright_endsplit_vi #1#2#3#4#5#6#7% + {\XINT_split_fromright_checkiftoofar #7{#7#6#5#4#3#2#1}}% +\def\XINT_split_fromright_endsplit_vii #1#2#3#4#5#6#7#8% + {\XINT_split_fromright_checkiftoofar #8{#8#7#6#5#4#3#2#1}}% +\def\XINT_split_fromright_checkiftoofar #1% {% - \xint@w #1\XINT@split@fromright@wenttoofar\W - \XINT@split@fromright@endsplit@ + \xint_gob_til_w #1\XINT_split_fromright_wenttoofar\W + \XINT_split_fromright_endsplit_ }% -\def\XINT@split@fromright@wenttoofar\W\XINT@split@fromright@endsplit@ #1\Z #2% +\def\XINT_split_fromright_wenttoofar\W\XINT_split_fromright_endsplit_ #1\Z #2% { {}{#2}}% -\XINT@restorecatcodes@endinput% +\XINT_restorecatcodes_endinput% % \end{macrocode} %\catcode`\<=0 \catcode`\>=11 \catcode`\*=11 \catcode`\/=11 %\let</xint>\relax @@ -8471,8 +8428,8 @@ first place. % % Perhaps catcodes have changed after the loading of \xintname % and prior to the current loading of \xintgcdname, so we can not employ -% the |\XINT@restorecatcodes@endinput| in this style file. But -% there is no problem using |\XINT@setcatcodes|. +% the |\XINT_restorecatcodes_endinput| in this style file. But +% there is no problem using |\XINT_setcatcodes|. % % \begin{macrocode} \begingroup\catcode61\catcode48\catcode32=10\relax% @@ -8480,11 +8437,11 @@ first place. \endlinechar=13 % \catcode123=1 % { \catcode125=2 % } - \catcode64=11 % @ + \catcode95=11 % _ \def\x {% \endgroup - \edef\XINT@gcd@restorecatcodes@endinput + \edef\XINT_gcd_restorecatcodes_endinput {% \catcode36=\the\catcode36 % $ \catcode96=\the\catcode96 % ` @@ -8500,7 +8457,7 @@ first place. \catcode45=\the\catcode45 % - \catcode44=\the\catcode44 % , \catcode35=\the\catcode35 % # - \catcode64=\the\catcode64 % @ + \catcode95=\the\catcode95 % _ \catcode125=\the\catcode125 % } \catcode123=\the\catcode123 % { \endlinechar=\the\endlinechar @@ -8509,7 +8466,7 @@ first place. \catcode61=\the\catcode61\relax % = \noexpand\endinput }% - \XINT@setcatcodes + \XINT_setcatcodes \catcode36=3 % $ }% \x @@ -8517,6 +8474,7 @@ first place. % \subsection{Package identification} % \begin{macrocode} \begingroup + \catcode64=11 % @ \catcode91=12 % [ \catcode93=12 % ] \catcode58=12 % : @@ -8538,55 +8496,48 @@ first place. \fi \expandafter\x\csname ver@xintgcd.sty\endcsname \ProvidesPackage{xintgcd}% - [2013/05/09 v1.06a Euclide algorithm with xint package (jfB)]% + [2013/05/14 v1.06b Euclide algorithm with xint package (jfB)]% % \end{macrocode} % \subsection{\csh{xintGCD}} % \begin{macrocode} \def\xintGCD {\romannumeral0\xintgcd }% \def\xintgcd #1% {% - \expandafter\XINT@gcd\expandafter{\romannumeral0\xintiabs {#1}}% + \expandafter\XINT_gcd\expandafter{\romannumeral0\xintiabs {#1}}% }% -\def\XINT@gcd #1#2% +\def\XINT_gcd #1#2% {% - \expandafter\XINT@gcd@fork\romannumeral0\xintiabs {#2}\Z #1\Z + \expandafter\XINT_gcd_fork\romannumeral0\xintiabs {#2}\Z #1\Z }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% Ici #3#4=A, #1#2=B -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|& +% Ici #3#4=A, #1#2=B| % \begin{macrocode} -\def\XINT@gcd@fork #1#2\Z #3#4\Z +\def\XINT_gcd_fork #1#2\Z #3#4\Z {% - \xint@UDzerofork - #1\dummy \XINT@gcd@BisZero - #3\dummy \XINT@gcd@AisZero - 0\dummy \XINT@gcd@loop - \xint@UDkrof + \xint_UDzerofork + #1\dummy \XINT_gcd_BisZero + #3\dummy \XINT_gcd_AisZero + 0\dummy \XINT_gcd_loop + \krof {#1#2}{#3#4}% }% -\def\XINT@gcd@AisZero #1#2{ #1}% -\def\XINT@gcd@BisZero #1#2{ #2}% -\def\XINT@gcd@CheckRem #1#2\Z +\def\XINT_gcd_AisZero #1#2{ #1}% +\def\XINT_gcd_BisZero #1#2{ #2}% +\def\XINT_gcd_CheckRem #1#2\Z {% - \xint@zero #1\xint@gcd@end0\XINT@gcd@loop {#1#2}% + \xint_gob_til_zero #1\xint_gcd_end0\XINT_gcd_loop {#1#2}% }% -\def\xint@gcd@end0\XINT@gcd@loop #1#2{ #2}% +\def\xint_gcd_end0\XINT_gcd_loop #1#2{ #2}% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% #1=B, #2=A -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|#1=B, #2=A| % \begin{macrocode} -\def\XINT@gcd@loop #1#2% +\def\XINT_gcd_loop #1#2% {% \expandafter\expandafter\expandafter - \XINT@gcd@CheckRem - \expandafter\xint@secondoftwo - \romannumeral0\XINT@div@prepare {#1}{#2}\Z + \XINT_gcd_CheckRem + \expandafter\xint_secondoftwo + \romannumeral0\XINT_div_prepare {#1}{#2}\Z {#1}% }% % \end{macrocode} @@ -8595,526 +8546,416 @@ first place. \def\xintBezout {\romannumeral0\xintbezout }% \def\xintbezout #1% {% - \expandafter\xint@bezout\expandafter {\romannumeral-`0#1}% + \expandafter\xint_bezout\expandafter {\romannumeral-`0#1}% }% -\def\xint@bezout #1#2% +\def\xint_bezout #1#2% {% - \expandafter\XINT@bezout@fork \romannumeral-`0#2\Z #1\Z + \expandafter\XINT_bezout_fork \romannumeral-`0#2\Z #1\Z }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% #3#4 = A, #1#2=B -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|#3#4 = A, #1#2=B| % \begin{macrocode} -\def\XINT@bezout@fork #1#2\Z #3#4\Z +\def\XINT_bezout_fork #1#2\Z #3#4\Z {% - \xint@UDzerosfork - #1#3\dummy \XINT@bezout@botharezero - #10\dummy \XINT@bezout@secondiszero - #30\dummy \XINT@bezout@firstiszero + \xint_UDzerosfork + #1#3\dummy \XINT_bezout_botharezero + #10\dummy \XINT_bezout_secondiszero + #30\dummy \XINT_bezout_firstiszero 00\dummy - {\xint@UDsignsfork - #1#3\dummy \XINT@bezout@minusminus % A < 0, B < 0 - #1-\dummy \XINT@bezout@minusplus % A > 0, B < 0 - #3-\dummy \XINT@bezout@plusminus % A < 0, B > 0 - --\dummy \XINT@bezout@plusplus % A > 0, B > 0 - \xint@UDkrof }% - \xint@UDkrof + {\xint_UDsignsfork + #1#3\dummy \XINT_bezout_minusminus % A < 0, B < 0 + #1-\dummy \XINT_bezout_minusplus % A > 0, B < 0 + #3-\dummy \XINT_bezout_plusminus % A < 0, B > 0 + --\dummy \XINT_bezout_plusplus % A > 0, B > 0 + \krof }% + \krof {#2}{#4}#1#3{#3#4}{#1#2}% #1#2=B, #3#4=A }% -\def\XINT@bezout@botharezero #1#2#3#4#5#6% +\def\XINT_bezout_botharezero #1#2#3#4#5#6% {% \xintError:NoBezoutForZeros \space {0}{0}{0}{0}{0}% }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% attention première entrée doit être ici (-1)^n donc 1 -% #4#2=0 = A, B = #3#1 -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|& +% attention première entrée doit être ici (-1)^n donc 1$\ +% #4#2 = 0 = A, B = #3#1| % \begin{macrocode} -\def\XINT@bezout@firstiszero #1#2#3#4#5#6% +\def\XINT_bezout_firstiszero #1#2#3#4#5#6% {% - \xint@UDsignfork + \xint_UDsignfork #3\dummy { {0}{#3#1}{0}{1}{#1}}% -\dummy { {0}{#3#1}{0}{-1}{#1}}% - \xint@UDkrof + \krof }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% #4#2= A, B = #3#1 = 0 -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|#4#2 = A, B = #3#1 = 0| % \begin{macrocode} -\def\XINT@bezout@secondiszero #1#2#3#4#5#6% +\def\XINT_bezout_secondiszero #1#2#3#4#5#6% {% - \xint@UDsignfork + \xint_UDsignfork #4\dummy{ {#4#2}{0}{-1}{0}{#2}}% -\dummy{ {#4#2}{0}{1}{0}{#2}}% - \xint@UDkrof + \krof }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% #4#2= A < 0, #3#1 = B < 0 -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|#4#2= A < 0, #3#1 = B < 0| % \begin{macrocode} -\def\XINT@bezout@minusminus #1#2#3#4% +\def\XINT_bezout_minusminus #1#2#3#4% {% - \expandafter\XINT@bezout@mm@post - \romannumeral0\XINT@bezout@loop@a 1{#1}{#2}1001% + \expandafter\XINT_bezout_mm_post + \romannumeral0\XINT_bezout_loop_a 1{#1}{#2}1001% }% -\def\XINT@bezout@mm@post #1#2% +\def\XINT_bezout_mm_post #1#2% {% - \expandafter\XINT@bezout@mm@postb\expandafter + \expandafter\XINT_bezout_mm_postb\expandafter {\romannumeral0\xintiopp{#2}}{\romannumeral0\xintiopp{#1}}% }% -\def\XINT@bezout@mm@postb #1#2% +\def\XINT_bezout_mm_postb #1#2% {% - \expandafter\XINT@bezout@mm@postc\expandafter {#2}{#1}% + \expandafter\XINT_bezout_mm_postc\expandafter {#2}{#1}% }% -\def\XINT@bezout@mm@postc #1#2#3#4#5% +\def\XINT_bezout_mm_postc #1#2#3#4#5% {% \space {#4}{#5}{#1}{#2}{#3}% }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% minusplus #4#2= A > 0, B < 0 -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|minusplus #4#2= A > 0, B < 0| % \begin{macrocode} -\def\XINT@bezout@minusplus #1#2#3#4% +\def\XINT_bezout_minusplus #1#2#3#4% {% - \expandafter\XINT@bezout@mp@post - \romannumeral0\XINT@bezout@loop@a 1{#1}{#4#2}1001% + \expandafter\XINT_bezout_mp_post + \romannumeral0\XINT_bezout_loop_a 1{#1}{#4#2}1001% }% -\def\XINT@bezout@mp@post #1#2% +\def\XINT_bezout_mp_post #1#2% {% - \expandafter\XINT@bezout@mp@postb\expandafter + \expandafter\XINT_bezout_mp_postb\expandafter {\romannumeral0\xintiopp {#2}}{#1}% }% -\def\XINT@bezout@mp@postb #1#2#3#4#5% +\def\XINT_bezout_mp_postb #1#2#3#4#5% {% \space {#4}{#5}{#2}{#1}{#3}% }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% plusminus A < 0, B > 0 -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|plusminus A < 0, B > 0| % \begin{macrocode} -\def\XINT@bezout@plusminus #1#2#3#4% +\def\XINT_bezout_plusminus #1#2#3#4% {% - \expandafter\XINT@bezout@pm@post - \romannumeral0\XINT@bezout@loop@a 1{#3#1}{#2}1001% + \expandafter\XINT_bezout_pm_post + \romannumeral0\XINT_bezout_loop_a 1{#3#1}{#2}1001% }% -\def\XINT@bezout@pm@post #1% +\def\XINT_bezout_pm_post #1% {% - \expandafter \XINT@bezout@pm@postb \expandafter + \expandafter \XINT_bezout_pm_postb \expandafter {\romannumeral0\xintiopp{#1}}% }% -\def\XINT@bezout@pm@postb #1#2#3#4#5% +\def\XINT_bezout_pm_postb #1#2#3#4#5% {% \space {#4}{#5}{#1}{#2}{#3}% }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% plusplus -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|plusplus| % \begin{macrocode} -\def\XINT@bezout@plusplus #1#2#3#4% +\def\XINT_bezout_plusplus #1#2#3#4% {% - \expandafter\XINT@bezout@pp@post - \romannumeral0\XINT@bezout@loop@a 1{#3#1}{#4#2}1001% + \expandafter\XINT_bezout_pp_post + \romannumeral0\XINT_bezout_loop_a 1{#3#1}{#4#2}1001% }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% la parité (-1)^N est en #1, et on la jette ici. -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|la parité (-1)^N est en #1, et on la jette ici.| % \begin{macrocode} -\def\XINT@bezout@pp@post #1#2#3#4#5% +\def\XINT_bezout_pp_post #1#2#3#4#5% {% \space {#4}{#5}{#1}{#2}{#3}% }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% n = 0: 1BAalpha(0)beta(0)alpha(-1)beta(-1) +% \lverb|& +% n = 0: 1BAalpha(0)beta(0)alpha(-1)beta(-1)$\ % n général: -% {(-1)^n}{r(n-1)}{r(n-2)}{alpha(n-1)}{beta(n-1)}{alpha(n-2)}{beta(n-2)} -% #2 = B, #3 = A -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% {(-1)^n}{r(n-1)}{r(n-2)}{alpha(n-1)}{beta(n-1)}{alpha(n-2)}{beta(n-2)}$\ +% #2 = B, #3 = A| % \begin{macrocode} -\def\XINT@bezout@loop@a #1#2#3% +\def\XINT_bezout_loop_a #1#2#3% {% - \expandafter\XINT@bezout@loop@b + \expandafter\XINT_bezout_loop_b \expandafter{\the\numexpr -#1\expandafter }% - \romannumeral0\XINT@div@prepare {#2}{#3}{#2}% + \romannumeral0\XINT_div_prepare {#2}{#3}{#2}% }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} +% \lverb|& % Le q(n) a ici une existence éphémère, dans le version Bezout Algorithm % il faudra le conserver. On voudra à la fin -% {{q(n)}{r(n)}{alpha(n)}{beta(n)}} -% De plus ce n'est plus (-1)^n que l'on veut mais n. (ou dans un autre ordre) -% {-(-1)^n}{q(n)}{r(n)}{r(n-1)}{alpha(n-1)}{beta(n-1)}{alpha(n-2)}{beta(n-2)} -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% {{q(n)}{r(n)}{alpha(n)}{beta(n)}}. +% De plus ce n'est plus (-1)^n que l'on veut mais n. (ou dans un autre ordre)$\ +% {-(-1)^n}{q(n)}{r(n)}{r(n-1)}{alpha(n-1)}{beta(n-1)}{alpha(n-2)}{beta(n-2)}| % \begin{macrocode} -\def\XINT@bezout@loop@b #1#2#3#4#5#6#7#8% +\def\XINT_bezout_loop_b #1#2#3#4#5#6#7#8% {% - \expandafter \XINT@bezout@loop@c \expandafter - {\romannumeral0\xintiadd{\XINT@Mul{#5}{#2}}{#7}}% - {\romannumeral0\xintiadd{\XINT@Mul{#6}{#2}}{#8}}% + \expandafter \XINT_bezout_loop_c \expandafter + {\romannumeral0\xintiadd{\XINT_Mul{#5}{#2}}{#7}}% + {\romannumeral0\xintiadd{\XINT_Mul{#6}{#2}}{#8}}% {#1}{#3}{#4}{#5}{#6}% }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% {alpha(n)}{->beta(n)}{-(-1)^n}{r(n)}{r(n-1)}{alpha(n-1)}{beta(n-1)} -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|{alpha(n)}{->beta(n)}{-(-1)^n}{r(n)}{r(n-1)}{alpha(n-1)}{beta(n-1)}| % \begin{macrocode} -\def\XINT@bezout@loop@c #1#2% +\def\XINT_bezout_loop_c #1#2% {% - \expandafter \XINT@bezout@loop@d \expandafter + \expandafter \XINT_bezout_loop_d \expandafter {#2}{#1}% }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% {beta(n)}{alpha(n)}{(-1)^(n+1)}{r(n)}{r(n-1)}{alpha(n-1)}{beta(n-1)} -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|{beta(n)}{alpha(n)}{(-1)^(n+1)}{r(n)}{r(n-1)}{alpha(n-1)}{beta(n-1)}| % \begin{macrocode} -\def\XINT@bezout@loop@d #1#2#3#4#5% +\def\XINT_bezout_loop_d #1#2#3#4#5% {% - \XINT@bezout@loop@e #4\Z {#3}{#5}{#2}{#1}% + \XINT_bezout_loop_e #4\Z {#3}{#5}{#2}{#1}% }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% r(n)\Z {(-1)^(n+1)}{r(n-1)}{alpha(n)}{beta(n)}{alpha(n-1)}{beta(n-1)} -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|r(n)\Z {(-1)^(n+1)}{r(n-1)}{alpha(n)}{beta(n)}{alpha(n-1)}{beta(n-1)}| % \begin{macrocode} -\def\XINT@bezout@loop@e #1#2\Z +\def\XINT_bezout_loop_e #1#2\Z {% - \xint@zero #1\xint@bezout@loop@exit0\XINT@bezout@loop@f + \xint_gob_til_zero #1\xint_bezout_loop_exit0\XINT_bezout_loop_f {#1#2}% }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% {r(n)}{(-1)^(n+1)}{r(n-1)}{alpha(n)}{beta(n)}{alpha(n-1)}{beta(n-1)} -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|{r(n)}{(-1)^(n+1)}{r(n-1)}{alpha(n)}{beta(n)}{alpha(n-1)}{beta(n-1)}| % \begin{macrocode} -\def\XINT@bezout@loop@f #1#2% +\def\XINT_bezout_loop_f #1#2% {% - \XINT@bezout@loop@a {#2}{#1}% + \XINT_bezout_loop_a {#2}{#1}% }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% {(-1)^(n+1)}{r(n)}{r(n-1)}{alpha(n)}{beta(n)}{alpha(n-1)}{beta(n-1)} -% et itération -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|{(-1)^(n+1)}{r(n)}{r(n-1)}{alpha(n)}{beta(n)}{alpha(n-1)}{beta(n-1)} +% et itération| % \begin{macrocode} -\def\xint@bezout@loop@exit0\XINT@bezout@loop@f #1#2% +\def\xint_bezout_loop_exit0\XINT_bezout_loop_f #1#2% {% \ifcase #2 - \or \expandafter\XINT@bezout@exiteven - \else\expandafter\XINT@bezout@exitodd + \or \expandafter\XINT_bezout_exiteven + \else\expandafter\XINT_bezout_exitodd \fi }% -\def\XINT@bezout@exiteven #1#2#3#4#5% +\def\XINT_bezout_exiteven #1#2#3#4#5% {% \space {#5}{#4}{#1}% }% -\def\XINT@bezout@exitodd #1#2#3#4#5% +\def\XINT_bezout_exitodd #1#2#3#4#5% {% \space {-#5}{-#4}{#1}% }% % \end{macrocode} % \subsection{\csh{xintEuclideAlgorithm}} -% \begin{verbatim} +% \lverb|& % Pour Euclide: -% {N}{A}{D=r(n)}{B}{q1}{r1}{q2}{r2}{q3}{r3}....{qN}{rN=0} -% u<2n> = u<2n+3>u<2n+2> + u<2n+4> à la n ième étape -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% {N}{A}{D=r(n)}{B}{q1}{r1}{q2}{r2}{q3}{r3}....{qN}{rN=0}$\ +% u<2n> = u<2n+3>u<2n+2> + u<2n+4> à la n ième étape| % \begin{macrocode} \def\xintEuclideAlgorithm {\romannumeral0\xinteuclidealgorithm }% \def\xinteuclidealgorithm #1% {% - \expandafter \XINT@euc \expandafter{\romannumeral0\xintiabs {#1}}% + \expandafter \XINT_euc \expandafter{\romannumeral0\xintiabs {#1}}% }% -\def\XINT@euc #1#2% +\def\XINT_euc #1#2% {% - \expandafter\XINT@euc@fork \romannumeral0\xintiabs {#2}\Z #1\Z + \expandafter\XINT_euc_fork \romannumeral0\xintiabs {#2}\Z #1\Z }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% Ici #3#4=A, #1#2=B -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|Ici #3#4=A, #1#2=B| % \begin{macrocode} -\def\XINT@euc@fork #1#2\Z #3#4\Z +\def\XINT_euc_fork #1#2\Z #3#4\Z {% - \xint@UDzerofork - #1\dummy \XINT@euc@BisZero - #3\dummy \XINT@euc@AisZero - 0\dummy \XINT@euc@a - \xint@UDkrof + \xint_UDzerofork + #1\dummy \XINT_euc_BisZero + #3\dummy \XINT_euc_AisZero + 0\dummy \XINT_euc_a + \krof {0}{#1#2}{#3#4}{{#3#4}{#1#2}}{}\Z }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% Le {} pour protéger {{A}{B}} si on s'arrête après une étape (B divise A) -% On va renvoyer: -% {N}{A}{D=r(n)}{B}{q1}{r1}{q2}{r2}{q3}{r3}....{qN}{rN=0} -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|& +% Le {} pour protéger {{A}{B}} si on s'arrête après une étape (B divise +% A). +% On va renvoyer:$\ +% {N}{A}{D=r(n)}{B}{q1}{r1}{q2}{r2}{q3}{r3}....{qN}{rN=0}| % \begin{macrocode} -\def\XINT@euc@AisZero #1#2#3#4#5#6{ {1}{0}{#2}{#2}{0}{0}}% -\def\XINT@euc@BisZero #1#2#3#4#5#6{ {1}{0}{#3}{#3}{0}{0}}% +\def\XINT_euc_AisZero #1#2#3#4#5#6{ {1}{0}{#2}{#2}{0}{0}}% +\def\XINT_euc_BisZero #1#2#3#4#5#6{ {1}{0}{#3}{#3}{0}{0}}% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% {n}{rn}{an}{{qn}{rn}}...{{A}{B}}{}\Z -% an = r(n-1) -% Pour n=0 on a juste {0}{B}{A}{{A}{B}}{}\Z -% \XINT@div@prepare {u}{v} divise v par u -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|& +% {n}{rn}{an}{{qn}{rn}}...{{A}{B}}{}\Z$\ +% a(n) = r(n-1). Pour n=0 on a juste {0}{B}{A}{{A}{B}}{}\Z$\ +% \XINT_div_prepare {u}{v} divise v par u| % \begin{macrocode} -\def\XINT@euc@a #1#2#3% +\def\XINT_euc_a #1#2#3% {% - \expandafter\XINT@euc@b + \expandafter\XINT_euc_b \expandafter {\the\numexpr #1+1\expandafter }% - \romannumeral0\XINT@div@prepare {#2}{#3}{#2}% + \romannumeral0\XINT_div_prepare {#2}{#3}{#2}% }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% {n+1}{q(n+1)}{r(n+1)}{rn}{{qn}{rn}}... -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|{n+1}{q(n+1)}{r(n+1)}{rn}{{qn}{rn}}...| % \begin{macrocode} -\def\XINT@euc@b #1#2#3#4% +\def\XINT_euc_b #1#2#3#4% {% - \XINT@euc@c #3\Z {#1}{#3}{#4}{{#2}{#3}}% + \XINT_euc_c #3\Z {#1}{#3}{#4}{{#2}{#3}}% }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% r(n+1)\Z {n+1}{r(n+1)}{r(n)}{{q(n+1)}{r(n+1)}}{{qn}{rn}}... -% Test si r(n+1) est nul. -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|r(n+1)\Z {n+1}{r(n+1)}{r(n)}{{q(n+1)}{r(n+1)}}{{qn}{rn}}...$\ +% Test si r(n+1) est nul.| % \begin{macrocode} -\def\XINT@euc@c #1#2\Z +\def\XINT_euc_c #1#2\Z {% - \xint@zero #1\xint@euc@end0\XINT@euc@a + \xint_gob_til_zero #1\xint_euc_end0\XINT_euc_a }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} +% \lverb|& % {n+1}{r(n+1)}{r(n)}{{q(n+1)}{r(n+1)}}...{}\Z -% Ici r(n+1) = 0. On arrête on se prépare à inverser. -% {n+1}{0}{r(n)}{{q(n+1)}{r(n+1)}}.....{{q1}{r1}}{{A}{B}}{}\Z -% On veut renvoyer: -% {N=n+1}{A}{D=r(n)}{B}{q1}{r1}{q2}{r2}{q3}{r3}....{qN}{rN=0} -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% Ici r(n+1) = 0. On arrête on se prépare à inverser +% {n+1}{0}{r(n)}{{q(n+1)}{r(n+1)}}.....{{q1}{r1}}{{A}{B}}{}\Z$\ +% On veut renvoyer: {N=n+1}{A}{D=r(n)}{B}{q1}{r1}{q2}{r2}{q3}{r3}....{qN}{rN=0}| % \begin{macrocode} -\def\xint@euc@end0\XINT@euc@a #1#2#3#4\Z% +\def\xint_euc_end0\XINT_euc_a #1#2#3#4\Z% {% - \expandafter\xint@euc@end@ + \expandafter\xint_euc_end_ \romannumeral0% - \XINT@rord@main {}#4{{#1}{#3}}% - \xint@UNDEF - \xint@undef\xint@undef\xint@undef\xint@undef - \xint@undef\xint@undef\xint@undef\xint@undef - \xint@UNDEF + \XINT_rord_main {}#4{{#1}{#3}}% + \xint_relax + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_relax }% -\def\xint@euc@end@ #1#2#3% +\def\xint_euc_end_ #1#2#3% {% \space {#1}{#3}{#2}% }% % \end{macrocode} % \subsection{\csh{xintBezoutAlgorithm}} -% \begin{verbatim} -% Pour Bezout: objectif, renvoyer -% alpha0=1, beta0=0 -% alpha(-1)=0, beta(-1)=1 -% {N}{A}{0}{1}{D=r(n)}{B}{1}{0}{q1}{r1}{alpha1=q1}{beta1=1} -% {q2}{r2}{alpha2}{beta2}....{qN}{rN=0}{alphaN=A/D}{betaN=B/D} -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|& +% Pour Bezout: objectif, renvoyer$\ +% {N}{A}{0}{1}{D=r(n)}{B}{1}{0}{q1}{r1}{alpha1=q1}{beta1=1}$\ +% {q2}{r2}{alpha2}{beta2}....{qN}{rN=0}{alphaN=A/D}{betaN=B/D}$\ +% alpha0=1, beta0=0, alpha(-1)=0, beta(-1)=1| % \begin{macrocode} \def\xintBezoutAlgorithm {\romannumeral0\xintbezoutalgorithm }% \def\xintbezoutalgorithm #1% {% - \expandafter \XINT@bezalg \expandafter{\romannumeral0\xintiabs {#1}}% + \expandafter \XINT_bezalg \expandafter{\romannumeral0\xintiabs {#1}}% }% -\def\XINT@bezalg #1#2% +\def\XINT_bezalg #1#2% {% - \expandafter\XINT@bezalg@fork \romannumeral0\xintiabs {#2}\Z #1\Z + \expandafter\XINT_bezalg_fork \romannumeral0\xintiabs {#2}\Z #1\Z }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% Ici #3#4=A, #1#2=B -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|Ici #3#4=A, #1#2=B| % \begin{macrocode} -\def\XINT@bezalg@fork #1#2\Z #3#4\Z +\def\XINT_bezalg_fork #1#2\Z #3#4\Z {% - \xint@UDzerofork - #1\dummy \XINT@bezalg@BisZero - #3\dummy \XINT@bezalg@AisZero - 0\dummy \XINT@bezalg@a - \xint@UDkrof + \xint_UDzerofork + #1\dummy \XINT_bezalg_BisZero + #3\dummy \XINT_bezalg_AisZero + 0\dummy \XINT_bezalg_a + \krof 0{#1#2}{#3#4}1001{{#3#4}{#1#2}}{}\Z }% -\def\XINT@bezalg@AisZero #1#2#3\Z{ {1}{0}{0}{1}{#2}{#2}{1}{0}{0}{0}{0}{1}}% -\def\XINT@bezalg@BisZero #1#2#3#4\Z{ {1}{0}{0}{1}{#3}{#3}{1}{0}{0}{0}{0}{1}}% +\def\XINT_bezalg_AisZero #1#2#3\Z{ {1}{0}{0}{1}{#2}{#2}{1}{0}{0}{0}{0}{1}}% +\def\XINT_bezalg_BisZero #1#2#3#4\Z{ {1}{0}{0}{1}{#3}{#3}{1}{0}{0}{0}{0}{1}}% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} +% \lverb|& % pour préparer l'étape n+1 il faut -% {n}{r(n)}{r(n-1)}{alpha(n)}{beta(n)}{alpha(n-1)}{beta(n-1)} +% {n}{r(n)}{r(n-1)}{alpha(n)}{beta(n)}{alpha(n-1)}{beta(n-1)}& % {{q(n)}{r(n)}{alpha(n)}{beta(n)}}... -% division de #3 par #2 -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% division de #3 par #2| % \begin{macrocode} -\def\XINT@bezalg@a #1#2#3% +\def\XINT_bezalg_a #1#2#3% {% - \expandafter\XINT@bezalg@b + \expandafter\XINT_bezalg_b \expandafter {\the\numexpr #1+1\expandafter }% - \romannumeral0\XINT@div@prepare {#2}{#3}{#2}% + \romannumeral0\XINT_div_prepare {#2}{#3}{#2}% }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% {n+1}{q(n+1)}{r(n+1)}{r(n)}{alpha(n)}{beta(n)}{alpha(n-1)}{beta(n-1)}... -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|& +% {n+1}{q(n+1)}{r(n+1)}{r(n)}{alpha(n)}{beta(n)}{alpha(n-1)}{beta(n-1)}...| % \begin{macrocode} -\def\XINT@bezalg@b #1#2#3#4#5#6#7#8% +\def\XINT_bezalg_b #1#2#3#4#5#6#7#8% {% - \expandafter\XINT@bezalg@c\expandafter + \expandafter\XINT_bezalg_c\expandafter {\romannumeral0\xintiadd {\xintiMul {#6}{#2}}{#8}}% {\romannumeral0\xintiadd {\xintiMul {#5}{#2}}{#7}}% {#1}{#2}{#3}{#4}{#5}{#6}% }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% {beta(n+1)}{alpha(n+1)}{n+1}{q(n+1)}{r(n+1)}{r(n)}{alpha(n)}{beta(n}}% -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|& +% {beta(n+1)}{alpha(n+1)}{n+1}{q(n+1)}{r(n+1)}{r(n)}{alpha(n)}{beta(n}}| % \begin{macrocode} -\def\XINT@bezalg@c #1#2#3#4#5#6% +\def\XINT_bezalg_c #1#2#3#4#5#6% {% - \expandafter\XINT@bezalg@d\expandafter {#2}{#3}{#4}{#5}{#6}{#1}% + \expandafter\XINT_bezalg_d\expandafter {#2}{#3}{#4}{#5}{#6}{#1}% }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% {alpha(n+1)}{n+1}{q(n+1)}{r(n+1)}{r(n)}{beta(n+1)} -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|{alpha(n+1)}{n+1}{q(n+1)}{r(n+1)}{r(n)}{beta(n+1)}| % \begin{macrocode} -\def\XINT@bezalg@d #1#2#3#4#5#6#7#8% +\def\XINT_bezalg_d #1#2#3#4#5#6#7#8% {% - \XINT@bezalg@e #4\Z {#2}{#4}{#5}{#1}{#6}{#7}{#8}{{#3}{#4}{#1}{#6}}% + \XINT_bezalg_e #4\Z {#2}{#4}{#5}{#1}{#6}{#7}{#8}{{#3}{#4}{#1}{#6}}% }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% r(n+1)\Z {n+1}{r(n+1)}{r(n)}{alpha(n+1)}{beta(n+1)} -% {alpha(n)}{beta(n)}{q,r,alpha,beta(n+1)} -% Test si r(n+1) est nul. -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|r(n+1)\Z {n+1}{r(n+1)}{r(n)}{alpha(n+1)}{beta(n+1)}$\ +% {alpha(n)}{beta(n)}{q,r,alpha,beta(n+1)}$\ +% Test si r(n+1) est nul.| % \begin{macrocode} -\def\XINT@bezalg@e #1#2\Z +\def\XINT_bezalg_e #1#2\Z {% - \xint@zero #1\xint@bezalg@end0\XINT@bezalg@a + \xint_gob_til_zero #1\xint_bezalg_end0\XINT_bezalg_a }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% Ici r(n+1) = 0. On arrête on se prépare à inverser. -% {n+1}{r(n+1)}{r(n)}{alpha(n+1)}{beta(n+1)}% -% {alpha(n)}{beta(n)}% -% {q,r,alpha,beta(n+1)}...{{A}{B}}{}\Z -% On veut renvoyer -% {N}{A}{0}{1}{D=r(n)}{B}{1}{0}{q1}{r1}{alpha1=q1}{beta1=1} -% {q2}{r2}{alpha2}{beta2}....{qN}{rN=0}{alphaN=A/D}{betaN=B/D} -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|& +% Ici r(n+1) = 0. On arrête on se prépare à inverser.$\ +% {n+1}{r(n+1)}{r(n)}{alpha(n+1)}{beta(n+1)}{alpha(n)}{beta(n)}$\ +% {q,r,alpha,beta(n+1)}...{{A}{B}}{}\Z$\ +% On veut renvoyer$\ +% {N}{A}{0}{1}{D=r(n)}{B}{1}{0}{q1}{r1}{alpha1=q1}{beta1=1}$\ +% {q2}{r2}{alpha2}{beta2}....{qN}{rN=0}{alphaN=A/D}{betaN=B/D}| % \begin{macrocode} -\def\xint@bezalg@end0\XINT@bezalg@a #1#2#3#4#5#6#7#8\Z +\def\xint_bezalg_end0\XINT_bezalg_a #1#2#3#4#5#6#7#8\Z {% - \expandafter\xint@bezalg@end@ + \expandafter\xint_bezalg_end_ \romannumeral0% - \XINT@rord@main {}#8{{#1}{#3}}% - \xint@UNDEF - \xint@undef\xint@undef\xint@undef\xint@undef - \xint@undef\xint@undef\xint@undef\xint@undef - \xint@UNDEF + \XINT_rord_main {}#8{{#1}{#3}}% + \xint_relax + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_relax }% % \end{macrocode} -% \vspace*{-.5\baselineskip} -% \begin{verbatim} -% {N}{D}{A}{B}{q1}{r1}{alpha1=q1}{beta1=1}{q2}{r2}{alpha2}{beta2} -% ....{qN}{rN=0}{alphaN=A/D}{betaN=B/D} -% On veut renvoyer -% {N}{A}{0}{1}{D=r(n)}{B}{1}{0}{q1}{r1}{alpha1=q1}{beta1=1} -% {q2}{r2}{alpha2}{beta2}....{qN}{rN=0}{alphaN=A/D}{betaN=B/D} -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|& +% {N}{D}{A}{B}{q1}{r1}{alpha1=q1}{beta1=1}{q2}{r2}{alpha2}{beta2}$\ +% ....{qN}{rN=0}{alphaN=A/D}{betaN=B/D}$\ +% On veut renvoyer$\ +% {N}{A}{0}{1}{D=r(n)}{B}{1}{0}{q1}{r1}{alpha1=q1}{beta1=1}$\ +% {q2}{r2}{alpha2}{beta2}....{qN}{rN=0}{alphaN=A/D}{betaN=B/D}| % \begin{macrocode} -\def\xint@bezalg@end@ #1#2#3#4% +\def\xint_bezalg_end_ #1#2#3#4% {% \space {#1}{#3}{0}{1}{#2}{#4}{1}{0}% }% % \end{macrocode} % \subsection{\csh{xintTypesetEuclideAlgorithm}} -% \begin{verbatim} +% \lverb|& % TYPESETTING +% % Organisation: -% {N}{A}{D}{B}{q1}{r1}{q2}{r2}{q3}{r3}....{qN}{rN=0} +% +% {N}{A}{D}{B}{q1}{r1}{q2}{r2}{q3}{r3}....{qN}{rN=0}$\ % \U1 = N = nombre d'étapes, \U3 = PGCD, \U2 = A, \U4=B % q1 = \U5, q2 = \U7 --> qn = \U<2n+3>, rn = \U<2n+4> % bn = rn. B = r0. A=r(-1) -% r(n-2) = q(n)r(n-1)+r(n) (n e étape) (n au moins 1) +% +% r(n-2) = q(n)r(n-1)+r(n) (n e étape) +% % \U{2n} = \U{2n+3} \times \U{2n+2} + \U{2n+4}, n e étape. -% avec n entre 1 et N. -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% (avec n entre 1 et N)| % \begin{macrocode} \def\xintTypesetEuclideAlgorithm #1#2% {% l'algo remplace #1 et #2 par |#1| et |#2| @@ -9139,18 +8980,15 @@ first place. }% % \end{macrocode} % \subsection{\csh{xintTypesetBezoutAlgorithm}} -% \begin{verbatim} +% \lverb|& % Pour Bezout on a: -% {N}{A}{0}{1}{D=r(n)}{B}{1}{0}{q1}{r1}{alpha1=q1}{beta1=1} +% {N}{A}{0}{1}{D=r(n)}{B}{1}{0}{q1}{r1}{alpha1=q1}{beta1=1}$\ % {q2}{r2}{alpha2}{beta2}....{qN}{rN=0}{alphaN=A/D}{betaN=B/D}% -% Donc 4N+8 termes -% U1 = N, U2= A, U5=D, U6=B, -% q1 = U9, qn = U{4n+5}, n au moins 1 -% rn = U{4n+6} , n au moins -1 -% alpha(n) = U{4n+7}, n au moins -1 -% beta(n) = U{4n+8}, n au moins -1 -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% Donc 4N+8 termes: +% U1 = N, U2= A, U5=D, U6=B, q1 = U9, qn = U{4n+5}, n au moins 1$\ +% rn = U{4n+6}, n au moins -1$\ +% alpha(n) = U{4n+7}, n au moins -1$\ +% beta(n) = U{4n+8}, n au moins -1| % \begin{macrocode} \def\xintTypesetBezoutAlgorithm #1#2% {% @@ -9191,7 +9029,7 @@ first place. \par \endgroup }% -\XINT@gcd@restorecatcodes@endinput% +\XINT_gcd_restorecatcodes_endinput% % \end{macrocode} %\catcode`\<=0 \catcode`\>=11 \catcode`\*=11 \catcode`\/=11 %\let</xintgcd>\relax @@ -9297,8 +9135,8 @@ first place. % % Perhaps catcodes have changed after the loading of \xintname % and prior to the current loading of \xintfracname, so we can not employ -% the |\XINT@restorecatcodes@endinput| in this style file. But -% there is no problem using |\XINT@setcatcodes|. +% the |\XINT_restorecatcodes_endinput| in this style file. But +% there is no problem using |\XINT_setcatcodes|. % % \begin{macrocode} \begingroup\catcode61\catcode48\catcode32=10\relax% @@ -9306,11 +9144,11 @@ first place. \endlinechar=13 % \catcode123=1 % { \catcode125=2 % } - \catcode64=11 % @ + \catcode95=11 % _ \def\x {% \endgroup - \edef\XINT@frac@restorecatcodes@endinput + \edef\XINT_frac_restorecatcodes_endinput {% \catcode94=\the\catcode94 % ^ \catcode93=\the\catcode93 % ] @@ -9328,7 +9166,7 @@ first place. \catcode45=\the\catcode45 % - \catcode44=\the\catcode44 % , \catcode35=\the\catcode35 % # - \catcode64=\the\catcode64 % @ + \catcode95=\the\catcode95 % _ \catcode125=\the\catcode125 % } \catcode123=\the\catcode123 % { \endlinechar=\the\endlinechar @@ -9337,7 +9175,7 @@ first place. \catcode61=\the\catcode61\relax % = \noexpand\endinput }% - \XINT@setcatcodes + \XINT_setcatcodes \catcode91=12 % [ \catcode93=12 % ] \catcode94=7 % ^ @@ -9347,6 +9185,7 @@ first place. % \subsection{Package identification} % \begin{macrocode} \begingroup + \catcode64=11 % @ \catcode58=12 % : \expandafter\ifx\csname ProvidesPackage\endcsname\relax \def\x#1#2#3[#4]{\endgroup @@ -9366,259 +9205,261 @@ first place. \fi \expandafter\x\csname ver@xintfrac.sty\endcsname \ProvidesPackage{xintfrac}% - [2013/05/09 v1.06a Expandable operations on fractions (jfB)]% + [2013/05/14 v1.06b Expandable operations on fractions (jfB)]% % \end{macrocode} % \subsection{\csh{xintLen}} % \begin{macrocode} \def\xintLen {\romannumeral0\xintlen }% \def\xintlen #1% {% - \expandafter\XINT@flen\romannumeral0\XINT@infrac {#1}% + \expandafter\XINT_flen\romannumeral0\XINT_infrac {#1}% }% -\def\XINT@flen #1#2#3% +\def\XINT_flen #1#2#3% {% \expandafter\space - \the\numexpr -1+\XINT@Abs {#1}+\XINT@Len {#2}+\XINT@Len {#3}\relax + \the\numexpr -1+\XINT_Abs {#1}+\XINT_Len {#2}+\XINT_Len {#3}\relax }% % \end{macrocode} -% \subsection{\csh{XINT@outfrac}} -% \begin{verbatim} +% \subsection{\csh{XINT\_outfrac}} +% \lverb|& % 1.06a version now outputs 0/1[0] and not 0[0] in case of zero. More generally % all macros have been checked in xintfrac, xintseries, xintcfrac, to make sure % the output format for fractions was always a/b[n]. (except of course \xintIrr, -% \xintJrr, \xintRaw) -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \xintJrr, \xintRaw)| % \begin{macrocode} -\def\XINT@outfrac #1#2#3% +\def\XINT_outfrac #1#2#3% {% - \ifcase\XINT@Sgn{#3} - \expandafter \XINT@outfrac@divisionbyzero + \ifcase\XINT_Sgn{#3} + \expandafter \XINT_outfrac_divisionbyzero \or - \expandafter \XINT@outfrac@P + \expandafter \XINT_outfrac_P \else - \expandafter \XINT@outfrac@N + \expandafter \XINT_outfrac_N \fi {#2}{#3}[#1]% }% -\def\XINT@outfrac@divisionbyzero #1#2{\xintError:DivisionByZero\space #1/0}% -\def\XINT@outfrac@P #1#2% +\def\XINT_outfrac_divisionbyzero #1#2{\xintError:DivisionByZero\space #1/0}% +\def\XINT_outfrac_P #1#2% {% - \ifcase\XINT@Sgn{#1} - \expandafter\XINT@outfrac@Zero + \ifcase\XINT_Sgn{#1} + \expandafter\XINT_outfrac_Zero \fi \space #1/#2% }% -\def\XINT@outfrac@Zero #1[#2]{ 0/1[0]}% -\def\XINT@outfrac@N #1#2% +\def\XINT_outfrac_Zero #1[#2]{ 0/1[0]}% +\def\XINT_outfrac_N #1#2% {% - \expandafter\XINT@outfrac@N@a\expandafter - {\romannumeral0\XINT@opp #2}{\romannumeral0\XINT@opp #1}% + \expandafter\XINT_outfrac_N_a\expandafter + {\romannumeral0\XINT_opp #2}{\romannumeral0\XINT_opp #1}% }% -\def\XINT@outfrac@N@a #1#2% +\def\XINT_outfrac_N_a #1#2% {% - \expandafter\XINT@outfrac@P\expandafter {#2}{#1}% + \expandafter\XINT_outfrac_P\expandafter {#2}{#1}% }% % \end{macrocode} -% \subsection{\csh{XINT@inFrac}} +% \subsection{\csh{XINT\_inFrac}} % \begin{macrocode} -\def\XINT@inFrac {\romannumeral0\XINT@infrac }% -\def\XINT@infrac #1% +\def\XINT_inFrac {\romannumeral0\XINT_infrac }% +\def\XINT_infrac #1% {% - \expandafter\XINT@infrac@ \romannumeral-`0#1[\W]\Z\T + \expandafter\XINT_infrac_ \romannumeral-`0#1[\W]\Z\T }% -\def\XINT@infrac@ #1[#2#3]#4\Z +\def\XINT_infrac_ #1[#2#3]#4\Z {% - \xint@UDwfork - #2\dummy \XINT@infrac@A - \W\dummy \XINT@infrac@B - \xint@UDkrof + \xint_UDwfork + #2\dummy \XINT_infrac_A + \W\dummy \XINT_infrac_B + \krof #1[#2#3]#4% }% -\def\XINT@infrac@A #1[\W]\T +\def\XINT_infrac_A #1[\W]\T {% - \XINT@frac #1/\W\Z + \XINT_frac #1/\W\Z }% -\def\XINT@infrac@B #1% +\def\XINT_infrac_B #1% {% - \xint@zero #1\XINT@infrac@Zero0\XINT@infrac@BB #1% + \xint_gob_til_zero #1\XINT_infrac_Zero0\XINT_infrac_BB #1% }% -\def\XINT@infrac@BB #1[\W]\T {\XINT@infrac@BC #1/\W\Z }% -\def\XINT@infrac@BC #1/#2#3\Z +\def\XINT_infrac_BB #1[\W]\T {\XINT_infrac_BC #1/\W\Z }% +\def\XINT_infrac_BC #1/#2#3\Z {% - \xint@UDwfork - #2\dummy \XINT@infrac@BCa - \W\dummy {\expandafter\XINT@infrac@BCb \romannumeral-`0#2}% - \xint@UDkrof + \xint_UDwfork + #2\dummy \XINT_infrac_BCa + \W\dummy {\expandafter\XINT_infrac_BCb \romannumeral-`0#2}% + \krof #3\Z #1\Z }% -\def\XINT@infrac@BCa \Z #1[#2]#3\Z { {#2}{#1}{1}}% -\def\XINT@infrac@BCb #1[#2]/\W\Z #3\Z { {#2}{#3}{#1}}% -\def\XINT@infrac@Zero #1\T { {0}{0}{1}}% +\def\XINT_infrac_BCa \Z #1[#2]#3\Z { {#2}{#1}{1}}% +\def\XINT_infrac_BCb #1[#2]/\W\Z #3\Z { {#2}{#3}{#1}}% +\def\XINT_infrac_Zero #1\T { {0}{0}{1}}% % \end{macrocode} -% \subsection{\csh{XINT@frac}} +% \subsection{\csh{XINT\_frac}} % \begin{macrocode} -\def\XINT@frac #1/#2#3\Z +\def\XINT_frac #1/#2#3\Z {% - \xint@UDwfork - #2\dummy \XINT@frac@A - \W\dummy {\expandafter\XINT@frac@B \romannumeral-`0#2}% - \xint@UDkrof + \xint_UDwfork + #2\dummy \XINT_frac_A + \W\dummy {\expandafter\XINT_frac_B \romannumeral-`0#2}% + \krof #3.\W\Z #1.\W\Z }% -\def\XINT@frac@B #1.#2#3\Z +\def\XINT_frac_B #1.#2#3\Z {% - \xint@UDwfork - #2\dummy \XINT@frac@Ba - \W\dummy {\XINT@frac@Bb #2}% - \xint@UDkrof + \xint_UDwfork + #2\dummy \XINT_frac_Ba + \W\dummy {\XINT_frac_Bb #2}% + \krof #3\Z #1\Z }% -\def\XINT@frac@Bb #1/\W.\W\Z #2\Z +\def\XINT_frac_Bb #1/\W.\W\Z #2\Z {% - \expandafter \XINT@frac@C \expandafter - {\romannumeral0\XINT@length {#1}}{#2#1}% + \expandafter \XINT_frac_C \expandafter + {\romannumeral0\XINT_length {#1}}{#2#1}% }% -\def\XINT@frac@Ba \Z #1/\W\Z {\XINT@frac@C {0}{#1}}% -\def\XINT@frac@A .\W\Z {\XINT@frac@C {0}{1}}% -\def\XINT@frac@C #1#2#3.#4#5\Z +\def\XINT_frac_Ba \Z #1/\W\Z {\XINT_frac_C {0}{#1}}% +\def\XINT_frac_A .\W\Z {\XINT_frac_C {0}{1}}% +\def\XINT_frac_C #1#2#3.#4#5\Z {% - \xint@UDwfork - #4\dummy \XINT@frac@Ca - \W\dummy {\XINT@frac@Cb #4}% - \xint@UDkrof + \xint_UDwfork + #4\dummy \XINT_frac_Ca + \W\dummy {\XINT_frac_Cb #4}% + \krof #5\Z #3\Z {#1}{#2}% }% -\def\XINT@frac@Ca \Z #1\Z {\XINT@frac@D {0}{#1}}% -\def\XINT@frac@Cb #1.\W\Z #2\Z +\def\XINT_frac_Ca \Z #1\Z {\XINT_frac_D {0}{#1}}% +\def\XINT_frac_Cb #1.\W\Z #2\Z {% - \expandafter\XINT@frac@D\expandafter - {\romannumeral0\XINT@length {#1}}{#2#1}% + \expandafter\XINT_frac_D\expandafter + {\romannumeral0\XINT_length {#1}}{#2#1}% }% -\def\XINT@frac@D #1#2#3#4% +\def\XINT_frac_D #1#2#3#4% {% - \expandafter \XINT@frac@E \expandafter + \expandafter \XINT_frac_E \expandafter {\the\numexpr -#1+#3\expandafter}\expandafter - {\romannumeral0\XINT@num@loop #2\R\R\R\R\R\R\R\R\Z }% - {\romannumeral0\XINT@num@loop #4\R\R\R\R\R\R\R\R\Z }% + {\romannumeral0\XINT_num_loop #2% + \xint_relax\xint_relax\xint_relax\xint_relax + \xint_relax\xint_relax\xint_relax\xint_relax\Z }% + {\romannumeral0\XINT_num_loop #4% + \xint_relax\xint_relax\xint_relax\xint_relax + \xint_relax\xint_relax\xint_relax\xint_relax\Z }% }% -\def\XINT@frac@E #1#2#3% +\def\XINT_frac_E #1#2#3% {% - \expandafter \XINT@frac@F #3\Z {#2}{#1}% + \expandafter \XINT_frac_F #3\Z {#2}{#1}% }% -\def\XINT@frac@F #1% +\def\XINT_frac_F #1% {% - \xint@UDzerominusfork - #1-\dummy \XINT@frac@Gdivisionbyzero - 0#1\dummy \XINT@frac@Gneg - 0-\dummy {\XINT@frac@Gpos #1}% - \xint@UDkrof + \xint_UDzerominusfork + #1-\dummy \XINT_frac_Gdivisionbyzero + 0#1\dummy \XINT_frac_Gneg + 0-\dummy {\XINT_frac_Gpos #1}% + \krof }% -\def\XINT@frac@Gdivisionbyzero #1\Z #2#3% +\def\XINT_frac_Gdivisionbyzero #1\Z #2#3% {% \xintError:DivisionByZero\space {0}{#2}{0}% }% -\def\XINT@frac@Gneg #1\Z #2#3% +\def\XINT_frac_Gneg #1\Z #2#3% {% - \expandafter\XINT@frac@H \expandafter{\romannumeral0\XINT@opp #2}{#3}{#1}% + \expandafter\XINT_frac_H \expandafter{\romannumeral0\XINT_opp #2}{#3}{#1}% }% -\def\XINT@frac@H #1#2{ {#2}{#1}}% -\def\XINT@frac@Gpos #1\Z #2#3{ {#3}{#2}{#1}}% +\def\XINT_frac_H #1#2{ {#2}{#1}}% +\def\XINT_frac_Gpos #1\Z #2#3{ {#3}{#2}{#1}}% % \end{macrocode} -% \subsection{\csh{XINT@factortens},~\csh{XINT@cuz@cnt}} +% \subsection{\csh{XINT\_factortens},~\csh{XINT\_cuz\_cnt}} % \begin{macrocode} -\def\XINT@factortens #1% +\def\XINT_factortens #1% {% - \expandafter\XINT@cuz@cnt@loop\expandafter - {\expandafter}\romannumeral0\XINT@rord@main {}#1% - \xint@UNDEF - \xint@undef\xint@undef\xint@undef\xint@undef - \xint@undef\xint@undef\xint@undef\xint@undef - \xint@UNDEF + \expandafter\XINT_cuz_cnt_loop\expandafter + {\expandafter}\romannumeral0\XINT_rord_main {}#1% + \xint_relax + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_relax \R\R\R\R\R\R\R\R\Z }% -\def\XINT@cuz@cnt #1% +\def\XINT_cuz_cnt #1% {% - \XINT@cuz@cnt@loop {}#1\R\R\R\R\R\R\R\R\Z + \XINT_cuz_cnt_loop {}#1\R\R\R\R\R\R\R\R\Z }% -\def\XINT@cuz@cnt@loop #1#2#3#4#5#6#7#8#9% +\def\XINT_cuz_cnt_loop #1#2#3#4#5#6#7#8#9% {% - \xint@r #9\XINT@cuz@cnt@toofara \R - \expandafter\XINT@cuz@cnt@checka\expandafter + \xint_gob_til_r #9\XINT_cuz_cnt_toofara \R + \expandafter\XINT_cuz_cnt_checka\expandafter {\the\numexpr #1+8\relax}{#2#3#4#5#6#7#8#9}% }% -\def\XINT@cuz@cnt@toofara\R - \expandafter\XINT@cuz@cnt@checka\expandafter #1#2% +\def\XINT_cuz_cnt_toofara\R + \expandafter\XINT_cuz_cnt_checka\expandafter #1#2% {% - \XINT@cuz@cnt@toofarb {#1}#2% + \XINT_cuz_cnt_toofarb {#1}#2% }% -\def\XINT@cuz@cnt@toofarb #1#2\Z {\XINT@cuz@cnt@toofarc #2\Z {#1}}% -\def\XINT@cuz@cnt@toofarc #1#2#3#4#5#6#7#8% +\def\XINT_cuz_cnt_toofarb #1#2\Z {\XINT_cuz_cnt_toofarc #2\Z {#1}}% +\def\XINT_cuz_cnt_toofarc #1#2#3#4#5#6#7#8% {% - \xint@r #2\XINT@cuz@cnt@toofard 7% - #3\XINT@cuz@cnt@toofard 6% - #4\XINT@cuz@cnt@toofard 5% - #5\XINT@cuz@cnt@toofard 4% - #6\XINT@cuz@cnt@toofard 3% - #7\XINT@cuz@cnt@toofard 2% - #8\XINT@cuz@cnt@toofard 1% + \xint_gob_til_r #2\XINT_cuz_cnt_toofard 7% + #3\XINT_cuz_cnt_toofard 6% + #4\XINT_cuz_cnt_toofard 5% + #5\XINT_cuz_cnt_toofard 4% + #6\XINT_cuz_cnt_toofard 3% + #7\XINT_cuz_cnt_toofard 2% + #8\XINT_cuz_cnt_toofard 1% \Z #1#2#3#4#5#6#7#8% }% -\def\XINT@cuz@cnt@toofard #1#2\Z #3\R #4\Z #5% +\def\XINT_cuz_cnt_toofard #1#2\Z #3\R #4\Z #5% {% - \expandafter\XINT@cuz@cnt@toofare + \expandafter\XINT_cuz_cnt_toofare \the\numexpr #3\relax \R\R\R\R\R\R\R\R\Z {\the\numexpr #5-#1\relax}\R\Z }% -\def\XINT@cuz@cnt@toofare #1#2#3#4#5#6#7#8% +\def\XINT_cuz_cnt_toofare #1#2#3#4#5#6#7#8% {% - \xint@r #2\XINT@cuz@cnt@stopc 1% - #3\XINT@cuz@cnt@stopc 2% - #4\XINT@cuz@cnt@stopc 3% - #5\XINT@cuz@cnt@stopc 4% - #6\XINT@cuz@cnt@stopc 5% - #7\XINT@cuz@cnt@stopc 6% - #8\XINT@cuz@cnt@stopc 7% + \xint_gob_til_r #2\XINT_cuz_cnt_stopc 1% + #3\XINT_cuz_cnt_stopc 2% + #4\XINT_cuz_cnt_stopc 3% + #5\XINT_cuz_cnt_stopc 4% + #6\XINT_cuz_cnt_stopc 5% + #7\XINT_cuz_cnt_stopc 6% + #8\XINT_cuz_cnt_stopc 7% \Z #1#2#3#4#5#6#7#8% }% -\def\XINT@cuz@cnt@checka #1#2% +\def\XINT_cuz_cnt_checka #1#2% {% - \expandafter\XINT@cuz@cnt@checkb\the\numexpr #2\relax \Z {#1}% + \expandafter\XINT_cuz_cnt_checkb\the\numexpr #2\relax \Z {#1}% }% -\def\XINT@cuz@cnt@checkb #1% +\def\XINT_cuz_cnt_checkb #1% {% - \xint@zero #1\expandafter\XINT@cuz@cnt@loop\xint@z - 0\XINT@cuz@cnt@stopa #1% + \xint_gob_til_zero #1\expandafter\XINT_cuz_cnt_loop\xint_gob_til_z + 0\XINT_cuz_cnt_stopa #1% }% -\def\XINT@cuz@cnt@stopa #1\Z +\def\XINT_cuz_cnt_stopa #1\Z {% - \XINT@cuz@cnt@stopb #1\R\R\R\R\R\R\R\R\Z % + \XINT_cuz_cnt_stopb #1\R\R\R\R\R\R\R\R\Z % }% -\def\XINT@cuz@cnt@stopb #1#2#3#4#5#6#7#8#9% +\def\XINT_cuz_cnt_stopb #1#2#3#4#5#6#7#8#9% {% - \xint@r #2\XINT@cuz@cnt@stopc 1% - #3\XINT@cuz@cnt@stopc 2% - #4\XINT@cuz@cnt@stopc 3% - #5\XINT@cuz@cnt@stopc 4% - #6\XINT@cuz@cnt@stopc 5% - #7\XINT@cuz@cnt@stopc 6% - #8\XINT@cuz@cnt@stopc 7% - #9\XINT@cuz@cnt@stopc 8% + \xint_gob_til_r #2\XINT_cuz_cnt_stopc 1% + #3\XINT_cuz_cnt_stopc 2% + #4\XINT_cuz_cnt_stopc 3% + #5\XINT_cuz_cnt_stopc 4% + #6\XINT_cuz_cnt_stopc 5% + #7\XINT_cuz_cnt_stopc 6% + #8\XINT_cuz_cnt_stopc 7% + #9\XINT_cuz_cnt_stopc 8% \Z #1#2#3#4#5#6#7#8#9% }% -\def\XINT@cuz@cnt@stopc #1#2\Z #3\R #4\Z #5% +\def\XINT_cuz_cnt_stopc #1#2\Z #3\R #4\Z #5% {% - \expandafter\XINT@cuz@cnt@stopd\expandafter + \expandafter\XINT_cuz_cnt_stopd\expandafter {\the\numexpr #5-#1}#3% }% -\def\XINT@cuz@cnt@stopd #1#2\R #3\Z +\def\XINT_cuz_cnt_stopd #1#2\R #3\Z {% \expandafter\space\expandafter - {\romannumeral0\XINT@rord@main {}#2% - \xint@UNDEF - \xint@undef\xint@undef\xint@undef\xint@undef - \xint@undef\xint@undef\xint@undef\xint@undef - \xint@UNDEF }{#1}% + {\romannumeral0\XINT_rord_main {}#2% + \xint_relax + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_relax }{#1}% }% % \end{macrocode} % \subsection{\csh{xintRaw}} @@ -9626,121 +9467,121 @@ first place. \def\xintRaw {\romannumeral0\xintraw }% \def\xintraw {% - \expandafter\XINT@raw\romannumeral0\XINT@infrac + \expandafter\XINT_raw\romannumeral0\XINT_infrac }% -\def\XINT@raw #1% +\def\XINT_raw #1% {% - \ifcase\XINT@Sgn {#1} - \expandafter\XINT@raw@Ba + \ifcase\XINT_Sgn {#1} + \expandafter\XINT_raw_Ba \or - \expandafter\XINT@raw@A + \expandafter\XINT_raw_A \else - \expandafter\XINT@raw@Ba + \expandafter\XINT_raw_Ba \fi {#1}% }% -\def\XINT@raw@A #1#2#3{\xint@dsh {#2}{-#1}/#3}% -\def\XINT@raw@Ba #1#2#3{\expandafter\XINT@raw@Bb - \expandafter{\romannumeral0\xint@dsh {#3}{#1}}{#2}}% -\def\XINT@raw@Bb #1#2{ #2/#1}% +\def\XINT_raw_A #1#2#3{\xint_dsh {#2}{-#1}/#3}% +\def\XINT_raw_Ba #1#2#3{\expandafter\XINT_raw_Bb + \expandafter{\romannumeral0\xint_dsh {#3}{#1}}{#2}}% +\def\XINT_raw_Bb #1#2{ #2/#1}% % \end{macrocode} % \subsection{\csh{xintNumerator}} % \begin{macrocode} \def\xintNumerator {\romannumeral0\xintnumerator }% \def\xintnumerator {% - \expandafter\XINT@numer\romannumeral0\XINT@infrac + \expandafter\XINT_numer\romannumeral0\XINT_infrac }% -\def\XINT@numer #1% +\def\XINT_numer #1% {% - \ifcase\XINT@Sgn {#1} - \expandafter\XINT@numer@B + \ifcase\XINT_Sgn {#1} + \expandafter\XINT_numer_B \or - \expandafter\XINT@numer@A + \expandafter\XINT_numer_A \else - \expandafter\XINT@numer@B + \expandafter\XINT_numer_B \fi {#1}% }% -\def\XINT@numer@A #1#2#3{\xint@dsh {#2}{-#1}}% -\def\XINT@numer@B #1#2#3{ #2}% +\def\XINT_numer_A #1#2#3{\xint_dsh {#2}{-#1}}% +\def\XINT_numer_B #1#2#3{ #2}% % \end{macrocode} % \subsection{\csh{xintDenominator}} % \begin{macrocode} \def\xintDenominator {\romannumeral0\xintdenominator }% \def\xintdenominator {% - \expandafter\XINT@denom\romannumeral0\XINT@infrac + \expandafter\XINT_denom\romannumeral0\XINT_infrac }% -\def\XINT@denom #1% +\def\XINT_denom #1% {% - \ifcase\XINT@Sgn {#1} - \expandafter\XINT@denom@B + \ifcase\XINT_Sgn {#1} + \expandafter\XINT_denom_B \or - \expandafter\XINT@denom@A + \expandafter\XINT_denom_A \else - \expandafter\XINT@denom@B + \expandafter\XINT_denom_B \fi {#1}% }% -\def\XINT@denom@A #1#2#3{ #3}% -\def\XINT@denom@B #1#2#3{\xint@dsh {#3}{#1}}% +\def\XINT_denom_A #1#2#3{ #3}% +\def\XINT_denom_B #1#2#3{\xint_dsh {#3}{#1}}% % \end{macrocode} % \subsection{\csh{xintFrac}} % \begin{macrocode} \def\xintFrac {\romannumeral0\xintfrac }% \def\xintfrac #1% {% - \expandafter\XINT@@frac@A\romannumeral0\XINT@infrac {#1}% + \expandafter\XINT__frac_A\romannumeral0\XINT_infrac {#1}% }% -\def\XINT@@frac@A #1{\XINT@@frac@B #1\Z }% -\def\XINT@@frac@B #1#2\Z +\def\XINT__frac_A #1{\XINT__frac_B #1\Z }% +\def\XINT__frac_B #1#2\Z {% - \xint@zero #1\XINT@@frac@C 0\XINT@@frac@D {10^{#1#2}}% + \xint_gob_til_zero #1\XINT__frac_C 0\XINT__frac_D {10^{#1#2}}% }% -\def\XINT@@frac@C #1#2#3#4#5% +\def\XINT__frac_C #1#2#3#4#5% {% - \ifcase\XINT@isOne {#5} - \or \xint@afterfi {\expandafter\xint@firstoftwo@andstop\xint@gobble@ii }% + \ifcase\XINT_isOne {#5} + \or \xint_afterfi {\expandafter\xint_firstoftwo_andstop\xint_gobble_ii }% \fi \space \frac {#4}{#5}% }% -\def\XINT@@frac@D #1#2#3% +\def\XINT__frac_D #1#2#3% {% - \ifcase\XINT@isOne {#3} - \or \XINT@@frac@E + \ifcase\XINT_isOne {#3} + \or \XINT__frac_E \fi \space \frac {#2}{#3}#1% }% -\def\XINT@@frac@E \fi #1#2#3#4{\fi \space #3\cdot }% +\def\XINT__frac_E \fi #1#2#3#4{\fi \space #3\cdot }% % \end{macrocode} % \subsection{\csh{xintSignedFrac}} % \begin{macrocode} \def\xintSignedFrac {\romannumeral0\xintsignedfrac }% \def\xintsignedfrac #1% {% - \expandafter\XINT@sgnfrac@a\romannumeral0\XINT@infrac {#1}% + \expandafter\XINT_sgnfrac_a\romannumeral0\XINT_infrac {#1}% }% -\def\XINT@sgnfrac@a #1#2% +\def\XINT_sgnfrac_a #1#2% {% - \XINT@sgnfrac@b #2\Z {#1}% + \XINT_sgnfrac_b #2\Z {#1}% }% -\def\XINT@sgnfrac@b #1% +\def\XINT_sgnfrac_b #1% {% - \xint@UDsignfork - #1\dummy \XINT@sgnfrac@N - -\dummy {\XINT@sgnfrac@P #1}% - \xint@UDkrof + \xint_UDsignfork + #1\dummy \XINT_sgnfrac_N + -\dummy {\XINT_sgnfrac_P #1}% + \krof }% -\def\XINT@sgnfrac@P #1\Z #2% +\def\XINT_sgnfrac_P #1\Z #2% {% - \XINT@@frac@A {#2}{#1}% + \XINT__frac_A {#2}{#1}% }% -\def\XINT@sgnfrac@N +\def\XINT_sgnfrac_N {% - \expandafter\xint@minus@andstop\romannumeral0\XINT@sgnfrac@P + \expandafter\xint_minus_andstop\romannumeral0\XINT_sgnfrac_P }% % \end{macrocode} % \subsection{\csh{xintFwOver}} @@ -9748,27 +9589,27 @@ first place. \def\xintFwOver {\romannumeral0\xintfwover }% \def\xintfwover #1% {% - \expandafter\XINT@fwover@A\romannumeral0\XINT@infrac {#1}% + \expandafter\XINT_fwover_A\romannumeral0\XINT_infrac {#1}% }% -\def\XINT@fwover@A #1{\XINT@fwover@B #1\Z }% -\def\XINT@fwover@B #1#2\Z +\def\XINT_fwover_A #1{\XINT_fwover_B #1\Z }% +\def\XINT_fwover_B #1#2\Z {% - \xint@zero #1\XINT@fwover@C 0\XINT@fwover@D {10^{#1#2}}% + \xint_gob_til_zero #1\XINT_fwover_C 0\XINT_fwover_D {10^{#1#2}}% }% -\def\XINT@fwover@C #1#2#3#4#5% +\def\XINT_fwover_C #1#2#3#4#5% {% - \ifcase\XINT@isOne {#5} - \xint@afterfi { {#4\over #5}}% + \ifcase\XINT_isOne {#5} + \xint_afterfi { {#4\over #5}}% \or - \xint@afterfi { #4}% + \xint_afterfi { #4}% \fi }% -\def\XINT@fwover@D #1#2#3% +\def\XINT_fwover_D #1#2#3% {% - \ifcase\XINT@isOne {#3} - \xint@afterfi { {#2\over #3}}% + \ifcase\XINT_isOne {#3} + \xint_afterfi { {#2\over #3}}% \or - \xint@afterfi { #2\cdot }% + \xint_afterfi { #2\cdot }% \fi #1% }% @@ -9778,26 +9619,26 @@ first place. \def\xintSignedFwOver {\romannumeral0\xintsignedfwover }% \def\xintsignedfwover #1% {% - \expandafter\XINT@sgnfwover@a\romannumeral0\XINT@infrac {#1}% + \expandafter\XINT_sgnfwover_a\romannumeral0\XINT_infrac {#1}% }% -\def\XINT@sgnfwover@a #1#2% +\def\XINT_sgnfwover_a #1#2% {% - \XINT@sgnfwover@b #2\Z {#1}% + \XINT_sgnfwover_b #2\Z {#1}% }% -\def\XINT@sgnfwover@b #1% +\def\XINT_sgnfwover_b #1% {% - \xint@UDsignfork - #1\dummy \XINT@sgnfwover@N - -\dummy {\XINT@sgnfwover@P #1}% - \xint@UDkrof + \xint_UDsignfork + #1\dummy \XINT_sgnfwover_N + -\dummy {\XINT_sgnfwover_P #1}% + \krof }% -\def\XINT@sgnfwover@P #1\Z #2% +\def\XINT_sgnfwover_P #1\Z #2% {% - \XINT@fwover@A {#2}{#1}% + \XINT_fwover_A {#2}{#1}% }% -\def\XINT@sgnfwover@N +\def\XINT_sgnfwover_N {% - \expandafter\xint@minus@andstop\romannumeral0\XINT@sgnfwover@P + \expandafter\xint_minus_andstop\romannumeral0\XINT_sgnfwover_P }% % \end{macrocode} % \subsection{\csh{xintREZ}} @@ -9805,376 +9646,368 @@ first place. \def\xintREZ {\romannumeral0\xintrez }% \def\xintrez {% - \expandafter\XINT@rez@A\romannumeral0\XINT@infrac + \expandafter\XINT_rez_A\romannumeral0\XINT_infrac }% -\def\XINT@rez@A #1#2% +\def\XINT_rez_A #1#2% {% - \XINT@rez@AB #2\Z {#1}% + \XINT_rez_AB #2\Z {#1}% }% -\def\XINT@rez@AB #1% +\def\XINT_rez_AB #1% {% - \xint@UDzerominusfork - #1-\dummy \XINT@rez@zero - 0#1\dummy \XINT@rez@neg - 0-\dummy {\XINT@rez@B #1}% - \xint@UDkrof + \xint_UDzerominusfork + #1-\dummy \XINT_rez_zero + 0#1\dummy \XINT_rez_neg + 0-\dummy {\XINT_rez_B #1}% + \krof }% -\def\XINT@rez@zero #1\Z #2#3{ 0/1[0]}% -\def\XINT@rez@neg {\expandafter\xint@minus@andstop\romannumeral0\XINT@rez@B }% -\def\XINT@rez@B #1\Z +\def\XINT_rez_zero #1\Z #2#3{ 0/1[0]}% +\def\XINT_rez_neg {\expandafter\xint_minus_andstop\romannumeral0\XINT_rez_B }% +\def\XINT_rez_B #1\Z {% - \expandafter\XINT@rez@C\romannumeral0\XINT@factortens {#1}% + \expandafter\XINT_rez_C\romannumeral0\XINT_factortens {#1}% }% -\def\XINT@rez@C #1#2#3#4% +\def\XINT_rez_C #1#2#3#4% {% - \expandafter\XINT@rez@D\romannumeral0\XINT@factortens {#4}{#3}{#2}{#1}% + \expandafter\XINT_rez_D\romannumeral0\XINT_factortens {#4}{#3}{#2}{#1}% }% -\def\XINT@rez@D #1#2#3#4#5% +\def\XINT_rez_D #1#2#3#4#5% {% - \expandafter\XINT@rez@E\expandafter + \expandafter\XINT_rez_E\expandafter {\the\numexpr #3+#4-#2}{#1}{#5}% }% -\def\XINT@rez@E #1#2#3{ #3/#2[#1]}% +\def\XINT_rez_E #1#2#3{ #3/#2[#1]}% % \end{macrocode} % \subsection{\csh{xintIrr}} -% \begin{verbatim} +% \lverb|& % 1.04 fixes a buggy \xintIrr {0}. % 1.05 modifies the initial parsing and post-processing to use \xintraw and to -% more quickly deal with an input denominator equal to 1. -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% more quickly deal with an input denominator equal to 1.| % \begin{macrocode} \def\xintIrr {\romannumeral0\xintirr }% \def\xintirr #1% {% - \expandafter\XINT@irr@start\romannumeral0\xintraw {#1}\Z + \expandafter\XINT_irr_start\romannumeral0\xintraw {#1}\Z }% -\def\XINT@irr@start #1#2/#3\Z +\def\XINT_irr_start #1#2/#3\Z {% - \ifcase\XINT@isOne {#3} - \xint@afterfi - {\xint@UDsignfork - #1\dummy \XINT@irr@negative - -\dummy {\XINT@irr@nonneg #1}% - \xint@UDkrof}% + \ifcase\XINT_isOne {#3} + \xint_afterfi + {\xint_UDsignfork + #1\dummy \XINT_irr_negative + -\dummy {\XINT_irr_nonneg #1}% + \krof}% \or - \xint@afterfi{\XINT@irr@denomisone #1}% + \xint_afterfi{\XINT_irr_denomisone #1}% \fi #2\Z {#3}% }% -\def\XINT@irr@denomisone #1\Z #2{ #1}% -\def\XINT@irr@negative #1\Z #2{\XINT@irr@D #1\Z #2\Z \xint@minus@andstop}% -\def\XINT@irr@nonneg #1\Z #2{\XINT@irr@D #1\Z #2\Z \space}% -\def\XINT@irr@D #1#2\Z #3#4\Z -{% - \xint@UDzerosfork - #3#1\dummy \XINT@irr@indeterminate - #30\dummy \XINT@irr@divisionbyzero - #10\dummy \XINT@irr@zero - 00\dummy \XINT@irr@loop@a - \xint@UDkrof +\def\XINT_irr_denomisone #1\Z #2{ #1}% +\def\XINT_irr_negative #1\Z #2{\XINT_irr_D #1\Z #2\Z \xint_minus_andstop}% +\def\XINT_irr_nonneg #1\Z #2{\XINT_irr_D #1\Z #2\Z \space}% +\def\XINT_irr_D #1#2\Z #3#4\Z +{% + \xint_UDzerosfork + #3#1\dummy \XINT_irr_indeterminate + #30\dummy \XINT_irr_divisionbyzero + #10\dummy \XINT_irr_zero + 00\dummy \XINT_irr_loop_a + \krof {#3#4}{#1#2}{#3#4}{#1#2}% }% -\def\XINT@irr@indeterminate #1#2#3#4#5{\xintError:NaN\space 0/0}% -\def\XINT@irr@divisionbyzero #1#2#3#4#5{\xintError:DivisionByZero #5#2/0}% -\def\XINT@irr@zero #1#2#3#4#5{ 0}% -\def\XINT@irr@loop@a #1#2% +\def\XINT_irr_indeterminate #1#2#3#4#5{\xintError:NaN\space 0/0}% +\def\XINT_irr_divisionbyzero #1#2#3#4#5{\xintError:DivisionByZero #5#2/0}% +\def\XINT_irr_zero #1#2#3#4#5{ 0}% +\def\XINT_irr_loop_a #1#2% {% - \expandafter\XINT@irr@loop@d - \romannumeral0\XINT@div@prepare {#1}{#2}{#1}% + \expandafter\XINT_irr_loop_d + \romannumeral0\XINT_div_prepare {#1}{#2}{#1}% }% -\def\XINT@irr@loop@d #1#2% +\def\XINT_irr_loop_d #1#2% {% - \XINT@irr@loop@e #2\Z + \XINT_irr_loop_e #2\Z }% -\def\XINT@irr@loop@e #1#2\Z +\def\XINT_irr_loop_e #1#2\Z {% - \xint@zero #1\xint@irr@loop@exit0\XINT@irr@loop@a {#1#2}% + \xint_gob_til_zero #1\xint_irr_loop_exit0\XINT_irr_loop_a {#1#2}% }% -\def\xint@irr@loop@exit0\XINT@irr@loop@a #1#2#3#4% +\def\xint_irr_loop_exit0\XINT_irr_loop_a #1#2#3#4% {% - \expandafter\XINT@irr@loop@exitb\expandafter + \expandafter\XINT_irr_loop_exitb\expandafter {\romannumeral0\xintiquo {#3}{#2}}% {\romannumeral0\xintiquo {#4}{#2}}% }% -\def\XINT@irr@loop@exitb #1#2% +\def\XINT_irr_loop_exitb #1#2% {% - \expandafter\XINT@irr@finish\expandafter {#2}{#1}% + \expandafter\XINT_irr_finish\expandafter {#2}{#1}% }% -\def\XINT@irr@finish #1#2#3% +\def\XINT_irr_finish #1#2#3% {% - \ifcase\XINT@isOne {#2} - \xint@afterfi {#3#1/#2}% + \ifcase\XINT_isOne {#2} + \xint_afterfi {#3#1/#2}% \or - \xint@afterfi {#3#1}% + \xint_afterfi {#3#1}% \fi }% % \end{macrocode} % \subsection{\csh{xintNum}} -% \begin{verbatim} -% this extension of the xint original xintNum is added in 1.05, as a synonym to +% \lverb|& +% This extension of the xint original xintNum is added in 1.05, as a +% synonym to % \xintIrr, but raising an error when the input does not evaluate to an integer. % Usable with not too much overhead on integer input as \xintIrr % checks quickly for a denominator equal to 1 (which will be put there by the -% \XINT@infrac called by \xintraw). This way, macros such as \xintQuo can be +% \XINT_infrac called by \xintraw). This way, macros such as \xintQuo can be % modified with minimal overhead to accept fractional input as long as it -% evaluates to an integer. -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% evaluates to an integer. | % \begin{macrocode} \def\xintNum {\romannumeral0\xintnum }% -\def\xintnum #1{\expandafter\XINT@intcheck\romannumeral0\xintirr {#1}/\W\Z }% -\def\XINT@intcheck #1/#2#3\Z +\def\xintnum #1{\expandafter\XINT_intcheck\romannumeral0\xintirr {#1}/\W\Z }% +\def\XINT_intcheck #1/#2#3\Z {% - \xint@w #2\xint@gobble@ii\W\xintError:NotAnInteger + \xint_gob_til_w #2\xint_gobble_ii\W + \xintError:NotAnInteger \space #1% }% % \end{macrocode} % \subsection{\csh{xintJrr}} -% \begin{verbatim} -% Modified similarly as \xintIrr in release 1.05 -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|& +% Modified similarly as \xintIrr in release 1.05| % \begin{macrocode} \def\xintJrr {\romannumeral0\xintjrr }% \def\xintjrr #1% {% - \expandafter\XINT@jrr@start\romannumeral0\xintraw {#1}\Z + \expandafter\XINT_jrr_start\romannumeral0\xintraw {#1}\Z }% -\def\XINT@jrr@start #1#2/#3\Z +\def\XINT_jrr_start #1#2/#3\Z {% - \ifcase\XINT@isOne {#3} - \xint@afterfi - {\xint@UDsignfork - #1\dummy \XINT@jrr@negative - -\dummy {\XINT@jrr@nonneg #1}% - \xint@UDkrof}% + \ifcase\XINT_isOne {#3} + \xint_afterfi + {\xint_UDsignfork + #1\dummy \XINT_jrr_negative + -\dummy {\XINT_jrr_nonneg #1}% + \krof}% \or - \xint@afterfi{\XINT@jrr@denomisone #1}% + \xint_afterfi{\XINT_jrr_denomisone #1}% \fi #2\Z {#3}% }% -\def\XINT@jrr@denomisone #1\Z #2{ #1}% -\def\XINT@jrr@negative #1\Z #2{\XINT@jrr@D #1\Z #2\Z \xint@minus@andstop }% -\def\XINT@jrr@nonneg #1\Z #2{\XINT@jrr@D #1\Z #2\Z \space}% -\def\XINT@jrr@D #1#2\Z #3#4\Z -{% - \xint@UDzerosfork - #3#1\dummy \XINT@jrr@indeterminate - #30\dummy \XINT@jrr@divisionbyzero - #10\dummy \XINT@jrr@zero - 00\dummy \XINT@jrr@loop@a - \xint@UDkrof +\def\XINT_jrr_denomisone #1\Z #2{ #1}% +\def\XINT_jrr_negative #1\Z #2{\XINT_jrr_D #1\Z #2\Z \xint_minus_andstop }% +\def\XINT_jrr_nonneg #1\Z #2{\XINT_jrr_D #1\Z #2\Z \space}% +\def\XINT_jrr_D #1#2\Z #3#4\Z +{% + \xint_UDzerosfork + #3#1\dummy \XINT_jrr_indeterminate + #30\dummy \XINT_jrr_divisionbyzero + #10\dummy \XINT_jrr_zero + 00\dummy \XINT_jrr_loop_a + \krof {#3#4}{#1#2}1001% }% -\def\XINT@jrr@indeterminate #1#2#3#4#5#6#7{\xintError:NaN\space 0/0}% -\def\XINT@jrr@divisionbyzero #1#2#3#4#5#6#7{\xintError:DivisionByZero #7#2/0}% -\def\XINT@jrr@zero #1#2#3#4#5#6#7{ 0}% -\def\XINT@jrr@loop@a #1#2% +\def\XINT_jrr_indeterminate #1#2#3#4#5#6#7{\xintError:NaN\space 0/0}% +\def\XINT_jrr_divisionbyzero #1#2#3#4#5#6#7{\xintError:DivisionByZero #7#2/0}% +\def\XINT_jrr_zero #1#2#3#4#5#6#7{ 0}% +\def\XINT_jrr_loop_a #1#2% {% - \expandafter\XINT@jrr@loop@b - \romannumeral0\XINT@div@prepare {#1}{#2}{#1}% + \expandafter\XINT_jrr_loop_b + \romannumeral0\XINT_div_prepare {#1}{#2}{#1}% }% -\def\XINT@jrr@loop@b #1#2#3#4#5#6#7% +\def\XINT_jrr_loop_b #1#2#3#4#5#6#7% {% - \expandafter \XINT@jrr@loop@c \expandafter - {\romannumeral0\xintiadd{\XINT@Mul{#4}{#1}}{#6}}% - {\romannumeral0\xintiadd{\XINT@Mul{#5}{#1}}{#7}}% + \expandafter \XINT_jrr_loop_c \expandafter + {\romannumeral0\xintiadd{\XINT_Mul{#4}{#1}}{#6}}% + {\romannumeral0\xintiadd{\XINT_Mul{#5}{#1}}{#7}}% {#2}{#3}{#4}{#5}% }% -\def\XINT@jrr@loop@c #1#2% +\def\XINT_jrr_loop_c #1#2% {% - \expandafter \XINT@jrr@loop@d \expandafter{#2}{#1}% + \expandafter \XINT_jrr_loop_d \expandafter{#2}{#1}% }% -\def\XINT@jrr@loop@d #1#2#3#4% +\def\XINT_jrr_loop_d #1#2#3#4% {% - \XINT@jrr@loop@e #3\Z {#4}{#2}{#1}% + \XINT_jrr_loop_e #3\Z {#4}{#2}{#1}% }% -\def\XINT@jrr@loop@e #1#2\Z +\def\XINT_jrr_loop_e #1#2\Z {% - \xint@zero #1\xint@jrr@loop@exit0\XINT@jrr@loop@a {#1#2}% + \xint_gob_til_zero #1\xint_jrr_loop_exit0\XINT_jrr_loop_a {#1#2}% }% -\def\xint@jrr@loop@exit0\XINT@jrr@loop@a #1#2#3#4#5#6% +\def\xint_jrr_loop_exit0\XINT_jrr_loop_a #1#2#3#4#5#6% {% - \XINT@irr@finish {#3}{#4}% + \XINT_irr_finish {#3}{#4}% }% % \end{macrocode} % \subsection{\csh{xintTrunc}, \csh{xintiTrunc}} -% \begin{verbatim} -% Modified in 1.06 to give the first argument to a \numexpr -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|& +% Modified in 1.06 to give the first argument to a \numexpr| % \begin{macrocode} \def\xintTrunc {\romannumeral0\xinttrunc }% \def\xintiTrunc {\romannumeral0\xintitrunc }% \def\xinttrunc #1% {% - \expandafter\XINT@trunc\expandafter {\the\numexpr #1}% + \expandafter\XINT_trunc\expandafter {\the\numexpr #1}% }% -\def\XINT@trunc #1#2% +\def\XINT_trunc #1#2% {% - \expandafter\XINT@trunc@G - \romannumeral0\expandafter\XINT@trunc@A - \romannumeral0\XINT@infrac {#2}{#1}{#1}% + \expandafter\XINT_trunc_G + \romannumeral0\expandafter\XINT_trunc_A + \romannumeral0\XINT_infrac {#2}{#1}{#1}% }% \def\xintitrunc #1% {% - \expandafter\XINT@itrunc\expandafter {\the\numexpr #1}% + \expandafter\XINT_itrunc\expandafter {\the\numexpr #1}% }% -\def\XINT@itrunc #1#2% +\def\XINT_itrunc #1#2% {% - \expandafter\XINT@itrunc@G - \romannumeral0\expandafter\XINT@trunc@A - \romannumeral0\XINT@infrac {#2}{#1}{#1}% + \expandafter\XINT_itrunc_G + \romannumeral0\expandafter\XINT_trunc_A + \romannumeral0\XINT_infrac {#2}{#1}{#1}% }% -\def\XINT@trunc@A #1#2#3#4% +\def\XINT_trunc_A #1#2#3#4% {% - \expandafter\XINT@trunc@checkifzero + \expandafter\XINT_trunc_checkifzero \expandafter{\the\numexpr #1+#4}#2\Z {#3}% }% -\def\XINT@trunc@checkifzero #1#2#3\Z +\def\XINT_trunc_checkifzero #1#2#3\Z {% - \xint@zero #2\XINT@trunc@iszero0\XINT@trunc@B {#1}{#2#3}% + \xint_gob_til_zero #2\XINT_trunc_iszero0\XINT_trunc_B {#1}{#2#3}% }% -\def\XINT@trunc@iszero #1#2#3#4#5{ 0\Z 0}% -\def\XINT@trunc@B #1% +\def\XINT_trunc_iszero #1#2#3#4#5{ 0\Z 0}% +\def\XINT_trunc_B #1% {% - \ifcase\XINT@Sgn {#1} - \expandafter\XINT@trunc@D + \ifcase\XINT_Sgn {#1} + \expandafter\XINT_trunc_D \or - \expandafter\XINT@trunc@D + \expandafter\XINT_trunc_D \else - \expandafter\XINT@trunc@C + \expandafter\XINT_trunc_C \fi {#1}% }% -\def\XINT@trunc@C #1#2#3% +\def\XINT_trunc_C #1#2#3% {% - \expandafter \XINT@trunc@E - \romannumeral0\xint@dsh {#3}{#1}\Z #2\Z + \expandafter \XINT_trunc_E + \romannumeral0\xint_dsh {#3}{#1}\Z #2\Z }% -\def\XINT@trunc@D #1#2% +\def\XINT_trunc_D #1#2% {% - \expandafter \XINT@trunc@DE \expandafter - {\romannumeral0\xint@dsh {#2}{-#1}}% + \expandafter \XINT_trunc_DE \expandafter + {\romannumeral0\xint_dsh {#2}{-#1}}% }% -\def\XINT@trunc@DE #1#2{\XINT@trunc@E #2\Z #1\Z }% -\def\XINT@trunc@E #1#2\Z #3#4\Z +\def\XINT_trunc_DE #1#2{\XINT_trunc_E #2\Z #1\Z }% +\def\XINT_trunc_E #1#2\Z #3#4\Z {% - \xint@UDsignsfork - #1#3\dummy \XINT@trunc@minusminus - #1-\dummy {\XINT@trunc@minusplus #3}% - #3-\dummy {\XINT@trunc@plusminus #1}% - --\dummy {\XINT@trunc@plusplus #3#1}% - \xint@UDkrof + \xint_UDsignsfork + #1#3\dummy \XINT_trunc_minusminus + #1-\dummy {\XINT_trunc_minusplus #3}% + #3-\dummy {\XINT_trunc_plusminus #1}% + --\dummy {\XINT_trunc_plusplus #3#1}% + \krof {#4}{#2}% }% -\def\XINT@trunc@minusminus #1#2{\xintiquo {#1}{#2}\Z \space}% -\def\XINT@trunc@minusplus #1#2#3{\xintiquo {#1#2}{#3}\Z \xint@minus@andstop}% -\def\XINT@trunc@plusminus #1#2#3{\xintiquo {#2}{#1#3}\Z \xint@minus@andstop}% -\def\XINT@trunc@plusplus #1#2#3#4{\xintiquo {#1#3}{#2#4}\Z \space}% -\def\XINT@itrunc@G #1#2\Z #3#4% +\def\XINT_trunc_minusminus #1#2{\xintiquo {#1}{#2}\Z \space}% +\def\XINT_trunc_minusplus #1#2#3{\xintiquo {#1#2}{#3}\Z \xint_minus_andstop}% +\def\XINT_trunc_plusminus #1#2#3{\xintiquo {#2}{#1#3}\Z \xint_minus_andstop}% +\def\XINT_trunc_plusplus #1#2#3#4{\xintiquo {#1#3}{#2#4}\Z \space}% +\def\XINT_itrunc_G #1#2\Z #3#4% {% - \xint@zero #1\XINT@trunc@zero 0\xint@firstoftwo {#3#1#2}0% + \xint_gob_til_zero #1\XINT_trunc_zero 0\xint_firstoftwo {#3#1#2}0% }% -\def\XINT@trunc@G #1\Z #2#3% +\def\XINT_trunc_G #1\Z #2#3% {% - \xint@zero #2\XINT@trunc@zero 0% - \expandafter\XINT@trunc@H\expandafter - {\the\numexpr\romannumeral0\XINT@length {#1}-#3}{#3}{#1}#2% + \xint_gob_til_zero #2\XINT_trunc_zero 0% + \expandafter\XINT_trunc_H\expandafter + {\the\numexpr\romannumeral0\XINT_length {#1}-#3}{#3}{#1}#2% }% -\def\XINT@trunc@zero 0#10{ 0}% -\def\XINT@trunc@H #1#2% +\def\XINT_trunc_zero 0#10{ 0}% +\def\XINT_trunc_H #1#2% {% \ifnum #1 > 0 - \xint@afterfi {\XINT@trunc@Ha {#2}}% + \xint_afterfi {\XINT_trunc_Ha {#2}}% \else - \xint@afterfi {\XINT@trunc@Hb {-#1}}% -0,--1,--2, .... + \xint_afterfi {\XINT_trunc_Hb {-#1}}% -0,--1,--2, .... \fi }% -\def\XINT@trunc@Ha +\def\XINT_trunc_Ha {% - \expandafter\XINT@trunc@Haa\romannumeral0\xintdecsplit + \expandafter\XINT_trunc_Haa\romannumeral0\xintdecsplit }% -\def\XINT@trunc@Haa #1#2#3% +\def\XINT_trunc_Haa #1#2#3% {% #3#1.#2% }% -\def\XINT@trunc@Hb #1#2#3% +\def\XINT_trunc_Hb #1#2#3% {% \expandafter #3\expandafter0\expandafter.% - \romannumeral0\XINT@dsx@zeroloop {#1}\Z {}#2% #1=-0 possible! + \romannumeral0\XINT_dsx_zeroloop {#1}\Z {}#2% #1=-0 possible! }% % \end{macrocode} % \subsection{\csh{xintRound}, \csh{xintiRound}} -% \begin{verbatim} -% Modified in 1.06 to give the first argument to a \numexpr -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|& +% Modified in 1.06 to give the first argument to a \numexpr| % \begin{macrocode} \def\xintRound {\romannumeral0\xintround }% \def\xintiRound {\romannumeral0\xintiround }% \def\xintround #1% {% - \expandafter\XINT@round\expandafter {\the\numexpr #1}% + \expandafter\XINT_round\expandafter {\the\numexpr #1}% }% -\def\XINT@round +\def\XINT_round {% - \expandafter\XINT@trunc@G\romannumeral0\XINT@round@A + \expandafter\XINT_trunc_G\romannumeral0\XINT_round_A }% \def\xintiround #1% {% - \expandafter\XINT@iround\expandafter {\the\numexpr #1}% + \expandafter\XINT_iround\expandafter {\the\numexpr #1}% }% -\def\XINT@iround +\def\XINT_iround {% - \expandafter\XINT@itrunc@G\romannumeral0\XINT@round@A + \expandafter\XINT_itrunc_G\romannumeral0\XINT_round_A }% -\def\XINT@round@A #1#2% +\def\XINT_round_A #1#2% {% - \expandafter\XINT@round@B - \romannumeral0\expandafter\XINT@trunc@A - \romannumeral0\XINT@infrac {#2}{\the\numexpr #1+1\relax}{#1}% + \expandafter\XINT_round_B + \romannumeral0\expandafter\XINT_trunc_A + \romannumeral0\XINT_infrac {#2}{\the\numexpr #1+1\relax}{#1}% }% -\def\XINT@round@B #1\Z +\def\XINT_round_B #1\Z {% - \expandafter\XINT@round@C - \romannumeral0\XINT@rord@main {}#1% - \xint@UNDEF - \xint@undef\xint@undef\xint@undef\xint@undef - \xint@undef\xint@undef\xint@undef\xint@undef - \xint@UNDEF + \expandafter\XINT_round_C + \romannumeral0\XINT_rord_main {}#1% + \xint_relax + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_relax \Z }% -\def\XINT@round@C #1% +\def\XINT_round_C #1% {% \ifnum #1<5 - \expandafter\XINT@round@Daa + \expandafter\XINT_round_Daa \else - \expandafter\XINT@round@Dba + \expandafter\XINT_round_Dba \fi }% -\def\XINT@round@Daa #1% +\def\XINT_round_Daa #1% {% - \xint@z #1\XINT@round@Daz\Z \XINT@round@Da #1% + \xint_gob_til_z #1\XINT_round_Daz\Z \XINT_round_Da #1% }% -\def\XINT@round@Daz\Z \XINT@round@Da \Z { 0\Z }% -\def\XINT@round@Da #1\Z +\def\XINT_round_Daz\Z \XINT_round_Da \Z { 0\Z }% +\def\XINT_round_Da #1\Z {% - \XINT@rord@main {}#1% - \xint@UNDEF - \xint@undef\xint@undef\xint@undef\xint@undef - \xint@undef\xint@undef\xint@undef\xint@undef - \xint@UNDEF \Z + \XINT_rord_main {}#1% + \xint_relax + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_relax \Z }% -\def\XINT@round@Dba #1% +\def\XINT_round_Dba #1% {% - \xint@z #1\XINT@round@Dbz\Z \XINT@round@Db #1% + \xint_gob_til_z #1\XINT_round_Dbz\Z \XINT_round_Db #1% }% -\def\XINT@round@Dbz\Z \XINT@round@Db \Z { 1\Z }% -\def\XINT@round@Db #1\Z +\def\XINT_round_Dbz\Z \XINT_round_Db \Z { 1\Z }% +\def\XINT_round_Db #1\Z {% - \XINT@addm@A 0{}1000\W\X\Y\Z #1000\W\X\Y\Z \Z + \XINT_addm_A 0{}1000\W\X\Y\Z #1000\W\X\Y\Z \Z }% % \end{macrocode} % \subsection{\csh{xintAdd}} @@ -10182,21 +10015,21 @@ first place. \def\xintAdd {\romannumeral0\xintadd }% \def\xintadd #1% {% - \expandafter\xint@fadd\expandafter {\romannumeral0\XINT@infrac {#1}}% + \expandafter\xint_fadd\expandafter {\romannumeral0\XINT_infrac {#1}}% }% -\def\xint@fadd #1#2{\expandafter\XINT@fadd@A\romannumeral0\XINT@infrac{#2}#1}% -\def\XINT@fadd@A #1#2#3#4% +\def\xint_fadd #1#2{\expandafter\XINT_fadd_A\romannumeral0\XINT_infrac{#2}#1}% +\def\XINT_fadd_A #1#2#3#4% {% \ifnum #4 > #1 - \xint@afterfi {\XINT@fadd@B {#1}}% + \xint_afterfi {\XINT_fadd_B {#1}}% \else - \xint@afterfi {\XINT@fadd@B {#4}}% + \xint_afterfi {\XINT_fadd_B {#4}}% \fi {#1}{#4}{#2}{#3}% }% -\def\XINT@fadd@B #1#2#3#4#5#6#7% +\def\XINT_fadd_B #1#2#3#4#5#6#7% {% - \expandafter\XINT@fadd@C\expandafter + \expandafter\XINT_fadd_C\expandafter {\romannumeral0\xintimul {#7}{#5}}% {\romannumeral0\xintiadd {\romannumeral0\xintimul {\xintDSH {\the\numexpr -#3+#1\relax}{#6}}{#5}}% @@ -10204,33 +10037,33 @@ first place. }% {#1}% }% -\def\XINT@fadd@C #1#2#3% +\def\XINT_fadd_C #1#2#3% {% - \expandafter\XINT@fadd@D\expandafter {#2}{#3}{#1}% + \expandafter\XINT_fadd_D\expandafter {#2}{#3}{#1}% }% -\def\XINT@fadd@D #1#2{\XINT@outfrac {#2}{#1}}% +\def\XINT_fadd_D #1#2{\XINT_outfrac {#2}{#1}}% % \end{macrocode} % \subsection{\csh{xintSub}} % \begin{macrocode} \def\xintSub {\romannumeral0\xintsub }% \def\xintsub #1% {% - \expandafter\xint@fsub\expandafter {\romannumeral0\XINT@infrac {#1}}% + \expandafter\xint_fsub\expandafter {\romannumeral0\XINT_infrac {#1}}% }% -\def\xint@fsub #1#2% - {\expandafter\XINT@fsub@A\romannumeral0\XINT@infrac {#2}#1}% -\def\XINT@fsub@A #1#2#3#4% +\def\xint_fsub #1#2% + {\expandafter\XINT_fsub_A\romannumeral0\XINT_infrac {#2}#1}% +\def\XINT_fsub_A #1#2#3#4% {% \ifnum #4 > #1 - \xint@afterfi {\XINT@fsub@B {#1}}% + \xint_afterfi {\XINT_fsub_B {#1}}% \else - \xint@afterfi {\XINT@fsub@B {#4}}% + \xint_afterfi {\XINT_fsub_B {#4}}% \fi {#1}{#4}{#2}{#3}% }% -\def\XINT@fsub@B #1#2#3#4#5#6#7% +\def\XINT_fsub_B #1#2#3#4#5#6#7% {% - \expandafter\XINT@fsub@C\expandafter + \expandafter\XINT_fsub_C\expandafter {\romannumeral0\xintimul {#7}{#5}}% {\romannumeral0\xintisub {\romannumeral0\xintimul {\xintDSH {\the\numexpr -#3+#1\relax}{#6}}{#5}}% @@ -10238,176 +10071,174 @@ first place. }% {#1}% }% -\def\XINT@fsub@C #1#2#3% +\def\XINT_fsub_C #1#2#3% {% - \expandafter\XINT@fsub@D\expandafter {#2}{#3}{#1}% + \expandafter\XINT_fsub_D\expandafter {#2}{#3}{#1}% }% -\def\XINT@fsub@D #1#2{\XINT@outfrac {#2}{#1}}% +\def\XINT_fsub_D #1#2{\XINT_outfrac {#2}{#1}}% % \end{macrocode} % \subsection{\csh{xintSum}, \csh{xintSumExpr}} % \begin{macrocode} \def\xintSum {\romannumeral0\xintsum }% \def\xintsum #1{\xintsumexpr #1\relax }% \def\xintSumExpr {\romannumeral0\xintsumexpr }% -\def\xintsumexpr {\expandafter\XINT@fsumexpr\romannumeral-`0}% -\def\XINT@fsumexpr {\XINT@fsum@loop@a {0/1[0]}}% -\def\XINT@fsum@loop@a #1#2% +\def\xintsumexpr {\expandafter\XINT_fsumexpr\romannumeral-`0}% +\def\XINT_fsumexpr {\XINT_fsum_loop_a {0/1[0]}}% +\def\XINT_fsum_loop_a #1#2% {% - \expandafter\XINT@fsum@loop@b \romannumeral-`0#2\Z {#1}% + \expandafter\XINT_fsum_loop_b \romannumeral-`0#2\Z {#1}% }% -\def\XINT@fsum@loop@b #1% +\def\XINT_fsum_loop_b #1% {% - \xint@relax #1\XINT@fsum@finished\relax - \XINT@fsum@loop@c #1% + \xint_gob_til_relax #1\XINT_fsum_finished\relax + \XINT_fsum_loop_c #1% }% -\def\XINT@fsum@loop@c #1\Z #2% +\def\XINT_fsum_loop_c #1\Z #2% {% - \expandafter\XINT@fsum@loop@a\expandafter{\romannumeral0\xintadd {#2}{#1}}% + \expandafter\XINT_fsum_loop_a\expandafter{\romannumeral0\xintadd {#2}{#1}}% }% -\def\XINT@fsum@finished #1\Z #2{ #2}% +\def\XINT_fsum_finished #1\Z #2{ #2}% % \end{macrocode} % \subsection{\csh{xintMul}} % \begin{macrocode} \def\xintMul {\romannumeral0\xintmul }% \def\xintmul #1% {% - \expandafter\xint@fmul\expandafter {\romannumeral0\XINT@infrac {#1}}% + \expandafter\xint_fmul\expandafter {\romannumeral0\XINT_infrac {#1}}% }% -\def\xint@fmul #1#2% - {\expandafter\XINT@fmul@A\romannumeral0\XINT@infrac {#2}#1}% -\def\XINT@fmul@A #1#2#3#4#5#6% +\def\xint_fmul #1#2% + {\expandafter\XINT_fmul_A\romannumeral0\XINT_infrac {#2}#1}% +\def\XINT_fmul_A #1#2#3#4#5#6% {% - \expandafter\XINT@fmul@B + \expandafter\XINT_fmul_B \expandafter{\the\numexpr #1+#4\expandafter}% \expandafter{\romannumeral0\xintimul {#6}{#3}}% {\romannumeral0\xintimul {#5}{#2}}% }% -\def\XINT@fmul@B #1#2#3% +\def\XINT_fmul_B #1#2#3% {% - \expandafter \XINT@fmul@C \expandafter{#3}{#1}{#2}% + \expandafter \XINT_fmul_C \expandafter{#3}{#1}{#2}% }% -\def\XINT@fmul@C #1#2{\XINT@outfrac {#2}{#1}}% +\def\XINT_fmul_C #1#2{\XINT_outfrac {#2}{#1}}% % \end{macrocode} % \subsection{\csh{xintSqr}} % \begin{macrocode} \def\xintSqr {\romannumeral0\xintsqr }% \def\xintsqr #1% {% - \expandafter\xint@fsqr\expandafter{\romannumeral0\XINT@infrac {#1}}% + \expandafter\xint_fsqr\expandafter{\romannumeral0\XINT_infrac {#1}}% }% -\def\xint@fsqr #1{\XINT@fmul@A #1#1}% +\def\xint_fsqr #1{\XINT_fmul_A #1#1}% % \end{macrocode} % \subsection{\csh{xintPow}} -% \begin{verbatim} -% Modified in 1.06 to give the exponent to a \numexpr -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% \lverb|& +% Modified in 1.06 to give the exponent to a \numexpr| % \begin{macrocode} \def\xintPow {\romannumeral0\xintpow }% \def\xintpow #1% {% - \expandafter\xint@fpow\expandafter {\romannumeral0\XINT@infrac {#1}}% + \expandafter\xint_fpow\expandafter {\romannumeral0\XINT_infrac {#1}}% }% -\def\xint@fpow #1#2% +\def\xint_fpow #1#2% {% - \expandafter\XINT@fpow@fork\the\numexpr #2\relax\Z #1% + \expandafter\XINT_fpow_fork\the\numexpr #2\relax\Z #1% }% -\def\XINT@fpow@fork #1#2\Z +\def\XINT_fpow_fork #1#2\Z {% - \xint@UDzerominusfork - #1-\dummy \XINT@fpow@zero - 0#1\dummy \XINT@fpow@neg - 0-\dummy {\XINT@fpow@pos #1}% - \xint@UDkrof + \xint_UDzerominusfork + #1-\dummy \XINT_fpow_zero + 0#1\dummy \XINT_fpow_neg + 0-\dummy {\XINT_fpow_pos #1}% + \krof {#2}% }% -\def\XINT@fpow@zero #1#2#3#4% +\def\XINT_fpow_zero #1#2#3#4% {% \space 1/1[0]% }% -\def\XINT@fpow@pos #1#2#3#4#5% +\def\XINT_fpow_pos #1#2#3#4#5% {% - \expandafter\XINT@fpow@pos@A\expandafter + \expandafter\XINT_fpow_pos_A\expandafter {\the\numexpr #1#2*#3\expandafter}\expandafter {\romannumeral0\xintipow {#5}{#1#2}}% {\romannumeral0\xintipow {#4}{#1#2}}% }% -\def\XINT@fpow@neg #1#2#3#4% +\def\XINT_fpow_neg #1#2#3#4% {% - \expandafter\XINT@fpow@pos@A\expandafter + \expandafter\XINT_fpow_pos_A\expandafter {\the\numexpr -#1*#2\expandafter}\expandafter {\romannumeral0\xintipow {#3}{#1}}% {\romannumeral0\xintipow {#4}{#1}}% }% -\def\XINT@fpow@pos@A #1#2#3% +\def\XINT_fpow_pos_A #1#2#3% {% - \expandafter\XINT@fpow@pos@B\expandafter {#3}{#1}{#2}% + \expandafter\XINT_fpow_pos_B\expandafter {#3}{#1}{#2}% }% -\def\XINT@fpow@pos@B #1#2{\XINT@outfrac {#2}{#1}}% +\def\XINT_fpow_pos_B #1#2{\XINT_outfrac {#2}{#1}}% % \end{macrocode} % \subsection{\csh{xintPrd}, \csh{xintPrdExpr}} % \begin{macrocode} \def\xintPrd {\romannumeral0\xintprd }% \def\xintprd #1{\xintprdexpr #1\relax }% \def\xintPrdExpr {\romannumeral0\xintprdexpr }% -\def\xintprdexpr {\expandafter\XINT@fprdexpr \romannumeral-`0}% -\def\XINT@fprdexpr {\XINT@fprod@loop@a {1/1[0]}}% -\def\XINT@fprod@loop@a #1#2% +\def\xintprdexpr {\expandafter\XINT_fprdexpr \romannumeral-`0}% +\def\XINT_fprdexpr {\XINT_fprod_loop_a {1/1[0]}}% +\def\XINT_fprod_loop_a #1#2% {% - \expandafter\XINT@fprod@loop@b \romannumeral-`0#2\Z {#1}% + \expandafter\XINT_fprod_loop_b \romannumeral-`0#2\Z {#1}% }% -\def\XINT@fprod@loop@b #1% +\def\XINT_fprod_loop_b #1% {% - \xint@relax #1\XINT@fprod@finished\relax - \XINT@fprod@loop@c #1% + \xint_gob_til_relax #1\XINT_fprod_finished\relax + \XINT_fprod_loop_c #1% }% -\def\XINT@fprod@loop@c #1\Z #2% +\def\XINT_fprod_loop_c #1\Z #2% {% - \expandafter\XINT@fprod@loop@a\expandafter{\romannumeral0\xintmul {#1}{#2}}% + \expandafter\XINT_fprod_loop_a\expandafter{\romannumeral0\xintmul {#1}{#2}}% }% -\def\XINT@fprod@finished #1\Z #2{ #2}% +\def\XINT_fprod_finished #1\Z #2{ #2}% % \end{macrocode} % \subsection{\csh{xintDiv}} % \begin{macrocode} \def\xintDiv {\romannumeral0\xintdiv }% \def\xintdiv #1% {% - \expandafter\xint@fdiv\expandafter {\romannumeral0\XINT@infrac {#1}}% + \expandafter\xint_fdiv\expandafter {\romannumeral0\XINT_infrac {#1}}% }% -\def\xint@fdiv #1#2% - {\expandafter\XINT@fdiv@A\romannumeral0\XINT@infrac {#2}#1}% -\def\XINT@fdiv@A #1#2#3#4#5#6% +\def\xint_fdiv #1#2% + {\expandafter\XINT_fdiv_A\romannumeral0\XINT_infrac {#2}#1}% +\def\XINT_fdiv_A #1#2#3#4#5#6% {% - \expandafter\XINT@fdiv@B + \expandafter\XINT_fdiv_B \expandafter{\the\numexpr #4-#1\expandafter}% \expandafter{\romannumeral0\xintimul {#2}{#6}}% {\romannumeral0\xintimul {#3}{#5}}% }% -\def\XINT@fdiv@B #1#2#3% +\def\XINT_fdiv_B #1#2#3% {% - \expandafter\XINT@fdiv@C + \expandafter\XINT_fdiv_C \expandafter{#3}{#1}{#2}% }% -\def\XINT@fdiv@C #1#2{\XINT@outfrac {#2}{#1}}% +\def\XINT_fdiv_C #1#2{\XINT_outfrac {#2}{#1}}% % \end{macrocode} % \subsection{\csh{xintCmp}} % \begin{macrocode} \def\xintCmp {\romannumeral0\xintcmp }% \def\xintcmp #1% {% - \expandafter\xint@fcmp\expandafter {\romannumeral0\XINT@infrac {#1}}% + \expandafter\xint_fcmp\expandafter {\romannumeral0\XINT_infrac {#1}}% }% -\def\xint@fcmp #1#2{\expandafter\XINT@fcmp@A\romannumeral0\XINT@infrac {#2}#1}% -\def\XINT@fcmp@A #1#2#3#4% +\def\xint_fcmp #1#2{\expandafter\XINT_fcmp_A\romannumeral0\XINT_infrac {#2}#1}% +\def\XINT_fcmp_A #1#2#3#4% {% \ifnum #4 > #1 - \xint@afterfi {\XINT@fcmp@B {#1}}% + \xint_afterfi {\XINT_fcmp_B {#1}}% \else - \xint@afterfi {\XINT@fcmp@B {#4}}% + \xint_afterfi {\XINT_fcmp_B {#4}}% \fi {#1}{#4}{#2}{#3}% }% -\def\XINT@fcmp@B #1#2#3#4#5#6#7% +\def\XINT_fcmp_B #1#2#3#4#5#6#7% {% \xinticmp {\romannumeral0\xintimul {\xintDSH {\the\numexpr -#3+#1\relax}{#6}}{#5}}% @@ -10419,29 +10250,29 @@ first place. \def\xintMax {\romannumeral0\xintmax }% \def\xintmax #1% {% - \expandafter\xint@fmax\expandafter {\romannumeral0\XINT@infrac {#1}}% + \expandafter\xint_fmax\expandafter {\romannumeral0\XINT_infrac {#1}}% }% -\def\xint@fmax #1#2{\expandafter\XINT@outfrac - \romannumeral0\expandafter\XINT@fmax@A - \romannumeral0\XINT@infrac {#2}#1}% -\def\XINT@fmax@A #1#2#3#4#5#6% +\def\xint_fmax #1#2{\expandafter\XINT_outfrac + \romannumeral0\expandafter\XINT_fmax_A + \romannumeral0\XINT_infrac {#2}#1}% +\def\XINT_fmax_A #1#2#3#4#5#6% {% \ifnum #4 > #1 - \xint@afterfi {\XINT@fmax@B {#1}}% + \xint_afterfi {\XINT_fmax_B {#1}}% \else - \xint@afterfi {\XINT@fmax@B {#4}}% + \xint_afterfi {\XINT_fmax_B {#4}}% \fi {#1}{#4}{#2}{#3}{#5}{#6}{{#4}{#5}{#6}}{{#1}{#2}{#3}}% }% -\def\XINT@fmax@B #1#2#3#4#5#6#7% +\def\XINT_fmax_B #1#2#3#4#5#6#7% {% - \expandafter\XINT@fmax@C\expandafter + \expandafter\XINT_fmax_C\expandafter {\romannumeral0\xintimul {\xintDSH {\the\numexpr -#3+#1\relax}{#6}}{#5}}% {\romannumeral0\xintimul {#7}{\xintDSH {\the\numexpr -#2+#1\relax}{#4}}}% }% -\def\XINT@fmax@C #1#2% +\def\XINT_fmax_C #1#2% {% - \expandafter\XINT@max@fork #2\Z #1\Z + \expandafter\XINT_max_fork #2\Z #1\Z }% % \end{macrocode} % \subsection{\csh{xintMin}} @@ -10449,32 +10280,32 @@ first place. \def\xintMin {\romannumeral0\xintmin }% \def\xintmin #1% {% - \expandafter\xint@fmin\expandafter {\romannumeral0\XINT@infrac {#1}}% + \expandafter\xint_fmin\expandafter {\romannumeral0\XINT_infrac {#1}}% }% -\def\xint@fmin #1#2% +\def\xint_fmin #1#2% {% - \expandafter\XINT@outfrac - \romannumeral0\expandafter\XINT@fmin@A - \romannumeral0\XINT@infrac {#2}#1% + \expandafter\XINT_outfrac + \romannumeral0\expandafter\XINT_fmin_A + \romannumeral0\XINT_infrac {#2}#1% }% -\def\XINT@fmin@A #1#2#3#4#5#6% +\def\XINT_fmin_A #1#2#3#4#5#6% {% \ifnum #4 > #1 - \xint@afterfi {\XINT@fmin@B {#1}}% + \xint_afterfi {\XINT_fmin_B {#1}}% \else - \xint@afterfi {\XINT@fmin@B {#4}}% + \xint_afterfi {\XINT_fmin_B {#4}}% \fi {#1}{#4}{#2}{#3}{#5}{#6}{{#4}{#5}{#6}}{{#1}{#2}{#3}}% }% -\def\XINT@fmin@B #1#2#3#4#5#6#7% +\def\XINT_fmin_B #1#2#3#4#5#6#7% {% - \expandafter\XINT@fmin@C\expandafter + \expandafter\XINT_fmin_C\expandafter {\romannumeral0\xintimul {\xintDSH {\the\numexpr -#3+#1\relax}{#6}}{#5}}% {\romannumeral0\xintimul {#7}{\xintDSH {\the\numexpr -#2+#1\relax}{#4}}}% }% -\def\XINT@fmin@C #1#2% +\def\XINT_fmin_C #1#2% {% - \expandafter\XINT@min@fork #2\Z #1\Z + \expandafter\XINT_min_fork #2\Z #1\Z }% % \end{macrocode} % \subsection{\csh{xintAbs}} @@ -10482,13 +10313,13 @@ first place. \def\xintAbs {\romannumeral0\xintabs }% \def\xintabs #1% {% - \expandafter\xint@fabs\romannumeral0\XINT@infrac {#1}% + \expandafter\xint_fabs\romannumeral0\XINT_infrac {#1}% }% -\def\xint@fabs #1#2% +\def\xint_fabs #1#2% {% - \expandafter\XINT@outfrac\expandafter + \expandafter\XINT_outfrac\expandafter {\the\numexpr #1\expandafter}\expandafter - {\romannumeral0\XINT@abs #2}% + {\romannumeral0\XINT_abs #2}% }% % \end{macrocode} % \subsection{\csh{xintOpp}} @@ -10496,13 +10327,13 @@ first place. \def\xintOpp {\romannumeral0\xintopp }% \def\xintopp #1% {% - \expandafter\xint@fopp\romannumeral0\XINT@infrac {#1}% + \expandafter\xint_fopp\romannumeral0\XINT_infrac {#1}% }% -\def\xint@fopp #1#2% +\def\xint_fopp #1#2% {% - \expandafter\XINT@outfrac\expandafter + \expandafter\XINT_outfrac\expandafter {\the\numexpr #1\expandafter}\expandafter - {\romannumeral0\XINT@opp #2}% + {\romannumeral0\XINT_opp #2}% }% % \end{macrocode} % \subsection{\csh{xintSgn}} @@ -10510,20 +10341,20 @@ first place. \def\xintSgn {\romannumeral0\xintsgn }% \def\xintsgn #1% {% - \expandafter\xint@fsgn\romannumeral0\XINT@infrac {#1}% + \expandafter\xint_fsgn\romannumeral0\XINT_infrac {#1}% }% -\def\xint@fsgn #1#2#3{\xintisgn {#2}}% +\def\xint_fsgn #1#2#3{\xintisgn {#2}}% % \end{macrocode} % \subsection{\csh{xintGeq}} % \begin{macrocode} \def\xintGeq {\romannumeral0\xintgeq }% \def\xintgeq #1% {% - \expandafter\xint@xgeq\expandafter{\romannumeral0\xintnum {#1}}% + \expandafter\xint_xgeq\expandafter{\romannumeral0\xintnum {#1}}% }% -\def\xint@xgeq #1#2% +\def\xint_xgeq #1#2% {% - \expandafter\XINT@geq@fork\romannumeral0\xintnum {#2}\Z #1\Z + \expandafter\XINT_geq_fork\romannumeral0\xintnum {#2}\Z #1\Z }% % \end{macrocode} % \subsection{\csh{xintDivision},~\csh{xintQuo},~\csh{xintRem}} @@ -10531,17 +10362,17 @@ first place. \def\xintDivision {\romannumeral0\xintdivision }% \def\xintdivision #1% {% - \expandafter\xint@xdivision\expandafter{\romannumeral0\xintnum {#1}}% + \expandafter\xint_xdivision\expandafter{\romannumeral0\xintnum {#1}}% }% -\def\xint@xdivision #1#2% +\def\xint_xdivision #1#2% {% - \expandafter\XINT@div@fork\romannumeral0\xintnum {#2}\Z #1\Z + \expandafter\XINT_div_fork\romannumeral0\xintnum {#2}\Z #1\Z }% \def\xintQuo {\romannumeral0\xintquo }% \def\xintRem {\romannumeral0\xintrem }% -\def\xintquo {\expandafter\xint@firstoftwo@andstop +\def\xintquo {\expandafter\xint_firstoftwo_andstop \romannumeral0\xintdivision }% -\def\xintrem {\expandafter\xint@secondoftwo@andstop +\def\xintrem {\expandafter\xint_secondoftwo_andstop \romannumeral0\xintdivision }% % \end{macrocode} % \subsection{\csh{xintFDg},~\csh{xintLDg},~\csh{xintMON},~\csh{xint\-MMON},~\csh{xintOdd}} @@ -10549,41 +10380,41 @@ first place. \def\xintFDg {\romannumeral0\xintfdg }% \def\xintfdg #1% {% - \expandafter\XINT@fdg\romannumeral0\xintnum {#1}\W\Z + \expandafter\XINT_fdg\romannumeral0\xintnum {#1}\W\Z }% \def\xintLDg {\romannumeral0\xintldg }% \def\xintldg #1% {% - \expandafter\XINT@ldg\expandafter{\romannumeral0\xintnum {#1}}% + \expandafter\XINT_ldg\expandafter{\romannumeral0\xintnum {#1}}% }% \def\xintMON {\romannumeral0\xintmon }% \def\xintmon #1% {% \ifodd\xintLDg {#1} - \xint@afterfi{ -1}% + \xint_afterfi{ -1}% \else - \xint@afterfi{ 1}% + \xint_afterfi{ 1}% \fi }% \def\xintMMON {\romannumeral0\xintmmon }% \def\xintmmon #1% {% \ifodd\xintLDg {#1} - \xint@afterfi{ 1}% + \xint_afterfi{ 1}% \else - \xint@afterfi{ -1}% + \xint_afterfi{ -1}% \fi }% \def\xintOdd {\romannumeral0\xintodd }% \def\xintodd #1% {% \ifodd\xintLDg{#1} - \xint@afterfi{ 1}% + \xint_afterfi{ 1}% \else - \xint@afterfi{ 0}% + \xint_afterfi{ 0}% \fi }% -\XINT@frac@restorecatcodes@endinput% +\XINT_frac_restorecatcodes_endinput% % \end{macrocode} %\catcode`\<=0 \catcode`\>=11 \catcode`\*=11 \catcode`\/=11 %\let</xintfrac>\relax @@ -10689,8 +10520,8 @@ first place. % % Perhaps catcodes have changed after the loading of \xintname and % \xintfracname and prior to the current loading of \xintseriesname, -% so we can not employ the |\XINT@restorecatcodes@endinput| in this style -% file. But there is no problem using |\XINT@setcatcodes|. +% so we can not employ the |\XINT_restorecatcodes_endinput| in this style +% file. But there is no problem using |\XINT_setcatcodes|. % % \begin{macrocode} \begingroup\catcode61\catcode48\catcode32=10\relax% @@ -10698,11 +10529,11 @@ first place. \endlinechar=13 % \catcode123=1 % { \catcode125=2 % } - \catcode64=11 % @ + \catcode95=11 % _ \def\x {% \endgroup - \edef\XINT@series@restorecatcodes@endinput + \edef\XINT_series_restorecatcodes_endinput {% \catcode93=\the\catcode93 % ] \catcode91=\the\catcode91 % [ @@ -10719,7 +10550,7 @@ first place. \catcode45=\the\catcode45 % - \catcode44=\the\catcode44 % , \catcode35=\the\catcode35 % # - \catcode64=\the\catcode64 % @ + \catcode95=\the\catcode95 % _ \catcode125=\the\catcode125 % } \catcode123=\the\catcode123 % { \endlinechar=\the\endlinechar @@ -10728,7 +10559,7 @@ first place. \catcode61=\the\catcode61\relax % = \noexpand\endinput }% - \XINT@setcatcodes + \XINT_setcatcodes \catcode91=12 % [ \catcode93=12 % ] }% @@ -10737,6 +10568,7 @@ first place. % \subsection{Package identification} % \begin{macrocode} \begingroup + \catcode64=11 % @ \catcode58=12 % : \expandafter\ifx\csname ProvidesPackage\endcsname\relax \def\x#1#2#3[#4]{\endgroup @@ -10756,167 +10588,159 @@ first place. \fi \expandafter\x\csname ver@xintseries.sty\endcsname \ProvidesPackage{xintseries}% - [2013/05/09 v1.06a Expandable partial sums with xint package (jfB)]% + [2013/05/14 v1.06b Expandable partial sums with xint package (jfB)]% % \end{macrocode} % \subsection{\csh{xintSeries}} -% \begin{verbatim} +% \lverb|& % Modified in 1.06 to give the indices first to a \numexpr rather than expanding -% twice. I just use \the\numexpr and maintain the previous code after that. -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% twice. I just use \the\numexpr and maintain the previous code after that.| % \begin{macrocode} \def\xintSeries {\romannumeral0\xintseries }% \def\xintseries #1#2% {% - \expandafter\XINT@series@i\expandafter {\the\numexpr #2}{#1}% + \expandafter\XINT_series_i\expandafter {\the\numexpr #2}{#1}% }% -\def\XINT@series@i #1#2% +\def\XINT_series_i #1#2% {% - \expandafter\XINT@series@ii\expandafter {\the\numexpr #2}{#1}% + \expandafter\XINT_series_ii\expandafter {\the\numexpr #2}{#1}% }% -\def\XINT@series@ii #1#2#3% +\def\XINT_series_ii #1#2#3% {% \ifnum #2<#1 - \xint@afterfi { 0/1[0]}% + \xint_afterfi { 0/1[0]}% \else - \xint@afterfi {\XINT@series@loop {#1}{0}{#2}{#3}}% + \xint_afterfi {\XINT_series_loop {#1}{0}{#2}{#3}}% \fi }% -\def\XINT@series@loop #1#2#3#4% +\def\XINT_series_loop #1#2#3#4% {% - \ifnum #3>#1 \else \XINT@series@exit \fi - \expandafter\XINT@series@loop\expandafter + \ifnum #3>#1 \else \XINT_series_exit \fi + \expandafter\XINT_series_loop\expandafter {\the\numexpr #1+1\expandafter }\expandafter {\romannumeral0\xintadd {#2}{#4{#1}}}% {#3}{#4}% }% -\def\XINT@series@exit \fi #1#2#3#4#5#6#7#8% +\def\XINT_series_exit \fi #1#2#3#4#5#6#7#8% {% - \fi\xint@gobble@ii #6% + \fi\xint_gobble_ii #6% }% % \end{macrocode} % \subsection{\csh{xintiSeries}} -% \begin{verbatim} +% \lverb|& % Modified in 1.06 to give the indices first to a \numexpr rather than expanding -% twice. I just use \the\numexpr and maintain the previous code after that. -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% twice. I just use \the\numexpr and maintain the previous code after that.| % \begin{macrocode} \def\xintiSeries {\romannumeral0\xintiseries }% \def\xintiseries #1#2% {% - \expandafter\XINT@iseries@i\expandafter {\the\numexpr #2}{#1}% + \expandafter\XINT_iseries_i\expandafter {\the\numexpr #2}{#1}% }% -\def\XINT@iseries@i #1#2% +\def\XINT_iseries_i #1#2% {% - \expandafter\XINT@iseries@ii\expandafter {\the\numexpr #2}{#1}% + \expandafter\XINT_iseries_ii\expandafter {\the\numexpr #2}{#1}% }% -\def\XINT@iseries@ii #1#2#3% +\def\XINT_iseries_ii #1#2#3% {% \ifnum #2<#1 - \xint@afterfi { 0}% + \xint_afterfi { 0}% \else - \xint@afterfi {\XINT@iseries@loop {#1}{0}{#2}{#3}}% + \xint_afterfi {\XINT_iseries_loop {#1}{0}{#2}{#3}}% \fi }% -\def\XINT@iseries@loop #1#2#3#4% +\def\XINT_iseries_loop #1#2#3#4% {% - \ifnum #3>#1 \else \XINT@iseries@exit \fi - \expandafter\XINT@iseries@loop\expandafter + \ifnum #3>#1 \else \XINT_iseries_exit \fi + \expandafter\XINT_iseries_loop\expandafter {\the\numexpr #1+1\expandafter }\expandafter {\romannumeral0\xintiadd {#2}{#4{#1}}}% {#3}{#4}% }% -\def\XINT@iseries@exit \fi #1#2#3#4#5#6#7#8% +\def\XINT_iseries_exit \fi #1#2#3#4#5#6#7#8% {% - \fi\xint@gobble@ii #6% + \fi\xint_gobble_ii #6% }% % \end{macrocode} % \subsection{\csh{xintPowerSeries}} -% \begin{verbatim} +% \lverb|& % The 1.03 version was very lame and created a build-up of denominators. % The Horner scheme for polynomial evaluation is used in 1.04, this % cures the denominator problem and drastically improves the efficiency % of the macro. % Modified in 1.06 to give the indices first to a \numexpr rather than expanding -% twice. I just use \the\numexpr and maintain the previous code after that. -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% twice. I just use \the\numexpr and maintain the previous code after that.| % \begin{macrocode} \def\xintPowerSeries {\romannumeral0\xintpowerseries }% \def\xintpowerseries #1#2% {% - \expandafter\XINT@powseries@i\expandafter {\the\numexpr #2}{#1}% + \expandafter\XINT_powseries_i\expandafter {\the\numexpr #2}{#1}% }% -\def\XINT@powseries@i #1#2% +\def\XINT_powseries_i #1#2% {% - \expandafter\XINT@powseries@ii\expandafter {\the\numexpr #2}{#1}% + \expandafter\XINT_powseries_ii\expandafter {\the\numexpr #2}{#1}% }% -\def\XINT@powseries@ii #1#2#3#4% +\def\XINT_powseries_ii #1#2#3#4% {% \ifnum #2<#1 - \xint@afterfi { 0/1[0]}% + \xint_afterfi { 0/1[0]}% \else - \xint@afterfi - {\XINT@powseries@loop@i {#3{#2}}{#1}{#2}{#3}{#4}}% + \xint_afterfi + {\XINT_powseries_loop_i {#3{#2}}{#1}{#2}{#3}{#4}}% \fi }% -\def\XINT@powseries@loop@i #1#2#3#4#5% +\def\XINT_powseries_loop_i #1#2#3#4#5% {% - \ifnum #3>#2 \else\XINT@powseries@exit@i\fi - \expandafter\XINT@powseries@loop@ii\expandafter + \ifnum #3>#2 \else\XINT_powseries_exit_i\fi + \expandafter\XINT_powseries_loop_ii\expandafter {\the\numexpr #3-1\expandafter}\expandafter {\romannumeral0\xintmul {#1}{#5}}{#2}{#4}{#5}% }% -\def\XINT@powseries@loop@ii #1#2#3#4% +\def\XINT_powseries_loop_ii #1#2#3#4% {% - \expandafter\XINT@powseries@loop@i\expandafter + \expandafter\XINT_powseries_loop_i\expandafter {\romannumeral0\xintadd {#4{#1}}{#2}}{#3}{#1}{#4}% }% -\def\XINT@powseries@exit@i\fi #1#2#3#4#5#6#7#8#9% +\def\XINT_powseries_exit_i\fi #1#2#3#4#5#6#7#8#9% {% - \fi \XINT@powseries@exit@ii #6{#7}% + \fi \XINT_powseries_exit_ii #6{#7}% }% -\def\XINT@powseries@exit@ii #1#2#3#4#5#6% +\def\XINT_powseries_exit_ii #1#2#3#4#5#6% {% \xintmul{\xintPow {#5}{#6}}{#4}% }% % \end{macrocode} % \subsection{\csh{xintPowerSeriesX}} -% \begin{verbatim} +% \lverb|& % Same as \xintPowerSeries except for the initial expansion of the x parameter. % Modified in 1.06 to give the indices first to a \numexpr rather than expanding -% twice. I just use \the\numexpr and maintain the previous code after that. -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% twice. I just use \the\numexpr and maintain the previous code after that.| % \begin{macrocode} \def\xintPowerSeriesX {\romannumeral0\xintpowerseriesx }% \def\xintpowerseriesx #1#2% {% - \expandafter\XINT@powseriesx@i\expandafter {\the\numexpr #2}{#1}% + \expandafter\XINT_powseriesx_i\expandafter {\the\numexpr #2}{#1}% }% -\def\XINT@powseriesx@i #1#2% +\def\XINT_powseriesx_i #1#2% {% - \expandafter\XINT@powseriesx@ii\expandafter {\the\numexpr #2}{#1}% + \expandafter\XINT_powseriesx_ii\expandafter {\the\numexpr #2}{#1}% }% -\def\XINT@powseriesx@ii #1#2#3#4% +\def\XINT_powseriesx_ii #1#2#3#4% {% \ifnum #2<#1 - \xint@afterfi { 0/1[0]}% + \xint_afterfi { 0/1[0]}% \else - \xint@afterfi - {\expandafter\XINT@powseriesx@pre\expandafter + \xint_afterfi + {\expandafter\XINT_powseriesx_pre\expandafter {\romannumeral-`0#4}{#1}{#2}{#3}% }% \fi }% -\def\XINT@powseriesx@pre #1#2#3#4% +\def\XINT_powseriesx_pre #1#2#3#4% {% - \XINT@powseries@loop@i {#4{#3}}{#2}{#3}{#4}{#1}% + \XINT_powseries_loop_i {#4{#3}}{#2}{#3}{#4}{#1}% }% % \end{macrocode} % \subsection{\csh{xintRationalSeries}} -% \begin{verbatim} +% \lverb|& % This computes F(a)+...+F(b) on the basis of the value of F(a) and the % ratios F(n)/F(n-1). As in \xintPowerSeries we use an iterative scheme which % has the great advantage to avoid denominator build-up. This makes exact @@ -10924,183 +10748,175 @@ first place. % inaccessible to \xintSeries. % #1=a, #2=b, #3=F(a), #4=ratio function % Modified in 1.06 to give the indices first to a \numexpr rather than expanding -% twice. I just use \the\numexpr and maintain the previous code after that. -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% twice. I just use \the\numexpr and maintain the previous code after that.| % \begin{macrocode} \def\xintRationalSeries {\romannumeral0\xintratseries }% \def\xintratseries #1#2% {% - \expandafter\XINT@ratseries@i\expandafter {\the\numexpr #2}{#1}% + \expandafter\XINT_ratseries_i\expandafter {\the\numexpr #2}{#1}% }% -\def\XINT@ratseries@i #1#2% +\def\XINT_ratseries_i #1#2% {% - \expandafter\XINT@ratseries@ii\expandafter {\the\numexpr #2}{#1}% + \expandafter\XINT_ratseries_ii\expandafter {\the\numexpr #2}{#1}% }% -\def\XINT@ratseries@ii #1#2#3#4% +\def\XINT_ratseries_ii #1#2#3#4% {% \ifnum #2<#1 - \xint@afterfi { 0/1[0]}% + \xint_afterfi { 0/1[0]}% \else - \xint@afterfi - {\XINT@ratseries@loop {#2}{1}{#1}{#4}{#3}}% + \xint_afterfi + {\XINT_ratseries_loop {#2}{1}{#1}{#4}{#3}}% \fi }% -\def\XINT@ratseries@loop #1#2#3#4% +\def\XINT_ratseries_loop #1#2#3#4% {% - \ifnum #1>#3 \else\XINT@ratseries@exit@i\fi - \expandafter\XINT@ratseries@loop\expandafter + \ifnum #1>#3 \else\XINT_ratseries_exit_i\fi + \expandafter\XINT_ratseries_loop\expandafter {\the\numexpr #1-1\expandafter}\expandafter {\romannumeral0\xintadd {1}{\xintMul {#2}{#4{#1}}}}{#3}{#4}% }% -\def\XINT@ratseries@exit@i\fi #1#2#3#4#5#6#7#8% +\def\XINT_ratseries_exit_i\fi #1#2#3#4#5#6#7#8% {% - \fi \XINT@ratseries@exit@ii #6% + \fi \XINT_ratseries_exit_ii #6% }% -\def\XINT@ratseries@exit@ii #1#2#3#4#5% +\def\XINT_ratseries_exit_ii #1#2#3#4#5% {% - \XINT@ratseries@exit@iii #5% + \XINT_ratseries_exit_iii #5% }% -\def\XINT@ratseries@exit@iii #1#2#3#4% +\def\XINT_ratseries_exit_iii #1#2#3#4% {% \xintmul{#2}{#4}% }% % \end{macrocode} % \subsection{\csh{xintRationalSeriesX}} -% \begin{verbatim} -% a,b,initial,ratiofunction,x +% \lverb|& +% a,b,initial,ratiofunction,x$\ % This computes F(a,x)+...+F(b,x) on the basis of the value of F(a,x) and the % ratios F(n,x)/F(n-1,x). The argument x is first expanded and it is the value % resulting from this which is used then throughout. The initial term F(a,x) % must be defined as one-parameter macro which will be given x. % Modified in 1.06 to give the indices first to a \numexpr rather than expanding -% twice. I just use \the\numexpr and maintain the previous code after that. -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% twice. I just use \the\numexpr and maintain the previous code after that.| % \begin{macrocode} \def\xintRationalSeriesX {\romannumeral0\xintratseriesx }% \def\xintratseriesx #1#2% {% - \expandafter\XINT@ratseriesx@i\expandafter {\the\numexpr #2}{#1}% + \expandafter\XINT_ratseriesx_i\expandafter {\the\numexpr #2}{#1}% }% -\def\XINT@ratseriesx@i #1#2% +\def\XINT_ratseriesx_i #1#2% {% - \expandafter\XINT@ratseriesx@ii\expandafter {\the\numexpr #2}{#1}% + \expandafter\XINT_ratseriesx_ii\expandafter {\the\numexpr #2}{#1}% }% -\def\XINT@ratseriesx@ii #1#2#3#4#5% +\def\XINT_ratseriesx_ii #1#2#3#4#5% {% \ifnum #2<#1 - \xint@afterfi { 0/1[0]}% + \xint_afterfi { 0/1[0]}% \else - \xint@afterfi - {\expandafter\XINT@ratseriesx@pre\expandafter + \xint_afterfi + {\expandafter\XINT_ratseriesx_pre\expandafter {\romannumeral-`0#5}{#2}{#1}{#4}{#3}% }% \fi }% -\def\XINT@ratseriesx@pre #1#2#3#4#5% +\def\XINT_ratseriesx_pre #1#2#3#4#5% {% - \XINT@ratseries@loop {#2}{1}{#3}{#4{#1}}{#5{#1}}% + \XINT_ratseries_loop {#2}{1}{#3}{#4{#1}}{#5{#1}}% }% % \end{macrocode} % \subsection{\csh{xintFxPtPowerSeries}} -% \begin{verbatim} +% \lverb|& % I am not two happy with this piece of code. Will make it more economical % another day. % Modified in 1.06 to give the indices first to a \numexpr rather than expanding -% twice. I just use \the\numexpr and maintain the previous code after that. -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% twice. I just use \the\numexpr and maintain the previous code after that.| % \begin{macrocode} \def\xintFxPtPowerSeries {\romannumeral0\xintfxptpowerseries }% \def\xintfxptpowerseries #1#2% {% - \expandafter\XINT@fppowseries@i\expandafter {\the\numexpr #2}{#1}% + \expandafter\XINT_fppowseries_i\expandafter {\the\numexpr #2}{#1}% }% -\def\XINT@fppowseries@i #1#2% +\def\XINT_fppowseries_i #1#2% {% - \expandafter\XINT@fppowseries@ii\expandafter {\the\numexpr #2}{#1}% + \expandafter\XINT_fppowseries_ii\expandafter {\the\numexpr #2}{#1}% }% -\def\XINT@fppowseries@ii #1#2#3#4#5% +\def\XINT_fppowseries_ii #1#2#3#4#5% {% \ifnum #2<#1 - \xint@afterfi { 0}% + \xint_afterfi { 0}% \else - \xint@afterfi - {\expandafter\XINT@fppowseries@loop@pre\expandafter + \xint_afterfi + {\expandafter\XINT_fppowseries_loop_pre\expandafter {\romannumeral0\xinttrunc {#5}{\xintPow {#4}{#1}}}% {#1}{#4}{#2}{#3}{#5}% }% \fi }% -\def\XINT@fppowseries@loop@pre #1#2#3#4#5#6% +\def\XINT_fppowseries_loop_pre #1#2#3#4#5#6% {% - \ifnum #4>#2 \else\XINT@fppowseries@dont@i \fi - \expandafter\XINT@fppowseries@loop@i\expandafter + \ifnum #4>#2 \else\XINT_fppowseries_dont_i \fi + \expandafter\XINT_fppowseries_loop_i\expandafter {\the\numexpr #2+1\expandafter}\expandafter {\romannumeral0\xintitrunc {#6}{\xintMul {#5{#2}}{#1}}}% {#1}{#3}{#4}{#5}{#6}% }% -\def\XINT@fppowseries@dont@i \fi\expandafter\XINT@fppowseries@loop@i - {\fi \expandafter\XINT@fppowseries@dont@ii }% -\def\XINT@fppowseries@dont@ii #1#2#3#4#5#6#7{\xinttrunc {#7}{#2[-#7]}}% -\def\XINT@fppowseries@loop@i #1#2#3#4#5#6#7% +\def\XINT_fppowseries_dont_i \fi\expandafter\XINT_fppowseries_loop_i + {\fi \expandafter\XINT_fppowseries_dont_ii }% +\def\XINT_fppowseries_dont_ii #1#2#3#4#5#6#7{\xinttrunc {#7}{#2[-#7]}}% +\def\XINT_fppowseries_loop_i #1#2#3#4#5#6#7% {% - \ifnum #5>#1 \else \XINT@fppowseries@exit@i \fi - \expandafter\XINT@fppowseries@loop@ii\expandafter + \ifnum #5>#1 \else \XINT_fppowseries_exit_i \fi + \expandafter\XINT_fppowseries_loop_ii\expandafter {\romannumeral0\xinttrunc {#7}{\xintMul {#3}{#4}}}% {#1}{#4}{#2}{#5}{#6}{#7}% }% -\def\XINT@fppowseries@loop@ii #1#2#3#4#5#6#7% +\def\XINT_fppowseries_loop_ii #1#2#3#4#5#6#7% {% - \expandafter\XINT@fppowseries@loop@i\expandafter + \expandafter\XINT_fppowseries_loop_i\expandafter {\the\numexpr #2+1\expandafter}\expandafter {\romannumeral0\xintiadd {#4}{\xintiTrunc {#7}{\xintMul {#6{#2}}{#1}}}}% {#1}{#3}{#5}{#6}{#7}% }% -\def\XINT@fppowseries@exit@i\fi\expandafter\XINT@fppowseries@loop@ii - {\fi \expandafter\XINT@fppowseries@exit@ii }% -\def\XINT@fppowseries@exit@ii #1#2#3#4#5#6#7% +\def\XINT_fppowseries_exit_i\fi\expandafter\XINT_fppowseries_loop_ii + {\fi \expandafter\XINT_fppowseries_exit_ii }% +\def\XINT_fppowseries_exit_ii #1#2#3#4#5#6#7% {% \xinttrunc {#7} {\xintiAdd {#4}{\xintiTrunc {#7}{\xintMul {#6{#2}}{#1}}}[-#7]}% }% % \end{macrocode} % \subsection{\csh{xintFxPtPowerSeriesX}} -% \begin{verbatim} -% a,b,coeff,x,D +% \lverb|& +% a,b,coeff,x,D$\ % Modified in 1.06 to give the indices first to a \numexpr rather than expanding -% twice. I just use \the\numexpr and maintain the previous code after that. -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% twice. I just use \the\numexpr and maintain the previous code after that.| % \begin{macrocode} \def\xintFxPtPowerSeriesX {\romannumeral0\xintfxptpowerseriesx }% \def\xintfxptpowerseriesx #1#2% {% - \expandafter\XINT@fppowseriesx@i\expandafter {\the\numexpr #2}{#1}% + \expandafter\XINT_fppowseriesx_i\expandafter {\the\numexpr #2}{#1}% }% -\def\XINT@fppowseriesx@i #1#2% +\def\XINT_fppowseriesx_i #1#2% {% - \expandafter\XINT@fppowseriesx@ii\expandafter {\the\numexpr #2}{#1}% + \expandafter\XINT_fppowseriesx_ii\expandafter {\the\numexpr #2}{#1}% }% -\def\XINT@fppowseriesx@ii #1#2#3#4#5% +\def\XINT_fppowseriesx_ii #1#2#3#4#5% {% \ifnum #2<#1 - \xint@afterfi { 0}% + \xint_afterfi { 0}% \else - \xint@afterfi - {\expandafter \XINT@fppowseriesx@pre \expandafter + \xint_afterfi + {\expandafter \XINT_fppowseriesx_pre \expandafter {\romannumeral-`0#4}{#1}{#2}{#3}{#5}% }% \fi }% -\def\XINT@fppowseriesx@pre #1#2#3#4#5% +\def\XINT_fppowseriesx_pre #1#2#3#4#5% {% - \expandafter\XINT@fppowseries@loop@pre\expandafter + \expandafter\XINT_fppowseries_loop_pre\expandafter {\romannumeral0\xinttrunc {#5}{\xintPow {#1}{#2}}}% {#2}{#1}{#3}{#4}{#5}% }% -\XINT@series@restorecatcodes@endinput% +\XINT_series_restorecatcodes_endinput% % \end{macrocode} %\catcode`\<=0 \catcode`\>=11 \catcode`\*=11 \catcode`\/=11 %\let</xintseries>\relax @@ -11206,8 +11022,8 @@ first place. % % Perhaps catcodes have changed after the loading of \xintname and % \xintfracname and prior to the current loading of \xintcfracname, -% so we can not employ the |\XINT@restorecatcodes@endinput| in this style -% file. But there is no problem using |\XINT@setcatcodes|. +% so we can not employ the |\XINT_restorecatcodes_endinput| in this style +% file. But there is no problem using |\XINT_setcatcodes|. % % \begin{macrocode} \begingroup\catcode61\catcode48\catcode32=10\relax% @@ -11215,11 +11031,11 @@ first place. \endlinechar=13 % \catcode123=1 % { \catcode125=2 % } - \catcode64=11 % @ + \catcode95=11 % _ \def\x {% \endgroup - \edef\XINT@cfrac@restorecatcodes@endinput + \edef\XINT_cfrac_restorecatcodes_endinput {% \catcode93=\the\catcode93 % ] \catcode91=\the\catcode91 % [ @@ -11236,7 +11052,7 @@ first place. \catcode45=\the\catcode45 % - \catcode44=\the\catcode44 % , \catcode35=\the\catcode35 % # - \catcode64=\the\catcode64 % @ + \catcode95=\the\catcode95 % _ \catcode125=\the\catcode125 % } \catcode123=\the\catcode123 % { \endlinechar=\the\endlinechar @@ -11245,7 +11061,7 @@ first place. \catcode61=\the\catcode61\relax % = \noexpand\endinput }% - \XINT@setcatcodes + \XINT_setcatcodes \catcode91=12 % [ \catcode93=12 % ] }% @@ -11254,6 +11070,7 @@ first place. % \subsection{Package identification} % \begin{macrocode} \begingroup + \catcode64=11 % @ \catcode58=12 % : \expandafter\ifx\csname ProvidesPackage\endcsname\relax \def\x#1#2#3[#4]{\endgroup @@ -11273,240 +11090,241 @@ first place. \fi \expandafter\x\csname ver@xintcfrac.sty\endcsname \ProvidesPackage{xintcfrac}% - [2013/05/09 v1.06a Expandable continued fractions with xint package (jfB)]% + [2013/05/14 v1.06b Expandable continued fractions with xint package (jfB)]% % \end{macrocode} % \subsection{\csh{xintCFrac}} % \begin{macrocode} \def\xintCFrac {\romannumeral0\xintcfrac }% \def\xintcfrac #1% {% - \XINT@cfrac@opt@a #1\Z + \XINT_cfrac_opt_a #1\Z }% -\def\XINT@cfrac@opt@a #1% +\def\XINT_cfrac_opt_a #1% {% - \ifx#1[\XINT@cfrac@opt@b\fi \XINT@cfrac@noopt #1% + \ifx#1[\XINT_cfrac_opt_b\fi \XINT_cfrac_noopt #1% }% -\def\XINT@cfrac@noopt #1\Z +\def\XINT_cfrac_noopt #1\Z {% - \expandafter\XINT@cfrac@A\romannumeral0\xintraw {#1}\Z + \expandafter\XINT_cfrac_A\romannumeral0\xintraw {#1}\Z \relax\relax }% -\def\XINT@cfrac@opt@b\fi\XINT@cfrac@noopt [\Z #1]% +\def\XINT_cfrac_opt_b\fi\XINT_cfrac_noopt [\Z #1]% {% - \fi\csname XINT@cfrac@opt#1\endcsname + \fi\csname XINT_cfrac_opt#1\endcsname }% -\def\XINT@cfrac@optl #1% +\def\XINT_cfrac_optl #1% {% - \expandafter\XINT@cfrac@A\romannumeral0\xintraw {#1}\Z + \expandafter\XINT_cfrac_A\romannumeral0\xintraw {#1}\Z \relax\hfill }% -\def\XINT@cfrac@optc #1% +\def\XINT_cfrac_optc #1% {% - \expandafter\XINT@cfrac@A\romannumeral0\xintraw {#1}\Z + \expandafter\XINT_cfrac_A\romannumeral0\xintraw {#1}\Z \relax\relax }% -\def\XINT@cfrac@optr #1% +\def\XINT_cfrac_optr #1% {% - \expandafter\XINT@cfrac@A\romannumeral0\xintraw {#1}\Z + \expandafter\XINT_cfrac_A\romannumeral0\xintraw {#1}\Z \hfill\relax }% -\def\XINT@cfrac@A #1/#2\Z +\def\XINT_cfrac_A #1/#2\Z {% - \expandafter\XINT@cfrac@B\romannumeral0\xintidivision {#1}{#2}{#2}% + \expandafter\XINT_cfrac_B\romannumeral0\xintidivision {#1}{#2}{#2}% }% -\def\XINT@cfrac@B #1#2% +\def\XINT_cfrac_B #1#2% {% - \XINT@cfrac@C #2\Z {#1}% + \XINT_cfrac_C #2\Z {#1}% }% -\def\XINT@cfrac@C #1% +\def\XINT_cfrac_C #1% {% - \xint@zero #1\XINT@cfrac@integer 0\XINT@cfrac@D #1% + \xint_gob_til_zero #1\XINT_cfrac_integer 0\XINT_cfrac_D #1% }% -\def\XINT@cfrac@integer 0\XINT@cfrac@D 0#1\Z #2#3#4#5{ #2}% -\def\XINT@cfrac@D #1\Z #2#3{\XINT@cfrac@loop@a {#1}{#3}{#1}{{#2}}}% -\def\XINT@cfrac@loop@a +\def\XINT_cfrac_integer 0\XINT_cfrac_D 0#1\Z #2#3#4#5{ #2}% +\def\XINT_cfrac_D #1\Z #2#3{\XINT_cfrac_loop_a {#1}{#3}{#1}{{#2}}}% +\def\XINT_cfrac_loop_a {% - \expandafter\XINT@cfrac@loop@d\romannumeral0\XINT@div@prepare + \expandafter\XINT_cfrac_loop_d\romannumeral0\XINT_div_prepare }% -\def\XINT@cfrac@loop@d #1#2% +\def\XINT_cfrac_loop_d #1#2% {% - \XINT@cfrac@loop@e #2.{#1}% + \XINT_cfrac_loop_e #2.{#1}% }% -\def\XINT@cfrac@loop@e #1% +\def\XINT_cfrac_loop_e #1% {% - \xint@zero #1\xint@cfrac@loop@exit0\XINT@cfrac@loop@f #1% + \xint_gob_til_zero #1\xint_cfrac_loop_exit0\XINT_cfrac_loop_f #1% }% -\def\XINT@cfrac@loop@f #1.#2#3#4% +\def\XINT_cfrac_loop_f #1.#2#3#4% {% - \XINT@cfrac@loop@a {#1}{#3}{#1}{{#2}#4}% + \XINT_cfrac_loop_a {#1}{#3}{#1}{{#2}#4}% }% -\def\xint@cfrac@loop@exit0\XINT@cfrac@loop@f #1.#2#3#4#5#6% - {\XINT@cfrac@T #5#6{#2}#4\Z }% -\def\XINT@cfrac@T #1#2#3#4% +\def\xint_cfrac_loop_exit0\XINT_cfrac_loop_f #1.#2#3#4#5#6% + {\XINT_cfrac_T #5#6{#2}#4\Z }% +\def\XINT_cfrac_T #1#2#3#4% {% - \xint@z #4\XINT@cfrac@end\Z\XINT@cfrac@T #1#2{#4+\cfrac{#11#2}{#3}}% + \xint_gob_til_z #4\XINT_cfrac_end\Z\XINT_cfrac_T #1#2{#4+\cfrac{#11#2}{#3}}% }% -\def\XINT@cfrac@end\Z\XINT@cfrac@T #1#2#3% +\def\XINT_cfrac_end\Z\XINT_cfrac_T #1#2#3% {% - \XINT@cfrac@@end #3% + \XINT_cfrac__end #3% }% -\def\XINT@cfrac@@end \Z+\cfrac#1#2{ #2}% +\def\XINT_cfrac__end \Z+\cfrac#1#2{ #2}% % \end{macrocode} % \subsection{\csh{xintGCFrac}} % \begin{macrocode} \def\xintGCFrac {\romannumeral0\xintgcfrac }% \def\xintgcfrac #1% {% - \XINT@gcfrac@opt@a #1\Z + \XINT_gcfrac_opt_a #1\Z }% -\def\XINT@gcfrac@opt@a #1% +\def\XINT_gcfrac_opt_a #1% {% - \ifx#1[\XINT@gcfrac@opt@b\fi \XINT@gcfrac@noopt #1% + \ifx#1[\XINT_gcfrac_opt_b\fi \XINT_gcfrac_noopt #1% }% -\def\XINT@gcfrac@noopt #1\Z +\def\XINT_gcfrac_noopt #1\Z {% - \XINT@gcfrac #1+\W/\relax\relax + \XINT_gcfrac #1+\W/\relax\relax }% -\def\XINT@gcfrac@opt@b\fi\XINT@gcfrac@noopt [\Z #1]% +\def\XINT_gcfrac_opt_b\fi\XINT_gcfrac_noopt [\Z #1]% {% - \fi\csname XINT@gcfrac@opt#1\endcsname + \fi\csname XINT_gcfrac_opt#1\endcsname }% -\def\XINT@gcfrac@optl #1% +\def\XINT_gcfrac_optl #1% {% - \XINT@gcfrac #1+\W/\relax\hfill + \XINT_gcfrac #1+\W/\relax\hfill }% -\def\XINT@gcfrac@optc #1% +\def\XINT_gcfrac_optc #1% {% - \XINT@gcfrac #1+\W/\relax\relax + \XINT_gcfrac #1+\W/\relax\relax }% -\def\XINT@gcfrac@optr #1% +\def\XINT_gcfrac_optr #1% {% - \XINT@gcfrac #1+\W/\hfill\relax + \XINT_gcfrac #1+\W/\hfill\relax }% -\def\XINT@gcfrac +\def\XINT_gcfrac {% - \expandafter\XINT@gcfrac@enter\romannumeral-`0% + \expandafter\XINT_gcfrac_enter\romannumeral-`0% }% -\def\XINT@gcfrac@enter {\XINT@gcfrac@loop {}}% -\def\XINT@gcfrac@loop #1#2+#3/% +\def\XINT_gcfrac_enter {\XINT_gcfrac_loop {}}% +\def\XINT_gcfrac_loop #1#2+#3/% {% - \xint@w #3\XINT@gcfrac@endloop\W\XINT@gcfrac@loop {{#3}{#2}#1}% + \xint_gob_til_w #3\XINT_gcfrac_endloop\W + \XINT_gcfrac_loop {{#3}{#2}#1}% }% -\def\XINT@gcfrac@endloop\W\XINT@gcfrac@loop #1#2#3% +\def\XINT_gcfrac_endloop\W\XINT_gcfrac_loop #1#2#3% {% - \XINT@gcfrac@T #2#3#1\Z\Z + \XINT_gcfrac_T #2#3#1\Z\Z }% -\def\XINT@gcfrac@T #1#2#3#4{\XINT@gcfrac@U #1#2{\xintFrac{#4}}}% -\def\XINT@gcfrac@U #1#2#3#4#5% +\def\XINT_gcfrac_T #1#2#3#4{\XINT_gcfrac_U #1#2{\xintFrac{#4}}}% +\def\XINT_gcfrac_U #1#2#3#4#5% {% - \xint@z #5\XINT@gcfrac@end\Z\XINT@gcfrac@U + \xint_gob_til_z #5\XINT_gcfrac_end\Z\XINT_gcfrac_U #1#2{\xintFrac{#5}% \ifcase\xintSgn{#4} +\or+\else-\fi \cfrac{#1\xintFrac{\xintAbs{#4}}#2}{#3}}% }% -\def\XINT@gcfrac@end\Z\XINT@gcfrac@U #1#2#3% +\def\XINT_gcfrac_end\Z\XINT_gcfrac_U #1#2#3% {% - \XINT@gcfrac@@end #3% + \XINT_gcfrac__end #3% }% -\def\XINT@gcfrac@@end #1\cfrac#2#3{ #3}% +\def\XINT_gcfrac__end #1\cfrac#2#3{ #3}% % \end{macrocode} % \subsection{\csh{xintGCtoGCx}} % \begin{macrocode} \def\xintGCtoGCx {\romannumeral0\xintgctogcx }% \def\xintgctogcx #1#2#3% {% - \expandafter\XINT@gctgcx@start\expandafter {\romannumeral-`0#3}{#1}{#2}% + \expandafter\XINT_gctgcx_start\expandafter {\romannumeral-`0#3}{#1}{#2}% }% -\def\XINT@gctgcx@start #1#2#3{\XINT@gctgcx@loop@a {}{#2}{#3}#1+\W/}% -\def\XINT@gctgcx@loop@a #1#2#3#4+#5/% +\def\XINT_gctgcx_start #1#2#3{\XINT_gctgcx_loop_a {}{#2}{#3}#1+\W/}% +\def\XINT_gctgcx_loop_a #1#2#3#4+#5/% {% - \xint@w #5\XINT@gctgcx@end\W - \XINT@gctgcx@loop@b {#1{#4}}{#2{#5}#3}{#2}{#3}% + \xint_gob_til_w #5\XINT_gctgcx_end\W + \XINT_gctgcx_loop_b {#1{#4}}{#2{#5}#3}{#2}{#3}% }% -\def\XINT@gctgcx@loop@b #1#2% +\def\XINT_gctgcx_loop_b #1#2% {% - \XINT@gctgcx@loop@a {#1#2}% + \XINT_gctgcx_loop_a {#1#2}% }% -\def\XINT@gctgcx@end\W\XINT@gctgcx@loop@b #1#2#3#4{ #1}% +\def\XINT_gctgcx_end\W\XINT_gctgcx_loop_b #1#2#3#4{ #1}% % \end{macrocode} % \subsection{\csh{xintFtoCs}} % \begin{macrocode} \def\xintFtoCs {\romannumeral0\xintftocs }% \def\xintftocs #1% {% - \expandafter\XINT@ftc@A\romannumeral0\xintraw {#1}\Z + \expandafter\XINT_ftc_A\romannumeral0\xintraw {#1}\Z }% -\def\XINT@ftc@A #1/#2\Z +\def\XINT_ftc_A #1/#2\Z {% - \expandafter\XINT@ftc@B\romannumeral0\xintidivision {#1}{#2}{#2}% + \expandafter\XINT_ftc_B\romannumeral0\xintidivision {#1}{#2}{#2}% }% -\def\XINT@ftc@B #1#2% +\def\XINT_ftc_B #1#2% {% - \XINT@ftc@C #2.{#1}% + \XINT_ftc_C #2.{#1}% }% -\def\XINT@ftc@C #1% +\def\XINT_ftc_C #1% {% - \xint@zero #1\XINT@ftc@integer 0\XINT@ftc@D #1% + \xint_gob_til_zero #1\XINT_ftc_integer 0\XINT_ftc_D #1% }% -\def\XINT@ftc@integer 0\XINT@ftc@D 0#1.#2#3{ #2}% -\def\XINT@ftc@D #1.#2#3{\XINT@ftc@loop@a {#1}{#3}{#1}{#2,}}% -\def\XINT@ftc@loop@a +\def\XINT_ftc_integer 0\XINT_ftc_D 0#1.#2#3{ #2}% +\def\XINT_ftc_D #1.#2#3{\XINT_ftc_loop_a {#1}{#3}{#1}{#2,}}% +\def\XINT_ftc_loop_a {% - \expandafter\XINT@ftc@loop@d\romannumeral0\XINT@div@prepare + \expandafter\XINT_ftc_loop_d\romannumeral0\XINT_div_prepare }% -\def\XINT@ftc@loop@d #1#2% +\def\XINT_ftc_loop_d #1#2% {% - \XINT@ftc@loop@e #2.{#1}% + \XINT_ftc_loop_e #2.{#1}% }% -\def\XINT@ftc@loop@e #1% +\def\XINT_ftc_loop_e #1% {% - \xint@zero #1\xint@ftc@loop@exit0\XINT@ftc@loop@f #1% + \xint_gob_til_zero #1\xint_ftc_loop_exit0\XINT_ftc_loop_f #1% }% -\def\XINT@ftc@loop@f #1.#2#3#4% +\def\XINT_ftc_loop_f #1.#2#3#4% {% - \XINT@ftc@loop@a {#1}{#3}{#1}{#4#2,}% + \XINT_ftc_loop_a {#1}{#3}{#1}{#4#2,}% }% -\def\xint@ftc@loop@exit0\XINT@ftc@loop@f #1.#2#3#4{ #4#2}% +\def\xint_ftc_loop_exit0\XINT_ftc_loop_f #1.#2#3#4{ #4#2}% % \end{macrocode} % \subsection{\csh{xintFtoCx}} % \begin{macrocode} \def\xintFtoCx {\romannumeral0\xintftocx }% \def\xintftocx #1#2% {% - \expandafter\XINT@ftcx@A\romannumeral0\xintraw {#2}\Z {#1}% + \expandafter\XINT_ftcx_A\romannumeral0\xintraw {#2}\Z {#1}% }% -\def\XINT@ftcx@A #1/#2\Z +\def\XINT_ftcx_A #1/#2\Z {% - \expandafter\XINT@ftcx@B\romannumeral0\xintidivision {#1}{#2}{#2}% + \expandafter\XINT_ftcx_B\romannumeral0\xintidivision {#1}{#2}{#2}% }% -\def\XINT@ftcx@B #1#2% +\def\XINT_ftcx_B #1#2% {% - \XINT@ftcx@C #2.{#1}% + \XINT_ftcx_C #2.{#1}% }% -\def\XINT@ftcx@C #1% +\def\XINT_ftcx_C #1% {% - \xint@zero #1\XINT@ftcx@integer 0\XINT@ftcx@D #1% + \xint_gob_til_zero #1\XINT_ftcx_integer 0\XINT_ftcx_D #1% }% -\def\XINT@ftcx@integer 0\XINT@ftcx@D 0#1.#2#3#4{ #2}% -\def\XINT@ftcx@D #1.#2#3#4{\XINT@ftcx@loop@a {#1}{#3}{#1}{#2#4}{#4}}% -\def\XINT@ftcx@loop@a +\def\XINT_ftcx_integer 0\XINT_ftcx_D 0#1.#2#3#4{ #2}% +\def\XINT_ftcx_D #1.#2#3#4{\XINT_ftcx_loop_a {#1}{#3}{#1}{#2#4}{#4}}% +\def\XINT_ftcx_loop_a {% - \expandafter\XINT@ftcx@loop@d\romannumeral0\XINT@div@prepare + \expandafter\XINT_ftcx_loop_d\romannumeral0\XINT_div_prepare }% -\def\XINT@ftcx@loop@d #1#2% +\def\XINT_ftcx_loop_d #1#2% {% - \XINT@ftcx@loop@e #2.{#1}% + \XINT_ftcx_loop_e #2.{#1}% }% -\def\XINT@ftcx@loop@e #1% +\def\XINT_ftcx_loop_e #1% {% - \xint@zero #1\xint@ftcx@loop@exit0\XINT@ftcx@loop@f #1% + \xint_gob_til_zero #1\xint_ftcx_loop_exit0\XINT_ftcx_loop_f #1% }% -\def\XINT@ftcx@loop@f #1.#2#3#4#5% +\def\XINT_ftcx_loop_f #1.#2#3#4#5% {% - \XINT@ftcx@loop@a {#1}{#3}{#1}{#4{#2}#5}{#5}% + \XINT_ftcx_loop_a {#1}{#3}{#1}{#4{#2}#5}{#5}% }% -\def\xint@ftcx@loop@exit0\XINT@ftcx@loop@f #1.#2#3#4#5{ #4{#2}}% +\def\xint_ftcx_loop_exit0\XINT_ftcx_loop_f #1.#2#3#4#5{ #4{#2}}% % \end{macrocode} % \subsection{\csh{xintFtoGC}} % \begin{macrocode} @@ -11518,72 +11336,72 @@ first place. \def\xintFtoCC {\romannumeral0\xintftocc }% \def\xintftocc #1% {% - \expandafter\XINT@ftcc@A\expandafter {\romannumeral0\xintraw {#1}}% + \expandafter\XINT_ftcc_A\expandafter {\romannumeral0\xintraw {#1}}% }% -\def\XINT@ftcc@A #1% +\def\XINT_ftcc_A #1% {% - \expandafter\XINT@ftcc@B + \expandafter\XINT_ftcc_B \romannumeral0\xintraw {\xintAdd {1/2[0]}{#1[0]}}\Z {#1[0]}% }% -\def\XINT@ftcc@B #1/#2\Z +\def\XINT_ftcc_B #1/#2\Z {% - \expandafter\XINT@ftcc@C\expandafter {\romannumeral0\xintiquo {#1}{#2}}% + \expandafter\XINT_ftcc_C\expandafter {\romannumeral0\xintiquo {#1}{#2}}% }% -\def\XINT@ftcc@C #1#2% +\def\XINT_ftcc_C #1#2% {% - \expandafter\XINT@ftcc@D\romannumeral0\xintsub {#2}{#1}\Z {#1}% + \expandafter\XINT_ftcc_D\romannumeral0\xintsub {#2}{#1}\Z {#1}% }% -\def\XINT@ftcc@D #1% +\def\XINT_ftcc_D #1% {% - \xint@UDzerominusfork - #1-\dummy \XINT@ftcc@integer - 0#1\dummy \XINT@ftcc@En - 0-\dummy {\XINT@ftcc@Ep #1}% - \xint@UDkrof + \xint_UDzerominusfork + #1-\dummy \XINT_ftcc_integer + 0#1\dummy \XINT_ftcc_En + 0-\dummy {\XINT_ftcc_Ep #1}% + \krof }% -\def\XINT@ftcc@Ep #1\Z #2% +\def\XINT_ftcc_Ep #1\Z #2% {% - \expandafter\XINT@ftcc@loop@a\expandafter + \expandafter\XINT_ftcc_loop_a\expandafter {\romannumeral0\xintdiv {1[0]}{#1}}{#2+1/}% }% -\def\XINT@ftcc@En #1\Z #2% +\def\XINT_ftcc_En #1\Z #2% {% - \expandafter\XINT@ftcc@loop@a\expandafter + \expandafter\XINT_ftcc_loop_a\expandafter {\romannumeral0\xintdiv {1[0]}{#1}}{#2+-1/}% }% -\def\XINT@ftcc@integer #1\Z #2{ #2}% -\def\XINT@ftcc@loop@a #1% +\def\XINT_ftcc_integer #1\Z #2{ #2}% +\def\XINT_ftcc_loop_a #1% {% - \expandafter\XINT@ftcc@loop@b + \expandafter\XINT_ftcc_loop_b \romannumeral0\xintraw {\xintAdd {1/2[0]}{#1}}\Z {#1}% }% -\def\XINT@ftcc@loop@b #1/#2\Z +\def\XINT_ftcc_loop_b #1/#2\Z {% - \expandafter\XINT@ftcc@loop@c\expandafter + \expandafter\XINT_ftcc_loop_c\expandafter {\romannumeral0\xintiquo {#1}{#2}}% }% -\def\XINT@ftcc@loop@c #1#2% +\def\XINT_ftcc_loop_c #1#2% {% - \expandafter\XINT@ftcc@loop@d + \expandafter\XINT_ftcc_loop_d \romannumeral0\xintsub {#2}{#1[0]}\Z {#1}% }% -\def\XINT@ftcc@loop@d #1% +\def\XINT_ftcc_loop_d #1% {% - \xint@UDzerominusfork - #1-\dummy \XINT@ftcc@end - 0#1\dummy \XINT@ftcc@loop@N - 0-\dummy {\XINT@ftcc@loop@P #1}% - \xint@UDkrof + \xint_UDzerominusfork + #1-\dummy \XINT_ftcc_end + 0#1\dummy \XINT_ftcc_loop_N + 0-\dummy {\XINT_ftcc_loop_P #1}% + \krof }% -\def\XINT@ftcc@end #1\Z #2#3{ #3#2}% -\def\XINT@ftcc@loop@P #1\Z #2#3% +\def\XINT_ftcc_end #1\Z #2#3{ #3#2}% +\def\XINT_ftcc_loop_P #1\Z #2#3% {% - \expandafter\XINT@ftcc@loop@a\expandafter + \expandafter\XINT_ftcc_loop_a\expandafter {\romannumeral0\xintdiv {1[0]}{#1}}{#3#2+1/}% }% -\def\XINT@ftcc@loop@N #1\Z #2#3% +\def\XINT_ftcc_loop_N #1\Z #2#3% {% - \expandafter\XINT@ftcc@loop@a\expandafter + \expandafter\XINT_ftcc_loop_a\expandafter {\romannumeral0\xintdiv {1[0]}{#1}}{#3#2+-1/}% }% % \end{macrocode} @@ -11608,633 +11426,628 @@ first place. \def\xintCstoF {\romannumeral0\xintcstof }% \def\xintcstof #1% {% - \expandafter\XINT@cstf@prep \romannumeral-`0#1,\W,% + \expandafter\XINT_cstf_prep \romannumeral-`0#1,\W,% }% -\def\XINT@cstf@prep +\def\XINT_cstf_prep {% - \XINT@cstf@loop@a 1001% + \XINT_cstf_loop_a 1001% }% -\def\XINT@cstf@loop@a #1#2#3#4#5,% +\def\XINT_cstf_loop_a #1#2#3#4#5,% {% - \xint@w #5\XINT@cstf@end\W\expandafter\XINT@cstf@loop@b + \xint_gob_til_w #5\XINT_cstf_end\W + \expandafter\XINT_cstf_loop_b \romannumeral0\xintraw {#5}.{#1}{#2}{#3}{#4}% }% -\def\XINT@cstf@loop@b #1/#2.#3#4#5#6% +\def\XINT_cstf_loop_b #1/#2.#3#4#5#6% {% - \expandafter\XINT@cstf@loop@c\expandafter - {\romannumeral0\XINT@mul@fork #2\Z #4\Z }% - {\romannumeral0\XINT@mul@fork #2\Z #3\Z }% - {\romannumeral0\xintiadd {\XINT@Mul {#2}{#6}}{\XINT@Mul {#1}{#4}}}% - {\romannumeral0\xintiadd {\XINT@Mul {#2}{#5}}{\XINT@Mul {#1}{#3}}}% + \expandafter\XINT_cstf_loop_c\expandafter + {\romannumeral0\XINT_mul_fork #2\Z #4\Z }% + {\romannumeral0\XINT_mul_fork #2\Z #3\Z }% + {\romannumeral0\xintiadd {\XINT_Mul {#2}{#6}}{\XINT_Mul {#1}{#4}}}% + {\romannumeral0\xintiadd {\XINT_Mul {#2}{#5}}{\XINT_Mul {#1}{#3}}}% }% -\def\XINT@cstf@loop@c #1#2% +\def\XINT_cstf_loop_c #1#2% {% - \expandafter\XINT@cstf@loop@d\expandafter {\expandafter{#2}{#1}}% + \expandafter\XINT_cstf_loop_d\expandafter {\expandafter{#2}{#1}}% }% -\def\XINT@cstf@loop@d #1#2% +\def\XINT_cstf_loop_d #1#2% {% - \expandafter\XINT@cstf@loop@e\expandafter {\expandafter{#2}#1}% + \expandafter\XINT_cstf_loop_e\expandafter {\expandafter{#2}#1}% }% -\def\XINT@cstf@loop@e #1#2% +\def\XINT_cstf_loop_e #1#2% {% - \expandafter\XINT@cstf@loop@a\expandafter{#2}#1% + \expandafter\XINT_cstf_loop_a\expandafter{#2}#1% }% -\def\XINT@cstf@end #1.#2#3#4#5{\xintraw {#2/#3}[0]}% +\def\XINT_cstf_end #1.#2#3#4#5{\xintraw {#2/#3}[0]}% % \end{macrocode} % \subsection{\csh{xintiCstoF}} % \begin{macrocode} \def\xintiCstoF {\romannumeral0\xinticstof }% \def\xinticstof #1% {% - \expandafter\XINT@icstf@prep \romannumeral-`0#1,\W,% + \expandafter\XINT_icstf_prep \romannumeral-`0#1,\W,% }% -\def\XINT@icstf@prep +\def\XINT_icstf_prep {% - \XINT@icstf@loop@a 1001% + \XINT_icstf_loop_a 1001% }% -\def\XINT@icstf@loop@a #1#2#3#4#5,% +\def\XINT_icstf_loop_a #1#2#3#4#5,% {% - \xint@w #5\XINT@icstf@end\W + \xint_gob_til_w #5\XINT_icstf_end\W \expandafter - \XINT@icstf@loop@b \romannumeral-`0#5.{#1}{#2}{#3}{#4}% + \XINT_icstf_loop_b \romannumeral-`0#5.{#1}{#2}{#3}{#4}% }% -\def\XINT@icstf@loop@b #1.#2#3#4#5% +\def\XINT_icstf_loop_b #1.#2#3#4#5% {% - \expandafter\XINT@icstf@loop@c\expandafter - {\romannumeral0\xintiadd {#5}{\XINT@Mul {#1}{#3}}}% - {\romannumeral0\xintiadd {#4}{\XINT@Mul {#1}{#2}}}% + \expandafter\XINT_icstf_loop_c\expandafter + {\romannumeral0\xintiadd {#5}{\XINT_Mul {#1}{#3}}}% + {\romannumeral0\xintiadd {#4}{\XINT_Mul {#1}{#2}}}% {#2}{#3}% }% -\def\XINT@icstf@loop@c #1#2% +\def\XINT_icstf_loop_c #1#2% {% - \expandafter\XINT@icstf@loop@a\expandafter {#2}{#1}% + \expandafter\XINT_icstf_loop_a\expandafter {#2}{#1}% }% -\def\XINT@icstf@end#1.#2#3#4#5{\xintraw {#2/#3}[0]}% +\def\XINT_icstf_end#1.#2#3#4#5{\xintraw {#2/#3}[0]}% % \end{macrocode} % \subsection{\csh{xintGCtoF}} % \begin{macrocode} \def\xintGCtoF {\romannumeral0\xintgctof }% \def\xintgctof #1% {% - \expandafter\XINT@gctf@prep \romannumeral-`0#1+\W/% + \expandafter\XINT_gctf_prep \romannumeral-`0#1+\W/% }% -\def\XINT@gctf@prep +\def\XINT_gctf_prep {% - \XINT@gctf@loop@a 1001% + \XINT_gctf_loop_a 1001% }% -\def\XINT@gctf@loop@a #1#2#3#4#5+% +\def\XINT_gctf_loop_a #1#2#3#4#5+% {% - \expandafter\XINT@gctf@loop@b + \expandafter\XINT_gctf_loop_b \romannumeral0\xintraw {#5}.{#1}{#2}{#3}{#4}% }% -\def\XINT@gctf@loop@b #1/#2.#3#4#5#6% +\def\XINT_gctf_loop_b #1/#2.#3#4#5#6% {% - \expandafter\XINT@gctf@loop@c\expandafter - {\romannumeral0\XINT@mul@fork #2\Z #4\Z }% - {\romannumeral0\XINT@mul@fork #2\Z #3\Z }% - {\romannumeral0\xintiadd {\XINT@Mul {#2}{#6}}{\XINT@Mul {#1}{#4}}}% - {\romannumeral0\xintiadd {\XINT@Mul {#2}{#5}}{\XINT@Mul {#1}{#3}}}% + \expandafter\XINT_gctf_loop_c\expandafter + {\romannumeral0\XINT_mul_fork #2\Z #4\Z }% + {\romannumeral0\XINT_mul_fork #2\Z #3\Z }% + {\romannumeral0\xintiadd {\XINT_Mul {#2}{#6}}{\XINT_Mul {#1}{#4}}}% + {\romannumeral0\xintiadd {\XINT_Mul {#2}{#5}}{\XINT_Mul {#1}{#3}}}% }% -\def\XINT@gctf@loop@c #1#2% +\def\XINT_gctf_loop_c #1#2% {% - \expandafter\XINT@gctf@loop@d\expandafter {\expandafter{#2}{#1}}% + \expandafter\XINT_gctf_loop_d\expandafter {\expandafter{#2}{#1}}% }% -\def\XINT@gctf@loop@d #1#2% +\def\XINT_gctf_loop_d #1#2% {% - \expandafter\XINT@gctf@loop@e\expandafter {\expandafter{#2}#1}% + \expandafter\XINT_gctf_loop_e\expandafter {\expandafter{#2}#1}% }% -\def\XINT@gctf@loop@e #1#2% +\def\XINT_gctf_loop_e #1#2% {% - \expandafter\XINT@gctf@loop@f\expandafter {\expandafter{#2}#1}% + \expandafter\XINT_gctf_loop_f\expandafter {\expandafter{#2}#1}% }% -\def\XINT@gctf@loop@f #1#2/% +\def\XINT_gctf_loop_f #1#2/% {% - \xint@w #2\XINT@gctf@end\W\expandafter\XINT@gctf@loop@g + \xint_gob_til_w #2\XINT_gctf_end\W + \expandafter\XINT_gctf_loop_g \romannumeral0\xintraw {#2}.#1% }% -\def\XINT@gctf@loop@g #1/#2.#3#4#5#6% +\def\XINT_gctf_loop_g #1/#2.#3#4#5#6% {% - \expandafter\XINT@gctf@loop@h\expandafter - {\romannumeral0\XINT@mul@fork #1\Z #6\Z }% - {\romannumeral0\XINT@mul@fork #1\Z #5\Z }% - {\romannumeral0\XINT@mul@fork #2\Z #4\Z }% - {\romannumeral0\XINT@mul@fork #2\Z #3\Z }% + \expandafter\XINT_gctf_loop_h\expandafter + {\romannumeral0\XINT_mul_fork #1\Z #6\Z }% + {\romannumeral0\XINT_mul_fork #1\Z #5\Z }% + {\romannumeral0\XINT_mul_fork #2\Z #4\Z }% + {\romannumeral0\XINT_mul_fork #2\Z #3\Z }% }% -\def\XINT@gctf@loop@h #1#2% +\def\XINT_gctf_loop_h #1#2% {% - \expandafter\XINT@gctf@loop@i\expandafter {\expandafter{#2}{#1}}% + \expandafter\XINT_gctf_loop_i\expandafter {\expandafter{#2}{#1}}% }% -\def\XINT@gctf@loop@i #1#2% +\def\XINT_gctf_loop_i #1#2% {% - \expandafter\XINT@gctf@loop@j\expandafter {\expandafter{#2}#1}% + \expandafter\XINT_gctf_loop_j\expandafter {\expandafter{#2}#1}% }% -\def\XINT@gctf@loop@j #1#2% +\def\XINT_gctf_loop_j #1#2% {% - \expandafter\XINT@gctf@loop@a\expandafter {#2}#1% + \expandafter\XINT_gctf_loop_a\expandafter {#2}#1% }% -\def\XINT@gctf@end #1.#2#3#4#5{\xintraw {#2/#3}[0]}% +\def\XINT_gctf_end #1.#2#3#4#5{\xintraw {#2/#3}[0]}% % \end{macrocode} % \subsection{\csh{xintiGCtoF}} % \begin{macrocode} \def\xintiGCtoF {\romannumeral0\xintigctof }% \def\xintigctof #1% {% - \expandafter\XINT@igctf@prep \romannumeral-`0#1+\W/% + \expandafter\XINT_igctf_prep \romannumeral-`0#1+\W/% }% -\def\XINT@igctf@prep +\def\XINT_igctf_prep {% - \XINT@igctf@loop@a 1001% + \XINT_igctf_loop_a 1001% }% -\def\XINT@igctf@loop@a #1#2#3#4#5+% +\def\XINT_igctf_loop_a #1#2#3#4#5+% {% - \expandafter\XINT@igctf@loop@b + \expandafter\XINT_igctf_loop_b \romannumeral-`0#5.{#1}{#2}{#3}{#4}% }% -\def\XINT@igctf@loop@b #1.#2#3#4#5% +\def\XINT_igctf_loop_b #1.#2#3#4#5% {% - \expandafter\XINT@igctf@loop@c\expandafter - {\romannumeral0\xintiadd {#5}{\XINT@Mul {#1}{#3}}}% - {\romannumeral0\xintiadd {#4}{\XINT@Mul {#1}{#2}}}% + \expandafter\XINT_igctf_loop_c\expandafter + {\romannumeral0\xintiadd {#5}{\XINT_Mul {#1}{#3}}}% + {\romannumeral0\xintiadd {#4}{\XINT_Mul {#1}{#2}}}% {#2}{#3}% }% -\def\XINT@igctf@loop@c #1#2% +\def\XINT_igctf_loop_c #1#2% {% - \expandafter\XINT@igctf@loop@f\expandafter {\expandafter{#2}{#1}}% + \expandafter\XINT_igctf_loop_f\expandafter {\expandafter{#2}{#1}}% }% -\def\XINT@igctf@loop@f #1#2#3#4/% +\def\XINT_igctf_loop_f #1#2#3#4/% {% - \xint@w #4\XINT@igctf@end\W - \expandafter\XINT@igctf@loop@g + \xint_gob_til_w #4\XINT_igctf_end\W + \expandafter\XINT_igctf_loop_g \romannumeral-`0#4.{#2}{#3}#1% }% -\def\XINT@igctf@loop@g #1.#2#3% +\def\XINT_igctf_loop_g #1.#2#3% {% - \expandafter\XINT@igctf@loop@h\expandafter - {\romannumeral0\XINT@mul@fork #1\Z #3\Z }% - {\romannumeral0\XINT@mul@fork #1\Z #2\Z }% + \expandafter\XINT_igctf_loop_h\expandafter + {\romannumeral0\XINT_mul_fork #1\Z #3\Z }% + {\romannumeral0\XINT_mul_fork #1\Z #2\Z }% }% -\def\XINT@igctf@loop@h #1#2% +\def\XINT_igctf_loop_h #1#2% {% - \expandafter\XINT@igctf@loop@i\expandafter {#2}{#1}% + \expandafter\XINT_igctf_loop_i\expandafter {#2}{#1}% }% -\def\XINT@igctf@loop@i #1#2#3#4% +\def\XINT_igctf_loop_i #1#2#3#4% {% - \XINT@igctf@loop@a {#3}{#4}{#1}{#2}% + \XINT_igctf_loop_a {#3}{#4}{#1}{#2}% }% -\def\XINT@igctf@end #1.#2#3#4#5{\xintraw {#4/#5}[0]}% +\def\XINT_igctf_end #1.#2#3#4#5{\xintraw {#4/#5}[0]}% % \end{macrocode} % \subsection{\csh{xintCstoCv}} % \begin{macrocode} \def\xintCstoCv {\romannumeral0\xintcstocv }% \def\xintcstocv #1% {% - \expandafter\XINT@cstcv@prep \romannumeral-`0#1,\W,% + \expandafter\XINT_cstcv_prep \romannumeral-`0#1,\W,% }% -\def\XINT@cstcv@prep +\def\XINT_cstcv_prep {% - \XINT@cstcv@loop@a {}1001% + \XINT_cstcv_loop_a {}1001% }% -\def\XINT@cstcv@loop@a #1#2#3#4#5#6,% +\def\XINT_cstcv_loop_a #1#2#3#4#5#6,% {% - \xint@w #6\XINT@cstcv@end\W - \expandafter\XINT@cstcv@loop@b + \xint_gob_til_w #6\XINT_cstcv_end\W + \expandafter\XINT_cstcv_loop_b \romannumeral0\xintraw {#6}.{#2}{#3}{#4}{#5}{#1}% }% -\def\XINT@cstcv@loop@b #1/#2.#3#4#5#6% +\def\XINT_cstcv_loop_b #1/#2.#3#4#5#6% {% - \expandafter\XINT@cstcv@loop@c\expandafter - {\romannumeral0\XINT@mul@fork #2\Z #4\Z }% - {\romannumeral0\XINT@mul@fork #2\Z #3\Z }% - {\romannumeral0\xintiadd {\XINT@Mul {#2}{#6}}{\XINT@Mul {#1}{#4}}}% - {\romannumeral0\xintiadd {\XINT@Mul {#2}{#5}}{\XINT@Mul {#1}{#3}}}% + \expandafter\XINT_cstcv_loop_c\expandafter + {\romannumeral0\XINT_mul_fork #2\Z #4\Z }% + {\romannumeral0\XINT_mul_fork #2\Z #3\Z }% + {\romannumeral0\xintiadd {\XINT_Mul {#2}{#6}}{\XINT_Mul {#1}{#4}}}% + {\romannumeral0\xintiadd {\XINT_Mul {#2}{#5}}{\XINT_Mul {#1}{#3}}}% }% -\def\XINT@cstcv@loop@c #1#2% +\def\XINT_cstcv_loop_c #1#2% {% - \expandafter\XINT@cstcv@loop@d\expandafter {\expandafter{#2}{#1}}% + \expandafter\XINT_cstcv_loop_d\expandafter {\expandafter{#2}{#1}}% }% -\def\XINT@cstcv@loop@d #1#2% +\def\XINT_cstcv_loop_d #1#2% {% - \expandafter\XINT@cstcv@loop@e\expandafter {\expandafter{#2}#1}% + \expandafter\XINT_cstcv_loop_e\expandafter {\expandafter{#2}#1}% }% -\def\XINT@cstcv@loop@e #1#2% +\def\XINT_cstcv_loop_e #1#2% {% - \expandafter\XINT@cstcv@loop@f\expandafter{#2}#1% + \expandafter\XINT_cstcv_loop_f\expandafter{#2}#1% }% -\def\XINT@cstcv@loop@f #1#2#3#4#5% +\def\XINT_cstcv_loop_f #1#2#3#4#5% {% - \expandafter\XINT@cstcv@loop@g\expandafter + \expandafter\XINT_cstcv_loop_g\expandafter {\romannumeral0\xintraw {#1/#2}}{#5}{#1}{#2}{#3}{#4}% }% -\def\XINT@cstcv@loop@g #1#2{\XINT@cstcv@loop@a {#2{#1[0]}}}% -\def\XINT@cstcv@end #1.#2#3#4#5#6{ #6}% +\def\XINT_cstcv_loop_g #1#2{\XINT_cstcv_loop_a {#2{#1[0]}}}% +\def\XINT_cstcv_end #1.#2#3#4#5#6{ #6}% % \end{macrocode} % \subsection{\csh{xintiCstoCv}} % \begin{macrocode} \def\xintiCstoCv {\romannumeral0\xinticstocv }% \def\xinticstocv #1% {% - \expandafter\XINT@icstcv@prep \romannumeral-`0#1,\W,% + \expandafter\XINT_icstcv_prep \romannumeral-`0#1,\W,% }% -\def\XINT@icstcv@prep +\def\XINT_icstcv_prep {% - \XINT@icstcv@loop@a {}1001% + \XINT_icstcv_loop_a {}1001% }% -\def\XINT@icstcv@loop@a #1#2#3#4#5#6,% +\def\XINT_icstcv_loop_a #1#2#3#4#5#6,% {% - \xint@w #6\XINT@icstcv@end\W + \xint_gob_til_w #6\XINT_icstcv_end\W \expandafter - \XINT@icstcv@loop@b \romannumeral-`0#6.{#2}{#3}{#4}{#5}{#1}% + \XINT_icstcv_loop_b \romannumeral-`0#6.{#2}{#3}{#4}{#5}{#1}% }% -\def\XINT@icstcv@loop@b #1.#2#3#4#5% +\def\XINT_icstcv_loop_b #1.#2#3#4#5% {% - \expandafter\XINT@icstcv@loop@c\expandafter - {\romannumeral0\xintiadd {#5}{\XINT@Mul {#1}{#3}}}% - {\romannumeral0\xintiadd {#4}{\XINT@Mul {#1}{#2}}}% + \expandafter\XINT_icstcv_loop_c\expandafter + {\romannumeral0\xintiadd {#5}{\XINT_Mul {#1}{#3}}}% + {\romannumeral0\xintiadd {#4}{\XINT_Mul {#1}{#2}}}% {{#2}{#3}}% }% -\def\XINT@icstcv@loop@c #1#2% +\def\XINT_icstcv_loop_c #1#2% {% - \expandafter\XINT@icstcv@loop@d\expandafter {#2}{#1}% + \expandafter\XINT_icstcv_loop_d\expandafter {#2}{#1}% }% -\def\XINT@icstcv@loop@d #1#2% +\def\XINT_icstcv_loop_d #1#2% {% - \expandafter\XINT@icstcv@loop@e\expandafter + \expandafter\XINT_icstcv_loop_e\expandafter {\romannumeral0\xintraw {#1/#2}}{{#1}{#2}}% }% -\def\XINT@icstcv@loop@e #1#2#3#4{\XINT@icstcv@loop@a {#4{#1[0]}}#2#3}% -\def\XINT@icstcv@end #1.#2#3#4#5#6{ #6}% +\def\XINT_icstcv_loop_e #1#2#3#4{\XINT_icstcv_loop_a {#4{#1[0]}}#2#3}% +\def\XINT_icstcv_end #1.#2#3#4#5#6{ #6}% % \end{macrocode} % \subsection{\csh{xintGCtoCv}} % \begin{macrocode} \def\xintGCtoCv {\romannumeral0\xintgctocv }% \def\xintgctocv #1% {% - \expandafter\XINT@gctcv@prep \romannumeral-`0#1+\W/% + \expandafter\XINT_gctcv_prep \romannumeral-`0#1+\W/% }% -\def\XINT@gctcv@prep +\def\XINT_gctcv_prep {% - \XINT@gctcv@loop@a {}1001% + \XINT_gctcv_loop_a {}1001% }% -\def\XINT@gctcv@loop@a #1#2#3#4#5#6+% +\def\XINT_gctcv_loop_a #1#2#3#4#5#6+% {% - \expandafter\XINT@gctcv@loop@b + \expandafter\XINT_gctcv_loop_b \romannumeral0\xintraw {#6}.{#2}{#3}{#4}{#5}{#1}% }% -\def\XINT@gctcv@loop@b #1/#2.#3#4#5#6% +\def\XINT_gctcv_loop_b #1/#2.#3#4#5#6% {% - \expandafter\XINT@gctcv@loop@c\expandafter - {\romannumeral0\XINT@mul@fork #2\Z #4\Z }% - {\romannumeral0\XINT@mul@fork #2\Z #3\Z }% - {\romannumeral0\xintiadd {\XINT@Mul {#2}{#6}}{\XINT@Mul {#1}{#4}}}% - {\romannumeral0\xintiadd {\XINT@Mul {#2}{#5}}{\XINT@Mul {#1}{#3}}}% + \expandafter\XINT_gctcv_loop_c\expandafter + {\romannumeral0\XINT_mul_fork #2\Z #4\Z }% + {\romannumeral0\XINT_mul_fork #2\Z #3\Z }% + {\romannumeral0\xintiadd {\XINT_Mul {#2}{#6}}{\XINT_Mul {#1}{#4}}}% + {\romannumeral0\xintiadd {\XINT_Mul {#2}{#5}}{\XINT_Mul {#1}{#3}}}% }% -\def\XINT@gctcv@loop@c #1#2% +\def\XINT_gctcv_loop_c #1#2% {% - \expandafter\XINT@gctcv@loop@d\expandafter {\expandafter{#2}{#1}}% + \expandafter\XINT_gctcv_loop_d\expandafter {\expandafter{#2}{#1}}% }% -\def\XINT@gctcv@loop@d #1#2% +\def\XINT_gctcv_loop_d #1#2% {% - \expandafter\XINT@gctcv@loop@e\expandafter {\expandafter{#2}{#1}}% + \expandafter\XINT_gctcv_loop_e\expandafter {\expandafter{#2}{#1}}% }% -\def\XINT@gctcv@loop@e #1#2% +\def\XINT_gctcv_loop_e #1#2% {% - \expandafter\XINT@gctcv@loop@f\expandafter {#2}#1% + \expandafter\XINT_gctcv_loop_f\expandafter {#2}#1% }% -\def\XINT@gctcv@loop@f #1#2% +\def\XINT_gctcv_loop_f #1#2% {% - \expandafter\XINT@gctcv@loop@g\expandafter + \expandafter\XINT_gctcv_loop_g\expandafter {\romannumeral0\xintraw {#1/#2}}{{#1}{#2}}% }% -\def\XINT@gctcv@loop@g #1#2#3#4% +\def\XINT_gctcv_loop_g #1#2#3#4% {% - \XINT@gctcv@loop@h {#4{#1[0]}}{#2#3}% + \XINT_gctcv_loop_h {#4{#1[0]}}{#2#3}% }% -\def\XINT@gctcv@loop@h #1#2#3/% +\def\XINT_gctcv_loop_h #1#2#3/% {% - \xint@w #3\XINT@gctcv@end\W\expandafter\XINT@gctcv@loop@i + \xint_gob_til_w #3\XINT_gctcv_end\W + \expandafter\XINT_gctcv_loop_i \romannumeral0\xintraw {#3}.#2{#1}% }% -\def\XINT@gctcv@loop@i #1/#2.#3#4#5#6% +\def\XINT_gctcv_loop_i #1/#2.#3#4#5#6% {% - \expandafter\XINT@gctcv@loop@j\expandafter - {\romannumeral0\XINT@mul@fork #1\Z #6\Z }% - {\romannumeral0\XINT@mul@fork #1\Z #5\Z }% - {\romannumeral0\XINT@mul@fork #2\Z #4\Z }% - {\romannumeral0\XINT@mul@fork #2\Z #3\Z }% + \expandafter\XINT_gctcv_loop_j\expandafter + {\romannumeral0\XINT_mul_fork #1\Z #6\Z }% + {\romannumeral0\XINT_mul_fork #1\Z #5\Z }% + {\romannumeral0\XINT_mul_fork #2\Z #4\Z }% + {\romannumeral0\XINT_mul_fork #2\Z #3\Z }% }% -\def\XINT@gctcv@loop@j #1#2% +\def\XINT_gctcv_loop_j #1#2% {% - \expandafter\XINT@gctcv@loop@k\expandafter {\expandafter{#2}{#1}}% + \expandafter\XINT_gctcv_loop_k\expandafter {\expandafter{#2}{#1}}% }% -\def\XINT@gctcv@loop@k #1#2% +\def\XINT_gctcv_loop_k #1#2% {% - \expandafter\XINT@gctcv@loop@l\expandafter {\expandafter{#2}#1}% + \expandafter\XINT_gctcv_loop_l\expandafter {\expandafter{#2}#1}% }% -\def\XINT@gctcv@loop@l #1#2% +\def\XINT_gctcv_loop_l #1#2% {% - \expandafter\XINT@gctcv@loop@m\expandafter {\expandafter{#2}#1}% + \expandafter\XINT_gctcv_loop_m\expandafter {\expandafter{#2}#1}% }% -\def\XINT@gctcv@loop@m #1#2{\XINT@gctcv@loop@a {#2}#1}% -\def\XINT@gctcv@end #1.#2#3#4#5#6{ #6}% +\def\XINT_gctcv_loop_m #1#2{\XINT_gctcv_loop_a {#2}#1}% +\def\XINT_gctcv_end #1.#2#3#4#5#6{ #6}% % \end{macrocode} % \subsection{\csh{xintiGCtoCv}} % \begin{macrocode} \def\xintiGCtoCv {\romannumeral0\xintigctocv }% \def\xintigctocv #1% {% - \expandafter\XINT@igctcv@prep \romannumeral-`0#1+\W/% + \expandafter\XINT_igctcv_prep \romannumeral-`0#1+\W/% }% -\def\XINT@igctcv@prep +\def\XINT_igctcv_prep {% - \XINT@igctcv@loop@a {}1001% + \XINT_igctcv_loop_a {}1001% }% -\def\XINT@igctcv@loop@a #1#2#3#4#5#6+% +\def\XINT_igctcv_loop_a #1#2#3#4#5#6+% {% - \expandafter\XINT@igctcv@loop@b + \expandafter\XINT_igctcv_loop_b \romannumeral-`0#6.{#2}{#3}{#4}{#5}{#1}% }% -\def\XINT@igctcv@loop@b #1.#2#3#4#5% +\def\XINT_igctcv_loop_b #1.#2#3#4#5% {% - \expandafter\XINT@igctcv@loop@c\expandafter - {\romannumeral0\xintiadd {#5}{\XINT@Mul {#1}{#3}}}% - {\romannumeral0\xintiadd {#4}{\XINT@Mul {#1}{#2}}}% + \expandafter\XINT_igctcv_loop_c\expandafter + {\romannumeral0\xintiadd {#5}{\XINT_Mul {#1}{#3}}}% + {\romannumeral0\xintiadd {#4}{\XINT_Mul {#1}{#2}}}% {{#2}{#3}}% }% -\def\XINT@igctcv@loop@c #1#2% +\def\XINT_igctcv_loop_c #1#2% {% - \expandafter\XINT@igctcv@loop@f\expandafter {\expandafter{#2}{#1}}% + \expandafter\XINT_igctcv_loop_f\expandafter {\expandafter{#2}{#1}}% }% -\def\XINT@igctcv@loop@f #1#2#3#4/% +\def\XINT_igctcv_loop_f #1#2#3#4/% {% - \xint@w #4\XINT@igctcv@end@a\W - \expandafter\XINT@igctcv@loop@g + \xint_gob_til_w #4\XINT_igctcv_end_a\W + \expandafter\XINT_igctcv_loop_g \romannumeral-`0#4.#1#2{#3}% }% -\def\XINT@igctcv@loop@g #1.#2#3#4#5% +\def\XINT_igctcv_loop_g #1.#2#3#4#5% {% - \expandafter\XINT@igctcv@loop@h\expandafter - {\romannumeral0\XINT@mul@fork #1\Z #5\Z }% - {\romannumeral0\XINT@mul@fork #1\Z #4\Z }% + \expandafter\XINT_igctcv_loop_h\expandafter + {\romannumeral0\XINT_mul_fork #1\Z #5\Z }% + {\romannumeral0\XINT_mul_fork #1\Z #4\Z }% {{#2}{#3}}% }% -\def\XINT@igctcv@loop@h #1#2% +\def\XINT_igctcv_loop_h #1#2% {% - \expandafter\XINT@igctcv@loop@i\expandafter {\expandafter{#2}{#1}}% + \expandafter\XINT_igctcv_loop_i\expandafter {\expandafter{#2}{#1}}% }% -\def\XINT@igctcv@loop@i #1#2{\XINT@igctcv@loop@k #2{#2#1}}% -\def\XINT@igctcv@loop@k #1#2% +\def\XINT_igctcv_loop_i #1#2{\XINT_igctcv_loop_k #2{#2#1}}% +\def\XINT_igctcv_loop_k #1#2% {% - \expandafter\XINT@igctcv@loop@l\expandafter + \expandafter\XINT_igctcv_loop_l\expandafter {\romannumeral0\xintraw {#1/#2}}% }% -\def\XINT@igctcv@loop@l #1#2#3{\XINT@igctcv@loop@a {#3{#1[0]}}#2}% -\def\XINT@igctcv@end@a #1.#2#3#4#5% +\def\XINT_igctcv_loop_l #1#2#3{\XINT_igctcv_loop_a {#3{#1[0]}}#2}% +\def\XINT_igctcv_end_a #1.#2#3#4#5% {% - \expandafter\XINT@igctcv@end@b\expandafter + \expandafter\XINT_igctcv_end_b\expandafter {\romannumeral0\xintraw {#2/#3}}% }% -\def\XINT@igctcv@end@b #1#2{ #2{#1[0]}}% +\def\XINT_igctcv_end_b #1#2{ #2{#1[0]}}% % \end{macrocode} % \subsection{\csh{xintCntoF}} -% \begin{verbatim} +% \lverb|& % Modified in 1.06 to give the N first to a \numexpr rather than expanding -% twice. I just use \the\numexpr and maintain the previous code after that. -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% twice. I just use \the\numexpr and maintain the previous code after that.| % \begin{macrocode} \def\xintCntoF {\romannumeral0\xintcntof }% \def\xintcntof #1% {% - \expandafter\XINT@cntf\expandafter {\the\numexpr #1}% + \expandafter\XINT_cntf\expandafter {\the\numexpr #1}% }% -\def\XINT@cntf #1#2% +\def\XINT_cntf #1#2% {% \ifnum #1>0 - \xint@afterfi {\expandafter\XINT@cntf@loop\expandafter + \xint_afterfi {\expandafter\XINT_cntf_loop\expandafter {\the\numexpr #1-1\expandafter}\expandafter {\romannumeral-`0#2{#1}}{#2}}% \else - \xint@afterfi + \xint_afterfi {\ifnum #1=0 - \xint@afterfi {\expandafter\space \romannumeral-`0#2{0}}% - \else \xint@afterfi { 0/1[0]}% + \xint_afterfi {\expandafter\space \romannumeral-`0#2{0}}% + \else \xint_afterfi { 0/1[0]}% \fi}% \fi }% -\def\XINT@cntf@loop #1#2#3% +\def\XINT_cntf_loop #1#2#3% {% - \ifnum #1>0 \else \XINT@cntf@exit \fi - \expandafter\XINT@cntf@loop\expandafter + \ifnum #1>0 \else \XINT_cntf_exit \fi + \expandafter\XINT_cntf_loop\expandafter {\the\numexpr #1-1\expandafter }\expandafter {\romannumeral0\xintadd {\xintDiv {1[0]}{#2}}{#3{#1}}}% {#3}% }% -\def\XINT@cntf@exit \fi - \expandafter\XINT@cntf@loop\expandafter +\def\XINT_cntf_exit \fi + \expandafter\XINT_cntf_loop\expandafter #1\expandafter #2#3% {% - \fi\xint@gobble@ii #2% + \fi\xint_gobble_ii #2% }% % \end{macrocode} % \subsection{\csh{xintGCntoF}} -% \begin{verbatim} +% \lverb|& % Modified in 1.06 to give the N first to a \numexpr rather than expanding -% twice. I just use \the\numexpr and maintain the previous code after that. -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% twice. I just use \the\numexpr and maintain the previous code after that.| % \begin{macrocode} \def\xintGCntoF {\romannumeral0\xintgcntof }% \def\xintgcntof #1% {% - \expandafter\XINT@gcntf\expandafter {\the\numexpr #1}% + \expandafter\XINT_gcntf\expandafter {\the\numexpr #1}% }% -\def\XINT@gcntf #1#2#3% +\def\XINT_gcntf #1#2#3% {% \ifnum #1>0 - \xint@afterfi {\expandafter\XINT@gcntf@loop\expandafter + \xint_afterfi {\expandafter\XINT_gcntf_loop\expandafter {\the\numexpr #1-1\expandafter}\expandafter {\romannumeral-`0#2{#1}}{#2}{#3}}% \else - \xint@afterfi + \xint_afterfi {\ifnum #1=0 - \xint@afterfi {\expandafter\space\romannumeral-`0#2{0}}% - \else \xint@afterfi { 0/1[0]}% + \xint_afterfi {\expandafter\space\romannumeral-`0#2{0}}% + \else \xint_afterfi { 0/1[0]}% \fi}% \fi }% -\def\XINT@gcntf@loop #1#2#3#4% +\def\XINT_gcntf_loop #1#2#3#4% {% - \ifnum #1>0 \else \XINT@gcntf@exit \fi - \expandafter\XINT@gcntf@loop\expandafter + \ifnum #1>0 \else \XINT_gcntf_exit \fi + \expandafter\XINT_gcntf_loop\expandafter {\the\numexpr #1-1\expandafter }\expandafter {\romannumeral0\xintadd {\xintDiv {#4{#1}}{#2}}{#3{#1}}}% {#3}{#4}% }% -\def\XINT@gcntf@exit \fi - \expandafter\XINT@gcntf@loop\expandafter +\def\XINT_gcntf_exit \fi + \expandafter\XINT_gcntf_loop\expandafter #1\expandafter #2#3#4% {% - \fi\xint@gobble@ii #2% + \fi\xint_gobble_ii #2% }% % \end{macrocode} % \subsection{\csh{xintCntoCs}} -% \begin{verbatim} +% \lverb|& % Modified in 1.06 to give the N first to a \numexpr rather than expanding -% twice. I just use \the\numexpr and maintain the previous code after that. -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% twice. I just use \the\numexpr and maintain the previous code after that.| % \begin{macrocode} \def\xintCntoCs {\romannumeral0\xintcntocs }% \def\xintcntocs #1% {% - \expandafter\XINT@cntcs\expandafter {\the\numexpr #1}% + \expandafter\XINT_cntcs\expandafter {\the\numexpr #1}% }% -\def\XINT@cntcs #1#2% +\def\XINT_cntcs #1#2% {% \ifnum #1<0 - \xint@afterfi { 0/1[0]}% + \xint_afterfi { 0/1[0]}% \else - \xint@afterfi {\expandafter\XINT@cntcs@loop\expandafter + \xint_afterfi {\expandafter\XINT_cntcs_loop\expandafter {\the\numexpr #1-1\expandafter}\expandafter {\expandafter{\romannumeral-`0#2{#1}}}{#2}}% \fi }% -\def\XINT@cntcs@loop #1#2#3% +\def\XINT_cntcs_loop #1#2#3% {% - \ifnum #1>-1 \else \XINT@cntcs@exit \fi - \expandafter\XINT@cntcs@loop\expandafter + \ifnum #1>-1 \else \XINT_cntcs_exit \fi + \expandafter\XINT_cntcs_loop\expandafter {\the\numexpr #1-1\expandafter }\expandafter {\expandafter{\romannumeral-`0#3{#1}},#2}{#3}% }% -\def\XINT@cntcs@exit \fi - \expandafter\XINT@cntcs@loop\expandafter +\def\XINT_cntcs_exit \fi + \expandafter\XINT_cntcs_loop\expandafter #1\expandafter #2#3% {% - \fi\XINT@cntcs@@exit #2% + \fi\XINT_cntcs__exit #2% }% -\def\XINT@cntcs@@exit #1,{ }% +\def\XINT_cntcs__exit #1,{ }% % \end{macrocode} % \subsection{\csh{xintCntoGC}} -% \begin{verbatim} +% \lverb|& % Modified in 1.06 to give the N first to a \numexpr rather than expanding -% twice. I just use \the\numexpr and maintain the previous code after that. -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% twice. I just use \the\numexpr and maintain the previous code after that.| % \begin{macrocode} \def\xintCntoGC {\romannumeral0\xintcntogc }% \def\xintcntogc #1% {% - \expandafter\XINT@cntgc\expandafter {\the\numexpr #1}% + \expandafter\XINT_cntgc\expandafter {\the\numexpr #1}% }% -\def\XINT@cntgc #1#2% +\def\XINT_cntgc #1#2% {% \ifnum #1<0 - \xint@afterfi { 0/1[0]}% + \xint_afterfi { 0/1[0]}% \else - \xint@afterfi {\expandafter\XINT@cntgc@loop\expandafter + \xint_afterfi {\expandafter\XINT_cntgc_loop\expandafter {\the\numexpr #1-1\expandafter}\expandafter {\expandafter{\romannumeral-`0#2{#1}}}{#2}}% \fi }% -\def\XINT@cntgc@loop #1#2#3% +\def\XINT_cntgc_loop #1#2#3% {% - \ifnum #1>-1 \else \XINT@cntgc@exit \fi - \expandafter\XINT@cntgc@loop\expandafter + \ifnum #1>-1 \else \XINT_cntgc_exit \fi + \expandafter\XINT_cntgc_loop\expandafter {\the\numexpr #1-1\expandafter }\expandafter {\expandafter{\romannumeral-`0#3{#1}}+1/#2}{#3}% }% -\def\XINT@cntgc@exit \fi - \expandafter\XINT@cntgc@loop\expandafter +\def\XINT_cntgc_exit \fi + \expandafter\XINT_cntgc_loop\expandafter #1\expandafter #2#3% {% - \fi\XINT@cntgc@@exit #2% + \fi\XINT_cntgc__exit #2% }% -\def\XINT@cntgc@@exit #1+1/{ }% +\def\XINT_cntgc__exit #1+1/{ }% % \end{macrocode} % \subsection{\csh{xintGCntoGC}} -% \begin{verbatim} +% \lverb|& % Modified in 1.06 to give the N first to a \numexpr rather than expanding -% twice. I just use \the\numexpr and maintain the previous code after that. -% \end{verbatim} -% \vspace*{-1.5\baselineskip} +% twice. I just use \the\numexpr and maintain the previous code after that.| % \begin{macrocode} \def\xintGCntoGC {\romannumeral0\xintgcntogc }% \def\xintgcntogc #1% {% - \expandafter\XINT@gcntgc\expandafter {\the\numexpr #1}% + \expandafter\XINT_gcntgc\expandafter {\the\numexpr #1}% }% -\def\XINT@gcntgc #1#2#3% +\def\XINT_gcntgc #1#2#3% {% \ifnum #1<0 - \xint@afterfi { {0/1[0]}}% + \xint_afterfi { {0/1[0]}}% \else - \xint@afterfi {\expandafter\XINT@gcntgc@loop\expandafter + \xint_afterfi {\expandafter\XINT_gcntgc_loop\expandafter {\the\numexpr #1-1\expandafter}\expandafter {\expandafter{\romannumeral-`0#2{#1}}}{#2}{#3}}% \fi }% -\def\XINT@gcntgc@loop #1#2#3#4% +\def\XINT_gcntgc_loop #1#2#3#4% {% - \ifnum #1>-1 \else \XINT@gcntgc@exit \fi - \expandafter\XINT@gcntgc@loop@b\expandafter + \ifnum #1>-1 \else \XINT_gcntgc_exit \fi + \expandafter\XINT_gcntgc_loop_b\expandafter {\expandafter{\romannumeral-`0#4{#1}}/#2}{#3{#1}}{#1}{#3}{#4}% }% -\def\XINT@gcntgc@loop@b #1#2#3% +\def\XINT_gcntgc_loop_b #1#2#3% {% - \expandafter\XINT@gcntgc@loop\expandafter + \expandafter\XINT_gcntgc_loop\expandafter {\the\numexpr #3-1\expandafter}\expandafter {\expandafter{\romannumeral-`0#2}+#1}% }% -\def\XINT@gcntgc@exit \fi - \expandafter\XINT@gcntgc@loop@b\expandafter #1#2#3#4#5% +\def\XINT_gcntgc_exit \fi + \expandafter\XINT_gcntgc_loop_b\expandafter #1#2#3#4#5% {% - \fi\XINT@gcntgc@@exit #1% + \fi\XINT_gcntgc__exit #1% }% -\def\XINT@gcntgc@@exit #1/{ }% +\def\XINT_gcntgc__exit #1/{ }% % \end{macrocode} % \subsection{\csh{xintCstoGC}} % \begin{macrocode} \def\xintCstoGC {\romannumeral0\xintcstogc }% \def\xintcstogc #1% {% - \expandafter\XINT@cstc@prep \romannumeral-`0#1,\W,% + \expandafter\XINT_cstc_prep \romannumeral-`0#1,\W,% }% -\def\XINT@cstc@prep #1,{\XINT@cstc@loop@a {{#1}}}% -\def\XINT@cstc@loop@a #1#2,% +\def\XINT_cstc_prep #1,{\XINT_cstc_loop_a {{#1}}}% +\def\XINT_cstc_loop_a #1#2,% {% - \xint@w #2\XINT@cstc@end\W\XINT@cstc@loop@b {#1}{#2}% + \xint_gob_til_w #2\XINT_cstc_end\W + \XINT_cstc_loop_b {#1}{#2}% }% -\def\XINT@cstc@loop@b #1#2{\XINT@cstc@loop@a {#1+1/{#2}}}% -\def\XINT@cstc@end\W\XINT@cstc@loop@b #1#2{ #1}% +\def\XINT_cstc_loop_b #1#2{\XINT_cstc_loop_a {#1+1/{#2}}}% +\def\XINT_cstc_end\W\XINT_cstc_loop_b #1#2{ #1}% % \end{macrocode} % \subsection{\csh{xintGCtoGC}} % \begin{macrocode} \def\xintGCtoGC {\romannumeral0\xintgctogc }% \def\xintgctogc #1% {% - \expandafter\XINT@gctgc@start \romannumeral-`0#1+\W/% + \expandafter\XINT_gctgc_start \romannumeral-`0#1+\W/% }% -\def\XINT@gctgc@start {\XINT@gctgc@loop@a {}}% -\def\XINT@gctgc@loop@a #1#2+#3/% +\def\XINT_gctgc_start {\XINT_gctgc_loop_a {}}% +\def\XINT_gctgc_loop_a #1#2+#3/% {% - \xint@w #3\XINT@gctgc@end\W\expandafter\XINT@gctgc@loop@b\expandafter + \xint_gob_til_w #3\XINT_gctgc_end\W + \expandafter\XINT_gctgc_loop_b\expandafter {\romannumeral-`0#2}{#3}{#1}% }% -\def\XINT@gctgc@loop@b #1#2% +\def\XINT_gctgc_loop_b #1#2% {% - \expandafter\XINT@gctgc@loop@c\expandafter + \expandafter\XINT_gctgc_loop_c\expandafter {\romannumeral-`0#2}{#1}% }% -\def\XINT@gctgc@loop@c #1#2#3% +\def\XINT_gctgc_loop_c #1#2#3% {% - \XINT@gctgc@loop@a {#3{#2}+{#1}/}% + \XINT_gctgc_loop_a {#3{#2}+{#1}/}% }% -\def\XINT@gctgc@end\W\expandafter\XINT@gctgc@loop@b +\def\XINT_gctgc_end\W\expandafter\XINT_gctgc_loop_b {% - \expandafter\XINT@gctgc@@end + \expandafter\XINT_gctgc__end }% -\def\XINT@gctgc@@end #1#2#3{ #3{#1}}% -\XINT@cfrac@restorecatcodes@endinput% +\def\XINT_gctgc__end #1#2#3{ #3{#1}}% +\XINT_cfrac_restorecatcodes_endinput% % \end{macrocode} % \DeleteShortVerb{\|} % \MakePercentComment @@ -12256,7 +12069,7 @@ first place. Grave accent \` Left brace \{ Vertical bar \| Right brace \} Tilde \~} -\CheckSum{11366} +\CheckSum{11444} \makeatletter\check@checksum\makeatother \Finale %% diff --git a/Master/texmf-dist/source/generic/xint/xint.ins b/Master/texmf-dist/source/generic/xint/xint.ins index 035604e2639..24c8379d8bd 100644 --- a/Master/texmf-dist/source/generic/xint/xint.ins +++ b/Master/texmf-dist/source/generic/xint/xint.ins @@ -1,6 +1,6 @@ %% %%---------------------------------------------------------------- -%% The xint bundle (version 1.06a of May 9, 2013) +%% The xint bundle (version 1.06b of May 14, 2013) %% Copyright (C) 2013 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 ef1d86a9614..c296158f940 100644 --- a/Master/texmf-dist/tex/generic/xint/xint.sty +++ b/Master/texmf-dist/tex/generic/xint/xint.sty @@ -22,7 +22,7 @@ %% in the same archive or directory.) %% %%---------------------------------------------------------------- -%% The xint bundle (version 1.06a of May 9, 2013) +%% The xint bundle (version 1.06b of May 14, 2013) %% xint: Expandable operations on long numbers %% Copyright (C) 2013 by Jean-Francois Burnol %%---------------------------------------------------------------- @@ -33,6 +33,7 @@ \catcode123=1 % { \catcode125=2 % } \catcode64=11 % @ + \catcode95=11 % _ (starting with 1.06b, used inside cs names) \catcode35=6 % # \catcode44=12 % , \catcode45=12 % - @@ -64,7 +65,7 @@ \def\ChangeCatcodesIfInputNotAborted {% \endgroup - \edef\XINT@restorecatcodes@endinput + \edef\XINT_restorecatcodes_endinput {% \catcode96=\the\catcode96 % ` \catcode47=\the\catcode47 % / @@ -79,7 +80,7 @@ \catcode45=\the\catcode45 % - \catcode44=\the\catcode44 % , \catcode35=\the\catcode35 % # - \catcode64=\the\catcode64 % @ + \catcode95=\the\catcode95 % _ \catcode125=\the\catcode125 % } \catcode123=\the\catcode123 % { \endlinechar=\the\endlinechar @@ -88,7 +89,7 @@ \catcode61=\the\catcode61\relax % = \noexpand\endinput }% - \def\XINT@setcatcodes + \def\XINT_setcatcodes {% \catcode61=12 % = \catcode32=10 % space @@ -96,7 +97,7 @@ \endlinechar=13 % \catcode123=1 % { \catcode125=2 % } - \catcode64=11 % @ + \catcode95=11 % _ (replaces @ everywhere, starting with 1.06b) \catcode35=6 % # \catcode44=12 % , \catcode45=12 % - @@ -111,10 +112,11 @@ \catcode47=12 % / \catcode96=12 % ` }% - \XINT@setcatcodes + \XINT_setcatcodes }% \ChangeCatcodesIfInputNotAborted \begingroup + \catcode64=11 % @ \catcode91=12 % [ \catcode93=12 % ] \catcode58=12 % : (does not really matter, was letter) @@ -136,405 +138,400 @@ \fi \expandafter\x\csname ver@xint.sty\endcsname \ProvidesPackage{xint}% - [2013/05/09 v1.06a Expandable operations on long numbers (jfB)]% -\def\xint@gobble #1{}% -\def\xint@gobble@ {}% -\def\xint@gobble@i #1{}% -\def\xint@gobble@ii #1#2{}% -\def\xint@gobble@iii #1#2#3{}% -\def\xint@gobble@iv #1#2#3#4{}% -\def\xint@gobble@v #1#2#3#4#5{}% -\def\xint@gobble@vi #1#2#3#4#5#6{}% -\def\xint@gobble@vii #1#2#3#4#5#6#7{}% -\def\xint@gobble@viii #1#2#3#4#5#6#7#8{}% -\def\xint@firstoftwo #1#2{#1}% -\def\xint@secondoftwo #1#2{#2}% -\def\xint@firstoftwo@andstop #1#2{ #1}% -\def\xint@secondoftwo@andstop #1#2{ #2}% -\def\xint@exchangetwo@keepbraces@andstop #1#2{ {#2}{#1}}% -\def\xint@minus@andstop { -}% -\def\xint@r #1\R {}% -\def\xint@w #1\W {}% -\def\xint@z #1\Z {}% -\def\xint@zero #10{}% -\def\xint@one #11{}% -\def\xint@minus #1-{}% -\def\xint@relax #1\relax {}% -\def\xint@quatrezeros #10000{}% -\def\xint@bracedundef {\xint@undef }% -\def\xint@UDzerofork #10\dummy #2#3\xint@UDkrof {#2}% -\def\xint@UDsignfork #1-\dummy #2#3\xint@UDkrof {#2}% -\def\xint@UDwfork #1\W\dummy #2#3\xint@UDkrof {#2}% -\def\xint@UDzerosfork #100\dummy #2#3\xint@UDkrof {#2}% -\def\xint@UDonezerofork #110\dummy #2#3\xint@UDkrof {#2}% -\def\xint@UDzerominusfork #10-\dummy #2#3\xint@UDkrof {#2}% -\def\xint@UDsignsfork #1--\dummy #2#3\xint@UDkrof {#2}% -\def\xint@afterfi #1#2\fi {\fi #1}% + [2013/05/14 v1.06b Expandable operations on long numbers (jfB)]% +\def\xint_gobble_ {}% +\def\xint_gobble_i #1{}% +\def\xint_gobble_ii #1#2{}% +\def\xint_gobble_iii #1#2#3{}% +\def\xint_gobble_iv #1#2#3#4{}% +\def\xint_gobble_v #1#2#3#4#5{}% +\def\xint_gobble_vi #1#2#3#4#5#6{}% +\def\xint_gobble_vii #1#2#3#4#5#6#7{}% +\def\xint_gobble_viii #1#2#3#4#5#6#7#8{}% +\def\xint_firstoftwo #1#2{#1}% +\def\xint_secondoftwo #1#2{#2}% +\def\xint_firstoftwo_andstop #1#2{ #1}% +\def\xint_secondoftwo_andstop #1#2{ #2}% +\def\xint_exchangetwo_keepbraces_andstop #1#2{ {#2}{#1}}% +\def\xint_minus_andstop { -}% +\def\xint_gob_til_r #1\R {}% +\def\xint_gob_til_w #1\W {}% +\def\xint_gob_til_z #1\Z {}% +\def\xint_gob_til_zero #10{}% +\def\xint_gob_til_one #11{}% +\def\xint_gob_til_zeros_iv #10000{}% +\def\xint_gob_til_relax #1\relax {}% +\def\xint_gob_til_xint_undef #1\xint_undef {}% +\def\xint_gob_til_xint_relax #1\xint_relax {}% +\def\xint_UDzerofork #10\dummy #2#3\krof {#2}% +\def\xint_UDsignfork #1-\dummy #2#3\krof {#2}% +\def\xint_UDwfork #1\W\dummy #2#3\krof {#2}% +\def\xint_UDzerosfork #100\dummy #2#3\krof {#2}% +\def\xint_UDonezerofork #110\dummy #2#3\krof {#2}% +\def\xint_UDzerominusfork #10-\dummy #2#3\krof {#2}% +\def\xint_UDsignsfork #1--\dummy #2#3\krof {#2}% +\def\xint_afterfi #1#2\fi {\fi #1}% +\let\xint_relax\relax +\def\xint_braced_xint_relax {\xint_relax }% \def\xintRev {\romannumeral0\xintrev }% \def\xintrev #1% {% - \expandafter\xint@rev\expandafter {\romannumeral-`0#1}% + \expandafter\XINT_rev_fork + \romannumeral-`0#1\xint_relax % empty #1 ok + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_relax }% -\def\xint@rev #1% +\def\XINT_rev_fork #1% {% - \XINT@rev@fork #1\Z + \xint_UDsignfork + #1\dummy {\expandafter\xint_minus_andstop + \romannumeral0\XINT_rord_main {}}% + -\dummy {\XINT_rord_main {}#1}% + \krof }% -\def\XINT@rev@fork #1#2% +\def\XINT_Rev {\romannumeral0\XINT_rev }% +\def\xintReverseOrder {\romannumeral0\XINT_rev }% +\def\XINT_rev #1% {% - \xint@UDsignfork - #1\dummy \XINT@rev@negative - -\dummy \XINT@rev@nonnegative - \xint@UDkrof - #1#2% + \XINT_rord_main {}#1% + \xint_relax + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_relax }% -\def\XINT@rev@negative #1#2\Z +\def\XINT_rord_main #1#2#3#4#5#6#7#8#9% {% - \expandafter\xint@minus@andstop\romannumeral0\XINT@rev {#2}% + \xint_gob_til_xint_undef #9\XINT_rord_cleanup\xint_undef + \XINT_rord_main {#9#8#7#6#5#4#3#2#1}% }% -\def\XINT@rev@nonnegative #1\Z +\def\XINT_rord_cleanup\xint_undef\XINT_rord_main #1#2\xint_relax {% - \XINT@rev {#1}% + \expandafter\space\xint_gob_til_xint_relax #1% }% -\def\XINT@Rev {\romannumeral0\XINT@rev }% -\let\xintReverseOrder \XINT@Rev -\def\XINT@rev #1% -{% - \XINT@rord@main {}#1% - \xint@UNDEF - \xint@undef\xint@undef\xint@undef\xint@undef - \xint@undef\xint@undef\xint@undef\xint@undef - \xint@UNDEF -}% -\def\XINT@rord@main #1#2#3#4#5#6#7#8#9% -{% - \XINT@strip@undef #9\XINT@rord@cleanup\xint@undef - \XINT@rord@main {#9#8#7#6#5#4#3#2#1}% -}% -\def\XINT@rord@cleanup\xint@undef\XINT@rord@main #1#2\xint@UNDEF -{% - \expandafter\space\XINT@strip@UNDEF #1% -}% -\def\XINT@strip@undef #1\xint@undef {}% -\def\XINT@strip@UNDEF #1\xint@UNDEF {}% -\def\xintRevWithBraces {\romannumeral0\xintrevwithbraces }% +\def\xintRevWithBraces {\romannumeral0\xintrevwithbraces }% +\def\xintRevWithBracesNoExpand {\romannumeral0\xintrevwithbracesnoexpand }% \def\xintrevwithbraces #1% {% - \expandafter\XINT@revwbr@prep\expandafter {\romannumeral-`0#1}% + \expandafter\XINT_revwbr_loop % #1 empty ok + \romannumeral-`0#1\xint_relax\xint_relax\xint_relax\xint_relax + \xint_relax\xint_relax\xint_relax\xint_relax\Z }% -\def\XINT@RWB {\romannumeral0\XINT@revwbr@prep }% -\def\XINT@revwbr@prep #1% +\def\xintrevwithbracesnoexpand #1% {% - \XINT@revwbr@loop - {}#1\xint@undef\xint@undef\xint@undef\xint@undef - \xint@undef\xint@undef\xint@undef\xint@undef\Z + \romannumeral0\XINT_revwbr_loop + #1\xint_relax\xint_relax\xint_relax\xint_relax + \xint_relax\xint_relax\xint_relax\xint_relax\Z }% -\def\XINT@revwbr@loop #1#2#3#4#5#6#7#8#9% +\def\XINT_revwbr_loop #1#2#3#4#5#6#7#8#9% {% - \XINT@strip@undef #9\XINT@revwbr@finish@a\xint@undef - \XINT@revwbr@loop {{#9}{#8}{#7}{#6}{#5}{#4}{#3}{#2}#1}% + \xint_gob_til_xint_relax #9\XINT_revwbr_finish_a\xint_relax + \XINT_revwbr_loop {{#9}{#8}{#7}{#6}{#5}{#4}{#3}{#2}#1}% }% -\def\XINT@revwbr@finish@a\xint@undef\XINT@revwbr@loop #1#2\Z +\def\XINT_revwbr_finish_a\xint_relax\XINT_revwbr_loop #1#2\Z {% - \XINT@revwbr@finish@b #2\R\R\R\R\R\R\R\Z #1% + \XINT_revwbr_finish_b #2\R\R\R\R\R\R\R\Z #1% }% -\def\XINT@revwbr@finish@b #1#2#3#4#5#6#7#8\Z +\def\XINT_revwbr_finish_b #1#2#3#4#5#6#7#8\Z {% - \xint@r #1\XINT@revwbr@finish@c 8% - #2\XINT@revwbr@finish@c 7% - #3\XINT@revwbr@finish@c 6% - #4\XINT@revwbr@finish@c 5% - #5\XINT@revwbr@finish@c 4% - #6\XINT@revwbr@finish@c 3% - #7\XINT@revwbr@finish@c 2% - \R\XINT@revwbr@finish@c 1\Z + \xint_gob_til_r + #1\XINT_revwbr_finish_c 8% + #2\XINT_revwbr_finish_c 7% + #3\XINT_revwbr_finish_c 6% + #4\XINT_revwbr_finish_c 5% + #5\XINT_revwbr_finish_c 4% + #6\XINT_revwbr_finish_c 3% + #7\XINT_revwbr_finish_c 2% + \R\XINT_revwbr_finish_c 1\Z }% -\def\XINT@revwbr@finish@c #1#2\Z +\def\XINT_revwbr_finish_c #1#2\Z {% \expandafter\expandafter\expandafter \space - \csname xint@gobble@\romannumeral #1\endcsname + \csname xint_gobble_\romannumeral #1\endcsname }% \def\xintiLen {\romannumeral0\xintilen }% \def\xintilen #1% {% - \expandafter\XINT@len@prep\expandafter {\romannumeral-`0#1}% + \expandafter\XINT_length_fork + \romannumeral-`0#1\xint_relax\xint_relax\xint_relax\xint_relax + \xint_relax\xint_relax\xint_relax\xint_relax\Z }% \let\xintLen\xintiLen \let\xintlen\xintilen -\def\XINT@Len {\romannumeral0\XINT@len@prep }% -\def\XINT@len@prep #1% +\def\XINT_Len #1% {% - \XINT@length@fork - #1\xint@undef\xint@undef\xint@undef\xint@undef - \xint@undef\xint@undef\xint@undef\xint@undef\Z + \romannumeral0\XINT_length_fork + #1\xint_relax\xint_relax\xint_relax\xint_relax + \xint_relax\xint_relax\xint_relax\xint_relax\Z }% -\def\XINT@length@fork #1% +\def\XINT_length_fork #1% {% - \expandafter\XINT@length@loop - \xint@UDsignfork + \expandafter\XINT_length_loop + \xint_UDsignfork #1\dummy {{0}}% -\dummy {{0}#1}% - \xint@UDkrof + \krof }% -\def\XINT@Length {\romannumeral0\XINT@length }% -\def\XINT@length #1% +\def\XINT_Length {\romannumeral0\XINT_length }% +\def\XINT_length #1% {% - \XINT@length@loop - {0}#1\xint@undef\xint@undef\xint@undef\xint@undef - \xint@undef\xint@undef\xint@undef\xint@undef\Z + \XINT_length_loop + {0}#1\xint_relax\xint_relax\xint_relax\xint_relax + \xint_relax\xint_relax\xint_relax\xint_relax\Z }% -\let\xintLength\XINT@Length -\def\XINT@length@loop #1#2#3#4#5#6#7#8#9% +\let\xintLength\XINT_Length +\def\XINT_length_loop #1#2#3#4#5#6#7#8#9% {% - \XINT@strip@undef #9\XINT@length@finish@a\xint@undef - \expandafter\XINT@length@loop\expandafter {\the\numexpr #1+8\relax}% + \xint_gob_til_xint_relax #9\XINT_length_finish_a\xint_relax + \expandafter\XINT_length_loop\expandafter {\the\numexpr #1+8\relax}% }% -\def\XINT@length@finish@a\xint@undef - \expandafter\XINT@length@loop\expandafter #1#2\Z +\def\XINT_length_finish_a\xint_relax + \expandafter\XINT_length_loop\expandafter #1#2\Z {% - \XINT@length@finish@b #2\W\W\W\W\W\W\W\Z {#1}% + \XINT_length_finish_b #2\W\W\W\W\W\W\W\Z {#1}% }% -\def\XINT@length@finish@b #1#2#3#4#5#6#7#8\Z +\def\XINT_length_finish_b #1#2#3#4#5#6#7#8\Z {% - \xint@w #1\XINT@length@finish@c 8% - #2\XINT@length@finish@c 7% - #3\XINT@length@finish@c 6% - #4\XINT@length@finish@c 5% - #5\XINT@length@finish@c 4% - #6\XINT@length@finish@c 3% - #7\XINT@length@finish@c 2% - \W\XINT@length@finish@c 1\Z + \xint_gob_til_w + #1\XINT_length_finish_c 8% + #2\XINT_length_finish_c 7% + #3\XINT_length_finish_c 6% + #4\XINT_length_finish_c 5% + #5\XINT_length_finish_c 4% + #6\XINT_length_finish_c 3% + #7\XINT_length_finish_c 2% + \W\XINT_length_finish_c 1\Z }% -\def\XINT@length@finish@c #1#2\Z #3{\expandafter\space\the\numexpr #3-#1\relax}% +\def\XINT_length_finish_c #1#2\Z #3% + {\expandafter\space\the\numexpr #3-#1\relax}% \def\xintCSVtoList {\romannumeral0\xintcsvtolist }% \def\xintcsvtolist #1% {% - \expandafter\XINT@csvtol@prep\expandafter {\romannumeral-`0#1}% + \expandafter\XINT_csvtol_loop_a\expandafter + {\expandafter}\romannumeral-`0#1% + ,\xint_undef,\xint_undef,\xint_undef,\xint_undef + ,\xint_undef,\xint_undef,\xint_undef,\xint_undef,\Z }% -\def\XINT@CSVtoL {\romannumeral0\XINT@csvtol@prep }% -\def\XINT@csvtol@prep #1% +\def\XINT_csvtol_loop_a #1#2,#3,#4,#5,#6,#7,#8,#9,% {% - \XINT@csvtol@loop@a - {}#1,\xint@undef,\xint@undef,\xint@undef,\xint@undef,% - \xint@undef,\xint@undef,\xint@undef,\xint@undef,\Z + \xint_gob_til_xint_undef #9\XINT_csvtol_finish_a\xint_undef + \XINT_csvtol_loop_b {#1}{{#2}{#3}{#4}{#5}{#6}{#7}{#8}{#9}}% }% -\def\XINT@csvtol@loop@a #1#2,#3,#4,#5,#6,#7,#8,#9,% +\def\XINT_csvtol_loop_b #1#2{\XINT_csvtol_loop_a {#1#2}}% +\def\XINT_csvtol_finish_a\xint_undef\XINT_csvtol_loop_b #1#2#3\Z {% - \XINT@strip@undef #9\XINT@csvtol@finish@a\xint@undef - \XINT@csvtol@loop@b {#1}{{#2}{#3}{#4}{#5}{#6}{#7}{#8}{#9}}% + \XINT_csvtol_finish_b #3\R,\R,\R,\R,\R,\R,\R,\Z #2{#1}% }% -\def\XINT@csvtol@loop@b #1#2{\XINT@csvtol@loop@a {#1#2}}% -\def\XINT@csvtol@finish@a\xint@undef\XINT@csvtol@loop@b #1#2#3\Z +\def\XINT_csvtol_finish_b #1,#2,#3,#4,#5,#6,#7,#8\Z {% - \XINT@csvtol@finish@b #3\R,\R,\R,\R,\R,\R,\R,\Z #2{#1}% + \xint_gob_til_r + #1\XINT_csvtol_finish_c 8% + #2\XINT_csvtol_finish_c 7% + #3\XINT_csvtol_finish_c 6% + #4\XINT_csvtol_finish_c 5% + #5\XINT_csvtol_finish_c 4% + #6\XINT_csvtol_finish_c 3% + #7\XINT_csvtol_finish_c 2% + \R\XINT_csvtol_finish_c 1\Z }% -\def\XINT@csvtol@finish@b #1,#2,#3,#4,#5,#6,#7,#8\Z +\def\XINT_csvtol_finish_c #1#2\Z {% - \xint@r #1\XINT@csvtol@finish@c 8% - #2\XINT@csvtol@finish@c 7% - #3\XINT@csvtol@finish@c 6% - #4\XINT@csvtol@finish@c 5% - #5\XINT@csvtol@finish@c 4% - #6\XINT@csvtol@finish@c 3% - #7\XINT@csvtol@finish@c 2% - \R\XINT@csvtol@finish@c 1\Z + \csname XINT_csvtol_finish_d\romannumeral #1\endcsname }% -\def\XINT@csvtol@finish@c #1#2\Z -{% - \csname XINT@csvtol@finish@d\romannumeral #1\endcsname -}% -\def\XINT@csvtol@finish@dviii #1#2#3#4#5#6#7#8#9{ #9}% -\def\XINT@csvtol@finish@dvii #1#2#3#4#5#6#7#8#9{ #9{#1}}% -\def\XINT@csvtol@finish@dvi #1#2#3#4#5#6#7#8#9{ #9{#1}{#2}}% -\def\XINT@csvtol@finish@dv #1#2#3#4#5#6#7#8#9{ #9{#1}{#2}{#3}}% -\def\XINT@csvtol@finish@div #1#2#3#4#5#6#7#8#9{ #9{#1}{#2}{#3}{#4}}% -\def\XINT@csvtol@finish@diii #1#2#3#4#5#6#7#8#9{ #9{#1}{#2}{#3}{#4}{#5}}% -\def\XINT@csvtol@finish@dii #1#2#3#4#5#6#7#8#9{ #9{#1}{#2}{#3}{#4}{#5}{#6}}% -\def\XINT@csvtol@finish@di #1#2#3#4#5#6#7#8#9{ #9{#1}{#2}{#3}{#4}{#5}{#6}{#7}}% +\def\XINT_csvtol_finish_dviii #1#2#3#4#5#6#7#8#9{ #9}% +\def\XINT_csvtol_finish_dvii #1#2#3#4#5#6#7#8#9{ #9{#1}}% +\def\XINT_csvtol_finish_dvi #1#2#3#4#5#6#7#8#9{ #9{#1}{#2}}% +\def\XINT_csvtol_finish_dv #1#2#3#4#5#6#7#8#9{ #9{#1}{#2}{#3}}% +\def\XINT_csvtol_finish_div #1#2#3#4#5#6#7#8#9{ #9{#1}{#2}{#3}{#4}}% +\def\XINT_csvtol_finish_diii #1#2#3#4#5#6#7#8#9{ #9{#1}{#2}{#3}{#4}{#5}}% +\def\XINT_csvtol_finish_dii #1#2#3#4#5#6#7#8#9{ #9{#1}{#2}{#3}{#4}{#5}{#6}}% +\def\XINT_csvtol_finish_di #1#2#3#4#5#6#7#8#9% + { #9{#1}{#2}{#3}{#4}{#5}{#6}{#7}}% \def\xintListWithSep {\romannumeral0\xintlistwithsep }% \long\def\xintlistwithsep #1#2% + {\expandafter\XINT_lws\expandafter {\romannumeral-`0#2}{#1}}% +\long\def\XINT_lws #1#2{\XINT_lws_start {#2}#1\Z }% +\long\def\XINT_lws_start #1#2% {% - \expandafter\XINT@lws\expandafter {\romannumeral-`0#2}% - {#1}% -}% -\long\def\XINT@LWS #1#2{\romannumeral0\XINT@lws@start {#1}#2\Z }% -\long\def\XINT@lws #1#2% -{% - \XINT@lws@start {#2}#1\Z + \xint_gob_til_z #2\XINT_lws_dont\Z + \XINT_lws_loop_a {#2}{#1}% }% -\long\def\XINT@lws@start #1#2% +\long\def\XINT_lws_dont\Z\XINT_lws_loop_a #1#2{ }% +\long\def\XINT_lws_loop_a #1#2#3% {% - \xint@z #2\XINT@lws@dont\Z - \XINT@lws@loop@a {#2}{#1}% + \xint_gob_til_z #3\XINT_lws_end\Z + \XINT_lws_loop_b {#1}{#2#3}{#2}% }% -\long\def\XINT@lws@dont\Z\XINT@lws@loop@a #1#2{ }% -\long\def\XINT@lws@loop@a #1#2#3% -{% - \xint@z #3\XINT@lws@end\Z - \XINT@lws@loop@b {#1}{#2#3}{#2}% -}% -\long\def\XINT@lws@loop@b #1#2{\XINT@lws@loop@a {#1#2}}% -\long\def\XINT@lws@end\Z\XINT@lws@loop@b #1#2#3{ #1}% -\def\xintNthElt {\romannumeral0\xintnthelt }% +\long\def\XINT_lws_loop_b #1#2{\XINT_lws_loop_a {#1#2}}% +\long\def\XINT_lws_end\Z\XINT_lws_loop_b #1#2#3{ #1}% +\def\xintNthElt {\romannumeral0\xintnthelt }% \def\xintnthelt #1#2% {% - \expandafter\XINT@nthelt\expandafter {\romannumeral-`0#2}% - {\numexpr #1\relax}% + \expandafter\XINT_nthelt\expandafter {\romannumeral-`0#2}% + {\numexpr #1\relax }% }% -\def\XINT@NthElt #1#2{\romannumeral0\XINT@nthelt {#2}{\numexpr #1\relax}}% -\def\XINT@nthelt #1#2% +\def\XINT_nthelt #1#2% {% \ifnum #2>0 - \xint@afterfi {\XINT@nthelt@loop@a {#2}}% + \xint_afterfi {\XINT_nthelt_loop_a {#2}}% \else - \xint@afterfi {\XINT@length@loop {0}}% - \fi #1\xint@undef\xint@undef\xint@undef\xint@undef - \xint@undef\xint@undef\xint@undef\xint@undef\Z + \xint_afterfi {\XINT_length_loop {0}}% + \fi #1\xint_relax\xint_relax\xint_relax\xint_relax + \xint_relax\xint_relax\xint_relax\xint_relax\Z }% -\def\XINT@nthelt@loop@a #1% +\def\XINT_nthelt_loop_a #1% {% \ifnum #1>8 - \expandafter\XINT@nthelt@loop@b + \expandafter\XINT_nthelt_loop_b \else - \expandafter\XINT@nthelt@getit + \expandafter\XINT_nthelt_getit \fi {#1}% }% -\def\XINT@nthelt@loop@b #1#2#3#4#5#6#7#8#9% +\def\XINT_nthelt_loop_b #1#2#3#4#5#6#7#8#9% {% - \XINT@strip@undef #9\XINT@nthelt@silentend\xint@undef - \expandafter\XINT@nthelt@loop@a\expandafter{\the\numexpr #1-8\relax}% + \xint_gob_til_xint_relax #9\XINT_nthelt_silentend\xint_relax + \expandafter\XINT_nthelt_loop_a\expandafter{\the\numexpr #1-8\relax}% }% -\def\XINT@nthelt@silentend #1\Z { }% -\def\XINT@nthelt@getit #1% +\def\XINT_nthelt_silentend #1\Z { }% +\def\XINT_nthelt_getit #1% {% - \expandafter\expandafter\expandafter\XINT@nthelt@finish - \csname xint@gobble@\romannumeral\numexpr#1-1\endcsname + \expandafter\expandafter\expandafter\XINT_nthelt_finish + \csname xint_gobble_\romannumeral\numexpr#1-1\endcsname }% -\def\XINT@nthelt@finish #1#2\Z +\def\XINT_nthelt_finish #1#2\Z {% - \xint@UDwfork + \xint_UDwfork #1\dummy { }% \W\dummy { #1}% - \xint@UDkrof + \krof }% -\def\xintApply {\romannumeral0\xintapply }% +\def\xintApply {\romannumeral0\xintapply }% \def\xintapply #1#2% {% - \expandafter\XINT@apply\expandafter {\romannumeral-`0#2}% + \expandafter\XINT_apply\expandafter {\romannumeral-`0#2}% {#1}% }% -\def\XINT@Apply #1#2{\romannumeral0\XINT@apply@loop@a {}{#1}#2\Z }% -\def\XINT@apply #1#2% +\def\XINT_apply #1#2{\XINT_apply_loop_a {}{#2}#1\Z }% +\def\XINT_apply_loop_a #1#2#3% {% - \XINT@apply@loop@a {}{#2}#1\Z + \xint_gob_til_z #3\XINT_apply_end\Z + \expandafter + \XINT_apply_loop_b + \expandafter {\romannumeral-`0#2{#3}}{#1}{#2}% }% -\def\XINT@apply@loop@a #1#2#3% +\def\XINT_apply_loop_b #1#2{\XINT_apply_loop_a {#2{#1}}}% +\def\XINT_apply_end\Z\expandafter\XINT_apply_loop_b\expandafter #1#2#3{ #2}% +\def\xintApplyUnbraced {\romannumeral0\xintapplyunbraced }% +\def\xintapplyunbraced #1#2% {% - \xint@z #3\XINT@apply@end\Z - \expandafter - \XINT@apply@loop@b + \expandafter\XINT_applyunbr\expandafter {\romannumeral-`0#2}% + {#1}% +}% +\def\XINT_applyunbr #1#2{\XINT_applyunbr_loop_a {}{#2}#1\Z }% +\def\XINT_applyunbr_loop_a #1#2#3% +{% + \xint_gob_til_z #3\XINT_applyunbr_end\Z + \expandafter\XINT_applyunbr_loop_b \expandafter {\romannumeral-`0#2{#3}}{#1}{#2}% }% -\def\XINT@apply@loop@b #1#2{\XINT@apply@loop@a {#2{#1}}}% -\def\XINT@apply@end\Z\expandafter\XINT@apply@loop@b\expandafter #1#2#3{ #2}% +\def\XINT_applyunbr_loop_b #1#2{\XINT_applyunbr_loop_a {#2#1}}% +\def\XINT_applyunbr_end\Z + \expandafter\XINT_applyunbr_loop_b\expandafter #1#2#3{ #2}% \def\xintAssign #1\to {% - \expandafter\XINT@assign@a\romannumeral-`0#1{}\to + \expandafter\XINT_assign_a\romannumeral-`0#1{}\to }% -\def\XINT@assign@a #1% attention to the # at the beginning of next line +\def\XINT_assign_a #1% attention to the # at the beginning of next line #{% - \def\xint@temp {#1}% - \ifx\empty\xint@temp - \expandafter\XINT@assign@b + \def\xint_temp {#1}% + \ifx\empty\xint_temp + \expandafter\XINT_assign_b \else - \expandafter\XINT@assign@B + \expandafter\XINT_assign_B \fi }% -\def\XINT@assign@b #1#2\to #3% +\def\XINT_assign_b #1#2\to #3% {% - \edef #3{#1}\def\xint@temp {#2}% - \ifx\empty\xint@temp + \edef #3{#1}\def\xint_temp {#2}% + \ifx\empty\xint_temp \else - \xint@afterfi{\XINT@assign@a #2\to }% + \xint_afterfi{\XINT_assign_a #2\to }% \fi }% -\def\XINT@assign@B #1\to #2% +\def\XINT_assign_B #1\to #2% {% - \edef #2{\xint@temp}% + \edef #2{\xint_temp}% }% \def\xintRelaxArray #1% {% - \edef\XINT@restoreescapechar {\escapechar\the\escapechar\relax}% + \edef\XINT_restoreescapechar {\escapechar\the\escapechar\relax}% \escapechar -1 - \edef\xint@arrayname {\string #1}% - \XINT@restoreescapechar - \expandafter\let\expandafter\xint@temp - \csname\xint@arrayname 0\endcsname + \edef\xint_arrayname {\string #1}% + \XINT_restoreescapechar + \expandafter\let\expandafter\xint_temp + \csname\xint_arrayname 0\endcsname \count 255 0 \loop \global\expandafter\let - \csname\xint@arrayname\the\count255\endcsname\relax - \ifnum \count 255 < \xint@temp + \csname\xint_arrayname\the\count255\endcsname\relax + \ifnum \count 255 < \xint_temp \advance\count 255 1 \repeat - \global\expandafter\let\csname\xint@arrayname 00\endcsname\relax + \global\expandafter\let\csname\xint_arrayname 00\endcsname\relax \global\let #1\relax }% -\def\xintAssignArray #1\to #2% +\def\xintAssignArray #1\to #2% 1.06b: #1 may now be empty {% - \edef\XINT@restoreescapechar {\escapechar\the\escapechar\relax}% + \edef\XINT_restoreescapechar {\escapechar\the\escapechar\relax }% \escapechar -1 - \edef\xint@arrayname {\string #2}% NOT #1! (amazing typo undetected during ages) - \XINT@restoreescapechar + \edef\xint_arrayname {\string #2}% + \XINT_restoreescapechar \count 255 0 - \expandafter - \XINT@assignarray@loop \romannumeral-`0#1\xint@undef - \csname\xint@arrayname 00\endcsname - \csname\xint@arrayname 0\endcsname - {\xint@arrayname}% + \expandafter\XINT_assignarray_loop \romannumeral-`0#1\xint_relax + \csname\xint_arrayname 00\endcsname + \csname\xint_arrayname 0\endcsname + {\xint_arrayname}% #2% }% -\def\XINT@assignarray@loop #1% +\def\XINT_assignarray_loop #1% {% - \def\xint@temp {#1}% - \ifx\xint@bracedundef\xint@temp - \edef\xint@temp{\the\count 255 }% - \expandafter\let\csname\xint@arrayname0\endcsname\xint@temp - \expandafter\XINT@assignarray@end + \def\xint_temp {#1}% + \ifx\xint_braced_xint_relax\xint_temp + \expandafter\edef\csname\xint_arrayname 0\endcsname{\the\count 255 }% + \expandafter\expandafter\expandafter\XINT_assignarray_end_a \else \advance\count 255 1 \expandafter\edef - \csname\xint@arrayname\the\count 255\endcsname{\xint@temp}% - \expandafter\XINT@assignarray@loop + \csname\xint_arrayname\the\count 255\endcsname{\xint_temp }% + \expandafter\XINT_assignarray_loop \fi }% -\def\XINT@assignarray@end {\expandafter\XINT@assignarray@@end }% -\def\XINT@assignarray@@end #1% +\def\XINT_assignarray_end_a #1% {% - \expandafter\XINT@assignarray@@@end\expandafter #1% + \expandafter\XINT_assignarray_end_b\expandafter #1% }% -\def\XINT@assignarray@@@end #1#2#3% +\def\XINT_assignarray_end_b #1#2#3% {% - \expandafter\XINT@assignarray@@@@end - \expandafter #1\expandafter #2\expandafter{#3}% + \expandafter\XINT_assignarray_end_c + \expandafter #1\expandafter #2\expandafter {#3}% }% -\def\XINT@assignarray@@@@end #1#2#3#4% +\def\XINT_assignarray_end_c #1#2#3#4% {% \def #4##1% {% - \romannumeral0% - \expandafter #1\expandafter{\the\numexpr ##1}% + \romannumeral0\expandafter #1\expandafter{\the\numexpr ##1}% }% \def #1##1% {% \ifnum ##1< 0 - \xint@afterfi {\xintError:ArrayIndexIsNegative\space 0}% + \xint_afterfi {\xintError:ArrayIndexIsNegative\space 0}% \else - \xint@afterfi {% + \xint_afterfi {% \ifnum ##1> #2 - \xint@afterfi {\xintError:ArrayIndexBeyondLimit\space 0}% + \xint_afterfi {\xintError:ArrayIndexBeyondLimit\space 0}% \else - \xint@afterfi + \xint_afterfi {\expandafter\expandafter\expandafter \space\csname #3##1\endcsname}% \fi}% @@ -542,1499 +539,1522 @@ }% }% \let\xintDigitsOf\xintAssignArray -\def\XINT@RQ #1#2#3#4#5#6#7#8#9% +\def\XINT_RQ #1#2#3#4#5#6#7#8#9% {% - \xint@r #9\XINT@RQ@end\R\XINT@RQ {#9#8#7#6#5#4#3#2#1}% + \xint_gob_til_r #9\XINT_RQ_end_a\R\XINT_RQ {#9#8#7#6#5#4#3#2#1}% }% -\def\XINT@RQ@end\R\XINT@RQ #1#2\Z +\def\XINT_RQ_end_a\R\XINT_RQ #1#2\Z {% - \XINT@RQ@end@ #1\Z + \XINT_RQ_end_b #1\Z }% -\def\XINT@RQ@end@ #1#2#3#4#5#6#7#8% +\def\XINT_RQ_end_b #1#2#3#4#5#6#7#8% {% - \xint@r #8\XINT@RQ@end@viii - #7\XINT@RQ@end@vii - #6\XINT@RQ@end@vi - #5\XINT@RQ@end@v - #4\XINT@RQ@end@iv - #3\XINT@RQ@end@iii - #2\XINT@RQ@end@ii - \R\XINT@RQ@end@i + \xint_gob_til_r + #8\XINT_RQ_end_viii + #7\XINT_RQ_end_vii + #6\XINT_RQ_end_vi + #5\XINT_RQ_end_v + #4\XINT_RQ_end_iv + #3\XINT_RQ_end_iii + #2\XINT_RQ_end_ii + \R\XINT_RQ_end_i \Z #2#3#4#5#6#7#8% }% -\def\XINT@RQ@end@viii #1\Z #2#3#4#5#6#7#8#9\Z { #9}% -\def\XINT@RQ@end@vii #1\Z #2#3#4#5#6#7#8#9\Z { #8#9000}% -\def\XINT@RQ@end@vi #1\Z #2#3#4#5#6#7#8#9\Z { #7#8#900}% -\def\XINT@RQ@end@v #1\Z #2#3#4#5#6#7#8#9\Z { #6#7#8#90}% -\def\XINT@RQ@end@iv #1\Z #2#3#4#5#6#7#8#9\Z { #5#6#7#8#9}% -\def\XINT@RQ@end@iii #1\Z #2#3#4#5#6#7#8#9\Z { #4#5#6#7#8#9000}% -\def\XINT@RQ@end@ii #1\Z #2#3#4#5#6#7#8#9\Z { #3#4#5#6#7#8#900}% -\def\XINT@RQ@end@i \Z #1#2#3#4#5#6#7#8\Z { #1#2#3#4#5#6#7#80}% -\def\xint@cleanupzeros@andstop #1#2#3#4% +\def\XINT_RQ_end_viii #1\Z #2#3#4#5#6#7#8#9\Z { #9}% +\def\XINT_RQ_end_vii #1\Z #2#3#4#5#6#7#8#9\Z { #8#9000}% +\def\XINT_RQ_end_vi #1\Z #2#3#4#5#6#7#8#9\Z { #7#8#900}% +\def\XINT_RQ_end_v #1\Z #2#3#4#5#6#7#8#9\Z { #6#7#8#90}% +\def\XINT_RQ_end_iv #1\Z #2#3#4#5#6#7#8#9\Z { #5#6#7#8#9}% +\def\XINT_RQ_end_iii #1\Z #2#3#4#5#6#7#8#9\Z { #4#5#6#7#8#9000}% +\def\XINT_RQ_end_ii #1\Z #2#3#4#5#6#7#8#9\Z { #3#4#5#6#7#8#900}% +\def\XINT_RQ_end_i \Z #1#2#3#4#5#6#7#8\Z { #1#2#3#4#5#6#7#80}% +\def\xint_cleanupzeros_andstop #1#2#3#4% {% \expandafter\space\the\numexpr #1#2#3#4\relax }% -\def\xint@cleanupzeros@nospace #1#2#3#4% +\def\xint_cleanupzeros_nospace #1#2#3#4% {% \the\numexpr #1#2#3#4\relax }% -\def\XINT@rev@andcuz #1% +\def\XINT_rev_andcuz #1% {% - \expandafter\xint@cleanupzeros@andstop - \romannumeral0\XINT@rord@main {}#1% - \xint@UNDEF - \xint@undef\xint@undef\xint@undef\xint@undef - \xint@undef\xint@undef\xint@undef\xint@undef - \xint@UNDEF + \expandafter\xint_cleanupzeros_andstop + \romannumeral0\XINT_rord_main {}#1% + \xint_relax + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_relax }% -\def\XINT@cuz #1% +\def\XINT_cuz #1% {% - \XINT@cuz@loop #1\W\W\W\W\W\W\W\Z% + \XINT_cuz_loop #1\W\W\W\W\W\W\W\Z% }% -\def\XINT@cuz@loop #1#2#3#4#5#6#7#8% +\def\XINT_cuz_loop #1#2#3#4#5#6#7#8% {% - \xint@w #8\xint@cuz@enda\W - \xint@z #8\xint@cuz@endb\Z - \XINT@cuz@checka {#1#2#3#4#5#6#7#8}% + \xint_gob_til_w #8\xint_cuz_end_a\W + \xint_gob_til_z #8\xint_cuz_end_A\Z + \XINT_cuz_check_a {#1#2#3#4#5#6#7#8}% }% -\def\xint@cuz@enda #1\XINT@cuz@checka #2% +\def\xint_cuz_end_a #1\XINT_cuz_check_a #2% {% - \xint@cuz@endaa #2% + \xint_cuz_end_b #2% }% -\def\xint@cuz@endaa #1#2#3#4#5\Z +\def\xint_cuz_end_b #1#2#3#4#5\Z {% \expandafter\space\the\numexpr #1#2#3#4\relax }% -\def\xint@cuz@endb\Z\XINT@cuz@checka #1{ 0}% -\def\XINT@cuz@checka #1% +\def\xint_cuz_end_A \Z\XINT_cuz_check_a #1{ 0}% +\def\XINT_cuz_check_a #1% {% - \expandafter \XINT@cuz@checkb \the\numexpr #1\relax + \expandafter\XINT_cuz_check_b\the\numexpr #1\relax }% -\def\XINT@cuz@checkb #1% +\def\XINT_cuz_check_b #1% {% - \xint@zero #1\xint@cuz@backtoloop 0\XINT@cuz@Stop #1% + \xint_gob_til_zero #1\xint_cuz_backtoloop 0\XINT_cuz_stop #1% }% -\def\XINT@cuz@Stop #1\W #2\Z{ #1}% -\def\xint@cuz@backtoloop 0\XINT@cuz@Stop 0{\XINT@cuz@loop }% -\def\XINT@isOne #1{\romannumeral0\XINT@isone #1\W\Z }% -\def\XINT@isone #1#2% +\def\XINT_cuz_stop #1\W #2\Z{ #1}% +\def\xint_cuz_backtoloop 0\XINT_cuz_stop 0{\XINT_cuz_loop }% +\def\XINT_isOne #1{\romannumeral0\XINT_isone #1\W\Z }% +\def\XINT_isone #1#2% {% - \xint@one #1\XINT@isone@b 1\expandafter\space\expandafter 0\xint@z #2% + \xint_gob_til_one #1\XINT_isone_b 1% + \expandafter\space\expandafter 0\xint_gob_til_z #2% }% -\def\XINT@isone@b #1\xint@z #2% +\def\XINT_isone_b #1\xint_gob_til_z #2% {% - \xint@w #2\XINT@isone@yes\W\expandafter\space\expandafter 0\xint@z + \xint_gob_til_w #2\XINT_isone_yes \W + \expandafter\space\expandafter 0\xint_gob_til_z }% -\def\XINT@isone@yes #1\Z{ 1}% +\def\XINT_isone_yes #1\Z { 1}% \def\xintiNum {\romannumeral0\xintinum }% \def\xintinum #1% {% - \expandafter\XINT@num\expandafter {\romannumeral-`0#1}% + \expandafter\XINT_num_loop + \romannumeral-`0#1\xint_relax\xint_relax\xint_relax\xint_relax + \xint_relax\xint_relax\xint_relax\xint_relax\Z }% \let\xintNum\xintiNum \let\xintnum\xintinum -\def\XINT@Num {\romannumeral0\XINT@num }% -\def\XINT@num #1{\XINT@num@loop #1\R\R\R\R\R\R\R\R\Z }% -\def\XINT@num@loop #1#2#3#4#5#6#7#8% +\def\XINT_num #1% {% - \xint@r #8\XINT@num@end\R\XINT@num@NumEight #1#2#3#4#5#6#7#8% + \XINT_num_loop #1\xint_relax\xint_relax\xint_relax\xint_relax + \xint_relax\xint_relax\xint_relax\xint_relax\Z }% -\def\XINT@num@end\R\XINT@num@NumEight #1\R #2\Z +\def\XINT_num_loop #1#2#3#4#5#6#7#8% +{% + \xint_gob_til_xint_relax #8\XINT_num_end\xint_relax + \XINT_num_NumEight #1#2#3#4#5#6#7#8% +}% +\def\XINT_num_end\xint_relax\XINT_num_NumEight #1\xint_relax #2\Z {% \expandafter\space\the\numexpr #1+0\relax }% -\def\XINT@num@NumEight #1#2#3#4#5#6#7#8% +\def\XINT_num_NumEight #1#2#3#4#5#6#7#8% {% - \ifnum \numexpr #1#2#3#4#5#6#7#8+0\relax = 0 - \xint@afterfi {\expandafter\XINT@num@keepsign@a + \ifnum \numexpr #1#2#3#4#5#6#7#8+0= 0 + \xint_afterfi {\expandafter\XINT_num_keepsign_a \the\numexpr #1#2#3#4#5#6#7#81\relax}% \else - \xint@afterfi {\expandafter\XINT@num@finish + \xint_afterfi {\expandafter\XINT_num_finish \the\numexpr #1#2#3#4#5#6#7#8\relax}% \fi }% -\def\XINT@num@keepsign@a #1% +\def\XINT_num_keepsign_a #1% {% - \xint@one#1\XINT@num@gobacktoloop 1\XINT@num@keepsign@b + \xint_gob_til_one#1\XINT_num_gobacktoloop 1\XINT_num_keepsign_b }% -\def\XINT@num@gobacktoloop 1\XINT@num@keepsign@b {\XINT@num@loop }% -\def\XINT@num@keepsign@b #1{\XINT@num@loop -}% -\def\XINT@num@finish #1\R #2\Z { #1}% +\def\XINT_num_gobacktoloop 1\XINT_num_keepsign_b {\XINT_num_loop }% +\def\XINT_num_keepsign_b #1{\XINT_num_loop -}% +\def\XINT_num_finish #1\xint_relax #2\Z { #1}% \def\xintiSgn {\romannumeral0\xintisgn }% \def\xintisgn #1% {% - \expandafter\XINT@sgn \romannumeral-`0#1\Z% + \expandafter\XINT_sgn \romannumeral-`0#1\Z% }% \let\xintSgn\xintiSgn \let\xintsgn\xintisgn -\def\XINT@Sgn #1{\romannumeral0\XINT@sgn #1\Z }% -\def\XINT@sgn #1#2\Z +\def\XINT_Sgn #1{\romannumeral0\XINT_sgn #1\Z }% +\def\XINT_sgn #1#2\Z {% - \xint@UDzerominusfork + \xint_UDzerominusfork #1-\dummy { 0}% 0#1\dummy { -1}% 0-\dummy { 1}% - \xint@UDkrof + \krof }% \def\xintiOpp {\romannumeral0\xintiopp }% \def\xintiopp #1% {% - \expandafter\XINT@opp \romannumeral-`0#1% + \expandafter\XINT_opp \romannumeral-`0#1% }% \let\xintOpp\xintiOpp \let\xintopp\xintiopp -\def\XINT@Opp #1{\romannumeral0\XINT@opp #1}% -\def\XINT@opp #1% +\def\XINT_Opp #1{\romannumeral0\XINT_opp #1}% +\def\XINT_opp #1% {% - \xint@UDzerominusfork + \xint_UDzerominusfork #1-\dummy { 0}% zero 0#1\dummy { }% negative 0-\dummy { -#1}% positive - \xint@UDkrof + \krof }% \def\xintiAbs {\romannumeral0\xintiabs }% \def\xintiabs #1% {% - \expandafter\XINT@abs \romannumeral-`0#1% + \expandafter\XINT_abs \romannumeral-`0#1% }% \let\xintAbs\xintiAbs \let\xintabs\xintiabs -\def\XINT@Abs #1{\romannumeral0\XINT@abs #1}% -\def\XINT@abs #1% +\def\XINT_Abs #1{\romannumeral0\XINT_abs #1}% +\def\XINT_abs #1% {% - \xint@UDsignfork + \xint_UDsignfork #1\dummy { }% -\dummy { #1}% - \xint@UDkrof + \krof }% -\def\XINT@add@A #1#2#3#4#5#6% +\def\XINT_add_A #1#2#3#4#5#6% {% - \xint@w #3\xint@add@az\W\XINT@add@AB #1{#3#4#5#6}{#2}% + \xint_gob_til_w #3\xint_add_az\W + \XINT_add_AB #1{#3#4#5#6}{#2}% }% -\def\xint@add@az\W\XINT@add@AB #1#2% +\def\xint_add_az\W\XINT_add_AB #1#2% {% - \XINT@add@AC@checkcarry #1% + \XINT_add_AC_checkcarry #1% }% -\def\XINT@add@AB #1#2#3#4\W\X\Y\Z #5#6#7#8% +\def\XINT_add_AB #1#2#3#4\W\X\Y\Z #5#6#7#8% {% - \xint@w #5\xint@add@bz\W - \XINT@add@ABE #1#2{#8#7#6#5}{#3}#4\W\X\Y\Z + \xint_gob_til_w #5\xint_add_bz\W + \XINT_add_ABE #1#2{#8#7#6#5}{#3}#4\W\X\Y\Z }% -\def\XINT@add@ABE #1#2#3#4#5#6% +\def\XINT_add_ABE #1#2#3#4#5#6% {% - \expandafter\XINT@add@ABEA\the\numexpr #1+10#5#4#3#2+#6\relax.% + \expandafter\XINT_add_ABEA\the\numexpr #1+10#5#4#3#2+#6\relax.% }% -\def\XINT@add@ABEA #1#2#3.#4% +\def\XINT_add_ABEA #1#2#3.#4% {% - \XINT@add@A #2{#3#4}% + \XINT_add_A #2{#3#4}% }% -\def\xint@add@bz\W\XINT@add@ABE #1#2#3#4#5#6% +\def\xint_add_bz\W\XINT_add_ABE #1#2#3#4#5#6% {% - \expandafter\XINT@add@CC\the\numexpr #1+10#5#4#3#2\relax.% + \expandafter\XINT_add_CC\the\numexpr #1+10#5#4#3#2\relax.% }% -\def\XINT@add@CC #1#2#3.#4% +\def\XINT_add_CC #1#2#3.#4% {% - \XINT@add@AC@checkcarry #2{#3#4}% on va examiner et \'eliminer #2 + \XINT_add_AC_checkcarry #2{#3#4}% on va examiner et \'eliminer #2 }% -\def\XINT@add@AC@checkcarry #1% +\def\XINT_add_AC_checkcarry #1% {% - \xint@zero #1\xint@add@AC@nocarry 0\XINT@add@C + \xint_gob_til_zero #1\xint_add_AC_nocarry 0\XINT_add_C }% -\def\xint@add@AC@nocarry 0\XINT@add@C #1#2\W\X\Y\Z +\def\xint_add_AC_nocarry 0\XINT_add_C #1#2\W\X\Y\Z {% \expandafter - \xint@cleanupzeros@andstop + \xint_cleanupzeros_andstop \romannumeral0% - \XINT@rord@main {}#2% - \xint@UNDEF - \xint@undef\xint@undef\xint@undef\xint@undef - \xint@undef\xint@undef\xint@undef\xint@undef - \xint@UNDEF + \XINT_rord_main {}#2% + \xint_relax + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_relax #1% }% -\def\XINT@add@C #1#2#3#4#5% +\def\XINT_add_C #1#2#3#4#5% {% - \xint@w #2\xint@add@cz\W\XINT@add@CD {#5#4#3#2}{#1}%q + \xint_gob_til_w #2\xint_add_cz\W + \XINT_add_CD {#5#4#3#2}{#1}% }% -\def\XINT@add@CD #1% +\def\XINT_add_CD #1% {% - \expandafter\XINT@add@CC\the\numexpr 1+10#1\relax.% + \expandafter\XINT_add_CC\the\numexpr 1+10#1\relax.% }% -\def\xint@add@cz\W\XINT@add@CD #1#2{ 1#2}% -\def\XINT@addr@A #1#2#3#4#5#6% +\def\xint_add_cz\W\XINT_add_CD #1#2{ 1#2}% +\def\XINT_addr_A #1#2#3#4#5#6% {% - \xint@w #3\xint@addr@az\W\XINT@addr@B #1{#3#4#5#6}{#2}% + \xint_gob_til_w #3\xint_addr_az\W + \XINT_addr_B #1{#3#4#5#6}{#2}% }% -\def\xint@addr@az\W\XINT@addr@B #1#2% +\def\xint_addr_az\W\XINT_addr_B #1#2% {% - \XINT@addr@AC@checkcarry #1% + \XINT_addr_AC_checkcarry #1% }% -\def\XINT@addr@B #1#2#3#4\W\X\Y\Z #5#6#7#8% +\def\XINT_addr_B #1#2#3#4\W\X\Y\Z #5#6#7#8% {% - \xint@w #5\xint@addr@bz\W\XINT@addr@E #1#2{#8#7#6#5}{#3}#4\W\X\Y\Z + \xint_gob_til_w #5\xint_addr_bz\W + \XINT_addr_E #1#2{#8#7#6#5}{#3}#4\W\X\Y\Z }% -\def\XINT@addr@E #1#2#3#4#5#6% +\def\XINT_addr_E #1#2#3#4#5#6% {% - \expandafter\XINT@addr@ABEA\the\numexpr #1+10#5#4#3#2+#6\relax + \expandafter\XINT_addr_ABEA\the\numexpr #1+10#5#4#3#2+#6\relax }% -\def\XINT@addr@ABEA #1#2#3#4#5#6#7% +\def\XINT_addr_ABEA #1#2#3#4#5#6#7% {% - \XINT@addr@A #2{#7#6#5#4#3}% + \XINT_addr_A #2{#7#6#5#4#3}% }% -\def\xint@addr@bz\W\XINT@addr@E #1#2#3#4#5#6% +\def\xint_addr_bz\W\XINT_addr_E #1#2#3#4#5#6% {% - \expandafter\XINT@addr@CC\the\numexpr #1+10#5#4#3#2\relax + \expandafter\XINT_addr_CC\the\numexpr #1+10#5#4#3#2\relax }% -\def\XINT@addr@CC #1#2#3#4#5#6#7% +\def\XINT_addr_CC #1#2#3#4#5#6#7% {% - \XINT@addr@AC@checkcarry #2{#7#6#5#4#3}% + \XINT_addr_AC_checkcarry #2{#7#6#5#4#3}% }% -\def\XINT@addr@AC@checkcarry #1% +\def\XINT_addr_AC_checkcarry #1% {% - \xint@zero #1\xint@addr@AC@nocarry 0\XINT@addr@C + \xint_gob_til_zero #1\xint_addr_AC_nocarry 0\XINT_addr_C }% -\def\xint@addr@AC@nocarry 0\XINT@addr@C #1#2\W\X\Y\Z { #1#2}% -\def\XINT@addr@C #1#2#3#4#5% +\def\xint_addr_AC_nocarry 0\XINT_addr_C #1#2\W\X\Y\Z { #1#2}% +\def\XINT_addr_C #1#2#3#4#5% {% - \xint@w #2\xint@addr@cz\W\XINT@addr@D {#5#4#3#2}{#1}% + \xint_gob_til_w #2\xint_addr_cz\W + \XINT_addr_D {#5#4#3#2}{#1}% }% -\def\XINT@addr@D #1% +\def\XINT_addr_D #1% {% - \expandafter\XINT@addr@CC\the\numexpr 1+10#1\relax + \expandafter\XINT_addr_CC\the\numexpr 1+10#1\relax }% -\def\xint@addr@cz\W\XINT@addr@D #1#2{ #21000}% -\def\XINT@addm@A #1#2#3#4#5#6% +\def\xint_addr_cz\W\XINT_addr_D #1#2{ #21000}% +\def\XINT_addm_A #1#2#3#4#5#6% {% - \xint@w #3\xint@addm@az\W\XINT@addm@AB #1{#3#4#5#6}{#2}% + \xint_gob_til_w #3\xint_addm_az\W + \XINT_addm_AB #1{#3#4#5#6}{#2}% }% -\def\xint@addm@az\W\XINT@addm@AB #1#2% +\def\xint_addm_az\W\XINT_addm_AB #1#2% {% - \XINT@addm@AC@checkcarry #1% + \XINT_addm_AC_checkcarry #1% }% -\def\XINT@addm@AB #1#2#3#4\W\X\Y\Z #5#6#7#8% +\def\XINT_addm_AB #1#2#3#4\W\X\Y\Z #5#6#7#8% {% - \XINT@addm@ABE #1#2{#8#7#6#5}{#3}#4\W\X\Y\Z + \XINT_addm_ABE #1#2{#8#7#6#5}{#3}#4\W\X\Y\Z }% -\def\XINT@addm@ABE #1#2#3#4#5#6% +\def\XINT_addm_ABE #1#2#3#4#5#6% {% - \expandafter\XINT@addm@ABEA\the\numexpr #1+10#5#4#3#2+#6\relax.% + \expandafter\XINT_addm_ABEA\the\numexpr #1+10#5#4#3#2+#6\relax.% }% -\def\XINT@addm@ABEA #1#2#3.#4% +\def\XINT_addm_ABEA #1#2#3.#4% {% - \XINT@addm@A #2{#3#4}% + \XINT_addm_A #2{#3#4}% }% -\def\XINT@addm@AC@checkcarry #1% +\def\XINT_addm_AC_checkcarry #1% {% - \xint@zero #1\xint@addm@AC@nocarry 0\XINT@addm@C + \xint_gob_til_zero #1\xint_addm_AC_nocarry 0\XINT_addm_C }% -\def\xint@addm@AC@nocarry 0\XINT@addm@C #1#2\W\X\Y\Z +\def\xint_addm_AC_nocarry 0\XINT_addm_C #1#2\W\X\Y\Z {% \expandafter - \xint@cleanupzeros@andstop + \xint_cleanupzeros_andstop \romannumeral0% - \XINT@rord@main {}#2% - \xint@UNDEF - \xint@undef\xint@undef\xint@undef\xint@undef - \xint@undef\xint@undef\xint@undef\xint@undef - \xint@UNDEF + \XINT_rord_main {}#2% + \xint_relax + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_relax #1% }% -\def\XINT@addm@C #1#2#3#4#5% +\def\XINT_addm_C #1#2#3#4#5% {% - \xint@w - #5\xint@addm@cw - #4\xint@addm@cx - #3\xint@addm@cy - #2\xint@addm@cz - \W\XINT@addm@CD {#5#4#3#2}{#1}% + \xint_gob_til_w + #5\xint_addm_cw + #4\xint_addm_cx + #3\xint_addm_cy + #2\xint_addm_cz + \W\XINT_addm_CD {#5#4#3#2}{#1}% }% -\def\XINT@addm@CD #1% +\def\XINT_addm_CD #1% {% - \expandafter\XINT@addm@CC\the\numexpr 1+10#1\relax.% + \expandafter\XINT_addm_CC\the\numexpr 1+10#1\relax.% }% -\def\XINT@addm@CC #1#2#3.#4% +\def\XINT_addm_CC #1#2#3.#4% {% - \XINT@addm@AC@checkcarry #2{#3#4}% + \XINT_addm_AC_checkcarry #2{#3#4}% }% -\def\xint@addm@cw - #1\xint@addm@cx - #2\xint@addm@cy - #3\xint@addm@cz - \W\XINT@addm@CD +\def\xint_addm_cw + #1\xint_addm_cx + #2\xint_addm_cy + #3\xint_addm_cz + \W\XINT_addm_CD {% - \expandafter\XINT@addm@CDw\the\numexpr 1+#1#2#3\relax.% + \expandafter\XINT_addm_CDw\the\numexpr 1+#1#2#3\relax.% }% -\def\XINT@addm@CDw #1.#2#3\X\Y\Z +\def\XINT_addm_CDw #1.#2#3\X\Y\Z {% - \XINT@addm@end #1#3% + \XINT_addm_end #1#3% }% -\def\xint@addm@cx - #1\xint@addm@cy - #2\xint@addm@cz - \W\XINT@addm@CD +\def\xint_addm_cx + #1\xint_addm_cy + #2\xint_addm_cz + \W\XINT_addm_CD {% - \expandafter\XINT@addm@CDx\the\numexpr 1+#1#2\relax.% + \expandafter\XINT_addm_CDx\the\numexpr 1+#1#2\relax.% }% -\def\XINT@addm@CDx #1.#2#3\Y\Z +\def\XINT_addm_CDx #1.#2#3\Y\Z {% - \XINT@addm@end #1#3% + \XINT_addm_end #1#3% }% -\def\xint@addm@cy - #1\xint@addm@cz - \W\XINT@addm@CD +\def\xint_addm_cy + #1\xint_addm_cz + \W\XINT_addm_CD {% - \expandafter\XINT@addm@CDy\the\numexpr 1+#1\relax.% + \expandafter\XINT_addm_CDy\the\numexpr 1+#1\relax.% }% -\def\XINT@addm@CDy #1.#2#3\Z +\def\XINT_addm_CDy #1.#2#3\Z {% - \XINT@addm@end #1#3% + \XINT_addm_end #1#3% }% -\def\xint@addm@cz\W\XINT@addm@CD #1#2#3{\XINT@addm@end #1#3}% -\def\XINT@addm@end #1#2#3#4#5% +\def\xint_addm_cz\W\XINT_addm_CD #1#2#3{\XINT_addm_end #1#3}% +\def\XINT_addm_end #1#2#3#4#5% {\expandafter\space\the\numexpr #1#2#3#4#5\relax}% -\def\XINT@addp@A #1#2#3#4#5#6% +\def\XINT_addp_A #1#2#3#4#5#6% {% - \xint@w #3\xint@addp@az\W\XINT@addp@AB #1{#3#4#5#6}{#2}% + \xint_gob_til_w #3\xint_addp_az\W + \XINT_addp_AB #1{#3#4#5#6}{#2}% }% -\def\xint@addp@az\W\XINT@addp@AB #1#2% +\def\xint_addp_az\W\XINT_addp_AB #1#2% {% - \XINT@addp@AC@checkcarry #1% + \XINT_addp_AC_checkcarry #1% }% -\def\XINT@addp@AC@checkcarry #1% +\def\XINT_addp_AC_checkcarry #1% {% - \xint@zero #1\xint@addp@AC@nocarry 0\XINT@addp@C + \xint_gob_til_zero #1\xint_addp_AC_nocarry 0\XINT_addp_C }% -\def\xint@addp@AC@nocarry 0\XINT@addp@C +\def\xint_addp_AC_nocarry 0\XINT_addp_C {% - \XINT@addp@F + \XINT_addp_F }% -\def\XINT@addp@AB #1#2#3#4\W\X\Y\Z #5#6#7#8% +\def\XINT_addp_AB #1#2#3#4\W\X\Y\Z #5#6#7#8% {% - \XINT@addp@ABE #1#2{#8#7#6#5}{#3}#4\W\X\Y\Z + \XINT_addp_ABE #1#2{#8#7#6#5}{#3}#4\W\X\Y\Z }% -\def\XINT@addp@ABE #1#2#3#4#5#6% +\def\XINT_addp_ABE #1#2#3#4#5#6% {% - \expandafter\XINT@addp@ABEA\the\numexpr #1+10#5#4#3#2+#6\relax + \expandafter\XINT_addp_ABEA\the\numexpr #1+10#5#4#3#2+#6\relax }% -\def\XINT@addp@ABEA #1#2#3#4#5#6#7% +\def\XINT_addp_ABEA #1#2#3#4#5#6#7% {% - \XINT@addp@A #2{#7#6#5#4#3}%<-- attention on met donc \`a droite + \XINT_addp_A #2{#7#6#5#4#3}%<-- attention on met donc \`a droite }% -\def\XINT@addp@C #1#2#3#4#5% +\def\XINT_addp_C #1#2#3#4#5% {% - \xint@w - #5\xint@addp@cw - #4\xint@addp@cx - #3\xint@addp@cy - #2\xint@addp@cz - \W\XINT@addp@CD {#5#4#3#2}{#1}% + \xint_gob_til_w + #5\xint_addp_cw + #4\xint_addp_cx + #3\xint_addp_cy + #2\xint_addp_cz + \W\XINT_addp_CD {#5#4#3#2}{#1}% }% -\def\XINT@addp@CD #1% +\def\XINT_addp_CD #1% {% - \expandafter\XINT@addp@CC\the\numexpr 1+10#1\relax + \expandafter\XINT_addp_CC\the\numexpr 1+10#1\relax }% -\def\XINT@addp@CC #1#2#3#4#5#6#7% +\def\XINT_addp_CC #1#2#3#4#5#6#7% {% - \XINT@addp@AC@checkcarry #2{#7#6#5#4#3}% + \XINT_addp_AC_checkcarry #2{#7#6#5#4#3}% }% -\def\xint@addp@cw - #1\xint@addp@cx - #2\xint@addp@cy - #3\xint@addp@cz - \W\XINT@addp@CD +\def\xint_addp_cw + #1\xint_addp_cx + #2\xint_addp_cy + #3\xint_addp_cz + \W\XINT_addp_CD {% - \expandafter\XINT@addp@CDw\the\numexpr 1+10#1#2#3\relax + \expandafter\XINT_addp_CDw\the\numexpr 1+10#1#2#3\relax }% -\def\XINT@addp@CDw #1#2#3#4#5#6% +\def\XINT_addp_CDw #1#2#3#4#5#6% {% - \xint@quatrezeros #2#3#4#5\XINT@addp@endDw@zeros - 0000\XINT@addp@endDw #2#3#4#5% + \xint_gob_til_zeros_iv #2#3#4#5\XINT_addp_endDw_zeros + 0000\XINT_addp_endDw #2#3#4#5% }% -\def\XINT@addp@endDw@zeros 0000\XINT@addp@endDw 0000#1\X\Y\Z{ #1}% -\def\XINT@addp@endDw #1#2#3#4#5\X\Y\Z{ #5#4#3#2#1}% -\def\xint@addp@cx - #1\xint@addp@cy - #2\xint@addp@cz - \W\XINT@addp@CD +\def\XINT_addp_endDw_zeros 0000\XINT_addp_endDw 0000#1\X\Y\Z{ #1}% +\def\XINT_addp_endDw #1#2#3#4#5\X\Y\Z{ #5#4#3#2#1}% +\def\xint_addp_cx + #1\xint_addp_cy + #2\xint_addp_cz + \W\XINT_addp_CD {% - \expandafter\XINT@addp@CDx\the\numexpr 1+100#1#2\relax + \expandafter\XINT_addp_CDx\the\numexpr 1+100#1#2\relax }% -\def\XINT@addp@CDx #1#2#3#4#5#6% +\def\XINT_addp_CDx #1#2#3#4#5#6% {% - \xint@quatrezeros #2#3#4#5\XINT@addp@endDx@zeros - 0000\XINT@addp@endDx #2#3#4#5% + \xint_gob_til_zeros_iv #2#3#4#5\XINT_addp_endDx_zeros + 0000\XINT_addp_endDx #2#3#4#5% }% -\def\XINT@addp@endDx@zeros 0000\XINT@addp@endDx 0000#1\Y\Z{ #1}% -\def\XINT@addp@endDx #1#2#3#4#5\Y\Z{ #5#4#3#2#1}% -\def\xint@addp@cy - #1\xint@addp@cz - \W\XINT@addp@CD +\def\XINT_addp_endDx_zeros 0000\XINT_addp_endDx 0000#1\Y\Z{ #1}% +\def\XINT_addp_endDx #1#2#3#4#5\Y\Z{ #5#4#3#2#1}% +\def\xint_addp_cy + #1\xint_addp_cz + \W\XINT_addp_CD {% - \expandafter\XINT@addp@CDy\the\numexpr 1+1000#1\relax + \expandafter\XINT_addp_CDy\the\numexpr 1+1000#1\relax }% -\def\XINT@addp@CDy #1#2#3#4#5#6% +\def\XINT_addp_CDy #1#2#3#4#5#6% {% - \xint@quatrezeros #2#3#4#5\XINT@addp@endDy@zeros - 0000\XINT@addp@endDy #2#3#4#5% + \xint_gob_til_zeros_iv #2#3#4#5\XINT_addp_endDy_zeros + 0000\XINT_addp_endDy #2#3#4#5% }% -\def\XINT@addp@endDy@zeros 0000\XINT@addp@endDy 0000#1\Z{ #1}% -\def\XINT@addp@endDy #1#2#3#4#5\Z{ #5#4#3#2#1}% -\def\xint@addp@cz\W\XINT@addp@CD #1#2{ #21000}% -\def\XINT@addp@F #1#2#3#4#5% +\def\XINT_addp_endDy_zeros 0000\XINT_addp_endDy 0000#1\Z{ #1}% +\def\XINT_addp_endDy #1#2#3#4#5\Z{ #5#4#3#2#1}% +\def\xint_addp_cz\W\XINT_addp_CD #1#2{ #21000}% +\def\XINT_addp_F #1#2#3#4#5% {% - \xint@w - #5\xint@addp@Gw - #4\xint@addp@Gx - #3\xint@addp@Gy - #2\xint@addp@Gz - \W\XINT@addp@G {#2#3#4#5}{#1}% + \xint_gob_til_w + #5\xint_addp_Gw + #4\xint_addp_Gx + #3\xint_addp_Gy + #2\xint_addp_Gz + \W\XINT_addp_G {#2#3#4#5}{#1}% }% -\def\XINT@addp@G #1#2% +\def\XINT_addp_G #1#2% {% - \XINT@addp@F {#2#1}% + \XINT_addp_F {#2#1}% }% -\def\xint@addp@Gw - #1\xint@addp@Gx - #2\xint@addp@Gy - #3\xint@addp@Gz - \W\XINT@addp@G #4% +\def\xint_addp_Gw + #1\xint_addp_Gx + #2\xint_addp_Gy + #3\xint_addp_Gz + \W\XINT_addp_G #4% {% - \xint@quatrezeros #3#2#10\XINT@addp@endGw@zeros - 0000\XINT@addp@endGw #3#2#10% + \xint_gob_til_zeros_iv #3#2#10\XINT_addp_endGw_zeros + 0000\XINT_addp_endGw #3#2#10% }% -\def\XINT@addp@endGw@zeros 0000\XINT@addp@endGw 0000#1\X\Y\Z{ #1}% -\def\XINT@addp@endGw #1#2#3#4#5\X\Y\Z{ #5#1#2#3#4}% -\def\xint@addp@Gx - #1\xint@addp@Gy - #2\xint@addp@Gz - \W\XINT@addp@G #3% +\def\XINT_addp_endGw_zeros 0000\XINT_addp_endGw 0000#1\X\Y\Z{ #1}% +\def\XINT_addp_endGw #1#2#3#4#5\X\Y\Z{ #5#1#2#3#4}% +\def\xint_addp_Gx + #1\xint_addp_Gy + #2\xint_addp_Gz + \W\XINT_addp_G #3% {% - \xint@quatrezeros #2#100\XINT@addp@endGx@zeros - 0000\XINT@addp@endGx #2#100% + \xint_gob_til_zeros_iv #2#100\XINT_addp_endGx_zeros + 0000\XINT_addp_endGx #2#100% }% -\def\XINT@addp@endGx@zeros 0000\XINT@addp@endGx 0000#1\Y\Z{ #1}% -\def\XINT@addp@endGx #1#2#3#4#5\Y\Z{ #5#1#2#3#4}% -\def\xint@addp@Gy - #1\xint@addp@Gz - \W\XINT@addp@G #2% +\def\XINT_addp_endGx_zeros 0000\XINT_addp_endGx 0000#1\Y\Z{ #1}% +\def\XINT_addp_endGx #1#2#3#4#5\Y\Z{ #5#1#2#3#4}% +\def\xint_addp_Gy + #1\xint_addp_Gz + \W\XINT_addp_G #2% {% - \xint@quatrezeros #1000\XINT@addp@endGy@zeros - 0000\XINT@addp@endGy #1000% + \xint_gob_til_zeros_iv #1000\XINT_addp_endGy_zeros + 0000\XINT_addp_endGy #1000% }% -\def\XINT@addp@endGy@zeros 0000\XINT@addp@endGy 0000#1\Z{ #1}% -\def\XINT@addp@endGy #1#2#3#4#5\Z{ #5#1#2#3#4}% -\def\xint@addp@Gz\W\XINT@addp@G #1#2{ #2}% +\def\XINT_addp_endGy_zeros 0000\XINT_addp_endGy 0000#1\Z{ #1}% +\def\XINT_addp_endGy #1#2#3#4#5\Z{ #5#1#2#3#4}% +\def\xint_addp_Gz\W\XINT_addp_G #1#2{ #2}% \def\xintiAdd {\romannumeral0\xintiadd }% \def\xintiadd #1% {% - \expandafter\xint@add\expandafter{\romannumeral-`0#1}% + \expandafter\xint_add\expandafter{\romannumeral-`0#1}% }% \let\xintAdd\xintiAdd \let\xintadd\xintiadd -\def\xint@add #1#2% +\def\xint_add #1#2% {% - \expandafter\XINT@add@fork \romannumeral-`0#2\Z #1\Z + \expandafter\XINT_add_fork \romannumeral-`0#2\Z #1\Z }% -\def\XINT@Add #1#2{\romannumeral0\XINT@add@fork #2\Z #1\Z }% -\def\XINT@add #1#2{\XINT@add@fork #2\Z #1\Z }% -\def\XINT@add@fork #1#2\Z #3#4\Z +\def\XINT_Add #1#2{\romannumeral0\XINT_add_fork #2\Z #1\Z }% +\def\XINT_add #1#2{\XINT_add_fork #2\Z #1\Z }% +\def\XINT_add_fork #1#2\Z #3#4\Z {% - \xint@UDzerofork - #1\dummy \XINT@add@secondiszero - #3\dummy \XINT@add@firstiszero + \xint_UDzerofork + #1\dummy \XINT_add_secondiszero + #3\dummy \XINT_add_firstiszero 0\dummy - {\xint@UDsignsfork - #1#3\dummy \XINT@add@minusminus % #1 = #3 = - - #1-\dummy \XINT@add@minusplus % #1 = - - #3-\dummy \XINT@add@plusminus % #3 = - - --\dummy \XINT@add@plusplus - \xint@UDkrof }% - \xint@UDkrof + {\xint_UDsignsfork + #1#3\dummy \XINT_add_minusminus % #1 = #3 = - + #1-\dummy \XINT_add_minusplus % #1 = - + #3-\dummy \XINT_add_plusminus % #3 = - + --\dummy \XINT_add_plusplus + \krof }% + \krof {#2}{#4}#1#3% }% -\def\XINT@add@secondiszero #1#2#3#4{ #4#2}% -\def\XINT@add@firstiszero #1#2#3#4{ #3#1}% -\def\XINT@add@minusminus #1#2#3#4% +\def\XINT_add_secondiszero #1#2#3#4{ #4#2}% +\def\XINT_add_firstiszero #1#2#3#4{ #3#1}% +\def\XINT_add_minusminus #1#2#3#4% {% - \expandafter\xint@minus@andstop% - \romannumeral0\XINT@add@pre {#2}{#1}% + \expandafter\xint_minus_andstop% + \romannumeral0\XINT_add_pre {#2}{#1}% }% -\def\XINT@add@minusplus #1#2#3#4% +\def\XINT_add_minusplus #1#2#3#4% {% - \XINT@sub@pre {#4#2}{#1}% + \XINT_sub_pre {#4#2}{#1}% }% -\def\XINT@add@plusminus #1#2#3#4% +\def\XINT_add_plusminus #1#2#3#4% {% - \XINT@sub@pre {#3#1}{#2}% + \XINT_sub_pre {#3#1}{#2}% }% -\def\XINT@add@plusplus #1#2#3#4% +\def\XINT_add_plusplus #1#2#3#4% {% - \XINT@add@pre {#4#2}{#3#1}% + \XINT_add_pre {#4#2}{#3#1}% }% -\def\XINT@add@pre #1% +\def\XINT_add_pre #1% {% - \expandafter\XINT@add@@pre\expandafter - {\romannumeral0\XINT@RQ {}#1\R\R\R\R\R\R\R\R\Z }% + \expandafter\XINT_add__pre\expandafter + {\romannumeral0\XINT_RQ {}#1\R\R\R\R\R\R\R\R\Z }% }% -\def\XINT@add@@pre #1#2% +\def\XINT_add__pre #1#2% {% - \expandafter\XINT@add@A + \expandafter\XINT_add_A \expandafter0\expandafter{\expandafter}% - \romannumeral0\XINT@RQ {}#2\R\R\R\R\R\R\R\R\Z + \romannumeral0\XINT_RQ {}#2\R\R\R\R\R\R\R\R\Z \W\X\Y\Z #1\W\X\Y\Z }% \def\xintiSub {\romannumeral0\xintisub }% \def\xintisub #1% {% - \expandafter\xint@sub\expandafter{\romannumeral-`0#1}% + \expandafter\xint_sub\expandafter{\romannumeral-`0#1}% }% \let\xintSub\xintiSub \let\xintsub\xintisub -\def\xint@sub #1#2% -{% - \expandafter\XINT@sub@fork \romannumeral-`0#2\Z #1\Z -}% -\def\XINT@Sub #1#2{\romannumeral0\XINT@sub@fork #2\Z #1\Z }% -\def\XINT@sub #1#2{\XINT@sub@fork #2\Z #1\Z }% -\def\XINT@sub@fork #1#2\Z #3#4\Z -{% - \xint@UDsignsfork - #1#3\dummy \XINT@sub@minusminus - #1-\dummy \XINT@sub@minusplus % attention, #3=0 possible - #3-\dummy \XINT@sub@plusminus % attention, #1=0 possible - --\dummy {\xint@UDzerofork - #1\dummy \XINT@sub@secondiszero - #3\dummy \XINT@sub@firstiszero - 0\dummy \XINT@sub@plusplus - \xint@UDkrof }% - \xint@UDkrof +\def\xint_sub #1#2% +{% + \expandafter\XINT_sub_fork \romannumeral-`0#2\Z #1\Z +}% +\def\XINT_Sub #1#2{\romannumeral0\XINT_sub_fork #2\Z #1\Z }% +\def\XINT_sub #1#2{\XINT_sub_fork #2\Z #1\Z }% +\def\XINT_sub_fork #1#2\Z #3#4\Z +{% + \xint_UDsignsfork + #1#3\dummy \XINT_sub_minusminus + #1-\dummy \XINT_sub_minusplus % attention, #3=0 possible + #3-\dummy \XINT_sub_plusminus % attention, #1=0 possible + --\dummy {\xint_UDzerofork + #1\dummy \XINT_sub_secondiszero + #3\dummy \XINT_sub_firstiszero + 0\dummy \XINT_sub_plusplus + \krof }% + \krof {#2}{#4}#1#3% }% -\def\XINT@sub@secondiszero #1#2#3#4{ #4#2}% -\def\XINT@sub@firstiszero #1#2#3#4{ -#3#1}% -\def\XINT@sub@plusplus #1#2#3#4% +\def\XINT_sub_secondiszero #1#2#3#4{ #4#2}% +\def\XINT_sub_firstiszero #1#2#3#4{ -#3#1}% +\def\XINT_sub_plusplus #1#2#3#4% {% - \XINT@sub@pre {#4#2}{#3#1}% + \XINT_sub_pre {#4#2}{#3#1}% }% -\def\XINT@sub@minusminus #1#2#3#4% +\def\XINT_sub_minusminus #1#2#3#4% {% - \XINT@sub@pre {#1}{#2}% + \XINT_sub_pre {#1}{#2}% }% -\def\XINT@sub@minusplus #1#2#3#4% +\def\XINT_sub_minusplus #1#2#3#4% {% - \xint@zero #4\xint@sub@mp0\XINT@add@pre {#4#2}{#1}% + \xint_gob_til_zero #4\xint_sub_mp0\XINT_add_pre {#4#2}{#1}% }% -\def\xint@sub@mp0\XINT@add@pre #1#2{ #2}% -\def\XINT@sub@plusminus #1#2#3#4% +\def\xint_sub_mp0\XINT_add_pre #1#2{ #2}% +\def\XINT_sub_plusminus #1#2#3#4% {% - \xint@zero #3\xint@sub@pm0\expandafter\xint@minus@andstop% - \romannumeral0\XINT@add@pre {#2}{#3#1}% + \xint_gob_til_zero #3\xint_sub_pm0\expandafter\xint_minus_andstop% + \romannumeral0\XINT_add_pre {#2}{#3#1}% }% -\def\xint@sub@pm #1\XINT@add@pre #2#3{ -#2}% -\def\XINT@sub@pre #1% +\def\xint_sub_pm #1\XINT_add_pre #2#3{ -#2}% +\def\XINT_sub_pre #1% {% - \expandafter\XINT@sub@@pre\expandafter - {\romannumeral0\XINT@RQ {}#1\R\R\R\R\R\R\R\R\Z }% + \expandafter\XINT_sub__pre\expandafter + {\romannumeral0\XINT_RQ {}#1\R\R\R\R\R\R\R\R\Z }% }% -\def\XINT@sub@@pre #1#2% +\def\XINT_sub__pre #1#2% {% - \expandafter\XINT@sub@A + \expandafter\XINT_sub_A \expandafter1\expandafter{\expandafter}% - \romannumeral0\XINT@RQ {}#2\R\R\R\R\R\R\R\R\Z + \romannumeral0\XINT_RQ {}#2\R\R\R\R\R\R\R\R\Z \W\X\Y\Z #1 \W\X\Y\Z }% -\def\XINT@sub@A #1#2#3\W\X\Y\Z #4#5#6#7% +\def\XINT_sub_A #1#2#3\W\X\Y\Z #4#5#6#7% {% - \xint@w - #4\xint@sub@az - \W\XINT@sub@B #1{#4#5#6#7}{#2}#3\W\X\Y\Z + \xint_gob_til_w + #4\xint_sub_az + \W\XINT_sub_B #1{#4#5#6#7}{#2}#3\W\X\Y\Z }% -\def\XINT@sub@B #1#2#3#4#5#6#7% +\def\XINT_sub_B #1#2#3#4#5#6#7% {% - \xint@w - #4\xint@sub@bz - \W\XINT@sub@onestep #1#2{#7#6#5#4}{#3}% + \xint_gob_til_w + #4\xint_sub_bz + \W\XINT_sub_onestep #1#2{#7#6#5#4}{#3}% }% -\def\XINT@sub@onestep #1#2#3#4#5#6% +\def\XINT_sub_onestep #1#2#3#4#5#6% {% - \expandafter\XINT@sub@backtoA\the\numexpr 11#5#4#3#2-#6+#1-1\relax.% + \expandafter\XINT_sub_backtoA\the\numexpr 11#5#4#3#2-#6+#1-1\relax.% }% -\def\XINT@sub@backtoA #1#2#3.#4% +\def\XINT_sub_backtoA #1#2#3.#4% {% - \XINT@sub@A #2{#3#4}% + \XINT_sub_A #2{#3#4}% }% -\def\xint@sub@bz - \W\XINT@sub@onestep #1#2#3#4#5#6#7% +\def\xint_sub_bz + \W\XINT_sub_onestep #1#2#3#4#5#6#7% {% - \xint@UDzerofork - #1\dummy \XINT@sub@C % une retenue - 0\dummy \XINT@sub@D % pas de retenue - \xint@UDkrof + \xint_UDzerofork + #1\dummy \XINT_sub_C % une retenue + 0\dummy \XINT_sub_D % pas de retenue + \krof {#7}#2#3#4#5% }% -\def\XINT@sub@D #1#2\W\X\Y\Z +\def\XINT_sub_D #1#2\W\X\Y\Z {% \expandafter - \xint@cleanupzeros@andstop + \xint_cleanupzeros_andstop \romannumeral0% - \XINT@rord@main {}#2% - \xint@UNDEF - \xint@undef\xint@undef\xint@undef\xint@undef - \xint@undef\xint@undef\xint@undef\xint@undef - \xint@UNDEF + \XINT_rord_main {}#2% + \xint_relax + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_relax #1% }% -\def\XINT@sub@C #1#2#3#4#5% +\def\XINT_sub_C #1#2#3#4#5% {% - \xint@w - #2\xint@sub@cz - \W\XINT@sub@AC@onestep {#5#4#3#2}{#1}% + \xint_gob_til_w + #2\xint_sub_cz + \W\XINT_sub_AC_onestep {#5#4#3#2}{#1}% }% -\def\XINT@sub@AC@onestep #1% +\def\XINT_sub_AC_onestep #1% {% - \expandafter\XINT@sub@backtoC\the\numexpr 11#1-1\relax.% + \expandafter\XINT_sub_backtoC\the\numexpr 11#1-1\relax.% }% -\def\XINT@sub@backtoC #1#2#3.#4% +\def\XINT_sub_backtoC #1#2#3.#4% {% - \XINT@sub@AC@checkcarry #2{#3#4}% la retenue va \^etre examin\'ee + \XINT_sub_AC_checkcarry #2{#3#4}% la retenue va \^etre examin\'ee }% -\def\XINT@sub@AC@checkcarry #1% +\def\XINT_sub_AC_checkcarry #1% {% - \xint@one #1\xint@sub@AC@nocarry 1\XINT@sub@C + \xint_gob_til_one #1\xint_sub_AC_nocarry 1\XINT_sub_C }% -\def\xint@sub@AC@nocarry 1\XINT@sub@C #1#2\W\X\Y\Z +\def\xint_sub_AC_nocarry 1\XINT_sub_C #1#2\W\X\Y\Z {% \expandafter - \XINT@cuz@loop + \XINT_cuz_loop \romannumeral0% - \XINT@rord@main {}#2% - \xint@UNDEF - \xint@undef\xint@undef\xint@undef\xint@undef - \xint@undef\xint@undef\xint@undef\xint@undef - \xint@UNDEF + \XINT_rord_main {}#2% + \xint_relax + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_relax #1\W\W\W\W\W\W\W\Z }% -\def\xint@sub@cz\W\XINT@sub@AC@onestep #1% +\def\xint_sub_cz\W\XINT_sub_AC_onestep #1% {% - \XINT@cuz + \XINT_cuz }% -\def\xint@sub@az\W\XINT@sub@B #1#2#3#4#5#6#7% +\def\xint_sub_az\W\XINT_sub_B #1#2#3#4#5#6#7% {% - \xint@w - #4\xint@sub@ez - \W\XINT@sub@Eenter #1{#3}#4#5#6#7% + \xint_gob_til_w + #4\xint_sub_ez + \W\XINT_sub_Eenter #1{#3}#4#5#6#7% }% -\def\XINT@sub@Eenter #1#2% +\def\XINT_sub_Eenter #1#2% {% \expandafter - \XINT@sub@E\expandafter1\expandafter{\expandafter}% + \XINT_sub_E\expandafter1\expandafter{\expandafter}% \romannumeral0% - \XINT@rord@main {}#2% - \xint@UNDEF - \xint@undef\xint@undef\xint@undef\xint@undef - \xint@undef\xint@undef\xint@undef\xint@undef - \xint@UNDEF + \XINT_rord_main {}#2% + \xint_relax + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_relax \W\X\Y\Z #1% }% -\def\XINT@sub@E #1#2#3#4#5#6% +\def\XINT_sub_E #1#2#3#4#5#6% {% - \xint@w #3\xint@sub@F\W\XINT@sub@Eonestep #1{#6#5#4#3}{#2}% + \xint_gob_til_w #3\xint_sub_F\W + \XINT_sub_Eonestep #1{#6#5#4#3}{#2}% }% -\def\XINT@sub@Eonestep #1#2% +\def\XINT_sub_Eonestep #1#2% {% - \expandafter\XINT@sub@backtoE\the\numexpr 109999-#2+#1\relax.% + \expandafter\XINT_sub_backtoE\the\numexpr 109999-#2+#1\relax.% }% -\def\XINT@sub@backtoE #1#2#3.#4% +\def\XINT_sub_backtoE #1#2#3.#4% {% - \XINT@sub@E #2{#3#4}% + \XINT_sub_E #2{#3#4}% }% -\def\xint@sub@F\W\XINT@sub@Eonestep #1#2#3#4% +\def\xint_sub_F\W\XINT_sub_Eonestep #1#2#3#4% {% - \xint@UDonezerofork - #4#1\dummy {\XINT@sub@Fdec 0}% soustraire 1. Et faire signe - - #1#4\dummy {\XINT@sub@Finc 1}% additionner 1. Et faire signe - - 10\dummy \XINT@sub@DD % terminer. Mais avec signe - - \xint@UDkrof + \xint_UDonezerofork + #4#1\dummy {\XINT_sub_Fdec 0}% soustraire 1. Et faire signe - + #1#4\dummy {\XINT_sub_Finc 1}% additionner 1. Et faire signe - + 10\dummy \XINT_sub_DD % terminer. Mais avec signe - + \krof {#3}% }% -\def\XINT@sub@DD {\expandafter\xint@minus@andstop\romannumeral0\XINT@sub@D }% -\def\XINT@sub@Fdec #1#2#3#4#5#6% +\def\XINT_sub_DD {\expandafter\xint_minus_andstop\romannumeral0\XINT_sub_D }% +\def\XINT_sub_Fdec #1#2#3#4#5#6% {% - \xint@w #3\xint@sub@Fdec@finish\W - \XINT@sub@Fdec@onestep #1{#6#5#4#3}{#2}% + \xint_gob_til_w #3\xint_sub_Fdec_finish\W + \XINT_sub_Fdec_onestep #1{#6#5#4#3}{#2}% }% -\def\XINT@sub@Fdec@onestep #1#2% +\def\XINT_sub_Fdec_onestep #1#2% {% - \expandafter\XINT@sub@backtoFdec\the\numexpr 11#2+#1-1\relax.% + \expandafter\XINT_sub_backtoFdec\the\numexpr 11#2+#1-1\relax.% }% -\def\XINT@sub@backtoFdec #1#2#3.#4% +\def\XINT_sub_backtoFdec #1#2#3.#4% {% - \XINT@sub@Fdec #2{#3#4}% + \XINT_sub_Fdec #2{#3#4}% }% -\def\xint@sub@Fdec@finish\W\XINT@sub@Fdec@onestep #1#2% +\def\xint_sub_Fdec_finish\W\XINT_sub_Fdec_onestep #1#2% {% - \expandafter\xint@minus@andstop\romannumeral0\XINT@cuz + \expandafter\xint_minus_andstop\romannumeral0\XINT_cuz }% -\def\XINT@sub@Finc #1#2#3#4#5#6% +\def\XINT_sub_Finc #1#2#3#4#5#6% {% - \xint@w #3\xint@sub@Finc@finish\W - \XINT@sub@Finc@onestep #1{#6#5#4#3}{#2}% + \xint_gob_til_w #3\xint_sub_Finc_finish\W + \XINT_sub_Finc_onestep #1{#6#5#4#3}{#2}% }% -\def\XINT@sub@Finc@onestep #1#2% +\def\XINT_sub_Finc_onestep #1#2% {% - \expandafter\XINT@sub@backtoFinc\the\numexpr 10#2+#1\relax.% + \expandafter\XINT_sub_backtoFinc\the\numexpr 10#2+#1\relax.% }% -\def\XINT@sub@backtoFinc #1#2#3.#4% +\def\XINT_sub_backtoFinc #1#2#3.#4% {% - \XINT@sub@Finc #2{#3#4}% + \XINT_sub_Finc #2{#3#4}% }% -\def\xint@sub@Finc@finish\W\XINT@sub@Finc@onestep #1#2#3% +\def\xint_sub_Finc_finish\W\XINT_sub_Finc_onestep #1#2#3% {% - \xint@UDzerofork - #1\dummy {\expandafter\xint@minus@andstop\xint@cleanupzeros@nospace}% + \xint_UDzerofork + #1\dummy {\expandafter\xint_minus_andstop\xint_cleanupzeros_nospace}% 0\dummy { -1}% - \xint@UDkrof + \krof #3% }% -\def\xint@sub@ez\W\XINT@sub@Eenter #1% +\def\xint_sub_ez\W\XINT_sub_Eenter #1% {% - \xint@UDzerofork - #1\dummy \XINT@sub@K % il y a une retenue - 0\dummy \XINT@sub@L % pas de retenue - \xint@UDkrof + \xint_UDzerofork + #1\dummy \XINT_sub_K % il y a une retenue + 0\dummy \XINT_sub_L % pas de retenue + \krof }% -\def\XINT@sub@L #1\W\X\Y\Z {\XINT@cuz@loop #1\W\W\W\W\W\W\W\Z }% -\def\XINT@sub@K #1% +\def\XINT_sub_L #1\W\X\Y\Z {\XINT_cuz_loop #1\W\W\W\W\W\W\W\Z }% +\def\XINT_sub_K #1% {% \expandafter - \XINT@sub@KK\expandafter1\expandafter{\expandafter}% + \XINT_sub_KK\expandafter1\expandafter{\expandafter}% \romannumeral0% - \XINT@rord@main {}#1% - \xint@UNDEF - \xint@undef\xint@undef\xint@undef\xint@undef - \xint@undef\xint@undef\xint@undef\xint@undef - \xint@UNDEF + \XINT_rord_main {}#1% + \xint_relax + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_relax }% -\def\XINT@sub@KK #1#2#3#4#5#6% +\def\XINT_sub_KK #1#2#3#4#5#6% {% - \xint@w #3\xint@sub@KK@finish\W - \XINT@sub@KK@onestep #1{#6#5#4#3}{#2}% + \xint_gob_til_w #3\xint_sub_KK_finish\W + \XINT_sub_KK_onestep #1{#6#5#4#3}{#2}% }% -\def\XINT@sub@KK@onestep #1#2% +\def\XINT_sub_KK_onestep #1#2% {% - \expandafter\XINT@sub@backtoKK\the\numexpr 109999-#2+#1\relax.% + \expandafter\XINT_sub_backtoKK\the\numexpr 109999-#2+#1\relax.% }% -\def\XINT@sub@backtoKK #1#2#3.#4% +\def\XINT_sub_backtoKK #1#2#3.#4% {% - \XINT@sub@KK #2{#3#4}% + \XINT_sub_KK #2{#3#4}% }% -\def\xint@sub@KK@finish\W\XINT@sub@KK@onestep #1#2#3% +\def\xint_sub_KK_finish\W\XINT_sub_KK_onestep #1#2#3% {% - \expandafter\xint@minus@andstop - \romannumeral0\XINT@cuz@loop #3\W\W\W\W\W\W\W\Z + \expandafter\xint_minus_andstop + \romannumeral0\XINT_cuz_loop #3\W\W\W\W\W\W\W\Z }% \def\xintiCmp {\romannumeral0\xinticmp }% \def\xinticmp #1% {% - \expandafter\xint@cmp\expandafter{\romannumeral-`0#1}% + \expandafter\xint_cmp\expandafter{\romannumeral-`0#1}% }% \let\xintCmp\xintiCmp \let\xintcmp\xinticmp -\def\xint@cmp #1#2% -{% - \expandafter\XINT@cmp@fork \romannumeral-`0#2\Z #1\Z -}% -\def\XINT@Cmp #1#2{\romannumeral0\XINT@cmp@fork #2\Z #1\Z }% -\def\XINT@cmp@fork #1#2\Z #3#4\Z -{% - \xint@UDsignsfork - #1#3\dummy \XINT@cmp@minusminus - #1-\dummy \XINT@cmp@minusplus - #3-\dummy \XINT@cmp@plusminus - --\dummy {\xint@UDzerosfork - #1#3\dummy \XINT@cmp@zerozero - #10\dummy \XINT@cmp@zeroplus - #30\dummy \XINT@cmp@pluszero - 00\dummy \XINT@cmp@plusplus - \xint@UDkrof }% - \xint@UDkrof +\def\xint_cmp #1#2% +{% + \expandafter\XINT_cmp_fork \romannumeral-`0#2\Z #1\Z +}% +\def\XINT_Cmp #1#2{\romannumeral0\XINT_cmp_fork #2\Z #1\Z }% +\def\XINT_cmp_fork #1#2\Z #3#4\Z +{% + \xint_UDsignsfork + #1#3\dummy \XINT_cmp_minusminus + #1-\dummy \XINT_cmp_minusplus + #3-\dummy \XINT_cmp_plusminus + --\dummy {\xint_UDzerosfork + #1#3\dummy \XINT_cmp_zerozero + #10\dummy \XINT_cmp_zeroplus + #30\dummy \XINT_cmp_pluszero + 00\dummy \XINT_cmp_plusplus + \krof }% + \krof {#2}{#4}#1#3% }% -\def\XINT@cmp@minusplus #1#2#3#4{ 1}% -\def\XINT@cmp@plusminus #1#2#3#4{ -1}% -\def\XINT@cmp@zerozero #1#2#3#4{ 0}% -\def\XINT@cmp@zeroplus #1#2#3#4{ 1}% -\def\XINT@cmp@pluszero #1#2#3#4{ -1}% -\def\XINT@cmp@plusplus #1#2#3#4% +\def\XINT_cmp_minusplus #1#2#3#4{ 1}% +\def\XINT_cmp_plusminus #1#2#3#4{ -1}% +\def\XINT_cmp_zerozero #1#2#3#4{ 0}% +\def\XINT_cmp_zeroplus #1#2#3#4{ 1}% +\def\XINT_cmp_pluszero #1#2#3#4{ -1}% +\def\XINT_cmp_plusplus #1#2#3#4% {% - \XINT@cmp@pre {#4#2}{#3#1}% + \XINT_cmp_pre {#4#2}{#3#1}% }% -\def\XINT@cmp@minusminus #1#2#3#4% +\def\XINT_cmp_minusminus #1#2#3#4% {% - \XINT@cmp@pre {#1}{#2}% + \XINT_cmp_pre {#1}{#2}% }% -\def\XINT@cmp@pre #1% +\def\XINT_cmp_pre #1% {% - \expandafter\XINT@cmp@@pre\expandafter - {\romannumeral0\XINT@RQ {}#1\R\R\R\R\R\R\R\R\Z }% + \expandafter\XINT_cmp__pre\expandafter + {\romannumeral0\XINT_RQ {}#1\R\R\R\R\R\R\R\R\Z }% }% -\def\XINT@cmp@@pre #1#2% +\def\XINT_cmp__pre #1#2% {% - \expandafter\XINT@cmp@A + \expandafter\XINT_cmp_A \expandafter1\expandafter{\expandafter}% - \romannumeral0\XINT@RQ {}#2\R\R\R\R\R\R\R\R\Z + \romannumeral0\XINT_RQ {}#2\R\R\R\R\R\R\R\R\Z \W\X\Y\Z #1\W\X\Y\Z }% -\def\XINT@cmp@A #1#2#3\W\X\Y\Z #4#5#6#7% +\def\XINT_cmp_A #1#2#3\W\X\Y\Z #4#5#6#7% {% - \xint@w #4\xint@cmp@az\W\XINT@cmp@B #1{#4#5#6#7}{#2}#3\W\X\Y\Z + \xint_gob_til_w #4\xint_cmp_az\W + \XINT_cmp_B #1{#4#5#6#7}{#2}#3\W\X\Y\Z }% -\def\XINT@cmp@B #1#2#3#4#5#6#7% +\def\XINT_cmp_B #1#2#3#4#5#6#7% {% - \xint@w#4\xint@cmp@bz\W\XINT@cmp@onestep #1#2{#7#6#5#4}{#3}% + \xint_gob_til_w#4\xint_cmp_bz\W + \XINT_cmp_onestep #1#2{#7#6#5#4}{#3}% }% -\def\XINT@cmp@onestep #1#2#3#4#5#6% +\def\XINT_cmp_onestep #1#2#3#4#5#6% {% - \expandafter\XINT@cmp@backtoA\the\numexpr 11#5#4#3#2-#6+#1-1\relax.% + \expandafter\XINT_cmp_backtoA\the\numexpr 11#5#4#3#2-#6+#1-1\relax.% }% -\def\XINT@cmp@backtoA #1#2#3.#4% +\def\XINT_cmp_backtoA #1#2#3.#4% {% - \XINT@cmp@A #2{#3#4}% + \XINT_cmp_A #2{#3#4}% }% -\def\xint@cmp@bz\W\XINT@cmp@onestep #1\Z { 1}% -\def\xint@cmp@az\W\XINT@cmp@B #1#2#3#4#5#6#7% +\def\xint_cmp_bz\W\XINT_cmp_onestep #1\Z { 1}% +\def\xint_cmp_az\W\XINT_cmp_B #1#2#3#4#5#6#7% {% - \xint@w #4\xint@cmp@ez\W\XINT@cmp@Eenter #1{#3}#4#5#6#7% + \xint_gob_til_w #4\xint_cmp_ez\W + \XINT_cmp_Eenter #1{#3}#4#5#6#7% }% -\def\XINT@cmp@Eenter #1\Z { -1}% -\def\xint@cmp@ez\W\XINT@cmp@Eenter #1% +\def\XINT_cmp_Eenter #1\Z { -1}% +\def\xint_cmp_ez\W\XINT_cmp_Eenter #1% {% - \xint@UDzerofork - #1\dummy \XINT@cmp@K % il y a une retenue - 0\dummy \XINT@cmp@L % pas de retenue - \xint@UDkrof + \xint_UDzerofork + #1\dummy \XINT_cmp_K % il y a une retenue + 0\dummy \XINT_cmp_L % pas de retenue + \krof }% -\def\XINT@cmp@K #1\Z { -1}% -\def\XINT@cmp@L #1{\XINT@OneIfPositive@main #1}% -\def\XINT@OneIfPositive #1% +\def\XINT_cmp_K #1\Z { -1}% +\def\XINT_cmp_L #1{\XINT_OneIfPositive_main #1}% +\def\XINT_OneIfPositive #1% {% - \XINT@OneIfPositive@main #1\W\X\Y\Z% + \XINT_OneIfPositive_main #1\W\X\Y\Z% }% -\def\XINT@OneIfPositive@main #1#2#3#4% +\def\XINT_OneIfPositive_main #1#2#3#4% {% - \xint@z #4\xint@OneIfPositive@terminated\Z - \XINT@OneIfPositive@onestep #1#2#3#4% + \xint_gob_til_z #4\xint_OneIfPositive_terminated\Z + \XINT_OneIfPositive_onestep #1#2#3#4% }% -\def\xint@OneIfPositive@terminated\Z\XINT@OneIfPositive@onestep\W\X\Y\Z { 0}% -\def\XINT@OneIfPositive@onestep #1#2#3#4% +\def\xint_OneIfPositive_terminated\Z\XINT_OneIfPositive_onestep\W\X\Y\Z { 0}% +\def\XINT_OneIfPositive_onestep #1#2#3#4% {% - \expandafter\XINT@OneIfPositive@check\the\numexpr #1#2#3#4\relax + \expandafter\XINT_OneIfPositive_check\the\numexpr #1#2#3#4\relax }% -\def\XINT@OneIfPositive@check #1% +\def\XINT_OneIfPositive_check #1% {% - \xint@zero #1\xint@OneIfPositive@backtomain 0% - \XINT@OneIfPositive@finish #1% + \xint_gob_til_zero #1\xint_OneIfPositive_backtomain 0% + \XINT_OneIfPositive_finish #1% }% -\def\XINT@OneIfPositive@finish #1\W\X\Y\Z{ 1}% -\def\xint@OneIfPositive@backtomain 0\XINT@OneIfPositive@finish 0% - {\XINT@OneIfPositive@main }% +\def\XINT_OneIfPositive_finish #1\W\X\Y\Z{ 1}% +\def\xint_OneIfPositive_backtomain 0\XINT_OneIfPositive_finish 0% + {\XINT_OneIfPositive_main }% \def\xintiGeq {\romannumeral0\xintigeq }% \def\xintigeq #1% {% - \expandafter\xint@geq\expandafter {\romannumeral-`0#1}% + \expandafter\xint_geq\expandafter {\romannumeral-`0#1}% }% \let\xintGeq\xintiGeq \let\xintgeq\xintigeq -\def\xint@geq #1#2% -{% - \expandafter\XINT@geq@fork \romannumeral-`0#2\Z #1\Z -}% -\def\XINT@Geq #1#2{\romannumeral0\XINT@geq@fork #2\Z #1\Z }% -\def\XINT@geq@fork #1#2\Z #3#4\Z -{% - \xint@UDzerofork - #1\dummy \XINT@geq@secondiszero % |#1#2|=0 - #3\dummy \XINT@geq@firstiszero % |#1#2|>0 - 0\dummy {\xint@UDsignsfork - #1#3\dummy \XINT@geq@minusminus - #1-\dummy \XINT@geq@minusplus - #3-\dummy \XINT@geq@plusminus - --\dummy \XINT@geq@plusplus - \xint@UDkrof }% - \xint@UDkrof +\def\xint_geq #1#2% +{% + \expandafter\XINT_geq_fork \romannumeral-`0#2\Z #1\Z +}% +\def\XINT_Geq #1#2{\romannumeral0\XINT_geq_fork #2\Z #1\Z }% +\def\XINT_geq_fork #1#2\Z #3#4\Z +{% + \xint_UDzerofork + #1\dummy \XINT_geq_secondiszero % |#1#2|=0 + #3\dummy \XINT_geq_firstiszero % |#1#2|>0 + 0\dummy {\xint_UDsignsfork + #1#3\dummy \XINT_geq_minusminus + #1-\dummy \XINT_geq_minusplus + #3-\dummy \XINT_geq_plusminus + --\dummy \XINT_geq_plusplus + \krof }% + \krof {#2}{#4}#1#3% }% -\def\XINT@geq@secondiszero #1#2#3#4{ 1}% -\def\XINT@geq@firstiszero #1#2#3#4{ 0}% -\def\XINT@geq@plusplus #1#2#3#4{\XINT@geq@pre {#4#2}{#3#1}}% -\def\XINT@geq@minusminus #1#2#3#4{\XINT@geq@pre {#2}{#1}}% -\def\XINT@geq@minusplus #1#2#3#4{\XINT@geq@pre {#4#2}{#1}}% -\def\XINT@geq@plusminus #1#2#3#4{\XINT@geq@pre {#2}{#3#1}}% -\def\XINT@geq@pre #1% +\def\XINT_geq_secondiszero #1#2#3#4{ 1}% +\def\XINT_geq_firstiszero #1#2#3#4{ 0}% +\def\XINT_geq_plusplus #1#2#3#4{\XINT_geq_pre {#4#2}{#3#1}}% +\def\XINT_geq_minusminus #1#2#3#4{\XINT_geq_pre {#2}{#1}}% +\def\XINT_geq_minusplus #1#2#3#4{\XINT_geq_pre {#4#2}{#1}}% +\def\XINT_geq_plusminus #1#2#3#4{\XINT_geq_pre {#2}{#3#1}}% +\def\XINT_geq_pre #1% {% - \expandafter\XINT@geq@@pre\expandafter - {\romannumeral0\XINT@RQ {}#1\R\R\R\R\R\R\R\R\Z }% + \expandafter\XINT_geq__pre\expandafter + {\romannumeral0\XINT_RQ {}#1\R\R\R\R\R\R\R\R\Z }% }% -\def\XINT@geq@@pre #1#2% +\def\XINT_geq__pre #1#2% {% - \expandafter\XINT@geq@A + \expandafter\XINT_geq_A \expandafter1\expandafter{\expandafter}% - \romannumeral0\XINT@RQ {}#2\R\R\R\R\R\R\R\R\Z + \romannumeral0\XINT_RQ {}#2\R\R\R\R\R\R\R\R\Z \W\X\Y\Z #1 \W\X\Y\Z }% -\def\XINT@geq@A #1#2#3\W\X\Y\Z #4#5#6#7% +\def\XINT_geq_A #1#2#3\W\X\Y\Z #4#5#6#7% {% - \xint@w #4\xint@geq@az\W\XINT@geq@B #1{#4#5#6#7}{#2}#3\W\X\Y\Z + \xint_gob_til_w #4\xint_geq_az\W + \XINT_geq_B #1{#4#5#6#7}{#2}#3\W\X\Y\Z }% -\def\XINT@geq@B #1#2#3#4#5#6#7% +\def\XINT_geq_B #1#2#3#4#5#6#7% {% - \xint@w #4\xint@geq@bz\W\XINT@geq@onestep #1#2{#7#6#5#4}{#3}% + \xint_gob_til_w #4\xint_geq_bz\W + \XINT_geq_onestep #1#2{#7#6#5#4}{#3}% }% -\def\XINT@geq@onestep #1#2#3#4#5#6% +\def\XINT_geq_onestep #1#2#3#4#5#6% {% - \expandafter\XINT@geq@backtoA\the\numexpr 11#5#4#3#2-#6+#1-1\relax.% + \expandafter\XINT_geq_backtoA\the\numexpr 11#5#4#3#2-#6+#1-1\relax.% }% -\def\XINT@geq@backtoA #1#2#3.#4% +\def\XINT_geq_backtoA #1#2#3.#4% {% - \XINT@geq@A #2{#3#4}% + \XINT_geq_A #2{#3#4}% }% -\def\xint@geq@bz\W\XINT@geq@onestep #1\W\X\Y\Z { 1}% -\def\xint@geq@az\W\XINT@geq@B #1#2#3#4#5#6#7% +\def\xint_geq_bz\W\XINT_geq_onestep #1\W\X\Y\Z { 1}% +\def\xint_geq_az\W\XINT_geq_B #1#2#3#4#5#6#7% {% - \xint@w #4\xint@geq@ez\W\XINT@geq@Eenter #1% + \xint_gob_til_w #4\xint_geq_ez\W + \XINT_geq_Eenter #1% }% -\def\XINT@geq@Eenter #1\W\X\Y\Z { 0}% -\def\xint@geq@ez\W\XINT@geq@Eenter #1% +\def\XINT_geq_Eenter #1\W\X\Y\Z { 0}% +\def\xint_geq_ez\W\XINT_geq_Eenter #1% {% - \xint@UDzerofork + \xint_UDzerofork #1\dummy { 0} % il y a une retenue 0\dummy { 1} % pas de retenue - \xint@UDkrof + \krof }% \def\xintiMax {\romannumeral0\xintimax }% \def\xintimax #1% {% - \expandafter\xint@max\expandafter {\romannumeral-`0#1}% + \expandafter\xint_max\expandafter {\romannumeral-`0#1}% }% \let\xintMax\xintiMax \let\xintmax\xintimax -\def\xint@max #1#2% -{% - \expandafter\XINT@max@pre\expandafter {\romannumeral-`0#2}{#1}% -}% -\def\XINT@max@pre #1#2{\XINT@max@fork #1\Z #2\Z {#2}{#1}}% -\def\XINT@Max #1#2{\romannumeral0\XINT@max@fork #2\Z #1\Z {#1}{#2}}% -\def\XINT@max@fork #1#2\Z #3#4\Z -{% - \xint@UDsignsfork - #1#3\dummy \XINT@max@minusminus % A < 0, B < 0 - #1-\dummy \XINT@max@minusplus % B < 0, A >= 0 - #3-\dummy \XINT@max@plusminus % A < 0, B >= 0 - --\dummy {\xint@UDzerosfork - #1#3\dummy \XINT@max@zerozero % A = B = 0 - #10\dummy \XINT@max@zeroplus % B = 0, A > 0 - #30\dummy \XINT@max@pluszero % A = 0, B > 0 - 00\dummy \XINT@max@plusplus % A, B > 0 - \xint@UDkrof }% - \xint@UDkrof +\def\xint_max #1#2% +{% + \expandafter\XINT_max_pre\expandafter {\romannumeral-`0#2}{#1}% +}% +\def\XINT_max_pre #1#2{\XINT_max_fork #1\Z #2\Z {#2}{#1}}% +\def\XINT_Max #1#2{\romannumeral0\XINT_max_fork #2\Z #1\Z {#1}{#2}}% +\def\XINT_max_fork #1#2\Z #3#4\Z +{% + \xint_UDsignsfork + #1#3\dummy \XINT_max_minusminus % A < 0, B < 0 + #1-\dummy \XINT_max_minusplus % B < 0, A >= 0 + #3-\dummy \XINT_max_plusminus % A < 0, B >= 0 + --\dummy {\xint_UDzerosfork + #1#3\dummy \XINT_max_zerozero % A = B = 0 + #10\dummy \XINT_max_zeroplus % B = 0, A > 0 + #30\dummy \XINT_max_pluszero % A = 0, B > 0 + 00\dummy \XINT_max_plusplus % A, B > 0 + \krof }% + \krof {#2}{#4}#1#3% }% -\def\XINT@max@zerozero #1#2#3#4{\xint@firstoftwo@andstop }% -\def\XINT@max@zeroplus #1#2#3#4{\xint@firstoftwo@andstop }% -\def\XINT@max@pluszero #1#2#3#4{\xint@secondoftwo@andstop }% -\def\XINT@max@minusplus #1#2#3#4{\xint@firstoftwo@andstop }% -\def\XINT@max@plusminus #1#2#3#4{\xint@secondoftwo@andstop }% -\def\XINT@max@plusplus #1#2#3#4% +\def\XINT_max_zerozero #1#2#3#4{\xint_firstoftwo_andstop }% +\def\XINT_max_zeroplus #1#2#3#4{\xint_firstoftwo_andstop }% +\def\XINT_max_pluszero #1#2#3#4{\xint_secondoftwo_andstop }% +\def\XINT_max_minusplus #1#2#3#4{\xint_firstoftwo_andstop }% +\def\XINT_max_plusminus #1#2#3#4{\xint_secondoftwo_andstop }% +\def\XINT_max_plusplus #1#2#3#4% {% - \ifodd\XINT@Geq {#4#2}{#3#1} - \expandafter\xint@firstoftwo@andstop + \ifodd\XINT_Geq {#4#2}{#3#1} + \expandafter\xint_firstoftwo_andstop \else - \expandafter\xint@secondoftwo@andstop + \expandafter\xint_secondoftwo_andstop \fi }% -\def\XINT@max@minusminus #1#2#3#4% +\def\XINT_max_minusminus #1#2#3#4% {% - \ifodd\XINT@Geq {#1}{#2} - \expandafter\xint@firstoftwo@andstop + \ifodd\XINT_Geq {#1}{#2} + \expandafter\xint_firstoftwo_andstop \else - \expandafter\xint@secondoftwo@andstop + \expandafter\xint_secondoftwo_andstop \fi }% \def\xintiMin {\romannumeral0\xintimin }% \def\xintimin #1% {% - \expandafter\xint@min\expandafter {\romannumeral-`0#1}% + \expandafter\xint_min\expandafter {\romannumeral-`0#1}% }% \let\xintMin\xintiMin \let\xintmin\xintimin -\def\xint@min #1#2% -{% - \expandafter\XINT@min@pre\expandafter {\romannumeral-`0#2}{#1}% -}% -\def\XINT@min@pre #1#2{\XINT@min@fork #1\Z #2\Z {#2}{#1}}% -\def\XINT@Min #1#2{\romannumeral0\XINT@min@fork #2\Z #1\Z {#1}{#2}}% -\def\XINT@min@fork #1#2\Z #3#4\Z -{% - \xint@UDsignsfork - #1#3\dummy \XINT@min@minusminus % A < 0, B < 0 - #1-\dummy \XINT@min@minusplus % B < 0, A >= 0 - #3-\dummy \XINT@min@plusminus % A < 0, B >= 0 - --\dummy {\xint@UDzerosfork - #1#3\dummy \XINT@min@zerozero % A = B = 0 - #10\dummy \XINT@min@zeroplus % B = 0, A > 0 - #30\dummy \XINT@min@pluszero % A = 0, B > 0 - 00\dummy \XINT@min@plusplus % A, B > 0 - \xint@UDkrof }% - \xint@UDkrof +\def\xint_min #1#2% +{% + \expandafter\XINT_min_pre\expandafter {\romannumeral-`0#2}{#1}% +}% +\def\XINT_min_pre #1#2{\XINT_min_fork #1\Z #2\Z {#2}{#1}}% +\def\XINT_Min #1#2{\romannumeral0\XINT_min_fork #2\Z #1\Z {#1}{#2}}% +\def\XINT_min_fork #1#2\Z #3#4\Z +{% + \xint_UDsignsfork + #1#3\dummy \XINT_min_minusminus % A < 0, B < 0 + #1-\dummy \XINT_min_minusplus % B < 0, A >= 0 + #3-\dummy \XINT_min_plusminus % A < 0, B >= 0 + --\dummy {\xint_UDzerosfork + #1#3\dummy \XINT_min_zerozero % A = B = 0 + #10\dummy \XINT_min_zeroplus % B = 0, A > 0 + #30\dummy \XINT_min_pluszero % A = 0, B > 0 + 00\dummy \XINT_min_plusplus % A, B > 0 + \krof }% + \krof {#2}{#4}#1#3% }% -\def\XINT@min@zerozero #1#2#3#4{\xint@firstoftwo@andstop }% -\def\XINT@min@zeroplus #1#2#3#4{\xint@secondoftwo@andstop }% -\def\XINT@min@pluszero #1#2#3#4{\xint@firstoftwo@andstop }% -\def\XINT@min@minusplus #1#2#3#4{\xint@secondoftwo@andstop }% -\def\XINT@min@plusminus #1#2#3#4{\xint@firstoftwo@andstop }% -\def\XINT@min@plusplus #1#2#3#4% +\def\XINT_min_zerozero #1#2#3#4{\xint_firstoftwo_andstop }% +\def\XINT_min_zeroplus #1#2#3#4{\xint_secondoftwo_andstop }% +\def\XINT_min_pluszero #1#2#3#4{\xint_firstoftwo_andstop }% +\def\XINT_min_minusplus #1#2#3#4{\xint_secondoftwo_andstop }% +\def\XINT_min_plusminus #1#2#3#4{\xint_firstoftwo_andstop }% +\def\XINT_min_plusplus #1#2#3#4% {% - \ifodd\XINT@Geq {#4#2}{#3#1} - \expandafter\xint@secondoftwo@andstop + \ifodd\XINT_Geq {#4#2}{#3#1} + \expandafter\xint_secondoftwo_andstop \else - \expandafter\xint@firstoftwo@andstop + \expandafter\xint_firstoftwo_andstop \fi }% -\def\XINT@min@minusminus #1#2#3#4% +\def\XINT_min_minusminus #1#2#3#4% {% - \ifodd\XINT@Geq {#1}{#2} - \expandafter\xint@secondoftwo@andstop + \ifodd\XINT_Geq {#1}{#2} + \expandafter\xint_secondoftwo_andstop \else - \expandafter\xint@firstoftwo@andstop + \expandafter\xint_firstoftwo_andstop \fi }% \def\xintiSum {\romannumeral0\xintisum }% \def\xintisum #1{\xintisumexpr #1\relax }% \def\xintiSumExpr {\romannumeral0\xintisumexpr }% -\def\xintisumexpr {\expandafter\XINT@sumexpr\romannumeral-`0}% +\def\xintisumexpr {\expandafter\XINT_sumexpr\romannumeral-`0}% \let\xintSum\xintiSum \let\xintsum\xintisum \let\xintSumExpr\xintiSumExpr \let\xintsumexpr\xintisumexpr -\def\XINT@sumexpr {\XINT@sum@loop {0000}{0000}}% -\def\XINT@sum@loop #1#2#3% +\def\XINT_sumexpr {\XINT_sum_loop {0000}{0000}}% +\def\XINT_sum_loop #1#2#3% {% - \expandafter\XINT@sum@checksign\romannumeral-`0#3\Z {#1}{#2}% + \expandafter\XINT_sum_checksign\romannumeral-`0#3\Z {#1}{#2}% }% -\def\XINT@sum@checksign #1% +\def\XINT_sum_checksign #1% {% - \xint@relax #1\XINT@sum@finished\relax - \xint@zero #1\XINT@sum@skipzeroinput0% - \xint@UDsignfork - #1\dummy \XINT@sum@N - -\dummy {\XINT@sum@P #1}% - \xint@UDkrof + \xint_gob_til_relax #1\XINT_sum_finished\relax + \xint_gob_til_zero #1\XINT_sum_skipzeroinput0% + \xint_UDsignfork + #1\dummy \XINT_sum_N + -\dummy {\XINT_sum_P #1}% + \krof }% -\def\XINT@sum@finished #1\Z #2#3% +\def\XINT_sum_finished #1\Z #2#3% {% - \XINT@sub@A 1{}#3\W\X\Y\Z #2\W\X\Y\Z + \XINT_sub_A 1{}#3\W\X\Y\Z #2\W\X\Y\Z }% -\def\XINT@sum@skipzeroinput #1\xint@UDkrof #2\Z {\XINT@sum@loop }% -\def\XINT@sum@P #1\Z #2% +\def\XINT_sum_skipzeroinput #1\krof #2\Z {\XINT_sum_loop }% +\def\XINT_sum_P #1\Z #2% {% - \expandafter\XINT@sum@loop\expandafter + \expandafter\XINT_sum_loop\expandafter {\romannumeral0\expandafter - \XINT@addr@A\expandafter0\expandafter{\expandafter}% - \romannumeral0\XINT@RQ {}#1\R\R\R\R\R\R\R\R\Z + \XINT_addr_A\expandafter0\expandafter{\expandafter}% + \romannumeral0\XINT_RQ {}#1\R\R\R\R\R\R\R\R\Z \W\X\Y\Z #2\W\X\Y\Z }% }% -\def\XINT@sum@N #1\Z #2#3% +\def\XINT_sum_N #1\Z #2#3% {% - \expandafter\XINT@sum@NN\expandafter + \expandafter\XINT_sum_NN\expandafter {\romannumeral0\expandafter - \XINT@addr@A\expandafter0\expandafter{\expandafter}% - \romannumeral0\XINT@RQ {}#1\R\R\R\R\R\R\R\R\Z + \XINT_addr_A\expandafter0\expandafter{\expandafter}% + \romannumeral0\XINT_RQ {}#1\R\R\R\R\R\R\R\R\Z \W\X\Y\Z #3\W\X\Y\Z }{#2}% }% -\def\XINT@sum@NN #1#2{\XINT@sum@loop {#2}{#1}}% +\def\XINT_sum_NN #1#2{\XINT_sum_loop {#2}{#1}}% \def\xintiMul {\romannumeral0\xintimul }% \def\xintimul #1% {% - \expandafter\xint@mul\expandafter {\romannumeral-`0#1}% + \expandafter\xint_mul\expandafter {\romannumeral-`0#1}% }% \let\xintMul\xintiMul \let\xintmul\xintimul -\def\xint@mul #1#2% +\def\xint_mul #1#2% {% - \expandafter\XINT@mul@fork \romannumeral-`0#2\Z #1\Z + \expandafter\XINT_mul_fork \romannumeral-`0#2\Z #1\Z }% -\def\XINT@Mul #1#2{\romannumeral0\XINT@mul@fork #2\Z #1\Z }% -\def\XINT@mul@fork #1#2\Z #3#4\Z +\def\XINT_Mul #1#2{\romannumeral0\XINT_mul_fork #2\Z #1\Z }% +\def\XINT_mul_fork #1#2\Z #3#4\Z {% - \xint@UDzerofork - #1\dummy \XINT@mul@zero - #3\dummy \XINT@mul@zero + \xint_UDzerofork + #1\dummy \XINT_mul_zero + #3\dummy \XINT_mul_zero 0\dummy - {\xint@UDsignsfork - #1#3\dummy \XINT@mul@minusminus % #1 = #3 = - - #1-\dummy {\XINT@mul@minusplus #3}% % #1 = - - #3-\dummy {\XINT@mul@plusminus #1}% % #3 = - - --\dummy {\XINT@mul@plusplus #1#3}% - \xint@UDkrof }% - \xint@UDkrof + {\xint_UDsignsfork + #1#3\dummy \XINT_mul_minusminus % #1 = #3 = - + #1-\dummy {\XINT_mul_minusplus #3}% % #1 = - + #3-\dummy {\XINT_mul_plusminus #1}% % #3 = - + --\dummy {\XINT_mul_plusplus #1#3}% + \krof }% + \krof {#2}{#4}% }% -\def\XINT@mul@zero #1#2{ 0}% -\def\XINT@mul@minusminus #1#2% +\def\XINT_mul_zero #1#2{ 0}% +\def\XINT_mul_minusminus #1#2% {% - \expandafter\XINT@mul@choice@a - \expandafter{\romannumeral0\XINT@length {#2}}% - {\romannumeral0\XINT@length {#1}}{#1}{#2}% + \expandafter\XINT_mul_choice_a + \expandafter{\romannumeral0\XINT_length {#2}}% + {\romannumeral0\XINT_length {#1}}{#1}{#2}% }% -\def\XINT@mul@minusplus #1#2#3% +\def\XINT_mul_minusplus #1#2#3% {% - \expandafter\xint@minus@andstop\romannumeral0\expandafter - \XINT@mul@choice@a - \expandafter{\romannumeral0\XINT@length {#1#3}}% - {\romannumeral0\XINT@length {#2}}{#2}{#1#3}% + \expandafter\xint_minus_andstop\romannumeral0\expandafter + \XINT_mul_choice_a + \expandafter{\romannumeral0\XINT_length {#1#3}}% + {\romannumeral0\XINT_length {#2}}{#2}{#1#3}% }% -\def\XINT@mul@plusminus #1#2#3% +\def\XINT_mul_plusminus #1#2#3% {% - \expandafter\xint@minus@andstop\romannumeral0\expandafter - \XINT@mul@choice@a - \expandafter{\romannumeral0\XINT@length {#3}}% - {\romannumeral0\XINT@length {#1#2}}{#1#2}{#3}% + \expandafter\xint_minus_andstop\romannumeral0\expandafter + \XINT_mul_choice_a + \expandafter{\romannumeral0\XINT_length {#3}}% + {\romannumeral0\XINT_length {#1#2}}{#1#2}{#3}% }% -\def\XINT@mul@plusplus #1#2#3#4% +\def\XINT_mul_plusplus #1#2#3#4% {% - \expandafter\XINT@mul@choice@a - \expandafter{\romannumeral0\XINT@length {#2#4}}% - {\romannumeral0\XINT@length {#1#3}}{#1#3}{#2#4}% + \expandafter\XINT_mul_choice_a + \expandafter{\romannumeral0\XINT_length {#2#4}}% + {\romannumeral0\XINT_length {#1#3}}{#1#3}{#2#4}% }% -\def\XINT@mul@choice@a #1#2% +\def\XINT_mul_choice_a #1#2% {% - \expandafter\XINT@mul@choice@b\expandafter{#2}{#1}% + \expandafter\XINT_mul_choice_b\expandafter{#2}{#1}% }% -\def\XINT@mul@choice@b #1#2% +\def\XINT_mul_choice_b #1#2% {% \ifnum #1<5 - \expandafter\XINT@mul@choice@littlebyfirst + \expandafter\XINT_mul_choice_littlebyfirst \else \ifnum #2<5 - \expandafter\expandafter\expandafter\XINT@mul@choice@littlebysecond + \expandafter\expandafter\expandafter\XINT_mul_choice_littlebysecond \else - \expandafter\expandafter\expandafter\XINT@mul@choice@compare + \expandafter\expandafter\expandafter\XINT_mul_choice_compare \fi \fi {#1}{#2}% }% -\def\XINT@mul@choice@littlebyfirst #1#2#3#4% +\def\XINT_mul_choice_littlebyfirst #1#2#3#4% {% - \expandafter\XINT@mul@M + \expandafter\XINT_mul_M \expandafter{\the\numexpr #3\expandafter}% - \romannumeral0\XINT@RQ {}#4\R\R\R\R\R\R\R\R\Z \Z\Z\Z\Z + \romannumeral0\XINT_RQ {}#4\R\R\R\R\R\R\R\R\Z \Z\Z\Z\Z }% -\def\XINT@mul@choice@littlebysecond #1#2#3#4% +\def\XINT_mul_choice_littlebysecond #1#2#3#4% {% - \expandafter\XINT@mul@M + \expandafter\XINT_mul_M \expandafter{\the\numexpr #4\expandafter}% - \romannumeral0\XINT@RQ {}#3\R\R\R\R\R\R\R\R\Z \Z\Z\Z\Z + \romannumeral0\XINT_RQ {}#3\R\R\R\R\R\R\R\R\Z \Z\Z\Z\Z }% -\def\XINT@mul@choice@compare #1#2% +\def\XINT_mul_choice_compare #1#2% {% \ifnum #1>#2 - \expandafter \XINT@mul@choice@i + \expandafter \XINT_mul_choice_i \else - \expandafter \XINT@mul@choice@ii + \expandafter \XINT_mul_choice_ii \fi {#1}{#2}% }% -\def\XINT@mul@choice@i #1#2% +\def\XINT_mul_choice_i #1#2% {% \ifnum #1<\numexpr\ifcase \numexpr (#2-3)/4\relax \or 330\or 168\or 109\or 80\or 66\or 52\else 0\fi\relax - \expandafter\XINT@mul@choice@same + \expandafter\XINT_mul_choice_same \else - \expandafter\XINT@mul@choice@permute + \expandafter\XINT_mul_choice_permute \fi }% -\def\XINT@mul@choice@ii #1#2% +\def\XINT_mul_choice_ii #1#2% {% \ifnum #2<\numexpr\ifcase \numexpr (#1-3)/4\relax \or 330\or 168\or 109\or 80\or 66\or 52\else 0\fi\relax - \expandafter\XINT@mul@choice@permute + \expandafter\XINT_mul_choice_permute \else - \expandafter\XINT@mul@choice@same + \expandafter\XINT_mul_choice_same \fi }% -\def\XINT@mul@choice@same #1#2% +\def\XINT_mul_choice_same #1#2% {% - \expandafter\XINT@mul@enter - \romannumeral0\XINT@RQ {}#1\R\R\R\R\R\R\R\R\Z + \expandafter\XINT_mul_enter + \romannumeral0\XINT_RQ {}#1\R\R\R\R\R\R\R\R\Z \W\X\Y\Z #2\W\X\Y\Z }% -\def\XINT@mul@choice@permute #1#2% +\def\XINT_mul_choice_permute #1#2% {% - \expandafter\XINT@mul@enter - \romannumeral0\XINT@RQ {}#2\R\R\R\R\R\R\R\R\Z + \expandafter\XINT_mul_enter + \romannumeral0\XINT_RQ {}#2\R\R\R\R\R\R\R\R\Z \W\X\Y\Z #1\W\X\Y\Z }% -\def\XINT@mul@Ar #1#2#3#4#5#6% +\def\XINT_mul_Ar #1#2#3#4#5#6% {% - \xint@z #6\xint@mul@br\Z\XINT@mul@Br #1{#6#5#4#3}{#2}% + \xint_gob_til_z #6\xint_mul_br\Z\XINT_mul_Br #1{#6#5#4#3}{#2}% }% -\def\xint@mul@br\Z\XINT@mul@Br #1#2% +\def\xint_mul_br\Z\XINT_mul_Br #1#2% {% - \XINT@addr@AC@checkcarry #1% + \XINT_addr_AC_checkcarry #1% }% -\def\XINT@mul@Br #1#2#3#4\W\X\Y\Z #5#6#7#8% +\def\XINT_mul_Br #1#2#3#4\W\X\Y\Z #5#6#7#8% {% - \expandafter\XINT@mul@ABEAr + \expandafter\XINT_mul_ABEAr \the\numexpr #1+10#2+#8#7#6#5\relax.{#3}#4\W\X\Y\Z }% -\def\XINT@mul@ABEAr #1#2#3#4#5#6.#7% +\def\XINT_mul_ABEAr #1#2#3#4#5#6.#7% {% - \XINT@mul@Ar #2{#7#6#5#4#3}% + \XINT_mul_Ar #2{#7#6#5#4#3}% }% -\def\XINT@mul@Mr #1% +\def\XINT_mul_Mr #1% {% - \expandafter\XINT@mul@Mr@checkifzeroorone\expandafter{\the\numexpr #1}% + \expandafter\XINT_mul_Mr_checkifzeroorone\expandafter{\the\numexpr #1}% }% -\def\XINT@mul@Mr@checkifzeroorone #1% +\def\XINT_mul_Mr_checkifzeroorone #1% {% \ifcase #1 - \expandafter\XINT@mul@Mr@zero + \expandafter\XINT_mul_Mr_zero \or - \expandafter\XINT@mul@Mr@one + \expandafter\XINT_mul_Mr_one \else - \expandafter\XINT@mul@Nr + \expandafter\XINT_mul_Nr \fi {0000}{}{#1}% }% -\def\XINT@mul@Mr@zero #1\Z\Z\Z\Z { 0000}% -\def\XINT@mul@Mr@one #1#2#3#4\Z\Z\Z\Z { #4}% -\def\XINT@mul@Nr #1#2#3#4#5#6#7% +\def\XINT_mul_Mr_zero #1\Z\Z\Z\Z { 0000}% +\def\XINT_mul_Mr_one #1#2#3#4\Z\Z\Z\Z { #4}% +\def\XINT_mul_Nr #1#2#3#4#5#6#7% {% - \xint@z #4\xint@mul@pr\Z\XINT@mul@Pr {#1}{#3}{#7#6#5#4}{#2}{#3}% + \xint_gob_til_z #4\xint_mul_pr\Z\XINT_mul_Pr {#1}{#3}{#7#6#5#4}{#2}{#3}% }% -\def\XINT@mul@Pr #1#2#3% +\def\XINT_mul_Pr #1#2#3% {% - \expandafter\XINT@mul@Lr\the\numexpr 10000#1+#2*#3\relax + \expandafter\XINT_mul_Lr\the\numexpr 10000#1+#2*#3\relax }% -\def\XINT@mul@Lr 1#1#2#3#4#5#6#7#8#9% +\def\XINT_mul_Lr 1#1#2#3#4#5#6#7#8#9% {% - \XINT@mul@Nr {#1#2#3#4}{#9#8#7#6#5}% + \XINT_mul_Nr {#1#2#3#4}{#9#8#7#6#5}% }% -\def\xint@mul@pr\Z\XINT@mul@Pr #1#2#3#4#5% +\def\xint_mul_pr\Z\XINT_mul_Pr #1#2#3#4#5% {% - \xint@quatrezeros #1\XINT@mul@Mr@end@nocarry 0000% - \XINT@mul@Mr@end@carry #1{#4}% + \xint_gob_til_zeros_iv #1\XINT_mul_Mr_end_nocarry 0000% + \XINT_mul_Mr_end_carry #1{#4}% }% -\def\XINT@mul@Mr@end@nocarry 0000\XINT@mul@Mr@end@carry 0000#1{ #1}% -\def\XINT@mul@Mr@end@carry #1#2#3#4#5{ #5#4#3#2#1}% -\def\XINT@mul@M #1% +\def\XINT_mul_Mr_end_nocarry 0000\XINT_mul_Mr_end_carry 0000#1{ #1}% +\def\XINT_mul_Mr_end_carry #1#2#3#4#5{ #5#4#3#2#1}% +\def\XINT_mul_M #1% {% - \expandafter\XINT@mul@M@checkifzeroorone\expandafter{\the\numexpr #1}% + \expandafter\XINT_mul_M_checkifzeroorone\expandafter{\the\numexpr #1}% }% -\def\XINT@mul@M@checkifzeroorone #1% +\def\XINT_mul_M_checkifzeroorone #1% {% \ifcase #1 - \expandafter\XINT@mul@M@zero + \expandafter\XINT_mul_M_zero \or - \expandafter\XINT@mul@M@one + \expandafter\XINT_mul_M_one \else - \expandafter\XINT@mul@N + \expandafter\XINT_mul_N \fi {0000}{}{#1}% }% -\def\XINT@mul@M@zero #1\Z\Z\Z\Z { 0}% -\def\XINT@mul@M@one #1#2#3#4\Z\Z\Z\Z +\def\XINT_mul_M_zero #1\Z\Z\Z\Z { 0}% +\def\XINT_mul_M_one #1#2#3#4\Z\Z\Z\Z {% - \expandafter\xint@cleanupzeros@andstop\romannumeral0\XINT@rev{#4}% + \expandafter\xint_cleanupzeros_andstop\romannumeral0\XINT_rev{#4}% }% -\def\XINT@mul@N #1#2#3#4#5#6#7% +\def\XINT_mul_N #1#2#3#4#5#6#7% {% - \xint@z #4\xint@mul@p\Z\XINT@mul@P {#1}{#3}{#7#6#5#4}{#2}{#3}% + \xint_gob_til_z #4\xint_mul_p\Z\XINT_mul_P {#1}{#3}{#7#6#5#4}{#2}{#3}% }% -\def\XINT@mul@P #1#2#3% +\def\XINT_mul_P #1#2#3% {% - \expandafter\XINT@mul@L\the\numexpr 10000#1+#2*#3\relax + \expandafter\XINT_mul_L\the\numexpr 10000#1+#2*#3\relax }% -\def\XINT@mul@L 1#1#2#3#4#5#6#7#8#9% +\def\XINT_mul_L 1#1#2#3#4#5#6#7#8#9% {% - \XINT@mul@N {#1#2#3#4}{#5#6#7#8#9}% + \XINT_mul_N {#1#2#3#4}{#5#6#7#8#9}% }% -\def\xint@mul@p\Z\XINT@mul@P #1#2#3#4#5% +\def\xint_mul_p\Z\XINT_mul_P #1#2#3#4#5% {% - \XINT@mul@M@end #1#4% + \XINT_mul_M_end #1#4% }% -\def\XINT@mul@M@end #1#2#3#4#5#6#7#8% +\def\XINT_mul_M_end #1#2#3#4#5#6#7#8% {% \expandafter\space\the\numexpr #1#2#3#4#5#6#7#8\relax }% -\def\XINT@mul@enter #1\W\X\Y\Z #2#3#4#5% +\def\XINT_mul_enter #1\W\X\Y\Z #2#3#4#5% {% - \xint@w - #5\xint@mul@enterw - #4\xint@mul@enterx - #3\xint@mul@entery - #2\xint@mul@enterz - \W\XINT@mul@start {#2#3#4#5}#1\W\X\Y\Z + \xint_gob_til_w + #5\xint_mul_enterw + #4\xint_mul_enterx + #3\xint_mul_entery + #2\xint_mul_enterz + \W\XINT_mul_start {#2#3#4#5}#1\W\X\Y\Z }% -\def\xint@mul@enterw - #1\xint@mul@enterx - #2\xint@mul@entery - #3\xint@mul@enterz - \W\XINT@mul@start #4#5\W\X\Y\Z \X\Y\Z +\def\xint_mul_enterw + #1\xint_mul_enterx + #2\xint_mul_entery + #3\xint_mul_enterz + \W\XINT_mul_start #4#5\W\X\Y\Z \X\Y\Z {% - \XINT@mul@M {#3#2#1}#5\Z\Z\Z\Z + \XINT_mul_M {#3#2#1}#5\Z\Z\Z\Z }% -\def\xint@mul@enterx - #1\xint@mul@entery - #2\xint@mul@enterz - \W\XINT@mul@start #3#4\W\X\Y\Z \Y\Z +\def\xint_mul_enterx + #1\xint_mul_entery + #2\xint_mul_enterz + \W\XINT_mul_start #3#4\W\X\Y\Z \Y\Z {% - \XINT@mul@M {#2#1}#4\Z\Z\Z\Z + \XINT_mul_M {#2#1}#4\Z\Z\Z\Z }% -\def\xint@mul@entery - #1\xint@mul@enterz - \W\XINT@mul@start #2#3\W\X\Y\Z \Z +\def\xint_mul_entery + #1\xint_mul_enterz + \W\XINT_mul_start #2#3\W\X\Y\Z \Z {% - \XINT@mul@M {#1}#3\Z\Z\Z\Z + \XINT_mul_M {#1}#3\Z\Z\Z\Z }% -\def\XINT@mul@start #1#2\W\X\Y\Z +\def\XINT_mul_start #1#2\W\X\Y\Z {% - \expandafter\XINT@mul@main\expandafter - {\romannumeral0\XINT@mul@Mr {#1}#2\Z\Z\Z\Z}#2\W\X\Y\Z + \expandafter\XINT_mul_main\expandafter + {\romannumeral0\XINT_mul_Mr {#1}#2\Z\Z\Z\Z}#2\W\X\Y\Z }% -\def\XINT@mul@main #1#2\W\X\Y\Z #3#4#5#6% +\def\XINT_mul_main #1#2\W\X\Y\Z #3#4#5#6% {% - \xint@w - #6\xint@mul@mainw - #5\xint@mul@mainx - #4\xint@mul@mainy - #3\xint@mul@mainz - \W\XINT@mul@compute {#1}{#3#4#5#6}#2\W\X\Y\Z + \xint_gob_til_w + #6\xint_mul_mainw + #5\xint_mul_mainx + #4\xint_mul_mainy + #3\xint_mul_mainz + \W\XINT_mul_compute {#1}{#3#4#5#6}#2\W\X\Y\Z }% -\def\XINT@mul@compute #1#2#3\W\X\Y\Z +\def\XINT_mul_compute #1#2#3\W\X\Y\Z {% - \expandafter\XINT@mul@main\expandafter + \expandafter\XINT_mul_main\expandafter {\romannumeral0\expandafter - \XINT@mul@Ar\expandafter0\expandafter{\expandafter}% - \romannumeral0\XINT@mul@Mr {#2}#3\Z\Z\Z\Z + \XINT_mul_Ar\expandafter0\expandafter{\expandafter}% + \romannumeral0\XINT_mul_Mr {#2}#3\Z\Z\Z\Z \W\X\Y\Z 0000#1\W\X\Y\Z }#3\W\X\Y\Z }% -\def\xint@mul@mainw - #1\xint@mul@mainx - #2\xint@mul@mainy - #3\xint@mul@mainz - \W\XINT@mul@compute #4#5#6\W\X\Y\Z \X\Y\Z +\def\xint_mul_mainw + #1\xint_mul_mainx + #2\xint_mul_mainy + #3\xint_mul_mainz + \W\XINT_mul_compute #4#5#6\W\X\Y\Z \X\Y\Z {% - \expandafter\XINT@addm@A \expandafter0\expandafter{\expandafter}% + \expandafter\XINT_addm_A \expandafter0\expandafter{\expandafter}% \romannumeral0% - \XINT@mul@Mr {#3#2#1}#6\Z\Z\Z\Z + \XINT_mul_Mr {#3#2#1}#6\Z\Z\Z\Z \W\X\Y\Z 000#4\W\X\Y\Z }% -\def\xint@mul@mainx - #1\xint@mul@mainy - #2\xint@mul@mainz - \W\XINT@mul@compute #3#4#5\W\X\Y\Z \Y\Z +\def\xint_mul_mainx + #1\xint_mul_mainy + #2\xint_mul_mainz + \W\XINT_mul_compute #3#4#5\W\X\Y\Z \Y\Z {% - \expandafter\XINT@addm@A\expandafter + \expandafter\XINT_addm_A\expandafter 0\expandafter{\expandafter}% - \romannumeral0\XINT@mul@Mr {#2#1}#5\Z\Z\Z\Z + \romannumeral0\XINT_mul_Mr {#2#1}#5\Z\Z\Z\Z \W\X\Y\Z 00#3\W\X\Y\Z }% -\def\xint@mul@mainy - #1\xint@mul@mainz - \W\XINT@mul@compute #2#3#4\W\X\Y\Z \Z +\def\xint_mul_mainy + #1\xint_mul_mainz + \W\XINT_mul_compute #2#3#4\W\X\Y\Z \Z {% - \expandafter\XINT@addm@A\expandafter + \expandafter\XINT_addm_A\expandafter 0\expandafter{\expandafter}% - \romannumeral0\XINT@mul@Mr {#1}#4\Z\Z\Z\Z + \romannumeral0\XINT_mul_Mr {#1}#4\Z\Z\Z\Z \W\X\Y\Z 0#2\W\X\Y\Z }% -\def\xint@mul@mainz\W\XINT@mul@compute #1#2#3\W\X\Y\Z +\def\xint_mul_mainz\W\XINT_mul_compute #1#2#3\W\X\Y\Z {% - \expandafter\xint@cleanupzeros@andstop\romannumeral0\XINT@rev{#1}% + \expandafter\xint_cleanupzeros_andstop\romannumeral0\XINT_rev{#1}% }% -\def\XINT@mulr@enter #1\W\X\Y\Z #2#3#4#5% +\def\XINT_mulr_enter #1\W\X\Y\Z #2#3#4#5% {% - \xint@w - #5\xint@mulr@enterw - #4\xint@mulr@enterx - #3\xint@mulr@entery - #2\xint@mulr@enterz - \W\XINT@mulr@start {#2#3#4#5}#1\W\X\Y\Z + \xint_gob_til_w + #5\xint_mulr_enterw + #4\xint_mulr_enterx + #3\xint_mulr_entery + #2\xint_mulr_enterz + \W\XINT_mulr_start {#2#3#4#5}#1\W\X\Y\Z }% -\def\xint@mulr@enterw - #1\xint@mulr@enterx - #2\xint@mulr@entery - #3\xint@mulr@enterz - \W\XINT@mulr@start #4#5\W\X\Y\Z \X\Y\Z +\def\xint_mulr_enterw + #1\xint_mulr_enterx + #2\xint_mulr_entery + #3\xint_mulr_enterz + \W\XINT_mulr_start #4#5\W\X\Y\Z \X\Y\Z {% - \XINT@mul@Mr {#3#2#1}#5\Z\Z\Z\Z + \XINT_mul_Mr {#3#2#1}#5\Z\Z\Z\Z }% -\def\xint@mulr@enterx - #1\xint@mulr@entery - #2\xint@mulr@enterz - \W\XINT@mulr@start #3#4\W\X\Y\Z \Y\Z +\def\xint_mulr_enterx + #1\xint_mulr_entery + #2\xint_mulr_enterz + \W\XINT_mulr_start #3#4\W\X\Y\Z \Y\Z {% - \XINT@mul@Mr {#2#1}#4\Z\Z\Z\Z + \XINT_mul_Mr {#2#1}#4\Z\Z\Z\Z }% -\def\xint@mulr@entery - #1\xint@mulr@enterz - \W\XINT@mulr@start #2#3\W\X\Y\Z \Z +\def\xint_mulr_entery + #1\xint_mulr_enterz + \W\XINT_mulr_start #2#3\W\X\Y\Z \Z {% - \XINT@mul@Mr {#1}#3\Z\Z\Z\Z + \XINT_mul_Mr {#1}#3\Z\Z\Z\Z }% -\def\XINT@mulr@start #1#2\W\X\Y\Z +\def\XINT_mulr_start #1#2\W\X\Y\Z {% - \expandafter\XINT@mulr@main\expandafter - {\romannumeral0\XINT@mul@Mr {#1}#2\Z\Z\Z\Z }#2\W\X\Y\Z + \expandafter\XINT_mulr_main\expandafter + {\romannumeral0\XINT_mul_Mr {#1}#2\Z\Z\Z\Z }#2\W\X\Y\Z }% -\def\XINT@mulr@main #1#2\W\X\Y\Z #3#4#5#6% +\def\XINT_mulr_main #1#2\W\X\Y\Z #3#4#5#6% {% - \xint@w - #6\xint@mulr@mainw - #5\xint@mulr@mainx - #4\xint@mulr@mainy - #3\xint@mulr@mainz - \W\XINT@mulr@compute {#1}{#3#4#5#6}#2\W\X\Y\Z + \xint_gob_til_w + #6\xint_mulr_mainw + #5\xint_mulr_mainx + #4\xint_mulr_mainy + #3\xint_mulr_mainz + \W\XINT_mulr_compute {#1}{#3#4#5#6}#2\W\X\Y\Z }% -\def\XINT@mulr@compute #1#2#3\W\X\Y\Z +\def\XINT_mulr_compute #1#2#3\W\X\Y\Z {% - \expandafter\XINT@mulr@main\expandafter + \expandafter\XINT_mulr_main\expandafter {\romannumeral0\expandafter - \XINT@mul@Ar \expandafter0\expandafter{\expandafter}% - \romannumeral0\XINT@mul@Mr {#2}#3\Z\Z\Z\Z \W\X\Y\Z 0000#1\W\X\Y\Z + \XINT_mul_Ar \expandafter0\expandafter{\expandafter}% + \romannumeral0\XINT_mul_Mr {#2}#3\Z\Z\Z\Z \W\X\Y\Z 0000#1\W\X\Y\Z }#3\W\X\Y\Z }% -\def\xint@mulr@mainw - #1\xint@mulr@mainx - #2\xint@mulr@mainy - #3\xint@mulr@mainz - \W\XINT@mulr@compute #4#5#6\W\X\Y\Z \X\Y\Z +\def\xint_mulr_mainw + #1\xint_mulr_mainx + #2\xint_mulr_mainy + #3\xint_mulr_mainz + \W\XINT_mulr_compute #4#5#6\W\X\Y\Z \X\Y\Z {% - \expandafter\XINT@addp@A + \expandafter\XINT_addp_A \expandafter0\expandafter{\expandafter}% - \romannumeral0\XINT@mul@Mr {#3#2#1}#6\Z\Z\Z\Z + \romannumeral0\XINT_mul_Mr {#3#2#1}#6\Z\Z\Z\Z \W\X\Y\Z 000#4\W\X\Y\Z }% -\def\xint@mulr@mainx - #1\xint@mulr@mainy - #2\xint@mulr@mainz - \W\XINT@mulr@compute #3#4#5\W\X\Y\Z \Y\Z +\def\xint_mulr_mainx + #1\xint_mulr_mainy + #2\xint_mulr_mainz + \W\XINT_mulr_compute #3#4#5\W\X\Y\Z \Y\Z {% - \expandafter\XINT@addp@A + \expandafter\XINT_addp_A \expandafter0\expandafter{\expandafter}% - \romannumeral0\XINT@mul@Mr {#2#1}#5\Z\Z\Z\Z + \romannumeral0\XINT_mul_Mr {#2#1}#5\Z\Z\Z\Z \W\X\Y\Z 00#3\W\X\Y\Z }% -\def\xint@mulr@mainy - #1\xint@mulr@mainz - \W\XINT@mulr@compute #2#3#4\W\X\Y\Z \Z +\def\xint_mulr_mainy + #1\xint_mulr_mainz + \W\XINT_mulr_compute #2#3#4\W\X\Y\Z \Z {% - \expandafter\XINT@addp@A + \expandafter\XINT_addp_A \expandafter0\expandafter{\expandafter}% - \romannumeral0\XINT@mul@Mr {#1}#4\Z\Z\Z\Z + \romannumeral0\XINT_mul_Mr {#1}#4\Z\Z\Z\Z \W\X\Y\Z 0#2\W\X\Y\Z }% -\def\xint@mulr@mainz\W\XINT@mulr@compute #1#2#3\W\X\Y\Z { #1}% +\def\xint_mulr_mainz\W\XINT_mulr_compute #1#2#3\W\X\Y\Z { #1}% \def\xintiSqr {\romannumeral0\xintisqr }% \def\xintisqr #1% {% - \expandafter\XINT@sqr\expandafter {\romannumeral0\xintiabs{#1}}% + \expandafter\XINT_sqr\expandafter {\romannumeral0\xintiabs{#1}}% }% \let\xintSqr\xintiSqr \let\xintsqr\xintisqr -\def\XINT@sqr #1% +\def\XINT_sqr #1% {% - \expandafter\XINT@mul@enter + \expandafter\XINT_mul_enter \romannumeral0% - \XINT@RQ {}#1\R\R\R\R\R\R\R\R\Z + \XINT_RQ {}#1\R\R\R\R\R\R\R\R\Z \W\X\Y\Z #1\W\X\Y\Z }% \def\xintiPrd {\romannumeral0\xintiprd }% @@ -2042,776 +2062,776 @@ \let\xintPrd\xintiPrd \let\xintprd\xintiprd \def\xintiPrdExpr {\romannumeral0\xintiprdexpr }% -\def\xintiprdexpr {\expandafter\XINT@prdexpr\romannumeral-`0}% +\def\xintiprdexpr {\expandafter\XINT_prdexpr\romannumeral-`0}% \let\xintPrdExpr\xintiPrdExpr \let\xintprdexpr\xintiprdexpr -\def\XINT@prdexpr {\XINT@prod@loop@a 1\Z }% -\def\XINT@prod@loop@a #1\Z #2% +\def\XINT_prdexpr {\XINT_prod_loop_a 1\Z }% +\def\XINT_prod_loop_a #1\Z #2% {% - \expandafter\XINT@prod@loop@b \romannumeral-`0#2\Z #1\Z \Z + \expandafter\XINT_prod_loop_b \romannumeral-`0#2\Z #1\Z \Z }% -\def\XINT@prod@loop@b #1% +\def\XINT_prod_loop_b #1% {% - \xint@relax #1\XINT@prod@finished\relax - \XINT@prod@loop@c #1% + \xint_gob_til_relax #1\XINT_prod_finished\relax + \XINT_prod_loop_c #1% }% -\def\XINT@prod@loop@c +\def\XINT_prod_loop_c {% - \expandafter\XINT@prod@loop@a\romannumeral0\XINT@mul@fork + \expandafter\XINT_prod_loop_a\romannumeral0\XINT_mul_fork }% -\def\XINT@prod@finished #1\Z #2\Z \Z { #2}% +\def\XINT_prod_finished #1\Z #2\Z \Z { #2}% \def\xintFac {\romannumeral0\xintfac }% \def\xintfac #1% {% - \expandafter\XINT@fac@fork\expandafter{\the\numexpr #1}% + \expandafter\XINT_fac_fork\expandafter{\the\numexpr #1}% }% -\def\XINT@fac@fork #1% +\def\XINT_fac_fork #1% {% - \ifcase\XINT@Sgn {#1} - \xint@afterfi{\expandafter\space\expandafter 1\xint@gobble }% + \ifcase\XINT_Sgn {#1} + \xint_afterfi{\expandafter\space\expandafter 1\xint_gobble_i }% \or - \expandafter\XINT@fac@checklength + \expandafter\XINT_fac_checklength \else - \xint@afterfi{\expandafter\xintError:FactorialOfNegativeNumber - \expandafter\space\expandafter 1\xint@gobble }% + \xint_afterfi{\expandafter\xintError:FactorialOfNegativeNumber + \expandafter\space\expandafter 1\xint_gobble_i }% \fi {#1}% }% -\def\XINT@fac@checklength #1% +\def\XINT_fac_checklength #1% {% \ifnum #1>999999 - \xint@afterfi{\expandafter\xintError:FactorialOfTooBigNumber - \expandafter\space\expandafter 1\xint@gobble }% + \xint_afterfi{\expandafter\xintError:FactorialOfTooBigNumber + \expandafter\space\expandafter 1\xint_gobble_i }% \else - \xint@afterfi{\ifnum #1>9999 - \expandafter\XINT@fac@big@loop + \xint_afterfi{\ifnum #1>9999 + \expandafter\XINT_fac_big_loop \else - \expandafter\XINT@fac@loop + \expandafter\XINT_fac_loop \fi }% \fi {#1}% }% -\def\XINT@fac@big@loop #1{\XINT@fac@big@loop@main {10000}{#1}{}}% -\def\XINT@fac@big@loop@main #1#2#3% +\def\XINT_fac_big_loop #1{\XINT_fac_big_loop_main {10000}{#1}{}}% +\def\XINT_fac_big_loop_main #1#2#3% {% \ifnum #1<#2 \expandafter - \XINT@fac@big@loop@main + \XINT_fac_big_loop_main \expandafter {\the\numexpr #1+1\expandafter }% \else - \expandafter\XINT@fac@big@docomputation + \expandafter\XINT_fac_big_docomputation \fi {#2}{#3{#1}}% }% -\def\XINT@fac@big@docomputation #1#2% +\def\XINT_fac_big_docomputation #1#2% {% - \expandafter \XINT@fac@bigcompute@loop \expandafter - {\romannumeral0\XINT@fac@loop {9999}}#2\relax + \expandafter \XINT_fac_bigcompute_loop \expandafter + {\romannumeral0\XINT_fac_loop {9999}}#2\relax }% -\def\XINT@fac@bigcompute@loop #1#2% +\def\XINT_fac_bigcompute_loop #1#2% {% - \xint@relax #2\XINT@fac@bigcompute@end\relax - \expandafter\XINT@fac@bigcompute@loop\expandafter - {\expandafter\XINT@mul@enter - \romannumeral0\XINT@RQ {}#2\R\R\R\R\R\R\R\R\Z + \xint_gob_til_relax #2\XINT_fac_bigcompute_end\relax + \expandafter\XINT_fac_bigcompute_loop\expandafter + {\expandafter\XINT_mul_enter + \romannumeral0\XINT_RQ {}#2\R\R\R\R\R\R\R\R\Z \W\X\Y\Z #1\W\X\Y\Z }% }% -\def\XINT@fac@bigcompute@end #1#2#3#4#5% +\def\XINT_fac_bigcompute_end #1#2#3#4#5% {% - \XINT@fac@bigcompute@end@ #5% + \XINT_fac_bigcompute_end_ #5% }% -\def\XINT@fac@bigcompute@end@ #1\R #2\Z \W\X\Y\Z #3\W\X\Y\Z { #3}% -\def\XINT@fac@loop #1{\XINT@fac@loop@main 1{1000}{#1}}% -\def\XINT@fac@loop@main #1#2#3% +\def\XINT_fac_bigcompute_end_ #1\R #2\Z \W\X\Y\Z #3\W\X\Y\Z { #3}% +\def\XINT_fac_loop #1{\XINT_fac_loop_main 1{1000}{#1}}% +\def\XINT_fac_loop_main #1#2#3% {% \ifnum #3>#1 \else - \expandafter\XINT@fac@loop@exit + \expandafter\XINT_fac_loop_exit \fi - \expandafter\XINT@fac@loop@main\expandafter + \expandafter\XINT_fac_loop_main\expandafter {\the\numexpr #1+1\expandafter }\expandafter - {\romannumeral0\XINT@mul@Mr {#1}#2\Z\Z\Z\Z }% + {\romannumeral0\XINT_mul_Mr {#1}#2\Z\Z\Z\Z }% {#3}% }% -\def\XINT@fac@loop@exit #1#2#3#4#5#6#7% +\def\XINT_fac_loop_exit #1#2#3#4#5#6#7% {% - \XINT@fac@loop@exit@ #6% + \XINT_fac_loop_exit_ #6% }% -\def\XINT@fac@loop@exit@ #1#2#3% +\def\XINT_fac_loop_exit_ #1#2#3% {% - \XINT@mul@M + \XINT_mul_M }% \def\xintiPow {\romannumeral0\xintipow }% \def\xintipow #1% {% - \expandafter\xint@pow\romannumeral-`0#1\Z% + \expandafter\xint_pow\romannumeral-`0#1\Z% }% \let\xintPow\xintiPow \let\xintpow\xintipow -\def\xint@pow #1#2\Z +\def\xint_pow #1#2\Z {% - \xint@UDsignfork - #1\dummy \XINT@pow@Aneg - -\dummy \XINT@pow@Anonneg - \xint@UDkrof + \xint_UDsignfork + #1\dummy \XINT_pow_Aneg + -\dummy \XINT_pow_Anonneg + \krof #1{#2}% }% -\def\XINT@pow@Aneg #1#2#3% +\def\XINT_pow_Aneg #1#2#3% {% - \expandafter\XINT@pow@Aneg@\expandafter{\the\numexpr #3}{#2}% + \expandafter\XINT_pow_Aneg_\expandafter{\the\numexpr #3}{#2}% }% -\def\XINT@pow@Aneg@ #1% +\def\XINT_pow_Aneg_ #1% {% \ifodd #1 - \expandafter\XINT@pow@Aneg@Bodd + \expandafter\XINT_pow_Aneg_Bodd \fi - \XINT@pow@Anonneg@ {#1}% + \XINT_pow_Anonneg_ {#1}% }% -\def\XINT@pow@Aneg@Bodd #1% +\def\XINT_pow_Aneg_Bodd #1% {% - \expandafter\XINT@opp\romannumeral0\XINT@pow@Anonneg@ + \expandafter\XINT_opp\romannumeral0\XINT_pow_Anonneg_ }% -\def\XINT@pow@Anonneg #1#2#3% +\def\XINT_pow_Anonneg #1#2#3% {% - \expandafter\XINT@pow@Anonneg@\expandafter {\the\numexpr #3}{#1#2}% + \expandafter\XINT_pow_Anonneg_\expandafter {\the\numexpr #3}{#1#2}% }% -\def\XINT@pow@Anonneg@ #1#2% +\def\XINT_pow_Anonneg_ #1#2% {% - \ifcase\XINT@Cmp {#2}{1} - \expandafter\XINT@pow@AisOne + \ifcase\XINT_Cmp {#2}{1} + \expandafter\XINT_pow_AisOne \or - \expandafter\XINT@pow@AatleastTwo + \expandafter\XINT_pow_AatleastTwo \else - \expandafter\XINT@pow@AisZero + \expandafter\XINT_pow_AisZero \fi {#1}{#2}% }% -\def\XINT@pow@AisOne #1#2{ 1}% -\def\XINT@pow@AisZero #1#2% +\def\XINT_pow_AisOne #1#2{ 1}% +\def\XINT_pow_AisZero #1#2% {% - \ifcase\XINT@Sgn {#1} - \xint@afterfi { 1}% + \ifcase\XINT_Sgn {#1} + \xint_afterfi { 1}% \or - \xint@afterfi { 0}% + \xint_afterfi { 0}% \else - \xint@afterfi {\xintError:DivisionByZero\space 0}% + \xint_afterfi {\xintError:DivisionByZero\space 0}% \fi }% -\def\XINT@pow@AatleastTwo #1% +\def\XINT_pow_AatleastTwo #1% {% - \ifcase\XINT@Sgn {#1} - \expandafter\XINT@pow@BisZero + \ifcase\XINT_Sgn {#1} + \expandafter\XINT_pow_BisZero \or - \expandafter\XINT@pow@checkBlength + \expandafter\XINT_pow_checkBlength \else - \expandafter\XINT@pow@BisNegative + \expandafter\XINT_pow_BisNegative \fi {#1}% }% -\def\XINT@pow@BisNegative #1#2{\xintError:FractionRoundedToZero\space 0}% -\def\XINT@pow@BisZero #1#2{ 1}% -\def\XINT@pow@checkBlength #1#2% +\def\XINT_pow_BisNegative #1#2{\xintError:FractionRoundedToZero\space 0}% +\def\XINT_pow_BisZero #1#2{ 1}% +\def\XINT_pow_checkBlength #1#2% {% \ifnum #1>999999999 - \expandafter\XINT@pow@BtooBig + \expandafter\XINT_pow_BtooBig \else - \expandafter\XINT@pow@loop + \expandafter\XINT_pow_loop \fi - {#1}{#2}\XINT@pow@posprod - \xint@UNDEF - \xint@undef\xint@undef\xint@undef\xint@undef - \xint@undef\xint@undef\xint@undef\xint@undef - \xint@UNDEF + {#1}{#2}\XINT_pow_posprod + \xint_relax + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_relax }% -\def\XINT@pow@BtooBig #1\xint@UNDEF #2\xint@UNDEF +\def\XINT_pow_BtooBig #1\xint_relax #2\xint_relax {\xintError:ExponentTooBig\space 0}% -\def\XINT@pow@loop #1#2% +\def\XINT_pow_loop #1#2% {% \ifnum #1 = 1 - \expandafter\XINT@pow@loop@end + \expandafter\XINT_pow_loop_end \else - \xint@afterfi{\expandafter\XINT@pow@loop@a + \xint_afterfi{\expandafter\XINT_pow_loop_a \expandafter{\the\numexpr 2*(#1/2)-#1\expandafter }% b mod 2 \expandafter{\the\numexpr #1-#1/2\expandafter }% [b/2] \expandafter{\romannumeral0\xintisqr{#2}}}% \fi {{#2}}% }% -\def\XINT@pow@loop@end {\romannumeral0\XINT@rord@main {}\relax }% -\def\XINT@pow@loop@a #1% +\def\XINT_pow_loop_end {\romannumeral0\XINT_rord_main {}\relax }% +\def\XINT_pow_loop_a #1% {% \ifnum #1 = 1 - \expandafter\XINT@pow@loop + \expandafter\XINT_pow_loop \else - \expandafter\XINT@pow@loop@throwaway + \expandafter\XINT_pow_loop_throwaway \fi }% -\def\XINT@pow@loop@throwaway #1#2#3% +\def\XINT_pow_loop_throwaway #1#2#3% {% - \XINT@pow@loop {#1}{#2}% + \XINT_pow_loop {#1}{#2}% }% -\def\XINT@pow@posprod #1% +\def\XINT_pow_posprod #1% {% - \XINT@pow@pprod@checkifempty #1\Z + \XINT_pow_pprod_checkifempty #1\Z }% -\def\XINT@pow@pprod@checkifempty #1% +\def\XINT_pow_pprod_checkifempty #1% {% - \xint@relax #1\XINT@pow@pprod@emptyproduct\relax - \XINT@pow@pprod@RQfirst #1% + \xint_gob_til_relax #1\XINT_pow_pprod_emptyproduct\relax + \XINT_pow_pprod_RQfirst #1% }% -\def\XINT@pow@pprod@emptyproduct #1\Z { 1}% -\def\XINT@pow@pprod@RQfirst #1\Z +\def\XINT_pow_pprod_emptyproduct #1\Z { 1}% +\def\XINT_pow_pprod_RQfirst #1\Z {% - \expandafter\XINT@pow@pprod@getnext\expandafter - {\romannumeral0\XINT@RQ {}#1\R\R\R\R\R\R\R\R\Z}% + \expandafter\XINT_pow_pprod_getnext\expandafter + {\romannumeral0\XINT_RQ {}#1\R\R\R\R\R\R\R\R\Z}% }% -\def\XINT@pow@pprod@getnext #1#2% +\def\XINT_pow_pprod_getnext #1#2% {% - \XINT@pow@pprod@checkiffinished #2\Z {#1}% + \XINT_pow_pprod_checkiffinished #2\Z {#1}% }% -\def\XINT@pow@pprod@checkiffinished #1% +\def\XINT_pow_pprod_checkiffinished #1% {% - \xint@relax #1\XINT@pow@pprod@end\relax - \XINT@pow@pprod@compute #1% + \xint_gob_til_relax #1\XINT_pow_pprod_end\relax + \XINT_pow_pprod_compute #1% }% -\def\XINT@pow@pprod@compute #1\Z #2% +\def\XINT_pow_pprod_compute #1\Z #2% {% - \expandafter\XINT@pow@pprod@getnext\expandafter - {\romannumeral0\XINT@mulr@enter #2\W\X\Y\Z #1\W\X\Y\Z}% + \expandafter\XINT_pow_pprod_getnext\expandafter + {\romannumeral0\XINT_mulr_enter #2\W\X\Y\Z #1\W\X\Y\Z}% }% -\def\XINT@pow@pprod@end\relax\XINT@pow@pprod@compute #1\Z #2% +\def\XINT_pow_pprod_end\relax\XINT_pow_pprod_compute #1\Z #2% {% - \expandafter\xint@cleanupzeros@andstop - \romannumeral0\XINT@rev {#2}% + \expandafter\xint_cleanupzeros_andstop + \romannumeral0\XINT_rev {#2}% }% \def\xintiQuo {\romannumeral0\xintiquo }% \def\xintiRem {\romannumeral0\xintirem }% -\def\xintiquo {\expandafter\xint@firstoftwo@andstop +\def\xintiquo {\expandafter\xint_firstoftwo_andstop \romannumeral0\xintidivision }% -\def\xintirem {\expandafter\xint@secondoftwo@andstop +\def\xintirem {\expandafter\xint_secondoftwo_andstop \romannumeral0\xintidivision }% \let\xintQuo\xintiQuo \let\xintquo\xintiquo \let\xintRem\xintiRem \let\xintrem\xintirem \def\xintiDivision {\romannumeral0\xintidivision }% \def\xintidivision #1% {% - \expandafter\xint@division\expandafter {\romannumeral-`0#1}% + \expandafter\xint_division\expandafter {\romannumeral-`0#1}% }% \let\xintDivision\xintiDivision \let\xintdivision\xintidivision -\def\xint@division #1#2% +\def\xint_division #1#2% {% - \expandafter\XINT@div@fork \romannumeral-`0#2\Z #1\Z + \expandafter\XINT_div_fork \romannumeral-`0#2\Z #1\Z }% -\def\XINT@Division #1#2{\romannumeral0\XINT@div@fork #2\Z #1\Z }% -\def\XINT@div@fork #1#2\Z #3#4\Z +\def\XINT_Division #1#2{\romannumeral0\XINT_div_fork #2\Z #1\Z }% +\def\XINT_div_fork #1#2\Z #3#4\Z {% - \xint@UDzerofork - #1\dummy \XINT@div@BisZero - #3\dummy \XINT@div@AisZero + \xint_UDzerofork + #1\dummy \XINT_div_BisZero + #3\dummy \XINT_div_AisZero 0\dummy - {\xint@UDsignfork - #1\dummy \XINT@div@BisNegative % B < 0 - #3\dummy \XINT@div@AisNegative % A < 0, B > 0 - -\dummy \XINT@div@plusplus % B > 0, A > 0 - \xint@UDkrof }% - \xint@UDkrof + {\xint_UDsignfork + #1\dummy \XINT_div_BisNegative % B < 0 + #3\dummy \XINT_div_AisNegative % A < 0, B > 0 + -\dummy \XINT_div_plusplus % B > 0, A > 0 + \krof }% + \krof {#2}{#4}#1#3% #1#2=B, #3#4=A }% -\def\XINT@div@BisZero #1#2#3#4{\xintError:DivisionByZero\space {0}{0}}% -\def\XINT@div@AisZero #1#2#3#4{ {0}{0}}% -\def\XINT@div@plusplus #1#2#3#4% +\def\XINT_div_BisZero #1#2#3#4{\xintError:DivisionByZero\space {0}{0}}% +\def\XINT_div_AisZero #1#2#3#4{ {0}{0}}% +\def\XINT_div_plusplus #1#2#3#4% {% - \XINT@div@prepare {#3#1}{#4#2}% + \XINT_div_prepare {#3#1}{#4#2}% }% -\def\XINT@div@BisNegative #1#2#3#4% +\def\XINT_div_BisNegative #1#2#3#4% {% - \expandafter\XINT@div@BisNegative@post - \romannumeral0\XINT@div@fork #1\Z #4#2\Z + \expandafter\XINT_div_BisNegative_post + \romannumeral0\XINT_div_fork #1\Z #4#2\Z }% -\def\XINT@div@BisNegative@post #1% +\def\XINT_div_BisNegative_post #1% {% - \expandafter\space\expandafter {\romannumeral0\XINT@opp #1}% + \expandafter\space\expandafter {\romannumeral0\XINT_opp #1}% }% -\def\XINT@div@AisNegative #1#2#3#4% +\def\XINT_div_AisNegative #1#2#3#4% {% - \expandafter\XINT@div@AisNegative@post - \romannumeral0\XINT@div@prepare {#3#1}{#2}{#3#1}% + \expandafter\XINT_div_AisNegative_post + \romannumeral0\XINT_div_prepare {#3#1}{#2}{#3#1}% }% -\def\XINT@div@AisNegative@post #1#2% +\def\XINT_div_AisNegative_post #1#2% {% - \ifcase\XINT@Sgn {#2} - \expandafter \XINT@div@AisNegative@zerorem + \ifcase\XINT_Sgn {#2} + \expandafter \XINT_div_AisNegative_zerorem \or - \expandafter \XINT@div@AisNegative@posrem + \expandafter \XINT_div_AisNegative_posrem \fi {#1}{#2}% }% -\def\XINT@div@AisNegative@zerorem #1#2#3% +\def\XINT_div_AisNegative_zerorem #1#2#3% {% - \expandafter\space\expandafter {\romannumeral0\XINT@opp #1}{0}% + \expandafter\space\expandafter {\romannumeral0\XINT_opp #1}{0}% }% -\def\XINT@div@AisNegative@posrem #1% +\def\XINT_div_AisNegative_posrem #1% {% - \expandafter \XINT@div@AisNegative@posrem@b \expandafter + \expandafter \XINT_div_AisNegative_posrem_b \expandafter {\romannumeral0\xintiopp{\xintiAdd {#1}{1}}}% }% -\def\XINT@div@AisNegative@posrem@b #1#2#3% +\def\XINT_div_AisNegative_posrem_b #1#2#3% {% - \expandafter \xint@exchangetwo@keepbraces@andstop \expandafter - {\romannumeral0\XINT@sub {#3}{#2}}{#1}% + \expandafter \xint_exchangetwo_keepbraces_andstop \expandafter + {\romannumeral0\XINT_sub {#3}{#2}}{#1}% }% -\def\XINT@div@prepare #1% +\def\XINT_div_prepare #1% {% - \expandafter \XINT@div@prepareB@aa \expandafter - {\romannumeral0\XINT@length {#1}}{#1}% B > 0 ici + \expandafter \XINT_div_prepareB_aa \expandafter + {\romannumeral0\XINT_length {#1}}{#1}% B > 0 ici }% -\def\XINT@div@prepareB@aa #1% +\def\XINT_div_prepareB_aa #1% {% \ifnum #1=1 - \expandafter\XINT@div@prepareB@ab + \expandafter\XINT_div_prepareB_ab \else - \expandafter\XINT@div@prepareB@a + \expandafter\XINT_div_prepareB_a \fi {#1}% }% -\def\XINT@div@prepareB@ab #1#2% +\def\XINT_div_prepareB_ab #1#2% {% \ifnum #2=1 - \expandafter\XINT@div@prepareB@BisOne + \expandafter\XINT_div_prepareB_BisOne \else - \expandafter\XINT@div@prepareB@e + \expandafter\XINT_div_prepareB_e \fi {000}{3}{4}{#2}% }% -\def\XINT@div@prepareB@BisOne #1#2#3#4#5{ {#5}{0}}% -\def\XINT@div@prepareB@a #1% +\def\XINT_div_prepareB_BisOne #1#2#3#4#5{ {#5}{0}}% +\def\XINT_div_prepareB_a #1% {% - \expandafter\XINT@div@prepareB@c\expandafter{\the\numexpr 4*((#1+1)/4)}{#1}% + \expandafter\XINT_div_prepareB_c\expandafter{\the\numexpr 4*((#1+1)/4)}{#1}% }% -\def\XINT@div@prepareB@c #1#2% +\def\XINT_div_prepareB_c #1#2% {% \ifcase \numexpr #1-#2\relax - \expandafter\XINT@div@prepareB@d + \expandafter\XINT_div_prepareB_d \or - \expandafter\XINT@div@prepareB@di + \expandafter\XINT_div_prepareB_di \or - \expandafter\XINT@div@prepareB@dii + \expandafter\XINT_div_prepareB_dii \or - \expandafter\XINT@div@prepareB@diii + \expandafter\XINT_div_prepareB_diii \fi {#1}% }% -\def\XINT@div@prepareB@d {\XINT@div@prepareB@e {}{0}}% -\def\XINT@div@prepareB@di {\XINT@div@prepareB@e {0}{1}}% -\def\XINT@div@prepareB@dii {\XINT@div@prepareB@e {00}{2}}% -\def\XINT@div@prepareB@diii {\XINT@div@prepareB@e {000}{3}}% -\def\XINT@div@prepareB@e #1#2#3#4% +\def\XINT_div_prepareB_d {\XINT_div_prepareB_e {}{0}}% +\def\XINT_div_prepareB_di {\XINT_div_prepareB_e {0}{1}}% +\def\XINT_div_prepareB_dii {\XINT_div_prepareB_e {00}{2}}% +\def\XINT_div_prepareB_diii {\XINT_div_prepareB_e {000}{3}}% +\def\XINT_div_prepareB_e #1#2#3#4% {% - \XINT@div@prepareB@f #4#1\Z {#3}{#2}{#1}% + \XINT_div_prepareB_f #4#1\Z {#3}{#2}{#1}% }% -\def\XINT@div@prepareB@f #1#2#3#4#5\Z +\def\XINT_div_prepareB_f #1#2#3#4#5\Z {% - \expandafter \XINT@div@prepareB@g \expandafter - {\romannumeral0\XINT@rev {#1#2#3#4#5}}{#1#2#3#4}% + \expandafter \XINT_div_prepareB_g \expandafter + {\romannumeral0\XINT_rev {#1#2#3#4#5}}{#1#2#3#4}% }% -\def\XINT@div@prepareB@g #1#2#3#4#5#6% +\def\XINT_div_prepareB_g #1#2#3#4#5#6% {% - \XINT@div@prepareA@a {#6#5}{#2}{#3}{#1}{#4}% + \XINT_div_prepareA_a {#6#5}{#2}{#3}{#1}{#4}% }% -\def\XINT@div@prepareA@a #1% +\def\XINT_div_prepareA_a #1% {% - \expandafter \XINT@div@prepareA@b \expandafter - {\romannumeral0\XINT@length {#1}}{#1}% A >0 ici + \expandafter \XINT_div_prepareA_b \expandafter + {\romannumeral0\XINT_length {#1}}{#1}% A >0 ici }% -\def\XINT@div@prepareA@b #1% +\def\XINT_div_prepareA_b #1% {% - \expandafter\XINT@div@prepareA@c\expandafter{\the\numexpr 4*((#1+1)/4)}{#1}% + \expandafter\XINT_div_prepareA_c\expandafter{\the\numexpr 4*((#1+1)/4)}{#1}% }% -\def\XINT@div@prepareA@c #1#2% +\def\XINT_div_prepareA_c #1#2% {% \ifcase \numexpr #1-#2\relax - \expandafter\XINT@div@prepareA@d + \expandafter\XINT_div_prepareA_d \or - \expandafter\XINT@div@prepareA@di + \expandafter\XINT_div_prepareA_di \or - \expandafter\XINT@div@prepareA@dii + \expandafter\XINT_div_prepareA_dii \or - \expandafter\XINT@div@prepareA@diii + \expandafter\XINT_div_prepareA_diii \fi {#1}% }% -\def\XINT@div@prepareA@d {\XINT@div@prepareA@e {}}% -\def\XINT@div@prepareA@di {\XINT@div@prepareA@e {0}}% -\def\XINT@div@prepareA@dii {\XINT@div@prepareA@e {00}}% -\def\XINT@div@prepareA@diii {\XINT@div@prepareA@e {000}}% -\def\XINT@div@prepareA@e #1#2#3% +\def\XINT_div_prepareA_d {\XINT_div_prepareA_e {}}% +\def\XINT_div_prepareA_di {\XINT_div_prepareA_e {0}}% +\def\XINT_div_prepareA_dii {\XINT_div_prepareA_e {00}}% +\def\XINT_div_prepareA_diii {\XINT_div_prepareA_e {000}}% +\def\XINT_div_prepareA_e #1#2#3% {% - \XINT@div@startswitch {#1#3}{#2}% + \XINT_div_startswitch {#1#3}{#2}% }% -\def\XINT@div@startswitch #1#2#3#4% +\def\XINT_div_startswitch #1#2#3#4% {% \ifnum #2 > #4 - \expandafter\XINT@div@body@a + \expandafter\XINT_div_body_a \else \ifnum #2 = #4 - \expandafter\expandafter\expandafter\XINT@div@final@a + \expandafter\expandafter\expandafter\XINT_div_final_a \else - \expandafter\expandafter\expandafter\XINT@div@finished@a + \expandafter\expandafter\expandafter\XINT_div_finished_a \fi\fi {#1}{#4}{#3}{0000}{#2}% }% -\def\XINT@div@finished@a #1#2#3% +\def\XINT_div_finished_a #1#2#3% {% - \expandafter\XINT@div@finished@b\expandafter {\romannumeral0\XINT@cuz {#1}}% + \expandafter\XINT_div_finished_b\expandafter {\romannumeral0\XINT_cuz {#1}}% }% -\def\XINT@div@finished@b #1#2#3#4#5% +\def\XINT_div_finished_b #1#2#3#4#5% {% - \ifcase \XINT@Sgn {#1} - \xint@afterfi {\XINT@div@finished@c {0}}% + \ifcase \XINT_Sgn {#1} + \xint_afterfi {\XINT_div_finished_c {0}}% \or - \xint@afterfi {\expandafter\XINT@div@finished@c\expandafter - {\romannumeral0\XINT@dsh@checksignx #5\Z {#1}}% + \xint_afterfi {\expandafter\XINT_div_finished_c\expandafter + {\romannumeral0\XINT_dsh_checksignx #5\Z {#1}}% }% \fi {#2}% }% -\def\XINT@div@finished@c #1#2% +\def\XINT_div_finished_c #1#2% {% - \expandafter\space\expandafter {\romannumeral0\XINT@rev@andcuz {#2}}{#1}% + \expandafter\space\expandafter {\romannumeral0\XINT_rev_andcuz {#2}}{#1}% }% -\def\XINT@div@final@a #1% +\def\XINT_div_final_a #1% {% - \XINT@div@final@b #1\Z + \XINT_div_final_b #1\Z }% -\def\XINT@div@final@b #1#2#3#4#5\Z +\def\XINT_div_final_b #1#2#3#4#5\Z {% - \xint@quatrezeros #1#2#3#4\xint@div@final@c0000% - \XINT@div@final@c {#1#2#3#4}{#1#2#3#4#5}% + \xint_gob_til_zeros_iv #1#2#3#4\xint_div_final_c0000% + \XINT_div_final_c {#1#2#3#4}{#1#2#3#4#5}% }% -\def\xint@div@final@c0000\XINT@div@final@c #1{\XINT@div@finished@a }% -\def\XINT@div@final@c #1#2#3#4% +\def\xint_div_final_c0000\XINT_div_final_c #1{\XINT_div_finished_a }% +\def\XINT_div_final_c #1#2#3#4% {% - \expandafter \XINT@div@final@da \expandafter + \expandafter \XINT_div_final_da \expandafter {\the\numexpr #1-(#1/#4)*#4\expandafter }\expandafter {\the\numexpr #1/#4\expandafter }\expandafter - {\romannumeral0\xint@cleanupzeros@andstop #2}% + {\romannumeral0\xint_cleanupzeros_andstop #2}% }% -\def\XINT@div@final@da #1% +\def\XINT_div_final_da #1% {% \ifnum #1>9 - \expandafter\XINT@div@final@dP + \expandafter\XINT_div_final_dP \else - \xint@afterfi + \xint_afterfi {\ifnum #1<0 - \expandafter\XINT@div@final@dN + \expandafter\XINT_div_final_dN \else - \expandafter\XINT@div@final@db + \expandafter\XINT_div_final_db \fi }% \fi }% -\def\XINT@div@final@dN #1% +\def\XINT_div_final_dN #1% {% - \expandafter\XINT@div@final@dP\the\numexpr #1-1\relax + \expandafter\XINT_div_final_dP\the\numexpr #1-1\relax }% -\def\XINT@div@final@dP #1#2#3#4#5% q,A,Q,L,B (puis c) +\def\XINT_div_final_dP #1#2#3#4#5% q,A,Q,L,B (puis c) {% - \expandafter \XINT@div@final@f \expandafter + \expandafter \XINT_div_final_f \expandafter {\romannumeral0\xintisub {#2}% - {\romannumeral0\XINT@mul@M {#1}#5\Z\Z\Z\Z }}% - {\romannumeral0\XINT@add@A 0{}#1000\W\X\Y\Z #3\W\X\Y\Z }% + {\romannumeral0\XINT_mul_M {#1}#5\Z\Z\Z\Z }}% + {\romannumeral0\XINT_add_A 0{}#1000\W\X\Y\Z #3\W\X\Y\Z }% }% -\def\XINT@div@final@db #1#2#3#4#5% q,A,Q,L,B (puis c) +\def\XINT_div_final_db #1#2#3#4#5% q,A,Q,L,B (puis c) {% - \expandafter\XINT@div@final@dc\expandafter + \expandafter\XINT_div_final_dc\expandafter {\romannumeral0\xintisub {#2}% - {\romannumeral0\XINT@mul@M {#1}#5\Z\Z\Z\Z }}% + {\romannumeral0\XINT_mul_M {#1}#5\Z\Z\Z\Z }}% {#1}{#2}{#3}{#4}{#5}% }% -\def\XINT@div@final@dc #1#2% +\def\XINT_div_final_dc #1#2% {% - \ifnum\XINT@Sgn{#1}<0 - \xint@afterfi {\expandafter\XINT@div@final@dP\the\numexpr #2-1\relax}% - \else \xint@afterfi {\XINT@div@final@e {#1}#2}% + \ifnum\XINT_Sgn{#1}<0 + \xint_afterfi {\expandafter\XINT_div_final_dP\the\numexpr #2-1\relax}% + \else \xint_afterfi {\XINT_div_final_e {#1}#2}% \fi }% -\def\XINT@div@final@e #1#2#3#4#5#6% A final, q, trash, Q, L, B +\def\XINT_div_final_e #1#2#3#4#5#6% A final, q, trash, Q, L, B {% - \XINT@div@final@f {#1}% - {\romannumeral0\XINT@add@A 0{}#2000\W\X\Y\Z #4\W\X\Y\Z }% + \XINT_div_final_f {#1}% + {\romannumeral0\XINT_add_A 0{}#2000\W\X\Y\Z #4\W\X\Y\Z }% }% -\def\XINT@div@final@f #1#2#3% R,Q \`a d\'evelopper,c +\def\XINT_div_final_f #1#2#3% R,Q \`a d\'evelopper,c {% - \ifcase \XINT@Sgn {#1} - \xint@afterfi {\XINT@div@final@end {0}}% + \ifcase \XINT_Sgn {#1} + \xint_afterfi {\XINT_div_final_end {0}}% \or - \xint@afterfi {\expandafter\XINT@div@final@end\expandafter - {\romannumeral0\XINT@dsh@checksignx #3\Z {#1}}% + \xint_afterfi {\expandafter\XINT_div_final_end\expandafter + {\romannumeral0\XINT_dsh_checksignx #3\Z {#1}}% }% \fi {#2}% }% -\def\XINT@div@final@end #1#2% +\def\XINT_div_final_end #1#2% {% \expandafter\space\expandafter {#2}{#1}% }% -\def\XINT@div@body@a #1% +\def\XINT_div_body_a #1% {% - \XINT@div@body@b #1\Z {#1}% + \XINT_div_body_b #1\Z {#1}% }% -\def\XINT@div@body@b #1#2#3#4#5#6#7#8#9\Z +\def\XINT_div_body_b #1#2#3#4#5#6#7#8#9\Z {% - \XINT@div@body@c {#1#2#3#4#5#6#7#8}% + \XINT_div_body_c {#1#2#3#4#5#6#7#8}% }% -\def\XINT@div@body@c #1#2#3% +\def\XINT_div_body_c #1#2#3% {% - \XINT@div@body@d {#3}{}#2\Z {#1}{#3}% + \XINT_div_body_d {#3}{}#2\Z {#1}{#3}% }% -\def\XINT@div@body@d #1#2#3#4#5#6% +\def\XINT_div_body_d #1#2#3#4#5#6% {% \ifnum #1 > 0 - \expandafter\XINT@div@body@d + \expandafter\XINT_div_body_d \expandafter{\the\numexpr #1-4\expandafter }% \else - \expandafter\XINT@div@body@e + \expandafter\XINT_div_body_e \fi {#6#5#4#3#2}% }% -\def\XINT@div@body@e #1#2\Z #3% +\def\XINT_div_body_e #1#2\Z #3% {% - \XINT@div@body@f {#3}{#1}{#2}% + \XINT_div_body_f {#3}{#1}{#2}% }% -\def\XINT@div@body@f #1#2#3#4#5#6#7#8% +\def\XINT_div_body_f #1#2#3#4#5#6#7#8% {% - \expandafter\XINT@div@body@gg + \expandafter\XINT_div_body_gg \the\numexpr (#1+(#5+1)/2)/(#5+1)+99999\relax {#8}{#2}{#8}{#4}{#5}{#3}{#6}{#7}{#8}% }% -\def\XINT@div@body@gg #1#2#3#4#5#6% +\def\XINT_div_body_gg #1#2#3#4#5#6% {% - \xint@UDzerofork - #2\dummy \XINT@div@body@gk - 0\dummy {\XINT@div@body@ggk #2}% - \xint@UDkrof + \xint_UDzerofork + #2\dummy \XINT_div_body_gk + 0\dummy {\XINT_div_body_ggk #2}% + \krof {#3#4#5#6}% }% -\def\XINT@div@body@gk #1#2#3% +\def\XINT_div_body_gk #1#2#3% {% - \expandafter\XINT@div@body@h - \romannumeral0\XINT@div@sub@xpxp - {\romannumeral0\XINT@mul@Mr {#1}#2\Z\Z\Z\Z }{#3}\Z {#1}% + \expandafter\XINT_div_body_h + \romannumeral0\XINT_div_sub_xpxp + {\romannumeral0\XINT_mul_Mr {#1}#2\Z\Z\Z\Z }{#3}\Z {#1}% }% -\def\XINT@div@body@ggk #1#2#3% +\def\XINT_div_body_ggk #1#2#3% {% - \expandafter \XINT@div@body@gggk \expandafter - {\romannumeral0\XINT@mul@Mr {#1}0000#3\Z\Z\Z\Z }% - {\romannumeral0\XINT@mul@Mr {#2}#3\Z\Z\Z\Z }% + \expandafter \XINT_div_body_gggk \expandafter + {\romannumeral0\XINT_mul_Mr {#1}0000#3\Z\Z\Z\Z }% + {\romannumeral0\XINT_mul_Mr {#2}#3\Z\Z\Z\Z }% {#1#2}% }% -\def\XINT@div@body@gggk #1#2#3#4% +\def\XINT_div_body_gggk #1#2#3#4% {% - \expandafter\XINT@div@body@h - \romannumeral0\XINT@div@sub@xpxp - {\romannumeral0\expandafter\XINT@mul@Ar + \expandafter\XINT_div_body_h + \romannumeral0\XINT_div_sub_xpxp + {\romannumeral0\expandafter\XINT_mul_Ar \expandafter0\expandafter{\expandafter}#2\W\X\Y\Z #1\W\X\Y\Z }% {#4}\Z {#3}% }% -\def\XINT@div@body@h #1#2#3#4#5#6#7#8#9\Z +\def\XINT_div_body_h #1#2#3#4#5#6#7#8#9\Z {% \ifnum #1#2#3#4>0 - \xint@afterfi{\XINT@div@body@i {#1#2#3#4#5#6#7#8}}% + \xint_afterfi{\XINT_div_body_i {#1#2#3#4#5#6#7#8}}% \else - \expandafter\XINT@div@body@k + \expandafter\XINT_div_body_k \fi {#1#2#3#4#5#6#7#8#9}% }% -\def\XINT@div@body@k #1#2#3% +\def\XINT_div_body_k #1#2#3% {% - \XINT@div@body@l {#1}{#2}% + \XINT_div_body_l {#1}{#2}% }% -\def\XINT@div@body@i #1#2#3#4#5#6% +\def\XINT_div_body_i #1#2#3#4#5#6% {% - \expandafter\XINT@div@body@j + \expandafter\XINT_div_body_j \expandafter{\the\numexpr (#1+(#6+1)/2)/(#6+1)-1}% {#2}{#3}{#4}{#5}{#6}% }% -\def\XINT@div@body@j #1#2#3#4% +\def\XINT_div_body_j #1#2#3#4% {% - \expandafter \XINT@div@body@l \expandafter - {\romannumeral0\XINT@div@sub@xpxp - {\romannumeral0\XINT@mul@Mr {#1}#4\Z\Z\Z\Z }{\XINT@Rev{#2}}}% + \expandafter \XINT_div_body_l \expandafter + {\romannumeral0\XINT_div_sub_xpxp + {\romannumeral0\XINT_mul_Mr {#1}#4\Z\Z\Z\Z }{\XINT_Rev{#2}}}% {#3+#1}% }% -\def\XINT@div@body@l #1#2#3#4#5#6#7% +\def\XINT_div_body_l #1#2#3#4#5#6#7% {% - \expandafter\XINT@div@body@m + \expandafter\XINT_div_body_m \the\numexpr 100000000+#2\relax {#6}{#3}{#7}{#1#5}{#4}% }% -\def\XINT@div@body@m #1#2#3#4#5#6#7#8#9% +\def\XINT_div_body_m #1#2#3#4#5#6#7#8#9% {% \ifnum #2#3#4#5>0 - \xint@afterfi {\XINT@div@body@n {#9#8#7#6#5#4#3#2}}% + \xint_afterfi {\XINT_div_body_n {#9#8#7#6#5#4#3#2}}% \else - \xint@afterfi {\XINT@div@body@n {#9#8#7#6}}% + \xint_afterfi {\XINT_div_body_n {#9#8#7#6}}% \fi }% -\def\XINT@div@body@n #1#2% +\def\XINT_div_body_n #1#2% {% - \expandafter\XINT@div@body@o\expandafter - {\romannumeral0\XINT@addr@A 0{}#1\W\X\Y\Z #2\W\X\Y\Z }% + \expandafter\XINT_div_body_o\expandafter + {\romannumeral0\XINT_addr_A 0{}#1\W\X\Y\Z #2\W\X\Y\Z }% }% -\def\XINT@div@body@o #1#2#3#4% +\def\XINT_div_body_o #1#2#3#4% {% - \XINT@div@body@p {#3}{#2}{}#4\Z {#1}% + \XINT_div_body_p {#3}{#2}{}#4\Z {#1}% }% -\def\XINT@div@body@p #1#2#3#4#5#6#7% +\def\XINT_div_body_p #1#2#3#4#5#6#7% {% \ifnum #1 > #2 - \xint@afterfi + \xint_afterfi {\ifnum #4#5#6#7 > 0 - \expandafter\XINT@div@body@q + \expandafter\XINT_div_body_q \else - \expandafter\XINT@div@body@repeatp + \expandafter\XINT_div_body_repeatp \fi }% \else - \expandafter\XINT@div@gotofinal@a + \expandafter\XINT_div_gotofinal_a \fi {#1}{#2}{#3}#4#5#6#7% }% -\def\XINT@div@body@repeatp #1#2#3#4#5#6#7% +\def\XINT_div_body_repeatp #1#2#3#4#5#6#7% {% - \expandafter\XINT@div@body@p\expandafter{\the\numexpr #1-4}{#2}{0000#3}% + \expandafter\XINT_div_body_p\expandafter{\the\numexpr #1-4}{#2}{0000#3}% }% -\def\XINT@div@body@q #1#2#3#4\Z #5#6% +\def\XINT_div_body_q #1#2#3#4\Z #5#6% {% - \XINT@div@body@b #4\Z {#4}{#2}{#6}{#3#5}{#1}% + \XINT_div_body_b #4\Z {#4}{#2}{#6}{#3#5}{#1}% }% -\def\XINT@div@gotofinal@a #1#2#3#4\Z % +\def\XINT_div_gotofinal_a #1#2#3#4\Z % {% - \XINT@div@gotofinal@b #3\Z {#4}{#1}% + \XINT_div_gotofinal_b #3\Z {#4}{#1}% }% -\def\XINT@div@gotofinal@b 0000#1\Z #2#3#4#5% +\def\XINT_div_gotofinal_b 0000#1\Z #2#3#4#5% {% - \XINT@div@final@a {#2}{#3}{#5}{#1#4}{#3}% + \XINT_div_final_a {#2}{#3}{#5}{#1#4}{#3}% }% -\def\XINT@div@sub@xpxp #1% +\def\XINT_div_sub_xpxp #1% {% - \expandafter \XINT@div@sub@xpxp@ \expandafter{#1}% + \expandafter \XINT_div_sub_xpxp_ \expandafter{#1}% }% -\def\XINT@div@sub@xpxp@ #1#2% +\def\XINT_div_sub_xpxp_ #1#2% {% - \expandafter\expandafter\expandafter\XINT@div@sub@xpxp@@ + \expandafter\expandafter\expandafter\XINT_div_sub_xpxp__ #2\W\X\Y\Z #1\W\X\Y\Z }% -\def\XINT@div@sub@xpxp@@ +\def\XINT_div_sub_xpxp__ {% - \XINT@div@sub@A 1{}% + \XINT_div_sub_A 1{}% }% -\def\XINT@div@sub@A #1#2#3#4#5#6% +\def\XINT_div_sub_A #1#2#3#4#5#6% {% - \xint@w #3\xint@div@sub@az\W - \XINT@div@sub@B #1{#3#4#5#6}{#2}% + \xint_gob_til_w #3\xint_div_sub_az\W + \XINT_div_sub_B #1{#3#4#5#6}{#2}% }% -\def\XINT@div@sub@B #1#2#3#4\W\X\Y\Z #5#6#7#8% +\def\XINT_div_sub_B #1#2#3#4\W\X\Y\Z #5#6#7#8% {% - \xint@w #5\xint@div@sub@bz\W - \XINT@div@sub@onestep #1#2{#8#7#6#5}{#3}#4\W\X\Y\Z + \xint_gob_til_w #5\xint_div_sub_bz\W + \XINT_div_sub_onestep #1#2{#8#7#6#5}{#3}#4\W\X\Y\Z }% -\def\XINT@div@sub@onestep #1#2#3#4#5#6% +\def\XINT_div_sub_onestep #1#2#3#4#5#6% {% - \expandafter\XINT@div@sub@backtoA\the\numexpr 11#5#4#3#2-#6+#1-1\relax.% + \expandafter\XINT_div_sub_backtoA\the\numexpr 11#5#4#3#2-#6+#1-1\relax.% }% -\def\XINT@div@sub@backtoA #1#2#3.#4% +\def\XINT_div_sub_backtoA #1#2#3.#4% {% - \XINT@div@sub@A #2{#3#4}% + \XINT_div_sub_A #2{#3#4}% }% -\def\xint@div@sub@bz\W\XINT@div@sub@onestep #1#2#3#4#5#6#7% +\def\xint_div_sub_bz\W\XINT_div_sub_onestep #1#2#3#4#5#6#7% {% - \xint@UDzerofork - #1\dummy \XINT@div@sub@C % - 0\dummy \XINT@div@sub@D % pas de retenue - \xint@UDkrof + \xint_UDzerofork + #1\dummy \XINT_div_sub_C % + 0\dummy \XINT_div_sub_D % pas de retenue + \krof {#7}#2#3#4#5% }% -\def\XINT@div@sub@D #1#2\W\X\Y\Z +\def\XINT_div_sub_D #1#2\W\X\Y\Z {% \expandafter\space \romannumeral0% - \XINT@rord@main {}#2% - \xint@UNDEF - \xint@undef\xint@undef\xint@undef\xint@undef - \xint@undef\xint@undef\xint@undef\xint@undef - \xint@UNDEF + \XINT_rord_main {}#2% + \xint_relax + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_relax #1% }% -\def\XINT@div@sub@C #1#2#3#4#5% +\def\XINT_div_sub_C #1#2#3#4#5% {% - \xint@w #2\xint@div@sub@cz\W - \XINT@div@sub@AC@onestep {#5#4#3#2}{#1}% + \xint_gob_til_w #2\xint_div_sub_cz\W + \XINT_div_sub_AC_onestep {#5#4#3#2}{#1}% }% -\def\XINT@div@sub@AC@onestep #1% +\def\XINT_div_sub_AC_onestep #1% {% - \expandafter\XINT@div@sub@backtoC\the\numexpr 11#1-1\relax.% + \expandafter\XINT_div_sub_backtoC\the\numexpr 11#1-1\relax.% }% -\def\XINT@div@sub@backtoC #1#2#3.#4% +\def\XINT_div_sub_backtoC #1#2#3.#4% {% - \XINT@div@sub@AC@checkcarry #2{#3#4}% la retenue va \^etre examin\'ee + \XINT_div_sub_AC_checkcarry #2{#3#4}% la retenue va \^etre examin\'ee }% -\def\XINT@div@sub@AC@checkcarry #1% +\def\XINT_div_sub_AC_checkcarry #1% {% - \xint@one #1\xint@div@sub@AC@nocarry 1\XINT@div@sub@C + \xint_gob_til_one #1\xint_div_sub_AC_nocarry 1\XINT_div_sub_C }% -\def\xint@div@sub@AC@nocarry 1\XINT@div@sub@C #1#2\W\X\Y\Z +\def\xint_div_sub_AC_nocarry 1\XINT_div_sub_C #1#2\W\X\Y\Z {% \expandafter\space \romannumeral0% - \XINT@rord@main {}#2% - \xint@UNDEF - \xint@undef\xint@undef\xint@undef\xint@undef - \xint@undef\xint@undef\xint@undef\xint@undef - \xint@UNDEF + \XINT_rord_main {}#2% + \xint_relax + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_relax #1% }% -\def\xint@div@sub@cz\W\XINT@div@sub@AC@onestep #1#2{ #2}% -\def\xint@div@sub@az\W\XINT@div@sub@B #1#2#3#4\Z { #3}% +\def\xint_div_sub_cz\W\XINT_div_sub_AC_onestep #1#2{ #2}% +\def\xint_div_sub_az\W\XINT_div_sub_B #1#2#3#4\Z { #3}% \def\xintiFDg {\romannumeral0\xintifdg }% \def\xintifdg #1% {% - \expandafter\XINT@fdg \romannumeral-`0#1\W\Z + \expandafter\XINT_fdg \romannumeral-`0#1\W\Z }% \let\xintFDg\xintiFDg \let\xintfdg\xintifdg -\def\XINT@FDg #1{\romannumeral0\XINT@fdg #1\W\Z }% -\def\XINT@fdg #1#2#3\Z +\def\XINT_FDg #1{\romannumeral0\XINT_fdg #1\W\Z }% +\def\XINT_fdg #1#2#3\Z {% - \xint@UDzerominusfork + \xint_UDzerominusfork #1-\dummy { 0}% zero 0#1\dummy { #2}% negative 0-\dummy { #1}% positive - \xint@UDkrof + \krof }% \def\xintiLDg {\romannumeral0\xintildg }% \def\xintildg #1% {% - \expandafter\XINT@ldg\expandafter {\romannumeral-`0#1}% + \expandafter\XINT_ldg\expandafter {\romannumeral-`0#1}% }% \let\xintLDg\xintiLDg \let\xintldg\xintildg -\def\XINT@LDg #1{\romannumeral0\XINT@ldg {#1}}% -\def\XINT@ldg #1% +\def\XINT_LDg #1{\romannumeral0\XINT_ldg {#1}}% +\def\XINT_ldg #1% {% - \expandafter\XINT@ldg@\romannumeral0\XINT@rev {#1}\Z + \expandafter\XINT_ldg_\romannumeral0\XINT_rev {#1}\Z }% -\def\XINT@ldg@ #1#2\Z{ #1}% +\def\XINT_ldg_ #1#2\Z{ #1}% \def\xintiMON {\romannumeral0\xintimon }% \def\xintimon #1% {% \ifodd\xintiLDg {#1} - \xint@afterfi{ -1}% + \xint_afterfi{ -1}% \else - \xint@afterfi{ 1}% + \xint_afterfi{ 1}% \fi }% \def\xintiMMON {\romannumeral0\xintimmon }% \def\xintimmon #1% {% \ifodd\xintiLDg {#1} - \xint@afterfi{ 1}% + \xint_afterfi{ 1}% \else - \xint@afterfi{ -1}% + \xint_afterfi{ -1}% \fi }% \let\xintMON\xintiMON \let\xintmon\xintimon @@ -2820,198 +2840,198 @@ \def\xintiodd #1% {% \ifodd\xintiLDg{#1} - \xint@afterfi{ 1}% + \xint_afterfi{ 1}% \else - \xint@afterfi{ 0}% + \xint_afterfi{ 0}% \fi }% -\def\XINT@Odd #1% +\def\XINT_Odd #1% {\romannumeral0% - \ifodd\XINT@LDg{#1} - \xint@afterfi{ 1}% + \ifodd\XINT_LDg{#1} + \xint_afterfi{ 1}% \else - \xint@afterfi{ 0}% + \xint_afterfi{ 0}% \fi }% \let\xintOdd\xintiOdd \let\xintodd\xintiodd \def\xintDSL {\romannumeral0\xintdsl }% \def\xintdsl #1% {% - \expandafter\XINT@dsl \romannumeral-`0#1\Z + \expandafter\XINT_dsl \romannumeral-`0#1\Z }% -\def\XINT@DSL #1{\romannumeral0\XINT@dsl #1\Z }% -\def\XINT@dsl #1% +\def\XINT_DSL #1{\romannumeral0\XINT_dsl #1\Z }% +\def\XINT_dsl #1% {% - \xint@zero #1\xint@dsl@zero 0\XINT@dsl@ #1% + \xint_gob_til_zero #1\xint_dsl_zero 0\XINT_dsl_ #1% }% -\def\xint@dsl@zero 0\XINT@dsl@ 0#1\Z { 0}% -\def\XINT@dsl@ #1\Z { #10}% +\def\xint_dsl_zero 0\XINT_dsl_ 0#1\Z { 0}% +\def\XINT_dsl_ #1\Z { #10}% \def\xintDSR {\romannumeral0\xintdsr }% \def\xintdsr #1% {% - \expandafter\XINT@dsr@a\expandafter {\romannumeral-`0#1}\W\Z + \expandafter\XINT_dsr_a\expandafter {\romannumeral-`0#1}\W\Z }% -\def\XINT@DSR #1{\romannumeral0\XINT@dsr@a {#1}\W\Z }% -\def\XINT@dsr@a +\def\XINT_DSR #1{\romannumeral0\XINT_dsr_a {#1}\W\Z }% +\def\XINT_dsr_a {% - \expandafter\XINT@dsr@b\romannumeral0\XINT@rev + \expandafter\XINT_dsr_b\romannumeral0\XINT_rev }% -\def\XINT@dsr@b #1#2#3\Z +\def\XINT_dsr_b #1#2#3\Z {% - \xint@w #2\xint@dsr@onedigit\W - \xint@minus #2\xint@dsr@onedigit-% - \expandafter\XINT@dsr@removew - \romannumeral0\XINT@rev {#2#3}% + \xint_gob_til_w #2\xint_dsr_onedigit\W + \xint_minus #2\xint_dsr_onedigit-% + \expandafter\XINT_dsr_removew + \romannumeral0\XINT_rev {#2#3}% }% -\def\xint@dsr@onedigit #1\XINT@rev #2{ 0}% -\def\XINT@dsr@removew #1\W { }% +\def\xint_dsr_onedigit #1\XINT_rev #2{ 0}% +\def\XINT_dsr_removew #1\W { }% \def\xintDSHr {\romannumeral0\xintdshr }% \def\xintdshr #1% {% - \expandafter\XINT@dshr@checkxpositive \the\numexpr #1\relax\Z + \expandafter\XINT_dshr_checkxpositive \the\numexpr #1\relax\Z }% -\def\XINT@dshr@checkxpositive #1% +\def\XINT_dshr_checkxpositive #1% {% - \xint@UDzerominusfork - 0#1\dummy \XINT@dshr@xzeroorneg - #1-\dummy \XINT@dshr@xzeroorneg - 0-\dummy \XINT@dshr@xpositive - \xint@UDkrof #1% + \xint_UDzerominusfork + 0#1\dummy \XINT_dshr_xzeroorneg + #1-\dummy \XINT_dshr_xzeroorneg + 0-\dummy \XINT_dshr_xpositive + \krof #1% }% -\def\XINT@dshr@xzeroorneg #1\Z #2{ 0}% -\def\XINT@dshr@xpositive #1\Z +\def\XINT_dshr_xzeroorneg #1\Z #2{ 0}% +\def\XINT_dshr_xpositive #1\Z {% - \expandafter\xint@secondoftwo@andstop\romannumeral0\xintdsx {#1}% + \expandafter\xint_secondoftwo_andstop\romannumeral0\xintdsx {#1}% }% \def\xintDSH {\romannumeral0\xintdsh }% \def\xintdsh #1#2% {% - \expandafter\xint@dsh\expandafter {\romannumeral-`0#2}{#1}% + \expandafter\xint_dsh\expandafter {\romannumeral-`0#2}{#1}% }% -\def\xint@dsh #1#2% +\def\xint_dsh #1#2% {% - \expandafter\XINT@dsh@checksignx \the\numexpr #2\relax\Z {#1}% + \expandafter\XINT_dsh_checksignx \the\numexpr #2\relax\Z {#1}% }% -\def\XINT@dsh@checksignx #1% +\def\XINT_dsh_checksignx #1% {% - \xint@UDzerominusfork - #1-\dummy \XINT@dsh@xiszero - 0#1\dummy \XINT@dsx@xisNeg@checkA % on passe direct dans DSx - 0-\dummy {\XINT@dsh@xisPos #1}% - \xint@UDkrof + \xint_UDzerominusfork + #1-\dummy \XINT_dsh_xiszero + 0#1\dummy \XINT_dsx_xisNeg_checkA % on passe direct dans DSx + 0-\dummy {\XINT_dsh_xisPos #1}% + \krof }% -\def\XINT@dsh@xiszero #1\Z #2{ #2}% -\def\XINT@dsh@xisPos #1\Z #2% +\def\XINT_dsh_xiszero #1\Z #2{ #2}% +\def\XINT_dsh_xisPos #1\Z #2% {% - \expandafter\xint@firstoftwo@andstop - \romannumeral0\XINT@dsx@checksignA #2\Z {#1}% via DSx + \expandafter\xint_firstoftwo_andstop + \romannumeral0\XINT_dsx_checksignA #2\Z {#1}% via DSx }% \def\xintDSx {\romannumeral0\xintdsx }% \def\xintdsx #1#2% {% - \expandafter\xint@dsx\expandafter {\romannumeral-`0#2}{#1}% + \expandafter\xint_dsx\expandafter {\romannumeral-`0#2}{#1}% }% -\def\xint@dsx #1#2% +\def\xint_dsx #1#2% {% - \expandafter\XINT@dsx@checksignx \the\numexpr #2\relax\Z {#1}% + \expandafter\XINT_dsx_checksignx \the\numexpr #2\relax\Z {#1}% }% -\def\XINT@DSx #1#2{\romannumeral0\XINT@dsx@checksignx #1\Z {#2}}% -\def\XINT@dsx #1#2{\XINT@dsx@checksignx #1\Z {#2}}% -\def\XINT@dsx@checksignx #1% +\def\XINT_DSx #1#2{\romannumeral0\XINT_dsx_checksignx #1\Z {#2}}% +\def\XINT_dsx #1#2{\XINT_dsx_checksignx #1\Z {#2}}% +\def\XINT_dsx_checksignx #1% {% - \xint@UDzerominusfork - #1-\dummy \XINT@dsx@xisZero - 0#1\dummy \XINT@dsx@xisNeg@checkA - 0-\dummy {\XINT@dsx@xisPos #1}% - \xint@UDkrof + \xint_UDzerominusfork + #1-\dummy \XINT_dsx_xisZero + 0#1\dummy \XINT_dsx_xisNeg_checkA + 0-\dummy {\XINT_dsx_xisPos #1}% + \krof }% -\def\XINT@dsx@xisZero #1\Z #2{ {#2}{0}}% attention comme x > 0 -\def\XINT@dsx@xisNeg@checkA #1\Z #2% +\def\XINT_dsx_xisZero #1\Z #2{ {#2}{0}}% attention comme x > 0 +\def\XINT_dsx_xisNeg_checkA #1\Z #2% {% - \XINT@dsx@xisNeg@checkA@ #2\Z {#1}% + \XINT_dsx_xisNeg_checkA_ #2\Z {#1}% }% -\def\XINT@dsx@xisNeg@checkA@ #1#2\Z #3% +\def\XINT_dsx_xisNeg_checkA_ #1#2\Z #3% {% - \xint@zero #1\XINT@dsx@xisNeg@Azero 0% - \XINT@dsx@xisNeg@checkx {#3}{#3}\Z {#1#2}% + \xint_gob_til_zero #1\XINT_dsx_xisNeg_Azero 0% + \XINT_dsx_xisNeg_checkx {#3}{#3}\Z {#1#2}% }% -\def\XINT@dsx@xisNeg@Azero #1\Z #2{ 0}% -\def\XINT@dsx@xisNeg@checkx #1% +\def\XINT_dsx_xisNeg_Azero #1\Z #2{ 0}% +\def\XINT_dsx_xisNeg_checkx #1% {% - \ifnum #1> 999999999 - \xint@afterfi + \ifnum #1>999999999 + \xint_afterfi {\xintError:TooBigDecimalShift - \expandafter\space\expandafter 0\xint@gobble@iii }% + \expandafter\space\expandafter 0\xint_gobble_iii }% \else - \expandafter \XINT@dsx@zeroloop + \expandafter \XINT_dsx_zeroloop \fi }% -\def\XINT@dsx@zeroloop #1% +\def\XINT_dsx_zeroloop #1% {% - \ifnum #1<9 \XINT@dsx@exita\fi - \expandafter\XINT@dsx@zeroloop\expandafter + \ifnum #1<9 \XINT_dsx_exita\fi + \expandafter\XINT_dsx_zeroloop\expandafter {\the\numexpr #1-8}00000000% }% -\def\XINT@dsx@exita\fi\expandafter\XINT@dsx@zeroloop +\def\XINT_dsx_exita\fi\expandafter\XINT_dsx_zeroloop {% - \fi\expandafter\XINT@dsx@exitb + \fi\expandafter\XINT_dsx_exitb }% -\def\XINT@dsx@exitb #1% +\def\XINT_dsx_exitb #1% {% \expandafter\expandafter\expandafter - \XINT@dsx@addzeros\csname xint@gobble@\romannumeral -#1\endcsname + \XINT_dsx_addzeros\csname xint_gobble_\romannumeral -#1\endcsname }% -\def\XINT@dsx@addzeros #1\Z #2{ #2#1}% -\def\XINT@dsx@xisPos #1\Z #2% +\def\XINT_dsx_addzeros #1\Z #2{ #2#1}% +\def\XINT_dsx_xisPos #1\Z #2% {% - \XINT@dsx@checksignA #2\Z {#1}% + \XINT_dsx_checksignA #2\Z {#1}% }% -\def\XINT@dsx@checksignA #1% +\def\XINT_dsx_checksignA #1% {% - \xint@UDzerominusfork - #1-\dummy \XINT@dsx@AisZero - 0#1\dummy \XINT@dsx@AisNeg - 0-\dummy {\XINT@dsx@AisPos #1}% - \xint@UDkrof + \xint_UDzerominusfork + #1-\dummy \XINT_dsx_AisZero + 0#1\dummy \XINT_dsx_AisNeg + 0-\dummy {\XINT_dsx_AisPos #1}% + \krof }% -\def\XINT@dsx@AisZero #1\Z #2{ {0}{0}}% -\def\XINT@dsx@AisNeg #1\Z #2% +\def\XINT_dsx_AisZero #1\Z #2{ {0}{0}}% +\def\XINT_dsx_AisNeg #1\Z #2% {% - \expandafter\XINT@dsx@AisNeg@dosplit@andcheckfirst - \romannumeral0\XINT@split@checksizex {#2}{#1}% + \expandafter\XINT_dsx_AisNeg_dosplit_andcheckfirst + \romannumeral0\XINT_split_checksizex {#2}{#1}% }% -\def\XINT@dsx@AisNeg@dosplit@andcheckfirst #1% +\def\XINT_dsx_AisNeg_dosplit_andcheckfirst #1% {% - \XINT@dsx@AisNeg@checkiffirstempty #1\Z + \XINT_dsx_AisNeg_checkiffirstempty #1\Z }% -\def\XINT@dsx@AisNeg@checkiffirstempty #1% +\def\XINT_dsx_AisNeg_checkiffirstempty #1% {% - \xint@z #1\XINT@dsx@AisNeg@finish@zero\Z - \XINT@dsx@AisNeg@finish@notzero #1% + \xint_gob_til_z #1\XINT_dsx_AisNeg_finish_zero\Z + \XINT_dsx_AisNeg_finish_notzero #1% }% -\def\XINT@dsx@AisNeg@finish@zero\Z - \XINT@dsx@AisNeg@finish@notzero\Z #1% +\def\XINT_dsx_AisNeg_finish_zero\Z + \XINT_dsx_AisNeg_finish_notzero\Z #1% {% - \expandafter\XINT@dsx@end - \expandafter {\romannumeral0\XINT@num {-#1}}{0}% + \expandafter\XINT_dsx_end + \expandafter {\romannumeral0\XINT_num {-#1}}{0}% }% -\def\XINT@dsx@AisNeg@finish@notzero #1\Z #2% +\def\XINT_dsx_AisNeg_finish_notzero #1\Z #2% {% - \expandafter\XINT@dsx@end - \expandafter {\romannumeral0\XINT@num {#2}}{-#1}% + \expandafter\XINT_dsx_end + \expandafter {\romannumeral0\XINT_num {#2}}{-#1}% }% -\def\XINT@dsx@AisPos #1\Z #2% +\def\XINT_dsx_AisPos #1\Z #2% {% - \expandafter\XINT@dsx@AisPos@finish - \romannumeral0\XINT@split@checksizex {#2}{#1}% + \expandafter\XINT_dsx_AisPos_finish + \romannumeral0\XINT_split_checksizex {#2}{#1}% }% -\def\XINT@dsx@AisPos@finish #1#2% +\def\XINT_dsx_AisPos_finish #1#2% {% - \expandafter\XINT@dsx@end - \expandafter {\romannumeral0\XINT@num {#2}}% - {\romannumeral0\XINT@num {#1}}% + \expandafter\XINT_dsx_end + \expandafter {\romannumeral0\XINT_num {#2}}% + {\romannumeral0\XINT_num {#1}}% }% -\def\XINT@dsx@end #1#2% +\def\XINT_dsx_end #1#2% {% \expandafter\space\expandafter{#2}{#1}% }% @@ -3019,156 +3039,158 @@ \def\xintDecSplitR {\romannumeral0\xintdecsplitr }% \def\xintdecsplitl {% - \expandafter\xint@firstoftwo@andstop + \expandafter\xint_firstoftwo_andstop \romannumeral0\xintdecsplit }% \def\xintdecsplitr {% - \expandafter\xint@secondoftwo@andstop + \expandafter\xint_secondoftwo_andstop \romannumeral0\xintdecsplit }% \def\xintDecSplit {\romannumeral0\xintdecsplit }% \def\xintdecsplit #1#2% {% - \expandafter \xint@split \expandafter + \expandafter \xint_split \expandafter {\romannumeral0\xintiabs {#2}}{#1}% fait expansion de A }% -\def\xint@split #1#2% +\def\xint_split #1#2% {% - \expandafter\XINT@split@checksizex\expandafter{\the\numexpr #2}{#1}% + \expandafter\XINT_split_checksizex\expandafter{\the\numexpr #2}{#1}% }% -\def\XINT@split@checksizex #1% 999999999 is anyhow very big, could be reduced +\def\XINT_split_checksizex #1% 999999999 is anyhow very big, could be reduced {% - \ifnum\numexpr\XINT@Abs{#1}\relax > 999999999 - \xint@afterfi {\xintError:TooBigDecimalSplit\XINT@split@bigx }% + \ifnum\numexpr\XINT_Abs{#1}>999999999 + \xint_afterfi {\xintError:TooBigDecimalSplit\XINT_split_bigx }% \else - \expandafter\XINT@split@xfork + \expandafter\XINT_split_xfork \fi #1\Z }% -\def\XINT@split@bigx #1\Z #2% +\def\XINT_split_bigx #1\Z #2% {% - \ifcase\XINT@Sgn {#1} - \or \xint@afterfi { {}{#2}}% positive big x + \ifcase\XINT_Sgn {#1} + \or \xint_afterfi { {}{#2}}% positive big x \else - \xint@afterfi { {#2}{}}% negative big x + \xint_afterfi { {#2}{}}% negative big x \fi }% -\def\XINT@split@xfork #1% +\def\XINT_split_xfork #1% {% - \xint@UDzerominusfork - #1-\dummy \XINT@split@zerosplit - 0#1\dummy \XINT@split@fromleft - 0-\dummy {\XINT@split@fromright #1}% - \xint@UDkrof + \xint_UDzerominusfork + #1-\dummy \XINT_split_zerosplit + 0#1\dummy \XINT_split_fromleft + 0-\dummy {\XINT_split_fromright #1}% + \krof }% -\def\XINT@split@zerosplit #1\Z #2{ {#2}{}}% -\def\XINT@split@fromleft #1\Z #2% +\def\XINT_split_zerosplit #1\Z #2{ {#2}{}}% +\def\XINT_split_fromleft #1\Z #2% {% - \XINT@split@fromleft@loop {#1}{}#2\W\W\W\W\W\W\W\W\Z + \XINT_split_fromleft_loop {#1}{}#2\W\W\W\W\W\W\W\W\Z }% -\def\XINT@split@fromleft@loop #1% +\def\XINT_split_fromleft_loop #1% {% - \ifnum #1<8 \XINT@split@fromleft@exita\fi - \expandafter\XINT@split@fromleft@loop@perhaps\expandafter - {\the\numexpr #1-8\expandafter}\XINT@split@fromleft@eight + \ifnum #1<8 \XINT_split_fromleft_exita\fi + \expandafter\XINT_split_fromleft_loop_perhaps\expandafter + {\the\numexpr #1-8\expandafter}\XINT_split_fromleft_eight }% -\def\XINT@split@fromleft@eight #1#2#3#4#5#6#7#8#9{#9{#1#2#3#4#5#6#7#8#9}}% -\def\XINT@split@fromleft@loop@perhaps #1#2% +\def\XINT_split_fromleft_eight #1#2#3#4#5#6#7#8#9{#9{#1#2#3#4#5#6#7#8#9}}% +\def\XINT_split_fromleft_loop_perhaps #1#2% {% - \xint@w #2\XINT@split@fromleft@toofar\W\XINT@split@fromleft@loop {#1}% + \xint_gob_til_w #2\XINT_split_fromleft_toofar\W + \XINT_split_fromleft_loop {#1}% }% -\def\XINT@split@fromleft@toofar\W\XINT@split@fromleft@loop #1#2#3\Z +\def\XINT_split_fromleft_toofar\W\XINT_split_fromleft_loop #1#2#3\Z {% - \XINT@split@fromleft@toofar@b #2\Z + \XINT_split_fromleft_toofar_b #2\Z }% -\def\XINT@split@fromleft@toofar@b #1\W #2\Z { {#1}{}}% -\def\XINT@split@fromleft@exita\fi - \expandafter\XINT@split@fromleft@loop@perhaps\expandafter #1#2% - {\fi \XINT@split@fromleft@exitb #1}% -\def\XINT@split@fromleft@exitb\the\numexpr #1-8\expandafter +\def\XINT_split_fromleft_toofar_b #1\W #2\Z { {#1}{}}% +\def\XINT_split_fromleft_exita\fi + \expandafter\XINT_split_fromleft_loop_perhaps\expandafter #1#2% + {\fi \XINT_split_fromleft_exitb #1}% +\def\XINT_split_fromleft_exitb\the\numexpr #1-8\expandafter {% - \csname XINT@split@fromleft@endsplit@\romannumeral #1\endcsname + \csname XINT_split_fromleft_endsplit_\romannumeral #1\endcsname }% -\def\XINT@split@fromleft@endsplit@ #1#2\W #3\Z { {#1}{#2}}% -\def\XINT@split@fromleft@endsplit@i #1#2% - {\XINT@split@fromleft@checkiftoofar #2{#1#2}}% -\def\XINT@split@fromleft@endsplit@ii #1#2#3% - {\XINT@split@fromleft@checkiftoofar #3{#1#2#3}}% -\def\XINT@split@fromleft@endsplit@iii #1#2#3#4% - {\XINT@split@fromleft@checkiftoofar #4{#1#2#3#4}}% -\def\XINT@split@fromleft@endsplit@iv #1#2#3#4#5% - {\XINT@split@fromleft@checkiftoofar #5{#1#2#3#4#5}}% -\def\XINT@split@fromleft@endsplit@v #1#2#3#4#5#6% - {\XINT@split@fromleft@checkiftoofar #6{#1#2#3#4#5#6}}% -\def\XINT@split@fromleft@endsplit@vi #1#2#3#4#5#6#7% - {\XINT@split@fromleft@checkiftoofar #7{#1#2#3#4#5#6#7}}% -\def\XINT@split@fromleft@endsplit@vii #1#2#3#4#5#6#7#8% - {\XINT@split@fromleft@checkiftoofar #8{#1#2#3#4#5#6#7#8}}% -\def\XINT@split@fromleft@checkiftoofar #1#2#3\W #4\Z +\def\XINT_split_fromleft_endsplit_ #1#2\W #3\Z { {#1}{#2}}% +\def\XINT_split_fromleft_endsplit_i #1#2% + {\XINT_split_fromleft_checkiftoofar #2{#1#2}}% +\def\XINT_split_fromleft_endsplit_ii #1#2#3% + {\XINT_split_fromleft_checkiftoofar #3{#1#2#3}}% +\def\XINT_split_fromleft_endsplit_iii #1#2#3#4% + {\XINT_split_fromleft_checkiftoofar #4{#1#2#3#4}}% +\def\XINT_split_fromleft_endsplit_iv #1#2#3#4#5% + {\XINT_split_fromleft_checkiftoofar #5{#1#2#3#4#5}}% +\def\XINT_split_fromleft_endsplit_v #1#2#3#4#5#6% + {\XINT_split_fromleft_checkiftoofar #6{#1#2#3#4#5#6}}% +\def\XINT_split_fromleft_endsplit_vi #1#2#3#4#5#6#7% + {\XINT_split_fromleft_checkiftoofar #7{#1#2#3#4#5#6#7}}% +\def\XINT_split_fromleft_endsplit_vii #1#2#3#4#5#6#7#8% + {\XINT_split_fromleft_checkiftoofar #8{#1#2#3#4#5#6#7#8}}% +\def\XINT_split_fromleft_checkiftoofar #1#2#3\W #4\Z {% - \xint@w #1\XINT@split@fromleft@wenttoofar\W\space {#2}{#3}% + \xint_gob_til_w #1\XINT_split_fromleft_wenttoofar\W + \space {#2}{#3}% }% -\def\XINT@split@fromleft@wenttoofar\W\space #1% +\def\XINT_split_fromleft_wenttoofar\W\space #1% {% - \XINT@split@fromleft@wenttoofar@b #1\Z + \XINT_split_fromleft_wenttoofar_b #1\Z }% -\def\XINT@split@fromleft@wenttoofar@b #1\W #2\Z { {#1}}% -\def\XINT@split@fromright #1\Z #2% +\def\XINT_split_fromleft_wenttoofar_b #1\W #2\Z { {#1}}% +\def\XINT_split_fromright #1\Z #2% {% - \expandafter \XINT@split@fromright@a \expandafter - {\romannumeral0\XINT@rev {#2}}{#1}{#2}% + \expandafter \XINT_split_fromright_a \expandafter + {\romannumeral0\XINT_rev {#2}}{#1}{#2}% }% -\def\XINT@split@fromright@a #1#2% +\def\XINT_split_fromright_a #1#2% {% - \XINT@split@fromright@loop {#2}{}#1\W\W\W\W\W\W\W\W\Z + \XINT_split_fromright_loop {#2}{}#1\W\W\W\W\W\W\W\W\Z }% -\def\XINT@split@fromright@loop #1% +\def\XINT_split_fromright_loop #1% {% - \ifnum #1<8 \XINT@split@fromright@exita\fi - \expandafter\XINT@split@fromright@loop@perhaps\expandafter - {\the\numexpr #1-8\expandafter }\XINT@split@fromright@eight + \ifnum #1<8 \XINT_split_fromright_exita\fi + \expandafter\XINT_split_fromright_loop_perhaps\expandafter + {\the\numexpr #1-8\expandafter }\XINT_split_fromright_eight }% -\def\XINT@split@fromright@eight #1#2#3#4#5#6#7#8#9{#9{#9#8#7#6#5#4#3#2#1}}% -\def\XINT@split@fromright@loop@perhaps #1#2% +\def\XINT_split_fromright_eight #1#2#3#4#5#6#7#8#9{#9{#9#8#7#6#5#4#3#2#1}}% +\def\XINT_split_fromright_loop_perhaps #1#2% {% - \xint@w #2\XINT@split@fromright@toofar\W - \XINT@split@fromright@loop {#1}% + \xint_gob_til_w #2\XINT_split_fromright_toofar\W + \XINT_split_fromright_loop {#1}% }% -\def\XINT@split@fromright@toofar\W\XINT@split@fromright@loop #1#2#3\Z { {}}% -\def\XINT@split@fromright@exita\fi - \expandafter\XINT@split@fromright@loop@perhaps\expandafter #1#2% - {\fi \XINT@split@fromright@exitb #1}% -\def\XINT@split@fromright@exitb\the\numexpr #1-8\expandafter +\def\XINT_split_fromright_toofar\W\XINT_split_fromright_loop #1#2#3\Z { {}}% +\def\XINT_split_fromright_exita\fi + \expandafter\XINT_split_fromright_loop_perhaps\expandafter #1#2% + {\fi \XINT_split_fromright_exitb #1}% +\def\XINT_split_fromright_exitb\the\numexpr #1-8\expandafter {% - \csname XINT@split@fromright@endsplit@\romannumeral #1\endcsname + \csname XINT_split_fromright_endsplit_\romannumeral #1\endcsname }% -\def\XINT@split@fromright@endsplit@ #1#2\W #3\Z #4% +\def\XINT_split_fromright_endsplit_ #1#2\W #3\Z #4% {% - \expandafter\space\expandafter {\romannumeral0\XINT@rev{#2}}{#1}% + \expandafter\space\expandafter {\romannumeral0\XINT_rev{#2}}{#1}% }% -\def\XINT@split@fromright@endsplit@i #1#2% - {\XINT@split@fromright@checkiftoofar #2{#2#1}}% -\def\XINT@split@fromright@endsplit@ii #1#2#3% - {\XINT@split@fromright@checkiftoofar #3{#3#2#1}}% -\def\XINT@split@fromright@endsplit@iii #1#2#3#4% - {\XINT@split@fromright@checkiftoofar #4{#4#3#2#1}}% -\def\XINT@split@fromright@endsplit@iv #1#2#3#4#5% - {\XINT@split@fromright@checkiftoofar #5{#5#4#3#2#1}}% -\def\XINT@split@fromright@endsplit@v #1#2#3#4#5#6% - {\XINT@split@fromright@checkiftoofar #6{#6#5#4#3#2#1}}% -\def\XINT@split@fromright@endsplit@vi #1#2#3#4#5#6#7% - {\XINT@split@fromright@checkiftoofar #7{#7#6#5#4#3#2#1}}% -\def\XINT@split@fromright@endsplit@vii #1#2#3#4#5#6#7#8% - {\XINT@split@fromright@checkiftoofar #8{#8#7#6#5#4#3#2#1}}% -\def\XINT@split@fromright@checkiftoofar #1% +\def\XINT_split_fromright_endsplit_i #1#2% + {\XINT_split_fromright_checkiftoofar #2{#2#1}}% +\def\XINT_split_fromright_endsplit_ii #1#2#3% + {\XINT_split_fromright_checkiftoofar #3{#3#2#1}}% +\def\XINT_split_fromright_endsplit_iii #1#2#3#4% + {\XINT_split_fromright_checkiftoofar #4{#4#3#2#1}}% +\def\XINT_split_fromright_endsplit_iv #1#2#3#4#5% + {\XINT_split_fromright_checkiftoofar #5{#5#4#3#2#1}}% +\def\XINT_split_fromright_endsplit_v #1#2#3#4#5#6% + {\XINT_split_fromright_checkiftoofar #6{#6#5#4#3#2#1}}% +\def\XINT_split_fromright_endsplit_vi #1#2#3#4#5#6#7% + {\XINT_split_fromright_checkiftoofar #7{#7#6#5#4#3#2#1}}% +\def\XINT_split_fromright_endsplit_vii #1#2#3#4#5#6#7#8% + {\XINT_split_fromright_checkiftoofar #8{#8#7#6#5#4#3#2#1}}% +\def\XINT_split_fromright_checkiftoofar #1% {% - \xint@w #1\XINT@split@fromright@wenttoofar\W - \XINT@split@fromright@endsplit@ + \xint_gob_til_w #1\XINT_split_fromright_wenttoofar\W + \XINT_split_fromright_endsplit_ }% -\def\XINT@split@fromright@wenttoofar\W\XINT@split@fromright@endsplit@ #1\Z #2% +\def\XINT_split_fromright_wenttoofar\W\XINT_split_fromright_endsplit_ #1\Z #2% { {}{#2}}% -\XINT@restorecatcodes@endinput% +\XINT_restorecatcodes_endinput% \endinput %% %% End of file `xint.sty'. diff --git a/Master/texmf-dist/tex/generic/xint/xintcfrac.sty b/Master/texmf-dist/tex/generic/xint/xintcfrac.sty index 47af0cfe0de..7cbe6299ef0 100644 --- a/Master/texmf-dist/tex/generic/xint/xintcfrac.sty +++ b/Master/texmf-dist/tex/generic/xint/xintcfrac.sty @@ -22,7 +22,7 @@ %% in the same archive or directory.) %% %%---------------------------------------------------------------- -%% The xint bundle (version 1.06a of May 9, 2013) +%% The xint bundle (version 1.06b of May 14, 2013) %% xintcfrac: Expandable continued fractions with xint package %% Copyright (C) 2013 by Jean-Francois Burnol %%---------------------------------------------------------------- @@ -108,11 +108,11 @@ \endlinechar=13 % \catcode123=1 % { \catcode125=2 % } - \catcode64=11 % @ + \catcode95=11 % _ \def\x {% \endgroup - \edef\XINT@cfrac@restorecatcodes@endinput + \edef\XINT_cfrac_restorecatcodes_endinput {% \catcode93=\the\catcode93 % ] \catcode91=\the\catcode91 % [ @@ -129,7 +129,7 @@ \catcode45=\the\catcode45 % - \catcode44=\the\catcode44 % , \catcode35=\the\catcode35 % # - \catcode64=\the\catcode64 % @ + \catcode95=\the\catcode95 % _ \catcode125=\the\catcode125 % } \catcode123=\the\catcode123 % { \endlinechar=\the\endlinechar @@ -138,12 +138,13 @@ \catcode61=\the\catcode61\relax % = \noexpand\endinput }% - \XINT@setcatcodes + \XINT_setcatcodes \catcode91=12 % [ \catcode93=12 % ] }% \x \begingroup + \catcode64=11 % @ \catcode58=12 % : \expandafter\ifx\csname ProvidesPackage\endcsname\relax \def\x#1#2#3[#4]{\endgroup @@ -163,296 +164,297 @@ \fi \expandafter\x\csname ver@xintcfrac.sty\endcsname \ProvidesPackage{xintcfrac}% - [2013/05/09 v1.06a Expandable continued fractions with xint package (jfB)]% + [2013/05/14 v1.06b Expandable continued fractions with xint package (jfB)]% \def\xintCFrac {\romannumeral0\xintcfrac }% \def\xintcfrac #1% {% - \XINT@cfrac@opt@a #1\Z + \XINT_cfrac_opt_a #1\Z }% -\def\XINT@cfrac@opt@a #1% +\def\XINT_cfrac_opt_a #1% {% - \ifx#1[\XINT@cfrac@opt@b\fi \XINT@cfrac@noopt #1% + \ifx#1[\XINT_cfrac_opt_b\fi \XINT_cfrac_noopt #1% }% -\def\XINT@cfrac@noopt #1\Z +\def\XINT_cfrac_noopt #1\Z {% - \expandafter\XINT@cfrac@A\romannumeral0\xintraw {#1}\Z + \expandafter\XINT_cfrac_A\romannumeral0\xintraw {#1}\Z \relax\relax }% -\def\XINT@cfrac@opt@b\fi\XINT@cfrac@noopt [\Z #1]% +\def\XINT_cfrac_opt_b\fi\XINT_cfrac_noopt [\Z #1]% {% - \fi\csname XINT@cfrac@opt#1\endcsname + \fi\csname XINT_cfrac_opt#1\endcsname }% -\def\XINT@cfrac@optl #1% +\def\XINT_cfrac_optl #1% {% - \expandafter\XINT@cfrac@A\romannumeral0\xintraw {#1}\Z + \expandafter\XINT_cfrac_A\romannumeral0\xintraw {#1}\Z \relax\hfill }% -\def\XINT@cfrac@optc #1% +\def\XINT_cfrac_optc #1% {% - \expandafter\XINT@cfrac@A\romannumeral0\xintraw {#1}\Z + \expandafter\XINT_cfrac_A\romannumeral0\xintraw {#1}\Z \relax\relax }% -\def\XINT@cfrac@optr #1% +\def\XINT_cfrac_optr #1% {% - \expandafter\XINT@cfrac@A\romannumeral0\xintraw {#1}\Z + \expandafter\XINT_cfrac_A\romannumeral0\xintraw {#1}\Z \hfill\relax }% -\def\XINT@cfrac@A #1/#2\Z +\def\XINT_cfrac_A #1/#2\Z {% - \expandafter\XINT@cfrac@B\romannumeral0\xintidivision {#1}{#2}{#2}% + \expandafter\XINT_cfrac_B\romannumeral0\xintidivision {#1}{#2}{#2}% }% -\def\XINT@cfrac@B #1#2% +\def\XINT_cfrac_B #1#2% {% - \XINT@cfrac@C #2\Z {#1}% + \XINT_cfrac_C #2\Z {#1}% }% -\def\XINT@cfrac@C #1% +\def\XINT_cfrac_C #1% {% - \xint@zero #1\XINT@cfrac@integer 0\XINT@cfrac@D #1% + \xint_gob_til_zero #1\XINT_cfrac_integer 0\XINT_cfrac_D #1% }% -\def\XINT@cfrac@integer 0\XINT@cfrac@D 0#1\Z #2#3#4#5{ #2}% -\def\XINT@cfrac@D #1\Z #2#3{\XINT@cfrac@loop@a {#1}{#3}{#1}{{#2}}}% -\def\XINT@cfrac@loop@a +\def\XINT_cfrac_integer 0\XINT_cfrac_D 0#1\Z #2#3#4#5{ #2}% +\def\XINT_cfrac_D #1\Z #2#3{\XINT_cfrac_loop_a {#1}{#3}{#1}{{#2}}}% +\def\XINT_cfrac_loop_a {% - \expandafter\XINT@cfrac@loop@d\romannumeral0\XINT@div@prepare + \expandafter\XINT_cfrac_loop_d\romannumeral0\XINT_div_prepare }% -\def\XINT@cfrac@loop@d #1#2% +\def\XINT_cfrac_loop_d #1#2% {% - \XINT@cfrac@loop@e #2.{#1}% + \XINT_cfrac_loop_e #2.{#1}% }% -\def\XINT@cfrac@loop@e #1% +\def\XINT_cfrac_loop_e #1% {% - \xint@zero #1\xint@cfrac@loop@exit0\XINT@cfrac@loop@f #1% + \xint_gob_til_zero #1\xint_cfrac_loop_exit0\XINT_cfrac_loop_f #1% }% -\def\XINT@cfrac@loop@f #1.#2#3#4% +\def\XINT_cfrac_loop_f #1.#2#3#4% {% - \XINT@cfrac@loop@a {#1}{#3}{#1}{{#2}#4}% + \XINT_cfrac_loop_a {#1}{#3}{#1}{{#2}#4}% }% -\def\xint@cfrac@loop@exit0\XINT@cfrac@loop@f #1.#2#3#4#5#6% - {\XINT@cfrac@T #5#6{#2}#4\Z }% -\def\XINT@cfrac@T #1#2#3#4% +\def\xint_cfrac_loop_exit0\XINT_cfrac_loop_f #1.#2#3#4#5#6% + {\XINT_cfrac_T #5#6{#2}#4\Z }% +\def\XINT_cfrac_T #1#2#3#4% {% - \xint@z #4\XINT@cfrac@end\Z\XINT@cfrac@T #1#2{#4+\cfrac{#11#2}{#3}}% + \xint_gob_til_z #4\XINT_cfrac_end\Z\XINT_cfrac_T #1#2{#4+\cfrac{#11#2}{#3}}% }% -\def\XINT@cfrac@end\Z\XINT@cfrac@T #1#2#3% +\def\XINT_cfrac_end\Z\XINT_cfrac_T #1#2#3% {% - \XINT@cfrac@@end #3% + \XINT_cfrac__end #3% }% -\def\XINT@cfrac@@end \Z+\cfrac#1#2{ #2}% +\def\XINT_cfrac__end \Z+\cfrac#1#2{ #2}% \def\xintGCFrac {\romannumeral0\xintgcfrac }% \def\xintgcfrac #1% {% - \XINT@gcfrac@opt@a #1\Z + \XINT_gcfrac_opt_a #1\Z }% -\def\XINT@gcfrac@opt@a #1% +\def\XINT_gcfrac_opt_a #1% {% - \ifx#1[\XINT@gcfrac@opt@b\fi \XINT@gcfrac@noopt #1% + \ifx#1[\XINT_gcfrac_opt_b\fi \XINT_gcfrac_noopt #1% }% -\def\XINT@gcfrac@noopt #1\Z +\def\XINT_gcfrac_noopt #1\Z {% - \XINT@gcfrac #1+\W/\relax\relax + \XINT_gcfrac #1+\W/\relax\relax }% -\def\XINT@gcfrac@opt@b\fi\XINT@gcfrac@noopt [\Z #1]% +\def\XINT_gcfrac_opt_b\fi\XINT_gcfrac_noopt [\Z #1]% {% - \fi\csname XINT@gcfrac@opt#1\endcsname + \fi\csname XINT_gcfrac_opt#1\endcsname }% -\def\XINT@gcfrac@optl #1% +\def\XINT_gcfrac_optl #1% {% - \XINT@gcfrac #1+\W/\relax\hfill + \XINT_gcfrac #1+\W/\relax\hfill }% -\def\XINT@gcfrac@optc #1% +\def\XINT_gcfrac_optc #1% {% - \XINT@gcfrac #1+\W/\relax\relax + \XINT_gcfrac #1+\W/\relax\relax }% -\def\XINT@gcfrac@optr #1% +\def\XINT_gcfrac_optr #1% {% - \XINT@gcfrac #1+\W/\hfill\relax + \XINT_gcfrac #1+\W/\hfill\relax }% -\def\XINT@gcfrac +\def\XINT_gcfrac {% - \expandafter\XINT@gcfrac@enter\romannumeral-`0% + \expandafter\XINT_gcfrac_enter\romannumeral-`0% }% -\def\XINT@gcfrac@enter {\XINT@gcfrac@loop {}}% -\def\XINT@gcfrac@loop #1#2+#3/% +\def\XINT_gcfrac_enter {\XINT_gcfrac_loop {}}% +\def\XINT_gcfrac_loop #1#2+#3/% {% - \xint@w #3\XINT@gcfrac@endloop\W\XINT@gcfrac@loop {{#3}{#2}#1}% + \xint_gob_til_w #3\XINT_gcfrac_endloop\W + \XINT_gcfrac_loop {{#3}{#2}#1}% }% -\def\XINT@gcfrac@endloop\W\XINT@gcfrac@loop #1#2#3% +\def\XINT_gcfrac_endloop\W\XINT_gcfrac_loop #1#2#3% {% - \XINT@gcfrac@T #2#3#1\Z\Z + \XINT_gcfrac_T #2#3#1\Z\Z }% -\def\XINT@gcfrac@T #1#2#3#4{\XINT@gcfrac@U #1#2{\xintFrac{#4}}}% -\def\XINT@gcfrac@U #1#2#3#4#5% +\def\XINT_gcfrac_T #1#2#3#4{\XINT_gcfrac_U #1#2{\xintFrac{#4}}}% +\def\XINT_gcfrac_U #1#2#3#4#5% {% - \xint@z #5\XINT@gcfrac@end\Z\XINT@gcfrac@U + \xint_gob_til_z #5\XINT_gcfrac_end\Z\XINT_gcfrac_U #1#2{\xintFrac{#5}% \ifcase\xintSgn{#4} +\or+\else-\fi \cfrac{#1\xintFrac{\xintAbs{#4}}#2}{#3}}% }% -\def\XINT@gcfrac@end\Z\XINT@gcfrac@U #1#2#3% +\def\XINT_gcfrac_end\Z\XINT_gcfrac_U #1#2#3% {% - \XINT@gcfrac@@end #3% + \XINT_gcfrac__end #3% }% -\def\XINT@gcfrac@@end #1\cfrac#2#3{ #3}% +\def\XINT_gcfrac__end #1\cfrac#2#3{ #3}% \def\xintGCtoGCx {\romannumeral0\xintgctogcx }% \def\xintgctogcx #1#2#3% {% - \expandafter\XINT@gctgcx@start\expandafter {\romannumeral-`0#3}{#1}{#2}% + \expandafter\XINT_gctgcx_start\expandafter {\romannumeral-`0#3}{#1}{#2}% }% -\def\XINT@gctgcx@start #1#2#3{\XINT@gctgcx@loop@a {}{#2}{#3}#1+\W/}% -\def\XINT@gctgcx@loop@a #1#2#3#4+#5/% +\def\XINT_gctgcx_start #1#2#3{\XINT_gctgcx_loop_a {}{#2}{#3}#1+\W/}% +\def\XINT_gctgcx_loop_a #1#2#3#4+#5/% {% - \xint@w #5\XINT@gctgcx@end\W - \XINT@gctgcx@loop@b {#1{#4}}{#2{#5}#3}{#2}{#3}% + \xint_gob_til_w #5\XINT_gctgcx_end\W + \XINT_gctgcx_loop_b {#1{#4}}{#2{#5}#3}{#2}{#3}% }% -\def\XINT@gctgcx@loop@b #1#2% +\def\XINT_gctgcx_loop_b #1#2% {% - \XINT@gctgcx@loop@a {#1#2}% + \XINT_gctgcx_loop_a {#1#2}% }% -\def\XINT@gctgcx@end\W\XINT@gctgcx@loop@b #1#2#3#4{ #1}% +\def\XINT_gctgcx_end\W\XINT_gctgcx_loop_b #1#2#3#4{ #1}% \def\xintFtoCs {\romannumeral0\xintftocs }% \def\xintftocs #1% {% - \expandafter\XINT@ftc@A\romannumeral0\xintraw {#1}\Z + \expandafter\XINT_ftc_A\romannumeral0\xintraw {#1}\Z }% -\def\XINT@ftc@A #1/#2\Z +\def\XINT_ftc_A #1/#2\Z {% - \expandafter\XINT@ftc@B\romannumeral0\xintidivision {#1}{#2}{#2}% + \expandafter\XINT_ftc_B\romannumeral0\xintidivision {#1}{#2}{#2}% }% -\def\XINT@ftc@B #1#2% +\def\XINT_ftc_B #1#2% {% - \XINT@ftc@C #2.{#1}% + \XINT_ftc_C #2.{#1}% }% -\def\XINT@ftc@C #1% +\def\XINT_ftc_C #1% {% - \xint@zero #1\XINT@ftc@integer 0\XINT@ftc@D #1% + \xint_gob_til_zero #1\XINT_ftc_integer 0\XINT_ftc_D #1% }% -\def\XINT@ftc@integer 0\XINT@ftc@D 0#1.#2#3{ #2}% -\def\XINT@ftc@D #1.#2#3{\XINT@ftc@loop@a {#1}{#3}{#1}{#2,}}% -\def\XINT@ftc@loop@a +\def\XINT_ftc_integer 0\XINT_ftc_D 0#1.#2#3{ #2}% +\def\XINT_ftc_D #1.#2#3{\XINT_ftc_loop_a {#1}{#3}{#1}{#2,}}% +\def\XINT_ftc_loop_a {% - \expandafter\XINT@ftc@loop@d\romannumeral0\XINT@div@prepare + \expandafter\XINT_ftc_loop_d\romannumeral0\XINT_div_prepare }% -\def\XINT@ftc@loop@d #1#2% +\def\XINT_ftc_loop_d #1#2% {% - \XINT@ftc@loop@e #2.{#1}% + \XINT_ftc_loop_e #2.{#1}% }% -\def\XINT@ftc@loop@e #1% +\def\XINT_ftc_loop_e #1% {% - \xint@zero #1\xint@ftc@loop@exit0\XINT@ftc@loop@f #1% + \xint_gob_til_zero #1\xint_ftc_loop_exit0\XINT_ftc_loop_f #1% }% -\def\XINT@ftc@loop@f #1.#2#3#4% +\def\XINT_ftc_loop_f #1.#2#3#4% {% - \XINT@ftc@loop@a {#1}{#3}{#1}{#4#2,}% + \XINT_ftc_loop_a {#1}{#3}{#1}{#4#2,}% }% -\def\xint@ftc@loop@exit0\XINT@ftc@loop@f #1.#2#3#4{ #4#2}% +\def\xint_ftc_loop_exit0\XINT_ftc_loop_f #1.#2#3#4{ #4#2}% \def\xintFtoCx {\romannumeral0\xintftocx }% \def\xintftocx #1#2% {% - \expandafter\XINT@ftcx@A\romannumeral0\xintraw {#2}\Z {#1}% + \expandafter\XINT_ftcx_A\romannumeral0\xintraw {#2}\Z {#1}% }% -\def\XINT@ftcx@A #1/#2\Z +\def\XINT_ftcx_A #1/#2\Z {% - \expandafter\XINT@ftcx@B\romannumeral0\xintidivision {#1}{#2}{#2}% + \expandafter\XINT_ftcx_B\romannumeral0\xintidivision {#1}{#2}{#2}% }% -\def\XINT@ftcx@B #1#2% +\def\XINT_ftcx_B #1#2% {% - \XINT@ftcx@C #2.{#1}% + \XINT_ftcx_C #2.{#1}% }% -\def\XINT@ftcx@C #1% +\def\XINT_ftcx_C #1% {% - \xint@zero #1\XINT@ftcx@integer 0\XINT@ftcx@D #1% + \xint_gob_til_zero #1\XINT_ftcx_integer 0\XINT_ftcx_D #1% }% -\def\XINT@ftcx@integer 0\XINT@ftcx@D 0#1.#2#3#4{ #2}% -\def\XINT@ftcx@D #1.#2#3#4{\XINT@ftcx@loop@a {#1}{#3}{#1}{#2#4}{#4}}% -\def\XINT@ftcx@loop@a +\def\XINT_ftcx_integer 0\XINT_ftcx_D 0#1.#2#3#4{ #2}% +\def\XINT_ftcx_D #1.#2#3#4{\XINT_ftcx_loop_a {#1}{#3}{#1}{#2#4}{#4}}% +\def\XINT_ftcx_loop_a {% - \expandafter\XINT@ftcx@loop@d\romannumeral0\XINT@div@prepare + \expandafter\XINT_ftcx_loop_d\romannumeral0\XINT_div_prepare }% -\def\XINT@ftcx@loop@d #1#2% +\def\XINT_ftcx_loop_d #1#2% {% - \XINT@ftcx@loop@e #2.{#1}% + \XINT_ftcx_loop_e #2.{#1}% }% -\def\XINT@ftcx@loop@e #1% +\def\XINT_ftcx_loop_e #1% {% - \xint@zero #1\xint@ftcx@loop@exit0\XINT@ftcx@loop@f #1% + \xint_gob_til_zero #1\xint_ftcx_loop_exit0\XINT_ftcx_loop_f #1% }% -\def\XINT@ftcx@loop@f #1.#2#3#4#5% +\def\XINT_ftcx_loop_f #1.#2#3#4#5% {% - \XINT@ftcx@loop@a {#1}{#3}{#1}{#4{#2}#5}{#5}% + \XINT_ftcx_loop_a {#1}{#3}{#1}{#4{#2}#5}{#5}% }% -\def\xint@ftcx@loop@exit0\XINT@ftcx@loop@f #1.#2#3#4#5{ #4{#2}}% +\def\xint_ftcx_loop_exit0\XINT_ftcx_loop_f #1.#2#3#4#5{ #4{#2}}% \def\xintFtoGC {\romannumeral0\xintftogc }% \def\xintftogc {\xintftocx {+1/}}% \def\xintFtoCC {\romannumeral0\xintftocc }% \def\xintftocc #1% {% - \expandafter\XINT@ftcc@A\expandafter {\romannumeral0\xintraw {#1}}% + \expandafter\XINT_ftcc_A\expandafter {\romannumeral0\xintraw {#1}}% }% -\def\XINT@ftcc@A #1% +\def\XINT_ftcc_A #1% {% - \expandafter\XINT@ftcc@B + \expandafter\XINT_ftcc_B \romannumeral0\xintraw {\xintAdd {1/2[0]}{#1[0]}}\Z {#1[0]}% }% -\def\XINT@ftcc@B #1/#2\Z +\def\XINT_ftcc_B #1/#2\Z {% - \expandafter\XINT@ftcc@C\expandafter {\romannumeral0\xintiquo {#1}{#2}}% + \expandafter\XINT_ftcc_C\expandafter {\romannumeral0\xintiquo {#1}{#2}}% }% -\def\XINT@ftcc@C #1#2% +\def\XINT_ftcc_C #1#2% {% - \expandafter\XINT@ftcc@D\romannumeral0\xintsub {#2}{#1}\Z {#1}% + \expandafter\XINT_ftcc_D\romannumeral0\xintsub {#2}{#1}\Z {#1}% }% -\def\XINT@ftcc@D #1% +\def\XINT_ftcc_D #1% {% - \xint@UDzerominusfork - #1-\dummy \XINT@ftcc@integer - 0#1\dummy \XINT@ftcc@En - 0-\dummy {\XINT@ftcc@Ep #1}% - \xint@UDkrof + \xint_UDzerominusfork + #1-\dummy \XINT_ftcc_integer + 0#1\dummy \XINT_ftcc_En + 0-\dummy {\XINT_ftcc_Ep #1}% + \krof }% -\def\XINT@ftcc@Ep #1\Z #2% +\def\XINT_ftcc_Ep #1\Z #2% {% - \expandafter\XINT@ftcc@loop@a\expandafter + \expandafter\XINT_ftcc_loop_a\expandafter {\romannumeral0\xintdiv {1[0]}{#1}}{#2+1/}% }% -\def\XINT@ftcc@En #1\Z #2% +\def\XINT_ftcc_En #1\Z #2% {% - \expandafter\XINT@ftcc@loop@a\expandafter + \expandafter\XINT_ftcc_loop_a\expandafter {\romannumeral0\xintdiv {1[0]}{#1}}{#2+-1/}% }% -\def\XINT@ftcc@integer #1\Z #2{ #2}% -\def\XINT@ftcc@loop@a #1% +\def\XINT_ftcc_integer #1\Z #2{ #2}% +\def\XINT_ftcc_loop_a #1% {% - \expandafter\XINT@ftcc@loop@b + \expandafter\XINT_ftcc_loop_b \romannumeral0\xintraw {\xintAdd {1/2[0]}{#1}}\Z {#1}% }% -\def\XINT@ftcc@loop@b #1/#2\Z +\def\XINT_ftcc_loop_b #1/#2\Z {% - \expandafter\XINT@ftcc@loop@c\expandafter + \expandafter\XINT_ftcc_loop_c\expandafter {\romannumeral0\xintiquo {#1}{#2}}% }% -\def\XINT@ftcc@loop@c #1#2% +\def\XINT_ftcc_loop_c #1#2% {% - \expandafter\XINT@ftcc@loop@d + \expandafter\XINT_ftcc_loop_d \romannumeral0\xintsub {#2}{#1[0]}\Z {#1}% }% -\def\XINT@ftcc@loop@d #1% +\def\XINT_ftcc_loop_d #1% {% - \xint@UDzerominusfork - #1-\dummy \XINT@ftcc@end - 0#1\dummy \XINT@ftcc@loop@N - 0-\dummy {\XINT@ftcc@loop@P #1}% - \xint@UDkrof + \xint_UDzerominusfork + #1-\dummy \XINT_ftcc_end + 0#1\dummy \XINT_ftcc_loop_N + 0-\dummy {\XINT_ftcc_loop_P #1}% + \krof }% -\def\XINT@ftcc@end #1\Z #2#3{ #3#2}% -\def\XINT@ftcc@loop@P #1\Z #2#3% +\def\XINT_ftcc_end #1\Z #2#3{ #3#2}% +\def\XINT_ftcc_loop_P #1\Z #2#3% {% - \expandafter\XINT@ftcc@loop@a\expandafter + \expandafter\XINT_ftcc_loop_a\expandafter {\romannumeral0\xintdiv {1[0]}{#1}}{#3#2+1/}% }% -\def\XINT@ftcc@loop@N #1\Z #2#3% +\def\XINT_ftcc_loop_N #1\Z #2#3% {% - \expandafter\XINT@ftcc@loop@a\expandafter + \expandafter\XINT_ftcc_loop_a\expandafter {\romannumeral0\xintdiv {1[0]}{#1}}{#3#2+-1/}% }% \def\xintFtoCv {\romannumeral0\xintftocv }% @@ -468,566 +470,571 @@ \def\xintCstoF {\romannumeral0\xintcstof }% \def\xintcstof #1% {% - \expandafter\XINT@cstf@prep \romannumeral-`0#1,\W,% + \expandafter\XINT_cstf_prep \romannumeral-`0#1,\W,% }% -\def\XINT@cstf@prep +\def\XINT_cstf_prep {% - \XINT@cstf@loop@a 1001% + \XINT_cstf_loop_a 1001% }% -\def\XINT@cstf@loop@a #1#2#3#4#5,% +\def\XINT_cstf_loop_a #1#2#3#4#5,% {% - \xint@w #5\XINT@cstf@end\W\expandafter\XINT@cstf@loop@b + \xint_gob_til_w #5\XINT_cstf_end\W + \expandafter\XINT_cstf_loop_b \romannumeral0\xintraw {#5}.{#1}{#2}{#3}{#4}% }% -\def\XINT@cstf@loop@b #1/#2.#3#4#5#6% +\def\XINT_cstf_loop_b #1/#2.#3#4#5#6% {% - \expandafter\XINT@cstf@loop@c\expandafter - {\romannumeral0\XINT@mul@fork #2\Z #4\Z }% - {\romannumeral0\XINT@mul@fork #2\Z #3\Z }% - {\romannumeral0\xintiadd {\XINT@Mul {#2}{#6}}{\XINT@Mul {#1}{#4}}}% - {\romannumeral0\xintiadd {\XINT@Mul {#2}{#5}}{\XINT@Mul {#1}{#3}}}% + \expandafter\XINT_cstf_loop_c\expandafter + {\romannumeral0\XINT_mul_fork #2\Z #4\Z }% + {\romannumeral0\XINT_mul_fork #2\Z #3\Z }% + {\romannumeral0\xintiadd {\XINT_Mul {#2}{#6}}{\XINT_Mul {#1}{#4}}}% + {\romannumeral0\xintiadd {\XINT_Mul {#2}{#5}}{\XINT_Mul {#1}{#3}}}% }% -\def\XINT@cstf@loop@c #1#2% +\def\XINT_cstf_loop_c #1#2% {% - \expandafter\XINT@cstf@loop@d\expandafter {\expandafter{#2}{#1}}% + \expandafter\XINT_cstf_loop_d\expandafter {\expandafter{#2}{#1}}% }% -\def\XINT@cstf@loop@d #1#2% +\def\XINT_cstf_loop_d #1#2% {% - \expandafter\XINT@cstf@loop@e\expandafter {\expandafter{#2}#1}% + \expandafter\XINT_cstf_loop_e\expandafter {\expandafter{#2}#1}% }% -\def\XINT@cstf@loop@e #1#2% +\def\XINT_cstf_loop_e #1#2% {% - \expandafter\XINT@cstf@loop@a\expandafter{#2}#1% + \expandafter\XINT_cstf_loop_a\expandafter{#2}#1% }% -\def\XINT@cstf@end #1.#2#3#4#5{\xintraw {#2/#3}[0]}% +\def\XINT_cstf_end #1.#2#3#4#5{\xintraw {#2/#3}[0]}% \def\xintiCstoF {\romannumeral0\xinticstof }% \def\xinticstof #1% {% - \expandafter\XINT@icstf@prep \romannumeral-`0#1,\W,% + \expandafter\XINT_icstf_prep \romannumeral-`0#1,\W,% }% -\def\XINT@icstf@prep +\def\XINT_icstf_prep {% - \XINT@icstf@loop@a 1001% + \XINT_icstf_loop_a 1001% }% -\def\XINT@icstf@loop@a #1#2#3#4#5,% +\def\XINT_icstf_loop_a #1#2#3#4#5,% {% - \xint@w #5\XINT@icstf@end\W + \xint_gob_til_w #5\XINT_icstf_end\W \expandafter - \XINT@icstf@loop@b \romannumeral-`0#5.{#1}{#2}{#3}{#4}% + \XINT_icstf_loop_b \romannumeral-`0#5.{#1}{#2}{#3}{#4}% }% -\def\XINT@icstf@loop@b #1.#2#3#4#5% +\def\XINT_icstf_loop_b #1.#2#3#4#5% {% - \expandafter\XINT@icstf@loop@c\expandafter - {\romannumeral0\xintiadd {#5}{\XINT@Mul {#1}{#3}}}% - {\romannumeral0\xintiadd {#4}{\XINT@Mul {#1}{#2}}}% + \expandafter\XINT_icstf_loop_c\expandafter + {\romannumeral0\xintiadd {#5}{\XINT_Mul {#1}{#3}}}% + {\romannumeral0\xintiadd {#4}{\XINT_Mul {#1}{#2}}}% {#2}{#3}% }% -\def\XINT@icstf@loop@c #1#2% +\def\XINT_icstf_loop_c #1#2% {% - \expandafter\XINT@icstf@loop@a\expandafter {#2}{#1}% + \expandafter\XINT_icstf_loop_a\expandafter {#2}{#1}% }% -\def\XINT@icstf@end#1.#2#3#4#5{\xintraw {#2/#3}[0]}% +\def\XINT_icstf_end#1.#2#3#4#5{\xintraw {#2/#3}[0]}% \def\xintGCtoF {\romannumeral0\xintgctof }% \def\xintgctof #1% {% - \expandafter\XINT@gctf@prep \romannumeral-`0#1+\W/% + \expandafter\XINT_gctf_prep \romannumeral-`0#1+\W/% }% -\def\XINT@gctf@prep +\def\XINT_gctf_prep {% - \XINT@gctf@loop@a 1001% + \XINT_gctf_loop_a 1001% }% -\def\XINT@gctf@loop@a #1#2#3#4#5+% +\def\XINT_gctf_loop_a #1#2#3#4#5+% {% - \expandafter\XINT@gctf@loop@b + \expandafter\XINT_gctf_loop_b \romannumeral0\xintraw {#5}.{#1}{#2}{#3}{#4}% }% -\def\XINT@gctf@loop@b #1/#2.#3#4#5#6% +\def\XINT_gctf_loop_b #1/#2.#3#4#5#6% {% - \expandafter\XINT@gctf@loop@c\expandafter - {\romannumeral0\XINT@mul@fork #2\Z #4\Z }% - {\romannumeral0\XINT@mul@fork #2\Z #3\Z }% - {\romannumeral0\xintiadd {\XINT@Mul {#2}{#6}}{\XINT@Mul {#1}{#4}}}% - {\romannumeral0\xintiadd {\XINT@Mul {#2}{#5}}{\XINT@Mul {#1}{#3}}}% + \expandafter\XINT_gctf_loop_c\expandafter + {\romannumeral0\XINT_mul_fork #2\Z #4\Z }% + {\romannumeral0\XINT_mul_fork #2\Z #3\Z }% + {\romannumeral0\xintiadd {\XINT_Mul {#2}{#6}}{\XINT_Mul {#1}{#4}}}% + {\romannumeral0\xintiadd {\XINT_Mul {#2}{#5}}{\XINT_Mul {#1}{#3}}}% }% -\def\XINT@gctf@loop@c #1#2% +\def\XINT_gctf_loop_c #1#2% {% - \expandafter\XINT@gctf@loop@d\expandafter {\expandafter{#2}{#1}}% + \expandafter\XINT_gctf_loop_d\expandafter {\expandafter{#2}{#1}}% }% -\def\XINT@gctf@loop@d #1#2% +\def\XINT_gctf_loop_d #1#2% {% - \expandafter\XINT@gctf@loop@e\expandafter {\expandafter{#2}#1}% + \expandafter\XINT_gctf_loop_e\expandafter {\expandafter{#2}#1}% }% -\def\XINT@gctf@loop@e #1#2% +\def\XINT_gctf_loop_e #1#2% {% - \expandafter\XINT@gctf@loop@f\expandafter {\expandafter{#2}#1}% + \expandafter\XINT_gctf_loop_f\expandafter {\expandafter{#2}#1}% }% -\def\XINT@gctf@loop@f #1#2/% +\def\XINT_gctf_loop_f #1#2/% {% - \xint@w #2\XINT@gctf@end\W\expandafter\XINT@gctf@loop@g + \xint_gob_til_w #2\XINT_gctf_end\W + \expandafter\XINT_gctf_loop_g \romannumeral0\xintraw {#2}.#1% }% -\def\XINT@gctf@loop@g #1/#2.#3#4#5#6% +\def\XINT_gctf_loop_g #1/#2.#3#4#5#6% {% - \expandafter\XINT@gctf@loop@h\expandafter - {\romannumeral0\XINT@mul@fork #1\Z #6\Z }% - {\romannumeral0\XINT@mul@fork #1\Z #5\Z }% - {\romannumeral0\XINT@mul@fork #2\Z #4\Z }% - {\romannumeral0\XINT@mul@fork #2\Z #3\Z }% + \expandafter\XINT_gctf_loop_h\expandafter + {\romannumeral0\XINT_mul_fork #1\Z #6\Z }% + {\romannumeral0\XINT_mul_fork #1\Z #5\Z }% + {\romannumeral0\XINT_mul_fork #2\Z #4\Z }% + {\romannumeral0\XINT_mul_fork #2\Z #3\Z }% }% -\def\XINT@gctf@loop@h #1#2% +\def\XINT_gctf_loop_h #1#2% {% - \expandafter\XINT@gctf@loop@i\expandafter {\expandafter{#2}{#1}}% + \expandafter\XINT_gctf_loop_i\expandafter {\expandafter{#2}{#1}}% }% -\def\XINT@gctf@loop@i #1#2% +\def\XINT_gctf_loop_i #1#2% {% - \expandafter\XINT@gctf@loop@j\expandafter {\expandafter{#2}#1}% + \expandafter\XINT_gctf_loop_j\expandafter {\expandafter{#2}#1}% }% -\def\XINT@gctf@loop@j #1#2% +\def\XINT_gctf_loop_j #1#2% {% - \expandafter\XINT@gctf@loop@a\expandafter {#2}#1% + \expandafter\XINT_gctf_loop_a\expandafter {#2}#1% }% -\def\XINT@gctf@end #1.#2#3#4#5{\xintraw {#2/#3}[0]}% +\def\XINT_gctf_end #1.#2#3#4#5{\xintraw {#2/#3}[0]}% \def\xintiGCtoF {\romannumeral0\xintigctof }% \def\xintigctof #1% {% - \expandafter\XINT@igctf@prep \romannumeral-`0#1+\W/% + \expandafter\XINT_igctf_prep \romannumeral-`0#1+\W/% }% -\def\XINT@igctf@prep +\def\XINT_igctf_prep {% - \XINT@igctf@loop@a 1001% + \XINT_igctf_loop_a 1001% }% -\def\XINT@igctf@loop@a #1#2#3#4#5+% +\def\XINT_igctf_loop_a #1#2#3#4#5+% {% - \expandafter\XINT@igctf@loop@b + \expandafter\XINT_igctf_loop_b \romannumeral-`0#5.{#1}{#2}{#3}{#4}% }% -\def\XINT@igctf@loop@b #1.#2#3#4#5% +\def\XINT_igctf_loop_b #1.#2#3#4#5% {% - \expandafter\XINT@igctf@loop@c\expandafter - {\romannumeral0\xintiadd {#5}{\XINT@Mul {#1}{#3}}}% - {\romannumeral0\xintiadd {#4}{\XINT@Mul {#1}{#2}}}% + \expandafter\XINT_igctf_loop_c\expandafter + {\romannumeral0\xintiadd {#5}{\XINT_Mul {#1}{#3}}}% + {\romannumeral0\xintiadd {#4}{\XINT_Mul {#1}{#2}}}% {#2}{#3}% }% -\def\XINT@igctf@loop@c #1#2% +\def\XINT_igctf_loop_c #1#2% {% - \expandafter\XINT@igctf@loop@f\expandafter {\expandafter{#2}{#1}}% + \expandafter\XINT_igctf_loop_f\expandafter {\expandafter{#2}{#1}}% }% -\def\XINT@igctf@loop@f #1#2#3#4/% +\def\XINT_igctf_loop_f #1#2#3#4/% {% - \xint@w #4\XINT@igctf@end\W - \expandafter\XINT@igctf@loop@g + \xint_gob_til_w #4\XINT_igctf_end\W + \expandafter\XINT_igctf_loop_g \romannumeral-`0#4.{#2}{#3}#1% }% -\def\XINT@igctf@loop@g #1.#2#3% +\def\XINT_igctf_loop_g #1.#2#3% {% - \expandafter\XINT@igctf@loop@h\expandafter - {\romannumeral0\XINT@mul@fork #1\Z #3\Z }% - {\romannumeral0\XINT@mul@fork #1\Z #2\Z }% + \expandafter\XINT_igctf_loop_h\expandafter + {\romannumeral0\XINT_mul_fork #1\Z #3\Z }% + {\romannumeral0\XINT_mul_fork #1\Z #2\Z }% }% -\def\XINT@igctf@loop@h #1#2% +\def\XINT_igctf_loop_h #1#2% {% - \expandafter\XINT@igctf@loop@i\expandafter {#2}{#1}% + \expandafter\XINT_igctf_loop_i\expandafter {#2}{#1}% }% -\def\XINT@igctf@loop@i #1#2#3#4% +\def\XINT_igctf_loop_i #1#2#3#4% {% - \XINT@igctf@loop@a {#3}{#4}{#1}{#2}% + \XINT_igctf_loop_a {#3}{#4}{#1}{#2}% }% -\def\XINT@igctf@end #1.#2#3#4#5{\xintraw {#4/#5}[0]}% +\def\XINT_igctf_end #1.#2#3#4#5{\xintraw {#4/#5}[0]}% \def\xintCstoCv {\romannumeral0\xintcstocv }% \def\xintcstocv #1% {% - \expandafter\XINT@cstcv@prep \romannumeral-`0#1,\W,% + \expandafter\XINT_cstcv_prep \romannumeral-`0#1,\W,% }% -\def\XINT@cstcv@prep +\def\XINT_cstcv_prep {% - \XINT@cstcv@loop@a {}1001% + \XINT_cstcv_loop_a {}1001% }% -\def\XINT@cstcv@loop@a #1#2#3#4#5#6,% +\def\XINT_cstcv_loop_a #1#2#3#4#5#6,% {% - \xint@w #6\XINT@cstcv@end\W - \expandafter\XINT@cstcv@loop@b + \xint_gob_til_w #6\XINT_cstcv_end\W + \expandafter\XINT_cstcv_loop_b \romannumeral0\xintraw {#6}.{#2}{#3}{#4}{#5}{#1}% }% -\def\XINT@cstcv@loop@b #1/#2.#3#4#5#6% +\def\XINT_cstcv_loop_b #1/#2.#3#4#5#6% {% - \expandafter\XINT@cstcv@loop@c\expandafter - {\romannumeral0\XINT@mul@fork #2\Z #4\Z }% - {\romannumeral0\XINT@mul@fork #2\Z #3\Z }% - {\romannumeral0\xintiadd {\XINT@Mul {#2}{#6}}{\XINT@Mul {#1}{#4}}}% - {\romannumeral0\xintiadd {\XINT@Mul {#2}{#5}}{\XINT@Mul {#1}{#3}}}% + \expandafter\XINT_cstcv_loop_c\expandafter + {\romannumeral0\XINT_mul_fork #2\Z #4\Z }% + {\romannumeral0\XINT_mul_fork #2\Z #3\Z }% + {\romannumeral0\xintiadd {\XINT_Mul {#2}{#6}}{\XINT_Mul {#1}{#4}}}% + {\romannumeral0\xintiadd {\XINT_Mul {#2}{#5}}{\XINT_Mul {#1}{#3}}}% }% -\def\XINT@cstcv@loop@c #1#2% +\def\XINT_cstcv_loop_c #1#2% {% - \expandafter\XINT@cstcv@loop@d\expandafter {\expandafter{#2}{#1}}% + \expandafter\XINT_cstcv_loop_d\expandafter {\expandafter{#2}{#1}}% }% -\def\XINT@cstcv@loop@d #1#2% +\def\XINT_cstcv_loop_d #1#2% {% - \expandafter\XINT@cstcv@loop@e\expandafter {\expandafter{#2}#1}% + \expandafter\XINT_cstcv_loop_e\expandafter {\expandafter{#2}#1}% }% -\def\XINT@cstcv@loop@e #1#2% +\def\XINT_cstcv_loop_e #1#2% {% - \expandafter\XINT@cstcv@loop@f\expandafter{#2}#1% + \expandafter\XINT_cstcv_loop_f\expandafter{#2}#1% }% -\def\XINT@cstcv@loop@f #1#2#3#4#5% +\def\XINT_cstcv_loop_f #1#2#3#4#5% {% - \expandafter\XINT@cstcv@loop@g\expandafter + \expandafter\XINT_cstcv_loop_g\expandafter {\romannumeral0\xintraw {#1/#2}}{#5}{#1}{#2}{#3}{#4}% }% -\def\XINT@cstcv@loop@g #1#2{\XINT@cstcv@loop@a {#2{#1[0]}}}% -\def\XINT@cstcv@end #1.#2#3#4#5#6{ #6}% +\def\XINT_cstcv_loop_g #1#2{\XINT_cstcv_loop_a {#2{#1[0]}}}% +\def\XINT_cstcv_end #1.#2#3#4#5#6{ #6}% \def\xintiCstoCv {\romannumeral0\xinticstocv }% \def\xinticstocv #1% {% - \expandafter\XINT@icstcv@prep \romannumeral-`0#1,\W,% + \expandafter\XINT_icstcv_prep \romannumeral-`0#1,\W,% }% -\def\XINT@icstcv@prep +\def\XINT_icstcv_prep {% - \XINT@icstcv@loop@a {}1001% + \XINT_icstcv_loop_a {}1001% }% -\def\XINT@icstcv@loop@a #1#2#3#4#5#6,% +\def\XINT_icstcv_loop_a #1#2#3#4#5#6,% {% - \xint@w #6\XINT@icstcv@end\W + \xint_gob_til_w #6\XINT_icstcv_end\W \expandafter - \XINT@icstcv@loop@b \romannumeral-`0#6.{#2}{#3}{#4}{#5}{#1}% + \XINT_icstcv_loop_b \romannumeral-`0#6.{#2}{#3}{#4}{#5}{#1}% }% -\def\XINT@icstcv@loop@b #1.#2#3#4#5% +\def\XINT_icstcv_loop_b #1.#2#3#4#5% {% - \expandafter\XINT@icstcv@loop@c\expandafter - {\romannumeral0\xintiadd {#5}{\XINT@Mul {#1}{#3}}}% - {\romannumeral0\xintiadd {#4}{\XINT@Mul {#1}{#2}}}% + \expandafter\XINT_icstcv_loop_c\expandafter + {\romannumeral0\xintiadd {#5}{\XINT_Mul {#1}{#3}}}% + {\romannumeral0\xintiadd {#4}{\XINT_Mul {#1}{#2}}}% {{#2}{#3}}% }% -\def\XINT@icstcv@loop@c #1#2% +\def\XINT_icstcv_loop_c #1#2% {% - \expandafter\XINT@icstcv@loop@d\expandafter {#2}{#1}% + \expandafter\XINT_icstcv_loop_d\expandafter {#2}{#1}% }% -\def\XINT@icstcv@loop@d #1#2% +\def\XINT_icstcv_loop_d #1#2% {% - \expandafter\XINT@icstcv@loop@e\expandafter + \expandafter\XINT_icstcv_loop_e\expandafter {\romannumeral0\xintraw {#1/#2}}{{#1}{#2}}% }% -\def\XINT@icstcv@loop@e #1#2#3#4{\XINT@icstcv@loop@a {#4{#1[0]}}#2#3}% -\def\XINT@icstcv@end #1.#2#3#4#5#6{ #6}% +\def\XINT_icstcv_loop_e #1#2#3#4{\XINT_icstcv_loop_a {#4{#1[0]}}#2#3}% +\def\XINT_icstcv_end #1.#2#3#4#5#6{ #6}% \def\xintGCtoCv {\romannumeral0\xintgctocv }% \def\xintgctocv #1% {% - \expandafter\XINT@gctcv@prep \romannumeral-`0#1+\W/% + \expandafter\XINT_gctcv_prep \romannumeral-`0#1+\W/% }% -\def\XINT@gctcv@prep +\def\XINT_gctcv_prep {% - \XINT@gctcv@loop@a {}1001% + \XINT_gctcv_loop_a {}1001% }% -\def\XINT@gctcv@loop@a #1#2#3#4#5#6+% +\def\XINT_gctcv_loop_a #1#2#3#4#5#6+% {% - \expandafter\XINT@gctcv@loop@b + \expandafter\XINT_gctcv_loop_b \romannumeral0\xintraw {#6}.{#2}{#3}{#4}{#5}{#1}% }% -\def\XINT@gctcv@loop@b #1/#2.#3#4#5#6% +\def\XINT_gctcv_loop_b #1/#2.#3#4#5#6% {% - \expandafter\XINT@gctcv@loop@c\expandafter - {\romannumeral0\XINT@mul@fork #2\Z #4\Z }% - {\romannumeral0\XINT@mul@fork #2\Z #3\Z }% - {\romannumeral0\xintiadd {\XINT@Mul {#2}{#6}}{\XINT@Mul {#1}{#4}}}% - {\romannumeral0\xintiadd {\XINT@Mul {#2}{#5}}{\XINT@Mul {#1}{#3}}}% + \expandafter\XINT_gctcv_loop_c\expandafter + {\romannumeral0\XINT_mul_fork #2\Z #4\Z }% + {\romannumeral0\XINT_mul_fork #2\Z #3\Z }% + {\romannumeral0\xintiadd {\XINT_Mul {#2}{#6}}{\XINT_Mul {#1}{#4}}}% + {\romannumeral0\xintiadd {\XINT_Mul {#2}{#5}}{\XINT_Mul {#1}{#3}}}% }% -\def\XINT@gctcv@loop@c #1#2% +\def\XINT_gctcv_loop_c #1#2% {% - \expandafter\XINT@gctcv@loop@d\expandafter {\expandafter{#2}{#1}}% + \expandafter\XINT_gctcv_loop_d\expandafter {\expandafter{#2}{#1}}% }% -\def\XINT@gctcv@loop@d #1#2% +\def\XINT_gctcv_loop_d #1#2% {% - \expandafter\XINT@gctcv@loop@e\expandafter {\expandafter{#2}{#1}}% + \expandafter\XINT_gctcv_loop_e\expandafter {\expandafter{#2}{#1}}% }% -\def\XINT@gctcv@loop@e #1#2% +\def\XINT_gctcv_loop_e #1#2% {% - \expandafter\XINT@gctcv@loop@f\expandafter {#2}#1% + \expandafter\XINT_gctcv_loop_f\expandafter {#2}#1% }% -\def\XINT@gctcv@loop@f #1#2% +\def\XINT_gctcv_loop_f #1#2% {% - \expandafter\XINT@gctcv@loop@g\expandafter + \expandafter\XINT_gctcv_loop_g\expandafter {\romannumeral0\xintraw {#1/#2}}{{#1}{#2}}% }% -\def\XINT@gctcv@loop@g #1#2#3#4% +\def\XINT_gctcv_loop_g #1#2#3#4% {% - \XINT@gctcv@loop@h {#4{#1[0]}}{#2#3}% + \XINT_gctcv_loop_h {#4{#1[0]}}{#2#3}% }% -\def\XINT@gctcv@loop@h #1#2#3/% +\def\XINT_gctcv_loop_h #1#2#3/% {% - \xint@w #3\XINT@gctcv@end\W\expandafter\XINT@gctcv@loop@i + \xint_gob_til_w #3\XINT_gctcv_end\W + \expandafter\XINT_gctcv_loop_i \romannumeral0\xintraw {#3}.#2{#1}% }% -\def\XINT@gctcv@loop@i #1/#2.#3#4#5#6% +\def\XINT_gctcv_loop_i #1/#2.#3#4#5#6% {% - \expandafter\XINT@gctcv@loop@j\expandafter - {\romannumeral0\XINT@mul@fork #1\Z #6\Z }% - {\romannumeral0\XINT@mul@fork #1\Z #5\Z }% - {\romannumeral0\XINT@mul@fork #2\Z #4\Z }% - {\romannumeral0\XINT@mul@fork #2\Z #3\Z }% + \expandafter\XINT_gctcv_loop_j\expandafter + {\romannumeral0\XINT_mul_fork #1\Z #6\Z }% + {\romannumeral0\XINT_mul_fork #1\Z #5\Z }% + {\romannumeral0\XINT_mul_fork #2\Z #4\Z }% + {\romannumeral0\XINT_mul_fork #2\Z #3\Z }% }% -\def\XINT@gctcv@loop@j #1#2% +\def\XINT_gctcv_loop_j #1#2% {% - \expandafter\XINT@gctcv@loop@k\expandafter {\expandafter{#2}{#1}}% + \expandafter\XINT_gctcv_loop_k\expandafter {\expandafter{#2}{#1}}% }% -\def\XINT@gctcv@loop@k #1#2% +\def\XINT_gctcv_loop_k #1#2% {% - \expandafter\XINT@gctcv@loop@l\expandafter {\expandafter{#2}#1}% + \expandafter\XINT_gctcv_loop_l\expandafter {\expandafter{#2}#1}% }% -\def\XINT@gctcv@loop@l #1#2% +\def\XINT_gctcv_loop_l #1#2% {% - \expandafter\XINT@gctcv@loop@m\expandafter {\expandafter{#2}#1}% + \expandafter\XINT_gctcv_loop_m\expandafter {\expandafter{#2}#1}% }% -\def\XINT@gctcv@loop@m #1#2{\XINT@gctcv@loop@a {#2}#1}% -\def\XINT@gctcv@end #1.#2#3#4#5#6{ #6}% +\def\XINT_gctcv_loop_m #1#2{\XINT_gctcv_loop_a {#2}#1}% +\def\XINT_gctcv_end #1.#2#3#4#5#6{ #6}% \def\xintiGCtoCv {\romannumeral0\xintigctocv }% \def\xintigctocv #1% {% - \expandafter\XINT@igctcv@prep \romannumeral-`0#1+\W/% + \expandafter\XINT_igctcv_prep \romannumeral-`0#1+\W/% }% -\def\XINT@igctcv@prep +\def\XINT_igctcv_prep {% - \XINT@igctcv@loop@a {}1001% + \XINT_igctcv_loop_a {}1001% }% -\def\XINT@igctcv@loop@a #1#2#3#4#5#6+% +\def\XINT_igctcv_loop_a #1#2#3#4#5#6+% {% - \expandafter\XINT@igctcv@loop@b + \expandafter\XINT_igctcv_loop_b \romannumeral-`0#6.{#2}{#3}{#4}{#5}{#1}% }% -\def\XINT@igctcv@loop@b #1.#2#3#4#5% +\def\XINT_igctcv_loop_b #1.#2#3#4#5% {% - \expandafter\XINT@igctcv@loop@c\expandafter - {\romannumeral0\xintiadd {#5}{\XINT@Mul {#1}{#3}}}% - {\romannumeral0\xintiadd {#4}{\XINT@Mul {#1}{#2}}}% + \expandafter\XINT_igctcv_loop_c\expandafter + {\romannumeral0\xintiadd {#5}{\XINT_Mul {#1}{#3}}}% + {\romannumeral0\xintiadd {#4}{\XINT_Mul {#1}{#2}}}% {{#2}{#3}}% }% -\def\XINT@igctcv@loop@c #1#2% +\def\XINT_igctcv_loop_c #1#2% {% - \expandafter\XINT@igctcv@loop@f\expandafter {\expandafter{#2}{#1}}% + \expandafter\XINT_igctcv_loop_f\expandafter {\expandafter{#2}{#1}}% }% -\def\XINT@igctcv@loop@f #1#2#3#4/% +\def\XINT_igctcv_loop_f #1#2#3#4/% {% - \xint@w #4\XINT@igctcv@end@a\W - \expandafter\XINT@igctcv@loop@g + \xint_gob_til_w #4\XINT_igctcv_end_a\W + \expandafter\XINT_igctcv_loop_g \romannumeral-`0#4.#1#2{#3}% }% -\def\XINT@igctcv@loop@g #1.#2#3#4#5% +\def\XINT_igctcv_loop_g #1.#2#3#4#5% {% - \expandafter\XINT@igctcv@loop@h\expandafter - {\romannumeral0\XINT@mul@fork #1\Z #5\Z }% - {\romannumeral0\XINT@mul@fork #1\Z #4\Z }% + \expandafter\XINT_igctcv_loop_h\expandafter + {\romannumeral0\XINT_mul_fork #1\Z #5\Z }% + {\romannumeral0\XINT_mul_fork #1\Z #4\Z }% {{#2}{#3}}% }% -\def\XINT@igctcv@loop@h #1#2% +\def\XINT_igctcv_loop_h #1#2% {% - \expandafter\XINT@igctcv@loop@i\expandafter {\expandafter{#2}{#1}}% + \expandafter\XINT_igctcv_loop_i\expandafter {\expandafter{#2}{#1}}% }% -\def\XINT@igctcv@loop@i #1#2{\XINT@igctcv@loop@k #2{#2#1}}% -\def\XINT@igctcv@loop@k #1#2% +\def\XINT_igctcv_loop_i #1#2{\XINT_igctcv_loop_k #2{#2#1}}% +\def\XINT_igctcv_loop_k #1#2% {% - \expandafter\XINT@igctcv@loop@l\expandafter + \expandafter\XINT_igctcv_loop_l\expandafter {\romannumeral0\xintraw {#1/#2}}% }% -\def\XINT@igctcv@loop@l #1#2#3{\XINT@igctcv@loop@a {#3{#1[0]}}#2}% -\def\XINT@igctcv@end@a #1.#2#3#4#5% +\def\XINT_igctcv_loop_l #1#2#3{\XINT_igctcv_loop_a {#3{#1[0]}}#2}% +\def\XINT_igctcv_end_a #1.#2#3#4#5% {% - \expandafter\XINT@igctcv@end@b\expandafter + \expandafter\XINT_igctcv_end_b\expandafter {\romannumeral0\xintraw {#2/#3}}% }% -\def\XINT@igctcv@end@b #1#2{ #2{#1[0]}}% +\def\XINT_igctcv_end_b #1#2{ #2{#1[0]}}% \def\xintCntoF {\romannumeral0\xintcntof }% \def\xintcntof #1% {% - \expandafter\XINT@cntf\expandafter {\the\numexpr #1}% + \expandafter\XINT_cntf\expandafter {\the\numexpr #1}% }% -\def\XINT@cntf #1#2% +\def\XINT_cntf #1#2% {% \ifnum #1>0 - \xint@afterfi {\expandafter\XINT@cntf@loop\expandafter + \xint_afterfi {\expandafter\XINT_cntf_loop\expandafter {\the\numexpr #1-1\expandafter}\expandafter {\romannumeral-`0#2{#1}}{#2}}% \else - \xint@afterfi + \xint_afterfi {\ifnum #1=0 - \xint@afterfi {\expandafter\space \romannumeral-`0#2{0}}% - \else \xint@afterfi { 0/1[0]}% + \xint_afterfi {\expandafter\space \romannumeral-`0#2{0}}% + \else \xint_afterfi { 0/1[0]}% \fi}% \fi }% -\def\XINT@cntf@loop #1#2#3% +\def\XINT_cntf_loop #1#2#3% {% - \ifnum #1>0 \else \XINT@cntf@exit \fi - \expandafter\XINT@cntf@loop\expandafter + \ifnum #1>0 \else \XINT_cntf_exit \fi + \expandafter\XINT_cntf_loop\expandafter {\the\numexpr #1-1\expandafter }\expandafter {\romannumeral0\xintadd {\xintDiv {1[0]}{#2}}{#3{#1}}}% {#3}% }% -\def\XINT@cntf@exit \fi - \expandafter\XINT@cntf@loop\expandafter +\def\XINT_cntf_exit \fi + \expandafter\XINT_cntf_loop\expandafter #1\expandafter #2#3% {% - \fi\xint@gobble@ii #2% + \fi\xint_gobble_ii #2% }% \def\xintGCntoF {\romannumeral0\xintgcntof }% \def\xintgcntof #1% {% - \expandafter\XINT@gcntf\expandafter {\the\numexpr #1}% + \expandafter\XINT_gcntf\expandafter {\the\numexpr #1}% }% -\def\XINT@gcntf #1#2#3% +\def\XINT_gcntf #1#2#3% {% \ifnum #1>0 - \xint@afterfi {\expandafter\XINT@gcntf@loop\expandafter + \xint_afterfi {\expandafter\XINT_gcntf_loop\expandafter {\the\numexpr #1-1\expandafter}\expandafter {\romannumeral-`0#2{#1}}{#2}{#3}}% \else - \xint@afterfi + \xint_afterfi {\ifnum #1=0 - \xint@afterfi {\expandafter\space\romannumeral-`0#2{0}}% - \else \xint@afterfi { 0/1[0]}% + \xint_afterfi {\expandafter\space\romannumeral-`0#2{0}}% + \else \xint_afterfi { 0/1[0]}% \fi}% \fi }% -\def\XINT@gcntf@loop #1#2#3#4% +\def\XINT_gcntf_loop #1#2#3#4% {% - \ifnum #1>0 \else \XINT@gcntf@exit \fi - \expandafter\XINT@gcntf@loop\expandafter + \ifnum #1>0 \else \XINT_gcntf_exit \fi + \expandafter\XINT_gcntf_loop\expandafter {\the\numexpr #1-1\expandafter }\expandafter {\romannumeral0\xintadd {\xintDiv {#4{#1}}{#2}}{#3{#1}}}% {#3}{#4}% }% -\def\XINT@gcntf@exit \fi - \expandafter\XINT@gcntf@loop\expandafter +\def\XINT_gcntf_exit \fi + \expandafter\XINT_gcntf_loop\expandafter #1\expandafter #2#3#4% {% - \fi\xint@gobble@ii #2% + \fi\xint_gobble_ii #2% }% \def\xintCntoCs {\romannumeral0\xintcntocs }% \def\xintcntocs #1% {% - \expandafter\XINT@cntcs\expandafter {\the\numexpr #1}% + \expandafter\XINT_cntcs\expandafter {\the\numexpr #1}% }% -\def\XINT@cntcs #1#2% +\def\XINT_cntcs #1#2% {% \ifnum #1<0 - \xint@afterfi { 0/1[0]}% + \xint_afterfi { 0/1[0]}% \else - \xint@afterfi {\expandafter\XINT@cntcs@loop\expandafter + \xint_afterfi {\expandafter\XINT_cntcs_loop\expandafter {\the\numexpr #1-1\expandafter}\expandafter {\expandafter{\romannumeral-`0#2{#1}}}{#2}}% \fi }% -\def\XINT@cntcs@loop #1#2#3% +\def\XINT_cntcs_loop #1#2#3% {% - \ifnum #1>-1 \else \XINT@cntcs@exit \fi - \expandafter\XINT@cntcs@loop\expandafter + \ifnum #1>-1 \else \XINT_cntcs_exit \fi + \expandafter\XINT_cntcs_loop\expandafter {\the\numexpr #1-1\expandafter }\expandafter {\expandafter{\romannumeral-`0#3{#1}},#2}{#3}% }% -\def\XINT@cntcs@exit \fi - \expandafter\XINT@cntcs@loop\expandafter +\def\XINT_cntcs_exit \fi + \expandafter\XINT_cntcs_loop\expandafter #1\expandafter #2#3% {% - \fi\XINT@cntcs@@exit #2% + \fi\XINT_cntcs__exit #2% }% -\def\XINT@cntcs@@exit #1,{ }% +\def\XINT_cntcs__exit #1,{ }% \def\xintCntoGC {\romannumeral0\xintcntogc }% \def\xintcntogc #1% {% - \expandafter\XINT@cntgc\expandafter {\the\numexpr #1}% + \expandafter\XINT_cntgc\expandafter {\the\numexpr #1}% }% -\def\XINT@cntgc #1#2% +\def\XINT_cntgc #1#2% {% \ifnum #1<0 - \xint@afterfi { 0/1[0]}% + \xint_afterfi { 0/1[0]}% \else - \xint@afterfi {\expandafter\XINT@cntgc@loop\expandafter + \xint_afterfi {\expandafter\XINT_cntgc_loop\expandafter {\the\numexpr #1-1\expandafter}\expandafter {\expandafter{\romannumeral-`0#2{#1}}}{#2}}% \fi }% -\def\XINT@cntgc@loop #1#2#3% +\def\XINT_cntgc_loop #1#2#3% {% - \ifnum #1>-1 \else \XINT@cntgc@exit \fi - \expandafter\XINT@cntgc@loop\expandafter + \ifnum #1>-1 \else \XINT_cntgc_exit \fi + \expandafter\XINT_cntgc_loop\expandafter {\the\numexpr #1-1\expandafter }\expandafter {\expandafter{\romannumeral-`0#3{#1}}+1/#2}{#3}% }% -\def\XINT@cntgc@exit \fi - \expandafter\XINT@cntgc@loop\expandafter +\def\XINT_cntgc_exit \fi + \expandafter\XINT_cntgc_loop\expandafter #1\expandafter #2#3% {% - \fi\XINT@cntgc@@exit #2% + \fi\XINT_cntgc__exit #2% }% -\def\XINT@cntgc@@exit #1+1/{ }% +\def\XINT_cntgc__exit #1+1/{ }% \def\xintGCntoGC {\romannumeral0\xintgcntogc }% \def\xintgcntogc #1% {% - \expandafter\XINT@gcntgc\expandafter {\the\numexpr #1}% + \expandafter\XINT_gcntgc\expandafter {\the\numexpr #1}% }% -\def\XINT@gcntgc #1#2#3% +\def\XINT_gcntgc #1#2#3% {% \ifnum #1<0 - \xint@afterfi { {0/1[0]}}% + \xint_afterfi { {0/1[0]}}% \else - \xint@afterfi {\expandafter\XINT@gcntgc@loop\expandafter + \xint_afterfi {\expandafter\XINT_gcntgc_loop\expandafter {\the\numexpr #1-1\expandafter}\expandafter {\expandafter{\romannumeral-`0#2{#1}}}{#2}{#3}}% \fi }% -\def\XINT@gcntgc@loop #1#2#3#4% +\def\XINT_gcntgc_loop #1#2#3#4% {% - \ifnum #1>-1 \else \XINT@gcntgc@exit \fi - \expandafter\XINT@gcntgc@loop@b\expandafter + \ifnum #1>-1 \else \XINT_gcntgc_exit \fi + \expandafter\XINT_gcntgc_loop_b\expandafter {\expandafter{\romannumeral-`0#4{#1}}/#2}{#3{#1}}{#1}{#3}{#4}% }% -\def\XINT@gcntgc@loop@b #1#2#3% +\def\XINT_gcntgc_loop_b #1#2#3% {% - \expandafter\XINT@gcntgc@loop\expandafter + \expandafter\XINT_gcntgc_loop\expandafter {\the\numexpr #3-1\expandafter}\expandafter {\expandafter{\romannumeral-`0#2}+#1}% }% -\def\XINT@gcntgc@exit \fi - \expandafter\XINT@gcntgc@loop@b\expandafter #1#2#3#4#5% +\def\XINT_gcntgc_exit \fi + \expandafter\XINT_gcntgc_loop_b\expandafter #1#2#3#4#5% {% - \fi\XINT@gcntgc@@exit #1% + \fi\XINT_gcntgc__exit #1% }% -\def\XINT@gcntgc@@exit #1/{ }% +\def\XINT_gcntgc__exit #1/{ }% \def\xintCstoGC {\romannumeral0\xintcstogc }% \def\xintcstogc #1% {% - \expandafter\XINT@cstc@prep \romannumeral-`0#1,\W,% + \expandafter\XINT_cstc_prep \romannumeral-`0#1,\W,% }% -\def\XINT@cstc@prep #1,{\XINT@cstc@loop@a {{#1}}}% -\def\XINT@cstc@loop@a #1#2,% +\def\XINT_cstc_prep #1,{\XINT_cstc_loop_a {{#1}}}% +\def\XINT_cstc_loop_a #1#2,% {% - \xint@w #2\XINT@cstc@end\W\XINT@cstc@loop@b {#1}{#2}% + \xint_gob_til_w #2\XINT_cstc_end\W + \XINT_cstc_loop_b {#1}{#2}% }% -\def\XINT@cstc@loop@b #1#2{\XINT@cstc@loop@a {#1+1/{#2}}}% -\def\XINT@cstc@end\W\XINT@cstc@loop@b #1#2{ #1}% +\def\XINT_cstc_loop_b #1#2{\XINT_cstc_loop_a {#1+1/{#2}}}% +\def\XINT_cstc_end\W\XINT_cstc_loop_b #1#2{ #1}% \def\xintGCtoGC {\romannumeral0\xintgctogc }% \def\xintgctogc #1% {% - \expandafter\XINT@gctgc@start \romannumeral-`0#1+\W/% + \expandafter\XINT_gctgc_start \romannumeral-`0#1+\W/% }% -\def\XINT@gctgc@start {\XINT@gctgc@loop@a {}}% -\def\XINT@gctgc@loop@a #1#2+#3/% +\def\XINT_gctgc_start {\XINT_gctgc_loop_a {}}% +\def\XINT_gctgc_loop_a #1#2+#3/% {% - \xint@w #3\XINT@gctgc@end\W\expandafter\XINT@gctgc@loop@b\expandafter + \xint_gob_til_w #3\XINT_gctgc_end\W + \expandafter\XINT_gctgc_loop_b\expandafter {\romannumeral-`0#2}{#3}{#1}% }% -\def\XINT@gctgc@loop@b #1#2% +\def\XINT_gctgc_loop_b #1#2% {% - \expandafter\XINT@gctgc@loop@c\expandafter + \expandafter\XINT_gctgc_loop_c\expandafter {\romannumeral-`0#2}{#1}% }% -\def\XINT@gctgc@loop@c #1#2#3% +\def\XINT_gctgc_loop_c #1#2#3% {% - \XINT@gctgc@loop@a {#3{#2}+{#1}/}% + \XINT_gctgc_loop_a {#3{#2}+{#1}/}% }% -\def\XINT@gctgc@end\W\expandafter\XINT@gctgc@loop@b +\def\XINT_gctgc_end\W\expandafter\XINT_gctgc_loop_b {% - \expandafter\XINT@gctgc@@end + \expandafter\XINT_gctgc__end }% -\def\XINT@gctgc@@end #1#2#3{ #3{#1}}% -\XINT@cfrac@restorecatcodes@endinput% +\def\XINT_gctgc__end #1#2#3{ #3{#1}}% +\XINT_cfrac_restorecatcodes_endinput% \endinput %% %% End of file `xintcfrac.sty'. diff --git a/Master/texmf-dist/tex/generic/xint/xintfrac.sty b/Master/texmf-dist/tex/generic/xint/xintfrac.sty index b74569d3c1b..a63770ad592 100644 --- a/Master/texmf-dist/tex/generic/xint/xintfrac.sty +++ b/Master/texmf-dist/tex/generic/xint/xintfrac.sty @@ -22,7 +22,7 @@ %% in the same archive or directory.) %% %%---------------------------------------------------------------- -%% The xint bundle (version 1.06a of May 9, 2013) +%% The xint bundle (version 1.06b of May 14, 2013) %% xintfrac: Expandable operations on fractions %% Copyright (C) 2013 by Jean-Francois Burnol %%---------------------------------------------------------------- @@ -108,11 +108,11 @@ \endlinechar=13 % \catcode123=1 % { \catcode125=2 % } - \catcode64=11 % @ + \catcode95=11 % _ \def\x {% \endgroup - \edef\XINT@frac@restorecatcodes@endinput + \edef\XINT_frac_restorecatcodes_endinput {% \catcode94=\the\catcode94 % ^ \catcode93=\the\catcode93 % ] @@ -130,7 +130,7 @@ \catcode45=\the\catcode45 % - \catcode44=\the\catcode44 % , \catcode35=\the\catcode35 % # - \catcode64=\the\catcode64 % @ + \catcode95=\the\catcode95 % _ \catcode125=\the\catcode125 % } \catcode123=\the\catcode123 % { \endlinechar=\the\endlinechar @@ -139,13 +139,14 @@ \catcode61=\the\catcode61\relax % = \noexpand\endinput }% - \XINT@setcatcodes + \XINT_setcatcodes \catcode91=12 % [ \catcode93=12 % ] \catcode94=7 % ^ }% \x \begingroup + \catcode64=11 % @ \catcode58=12 % : \expandafter\ifx\csname ProvidesPackage\endcsname\relax \def\x#1#2#3[#4]{\endgroup @@ -165,745 +166,750 @@ \fi \expandafter\x\csname ver@xintfrac.sty\endcsname \ProvidesPackage{xintfrac}% - [2013/05/09 v1.06a Expandable operations on fractions (jfB)]% + [2013/05/14 v1.06b Expandable operations on fractions (jfB)]% \def\xintLen {\romannumeral0\xintlen }% \def\xintlen #1% {% - \expandafter\XINT@flen\romannumeral0\XINT@infrac {#1}% + \expandafter\XINT_flen\romannumeral0\XINT_infrac {#1}% }% -\def\XINT@flen #1#2#3% +\def\XINT_flen #1#2#3% {% \expandafter\space - \the\numexpr -1+\XINT@Abs {#1}+\XINT@Len {#2}+\XINT@Len {#3}\relax + \the\numexpr -1+\XINT_Abs {#1}+\XINT_Len {#2}+\XINT_Len {#3}\relax }% -\def\XINT@outfrac #1#2#3% +\def\XINT_outfrac #1#2#3% {% - \ifcase\XINT@Sgn{#3} - \expandafter \XINT@outfrac@divisionbyzero + \ifcase\XINT_Sgn{#3} + \expandafter \XINT_outfrac_divisionbyzero \or - \expandafter \XINT@outfrac@P + \expandafter \XINT_outfrac_P \else - \expandafter \XINT@outfrac@N + \expandafter \XINT_outfrac_N \fi {#2}{#3}[#1]% }% -\def\XINT@outfrac@divisionbyzero #1#2{\xintError:DivisionByZero\space #1/0}% -\def\XINT@outfrac@P #1#2% +\def\XINT_outfrac_divisionbyzero #1#2{\xintError:DivisionByZero\space #1/0}% +\def\XINT_outfrac_P #1#2% {% - \ifcase\XINT@Sgn{#1} - \expandafter\XINT@outfrac@Zero + \ifcase\XINT_Sgn{#1} + \expandafter\XINT_outfrac_Zero \fi \space #1/#2% }% -\def\XINT@outfrac@Zero #1[#2]{ 0/1[0]}% -\def\XINT@outfrac@N #1#2% +\def\XINT_outfrac_Zero #1[#2]{ 0/1[0]}% +\def\XINT_outfrac_N #1#2% {% - \expandafter\XINT@outfrac@N@a\expandafter - {\romannumeral0\XINT@opp #2}{\romannumeral0\XINT@opp #1}% + \expandafter\XINT_outfrac_N_a\expandafter + {\romannumeral0\XINT_opp #2}{\romannumeral0\XINT_opp #1}% }% -\def\XINT@outfrac@N@a #1#2% +\def\XINT_outfrac_N_a #1#2% {% - \expandafter\XINT@outfrac@P\expandafter {#2}{#1}% + \expandafter\XINT_outfrac_P\expandafter {#2}{#1}% }% -\def\XINT@inFrac {\romannumeral0\XINT@infrac }% -\def\XINT@infrac #1% +\def\XINT_inFrac {\romannumeral0\XINT_infrac }% +\def\XINT_infrac #1% {% - \expandafter\XINT@infrac@ \romannumeral-`0#1[\W]\Z\T + \expandafter\XINT_infrac_ \romannumeral-`0#1[\W]\Z\T }% -\def\XINT@infrac@ #1[#2#3]#4\Z +\def\XINT_infrac_ #1[#2#3]#4\Z {% - \xint@UDwfork - #2\dummy \XINT@infrac@A - \W\dummy \XINT@infrac@B - \xint@UDkrof + \xint_UDwfork + #2\dummy \XINT_infrac_A + \W\dummy \XINT_infrac_B + \krof #1[#2#3]#4% }% -\def\XINT@infrac@A #1[\W]\T +\def\XINT_infrac_A #1[\W]\T {% - \XINT@frac #1/\W\Z + \XINT_frac #1/\W\Z }% -\def\XINT@infrac@B #1% +\def\XINT_infrac_B #1% {% - \xint@zero #1\XINT@infrac@Zero0\XINT@infrac@BB #1% + \xint_gob_til_zero #1\XINT_infrac_Zero0\XINT_infrac_BB #1% }% -\def\XINT@infrac@BB #1[\W]\T {\XINT@infrac@BC #1/\W\Z }% -\def\XINT@infrac@BC #1/#2#3\Z +\def\XINT_infrac_BB #1[\W]\T {\XINT_infrac_BC #1/\W\Z }% +\def\XINT_infrac_BC #1/#2#3\Z {% - \xint@UDwfork - #2\dummy \XINT@infrac@BCa - \W\dummy {\expandafter\XINT@infrac@BCb \romannumeral-`0#2}% - \xint@UDkrof + \xint_UDwfork + #2\dummy \XINT_infrac_BCa + \W\dummy {\expandafter\XINT_infrac_BCb \romannumeral-`0#2}% + \krof #3\Z #1\Z }% -\def\XINT@infrac@BCa \Z #1[#2]#3\Z { {#2}{#1}{1}}% -\def\XINT@infrac@BCb #1[#2]/\W\Z #3\Z { {#2}{#3}{#1}}% -\def\XINT@infrac@Zero #1\T { {0}{0}{1}}% -\def\XINT@frac #1/#2#3\Z +\def\XINT_infrac_BCa \Z #1[#2]#3\Z { {#2}{#1}{1}}% +\def\XINT_infrac_BCb #1[#2]/\W\Z #3\Z { {#2}{#3}{#1}}% +\def\XINT_infrac_Zero #1\T { {0}{0}{1}}% +\def\XINT_frac #1/#2#3\Z {% - \xint@UDwfork - #2\dummy \XINT@frac@A - \W\dummy {\expandafter\XINT@frac@B \romannumeral-`0#2}% - \xint@UDkrof + \xint_UDwfork + #2\dummy \XINT_frac_A + \W\dummy {\expandafter\XINT_frac_B \romannumeral-`0#2}% + \krof #3.\W\Z #1.\W\Z }% -\def\XINT@frac@B #1.#2#3\Z +\def\XINT_frac_B #1.#2#3\Z {% - \xint@UDwfork - #2\dummy \XINT@frac@Ba - \W\dummy {\XINT@frac@Bb #2}% - \xint@UDkrof + \xint_UDwfork + #2\dummy \XINT_frac_Ba + \W\dummy {\XINT_frac_Bb #2}% + \krof #3\Z #1\Z }% -\def\XINT@frac@Bb #1/\W.\W\Z #2\Z +\def\XINT_frac_Bb #1/\W.\W\Z #2\Z {% - \expandafter \XINT@frac@C \expandafter - {\romannumeral0\XINT@length {#1}}{#2#1}% + \expandafter \XINT_frac_C \expandafter + {\romannumeral0\XINT_length {#1}}{#2#1}% }% -\def\XINT@frac@Ba \Z #1/\W\Z {\XINT@frac@C {0}{#1}}% -\def\XINT@frac@A .\W\Z {\XINT@frac@C {0}{1}}% -\def\XINT@frac@C #1#2#3.#4#5\Z +\def\XINT_frac_Ba \Z #1/\W\Z {\XINT_frac_C {0}{#1}}% +\def\XINT_frac_A .\W\Z {\XINT_frac_C {0}{1}}% +\def\XINT_frac_C #1#2#3.#4#5\Z {% - \xint@UDwfork - #4\dummy \XINT@frac@Ca - \W\dummy {\XINT@frac@Cb #4}% - \xint@UDkrof + \xint_UDwfork + #4\dummy \XINT_frac_Ca + \W\dummy {\XINT_frac_Cb #4}% + \krof #5\Z #3\Z {#1}{#2}% }% -\def\XINT@frac@Ca \Z #1\Z {\XINT@frac@D {0}{#1}}% -\def\XINT@frac@Cb #1.\W\Z #2\Z +\def\XINT_frac_Ca \Z #1\Z {\XINT_frac_D {0}{#1}}% +\def\XINT_frac_Cb #1.\W\Z #2\Z {% - \expandafter\XINT@frac@D\expandafter - {\romannumeral0\XINT@length {#1}}{#2#1}% + \expandafter\XINT_frac_D\expandafter + {\romannumeral0\XINT_length {#1}}{#2#1}% }% -\def\XINT@frac@D #1#2#3#4% +\def\XINT_frac_D #1#2#3#4% {% - \expandafter \XINT@frac@E \expandafter + \expandafter \XINT_frac_E \expandafter {\the\numexpr -#1+#3\expandafter}\expandafter - {\romannumeral0\XINT@num@loop #2\R\R\R\R\R\R\R\R\Z }% - {\romannumeral0\XINT@num@loop #4\R\R\R\R\R\R\R\R\Z }% + {\romannumeral0\XINT_num_loop #2% + \xint_relax\xint_relax\xint_relax\xint_relax + \xint_relax\xint_relax\xint_relax\xint_relax\Z }% + {\romannumeral0\XINT_num_loop #4% + \xint_relax\xint_relax\xint_relax\xint_relax + \xint_relax\xint_relax\xint_relax\xint_relax\Z }% }% -\def\XINT@frac@E #1#2#3% +\def\XINT_frac_E #1#2#3% {% - \expandafter \XINT@frac@F #3\Z {#2}{#1}% + \expandafter \XINT_frac_F #3\Z {#2}{#1}% }% -\def\XINT@frac@F #1% +\def\XINT_frac_F #1% {% - \xint@UDzerominusfork - #1-\dummy \XINT@frac@Gdivisionbyzero - 0#1\dummy \XINT@frac@Gneg - 0-\dummy {\XINT@frac@Gpos #1}% - \xint@UDkrof + \xint_UDzerominusfork + #1-\dummy \XINT_frac_Gdivisionbyzero + 0#1\dummy \XINT_frac_Gneg + 0-\dummy {\XINT_frac_Gpos #1}% + \krof }% -\def\XINT@frac@Gdivisionbyzero #1\Z #2#3% +\def\XINT_frac_Gdivisionbyzero #1\Z #2#3% {% \xintError:DivisionByZero\space {0}{#2}{0}% }% -\def\XINT@frac@Gneg #1\Z #2#3% +\def\XINT_frac_Gneg #1\Z #2#3% {% - \expandafter\XINT@frac@H \expandafter{\romannumeral0\XINT@opp #2}{#3}{#1}% + \expandafter\XINT_frac_H \expandafter{\romannumeral0\XINT_opp #2}{#3}{#1}% }% -\def\XINT@frac@H #1#2{ {#2}{#1}}% -\def\XINT@frac@Gpos #1\Z #2#3{ {#3}{#2}{#1}}% -\def\XINT@factortens #1% +\def\XINT_frac_H #1#2{ {#2}{#1}}% +\def\XINT_frac_Gpos #1\Z #2#3{ {#3}{#2}{#1}}% +\def\XINT_factortens #1% {% - \expandafter\XINT@cuz@cnt@loop\expandafter - {\expandafter}\romannumeral0\XINT@rord@main {}#1% - \xint@UNDEF - \xint@undef\xint@undef\xint@undef\xint@undef - \xint@undef\xint@undef\xint@undef\xint@undef - \xint@UNDEF + \expandafter\XINT_cuz_cnt_loop\expandafter + {\expandafter}\romannumeral0\XINT_rord_main {}#1% + \xint_relax + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_relax \R\R\R\R\R\R\R\R\Z }% -\def\XINT@cuz@cnt #1% +\def\XINT_cuz_cnt #1% {% - \XINT@cuz@cnt@loop {}#1\R\R\R\R\R\R\R\R\Z + \XINT_cuz_cnt_loop {}#1\R\R\R\R\R\R\R\R\Z }% -\def\XINT@cuz@cnt@loop #1#2#3#4#5#6#7#8#9% +\def\XINT_cuz_cnt_loop #1#2#3#4#5#6#7#8#9% {% - \xint@r #9\XINT@cuz@cnt@toofara \R - \expandafter\XINT@cuz@cnt@checka\expandafter + \xint_gob_til_r #9\XINT_cuz_cnt_toofara \R + \expandafter\XINT_cuz_cnt_checka\expandafter {\the\numexpr #1+8\relax}{#2#3#4#5#6#7#8#9}% }% -\def\XINT@cuz@cnt@toofara\R - \expandafter\XINT@cuz@cnt@checka\expandafter #1#2% +\def\XINT_cuz_cnt_toofara\R + \expandafter\XINT_cuz_cnt_checka\expandafter #1#2% {% - \XINT@cuz@cnt@toofarb {#1}#2% + \XINT_cuz_cnt_toofarb {#1}#2% }% -\def\XINT@cuz@cnt@toofarb #1#2\Z {\XINT@cuz@cnt@toofarc #2\Z {#1}}% -\def\XINT@cuz@cnt@toofarc #1#2#3#4#5#6#7#8% +\def\XINT_cuz_cnt_toofarb #1#2\Z {\XINT_cuz_cnt_toofarc #2\Z {#1}}% +\def\XINT_cuz_cnt_toofarc #1#2#3#4#5#6#7#8% {% - \xint@r #2\XINT@cuz@cnt@toofard 7% - #3\XINT@cuz@cnt@toofard 6% - #4\XINT@cuz@cnt@toofard 5% - #5\XINT@cuz@cnt@toofard 4% - #6\XINT@cuz@cnt@toofard 3% - #7\XINT@cuz@cnt@toofard 2% - #8\XINT@cuz@cnt@toofard 1% + \xint_gob_til_r #2\XINT_cuz_cnt_toofard 7% + #3\XINT_cuz_cnt_toofard 6% + #4\XINT_cuz_cnt_toofard 5% + #5\XINT_cuz_cnt_toofard 4% + #6\XINT_cuz_cnt_toofard 3% + #7\XINT_cuz_cnt_toofard 2% + #8\XINT_cuz_cnt_toofard 1% \Z #1#2#3#4#5#6#7#8% }% -\def\XINT@cuz@cnt@toofard #1#2\Z #3\R #4\Z #5% +\def\XINT_cuz_cnt_toofard #1#2\Z #3\R #4\Z #5% {% - \expandafter\XINT@cuz@cnt@toofare + \expandafter\XINT_cuz_cnt_toofare \the\numexpr #3\relax \R\R\R\R\R\R\R\R\Z {\the\numexpr #5-#1\relax}\R\Z }% -\def\XINT@cuz@cnt@toofare #1#2#3#4#5#6#7#8% +\def\XINT_cuz_cnt_toofare #1#2#3#4#5#6#7#8% {% - \xint@r #2\XINT@cuz@cnt@stopc 1% - #3\XINT@cuz@cnt@stopc 2% - #4\XINT@cuz@cnt@stopc 3% - #5\XINT@cuz@cnt@stopc 4% - #6\XINT@cuz@cnt@stopc 5% - #7\XINT@cuz@cnt@stopc 6% - #8\XINT@cuz@cnt@stopc 7% + \xint_gob_til_r #2\XINT_cuz_cnt_stopc 1% + #3\XINT_cuz_cnt_stopc 2% + #4\XINT_cuz_cnt_stopc 3% + #5\XINT_cuz_cnt_stopc 4% + #6\XINT_cuz_cnt_stopc 5% + #7\XINT_cuz_cnt_stopc 6% + #8\XINT_cuz_cnt_stopc 7% \Z #1#2#3#4#5#6#7#8% }% -\def\XINT@cuz@cnt@checka #1#2% +\def\XINT_cuz_cnt_checka #1#2% {% - \expandafter\XINT@cuz@cnt@checkb\the\numexpr #2\relax \Z {#1}% + \expandafter\XINT_cuz_cnt_checkb\the\numexpr #2\relax \Z {#1}% }% -\def\XINT@cuz@cnt@checkb #1% +\def\XINT_cuz_cnt_checkb #1% {% - \xint@zero #1\expandafter\XINT@cuz@cnt@loop\xint@z - 0\XINT@cuz@cnt@stopa #1% + \xint_gob_til_zero #1\expandafter\XINT_cuz_cnt_loop\xint_gob_til_z + 0\XINT_cuz_cnt_stopa #1% }% -\def\XINT@cuz@cnt@stopa #1\Z +\def\XINT_cuz_cnt_stopa #1\Z {% - \XINT@cuz@cnt@stopb #1\R\R\R\R\R\R\R\R\Z % + \XINT_cuz_cnt_stopb #1\R\R\R\R\R\R\R\R\Z % }% -\def\XINT@cuz@cnt@stopb #1#2#3#4#5#6#7#8#9% +\def\XINT_cuz_cnt_stopb #1#2#3#4#5#6#7#8#9% {% - \xint@r #2\XINT@cuz@cnt@stopc 1% - #3\XINT@cuz@cnt@stopc 2% - #4\XINT@cuz@cnt@stopc 3% - #5\XINT@cuz@cnt@stopc 4% - #6\XINT@cuz@cnt@stopc 5% - #7\XINT@cuz@cnt@stopc 6% - #8\XINT@cuz@cnt@stopc 7% - #9\XINT@cuz@cnt@stopc 8% + \xint_gob_til_r #2\XINT_cuz_cnt_stopc 1% + #3\XINT_cuz_cnt_stopc 2% + #4\XINT_cuz_cnt_stopc 3% + #5\XINT_cuz_cnt_stopc 4% + #6\XINT_cuz_cnt_stopc 5% + #7\XINT_cuz_cnt_stopc 6% + #8\XINT_cuz_cnt_stopc 7% + #9\XINT_cuz_cnt_stopc 8% \Z #1#2#3#4#5#6#7#8#9% }% -\def\XINT@cuz@cnt@stopc #1#2\Z #3\R #4\Z #5% +\def\XINT_cuz_cnt_stopc #1#2\Z #3\R #4\Z #5% {% - \expandafter\XINT@cuz@cnt@stopd\expandafter + \expandafter\XINT_cuz_cnt_stopd\expandafter {\the\numexpr #5-#1}#3% }% -\def\XINT@cuz@cnt@stopd #1#2\R #3\Z +\def\XINT_cuz_cnt_stopd #1#2\R #3\Z {% \expandafter\space\expandafter - {\romannumeral0\XINT@rord@main {}#2% - \xint@UNDEF - \xint@undef\xint@undef\xint@undef\xint@undef - \xint@undef\xint@undef\xint@undef\xint@undef - \xint@UNDEF }{#1}% + {\romannumeral0\XINT_rord_main {}#2% + \xint_relax + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_relax }{#1}% }% \def\xintRaw {\romannumeral0\xintraw }% \def\xintraw {% - \expandafter\XINT@raw\romannumeral0\XINT@infrac + \expandafter\XINT_raw\romannumeral0\XINT_infrac }% -\def\XINT@raw #1% +\def\XINT_raw #1% {% - \ifcase\XINT@Sgn {#1} - \expandafter\XINT@raw@Ba + \ifcase\XINT_Sgn {#1} + \expandafter\XINT_raw_Ba \or - \expandafter\XINT@raw@A + \expandafter\XINT_raw_A \else - \expandafter\XINT@raw@Ba + \expandafter\XINT_raw_Ba \fi {#1}% }% -\def\XINT@raw@A #1#2#3{\xint@dsh {#2}{-#1}/#3}% -\def\XINT@raw@Ba #1#2#3{\expandafter\XINT@raw@Bb - \expandafter{\romannumeral0\xint@dsh {#3}{#1}}{#2}}% -\def\XINT@raw@Bb #1#2{ #2/#1}% +\def\XINT_raw_A #1#2#3{\xint_dsh {#2}{-#1}/#3}% +\def\XINT_raw_Ba #1#2#3{\expandafter\XINT_raw_Bb + \expandafter{\romannumeral0\xint_dsh {#3}{#1}}{#2}}% +\def\XINT_raw_Bb #1#2{ #2/#1}% \def\xintNumerator {\romannumeral0\xintnumerator }% \def\xintnumerator {% - \expandafter\XINT@numer\romannumeral0\XINT@infrac + \expandafter\XINT_numer\romannumeral0\XINT_infrac }% -\def\XINT@numer #1% +\def\XINT_numer #1% {% - \ifcase\XINT@Sgn {#1} - \expandafter\XINT@numer@B + \ifcase\XINT_Sgn {#1} + \expandafter\XINT_numer_B \or - \expandafter\XINT@numer@A + \expandafter\XINT_numer_A \else - \expandafter\XINT@numer@B + \expandafter\XINT_numer_B \fi {#1}% }% -\def\XINT@numer@A #1#2#3{\xint@dsh {#2}{-#1}}% -\def\XINT@numer@B #1#2#3{ #2}% +\def\XINT_numer_A #1#2#3{\xint_dsh {#2}{-#1}}% +\def\XINT_numer_B #1#2#3{ #2}% \def\xintDenominator {\romannumeral0\xintdenominator }% \def\xintdenominator {% - \expandafter\XINT@denom\romannumeral0\XINT@infrac + \expandafter\XINT_denom\romannumeral0\XINT_infrac }% -\def\XINT@denom #1% +\def\XINT_denom #1% {% - \ifcase\XINT@Sgn {#1} - \expandafter\XINT@denom@B + \ifcase\XINT_Sgn {#1} + \expandafter\XINT_denom_B \or - \expandafter\XINT@denom@A + \expandafter\XINT_denom_A \else - \expandafter\XINT@denom@B + \expandafter\XINT_denom_B \fi {#1}% }% -\def\XINT@denom@A #1#2#3{ #3}% -\def\XINT@denom@B #1#2#3{\xint@dsh {#3}{#1}}% +\def\XINT_denom_A #1#2#3{ #3}% +\def\XINT_denom_B #1#2#3{\xint_dsh {#3}{#1}}% \def\xintFrac {\romannumeral0\xintfrac }% \def\xintfrac #1% {% - \expandafter\XINT@@frac@A\romannumeral0\XINT@infrac {#1}% + \expandafter\XINT__frac_A\romannumeral0\XINT_infrac {#1}% }% -\def\XINT@@frac@A #1{\XINT@@frac@B #1\Z }% -\def\XINT@@frac@B #1#2\Z +\def\XINT__frac_A #1{\XINT__frac_B #1\Z }% +\def\XINT__frac_B #1#2\Z {% - \xint@zero #1\XINT@@frac@C 0\XINT@@frac@D {10^{#1#2}}% + \xint_gob_til_zero #1\XINT__frac_C 0\XINT__frac_D {10^{#1#2}}% }% -\def\XINT@@frac@C #1#2#3#4#5% +\def\XINT__frac_C #1#2#3#4#5% {% - \ifcase\XINT@isOne {#5} - \or \xint@afterfi {\expandafter\xint@firstoftwo@andstop\xint@gobble@ii }% + \ifcase\XINT_isOne {#5} + \or \xint_afterfi {\expandafter\xint_firstoftwo_andstop\xint_gobble_ii }% \fi \space \frac {#4}{#5}% }% -\def\XINT@@frac@D #1#2#3% +\def\XINT__frac_D #1#2#3% {% - \ifcase\XINT@isOne {#3} - \or \XINT@@frac@E + \ifcase\XINT_isOne {#3} + \or \XINT__frac_E \fi \space \frac {#2}{#3}#1% }% -\def\XINT@@frac@E \fi #1#2#3#4{\fi \space #3\cdot }% +\def\XINT__frac_E \fi #1#2#3#4{\fi \space #3\cdot }% \def\xintSignedFrac {\romannumeral0\xintsignedfrac }% \def\xintsignedfrac #1% {% - \expandafter\XINT@sgnfrac@a\romannumeral0\XINT@infrac {#1}% + \expandafter\XINT_sgnfrac_a\romannumeral0\XINT_infrac {#1}% }% -\def\XINT@sgnfrac@a #1#2% +\def\XINT_sgnfrac_a #1#2% {% - \XINT@sgnfrac@b #2\Z {#1}% + \XINT_sgnfrac_b #2\Z {#1}% }% -\def\XINT@sgnfrac@b #1% +\def\XINT_sgnfrac_b #1% {% - \xint@UDsignfork - #1\dummy \XINT@sgnfrac@N - -\dummy {\XINT@sgnfrac@P #1}% - \xint@UDkrof + \xint_UDsignfork + #1\dummy \XINT_sgnfrac_N + -\dummy {\XINT_sgnfrac_P #1}% + \krof }% -\def\XINT@sgnfrac@P #1\Z #2% +\def\XINT_sgnfrac_P #1\Z #2% {% - \XINT@@frac@A {#2}{#1}% + \XINT__frac_A {#2}{#1}% }% -\def\XINT@sgnfrac@N +\def\XINT_sgnfrac_N {% - \expandafter\xint@minus@andstop\romannumeral0\XINT@sgnfrac@P + \expandafter\xint_minus_andstop\romannumeral0\XINT_sgnfrac_P }% \def\xintFwOver {\romannumeral0\xintfwover }% \def\xintfwover #1% {% - \expandafter\XINT@fwover@A\romannumeral0\XINT@infrac {#1}% + \expandafter\XINT_fwover_A\romannumeral0\XINT_infrac {#1}% }% -\def\XINT@fwover@A #1{\XINT@fwover@B #1\Z }% -\def\XINT@fwover@B #1#2\Z +\def\XINT_fwover_A #1{\XINT_fwover_B #1\Z }% +\def\XINT_fwover_B #1#2\Z {% - \xint@zero #1\XINT@fwover@C 0\XINT@fwover@D {10^{#1#2}}% + \xint_gob_til_zero #1\XINT_fwover_C 0\XINT_fwover_D {10^{#1#2}}% }% -\def\XINT@fwover@C #1#2#3#4#5% +\def\XINT_fwover_C #1#2#3#4#5% {% - \ifcase\XINT@isOne {#5} - \xint@afterfi { {#4\over #5}}% + \ifcase\XINT_isOne {#5} + \xint_afterfi { {#4\over #5}}% \or - \xint@afterfi { #4}% + \xint_afterfi { #4}% \fi }% -\def\XINT@fwover@D #1#2#3% +\def\XINT_fwover_D #1#2#3% {% - \ifcase\XINT@isOne {#3} - \xint@afterfi { {#2\over #3}}% + \ifcase\XINT_isOne {#3} + \xint_afterfi { {#2\over #3}}% \or - \xint@afterfi { #2\cdot }% + \xint_afterfi { #2\cdot }% \fi #1% }% \def\xintSignedFwOver {\romannumeral0\xintsignedfwover }% \def\xintsignedfwover #1% {% - \expandafter\XINT@sgnfwover@a\romannumeral0\XINT@infrac {#1}% + \expandafter\XINT_sgnfwover_a\romannumeral0\XINT_infrac {#1}% }% -\def\XINT@sgnfwover@a #1#2% +\def\XINT_sgnfwover_a #1#2% {% - \XINT@sgnfwover@b #2\Z {#1}% + \XINT_sgnfwover_b #2\Z {#1}% }% -\def\XINT@sgnfwover@b #1% +\def\XINT_sgnfwover_b #1% {% - \xint@UDsignfork - #1\dummy \XINT@sgnfwover@N - -\dummy {\XINT@sgnfwover@P #1}% - \xint@UDkrof + \xint_UDsignfork + #1\dummy \XINT_sgnfwover_N + -\dummy {\XINT_sgnfwover_P #1}% + \krof }% -\def\XINT@sgnfwover@P #1\Z #2% +\def\XINT_sgnfwover_P #1\Z #2% {% - \XINT@fwover@A {#2}{#1}% + \XINT_fwover_A {#2}{#1}% }% -\def\XINT@sgnfwover@N +\def\XINT_sgnfwover_N {% - \expandafter\xint@minus@andstop\romannumeral0\XINT@sgnfwover@P + \expandafter\xint_minus_andstop\romannumeral0\XINT_sgnfwover_P }% \def\xintREZ {\romannumeral0\xintrez }% \def\xintrez {% - \expandafter\XINT@rez@A\romannumeral0\XINT@infrac + \expandafter\XINT_rez_A\romannumeral0\XINT_infrac }% -\def\XINT@rez@A #1#2% +\def\XINT_rez_A #1#2% {% - \XINT@rez@AB #2\Z {#1}% + \XINT_rez_AB #2\Z {#1}% }% -\def\XINT@rez@AB #1% +\def\XINT_rez_AB #1% {% - \xint@UDzerominusfork - #1-\dummy \XINT@rez@zero - 0#1\dummy \XINT@rez@neg - 0-\dummy {\XINT@rez@B #1}% - \xint@UDkrof + \xint_UDzerominusfork + #1-\dummy \XINT_rez_zero + 0#1\dummy \XINT_rez_neg + 0-\dummy {\XINT_rez_B #1}% + \krof }% -\def\XINT@rez@zero #1\Z #2#3{ 0/1[0]}% -\def\XINT@rez@neg {\expandafter\xint@minus@andstop\romannumeral0\XINT@rez@B }% -\def\XINT@rez@B #1\Z +\def\XINT_rez_zero #1\Z #2#3{ 0/1[0]}% +\def\XINT_rez_neg {\expandafter\xint_minus_andstop\romannumeral0\XINT_rez_B }% +\def\XINT_rez_B #1\Z {% - \expandafter\XINT@rez@C\romannumeral0\XINT@factortens {#1}% + \expandafter\XINT_rez_C\romannumeral0\XINT_factortens {#1}% }% -\def\XINT@rez@C #1#2#3#4% +\def\XINT_rez_C #1#2#3#4% {% - \expandafter\XINT@rez@D\romannumeral0\XINT@factortens {#4}{#3}{#2}{#1}% + \expandafter\XINT_rez_D\romannumeral0\XINT_factortens {#4}{#3}{#2}{#1}% }% -\def\XINT@rez@D #1#2#3#4#5% +\def\XINT_rez_D #1#2#3#4#5% {% - \expandafter\XINT@rez@E\expandafter + \expandafter\XINT_rez_E\expandafter {\the\numexpr #3+#4-#2}{#1}{#5}% }% -\def\XINT@rez@E #1#2#3{ #3/#2[#1]}% +\def\XINT_rez_E #1#2#3{ #3/#2[#1]}% \def\xintIrr {\romannumeral0\xintirr }% \def\xintirr #1% {% - \expandafter\XINT@irr@start\romannumeral0\xintraw {#1}\Z + \expandafter\XINT_irr_start\romannumeral0\xintraw {#1}\Z }% -\def\XINT@irr@start #1#2/#3\Z +\def\XINT_irr_start #1#2/#3\Z {% - \ifcase\XINT@isOne {#3} - \xint@afterfi - {\xint@UDsignfork - #1\dummy \XINT@irr@negative - -\dummy {\XINT@irr@nonneg #1}% - \xint@UDkrof}% + \ifcase\XINT_isOne {#3} + \xint_afterfi + {\xint_UDsignfork + #1\dummy \XINT_irr_negative + -\dummy {\XINT_irr_nonneg #1}% + \krof}% \or - \xint@afterfi{\XINT@irr@denomisone #1}% + \xint_afterfi{\XINT_irr_denomisone #1}% \fi #2\Z {#3}% }% -\def\XINT@irr@denomisone #1\Z #2{ #1}% -\def\XINT@irr@negative #1\Z #2{\XINT@irr@D #1\Z #2\Z \xint@minus@andstop}% -\def\XINT@irr@nonneg #1\Z #2{\XINT@irr@D #1\Z #2\Z \space}% -\def\XINT@irr@D #1#2\Z #3#4\Z -{% - \xint@UDzerosfork - #3#1\dummy \XINT@irr@indeterminate - #30\dummy \XINT@irr@divisionbyzero - #10\dummy \XINT@irr@zero - 00\dummy \XINT@irr@loop@a - \xint@UDkrof +\def\XINT_irr_denomisone #1\Z #2{ #1}% +\def\XINT_irr_negative #1\Z #2{\XINT_irr_D #1\Z #2\Z \xint_minus_andstop}% +\def\XINT_irr_nonneg #1\Z #2{\XINT_irr_D #1\Z #2\Z \space}% +\def\XINT_irr_D #1#2\Z #3#4\Z +{% + \xint_UDzerosfork + #3#1\dummy \XINT_irr_indeterminate + #30\dummy \XINT_irr_divisionbyzero + #10\dummy \XINT_irr_zero + 00\dummy \XINT_irr_loop_a + \krof {#3#4}{#1#2}{#3#4}{#1#2}% }% -\def\XINT@irr@indeterminate #1#2#3#4#5{\xintError:NaN\space 0/0}% -\def\XINT@irr@divisionbyzero #1#2#3#4#5{\xintError:DivisionByZero #5#2/0}% -\def\XINT@irr@zero #1#2#3#4#5{ 0}% -\def\XINT@irr@loop@a #1#2% +\def\XINT_irr_indeterminate #1#2#3#4#5{\xintError:NaN\space 0/0}% +\def\XINT_irr_divisionbyzero #1#2#3#4#5{\xintError:DivisionByZero #5#2/0}% +\def\XINT_irr_zero #1#2#3#4#5{ 0}% +\def\XINT_irr_loop_a #1#2% {% - \expandafter\XINT@irr@loop@d - \romannumeral0\XINT@div@prepare {#1}{#2}{#1}% + \expandafter\XINT_irr_loop_d + \romannumeral0\XINT_div_prepare {#1}{#2}{#1}% }% -\def\XINT@irr@loop@d #1#2% +\def\XINT_irr_loop_d #1#2% {% - \XINT@irr@loop@e #2\Z + \XINT_irr_loop_e #2\Z }% -\def\XINT@irr@loop@e #1#2\Z +\def\XINT_irr_loop_e #1#2\Z {% - \xint@zero #1\xint@irr@loop@exit0\XINT@irr@loop@a {#1#2}% + \xint_gob_til_zero #1\xint_irr_loop_exit0\XINT_irr_loop_a {#1#2}% }% -\def\xint@irr@loop@exit0\XINT@irr@loop@a #1#2#3#4% +\def\xint_irr_loop_exit0\XINT_irr_loop_a #1#2#3#4% {% - \expandafter\XINT@irr@loop@exitb\expandafter + \expandafter\XINT_irr_loop_exitb\expandafter {\romannumeral0\xintiquo {#3}{#2}}% {\romannumeral0\xintiquo {#4}{#2}}% }% -\def\XINT@irr@loop@exitb #1#2% +\def\XINT_irr_loop_exitb #1#2% {% - \expandafter\XINT@irr@finish\expandafter {#2}{#1}% + \expandafter\XINT_irr_finish\expandafter {#2}{#1}% }% -\def\XINT@irr@finish #1#2#3% +\def\XINT_irr_finish #1#2#3% {% - \ifcase\XINT@isOne {#2} - \xint@afterfi {#3#1/#2}% + \ifcase\XINT_isOne {#2} + \xint_afterfi {#3#1/#2}% \or - \xint@afterfi {#3#1}% + \xint_afterfi {#3#1}% \fi }% \def\xintNum {\romannumeral0\xintnum }% -\def\xintnum #1{\expandafter\XINT@intcheck\romannumeral0\xintirr {#1}/\W\Z }% -\def\XINT@intcheck #1/#2#3\Z +\def\xintnum #1{\expandafter\XINT_intcheck\romannumeral0\xintirr {#1}/\W\Z }% +\def\XINT_intcheck #1/#2#3\Z {% - \xint@w #2\xint@gobble@ii\W\xintError:NotAnInteger + \xint_gob_til_w #2\xint_gobble_ii\W + \xintError:NotAnInteger \space #1% }% \def\xintJrr {\romannumeral0\xintjrr }% \def\xintjrr #1% {% - \expandafter\XINT@jrr@start\romannumeral0\xintraw {#1}\Z + \expandafter\XINT_jrr_start\romannumeral0\xintraw {#1}\Z }% -\def\XINT@jrr@start #1#2/#3\Z +\def\XINT_jrr_start #1#2/#3\Z {% - \ifcase\XINT@isOne {#3} - \xint@afterfi - {\xint@UDsignfork - #1\dummy \XINT@jrr@negative - -\dummy {\XINT@jrr@nonneg #1}% - \xint@UDkrof}% + \ifcase\XINT_isOne {#3} + \xint_afterfi + {\xint_UDsignfork + #1\dummy \XINT_jrr_negative + -\dummy {\XINT_jrr_nonneg #1}% + \krof}% \or - \xint@afterfi{\XINT@jrr@denomisone #1}% + \xint_afterfi{\XINT_jrr_denomisone #1}% \fi #2\Z {#3}% }% -\def\XINT@jrr@denomisone #1\Z #2{ #1}% -\def\XINT@jrr@negative #1\Z #2{\XINT@jrr@D #1\Z #2\Z \xint@minus@andstop }% -\def\XINT@jrr@nonneg #1\Z #2{\XINT@jrr@D #1\Z #2\Z \space}% -\def\XINT@jrr@D #1#2\Z #3#4\Z -{% - \xint@UDzerosfork - #3#1\dummy \XINT@jrr@indeterminate - #30\dummy \XINT@jrr@divisionbyzero - #10\dummy \XINT@jrr@zero - 00\dummy \XINT@jrr@loop@a - \xint@UDkrof +\def\XINT_jrr_denomisone #1\Z #2{ #1}% +\def\XINT_jrr_negative #1\Z #2{\XINT_jrr_D #1\Z #2\Z \xint_minus_andstop }% +\def\XINT_jrr_nonneg #1\Z #2{\XINT_jrr_D #1\Z #2\Z \space}% +\def\XINT_jrr_D #1#2\Z #3#4\Z +{% + \xint_UDzerosfork + #3#1\dummy \XINT_jrr_indeterminate + #30\dummy \XINT_jrr_divisionbyzero + #10\dummy \XINT_jrr_zero + 00\dummy \XINT_jrr_loop_a + \krof {#3#4}{#1#2}1001% }% -\def\XINT@jrr@indeterminate #1#2#3#4#5#6#7{\xintError:NaN\space 0/0}% -\def\XINT@jrr@divisionbyzero #1#2#3#4#5#6#7{\xintError:DivisionByZero #7#2/0}% -\def\XINT@jrr@zero #1#2#3#4#5#6#7{ 0}% -\def\XINT@jrr@loop@a #1#2% +\def\XINT_jrr_indeterminate #1#2#3#4#5#6#7{\xintError:NaN\space 0/0}% +\def\XINT_jrr_divisionbyzero #1#2#3#4#5#6#7{\xintError:DivisionByZero #7#2/0}% +\def\XINT_jrr_zero #1#2#3#4#5#6#7{ 0}% +\def\XINT_jrr_loop_a #1#2% {% - \expandafter\XINT@jrr@loop@b - \romannumeral0\XINT@div@prepare {#1}{#2}{#1}% + \expandafter\XINT_jrr_loop_b + \romannumeral0\XINT_div_prepare {#1}{#2}{#1}% }% -\def\XINT@jrr@loop@b #1#2#3#4#5#6#7% +\def\XINT_jrr_loop_b #1#2#3#4#5#6#7% {% - \expandafter \XINT@jrr@loop@c \expandafter - {\romannumeral0\xintiadd{\XINT@Mul{#4}{#1}}{#6}}% - {\romannumeral0\xintiadd{\XINT@Mul{#5}{#1}}{#7}}% + \expandafter \XINT_jrr_loop_c \expandafter + {\romannumeral0\xintiadd{\XINT_Mul{#4}{#1}}{#6}}% + {\romannumeral0\xintiadd{\XINT_Mul{#5}{#1}}{#7}}% {#2}{#3}{#4}{#5}% }% -\def\XINT@jrr@loop@c #1#2% +\def\XINT_jrr_loop_c #1#2% {% - \expandafter \XINT@jrr@loop@d \expandafter{#2}{#1}% + \expandafter \XINT_jrr_loop_d \expandafter{#2}{#1}% }% -\def\XINT@jrr@loop@d #1#2#3#4% +\def\XINT_jrr_loop_d #1#2#3#4% {% - \XINT@jrr@loop@e #3\Z {#4}{#2}{#1}% + \XINT_jrr_loop_e #3\Z {#4}{#2}{#1}% }% -\def\XINT@jrr@loop@e #1#2\Z +\def\XINT_jrr_loop_e #1#2\Z {% - \xint@zero #1\xint@jrr@loop@exit0\XINT@jrr@loop@a {#1#2}% + \xint_gob_til_zero #1\xint_jrr_loop_exit0\XINT_jrr_loop_a {#1#2}% }% -\def\xint@jrr@loop@exit0\XINT@jrr@loop@a #1#2#3#4#5#6% +\def\xint_jrr_loop_exit0\XINT_jrr_loop_a #1#2#3#4#5#6% {% - \XINT@irr@finish {#3}{#4}% + \XINT_irr_finish {#3}{#4}% }% \def\xintTrunc {\romannumeral0\xinttrunc }% \def\xintiTrunc {\romannumeral0\xintitrunc }% \def\xinttrunc #1% {% - \expandafter\XINT@trunc\expandafter {\the\numexpr #1}% + \expandafter\XINT_trunc\expandafter {\the\numexpr #1}% }% -\def\XINT@trunc #1#2% +\def\XINT_trunc #1#2% {% - \expandafter\XINT@trunc@G - \romannumeral0\expandafter\XINT@trunc@A - \romannumeral0\XINT@infrac {#2}{#1}{#1}% + \expandafter\XINT_trunc_G + \romannumeral0\expandafter\XINT_trunc_A + \romannumeral0\XINT_infrac {#2}{#1}{#1}% }% \def\xintitrunc #1% {% - \expandafter\XINT@itrunc\expandafter {\the\numexpr #1}% + \expandafter\XINT_itrunc\expandafter {\the\numexpr #1}% }% -\def\XINT@itrunc #1#2% +\def\XINT_itrunc #1#2% {% - \expandafter\XINT@itrunc@G - \romannumeral0\expandafter\XINT@trunc@A - \romannumeral0\XINT@infrac {#2}{#1}{#1}% + \expandafter\XINT_itrunc_G + \romannumeral0\expandafter\XINT_trunc_A + \romannumeral0\XINT_infrac {#2}{#1}{#1}% }% -\def\XINT@trunc@A #1#2#3#4% +\def\XINT_trunc_A #1#2#3#4% {% - \expandafter\XINT@trunc@checkifzero + \expandafter\XINT_trunc_checkifzero \expandafter{\the\numexpr #1+#4}#2\Z {#3}% }% -\def\XINT@trunc@checkifzero #1#2#3\Z +\def\XINT_trunc_checkifzero #1#2#3\Z {% - \xint@zero #2\XINT@trunc@iszero0\XINT@trunc@B {#1}{#2#3}% + \xint_gob_til_zero #2\XINT_trunc_iszero0\XINT_trunc_B {#1}{#2#3}% }% -\def\XINT@trunc@iszero #1#2#3#4#5{ 0\Z 0}% -\def\XINT@trunc@B #1% +\def\XINT_trunc_iszero #1#2#3#4#5{ 0\Z 0}% +\def\XINT_trunc_B #1% {% - \ifcase\XINT@Sgn {#1} - \expandafter\XINT@trunc@D + \ifcase\XINT_Sgn {#1} + \expandafter\XINT_trunc_D \or - \expandafter\XINT@trunc@D + \expandafter\XINT_trunc_D \else - \expandafter\XINT@trunc@C + \expandafter\XINT_trunc_C \fi {#1}% }% -\def\XINT@trunc@C #1#2#3% +\def\XINT_trunc_C #1#2#3% {% - \expandafter \XINT@trunc@E - \romannumeral0\xint@dsh {#3}{#1}\Z #2\Z + \expandafter \XINT_trunc_E + \romannumeral0\xint_dsh {#3}{#1}\Z #2\Z }% -\def\XINT@trunc@D #1#2% +\def\XINT_trunc_D #1#2% {% - \expandafter \XINT@trunc@DE \expandafter - {\romannumeral0\xint@dsh {#2}{-#1}}% + \expandafter \XINT_trunc_DE \expandafter + {\romannumeral0\xint_dsh {#2}{-#1}}% }% -\def\XINT@trunc@DE #1#2{\XINT@trunc@E #2\Z #1\Z }% -\def\XINT@trunc@E #1#2\Z #3#4\Z +\def\XINT_trunc_DE #1#2{\XINT_trunc_E #2\Z #1\Z }% +\def\XINT_trunc_E #1#2\Z #3#4\Z {% - \xint@UDsignsfork - #1#3\dummy \XINT@trunc@minusminus - #1-\dummy {\XINT@trunc@minusplus #3}% - #3-\dummy {\XINT@trunc@plusminus #1}% - --\dummy {\XINT@trunc@plusplus #3#1}% - \xint@UDkrof + \xint_UDsignsfork + #1#3\dummy \XINT_trunc_minusminus + #1-\dummy {\XINT_trunc_minusplus #3}% + #3-\dummy {\XINT_trunc_plusminus #1}% + --\dummy {\XINT_trunc_plusplus #3#1}% + \krof {#4}{#2}% }% -\def\XINT@trunc@minusminus #1#2{\xintiquo {#1}{#2}\Z \space}% -\def\XINT@trunc@minusplus #1#2#3{\xintiquo {#1#2}{#3}\Z \xint@minus@andstop}% -\def\XINT@trunc@plusminus #1#2#3{\xintiquo {#2}{#1#3}\Z \xint@minus@andstop}% -\def\XINT@trunc@plusplus #1#2#3#4{\xintiquo {#1#3}{#2#4}\Z \space}% -\def\XINT@itrunc@G #1#2\Z #3#4% +\def\XINT_trunc_minusminus #1#2{\xintiquo {#1}{#2}\Z \space}% +\def\XINT_trunc_minusplus #1#2#3{\xintiquo {#1#2}{#3}\Z \xint_minus_andstop}% +\def\XINT_trunc_plusminus #1#2#3{\xintiquo {#2}{#1#3}\Z \xint_minus_andstop}% +\def\XINT_trunc_plusplus #1#2#3#4{\xintiquo {#1#3}{#2#4}\Z \space}% +\def\XINT_itrunc_G #1#2\Z #3#4% {% - \xint@zero #1\XINT@trunc@zero 0\xint@firstoftwo {#3#1#2}0% + \xint_gob_til_zero #1\XINT_trunc_zero 0\xint_firstoftwo {#3#1#2}0% }% -\def\XINT@trunc@G #1\Z #2#3% +\def\XINT_trunc_G #1\Z #2#3% {% - \xint@zero #2\XINT@trunc@zero 0% - \expandafter\XINT@trunc@H\expandafter - {\the\numexpr\romannumeral0\XINT@length {#1}-#3}{#3}{#1}#2% + \xint_gob_til_zero #2\XINT_trunc_zero 0% + \expandafter\XINT_trunc_H\expandafter + {\the\numexpr\romannumeral0\XINT_length {#1}-#3}{#3}{#1}#2% }% -\def\XINT@trunc@zero 0#10{ 0}% -\def\XINT@trunc@H #1#2% +\def\XINT_trunc_zero 0#10{ 0}% +\def\XINT_trunc_H #1#2% {% \ifnum #1 > 0 - \xint@afterfi {\XINT@trunc@Ha {#2}}% + \xint_afterfi {\XINT_trunc_Ha {#2}}% \else - \xint@afterfi {\XINT@trunc@Hb {-#1}}% -0,--1,--2, .... + \xint_afterfi {\XINT_trunc_Hb {-#1}}% -0,--1,--2, .... \fi }% -\def\XINT@trunc@Ha +\def\XINT_trunc_Ha {% - \expandafter\XINT@trunc@Haa\romannumeral0\xintdecsplit + \expandafter\XINT_trunc_Haa\romannumeral0\xintdecsplit }% -\def\XINT@trunc@Haa #1#2#3% +\def\XINT_trunc_Haa #1#2#3% {% #3#1.#2% }% -\def\XINT@trunc@Hb #1#2#3% +\def\XINT_trunc_Hb #1#2#3% {% \expandafter #3\expandafter0\expandafter.% - \romannumeral0\XINT@dsx@zeroloop {#1}\Z {}#2% #1=-0 possible! + \romannumeral0\XINT_dsx_zeroloop {#1}\Z {}#2% #1=-0 possible! }% \def\xintRound {\romannumeral0\xintround }% \def\xintiRound {\romannumeral0\xintiround }% \def\xintround #1% {% - \expandafter\XINT@round\expandafter {\the\numexpr #1}% + \expandafter\XINT_round\expandafter {\the\numexpr #1}% }% -\def\XINT@round +\def\XINT_round {% - \expandafter\XINT@trunc@G\romannumeral0\XINT@round@A + \expandafter\XINT_trunc_G\romannumeral0\XINT_round_A }% \def\xintiround #1% {% - \expandafter\XINT@iround\expandafter {\the\numexpr #1}% + \expandafter\XINT_iround\expandafter {\the\numexpr #1}% }% -\def\XINT@iround +\def\XINT_iround {% - \expandafter\XINT@itrunc@G\romannumeral0\XINT@round@A + \expandafter\XINT_itrunc_G\romannumeral0\XINT_round_A }% -\def\XINT@round@A #1#2% +\def\XINT_round_A #1#2% {% - \expandafter\XINT@round@B - \romannumeral0\expandafter\XINT@trunc@A - \romannumeral0\XINT@infrac {#2}{\the\numexpr #1+1\relax}{#1}% + \expandafter\XINT_round_B + \romannumeral0\expandafter\XINT_trunc_A + \romannumeral0\XINT_infrac {#2}{\the\numexpr #1+1\relax}{#1}% }% -\def\XINT@round@B #1\Z +\def\XINT_round_B #1\Z {% - \expandafter\XINT@round@C - \romannumeral0\XINT@rord@main {}#1% - \xint@UNDEF - \xint@undef\xint@undef\xint@undef\xint@undef - \xint@undef\xint@undef\xint@undef\xint@undef - \xint@UNDEF + \expandafter\XINT_round_C + \romannumeral0\XINT_rord_main {}#1% + \xint_relax + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_relax \Z }% -\def\XINT@round@C #1% +\def\XINT_round_C #1% {% \ifnum #1<5 - \expandafter\XINT@round@Daa + \expandafter\XINT_round_Daa \else - \expandafter\XINT@round@Dba + \expandafter\XINT_round_Dba \fi }% -\def\XINT@round@Daa #1% +\def\XINT_round_Daa #1% {% - \xint@z #1\XINT@round@Daz\Z \XINT@round@Da #1% + \xint_gob_til_z #1\XINT_round_Daz\Z \XINT_round_Da #1% }% -\def\XINT@round@Daz\Z \XINT@round@Da \Z { 0\Z }% -\def\XINT@round@Da #1\Z +\def\XINT_round_Daz\Z \XINT_round_Da \Z { 0\Z }% +\def\XINT_round_Da #1\Z {% - \XINT@rord@main {}#1% - \xint@UNDEF - \xint@undef\xint@undef\xint@undef\xint@undef - \xint@undef\xint@undef\xint@undef\xint@undef - \xint@UNDEF \Z + \XINT_rord_main {}#1% + \xint_relax + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_relax \Z }% -\def\XINT@round@Dba #1% +\def\XINT_round_Dba #1% {% - \xint@z #1\XINT@round@Dbz\Z \XINT@round@Db #1% + \xint_gob_til_z #1\XINT_round_Dbz\Z \XINT_round_Db #1% }% -\def\XINT@round@Dbz\Z \XINT@round@Db \Z { 1\Z }% -\def\XINT@round@Db #1\Z +\def\XINT_round_Dbz\Z \XINT_round_Db \Z { 1\Z }% +\def\XINT_round_Db #1\Z {% - \XINT@addm@A 0{}1000\W\X\Y\Z #1000\W\X\Y\Z \Z + \XINT_addm_A 0{}1000\W\X\Y\Z #1000\W\X\Y\Z \Z }% \def\xintAdd {\romannumeral0\xintadd }% \def\xintadd #1% {% - \expandafter\xint@fadd\expandafter {\romannumeral0\XINT@infrac {#1}}% + \expandafter\xint_fadd\expandafter {\romannumeral0\XINT_infrac {#1}}% }% -\def\xint@fadd #1#2{\expandafter\XINT@fadd@A\romannumeral0\XINT@infrac{#2}#1}% -\def\XINT@fadd@A #1#2#3#4% +\def\xint_fadd #1#2{\expandafter\XINT_fadd_A\romannumeral0\XINT_infrac{#2}#1}% +\def\XINT_fadd_A #1#2#3#4% {% \ifnum #4 > #1 - \xint@afterfi {\XINT@fadd@B {#1}}% + \xint_afterfi {\XINT_fadd_B {#1}}% \else - \xint@afterfi {\XINT@fadd@B {#4}}% + \xint_afterfi {\XINT_fadd_B {#4}}% \fi {#1}{#4}{#2}{#3}% }% -\def\XINT@fadd@B #1#2#3#4#5#6#7% +\def\XINT_fadd_B #1#2#3#4#5#6#7% {% - \expandafter\XINT@fadd@C\expandafter + \expandafter\XINT_fadd_C\expandafter {\romannumeral0\xintimul {#7}{#5}}% {\romannumeral0\xintiadd {\romannumeral0\xintimul {\xintDSH {\the\numexpr -#3+#1\relax}{#6}}{#5}}% @@ -911,30 +917,30 @@ }% {#1}% }% -\def\XINT@fadd@C #1#2#3% +\def\XINT_fadd_C #1#2#3% {% - \expandafter\XINT@fadd@D\expandafter {#2}{#3}{#1}% + \expandafter\XINT_fadd_D\expandafter {#2}{#3}{#1}% }% -\def\XINT@fadd@D #1#2{\XINT@outfrac {#2}{#1}}% +\def\XINT_fadd_D #1#2{\XINT_outfrac {#2}{#1}}% \def\xintSub {\romannumeral0\xintsub }% \def\xintsub #1% {% - \expandafter\xint@fsub\expandafter {\romannumeral0\XINT@infrac {#1}}% + \expandafter\xint_fsub\expandafter {\romannumeral0\XINT_infrac {#1}}% }% -\def\xint@fsub #1#2% - {\expandafter\XINT@fsub@A\romannumeral0\XINT@infrac {#2}#1}% -\def\XINT@fsub@A #1#2#3#4% +\def\xint_fsub #1#2% + {\expandafter\XINT_fsub_A\romannumeral0\XINT_infrac {#2}#1}% +\def\XINT_fsub_A #1#2#3#4% {% \ifnum #4 > #1 - \xint@afterfi {\XINT@fsub@B {#1}}% + \xint_afterfi {\XINT_fsub_B {#1}}% \else - \xint@afterfi {\XINT@fsub@B {#4}}% + \xint_afterfi {\XINT_fsub_B {#4}}% \fi {#1}{#4}{#2}{#3}% }% -\def\XINT@fsub@B #1#2#3#4#5#6#7% +\def\XINT_fsub_B #1#2#3#4#5#6#7% {% - \expandafter\XINT@fsub@C\expandafter + \expandafter\XINT_fsub_C\expandafter {\romannumeral0\xintimul {#7}{#5}}% {\romannumeral0\xintisub {\romannumeral0\xintimul {\xintDSH {\the\numexpr -#3+#1\relax}{#6}}{#5}}% @@ -942,151 +948,151 @@ }% {#1}% }% -\def\XINT@fsub@C #1#2#3% +\def\XINT_fsub_C #1#2#3% {% - \expandafter\XINT@fsub@D\expandafter {#2}{#3}{#1}% + \expandafter\XINT_fsub_D\expandafter {#2}{#3}{#1}% }% -\def\XINT@fsub@D #1#2{\XINT@outfrac {#2}{#1}}% +\def\XINT_fsub_D #1#2{\XINT_outfrac {#2}{#1}}% \def\xintSum {\romannumeral0\xintsum }% \def\xintsum #1{\xintsumexpr #1\relax }% \def\xintSumExpr {\romannumeral0\xintsumexpr }% -\def\xintsumexpr {\expandafter\XINT@fsumexpr\romannumeral-`0}% -\def\XINT@fsumexpr {\XINT@fsum@loop@a {0/1[0]}}% -\def\XINT@fsum@loop@a #1#2% +\def\xintsumexpr {\expandafter\XINT_fsumexpr\romannumeral-`0}% +\def\XINT_fsumexpr {\XINT_fsum_loop_a {0/1[0]}}% +\def\XINT_fsum_loop_a #1#2% {% - \expandafter\XINT@fsum@loop@b \romannumeral-`0#2\Z {#1}% + \expandafter\XINT_fsum_loop_b \romannumeral-`0#2\Z {#1}% }% -\def\XINT@fsum@loop@b #1% +\def\XINT_fsum_loop_b #1% {% - \xint@relax #1\XINT@fsum@finished\relax - \XINT@fsum@loop@c #1% + \xint_gob_til_relax #1\XINT_fsum_finished\relax + \XINT_fsum_loop_c #1% }% -\def\XINT@fsum@loop@c #1\Z #2% +\def\XINT_fsum_loop_c #1\Z #2% {% - \expandafter\XINT@fsum@loop@a\expandafter{\romannumeral0\xintadd {#2}{#1}}% + \expandafter\XINT_fsum_loop_a\expandafter{\romannumeral0\xintadd {#2}{#1}}% }% -\def\XINT@fsum@finished #1\Z #2{ #2}% +\def\XINT_fsum_finished #1\Z #2{ #2}% \def\xintMul {\romannumeral0\xintmul }% \def\xintmul #1% {% - \expandafter\xint@fmul\expandafter {\romannumeral0\XINT@infrac {#1}}% + \expandafter\xint_fmul\expandafter {\romannumeral0\XINT_infrac {#1}}% }% -\def\xint@fmul #1#2% - {\expandafter\XINT@fmul@A\romannumeral0\XINT@infrac {#2}#1}% -\def\XINT@fmul@A #1#2#3#4#5#6% +\def\xint_fmul #1#2% + {\expandafter\XINT_fmul_A\romannumeral0\XINT_infrac {#2}#1}% +\def\XINT_fmul_A #1#2#3#4#5#6% {% - \expandafter\XINT@fmul@B + \expandafter\XINT_fmul_B \expandafter{\the\numexpr #1+#4\expandafter}% \expandafter{\romannumeral0\xintimul {#6}{#3}}% {\romannumeral0\xintimul {#5}{#2}}% }% -\def\XINT@fmul@B #1#2#3% +\def\XINT_fmul_B #1#2#3% {% - \expandafter \XINT@fmul@C \expandafter{#3}{#1}{#2}% + \expandafter \XINT_fmul_C \expandafter{#3}{#1}{#2}% }% -\def\XINT@fmul@C #1#2{\XINT@outfrac {#2}{#1}}% +\def\XINT_fmul_C #1#2{\XINT_outfrac {#2}{#1}}% \def\xintSqr {\romannumeral0\xintsqr }% \def\xintsqr #1% {% - \expandafter\xint@fsqr\expandafter{\romannumeral0\XINT@infrac {#1}}% + \expandafter\xint_fsqr\expandafter{\romannumeral0\XINT_infrac {#1}}% }% -\def\xint@fsqr #1{\XINT@fmul@A #1#1}% +\def\xint_fsqr #1{\XINT_fmul_A #1#1}% \def\xintPow {\romannumeral0\xintpow }% \def\xintpow #1% {% - \expandafter\xint@fpow\expandafter {\romannumeral0\XINT@infrac {#1}}% + \expandafter\xint_fpow\expandafter {\romannumeral0\XINT_infrac {#1}}% }% -\def\xint@fpow #1#2% +\def\xint_fpow #1#2% {% - \expandafter\XINT@fpow@fork\the\numexpr #2\relax\Z #1% + \expandafter\XINT_fpow_fork\the\numexpr #2\relax\Z #1% }% -\def\XINT@fpow@fork #1#2\Z +\def\XINT_fpow_fork #1#2\Z {% - \xint@UDzerominusfork - #1-\dummy \XINT@fpow@zero - 0#1\dummy \XINT@fpow@neg - 0-\dummy {\XINT@fpow@pos #1}% - \xint@UDkrof + \xint_UDzerominusfork + #1-\dummy \XINT_fpow_zero + 0#1\dummy \XINT_fpow_neg + 0-\dummy {\XINT_fpow_pos #1}% + \krof {#2}% }% -\def\XINT@fpow@zero #1#2#3#4% +\def\XINT_fpow_zero #1#2#3#4% {% \space 1/1[0]% }% -\def\XINT@fpow@pos #1#2#3#4#5% +\def\XINT_fpow_pos #1#2#3#4#5% {% - \expandafter\XINT@fpow@pos@A\expandafter + \expandafter\XINT_fpow_pos_A\expandafter {\the\numexpr #1#2*#3\expandafter}\expandafter {\romannumeral0\xintipow {#5}{#1#2}}% {\romannumeral0\xintipow {#4}{#1#2}}% }% -\def\XINT@fpow@neg #1#2#3#4% +\def\XINT_fpow_neg #1#2#3#4% {% - \expandafter\XINT@fpow@pos@A\expandafter + \expandafter\XINT_fpow_pos_A\expandafter {\the\numexpr -#1*#2\expandafter}\expandafter {\romannumeral0\xintipow {#3}{#1}}% {\romannumeral0\xintipow {#4}{#1}}% }% -\def\XINT@fpow@pos@A #1#2#3% +\def\XINT_fpow_pos_A #1#2#3% {% - \expandafter\XINT@fpow@pos@B\expandafter {#3}{#1}{#2}% + \expandafter\XINT_fpow_pos_B\expandafter {#3}{#1}{#2}% }% -\def\XINT@fpow@pos@B #1#2{\XINT@outfrac {#2}{#1}}% +\def\XINT_fpow_pos_B #1#2{\XINT_outfrac {#2}{#1}}% \def\xintPrd {\romannumeral0\xintprd }% \def\xintprd #1{\xintprdexpr #1\relax }% \def\xintPrdExpr {\romannumeral0\xintprdexpr }% -\def\xintprdexpr {\expandafter\XINT@fprdexpr \romannumeral-`0}% -\def\XINT@fprdexpr {\XINT@fprod@loop@a {1/1[0]}}% -\def\XINT@fprod@loop@a #1#2% +\def\xintprdexpr {\expandafter\XINT_fprdexpr \romannumeral-`0}% +\def\XINT_fprdexpr {\XINT_fprod_loop_a {1/1[0]}}% +\def\XINT_fprod_loop_a #1#2% {% - \expandafter\XINT@fprod@loop@b \romannumeral-`0#2\Z {#1}% + \expandafter\XINT_fprod_loop_b \romannumeral-`0#2\Z {#1}% }% -\def\XINT@fprod@loop@b #1% +\def\XINT_fprod_loop_b #1% {% - \xint@relax #1\XINT@fprod@finished\relax - \XINT@fprod@loop@c #1% + \xint_gob_til_relax #1\XINT_fprod_finished\relax + \XINT_fprod_loop_c #1% }% -\def\XINT@fprod@loop@c #1\Z #2% +\def\XINT_fprod_loop_c #1\Z #2% {% - \expandafter\XINT@fprod@loop@a\expandafter{\romannumeral0\xintmul {#1}{#2}}% + \expandafter\XINT_fprod_loop_a\expandafter{\romannumeral0\xintmul {#1}{#2}}% }% -\def\XINT@fprod@finished #1\Z #2{ #2}% +\def\XINT_fprod_finished #1\Z #2{ #2}% \def\xintDiv {\romannumeral0\xintdiv }% \def\xintdiv #1% {% - \expandafter\xint@fdiv\expandafter {\romannumeral0\XINT@infrac {#1}}% + \expandafter\xint_fdiv\expandafter {\romannumeral0\XINT_infrac {#1}}% }% -\def\xint@fdiv #1#2% - {\expandafter\XINT@fdiv@A\romannumeral0\XINT@infrac {#2}#1}% -\def\XINT@fdiv@A #1#2#3#4#5#6% +\def\xint_fdiv #1#2% + {\expandafter\XINT_fdiv_A\romannumeral0\XINT_infrac {#2}#1}% +\def\XINT_fdiv_A #1#2#3#4#5#6% {% - \expandafter\XINT@fdiv@B + \expandafter\XINT_fdiv_B \expandafter{\the\numexpr #4-#1\expandafter}% \expandafter{\romannumeral0\xintimul {#2}{#6}}% {\romannumeral0\xintimul {#3}{#5}}% }% -\def\XINT@fdiv@B #1#2#3% +\def\XINT_fdiv_B #1#2#3% {% - \expandafter\XINT@fdiv@C + \expandafter\XINT_fdiv_C \expandafter{#3}{#1}{#2}% }% -\def\XINT@fdiv@C #1#2{\XINT@outfrac {#2}{#1}}% +\def\XINT_fdiv_C #1#2{\XINT_outfrac {#2}{#1}}% \def\xintCmp {\romannumeral0\xintcmp }% \def\xintcmp #1% {% - \expandafter\xint@fcmp\expandafter {\romannumeral0\XINT@infrac {#1}}% + \expandafter\xint_fcmp\expandafter {\romannumeral0\XINT_infrac {#1}}% }% -\def\xint@fcmp #1#2{\expandafter\XINT@fcmp@A\romannumeral0\XINT@infrac {#2}#1}% -\def\XINT@fcmp@A #1#2#3#4% +\def\xint_fcmp #1#2{\expandafter\XINT_fcmp_A\romannumeral0\XINT_infrac {#2}#1}% +\def\XINT_fcmp_A #1#2#3#4% {% \ifnum #4 > #1 - \xint@afterfi {\XINT@fcmp@B {#1}}% + \xint_afterfi {\XINT_fcmp_B {#1}}% \else - \xint@afterfi {\XINT@fcmp@B {#4}}% + \xint_afterfi {\XINT_fcmp_B {#4}}% \fi {#1}{#4}{#2}{#3}% }% -\def\XINT@fcmp@B #1#2#3#4#5#6#7% +\def\XINT_fcmp_B #1#2#3#4#5#6#7% {% \xinticmp {\romannumeral0\xintimul {\xintDSH {\the\numexpr -#3+#1\relax}{#6}}{#5}}% @@ -1095,150 +1101,150 @@ \def\xintMax {\romannumeral0\xintmax }% \def\xintmax #1% {% - \expandafter\xint@fmax\expandafter {\romannumeral0\XINT@infrac {#1}}% + \expandafter\xint_fmax\expandafter {\romannumeral0\XINT_infrac {#1}}% }% -\def\xint@fmax #1#2{\expandafter\XINT@outfrac - \romannumeral0\expandafter\XINT@fmax@A - \romannumeral0\XINT@infrac {#2}#1}% -\def\XINT@fmax@A #1#2#3#4#5#6% +\def\xint_fmax #1#2{\expandafter\XINT_outfrac + \romannumeral0\expandafter\XINT_fmax_A + \romannumeral0\XINT_infrac {#2}#1}% +\def\XINT_fmax_A #1#2#3#4#5#6% {% \ifnum #4 > #1 - \xint@afterfi {\XINT@fmax@B {#1}}% + \xint_afterfi {\XINT_fmax_B {#1}}% \else - \xint@afterfi {\XINT@fmax@B {#4}}% + \xint_afterfi {\XINT_fmax_B {#4}}% \fi {#1}{#4}{#2}{#3}{#5}{#6}{{#4}{#5}{#6}}{{#1}{#2}{#3}}% }% -\def\XINT@fmax@B #1#2#3#4#5#6#7% +\def\XINT_fmax_B #1#2#3#4#5#6#7% {% - \expandafter\XINT@fmax@C\expandafter + \expandafter\XINT_fmax_C\expandafter {\romannumeral0\xintimul {\xintDSH {\the\numexpr -#3+#1\relax}{#6}}{#5}}% {\romannumeral0\xintimul {#7}{\xintDSH {\the\numexpr -#2+#1\relax}{#4}}}% }% -\def\XINT@fmax@C #1#2% +\def\XINT_fmax_C #1#2% {% - \expandafter\XINT@max@fork #2\Z #1\Z + \expandafter\XINT_max_fork #2\Z #1\Z }% \def\xintMin {\romannumeral0\xintmin }% \def\xintmin #1% {% - \expandafter\xint@fmin\expandafter {\romannumeral0\XINT@infrac {#1}}% + \expandafter\xint_fmin\expandafter {\romannumeral0\XINT_infrac {#1}}% }% -\def\xint@fmin #1#2% +\def\xint_fmin #1#2% {% - \expandafter\XINT@outfrac - \romannumeral0\expandafter\XINT@fmin@A - \romannumeral0\XINT@infrac {#2}#1% + \expandafter\XINT_outfrac + \romannumeral0\expandafter\XINT_fmin_A + \romannumeral0\XINT_infrac {#2}#1% }% -\def\XINT@fmin@A #1#2#3#4#5#6% +\def\XINT_fmin_A #1#2#3#4#5#6% {% \ifnum #4 > #1 - \xint@afterfi {\XINT@fmin@B {#1}}% + \xint_afterfi {\XINT_fmin_B {#1}}% \else - \xint@afterfi {\XINT@fmin@B {#4}}% + \xint_afterfi {\XINT_fmin_B {#4}}% \fi {#1}{#4}{#2}{#3}{#5}{#6}{{#4}{#5}{#6}}{{#1}{#2}{#3}}% }% -\def\XINT@fmin@B #1#2#3#4#5#6#7% +\def\XINT_fmin_B #1#2#3#4#5#6#7% {% - \expandafter\XINT@fmin@C\expandafter + \expandafter\XINT_fmin_C\expandafter {\romannumeral0\xintimul {\xintDSH {\the\numexpr -#3+#1\relax}{#6}}{#5}}% {\romannumeral0\xintimul {#7}{\xintDSH {\the\numexpr -#2+#1\relax}{#4}}}% }% -\def\XINT@fmin@C #1#2% +\def\XINT_fmin_C #1#2% {% - \expandafter\XINT@min@fork #2\Z #1\Z + \expandafter\XINT_min_fork #2\Z #1\Z }% \def\xintAbs {\romannumeral0\xintabs }% \def\xintabs #1% {% - \expandafter\xint@fabs\romannumeral0\XINT@infrac {#1}% + \expandafter\xint_fabs\romannumeral0\XINT_infrac {#1}% }% -\def\xint@fabs #1#2% +\def\xint_fabs #1#2% {% - \expandafter\XINT@outfrac\expandafter + \expandafter\XINT_outfrac\expandafter {\the\numexpr #1\expandafter}\expandafter - {\romannumeral0\XINT@abs #2}% + {\romannumeral0\XINT_abs #2}% }% \def\xintOpp {\romannumeral0\xintopp }% \def\xintopp #1% {% - \expandafter\xint@fopp\romannumeral0\XINT@infrac {#1}% + \expandafter\xint_fopp\romannumeral0\XINT_infrac {#1}% }% -\def\xint@fopp #1#2% +\def\xint_fopp #1#2% {% - \expandafter\XINT@outfrac\expandafter + \expandafter\XINT_outfrac\expandafter {\the\numexpr #1\expandafter}\expandafter - {\romannumeral0\XINT@opp #2}% + {\romannumeral0\XINT_opp #2}% }% \def\xintSgn {\romannumeral0\xintsgn }% \def\xintsgn #1% {% - \expandafter\xint@fsgn\romannumeral0\XINT@infrac {#1}% + \expandafter\xint_fsgn\romannumeral0\XINT_infrac {#1}% }% -\def\xint@fsgn #1#2#3{\xintisgn {#2}}% +\def\xint_fsgn #1#2#3{\xintisgn {#2}}% \def\xintGeq {\romannumeral0\xintgeq }% \def\xintgeq #1% {% - \expandafter\xint@xgeq\expandafter{\romannumeral0\xintnum {#1}}% + \expandafter\xint_xgeq\expandafter{\romannumeral0\xintnum {#1}}% }% -\def\xint@xgeq #1#2% +\def\xint_xgeq #1#2% {% - \expandafter\XINT@geq@fork\romannumeral0\xintnum {#2}\Z #1\Z + \expandafter\XINT_geq_fork\romannumeral0\xintnum {#2}\Z #1\Z }% \def\xintDivision {\romannumeral0\xintdivision }% \def\xintdivision #1% {% - \expandafter\xint@xdivision\expandafter{\romannumeral0\xintnum {#1}}% + \expandafter\xint_xdivision\expandafter{\romannumeral0\xintnum {#1}}% }% -\def\xint@xdivision #1#2% +\def\xint_xdivision #1#2% {% - \expandafter\XINT@div@fork\romannumeral0\xintnum {#2}\Z #1\Z + \expandafter\XINT_div_fork\romannumeral0\xintnum {#2}\Z #1\Z }% \def\xintQuo {\romannumeral0\xintquo }% \def\xintRem {\romannumeral0\xintrem }% -\def\xintquo {\expandafter\xint@firstoftwo@andstop +\def\xintquo {\expandafter\xint_firstoftwo_andstop \romannumeral0\xintdivision }% -\def\xintrem {\expandafter\xint@secondoftwo@andstop +\def\xintrem {\expandafter\xint_secondoftwo_andstop \romannumeral0\xintdivision }% \def\xintFDg {\romannumeral0\xintfdg }% \def\xintfdg #1% {% - \expandafter\XINT@fdg\romannumeral0\xintnum {#1}\W\Z + \expandafter\XINT_fdg\romannumeral0\xintnum {#1}\W\Z }% \def\xintLDg {\romannumeral0\xintldg }% \def\xintldg #1% {% - \expandafter\XINT@ldg\expandafter{\romannumeral0\xintnum {#1}}% + \expandafter\XINT_ldg\expandafter{\romannumeral0\xintnum {#1}}% }% \def\xintMON {\romannumeral0\xintmon }% \def\xintmon #1% {% \ifodd\xintLDg {#1} - \xint@afterfi{ -1}% + \xint_afterfi{ -1}% \else - \xint@afterfi{ 1}% + \xint_afterfi{ 1}% \fi }% \def\xintMMON {\romannumeral0\xintmmon }% \def\xintmmon #1% {% \ifodd\xintLDg {#1} - \xint@afterfi{ 1}% + \xint_afterfi{ 1}% \else - \xint@afterfi{ -1}% + \xint_afterfi{ -1}% \fi }% \def\xintOdd {\romannumeral0\xintodd }% \def\xintodd #1% {% \ifodd\xintLDg{#1} - \xint@afterfi{ 1}% + \xint_afterfi{ 1}% \else - \xint@afterfi{ 0}% + \xint_afterfi{ 0}% \fi }% -\XINT@frac@restorecatcodes@endinput% +\XINT_frac_restorecatcodes_endinput% \endinput %% %% End of file `xintfrac.sty'. diff --git a/Master/texmf-dist/tex/generic/xint/xintgcd.sty b/Master/texmf-dist/tex/generic/xint/xintgcd.sty index 6339b64cbe1..77bee301efe 100644 --- a/Master/texmf-dist/tex/generic/xint/xintgcd.sty +++ b/Master/texmf-dist/tex/generic/xint/xintgcd.sty @@ -22,7 +22,7 @@ %% in the same archive or directory.) %% %%---------------------------------------------------------------- -%% The xint bundle (version 1.06a of May 9, 2013) +%% The xint bundle (version 1.06b of May 14, 2013) %% xintgcd: Euclidean algorithm with xint package %% Copyright (C) 2013 by Jean-Francois Burnol %%---------------------------------------------------------------- @@ -108,11 +108,11 @@ \endlinechar=13 % \catcode123=1 % { \catcode125=2 % } - \catcode64=11 % @ + \catcode95=11 % _ \def\x {% \endgroup - \edef\XINT@gcd@restorecatcodes@endinput + \edef\XINT_gcd_restorecatcodes_endinput {% \catcode36=\the\catcode36 % $ \catcode96=\the\catcode96 % ` @@ -128,7 +128,7 @@ \catcode45=\the\catcode45 % - \catcode44=\the\catcode44 % , \catcode35=\the\catcode35 % # - \catcode64=\the\catcode64 % @ + \catcode95=\the\catcode95 % _ \catcode125=\the\catcode125 % } \catcode123=\the\catcode123 % { \endlinechar=\the\endlinechar @@ -137,11 +137,12 @@ \catcode61=\the\catcode61\relax % = \noexpand\endinput }% - \XINT@setcatcodes + \XINT_setcatcodes \catcode36=3 % $ }% \x \begingroup + \catcode64=11 % @ \catcode91=12 % [ \catcode93=12 % ] \catcode58=12 % : @@ -163,289 +164,289 @@ \fi \expandafter\x\csname ver@xintgcd.sty\endcsname \ProvidesPackage{xintgcd}% - [2013/05/09 v1.06a Euclide algorithm with xint package (jfB)]% + [2013/05/14 v1.06b Euclide algorithm with xint package (jfB)]% \def\xintGCD {\romannumeral0\xintgcd }% \def\xintgcd #1% {% - \expandafter\XINT@gcd\expandafter{\romannumeral0\xintiabs {#1}}% + \expandafter\XINT_gcd\expandafter{\romannumeral0\xintiabs {#1}}% }% -\def\XINT@gcd #1#2% +\def\XINT_gcd #1#2% {% - \expandafter\XINT@gcd@fork\romannumeral0\xintiabs {#2}\Z #1\Z + \expandafter\XINT_gcd_fork\romannumeral0\xintiabs {#2}\Z #1\Z }% -\def\XINT@gcd@fork #1#2\Z #3#4\Z +\def\XINT_gcd_fork #1#2\Z #3#4\Z {% - \xint@UDzerofork - #1\dummy \XINT@gcd@BisZero - #3\dummy \XINT@gcd@AisZero - 0\dummy \XINT@gcd@loop - \xint@UDkrof + \xint_UDzerofork + #1\dummy \XINT_gcd_BisZero + #3\dummy \XINT_gcd_AisZero + 0\dummy \XINT_gcd_loop + \krof {#1#2}{#3#4}% }% -\def\XINT@gcd@AisZero #1#2{ #1}% -\def\XINT@gcd@BisZero #1#2{ #2}% -\def\XINT@gcd@CheckRem #1#2\Z +\def\XINT_gcd_AisZero #1#2{ #1}% +\def\XINT_gcd_BisZero #1#2{ #2}% +\def\XINT_gcd_CheckRem #1#2\Z {% - \xint@zero #1\xint@gcd@end0\XINT@gcd@loop {#1#2}% + \xint_gob_til_zero #1\xint_gcd_end0\XINT_gcd_loop {#1#2}% }% -\def\xint@gcd@end0\XINT@gcd@loop #1#2{ #2}% -\def\XINT@gcd@loop #1#2% +\def\xint_gcd_end0\XINT_gcd_loop #1#2{ #2}% +\def\XINT_gcd_loop #1#2% {% \expandafter\expandafter\expandafter - \XINT@gcd@CheckRem - \expandafter\xint@secondoftwo - \romannumeral0\XINT@div@prepare {#1}{#2}\Z + \XINT_gcd_CheckRem + \expandafter\xint_secondoftwo + \romannumeral0\XINT_div_prepare {#1}{#2}\Z {#1}% }% \def\xintBezout {\romannumeral0\xintbezout }% \def\xintbezout #1% {% - \expandafter\xint@bezout\expandafter {\romannumeral-`0#1}% + \expandafter\xint_bezout\expandafter {\romannumeral-`0#1}% }% -\def\xint@bezout #1#2% +\def\xint_bezout #1#2% {% - \expandafter\XINT@bezout@fork \romannumeral-`0#2\Z #1\Z + \expandafter\XINT_bezout_fork \romannumeral-`0#2\Z #1\Z }% -\def\XINT@bezout@fork #1#2\Z #3#4\Z +\def\XINT_bezout_fork #1#2\Z #3#4\Z {% - \xint@UDzerosfork - #1#3\dummy \XINT@bezout@botharezero - #10\dummy \XINT@bezout@secondiszero - #30\dummy \XINT@bezout@firstiszero + \xint_UDzerosfork + #1#3\dummy \XINT_bezout_botharezero + #10\dummy \XINT_bezout_secondiszero + #30\dummy \XINT_bezout_firstiszero 00\dummy - {\xint@UDsignsfork - #1#3\dummy \XINT@bezout@minusminus % A < 0, B < 0 - #1-\dummy \XINT@bezout@minusplus % A > 0, B < 0 - #3-\dummy \XINT@bezout@plusminus % A < 0, B > 0 - --\dummy \XINT@bezout@plusplus % A > 0, B > 0 - \xint@UDkrof }% - \xint@UDkrof + {\xint_UDsignsfork + #1#3\dummy \XINT_bezout_minusminus % A < 0, B < 0 + #1-\dummy \XINT_bezout_minusplus % A > 0, B < 0 + #3-\dummy \XINT_bezout_plusminus % A < 0, B > 0 + --\dummy \XINT_bezout_plusplus % A > 0, B > 0 + \krof }% + \krof {#2}{#4}#1#3{#3#4}{#1#2}% #1#2=B, #3#4=A }% -\def\XINT@bezout@botharezero #1#2#3#4#5#6% +\def\XINT_bezout_botharezero #1#2#3#4#5#6% {% \xintError:NoBezoutForZeros \space {0}{0}{0}{0}{0}% }% -\def\XINT@bezout@firstiszero #1#2#3#4#5#6% +\def\XINT_bezout_firstiszero #1#2#3#4#5#6% {% - \xint@UDsignfork + \xint_UDsignfork #3\dummy { {0}{#3#1}{0}{1}{#1}}% -\dummy { {0}{#3#1}{0}{-1}{#1}}% - \xint@UDkrof + \krof }% -\def\XINT@bezout@secondiszero #1#2#3#4#5#6% +\def\XINT_bezout_secondiszero #1#2#3#4#5#6% {% - \xint@UDsignfork + \xint_UDsignfork #4\dummy{ {#4#2}{0}{-1}{0}{#2}}% -\dummy{ {#4#2}{0}{1}{0}{#2}}% - \xint@UDkrof + \krof }% -\def\XINT@bezout@minusminus #1#2#3#4% +\def\XINT_bezout_minusminus #1#2#3#4% {% - \expandafter\XINT@bezout@mm@post - \romannumeral0\XINT@bezout@loop@a 1{#1}{#2}1001% + \expandafter\XINT_bezout_mm_post + \romannumeral0\XINT_bezout_loop_a 1{#1}{#2}1001% }% -\def\XINT@bezout@mm@post #1#2% +\def\XINT_bezout_mm_post #1#2% {% - \expandafter\XINT@bezout@mm@postb\expandafter + \expandafter\XINT_bezout_mm_postb\expandafter {\romannumeral0\xintiopp{#2}}{\romannumeral0\xintiopp{#1}}% }% -\def\XINT@bezout@mm@postb #1#2% +\def\XINT_bezout_mm_postb #1#2% {% - \expandafter\XINT@bezout@mm@postc\expandafter {#2}{#1}% + \expandafter\XINT_bezout_mm_postc\expandafter {#2}{#1}% }% -\def\XINT@bezout@mm@postc #1#2#3#4#5% +\def\XINT_bezout_mm_postc #1#2#3#4#5% {% \space {#4}{#5}{#1}{#2}{#3}% }% -\def\XINT@bezout@minusplus #1#2#3#4% +\def\XINT_bezout_minusplus #1#2#3#4% {% - \expandafter\XINT@bezout@mp@post - \romannumeral0\XINT@bezout@loop@a 1{#1}{#4#2}1001% + \expandafter\XINT_bezout_mp_post + \romannumeral0\XINT_bezout_loop_a 1{#1}{#4#2}1001% }% -\def\XINT@bezout@mp@post #1#2% +\def\XINT_bezout_mp_post #1#2% {% - \expandafter\XINT@bezout@mp@postb\expandafter + \expandafter\XINT_bezout_mp_postb\expandafter {\romannumeral0\xintiopp {#2}}{#1}% }% -\def\XINT@bezout@mp@postb #1#2#3#4#5% +\def\XINT_bezout_mp_postb #1#2#3#4#5% {% \space {#4}{#5}{#2}{#1}{#3}% }% -\def\XINT@bezout@plusminus #1#2#3#4% +\def\XINT_bezout_plusminus #1#2#3#4% {% - \expandafter\XINT@bezout@pm@post - \romannumeral0\XINT@bezout@loop@a 1{#3#1}{#2}1001% + \expandafter\XINT_bezout_pm_post + \romannumeral0\XINT_bezout_loop_a 1{#3#1}{#2}1001% }% -\def\XINT@bezout@pm@post #1% +\def\XINT_bezout_pm_post #1% {% - \expandafter \XINT@bezout@pm@postb \expandafter + \expandafter \XINT_bezout_pm_postb \expandafter {\romannumeral0\xintiopp{#1}}% }% -\def\XINT@bezout@pm@postb #1#2#3#4#5% +\def\XINT_bezout_pm_postb #1#2#3#4#5% {% \space {#4}{#5}{#1}{#2}{#3}% }% -\def\XINT@bezout@plusplus #1#2#3#4% +\def\XINT_bezout_plusplus #1#2#3#4% {% - \expandafter\XINT@bezout@pp@post - \romannumeral0\XINT@bezout@loop@a 1{#3#1}{#4#2}1001% + \expandafter\XINT_bezout_pp_post + \romannumeral0\XINT_bezout_loop_a 1{#3#1}{#4#2}1001% }% -\def\XINT@bezout@pp@post #1#2#3#4#5% +\def\XINT_bezout_pp_post #1#2#3#4#5% {% \space {#4}{#5}{#1}{#2}{#3}% }% -\def\XINT@bezout@loop@a #1#2#3% +\def\XINT_bezout_loop_a #1#2#3% {% - \expandafter\XINT@bezout@loop@b + \expandafter\XINT_bezout_loop_b \expandafter{\the\numexpr -#1\expandafter }% - \romannumeral0\XINT@div@prepare {#2}{#3}{#2}% + \romannumeral0\XINT_div_prepare {#2}{#3}{#2}% }% -\def\XINT@bezout@loop@b #1#2#3#4#5#6#7#8% +\def\XINT_bezout_loop_b #1#2#3#4#5#6#7#8% {% - \expandafter \XINT@bezout@loop@c \expandafter - {\romannumeral0\xintiadd{\XINT@Mul{#5}{#2}}{#7}}% - {\romannumeral0\xintiadd{\XINT@Mul{#6}{#2}}{#8}}% + \expandafter \XINT_bezout_loop_c \expandafter + {\romannumeral0\xintiadd{\XINT_Mul{#5}{#2}}{#7}}% + {\romannumeral0\xintiadd{\XINT_Mul{#6}{#2}}{#8}}% {#1}{#3}{#4}{#5}{#6}% }% -\def\XINT@bezout@loop@c #1#2% +\def\XINT_bezout_loop_c #1#2% {% - \expandafter \XINT@bezout@loop@d \expandafter + \expandafter \XINT_bezout_loop_d \expandafter {#2}{#1}% }% -\def\XINT@bezout@loop@d #1#2#3#4#5% +\def\XINT_bezout_loop_d #1#2#3#4#5% {% - \XINT@bezout@loop@e #4\Z {#3}{#5}{#2}{#1}% + \XINT_bezout_loop_e #4\Z {#3}{#5}{#2}{#1}% }% -\def\XINT@bezout@loop@e #1#2\Z +\def\XINT_bezout_loop_e #1#2\Z {% - \xint@zero #1\xint@bezout@loop@exit0\XINT@bezout@loop@f + \xint_gob_til_zero #1\xint_bezout_loop_exit0\XINT_bezout_loop_f {#1#2}% }% -\def\XINT@bezout@loop@f #1#2% +\def\XINT_bezout_loop_f #1#2% {% - \XINT@bezout@loop@a {#2}{#1}% + \XINT_bezout_loop_a {#2}{#1}% }% -\def\xint@bezout@loop@exit0\XINT@bezout@loop@f #1#2% +\def\xint_bezout_loop_exit0\XINT_bezout_loop_f #1#2% {% \ifcase #2 - \or \expandafter\XINT@bezout@exiteven - \else\expandafter\XINT@bezout@exitodd + \or \expandafter\XINT_bezout_exiteven + \else\expandafter\XINT_bezout_exitodd \fi }% -\def\XINT@bezout@exiteven #1#2#3#4#5% +\def\XINT_bezout_exiteven #1#2#3#4#5% {% \space {#5}{#4}{#1}% }% -\def\XINT@bezout@exitodd #1#2#3#4#5% +\def\XINT_bezout_exitodd #1#2#3#4#5% {% \space {-#5}{-#4}{#1}% }% \def\xintEuclideAlgorithm {\romannumeral0\xinteuclidealgorithm }% \def\xinteuclidealgorithm #1% {% - \expandafter \XINT@euc \expandafter{\romannumeral0\xintiabs {#1}}% + \expandafter \XINT_euc \expandafter{\romannumeral0\xintiabs {#1}}% }% -\def\XINT@euc #1#2% +\def\XINT_euc #1#2% {% - \expandafter\XINT@euc@fork \romannumeral0\xintiabs {#2}\Z #1\Z + \expandafter\XINT_euc_fork \romannumeral0\xintiabs {#2}\Z #1\Z }% -\def\XINT@euc@fork #1#2\Z #3#4\Z +\def\XINT_euc_fork #1#2\Z #3#4\Z {% - \xint@UDzerofork - #1\dummy \XINT@euc@BisZero - #3\dummy \XINT@euc@AisZero - 0\dummy \XINT@euc@a - \xint@UDkrof + \xint_UDzerofork + #1\dummy \XINT_euc_BisZero + #3\dummy \XINT_euc_AisZero + 0\dummy \XINT_euc_a + \krof {0}{#1#2}{#3#4}{{#3#4}{#1#2}}{}\Z }% -\def\XINT@euc@AisZero #1#2#3#4#5#6{ {1}{0}{#2}{#2}{0}{0}}% -\def\XINT@euc@BisZero #1#2#3#4#5#6{ {1}{0}{#3}{#3}{0}{0}}% -\def\XINT@euc@a #1#2#3% +\def\XINT_euc_AisZero #1#2#3#4#5#6{ {1}{0}{#2}{#2}{0}{0}}% +\def\XINT_euc_BisZero #1#2#3#4#5#6{ {1}{0}{#3}{#3}{0}{0}}% +\def\XINT_euc_a #1#2#3% {% - \expandafter\XINT@euc@b + \expandafter\XINT_euc_b \expandafter {\the\numexpr #1+1\expandafter }% - \romannumeral0\XINT@div@prepare {#2}{#3}{#2}% + \romannumeral0\XINT_div_prepare {#2}{#3}{#2}% }% -\def\XINT@euc@b #1#2#3#4% +\def\XINT_euc_b #1#2#3#4% {% - \XINT@euc@c #3\Z {#1}{#3}{#4}{{#2}{#3}}% + \XINT_euc_c #3\Z {#1}{#3}{#4}{{#2}{#3}}% }% -\def\XINT@euc@c #1#2\Z +\def\XINT_euc_c #1#2\Z {% - \xint@zero #1\xint@euc@end0\XINT@euc@a + \xint_gob_til_zero #1\xint_euc_end0\XINT_euc_a }% -\def\xint@euc@end0\XINT@euc@a #1#2#3#4\Z% +\def\xint_euc_end0\XINT_euc_a #1#2#3#4\Z% {% - \expandafter\xint@euc@end@ + \expandafter\xint_euc_end_ \romannumeral0% - \XINT@rord@main {}#4{{#1}{#3}}% - \xint@UNDEF - \xint@undef\xint@undef\xint@undef\xint@undef - \xint@undef\xint@undef\xint@undef\xint@undef - \xint@UNDEF + \XINT_rord_main {}#4{{#1}{#3}}% + \xint_relax + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_relax }% -\def\xint@euc@end@ #1#2#3% +\def\xint_euc_end_ #1#2#3% {% \space {#1}{#3}{#2}% }% \def\xintBezoutAlgorithm {\romannumeral0\xintbezoutalgorithm }% \def\xintbezoutalgorithm #1% {% - \expandafter \XINT@bezalg \expandafter{\romannumeral0\xintiabs {#1}}% + \expandafter \XINT_bezalg \expandafter{\romannumeral0\xintiabs {#1}}% }% -\def\XINT@bezalg #1#2% +\def\XINT_bezalg #1#2% {% - \expandafter\XINT@bezalg@fork \romannumeral0\xintiabs {#2}\Z #1\Z + \expandafter\XINT_bezalg_fork \romannumeral0\xintiabs {#2}\Z #1\Z }% -\def\XINT@bezalg@fork #1#2\Z #3#4\Z +\def\XINT_bezalg_fork #1#2\Z #3#4\Z {% - \xint@UDzerofork - #1\dummy \XINT@bezalg@BisZero - #3\dummy \XINT@bezalg@AisZero - 0\dummy \XINT@bezalg@a - \xint@UDkrof + \xint_UDzerofork + #1\dummy \XINT_bezalg_BisZero + #3\dummy \XINT_bezalg_AisZero + 0\dummy \XINT_bezalg_a + \krof 0{#1#2}{#3#4}1001{{#3#4}{#1#2}}{}\Z }% -\def\XINT@bezalg@AisZero #1#2#3\Z{ {1}{0}{0}{1}{#2}{#2}{1}{0}{0}{0}{0}{1}}% -\def\XINT@bezalg@BisZero #1#2#3#4\Z{ {1}{0}{0}{1}{#3}{#3}{1}{0}{0}{0}{0}{1}}% -\def\XINT@bezalg@a #1#2#3% +\def\XINT_bezalg_AisZero #1#2#3\Z{ {1}{0}{0}{1}{#2}{#2}{1}{0}{0}{0}{0}{1}}% +\def\XINT_bezalg_BisZero #1#2#3#4\Z{ {1}{0}{0}{1}{#3}{#3}{1}{0}{0}{0}{0}{1}}% +\def\XINT_bezalg_a #1#2#3% {% - \expandafter\XINT@bezalg@b + \expandafter\XINT_bezalg_b \expandafter {\the\numexpr #1+1\expandafter }% - \romannumeral0\XINT@div@prepare {#2}{#3}{#2}% + \romannumeral0\XINT_div_prepare {#2}{#3}{#2}% }% -\def\XINT@bezalg@b #1#2#3#4#5#6#7#8% +\def\XINT_bezalg_b #1#2#3#4#5#6#7#8% {% - \expandafter\XINT@bezalg@c\expandafter + \expandafter\XINT_bezalg_c\expandafter {\romannumeral0\xintiadd {\xintiMul {#6}{#2}}{#8}}% {\romannumeral0\xintiadd {\xintiMul {#5}{#2}}{#7}}% {#1}{#2}{#3}{#4}{#5}{#6}% }% -\def\XINT@bezalg@c #1#2#3#4#5#6% +\def\XINT_bezalg_c #1#2#3#4#5#6% {% - \expandafter\XINT@bezalg@d\expandafter {#2}{#3}{#4}{#5}{#6}{#1}% + \expandafter\XINT_bezalg_d\expandafter {#2}{#3}{#4}{#5}{#6}{#1}% }% -\def\XINT@bezalg@d #1#2#3#4#5#6#7#8% +\def\XINT_bezalg_d #1#2#3#4#5#6#7#8% {% - \XINT@bezalg@e #4\Z {#2}{#4}{#5}{#1}{#6}{#7}{#8}{{#3}{#4}{#1}{#6}}% + \XINT_bezalg_e #4\Z {#2}{#4}{#5}{#1}{#6}{#7}{#8}{{#3}{#4}{#1}{#6}}% }% -\def\XINT@bezalg@e #1#2\Z +\def\XINT_bezalg_e #1#2\Z {% - \xint@zero #1\xint@bezalg@end0\XINT@bezalg@a + \xint_gob_til_zero #1\xint_bezalg_end0\XINT_bezalg_a }% -\def\xint@bezalg@end0\XINT@bezalg@a #1#2#3#4#5#6#7#8\Z +\def\xint_bezalg_end0\XINT_bezalg_a #1#2#3#4#5#6#7#8\Z {% - \expandafter\xint@bezalg@end@ + \expandafter\xint_bezalg_end_ \romannumeral0% - \XINT@rord@main {}#8{{#1}{#3}}% - \xint@UNDEF - \xint@undef\xint@undef\xint@undef\xint@undef - \xint@undef\xint@undef\xint@undef\xint@undef - \xint@UNDEF + \XINT_rord_main {}#8{{#1}{#3}}% + \xint_relax + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_undef\xint_undef\xint_undef\xint_undef + \xint_relax }% -\def\xint@bezalg@end@ #1#2#3#4% +\def\xint_bezalg_end_ #1#2#3#4% {% \space {#1}{#3}{0}{1}{#2}{#4}{1}{0}% }% @@ -509,7 +510,7 @@ \par \endgroup }% -\XINT@gcd@restorecatcodes@endinput% +\XINT_gcd_restorecatcodes_endinput% \endinput %% %% End of file `xintgcd.sty'. diff --git a/Master/texmf-dist/tex/generic/xint/xintseries.sty b/Master/texmf-dist/tex/generic/xint/xintseries.sty index 4dd1c96c299..7d6c1bc0901 100644 --- a/Master/texmf-dist/tex/generic/xint/xintseries.sty +++ b/Master/texmf-dist/tex/generic/xint/xintseries.sty @@ -22,7 +22,7 @@ %% in the same archive or directory.) %% %%---------------------------------------------------------------- -%% The xint bundle (version 1.06a of May 9, 2013) +%% The xint bundle (version 1.06b of May 14, 2013) %% xintseries: Expandable partial sums with xint package %% Copyright (C) 2013 by Jean-Francois Burnol %%---------------------------------------------------------------- @@ -108,11 +108,11 @@ \endlinechar=13 % \catcode123=1 % { \catcode125=2 % } - \catcode64=11 % @ + \catcode95=11 % _ \def\x {% \endgroup - \edef\XINT@series@restorecatcodes@endinput + \edef\XINT_series_restorecatcodes_endinput {% \catcode93=\the\catcode93 % ] \catcode91=\the\catcode91 % [ @@ -129,7 +129,7 @@ \catcode45=\the\catcode45 % - \catcode44=\the\catcode44 % , \catcode35=\the\catcode35 % # - \catcode64=\the\catcode64 % @ + \catcode95=\the\catcode95 % _ \catcode125=\the\catcode125 % } \catcode123=\the\catcode123 % { \endlinechar=\the\endlinechar @@ -138,12 +138,13 @@ \catcode61=\the\catcode61\relax % = \noexpand\endinput }% - \XINT@setcatcodes + \XINT_setcatcodes \catcode91=12 % [ \catcode93=12 % ] }% \x \begingroup + \catcode64=11 % @ \catcode58=12 % : \expandafter\ifx\csname ProvidesPackage\endcsname\relax \def\x#1#2#3[#4]{\endgroup @@ -163,237 +164,237 @@ \fi \expandafter\x\csname ver@xintseries.sty\endcsname \ProvidesPackage{xintseries}% - [2013/05/09 v1.06a Expandable partial sums with xint package (jfB)]% + [2013/05/14 v1.06b Expandable partial sums with xint package (jfB)]% \def\xintSeries {\romannumeral0\xintseries }% \def\xintseries #1#2% {% - \expandafter\XINT@series@i\expandafter {\the\numexpr #2}{#1}% + \expandafter\XINT_series_i\expandafter {\the\numexpr #2}{#1}% }% -\def\XINT@series@i #1#2% +\def\XINT_series_i #1#2% {% - \expandafter\XINT@series@ii\expandafter {\the\numexpr #2}{#1}% + \expandafter\XINT_series_ii\expandafter {\the\numexpr #2}{#1}% }% -\def\XINT@series@ii #1#2#3% +\def\XINT_series_ii #1#2#3% {% \ifnum #2<#1 - \xint@afterfi { 0/1[0]}% + \xint_afterfi { 0/1[0]}% \else - \xint@afterfi {\XINT@series@loop {#1}{0}{#2}{#3}}% + \xint_afterfi {\XINT_series_loop {#1}{0}{#2}{#3}}% \fi }% -\def\XINT@series@loop #1#2#3#4% +\def\XINT_series_loop #1#2#3#4% {% - \ifnum #3>#1 \else \XINT@series@exit \fi - \expandafter\XINT@series@loop\expandafter + \ifnum #3>#1 \else \XINT_series_exit \fi + \expandafter\XINT_series_loop\expandafter {\the\numexpr #1+1\expandafter }\expandafter {\romannumeral0\xintadd {#2}{#4{#1}}}% {#3}{#4}% }% -\def\XINT@series@exit \fi #1#2#3#4#5#6#7#8% +\def\XINT_series_exit \fi #1#2#3#4#5#6#7#8% {% - \fi\xint@gobble@ii #6% + \fi\xint_gobble_ii #6% }% \def\xintiSeries {\romannumeral0\xintiseries }% \def\xintiseries #1#2% {% - \expandafter\XINT@iseries@i\expandafter {\the\numexpr #2}{#1}% + \expandafter\XINT_iseries_i\expandafter {\the\numexpr #2}{#1}% }% -\def\XINT@iseries@i #1#2% +\def\XINT_iseries_i #1#2% {% - \expandafter\XINT@iseries@ii\expandafter {\the\numexpr #2}{#1}% + \expandafter\XINT_iseries_ii\expandafter {\the\numexpr #2}{#1}% }% -\def\XINT@iseries@ii #1#2#3% +\def\XINT_iseries_ii #1#2#3% {% \ifnum #2<#1 - \xint@afterfi { 0}% + \xint_afterfi { 0}% \else - \xint@afterfi {\XINT@iseries@loop {#1}{0}{#2}{#3}}% + \xint_afterfi {\XINT_iseries_loop {#1}{0}{#2}{#3}}% \fi }% -\def\XINT@iseries@loop #1#2#3#4% +\def\XINT_iseries_loop #1#2#3#4% {% - \ifnum #3>#1 \else \XINT@iseries@exit \fi - \expandafter\XINT@iseries@loop\expandafter + \ifnum #3>#1 \else \XINT_iseries_exit \fi + \expandafter\XINT_iseries_loop\expandafter {\the\numexpr #1+1\expandafter }\expandafter {\romannumeral0\xintiadd {#2}{#4{#1}}}% {#3}{#4}% }% -\def\XINT@iseries@exit \fi #1#2#3#4#5#6#7#8% +\def\XINT_iseries_exit \fi #1#2#3#4#5#6#7#8% {% - \fi\xint@gobble@ii #6% + \fi\xint_gobble_ii #6% }% \def\xintPowerSeries {\romannumeral0\xintpowerseries }% \def\xintpowerseries #1#2% {% - \expandafter\XINT@powseries@i\expandafter {\the\numexpr #2}{#1}% + \expandafter\XINT_powseries_i\expandafter {\the\numexpr #2}{#1}% }% -\def\XINT@powseries@i #1#2% +\def\XINT_powseries_i #1#2% {% - \expandafter\XINT@powseries@ii\expandafter {\the\numexpr #2}{#1}% + \expandafter\XINT_powseries_ii\expandafter {\the\numexpr #2}{#1}% }% -\def\XINT@powseries@ii #1#2#3#4% +\def\XINT_powseries_ii #1#2#3#4% {% \ifnum #2<#1 - \xint@afterfi { 0/1[0]}% + \xint_afterfi { 0/1[0]}% \else - \xint@afterfi - {\XINT@powseries@loop@i {#3{#2}}{#1}{#2}{#3}{#4}}% + \xint_afterfi + {\XINT_powseries_loop_i {#3{#2}}{#1}{#2}{#3}{#4}}% \fi }% -\def\XINT@powseries@loop@i #1#2#3#4#5% +\def\XINT_powseries_loop_i #1#2#3#4#5% {% - \ifnum #3>#2 \else\XINT@powseries@exit@i\fi - \expandafter\XINT@powseries@loop@ii\expandafter + \ifnum #3>#2 \else\XINT_powseries_exit_i\fi + \expandafter\XINT_powseries_loop_ii\expandafter {\the\numexpr #3-1\expandafter}\expandafter {\romannumeral0\xintmul {#1}{#5}}{#2}{#4}{#5}% }% -\def\XINT@powseries@loop@ii #1#2#3#4% +\def\XINT_powseries_loop_ii #1#2#3#4% {% - \expandafter\XINT@powseries@loop@i\expandafter + \expandafter\XINT_powseries_loop_i\expandafter {\romannumeral0\xintadd {#4{#1}}{#2}}{#3}{#1}{#4}% }% -\def\XINT@powseries@exit@i\fi #1#2#3#4#5#6#7#8#9% +\def\XINT_powseries_exit_i\fi #1#2#3#4#5#6#7#8#9% {% - \fi \XINT@powseries@exit@ii #6{#7}% + \fi \XINT_powseries_exit_ii #6{#7}% }% -\def\XINT@powseries@exit@ii #1#2#3#4#5#6% +\def\XINT_powseries_exit_ii #1#2#3#4#5#6% {% \xintmul{\xintPow {#5}{#6}}{#4}% }% \def\xintPowerSeriesX {\romannumeral0\xintpowerseriesx }% \def\xintpowerseriesx #1#2% {% - \expandafter\XINT@powseriesx@i\expandafter {\the\numexpr #2}{#1}% + \expandafter\XINT_powseriesx_i\expandafter {\the\numexpr #2}{#1}% }% -\def\XINT@powseriesx@i #1#2% +\def\XINT_powseriesx_i #1#2% {% - \expandafter\XINT@powseriesx@ii\expandafter {\the\numexpr #2}{#1}% + \expandafter\XINT_powseriesx_ii\expandafter {\the\numexpr #2}{#1}% }% -\def\XINT@powseriesx@ii #1#2#3#4% +\def\XINT_powseriesx_ii #1#2#3#4% {% \ifnum #2<#1 - \xint@afterfi { 0/1[0]}% + \xint_afterfi { 0/1[0]}% \else - \xint@afterfi - {\expandafter\XINT@powseriesx@pre\expandafter + \xint_afterfi + {\expandafter\XINT_powseriesx_pre\expandafter {\romannumeral-`0#4}{#1}{#2}{#3}% }% \fi }% -\def\XINT@powseriesx@pre #1#2#3#4% +\def\XINT_powseriesx_pre #1#2#3#4% {% - \XINT@powseries@loop@i {#4{#3}}{#2}{#3}{#4}{#1}% + \XINT_powseries_loop_i {#4{#3}}{#2}{#3}{#4}{#1}% }% \def\xintRationalSeries {\romannumeral0\xintratseries }% \def\xintratseries #1#2% {% - \expandafter\XINT@ratseries@i\expandafter {\the\numexpr #2}{#1}% + \expandafter\XINT_ratseries_i\expandafter {\the\numexpr #2}{#1}% }% -\def\XINT@ratseries@i #1#2% +\def\XINT_ratseries_i #1#2% {% - \expandafter\XINT@ratseries@ii\expandafter {\the\numexpr #2}{#1}% + \expandafter\XINT_ratseries_ii\expandafter {\the\numexpr #2}{#1}% }% -\def\XINT@ratseries@ii #1#2#3#4% +\def\XINT_ratseries_ii #1#2#3#4% {% \ifnum #2<#1 - \xint@afterfi { 0/1[0]}% + \xint_afterfi { 0/1[0]}% \else - \xint@afterfi - {\XINT@ratseries@loop {#2}{1}{#1}{#4}{#3}}% + \xint_afterfi + {\XINT_ratseries_loop {#2}{1}{#1}{#4}{#3}}% \fi }% -\def\XINT@ratseries@loop #1#2#3#4% +\def\XINT_ratseries_loop #1#2#3#4% {% - \ifnum #1>#3 \else\XINT@ratseries@exit@i\fi - \expandafter\XINT@ratseries@loop\expandafter + \ifnum #1>#3 \else\XINT_ratseries_exit_i\fi + \expandafter\XINT_ratseries_loop\expandafter {\the\numexpr #1-1\expandafter}\expandafter {\romannumeral0\xintadd {1}{\xintMul {#2}{#4{#1}}}}{#3}{#4}% }% -\def\XINT@ratseries@exit@i\fi #1#2#3#4#5#6#7#8% +\def\XINT_ratseries_exit_i\fi #1#2#3#4#5#6#7#8% {% - \fi \XINT@ratseries@exit@ii #6% + \fi \XINT_ratseries_exit_ii #6% }% -\def\XINT@ratseries@exit@ii #1#2#3#4#5% +\def\XINT_ratseries_exit_ii #1#2#3#4#5% {% - \XINT@ratseries@exit@iii #5% + \XINT_ratseries_exit_iii #5% }% -\def\XINT@ratseries@exit@iii #1#2#3#4% +\def\XINT_ratseries_exit_iii #1#2#3#4% {% \xintmul{#2}{#4}% }% \def\xintRationalSeriesX {\romannumeral0\xintratseriesx }% \def\xintratseriesx #1#2% {% - \expandafter\XINT@ratseriesx@i\expandafter {\the\numexpr #2}{#1}% + \expandafter\XINT_ratseriesx_i\expandafter {\the\numexpr #2}{#1}% }% -\def\XINT@ratseriesx@i #1#2% +\def\XINT_ratseriesx_i #1#2% {% - \expandafter\XINT@ratseriesx@ii\expandafter {\the\numexpr #2}{#1}% + \expandafter\XINT_ratseriesx_ii\expandafter {\the\numexpr #2}{#1}% }% -\def\XINT@ratseriesx@ii #1#2#3#4#5% +\def\XINT_ratseriesx_ii #1#2#3#4#5% {% \ifnum #2<#1 - \xint@afterfi { 0/1[0]}% + \xint_afterfi { 0/1[0]}% \else - \xint@afterfi - {\expandafter\XINT@ratseriesx@pre\expandafter + \xint_afterfi + {\expandafter\XINT_ratseriesx_pre\expandafter {\romannumeral-`0#5}{#2}{#1}{#4}{#3}% }% \fi }% -\def\XINT@ratseriesx@pre #1#2#3#4#5% +\def\XINT_ratseriesx_pre #1#2#3#4#5% {% - \XINT@ratseries@loop {#2}{1}{#3}{#4{#1}}{#5{#1}}% + \XINT_ratseries_loop {#2}{1}{#3}{#4{#1}}{#5{#1}}% }% \def\xintFxPtPowerSeries {\romannumeral0\xintfxptpowerseries }% \def\xintfxptpowerseries #1#2% {% - \expandafter\XINT@fppowseries@i\expandafter {\the\numexpr #2}{#1}% + \expandafter\XINT_fppowseries_i\expandafter {\the\numexpr #2}{#1}% }% -\def\XINT@fppowseries@i #1#2% +\def\XINT_fppowseries_i #1#2% {% - \expandafter\XINT@fppowseries@ii\expandafter {\the\numexpr #2}{#1}% + \expandafter\XINT_fppowseries_ii\expandafter {\the\numexpr #2}{#1}% }% -\def\XINT@fppowseries@ii #1#2#3#4#5% +\def\XINT_fppowseries_ii #1#2#3#4#5% {% \ifnum #2<#1 - \xint@afterfi { 0}% + \xint_afterfi { 0}% \else - \xint@afterfi - {\expandafter\XINT@fppowseries@loop@pre\expandafter + \xint_afterfi + {\expandafter\XINT_fppowseries_loop_pre\expandafter {\romannumeral0\xinttrunc {#5}{\xintPow {#4}{#1}}}% {#1}{#4}{#2}{#3}{#5}% }% \fi }% -\def\XINT@fppowseries@loop@pre #1#2#3#4#5#6% +\def\XINT_fppowseries_loop_pre #1#2#3#4#5#6% {% - \ifnum #4>#2 \else\XINT@fppowseries@dont@i \fi - \expandafter\XINT@fppowseries@loop@i\expandafter + \ifnum #4>#2 \else\XINT_fppowseries_dont_i \fi + \expandafter\XINT_fppowseries_loop_i\expandafter {\the\numexpr #2+1\expandafter}\expandafter {\romannumeral0\xintitrunc {#6}{\xintMul {#5{#2}}{#1}}}% {#1}{#3}{#4}{#5}{#6}% }% -\def\XINT@fppowseries@dont@i \fi\expandafter\XINT@fppowseries@loop@i - {\fi \expandafter\XINT@fppowseries@dont@ii }% -\def\XINT@fppowseries@dont@ii #1#2#3#4#5#6#7{\xinttrunc {#7}{#2[-#7]}}% -\def\XINT@fppowseries@loop@i #1#2#3#4#5#6#7% +\def\XINT_fppowseries_dont_i \fi\expandafter\XINT_fppowseries_loop_i + {\fi \expandafter\XINT_fppowseries_dont_ii }% +\def\XINT_fppowseries_dont_ii #1#2#3#4#5#6#7{\xinttrunc {#7}{#2[-#7]}}% +\def\XINT_fppowseries_loop_i #1#2#3#4#5#6#7% {% - \ifnum #5>#1 \else \XINT@fppowseries@exit@i \fi - \expandafter\XINT@fppowseries@loop@ii\expandafter + \ifnum #5>#1 \else \XINT_fppowseries_exit_i \fi + \expandafter\XINT_fppowseries_loop_ii\expandafter {\romannumeral0\xinttrunc {#7}{\xintMul {#3}{#4}}}% {#1}{#4}{#2}{#5}{#6}{#7}% }% -\def\XINT@fppowseries@loop@ii #1#2#3#4#5#6#7% +\def\XINT_fppowseries_loop_ii #1#2#3#4#5#6#7% {% - \expandafter\XINT@fppowseries@loop@i\expandafter + \expandafter\XINT_fppowseries_loop_i\expandafter {\the\numexpr #2+1\expandafter}\expandafter {\romannumeral0\xintiadd {#4}{\xintiTrunc {#7}{\xintMul {#6{#2}}{#1}}}}% {#1}{#3}{#5}{#6}{#7}% }% -\def\XINT@fppowseries@exit@i\fi\expandafter\XINT@fppowseries@loop@ii - {\fi \expandafter\XINT@fppowseries@exit@ii }% -\def\XINT@fppowseries@exit@ii #1#2#3#4#5#6#7% +\def\XINT_fppowseries_exit_i\fi\expandafter\XINT_fppowseries_loop_ii + {\fi \expandafter\XINT_fppowseries_exit_ii }% +\def\XINT_fppowseries_exit_ii #1#2#3#4#5#6#7% {% \xinttrunc {#7} {\xintiAdd {#4}{\xintiTrunc {#7}{\xintMul {#6{#2}}{#1}}}[-#7]}% @@ -401,30 +402,30 @@ \def\xintFxPtPowerSeriesX {\romannumeral0\xintfxptpowerseriesx }% \def\xintfxptpowerseriesx #1#2% {% - \expandafter\XINT@fppowseriesx@i\expandafter {\the\numexpr #2}{#1}% + \expandafter\XINT_fppowseriesx_i\expandafter {\the\numexpr #2}{#1}% }% -\def\XINT@fppowseriesx@i #1#2% +\def\XINT_fppowseriesx_i #1#2% {% - \expandafter\XINT@fppowseriesx@ii\expandafter {\the\numexpr #2}{#1}% + \expandafter\XINT_fppowseriesx_ii\expandafter {\the\numexpr #2}{#1}% }% -\def\XINT@fppowseriesx@ii #1#2#3#4#5% +\def\XINT_fppowseriesx_ii #1#2#3#4#5% {% \ifnum #2<#1 - \xint@afterfi { 0}% + \xint_afterfi { 0}% \else - \xint@afterfi - {\expandafter \XINT@fppowseriesx@pre \expandafter + \xint_afterfi + {\expandafter \XINT_fppowseriesx_pre \expandafter {\romannumeral-`0#4}{#1}{#2}{#3}{#5}% }% \fi }% -\def\XINT@fppowseriesx@pre #1#2#3#4#5% +\def\XINT_fppowseriesx_pre #1#2#3#4#5% {% - \expandafter\XINT@fppowseries@loop@pre\expandafter + \expandafter\XINT_fppowseries_loop_pre\expandafter {\romannumeral0\xinttrunc {#5}{\xintPow {#1}{#2}}}% {#2}{#1}{#3}{#4}{#5}% }% -\XINT@series@restorecatcodes@endinput% +\XINT_series_restorecatcodes_endinput% \endinput %% %% End of file `xintseries.sty'. |