summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/xint/xint.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/generic/xint/xint.sty')
-rw-r--r--Master/texmf-dist/tex/generic/xint/xint.sty1152
1 files changed, 530 insertions, 622 deletions
diff --git a/Master/texmf-dist/tex/generic/xint/xint.sty b/Master/texmf-dist/tex/generic/xint/xint.sty
index d630061d80b..ffc14c9d4e0 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.05a of May 2nd, 2013)
+%% The xint bundle (version 1.06 of May 7th, 2013)
%% xint: Expandable operations on long numbers
%% Copyright (C) 2013 by Jean-Francois Burnol
%%----------------------------------------------------------------
@@ -66,6 +66,7 @@
\endgroup
\edef\XINT@restorecatcodes@endinput
{%
+ \catcode96=\the\catcode96 % `
\catcode47=\the\catcode47 % /
\catcode41=\the\catcode41 % )
\catcode40=\the\catcode40 % (
@@ -108,6 +109,7 @@
\catcode40=12 % (
\catcode41=12 % )
\catcode47=12 % /
+ \catcode96=12 % `
}%
\XINT@setcatcodes
}%
@@ -134,23 +136,22 @@
\fi
\expandafter\x\csname ver@xint.sty\endcsname
\ProvidesPackage{xint}%
- [2013/05/02 v1.05a Expandable operations on long numbers (jfB)]%
-\def\xint@gobble #1{}%
-\def\xint@gobble@one #1{}%
-\def\xint@gobble@two #1#2{}%
-\def\xint@gobble@three #1#2#3{}%
-\def\xint@gobble@four #1#2#3#4{}%
-\def\xint@gobble@five #1#2#3#4#5{}%
-\def\xint@gobble@six #1#2#3#4#5#6{}%
-\def\xint@gobble@seven #1#2#3#4#5#6#7{}%
-\def\xint@gobble@eight #1#2#3#4#5#6#7#8{}%
+ [2013/05/07 v1.06 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 #1#2{{#2}{#1}}%
\def\xint@exchangetwo@keepbraces@andstop #1#2{ {#2}{#1}}%
-\def\xint@xpxp@andstop {\expandafter\expandafter\expandafter\space }%
\def\xint@minus@andstop { -}%
\def\xint@r #1\R {}%
\def\xint@w #1\W {}%
@@ -172,10 +173,7 @@
\def\xintRev {\romannumeral0\xintrev }%
\def\xintrev #1%
{%
- \expandafter\expandafter\expandafter
- \xint@rev
- \expandafter\expandafter\expandafter
- {#1}%
+ \expandafter\xint@rev\expandafter {\romannumeral-`0#1}%
}%
\def\xint@rev #1%
{%
@@ -218,185 +216,230 @@
}%
\def\XINT@strip@undef #1\xint@undef {}%
\def\XINT@strip@UNDEF #1\xint@UNDEF {}%
-\def\XINT@RQ #1#2#3#4#5#6#7#8#9%
+\def\xintRevWithBraces {\romannumeral0\xintrevwithbraces }%
+\def\xintrevwithbraces #1%
{%
- \xint@r #9\XINT@RQ@end\R\XINT@RQ {#9#8#7#6#5#4#3#2#1}%
+ \expandafter\XINT@revwbr@prep\expandafter {\romannumeral-`0#1}%
}%
-\def\XINT@RQ@end\R\XINT@RQ #1#2\Z
+\def\XINT@RWB {\romannumeral0\XINT@revwbr@prep }%
+\def\XINT@revwbr@prep #1%
{%
- \XINT@RQ@end@ #1\Z
+ \XINT@revwbr@loop
+ {}#1\xint@undef\xint@undef\xint@undef\xint@undef
+ \xint@undef\xint@undef\xint@undef\xint@undef\Z
}%
-\def\XINT@RQ@end@ #1#2#3#4#5#6#7#8%
+\def\XINT@revwbr@loop #1#2#3#4#5#6#7#8#9%
{%
- \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
- \Z #2#3#4#5#6#7#8%
+ \XINT@strip@undef #9\XINT@revwbr@finish@a\xint@undef
+ \XINT@revwbr@loop {{#9}{#8}{#7}{#6}{#5}{#4}{#3}{#2}#1}%
}%
-\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@revwbr@finish@a\xint@undef\XINT@revwbr@loop #1#2\Z
{%
- \expandafter\space\the\numexpr #1#2#3#4\relax
+ \XINT@revwbr@finish@b #2\R\R\R\R\R\R\R\Z #1%
}%
-\def\xint@cleanupzeros@nospace #1#2#3#4%
+\def\XINT@revwbr@finish@b #1#2#3#4#5#6#7#8\Z
{%
- \the\numexpr #1#2#3#4\relax
+ \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
}%
-\def\XINT@rev@andcuz #1%
+\def\XINT@revwbr@finish@c #1#2\Z
{%
- \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\expandafter\expandafter
+ \space
+ \csname xint@gobble@\romannumeral #1\endcsname
}%
-\def\XINT@cuz #1%
+\def\xintiLen {\romannumeral0\xintilen }%
+\def\xintilen #1%
{%
- \XINT@cuz@loop #1\W\W\W\W\W\W\W\Z%
+ \expandafter\XINT@len@prep\expandafter {\romannumeral-`0#1}%
}%
-\def\XINT@cuz@loop #1#2#3#4#5#6#7#8%
+\let\xintLen\xintiLen \let\xintlen\xintilen
+\def\XINT@Len {\romannumeral0\XINT@len@prep }%
+\def\XINT@len@prep #1%
{%
- \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@length@fork
+ #1\xint@undef\xint@undef\xint@undef\xint@undef
+ \xint@undef\xint@undef\xint@undef\xint@undef\Z
}%
-\def\xint@cuz@enda #1\XINT@cuz@checka #2%
+\def\XINT@length@fork #1%
{%
- \xint@cuz@endaa #2%
+ \expandafter\XINT@length@loop
+ \xint@UDsignfork
+ #1\dummy {{0}}%
+ -\dummy {{0}#1}%
+ \xint@UDkrof
}%
-\def\xint@cuz@endaa #1#2#3#4#5\Z
+\def\XINT@Length {\romannumeral0\XINT@length }%
+\def\XINT@length #1%
{%
- \expandafter\space\the\numexpr #1#2#3#4\relax
+ \XINT@length@loop
+ {0}#1\xint@undef\xint@undef\xint@undef\xint@undef
+ \xint@undef\xint@undef\xint@undef\xint@undef\Z
}%
-\def\xint@cuz@endb\Z\XINT@cuz@checka #1{ 0}%
-\def\XINT@cuz@checka #1%
+\let\xintLength\XINT@Length
+\def\XINT@length@loop #1#2#3#4#5#6#7#8#9%
{%
- \expandafter \XINT@cuz@checkb \the\numexpr #1\relax
+ \XINT@strip@undef #9\XINT@length@finish@a\xint@undef
+ \expandafter\XINT@length@loop\expandafter {\the\numexpr #1+8\relax}%
}%
-\def\XINT@cuz@checkb #1%
+\def\XINT@length@finish@a\xint@undef
+ \expandafter\XINT@length@loop\expandafter #1#2\Z
{%
- \xint@zero #1\xint@cuz@backtoloop 0\XINT@cuz@Stop #1%
+ \XINT@length@finish@b #2\W\W\W\W\W\W\W\Z {#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@length@finish@b #1#2#3#4#5#6#7#8\Z
{%
- \xint@one #1\XINT@isone@b 1\expandafter\space\expandafter 0\xint@z #2%
+ \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
}%
-\def\XINT@isone@b #1\xint@z #2%
+\def\XINT@length@finish@c #1#2\Z #3{\expandafter\space\the\numexpr #3-#1\relax}%
+\def\xintCSVtoList {\romannumeral0\xintcsvtolist }%
+\def\xintcsvtolist #1%
{%
- \xint@w #2\XINT@isone@yes\W\expandafter\space\expandafter 0\xint@z
+ \expandafter\XINT@csvtol@prep\expandafter {\romannumeral-`0#1}%
}%
-\def\XINT@isone@yes #1\Z{ 1}%
-\def\xintiNum {\romannumeral0\xintinum }%
-\def\xintinum #1%
+\def\XINT@CSVtoL {\romannumeral0\XINT@csvtol@prep }%
+\def\XINT@csvtol@prep #1%
{%
- \expandafter\expandafter\expandafter
- \XINT@num
- \expandafter\expandafter\expandafter
+ \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}}%
+\def\xintListWithSep {\romannumeral0\xintlistwithsep }%
+\long\def\xintlistwithsep #1#2%
+{%
+ \expandafter\XINT@lws\expandafter {\romannumeral-`0#2}%
{#1}%
}%
-\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%
+\long\def\XINT@LWS #1#2{\romannumeral0\XINT@lws@start {#1}#2\Z }%
+\long\def\XINT@lws #1#2%
{%
- \xint@r #8\XINT@num@end\R\XINT@num@NumEight #1#2#3#4#5#6#7#8%
+ \XINT@lws@start {#2}#1\Z
}%
-\def\XINT@num@end\R\XINT@num@NumEight #1\R #2\Z
+\long\def\XINT@lws@start #1#2%
{%
- \expandafter\space\the\numexpr #1+0\relax
+ \xint@z #2\XINT@lws@dont\Z
+ \XINT@lws@loop@a {#2}{#1}%
}%
-\def\XINT@num@NumEight #1#2#3#4#5#6#7#8%
+\long\def\XINT@lws@dont\Z\XINT@lws@loop@a #1#2{ }%
+\long\def\XINT@lws@loop@a #1#2#3%
{%
- \ifnum \numexpr #1#2#3#4#5#6#7#8+0\relax = 0
- \xint@afterfi {\expandafter\XINT@num@keepsign@a
- \the\numexpr #1#2#3#4#5#6#7#81\relax}%
+ \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 }%
+\def\xintnthelt #1#2%
+{%
+ \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%
+{%
+ \ifnum #2<1
+ \expandafter\XINT@nthelt@silentend
\else
- \xint@afterfi {\expandafter\XINT@num@finish
- \the\numexpr #1#2#3#4#5#6#7#8\relax}%
+ \expandafter\XINT@nthelt@loop@a
+ \fi {#2}#1\xint@undef\xint@undef\xint@undef\xint@undef
+ \xint@undef\xint@undef\xint@undef\xint@undef\Z
+}%
+\def\XINT@nthelt@silentend #1\Z { }%
+\def\XINT@nthelt@loop@a #1%
+{%
+ \ifnum #1>8
+ \expandafter\XINT@nthelt@loop@b
+ \else
+ \expandafter\XINT@nthelt@getit
\fi
+ {#1}%
}%
-\def\XINT@num@keepsign@a #1%
+\def\XINT@nthelt@loop@b #1#2#3#4#5#6#7#8#9%
{%
- \xint@one#1\XINT@num@gobacktoloop 1\XINT@num@keepsign@b
+ \XINT@strip@undef #9\XINT@nthelt@silentend\xint@undef
+ \expandafter\XINT@nthelt@loop@a\expandafter{\the\numexpr #1-8\relax}%
}%
-\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\xintiLen {\romannumeral0\xintilen }%
-\def\xintilen #1%
+\def\XINT@nthelt@getit #1%
{%
- \expandafter\expandafter\expandafter
- \XINT@length@fork #1\R\R\R\R\R\R\R\R\Z
+ \expandafter\expandafter\expandafter\XINT@nthelt@finish
+ \csname xint@gobble@\romannumeral\numexpr#1-1\endcsname
}%
-\let\xintLen\xintiLen \let\xintlen\xintilen
-\def\XINT@Len #1{\romannumeral0\XINT@length@fork #1\R\R\R\R\R\R\R\R\Z }%
-\def\XINT@length@fork #1%
+\def\XINT@nthelt@finish #1#2\Z
{%
- \expandafter\XINT@length@loop
- \xint@UDsignfork
- #1\dummy {{0}}%
- -\dummy {{0}#1}%
+ \xint@UDwfork
+ #1\dummy { }%
+ \W\dummy { #1}%
\xint@UDkrof
}%
-\def\XINT@Length #1{\romannumeral0\XINT@length@loop {0}#1\R\R\R\R\R\R\R\R\Z }%
-\def\XINT@length #1{\XINT@length@loop {0}#1\R\R\R\R\R\R\R\R\Z }%
-\let\xintLength\XINT@Length
-\def\XINT@length@loop #1#2#3#4#5#6#7#8#9%
+\def\xintApply {\romannumeral0\xintapply }%
+\def\xintapply #1#2%
{%
- \xint@r #9\XINT@length@end {#2#3#4#5#6#7#8#9}\R
- \expandafter\XINT@length@loop\expandafter {\the\numexpr #1+8\relax}%
+ \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%
+{%
+ \XINT@apply@loop@a {}{#2}#1\Z
}%
-\def\XINT@length@end #1\R\expandafter\XINT@length@loop\expandafter #2#3\Z
-{%
- \XINT@length@end@ #1\W\W\W\W\W\W\W\W\Z {#2}%
-}%
-\def\XINT@length@end@ #1\R #2#3#4#5#6#7#8#9\Z
-{%
- \xint@w #2\XINT@length@end@i
- #3\XINT@length@end@ii
- #4\XINT@length@end@iii
- #5\XINT@length@end@iv
- #6\XINT@length@end@v
- #7\XINT@length@end@vi
- #8\XINT@length@end@vii
- \W\XINT@length@end@viii
-}%
-\def\XINT@length@end@viii #1%
- {\expandafter\space\the\numexpr #1-8\relax}%
-\def\XINT@length@end@vii #1\XINT@length@end@viii #2%
- {\expandafter\space\the\numexpr #2-7\relax}%
-\def\XINT@length@end@vi #1\XINT@length@end@viii #2%
- {\expandafter\space\the\numexpr #2-6\relax}%
-\def\XINT@length@end@v #1\XINT@length@end@viii #2%
- {\expandafter\space\the\numexpr #2-5\relax}%
-\def\XINT@length@end@iv #1\XINT@length@end@viii #2%
- {\expandafter\space\the\numexpr #2-4\relax}%
-\def\XINT@length@end@iii #1\XINT@length@end@viii #2%
- {\expandafter\space\the\numexpr #2-3\relax}%
-\def\XINT@length@end@ii #1\XINT@length@end@viii #2%
- {\expandafter\space\the\numexpr #2-2\relax}%
-\def\XINT@length@end@i #1\XINT@length@end@viii #2%
- {\expandafter\space\the\numexpr #2-1\relax}%
+\def\XINT@apply@loop@a #1#2#3%
+{%
+ \xint@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}%
\def\xintAssign #1\to
{%
- \expandafter\expandafter\expandafter
- \XINT@assign@a #1{}\to
+ \expandafter\XINT@assign@a\romannumeral-`0#1{}\to
}%
\def\XINT@assign@a #1% attention to the # at the beginning of next line
#{%
@@ -444,8 +487,8 @@
\edef\xint@arrayname {\string #1}%
\XINT@restoreescapechar
\count 255 0
- \expandafter\expandafter\expandafter
- \XINT@assignarray@loop #1\xint@undef
+ \expandafter
+ \XINT@assignarray@loop \romannumeral-`0#1\xint@undef
\csname\xint@arrayname 00\endcsname
\csname\xint@arrayname 0\endcsname
{\xint@arrayname}%
@@ -478,11 +521,9 @@
\def\XINT@assignarray@@@@end #1#2#3#4%
{%
\def #4##1%
- {\romannumeral0%
- \expandafter\expandafter\expandafter
- #1%
- \expandafter\expandafter\expandafter
- {##1}%
+ {%
+ \romannumeral0%
+ \expandafter #1\expandafter{\the\numexpr ##1}%
}%
\def #1##1%
{%
@@ -501,60 +542,127 @@
}%
}%
\let\xintDigitsOf\xintAssignArray
-\def\xintApply {\romannumeral0\xintapply }%
-\def\xintapply #1#2%
+\def\XINT@RQ #1#2#3#4#5#6#7#8#9%
{%
- \expandafter\expandafter\expandafter
- \XINT@apply
- \expandafter\expandafter\expandafter
- {#2}{#1}%
+ \xint@r #9\XINT@RQ@end\R\XINT@RQ {#9#8#7#6#5#4#3#2#1}%
}%
-\def\XINT@apply #1#2%
+\def\XINT@RQ@end\R\XINT@RQ #1#2\Z
{%
- \XINT@apply@loop@a {}{#2}#1\Z
+ \XINT@RQ@end@ #1\Z
}%
-\def\XINT@apply@loop@a #1#2#3%
+\def\XINT@RQ@end@ #1#2#3#4#5#6#7#8%
{%
- \xint@z #3\XINT@apply@end\Z
- \expandafter\expandafter\expandafter
- \XINT@apply@loop@b
- \expandafter\expandafter\expandafter {#2{#3}}{#1}{#2}%
+ \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
+ \Z #2#3#4#5#6#7#8%
}%
-\def\XINT@apply@loop@b #1#2{\XINT@apply@loop@a {#2{#1}}}%
-\def\XINT@apply@end\Z
- \expandafter\expandafter\expandafter
- \XINT@apply@loop@b
- \expandafter\expandafter\expandafter #1#2#3{ #2}%
-\def\xintListWithSep {\romannumeral0\xintlistwithsep }%
-\long\def\xintlistwithsep #1#2%
+\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\expandafter\expandafter
- \XINT@lws
- \expandafter\expandafter\expandafter
- {#2}{#1}%
+ \expandafter\space\the\numexpr #1#2#3#4\relax
}%
-\long\def\XINT@lws #1#2%
+\def\xint@cleanupzeros@nospace #1#2#3#4%
{%
- \XINT@lws@start {#2}#1\Z
+ \the\numexpr #1#2#3#4\relax
}%
-\long\def\XINT@lws@start #1#2%
+\def\XINT@rev@andcuz #1%
{%
- \xint@z #2\XINT@lws@dont\Z
- \XINT@lws@loop@a {#2}{#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
}%
-\long\def\XINT@lws@dont\Z\XINT@lws@loop@a #1#2{ #2}%
-\long\def\XINT@lws@loop@a #1#2#3%
+\def\XINT@cuz #1%
{%
- \xint@z #3\XINT@lws@end\Z
- \XINT@lws@loop@b {#1}{#2#3}{#2}%
+ \XINT@cuz@loop #1\W\W\W\W\W\W\W\Z%
}%
-\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\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}%
+}%
+\def\xint@cuz@enda #1\XINT@cuz@checka #2%
+{%
+ \xint@cuz@endaa #2%
+}%
+\def\xint@cuz@endaa #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%
+{%
+ \expandafter \XINT@cuz@checkb \the\numexpr #1\relax
+}%
+\def\XINT@cuz@checkb #1%
+{%
+ \xint@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%
+{%
+ \xint@one #1\XINT@isone@b 1\expandafter\space\expandafter 0\xint@z #2%
+}%
+\def\XINT@isone@b #1\xint@z #2%
+{%
+ \xint@w #2\XINT@isone@yes\W\expandafter\space\expandafter 0\xint@z
+}%
+\def\XINT@isone@yes #1\Z{ 1}%
+\def\xintiNum {\romannumeral0\xintinum }%
+\def\xintinum #1%
+{%
+ \expandafter\XINT@num\expandafter {\romannumeral-`0#1}%
+}%
+\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%
+{%
+ \xint@r #8\XINT@num@end\R\XINT@num@NumEight #1#2#3#4#5#6#7#8%
+}%
+\def\XINT@num@end\R\XINT@num@NumEight #1\R #2\Z
+{%
+ \expandafter\space\the\numexpr #1+0\relax
+}%
+\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
+ \the\numexpr #1#2#3#4#5#6#7#81\relax}%
+ \else
+ \xint@afterfi {\expandafter\XINT@num@finish
+ \the\numexpr #1#2#3#4#5#6#7#8\relax}%
+ \fi
+}%
+\def\XINT@num@keepsign@a #1%
+{%
+ \xint@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\xintiSgn {\romannumeral0\xintisgn }%
\def\xintisgn #1%
{%
- \expandafter\expandafter\expandafter
- \XINT@sgn #1\Z%
+ \expandafter\XINT@sgn \romannumeral-`0#1\Z%
}%
\let\xintSgn\xintiSgn \let\xintsgn\xintisgn
\def\XINT@Sgn #1{\romannumeral0\XINT@sgn #1\Z }%
@@ -569,32 +677,29 @@
\def\xintiOpp {\romannumeral0\xintiopp }%
\def\xintiopp #1%
{%
- \expandafter\expandafter\expandafter
- \XINT@opp #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%
{%
- \expandafter\space
\xint@UDzerominusfork
- #1-\dummy 0% zero
- 0#1\dummy {}% negative
- 0-\dummy {-#1}% positive
+ #1-\dummy { 0}% zero
+ 0#1\dummy { }% negative
+ 0-\dummy { -#1}% positive
\xint@UDkrof
}%
\def\xintiAbs {\romannumeral0\xintiabs }%
\def\xintiabs #1%
{%
- \expandafter\expandafter\expandafter
- \XINT@abs #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%
{%
\xint@UDsignfork
- #1\dummy \space
+ #1\dummy { }%
-\dummy { #1}%
\xint@UDkrof
}%
@@ -918,16 +1023,12 @@
\def\xintiAdd {\romannumeral0\xintiadd }%
\def\xintiadd #1%
{%
- \expandafter\expandafter\expandafter
- \xint@add
- \expandafter\expandafter\expandafter
- {#1}%
+ \expandafter\xint@add\expandafter{\romannumeral-`0#1}%
}%
\let\xintAdd\xintiAdd \let\xintadd\xintiadd
\def\xint@add #1#2%
{%
- \expandafter\expandafter\expandafter
- \XINT@add@fork #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 }%
@@ -967,9 +1068,8 @@
}%
\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%
{%
@@ -981,16 +1081,12 @@
\def\xintiSub {\romannumeral0\xintisub }%
\def\xintisub #1%
{%
- \expandafter\expandafter\expandafter
- \xint@sub
- \expandafter\expandafter\expandafter
- {#1}%
+ \expandafter\xint@sub\expandafter{\romannumeral-`0#1}%
}%
\let\xintSub\xintiSub \let\xintsub\xintisub
\def\xint@sub #1#2%
{%
- \expandafter\expandafter\expandafter
- \XINT@sub@fork #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 }%
@@ -1031,9 +1127,8 @@
\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%
{%
@@ -1137,8 +1232,7 @@
}%
\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@w #3\xint@sub@F\W\XINT@sub@Eonestep #1{#6#5#4#3}{#2}%
}%
\def\XINT@sub@Eonestep #1#2%
{%
@@ -1160,9 +1254,8 @@
\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@w #3\xint@sub@Fdec@finish\W
+ \XINT@sub@Fdec@onestep #1{#6#5#4#3}{#2}%
}%
\def\XINT@sub@Fdec@onestep #1#2%
{%
@@ -1178,9 +1271,8 @@
}%
\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@w #3\xint@sub@Finc@finish\W
+ \XINT@sub@Finc@onestep #1{#6#5#4#3}{#2}%
}%
\def\XINT@sub@Finc@onestep #1#2%
{%
@@ -1193,8 +1285,7 @@
\def\xint@sub@Finc@finish\W\XINT@sub@Finc@onestep #1#2#3%
{%
\xint@UDzerofork
- #1\dummy {\expandafter\xint@minus@andstop%
- \xint@cleanupzeros@nospace}%
+ #1\dummy {\expandafter\xint@minus@andstop\xint@cleanupzeros@nospace}%
0\dummy { -1}%
\xint@UDkrof
#3%
@@ -1206,8 +1297,7 @@
0\dummy \XINT@sub@L % pas de retenue
\xint@UDkrof
}%
-\def\XINT@sub@L #1\W\X\Y\Z
- {\XINT@cuz@loop #1\W\W\W\W\W\W\W\Z }%
+\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
@@ -1221,9 +1311,8 @@
}%
\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@w #3\xint@sub@KK@finish\W
+ \XINT@sub@KK@onestep #1{#6#5#4#3}{#2}%
}%
\def\XINT@sub@KK@onestep #1#2%
{%
@@ -1235,22 +1324,18 @@
}%
\def\xint@sub@KK@finish\W\XINT@sub@KK@onestep #1#2#3%
{%
- \expandafter\xint@minus@andstop\romannumeral
- 0\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\expandafter\expandafter
- \xint@cmp
- \expandafter\expandafter\expandafter
- {#1}%
+ \expandafter\xint@cmp\expandafter{\romannumeral-`0#1}%
}%
\let\xintCmp\xintiCmp \let\xintcmp\xinticmp
\def\xint@cmp #1#2%
{%
- \expandafter\expandafter\expandafter
- \XINT@cmp@fork #2\Z #1\Z
+ \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
@@ -1283,9 +1368,8 @@
}%
\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%
{%
@@ -1296,15 +1380,11 @@
}%
\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@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%
{%
- \xint@w
- #4\xint@cmp@bz
- \W\XINT@cmp@onestep #1#2{#7#6#5#4}{#3}%
+ \xint@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%
{%
@@ -1314,13 +1394,10 @@
{%
\XINT@cmp@A #2{#3#4}%
}%
-\def\xint@cmp@bz
- \W\XINT@cmp@onestep #1\Z { 1}%
+\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@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%
@@ -1338,19 +1415,18 @@
}%
\def\XINT@OneIfPositive@main #1#2#3#4%
{%
- \xint@z #4\xint@OneIfPositive@terminated\Z\XINT@OneIfPositive@onestep
- #1#2#3#4%
+ \xint@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%
{%
- \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%
{%
- \xint@zero
- #1\xint@OneIfPositive@backtomain 0\XINT@OneIfPositive@finish #1%
+ \xint@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%
@@ -1358,15 +1434,12 @@
\def\xintiGeq {\romannumeral0\xintigeq }%
\def\xintigeq #1%
{%
- \expandafter\expandafter\expandafter
- \xint@geq
- \expandafter\expandafter\expandafter
- {#1}%
+ \expandafter\xint@geq\expandafter {\romannumeral-`0#1}%
}%
\let\xintGeq\xintiGeq \let\xintgeq\xintigeq
\def\xint@geq #1#2%
{%
- \expandafter\expandafter\expandafter\XINT@geq@fork #2\Z #1\Z
+ \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
@@ -1385,19 +1458,14 @@
}%
\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@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%
{%
@@ -1408,15 +1476,11 @@
}%
\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@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%
{%
- \xint@w
- #4\xint@geq@bz
- \W\XINT@geq@onestep #1#2{#7#6#5#4}{#3}%
+ \xint@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%
{%
@@ -1429,9 +1493,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@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%
@@ -1444,17 +1506,12 @@
\def\xintiMax {\romannumeral0\xintimax }%
\def\xintimax #1%
{%
- \expandafter\expandafter\expandafter
- \xint@max
- \expandafter\expandafter\expandafter
- {#1}%
+ \expandafter\xint@max\expandafter {\romannumeral-`0#1}%
}%
\let\xintMax\xintiMax \let\xintmax\xintimax
\def\xint@max #1#2%
{%
- \expandafter\expandafter\expandafter
- \XINT@max@pre
- \expandafter\expandafter\expandafter {#2}{#1}%
+ \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}}%
@@ -1497,17 +1554,12 @@
\def\xintiMin {\romannumeral0\xintimin }%
\def\xintimin #1%
{%
- \expandafter\expandafter\expandafter
- \xint@min
- \expandafter\expandafter\expandafter
- {#1}%
+ \expandafter\xint@min\expandafter {\romannumeral-`0#1}%
}%
\let\xintMin\xintiMin \let\xintmin\xintimin
\def\xint@min #1#2%
{%
- \expandafter\expandafter\expandafter
- \XINT@min@pre
- \expandafter\expandafter\expandafter {#2}{#1}%
+ \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}}%
@@ -1531,7 +1583,7 @@
\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@plusplus #1#2#3#4%
{%
\ifodd\XINT@Geq {#4#2}{#3#1}
\expandafter\xint@secondoftwo@andstop
@@ -1550,16 +1602,13 @@
\def\xintiSum {\romannumeral0\xintisum }%
\def\xintisum #1{\xintisumexpr #1\relax }%
\def\xintiSumExpr {\romannumeral0\xintisumexpr }%
-\def\xintisumexpr
-{%
- \expandafter\expandafter\expandafter\XINT@sumexpr
-}%
+\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%
{%
- \expandafter\expandafter\expandafter\XINT@sum@checksign #3\Z {#1}{#2}%
+ \expandafter\XINT@sum@checksign\romannumeral-`0#3\Z {#1}{#2}%
}%
\def\XINT@sum@checksign #1%
{%
@@ -1595,15 +1644,12 @@
\def\xintiMul {\romannumeral0\xintimul }%
\def\xintimul #1%
{%
- \expandafter\expandafter\expandafter
- \xint@mul
- \expandafter\expandafter\expandafter
- {#1}%
+ \expandafter\xint@mul\expandafter {\romannumeral-`0#1}%
}%
\let\xintMul\xintiMul \let\xintmul\xintimul
\def\xint@mul #1#2%
-{\expandafter\expandafter\expandafter
- \XINT@mul@fork #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
@@ -1630,17 +1676,17 @@
}%
\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%
{%
- \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%
{%
@@ -1688,38 +1734,20 @@
}%
\def\XINT@mul@choice@i #1#2%
{%
- \ifcase \numexpr (#2-3)/4\relax
- \or \xint@afterfi {\ifnum #1<330 \expandafter \XINT@mul@choice@same
- \else \expandafter \XINT@mul@choice@permute \fi}%
- \or \xint@afterfi {\ifnum #1<168 \expandafter \XINT@mul@choice@same
- \else \expandafter \XINT@mul@choice@permute \fi}%
- \or \xint@afterfi {\ifnum #1<109 \expandafter \XINT@mul@choice@same
- \else \expandafter \XINT@mul@choice@permute \fi}%
- \or \xint@afterfi {\ifnum #1<80 \expandafter \XINT@mul@choice@same
- \else \expandafter \XINT@mul@choice@permute \fi}%
- \or \xint@afterfi {\ifnum #1<66 \expandafter \XINT@mul@choice@same
- \else \expandafter \XINT@mul@choice@permute \fi}%
- \or \xint@afterfi {\ifnum #1<52 \expandafter \XINT@mul@choice@same
- \else \expandafter \XINT@mul@choice@permute \fi}%
- \else \expandafter \XINT@mul@choice@permute
+ \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
+ \else
+ \expandafter\XINT@mul@choice@permute
\fi
}%
\def\XINT@mul@choice@ii #1#2%
{%
- \ifcase \numexpr (#1-3)/4\relax
- \or \xint@afterfi {\ifnum #2<330 \expandafter \XINT@mul@choice@permute
- \else \expandafter \XINT@mul@choice@same \fi}%
- \or \xint@afterfi {\ifnum #2<168 \expandafter \XINT@mul@choice@permute
- \else \expandafter \XINT@mul@choice@same \fi}%
- \or \xint@afterfi {\ifnum #2<109 \expandafter \XINT@mul@choice@permute
- \else \expandafter \XINT@mul@choice@same \fi}%
- \or \xint@afterfi {\ifnum #2<80 \expandafter \XINT@mul@choice@permute
- \else \expandafter \XINT@mul@choice@same \fi}%
- \or \xint@afterfi {\ifnum #2<66 \expandafter \XINT@mul@choice@permute
- \else \expandafter \XINT@mul@choice@same \fi}%
- \or \xint@afterfi {\ifnum #2<52 \expandafter \XINT@mul@choice@permute
- \else \expandafter \XINT@mul@choice@same \fi}%
- \else \expandafter \XINT@mul@choice@same
+ \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
+ \else
+ \expandafter\XINT@mul@choice@same
\fi
}%
\def\XINT@mul@choice@same #1#2%
@@ -1753,8 +1781,7 @@
}%
\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%
{%
@@ -1783,15 +1810,14 @@
}%
\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@quatrezeros #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%
{%
- \expandafter\XINT@mul@M@checkifzeroorone
- \expandafter{\the\numexpr #1}%
+ \expandafter\XINT@mul@M@checkifzeroorone\expandafter{\the\numexpr #1}%
}%
\def\XINT@mul@M@checkifzeroorone #1%
{%
@@ -1807,8 +1833,7 @@
\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%
{%
@@ -2002,10 +2027,7 @@
\def\xintiSqr {\romannumeral0\xintisqr }%
\def\xintisqr #1%
{%
- \expandafter\expandafter\expandafter
- \XINT@sqr
- \expandafter\expandafter\expandafter
- {\xintiAbs{#1}}% fait l'expansion de #1 et se d\'ebarrasse du signe
+ \expandafter\XINT@sqr\expandafter {\romannumeral0\xintiabs{#1}}%
}%
\let\xintSqr\xintiSqr \let\xintsqr\xintisqr
\def\XINT@sqr #1%
@@ -2020,16 +2042,13 @@
\let\xintPrd\xintiPrd
\let\xintprd\xintiprd
\def\xintiProductExpr {\romannumeral0\xintiproductexpr }%
-\def\xintiproductexpr
-{%
- \expandafter\expandafter\expandafter\XINT@productexpr
-}%
+\def\xintiproductexpr {\expandafter\XINT@productexpr\romannumeral-`0}%
\let\xintProductExpr\xintiProductExpr
\let\xintproductexpr\xintiproductexpr
\def\XINT@productexpr {\XINT@prod@loop@a 1\Z }%
\def\XINT@prod@loop@a #1\Z #2%
{%
- \expandafter\expandafter\expandafter\XINT@prod@loop@b #2\Z #1\Z \Z
+ \expandafter\XINT@prod@loop@b \romannumeral-`0#2\Z #1\Z \Z
}%
\def\XINT@prod@loop@b #1%
{%
@@ -2044,12 +2063,8 @@
\def\xintFac {\romannumeral0\xintfac }%
\def\xintfac #1%
{%
- \expandafter\expandafter\expandafter
- \XINT@fac@fork
- \expandafter\expandafter\expandafter
- {#1}%
+ \expandafter\XINT@fac@fork\expandafter{\the\numexpr #1}%
}%
-\def\XINT@Fac {\romannumeral0\XINT@fac@fork }%
\def\XINT@fac@fork #1%
{%
\ifcase\XINT@Sgn {#1}
@@ -2064,7 +2079,7 @@
}%
\def\XINT@fac@checklength #1%
{%
- \ifnum\numexpr #1\relax>999999
+ \ifnum #1>999999
\xint@afterfi{\expandafter\xintError:FactorialOfTooBigNumber
\expandafter\space\expandafter 1\xint@gobble }%
\else
@@ -2130,8 +2145,7 @@
\def\xintiPow {\romannumeral0\xintipow }%
\def\xintipow #1%
{%
- \expandafter\expandafter\expandafter\xint@pow
- #1\Z%
+ \expandafter\xint@pow\romannumeral-`0#1\Z%
}%
\let\xintPow\xintiPow \let\xintpow\xintipow
\def\xint@pow #1#2\Z
@@ -2144,15 +2158,12 @@
}%
\def\XINT@pow@Aneg #1#2#3%
{%
- \expandafter\expandafter\expandafter
- \XINT@pow@Aneg@
- \expandafter\expandafter\expandafter
- {#3}{#2}%
+ \expandafter\XINT@pow@Aneg@\expandafter{\the\numexpr #3}{#2}%
}%
\def\XINT@pow@Aneg@ #1%
{%
- \ifcase\XINT@Odd{#1}
- \or \expandafter\XINT@pow@Aneg@Bodd
+ \ifodd #1
+ \expandafter\XINT@pow@Aneg@Bodd
\fi
\XINT@pow@Anonneg@ {#1}%
}%
@@ -2162,10 +2173,7 @@
}%
\def\XINT@pow@Anonneg #1#2#3%
{%
- \expandafter\expandafter\expandafter
- \XINT@pow@Anonneg@
- \expandafter\expandafter\expandafter
- {#3}{#1#2}%
+ \expandafter\XINT@pow@Anonneg@\expandafter {\the\numexpr #3}{#1#2}%
}%
\def\XINT@pow@Anonneg@ #1#2%
{%
@@ -2204,7 +2212,7 @@
\def\XINT@pow@BisZero #1#2{ 1}%
\def\XINT@pow@checkBlength #1#2%
{%
- \ifnum\numexpr #1\relax >999999999
+ \ifnum #1>999999999
\expandafter\XINT@pow@BtooBig
\else
\expandafter\XINT@pow@loop
@@ -2287,16 +2295,12 @@
\def\xintiDivision {\romannumeral0\xintidivision }%
\def\xintidivision #1%
{%
- \expandafter\expandafter\expandafter
- \xint@division
- \expandafter\expandafter\expandafter
- {#1}%
+ \expandafter\xint@division\expandafter {\romannumeral-`0#1}%
}%
\let\xintDivision\xintiDivision \let\xintdivision\xintidivision
\def\xint@division #1#2%
{%
- \expandafter\expandafter\expandafter
- \XINT@div@fork #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
@@ -2375,33 +2379,30 @@
\ifnum #2=1
\expandafter\XINT@div@prepareB@BisOne
\else
- \xint@afterfi{\XINT@div@prepareB@e {000}{3}{4}{#2}}%
- \fi
+ \expandafter\XINT@div@prepareB@e
+ \fi {000}{3}{4}{#2}%
}%
-\def\XINT@div@prepareB@BisOne #1{ {#1}{0}}%
+\def\XINT@div@prepareB@BisOne #1#2#3#4#5{ {#5}{0}}%
\def\XINT@div@prepareB@a #1%
{%
- \expandafter \XINT@div@prepareB@b \expandafter
- {\the\numexpr 4*((#1+1)/4)}{#1}%
-}%
-\def\XINT@div@prepareB@b #1#2%
-{%
- \expandafter \XINT@div@prepareB@c \expandafter
- {\the\numexpr #1-#2}{#1}%
+ \expandafter\XINT@div@prepareB@c\expandafter{\the\numexpr 4*((#1+1)/4)}{#1}%
}%
-\def\XINT@div@prepareB@c #1%
+\def\XINT@div@prepareB@c #1#2%
{%
- \ifcase #1
- \expandafter\XINT@div@prepareB@di
- \or \expandafter\XINT@div@prepareB@dii
- \or \expandafter\XINT@div@prepareB@diii
- \else \expandafter\XINT@div@prepareB@div
- \fi
+ \ifcase \numexpr #1-#2\relax
+ \expandafter\XINT@div@prepareB@d
+ \or
+ \expandafter\XINT@div@prepareB@di
+ \or
+ \expandafter\XINT@div@prepareB@dii
+ \or
+ \expandafter\XINT@div@prepareB@diii
+ \fi {#1}%
}%
-\def\XINT@div@prepareB@di {\XINT@div@prepareB@e {}{0}}%
-\def\XINT@div@prepareB@dii {\XINT@div@prepareB@e {0}{1}}%
-\def\XINT@div@prepareB@diii {\XINT@div@prepareB@e {00}{2}}%
-\def\XINT@div@prepareB@div {\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}}%
\def\XINT@div@prepareB@e #1#2#3#4%
{%
\XINT@div@prepareB@f #4#1\Z {#3}{#2}{#1}%
@@ -2422,27 +2423,24 @@
}%
\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%
{%
- \expandafter\XINT@div@prepareA@d \expandafter
- {\the\numexpr #1-#2}{#1}%
-}%
-\def\XINT@div@prepareA@d #1%
-{%
- \ifcase #1
- \expandafter\XINT@div@prepareA@di
- \or \expandafter\XINT@div@prepareA@dii
- \or \expandafter\XINT@div@prepareA@diii
- \else \expandafter\XINT@div@prepareA@div
- \fi
+ \ifcase \numexpr #1-#2\relax
+ \expandafter\XINT@div@prepareA@d
+ \or
+ \expandafter\XINT@div@prepareA@di
+ \or
+ \expandafter\XINT@div@prepareA@dii
+ \or
+ \expandafter\XINT@div@prepareA@diii
+ \fi {#1}%
}%
-\def\XINT@div@prepareA@di {\XINT@div@prepareA@e {}}%
-\def\XINT@div@prepareA@dii {\XINT@div@prepareA@e {0}}%
-\def\XINT@div@prepareA@diii {\XINT@div@prepareA@e {00}}%
-\def\XINT@div@prepareA@div {\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}}%
\def\XINT@div@prepareA@e #1#2#3%
{%
\XINT@div@startswitch {#1#3}{#2}%
@@ -2460,24 +2458,22 @@
}%
\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%
{%
\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%
{%
- \expandafter\space\expandafter
- {\romannumeral0\XINT@rev@andcuz {#2}}{#1}%
+ \expandafter\space\expandafter {\romannumeral0\XINT@rev@andcuz {#2}}{#1}%
}%
\def\XINT@div@final@a #1%
{%
@@ -2539,14 +2535,14 @@
\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 à développer,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}}%
\or
- \xint@afterfi {\expandafter\XINT@div@final@end
- \expandafter % pas de leading zeros dans #1=R
- {\romannumeral0\XINT@dsh@checksignx #3\Z {#1}}}%
+ \xint@afterfi {\expandafter\XINT@div@final@end\expandafter
+ {\romannumeral0\XINT@dsh@checksignx #3\Z {#1}}%
+ }%
\fi
{#2}%
}%
@@ -2644,8 +2640,7 @@
\def\XINT@div@body@l #1#2#3#4#5#6#7%
{%
\expandafter\XINT@div@body@m
- \the\numexpr 100000000+#2\relax
- {#6}{#3}{#7}{#1#5}{#4}%
+ \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%
{%
@@ -2777,7 +2772,7 @@
\def\xintiFDg {\romannumeral0\xintifdg }%
\def\xintifdg #1%
{%
- \expandafter\expandafter\expandafter\XINT@fdg #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 }%
@@ -2792,10 +2787,7 @@
\def\xintiLDg {\romannumeral0\xintildg }%
\def\xintildg #1%
{%
- \expandafter\expandafter\expandafter
- \XINT@ldg
- \expandafter\expandafter\expandafter
- {#1}%
+ \expandafter\XINT@ldg\expandafter {\romannumeral-`0#1}%
}%
\let\xintLDg\xintiLDg \let\xintldg\xintildg
\def\XINT@LDg #1{\romannumeral0\XINT@ldg {#1}}%
@@ -2845,7 +2837,7 @@
\def\xintDSL {\romannumeral0\xintdsl }%
\def\xintdsl #1%
{%
- \expandafter\expandafter\expandafter\XINT@dsl #1\Z
+ \expandafter\XINT@dsl \romannumeral-`0#1\Z
}%
\def\XINT@DSL #1{\romannumeral0\XINT@dsl #1\Z }%
\def\XINT@dsl #1%
@@ -2857,16 +2849,12 @@
\def\xintDSR {\romannumeral0\xintdsr }%
\def\xintdsr #1%
{%
- \expandafter\expandafter\expandafter
- \XINT@dsr@a
- \expandafter\expandafter\expandafter
- {#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
{%
- \expandafter\XINT@dsr@b
- \romannumeral0\XINT@rev
+ \expandafter\XINT@dsr@b\romannumeral0\XINT@rev
}%
\def\XINT@dsr@b #1#2#3\Z
{%
@@ -2880,7 +2868,7 @@
\def\xintDSHr {\romannumeral0\xintdshr }%
\def\xintdshr #1%
{%
- \expandafter\expandafter\expandafter\XINT@dshr@checkxpositive #1\Z
+ \expandafter\XINT@dshr@checkxpositive \the\numexpr #1\relax\Z
}%
\def\XINT@dshr@checkxpositive #1%
{%
@@ -2893,21 +2881,16 @@
\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\expandafter\expandafter
- \xint@dsh
- \expandafter\expandafter\expandafter
- {#2}{#1}%
+ \expandafter\xint@dsh\expandafter {\romannumeral-`0#2}{#1}%
}%
\def\xint@dsh #1#2%
{%
- \expandafter\expandafter\expandafter
- \XINT@dsh@checksignx #2\Z {#1}%
+ \expandafter\XINT@dsh@checksignx \the\numexpr #2\relax\Z {#1}%
}%
\def\XINT@dsh@checksignx #1%
{%
@@ -2926,14 +2909,11 @@
\def\xintDSx {\romannumeral0\xintdsx }%
\def\xintdsx #1#2%
{%
- \expandafter\expandafter\expandafter
- \xint@dsx
- \expandafter\expandafter\expandafter
- {#2}{#1}%
+ \expandafter\xint@dsx\expandafter {\romannumeral-`0#2}{#1}%
}%
\def\xint@dsx #1#2%
{%
- \expandafter\expandafter\expandafter\XINT@dsx@checksignx #2\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}}%
@@ -2952,55 +2932,36 @@
}%
\def\XINT@dsx@xisNeg@checkA@ #1#2\Z #3%
{%
- \xint@zero #1\XINT@dsx@xisNeg@Azero 0\expandafter
- \XINT@dsx@xisNeg@checkx\expandafter
- {\romannumeral0\XINT@length {#3}}{#3}\Z {#1#2}%
+ \xint@zero #1\XINT@dsx@xisNeg@Azero 0%
+ \XINT@dsx@xisNeg@checkx {#3}{#3}\Z {#1#2}%
}%
-\def\XINT@dsx@xisNeg@Azero #1#2#3#4#5#6#7#8{ 0}%
+\def\XINT@dsx@xisNeg@Azero #1\Z #2{ 0}%
\def\XINT@dsx@xisNeg@checkx #1%
{%
- \ifnum #1> 9
- \xint@afterfi {\xintError:TooBigDecimalShift\XINT@dsx@toobigx }%
+ \ifnum #1> 999999999
+ \xint@afterfi
+ {\xintError:TooBigDecimalShift
+ \expandafter\space\expandafter 0\xint@gobble@iii }%
\else
\expandafter \XINT@dsx@zeroloop
\fi
}%
-\def\XINT@dsx@toobigx #1#2#3{ 0}%
\def\XINT@dsx@zeroloop #1%
{%
- \ifcase #1
- \XINT@dsx@exit
- \or
- \XINT@dsx@exiti
- \or
- \XINT@dsx@exitii
- \or
- \XINT@dsx@exitiii
- \or
- \XINT@dsx@exitiv
- \or
- \XINT@dsx@exitv
- \or
- \XINT@dsx@exitvi
- \or
- \XINT@dsx@exitvii
- \else
- \xint@afterfi
- {\expandafter
- \XINT@dsx@zeroloop
- \expandafter {\the\numexpr #1-8}00000000%
- }%
- \fi
+ \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
+{%
+ \fi\expandafter\XINT@dsx@exitb
+}%
+\def\XINT@dsx@exitb #1%
+{%
+ \expandafter\expandafter\expandafter
+ \XINT@dsx@addzeros\csname xint@gobble@\romannumeral -#1\endcsname
}%
-\def\XINT@dsx@exit #1\fi #2\Z {\fi \XINT@dsx@addzeros {#2}}%
-\def\XINT@dsx@exiti #1\fi #2\Z {\fi \XINT@dsx@addzeros {0#2}}%
-\def\XINT@dsx@exitii #1\fi #2\Z {\fi \XINT@dsx@addzeros {00#2}}%
-\def\XINT@dsx@exitiii #1\fi #2\Z {\fi \XINT@dsx@addzeros {000#2}}%
-\def\XINT@dsx@exitiv #1\fi #2\Z {\fi \XINT@dsx@addzeros {0000#2}}%
-\def\XINT@dsx@exitv #1\fi #2\Z {\fi \XINT@dsx@addzeros {00000#2}}%
-\def\XINT@dsx@exitvi #1\fi #2\Z {\fi \XINT@dsx@addzeros {000000#2}}%
-\def\XINT@dsx@exitvii #1\fi #2\Z {\fi \XINT@dsx@addzeros {0000000#2}}%
-\def\XINT@dsx@addzeros #1#2{ #2#1}%
+\def\XINT@dsx@addzeros #1\Z #2{ #2#1}%
\def\XINT@dsx@xisPos #1\Z #2%
{%
\XINT@dsx@checksignA #2\Z {#1}%
@@ -3074,14 +3035,11 @@
}%
\def\xint@split #1#2%
{%
- \expandafter\expandafter\expandafter
- \XINT@split@checksizex
- \expandafter\expandafter\expandafter
- {#2}{#1}%
+ \expandafter\XINT@split@checksizex\expandafter{\the\numexpr #2}{#1}%
}%
-\def\XINT@split@checksizex #1%
+\def\XINT@split@checksizex #1% 999999999 is anyhow very big, could be reduced
{%
- \ifnum\XINT@Len {#1} > 9
+ \ifnum\numexpr\XINT@Abs{#1}\relax > 999999999
\xint@afterfi {\xintError:TooBigDecimalSplit\XINT@split@bigx }%
\else
\expandafter\XINT@split@xfork
@@ -3105,77 +3063,51 @@
\xint@UDkrof
}%
\def\XINT@split@zerosplit #1\Z #2{ {#2}{}}%
-\def\XINT@split@fromleft #1\Z #2%
+\def\XINT@split@fromleft #1\Z #2%
{%
\XINT@split@fromleft@loop {#1}{}#2\W\W\W\W\W\W\W\W\Z
}%
\def\XINT@split@fromleft@loop #1%
{%
- \ifcase #1
- \XINT@split@fromleft@endsplit
- \or
- \XINT@split@fromleft@one@andend
- \or
- \XINT@split@fromleft@two@andend
- \or
- \XINT@split@fromleft@three@andend
- \or
- \XINT@split@fromleft@four@andend
- \or
- \XINT@split@fromleft@five@andend
- \or
- \XINT@split@fromleft@six@andend
- \or
- \XINT@split@fromleft@seven@andend
- \else
- \expandafter \XINT@split@fromleft@loop@perhaps
- \expandafter
- {\the\numexpr #1-8\expandafter\expandafter\expandafter }%
- \expandafter
- \XINT@split@fromleft@eight
- \fi
-}%
-\def\XINT@split@fromleft@endsplit #1\fi #2#3\W #4\Z
- {\expandafter\space\fi {#2}{#3}}%
-\def\XINT@split@fromleft@eight #1#2#3#4#5#6#7#8#9%
-{%
- #9{#1#2#3#4#5#6#7#8#9}%
+ \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%
{%
- \xint@w #2\XINT@split@fromleft@toofar\W \XINT@split@fromleft@loop
- {#1}%
+ \xint@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
}%
\def\XINT@split@fromleft@toofar@b #1\W #2\Z { {#1}{}}%
-\def\XINT@split@fromleft@one@andend #1\fi
-{\fi\expandafter\XINT@split@fromleft@checkiftoofar\XINT@split@fromleft@one }%
-\def\XINT@split@fromleft@one #1#2{#2{#1#2}}%
-\def\XINT@split@fromleft@two@andend #1\fi
-{\fi\expandafter\XINT@split@fromleft@checkiftoofar\XINT@split@fromleft@two }%
-\def\XINT@split@fromleft@two #1#2#3{#3{#1#2#3}}%
-\def\XINT@split@fromleft@three@andend #1\fi
-{\fi\expandafter\XINT@split@fromleft@checkiftoofar\XINT@split@fromleft@three }%
-\def\XINT@split@fromleft@three #1#2#3#4{#4{#1#2#3#4}}%
-\def\XINT@split@fromleft@four@andend #1\fi
-{\fi\expandafter\XINT@split@fromleft@checkiftoofar\XINT@split@fromleft@four }%
-\def\XINT@split@fromleft@four #1#2#3#4#5{#5{#1#2#3#4#5}}%
-\def\XINT@split@fromleft@five@andend #1\fi
-{\fi\expandafter\XINT@split@fromleft@checkiftoofar\XINT@split@fromleft@five }%
-\def\XINT@split@fromleft@five #1#2#3#4#5#6{#6{#1#2#3#4#5#6}}%
-\def\XINT@split@fromleft@six@andend #1\fi
-{\fi\expandafter\XINT@split@fromleft@checkiftoofar\XINT@split@fromleft@six }%
-\def\XINT@split@fromleft@six #1#2#3#4#5#6#7{#7{#1#2#3#4#5#6#7}}%
-\def\XINT@split@fromleft@seven@andend #1\fi
-{\fi\expandafter\XINT@split@fromleft@checkiftoofar\XINT@split@fromleft@seven }%
-\def\XINT@split@fromleft@seven #1#2#3#4#5#6#7#8{#8{#1#2#3#4#5#6#7#8}}%
+\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
+}%
+\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@w #1\XINT@split@fromleft@wenttoofar\W\space {#2}{#3}%
}%
\def\XINT@split@fromleft@wenttoofar\W\space #1%
{%
@@ -3193,72 +3125,48 @@
}%
\def\XINT@split@fromright@loop #1%
{%
- \ifcase #1
- \expandafter\XINT@split@fromright@endsplit
- \or
- \XINT@split@fromright@one@andend
- \or
- \XINT@split@fromright@two@andend
- \or
- \XINT@split@fromright@three@andend
- \or
- \XINT@split@fromright@four@andend
- \or
- \XINT@split@fromright@five@andend
- \or
- \XINT@split@fromright@six@andend
- \or
- \XINT@split@fromright@seven@andend
- \else
- \expandafter \XINT@split@fromright@loop@perhaps
- \expandafter
- {\the\numexpr
- #1-8\expandafter\expandafter\expandafter }%
- \expandafter
- \XINT@split@fromright@eight
- \fi
+ \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@endsplit #1#2\W #3\Z #4%
+\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%
{%
- \expandafter\space\expandafter {\romannumeral0\XINT@rev{#2}}{#1}%
+ \xint@w #2\XINT@split@fromright@toofar\W
+ \XINT@split@fromright@loop {#1}%
}%
-\def\XINT@split@fromright@eight #1#2#3#4#5#6#7#8#9%
+\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
{%
- #9{#9#8#7#6#5#4#3#2#1}%
+ \csname XINT@split@fromright@endsplit@\romannumeral #1\endcsname
}%
-\def\XINT@split@fromright@loop@perhaps #1#2%
+\def\XINT@split@fromright@endsplit@ #1#2\W #3\Z #4%
{%
- \xint@w #2\XINT@split@fromright@toofar\W\XINT@split@fromright@loop
- {#1}%
+ \expandafter\space\expandafter {\romannumeral0\XINT@rev{#2}}{#1}%
}%
-\def\XINT@split@fromright@toofar\W\XINT@split@fromright@loop #1#2#3\Z { {}}%
-\def\XINT@split@fromright@one@andend #1\fi {\fi\expandafter
- \XINT@split@fromright@checkiftoofar\XINT@split@fromright@one }%
-\def\XINT@split@fromright@one #1#2{#2{#2#1}}%
-\def\XINT@split@fromright@two@andend #1\fi {\fi\expandafter
- \XINT@split@fromright@checkiftoofar\XINT@split@fromright@two }%
-\def\XINT@split@fromright@two #1#2#3{#3{#3#2#1}}%
-\def\XINT@split@fromright@three@andend #1\fi {\fi\expandafter
- \XINT@split@fromright@checkiftoofar\XINT@split@fromright@three }%
-\def\XINT@split@fromright@three #1#2#3#4{#4{#4#3#2#1}}%
-\def\XINT@split@fromright@four@andend #1\fi {\fi\expandafter
- \XINT@split@fromright@checkiftoofar\XINT@split@fromright@four }%
-\def\XINT@split@fromright@four #1#2#3#4#5{#5{#5#4#3#2#1}}%
-\def\XINT@split@fromright@five@andend #1\fi {\fi\expandafter
- \XINT@split@fromright@checkiftoofar\XINT@split@fromright@five }%
-\def\XINT@split@fromright@five #1#2#3#4#5#6{#6{#6#5#4#3#2#1}}%
-\def\XINT@split@fromright@six@andend #1\fi {\fi\expandafter
- \XINT@split@fromright@checkiftoofar\XINT@split@fromright@six }%
-\def\XINT@split@fromright@six #1#2#3#4#5#6#7{#7{#7#6#5#4#3#2#1}}%
-\def\XINT@split@fromright@seven@andend #1\fi {\fi\expandafter
- \XINT@split@fromright@checkiftoofar\XINT@split@fromright@seven }%
-\def\XINT@split@fromright@seven #1#2#3#4#5#6#7#8{#8{#8#7#6#5#4#3#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%
{%
\xint@w #1\XINT@split@fromright@wenttoofar\W
- \XINT@split@fromright@endsplit
+ \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%
\endinput