summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/xint
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2013-04-15 22:23:20 +0000
committerKarl Berry <karl@freefriends.org>2013-04-15 22:23:20 +0000
commit0639a522410335d1b0ada2c404a8e8b7b6b408c6 (patch)
tree7981f8203865d9194a39b3a6c9ac7d2a90f61094 /Master/texmf-dist/tex/generic/xint
parentf9fe08d0b133db79c326f1cc09c1ef16debf16c5 (diff)
xint (15apr13)
git-svn-id: svn://tug.org/texlive/trunk@29954 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/generic/xint')
-rw-r--r--Master/texmf-dist/tex/generic/xint/xint.sty1751
-rw-r--r--Master/texmf-dist/tex/generic/xint/xintfrac.sty1107
-rw-r--r--Master/texmf-dist/tex/generic/xint/xintgcd.sty62
-rw-r--r--Master/texmf-dist/tex/generic/xint/xintseries.sty349
4 files changed, 2340 insertions, 929 deletions
diff --git a/Master/texmf-dist/tex/generic/xint/xint.sty b/Master/texmf-dist/tex/generic/xint/xint.sty
index b8489389530..e121c9bcffb 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.02 of April 5, 2013)
+%% The xint bundle (version 1.03 of April 14, 2013)
%% xint: Expandable operations on long numbers
%% Copyright (C) 2013 by Jean-Francois Burnol
%%----------------------------------------------------------------
@@ -134,7 +134,7 @@
\fi
\expandafter\x\csname ver@xint.sty\endcsname
\ProvidesPackage{xint}%
- [2013/04/05 v1.02 Expandable operations on long numbers (jfB)]%
+ [2013/04/14 v1.03 Expandable operations on long numbers (jfB)]%
\def\xint@gobble #1{}%
\def\xint@gobble@one #1{}%
\def\xint@gobble@two #1#2{}%
@@ -144,12 +144,14 @@
\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{}%
+\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 {}%
\def\xint@z #1\Z {}%
@@ -161,6 +163,7 @@
\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}%
@@ -188,11 +191,7 @@
}%
\def\XINT@rev@negative #1#2\Z
{%
- \expandafter
- \space
- \expandafter
- -%
- \romannumeral0\XINT@rev {#2}%
+ \expandafter \space \expandafter -\romannumeral0\XINT@rev {#2}%
}%
\def\XINT@rev@nonnegative #1\Z
{%
@@ -296,6 +295,16 @@
}%
\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\xintNum {\romannumeral0\xintnum }%
\def\xintnum #1%
{%
@@ -331,12 +340,13 @@
\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\xintLen {\romannumeral0\xintlen }%
-\def\xintlen #1%
+\def\xintiLen {\romannumeral0\xintilen }%
+\def\xintilen #1%
{%
\expandafter\expandafter\expandafter
\XINT@length@fork #1\R\R\R\R\R\R\R\R\Z
}%
+\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%
{%
@@ -495,12 +505,13 @@
}%
}%
\let\xintDigitsOf\xintAssignArray
-\def\xintSgn {\romannumeral0\xintsgn }%
-\def\xintsgn #1%
+\def\xintiSgn {\romannumeral0\xintisgn }%
+\def\xintisgn #1%
{%
\expandafter\expandafter\expandafter
\XINT@sgn #1\Z%
}%
+\let\xintSgn\xintiSgn \let\xintsgn\xintisgn
\def\XINT@Sgn #1{\romannumeral0\XINT@sgn #1\Z }%
\def\XINT@sgn #1%
{%
@@ -512,12 +523,13 @@
\xint@UDkrof
\xint@z
}%
-\def\xintOpp {\romannumeral0\xintopp }%
-\def\xintopp #1%
+\def\xintiOpp {\romannumeral0\xintiopp }%
+\def\xintiopp #1%
{%
\expandafter\expandafter\expandafter
\XINT@opp #1%
}%
+\let\xintOpp\xintiOpp \let\xintopp\xintiopp
\def\XINT@Opp #1{\romannumeral0\XINT@opp #1}%
\def\XINT@opp #1%
{%
@@ -528,13 +540,14 @@
0-\dummy {-#1}% positive
\xint@UDkrof
}%
-\def\xintAbs {\romannumeral0\xintabs }%
-\def\xintabs #1%
+\def\xintiAbs {\romannumeral0\xintiabs }%
+\def\xintiabs #1%
{%
\expandafter\expandafter\expandafter
\XINT@abs #1%
}%
-\def\XINT@Abs {\romannumeral0\XINT@abs }%
+\let\xintAbs\xintiAbs \let\xintabs\xintiabs
+\def\XINT@Abs #1{\romannumeral0\XINT@abs #1}%
\def\XINT@abs #1%
{%
\xint@UDsignfork
@@ -542,14 +555,348 @@
-\dummy { #1}%
\xint@UDkrof
}%
-\def\xintAdd {\romannumeral0\xintadd }%
-\def\xintadd #1%
+\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}%
+}%
+\def\xint@add@az\W\XINT@add@AB #1#2%
+{%
+ \XINT@add@AC@checkcarry #1%
+}%
+\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
+}%
+\def\XINT@add@ABE #1#2#3#4#5#6%
+{\expandafter
+ \XINT@add@ABEA\the\numexpr #1+10#5#4#3#2+#6\relax.%
+}%
+\def\XINT@add@ABEA #1#2#3.#4%
+{%
+ \XINT@add@A #2{#3#4}%
+}%
+\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.%
+}%
+\def\XINT@add@CC #1#2#3.#4%
+{%
+ \XINT@add@AC@checkcarry #2{#3#4}% on va examiner et \'eliminer #2
+}%
+\def\XINT@add@AC@checkcarry #1%
+{%
+ \xint@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
+{%
+ \expandafter
+ \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
+ #1%
+}%
+\def\XINT@add@C #1#2#3#4#5%
+{%
+ \xint@w
+ #2\xint@add@cz
+ \W\XINT@add@CD {#5#4#3#2}{#1}%
+}%
+\def\XINT@add@CD #1%
+{\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%
+{%
+ \xint@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%
+{%
+ \XINT@addr@AC@checkcarry #1%
+}%
+\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
+}%
+\def\XINT@addr@E #1#2#3#4#5#6%
+{\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%
+{%
+ \XINT@addr@A #2{#7#6#5#4#3}%
+}%
+\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
+}%
+\def\XINT@addr@CC #1#2#3#4#5#6#7%
+{%
+ \XINT@addr@AC@checkcarry #2{#7#6#5#4#3}%
+}%
+\def\XINT@addr@AC@checkcarry #1%
+{%
+ \xint@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%
+{%
+ \xint@w
+ #2\xint@addr@cz
+ \W\XINT@addr@D {#5#4#3#2}{#1}%
+}%
+\def\XINT@addr@D #1%
+{\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%
+{%
+ \xint@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%
+{%
+ \XINT@addm@AC@checkcarry #1%
+}%
+\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
+}%
+\def\XINT@addm@ABE #1#2#3#4#5#6%
+{\expandafter
+ \XINT@addm@ABEA\the\numexpr #1+10#5#4#3#2+#6\relax.%
+}%
+\def\XINT@addm@ABEA #1#2#3.#4%
+{%
+ \XINT@addm@A #2{#3#4}%
+}%
+\def\XINT@addm@AC@checkcarry #1%
+{%
+ \xint@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
+{%
+ \expandafter
+ \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
+ #1%
+}%
+\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}%
+}%
+\def\XINT@addm@CD #1%
+{\expandafter
+ \XINT@addm@CC\the\numexpr 1+10#1\relax.%
+}%
+\def\XINT@addm@CC #1#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
+{\expandafter
+ \XINT@addm@CDw\the\numexpr 1+#1#2#3\relax.%
+}%
+\def\XINT@addm@CDw #1.#2#3\X\Y\Z
+{%
+ \XINT@addm@end #1#3%
+}%
+\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.%
+}%
+\def\XINT@addm@CDx #1.#2#3\Y\Z
+{%
+ \XINT@addm@end #1#3%
+}%
+\def\xint@addm@cy
+ #1\xint@addm@cz
+ \W\XINT@addm@CD
+{\expandafter
+ \XINT@addm@CDy\the\numexpr 1+#1\relax.%
+}%
+\def\XINT@addm@CDy #1.#2#3\Z
+{%
+ \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%
+{\expandafter\space\the\numexpr #1#2#3#4#5\relax
+}%
+\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}%
+}%
+\def\xint@addp@az\W\XINT@addp@AB #1#2%
+{%
+ \XINT@addp@AC@checkcarry #1%
+}%
+\def\XINT@addp@AC@checkcarry #1%
+{%
+ \xint@zero #1\xint@addp@AC@nocarry 0\XINT@addp@C
+}%
+\def\xint@addp@AC@nocarry 0\XINT@addp@C
+{%
+ \XINT@addp@F
+}%
+\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
+}%
+\def\XINT@addp@ABE #1#2#3#4#5#6%
+{\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%
+{%
+ \XINT@addp@A #2{#7#6#5#4#3}%<-- attention on met donc \`a droite
+}%
+\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}%
+}%
+\def\XINT@addp@CD #1%
+{\expandafter
+ \XINT@addp@CC\the\numexpr 1+10#1\relax
+}%
+\def\XINT@addp@CC #1#2#3#4#5#6#7%
+{%
+ \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
+{\expandafter
+ \XINT@addp@CDw\the\numexpr 1+10#1#2#3\relax
+}%
+\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%
+}%
+\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
+}%
+\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%
+}%
+\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
+}%
+\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%
+}%
+\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}%
+}%
+\def\XINT@addp@G #1#2%
+{%
+ \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%
+{%
+ \xint@quatrezeros #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%
+{%
+ \xint@quatrezeros #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%
+{%
+ \xint@quatrezeros #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\xintiAdd {\romannumeral0\xintiadd }%
+\def\xintiadd #1%
{%
\expandafter\expandafter\expandafter
\xint@add
\expandafter\expandafter\expandafter
{#1}%
}%
+\let\xintAdd\xintiAdd \let\xintadd\xintiadd
\def\xint@add #1#2%
{%
\expandafter\expandafter\expandafter
@@ -604,73 +951,15 @@
\romannumeral0\XINT@RQ {}#2\R\R\R\R\R\R\R\R\Z
\W\X\Y\Z #1\W\X\Y\Z
}%
-\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}%
-}%
-\def\xint@add@az\W\XINT@add@AB #1#2%
-{%
- \XINT@add@AC@checkcarry #1%
-}%
-\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
-}%
-\def\XINT@add@ABE #1#2#3#4#5#6%
-{\expandafter
- \XINT@add@ABEA\the\numexpr #1+10#5#4#3#2+#6\relax.%
-}%
-\def\XINT@add@ABEA #1#2#3.#4%
-{%
- \XINT@add@A #2{#3#4}%
-}%
-\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.%
-}%
-\def\XINT@add@CC #1#2#3.#4%
-{%
- \XINT@add@AC@checkcarry #2{#3#4}% on va examiner et \'eliminer #2
-}%
-\def\XINT@add@AC@checkcarry #1%
-{%
- \xint@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
-{%
- \expandafter
- \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
- #1%
-}%
-\def\XINT@add@C #1#2#3#4#5%
-{%
- \xint@w
- #2\xint@add@cz
- \W\XINT@add@CD {#5#4#3#2}{#1}%
-}%
-\def\XINT@add@CD #1%
-{\expandafter
- \XINT@add@CC\the\numexpr 1+10#1\relax.%
-}%
-\def\xint@add@cz\W\XINT@add@CD #1#2{ 1#2}%
-\def\xintSub {\romannumeral0\xintsub }%
-\def\xintsub #1%
+\def\xintiSub {\romannumeral0\xintisub }%
+\def\xintisub #1%
{%
\expandafter\expandafter\expandafter
\xint@sub
\expandafter\expandafter\expandafter
{#1}%
}%
+\let\xintSub\xintiSub \let\xintsub\xintisub
\def\xint@sub #1#2%
{%
\expandafter\expandafter\expandafter
@@ -912,7 +1201,7 @@
}%
\def\XINT@sub@KK@onestep #1#2%
{\expandafter
- \XINT@sub@backtoKK\the\numexpr 110000-#2+#1-1\relax.%
+ \XINT@sub@backtoKK\the\numexpr 109999-#2+#1\relax.%
}%
\def\XINT@sub@backtoKK #1#2#3.#4%
{%
@@ -923,14 +1212,15 @@
\expandafter\space\expandafter-\romannumeral
0\XINT@cuz@loop #3\W\W\W\W\W\W\W\Z
}%
-\def\xintCmp {\romannumeral0\xintcmp }%
-\def\xintcmp #1%
+\def\xintiCmp {\romannumeral0\xinticmp }%
+\def\xinticmp #1%
{%
\expandafter\expandafter\expandafter
\xint@cmp
\expandafter\expandafter\expandafter
{#1}%
}%
+\let\xintCmp\xintiCmp \let\xintcmp\xinticmp
\def\xint@cmp #1#2%
{%
\expandafter\expandafter\expandafter
@@ -1125,20 +1415,23 @@
0\dummy { 1} % pas de retenue
\xint@UDkrof
}%
-\def\xintMax {\romannumeral0\xintmax }%
-\def\xintmax #1%
+\def\xintiMax {\romannumeral0\xintimax }%
+\def\xintimax #1%
{%
\expandafter\expandafter\expandafter
\xint@max
\expandafter\expandafter\expandafter
{#1}%
}%
+\let\xintMax\xintiMax \let\xintmax\xintimax
\def\xint@max #1#2%
{%
\expandafter\expandafter\expandafter
- \XINT@max@fork #2\Z #1\Z
+ \XINT@max@pre
+ \expandafter\expandafter\expandafter {#2}{#1}%
}%
-\def\XINT@Max #1#2{\romannumeral0\XINT@max@fork #2\Z #1\Z }%
+\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
@@ -1154,41 +1447,44 @@
\xint@UDkrof
{#2}{#4}#1#3%
}%
-\def\XINT@max@zerozero #1#2#3#4{ 0}%
-\def\XINT@max@zeroplus #1#2#3#4{ #4#2}%
-\def\XINT@max@pluszero #1#2#3#4{ #3#1}%
-\def\XINT@max@minusplus #1#2#3#4{ #4#2}%
-\def\XINT@max@plusminus #1#2#3#4{ #3#1}%
-\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}
- \xint@afterfi { #4#2}%
+ \expandafter\xint@firstoftwo@andstop
\else
- \xint@afterfi { #3#1}%
+ \expandafter\xint@secondoftwo@andstop
\fi
}%
\def\XINT@max@minusminus #1#2#3#4%
{%
\ifodd\XINT@Geq {#1}{#2}
- \xint@afterfi { -#2}%
+ \expandafter\xint@firstoftwo@andstop
\else
- \xint@afterfi { -#1}%
+ \expandafter\xint@secondoftwo@andstop
\fi
}%
-\def\xintMin {\romannumeral0\xintmin }%
-\def\xintmin #1%
+\def\xintiMin {\romannumeral0\xintimin }%
+\def\xintimin #1%
{%
\expandafter\expandafter\expandafter
\xint@min
\expandafter\expandafter\expandafter
{#1}%
}%
+\let\xintMin\xintiMin \let\xintmin\xintimin
\def\xint@min #1#2%
{%
\expandafter\expandafter\expandafter
- \XINT@min@fork #2\Z #1\Z
+ \XINT@min@pre
+ \expandafter\expandafter\expandafter {#2}{#1}%
}%
-\def\XINT@Min #1#2{\romannumeral0\XINT@min@fork #2\Z #1\Z }%
+\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
@@ -1204,166 +1500,82 @@
\xint@UDkrof
{#2}{#4}#1#3%
}%
-\def\XINT@min@zerozero #1#2#3#4{ 0}%
-\def\XINT@min@zeroplus #1#2#3#4{ 0}%
-\def\XINT@min@pluszero #1#2#3#4{ 0}%
-\def\XINT@min@minusplus #1#2#3#4{ #3#1}%
-\def\XINT@min@plusminus #1#2#3#4{ #4#2}%
+\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}
- \xint@afterfi { #3#1}%
+ \expandafter\xint@secondoftwo@andstop
\else
- \xint@afterfi { #4#2}%
+ \expandafter\xint@firstoftwo@andstop
\fi
}%
\def\XINT@min@minusminus #1#2#3#4%
{%
\ifodd\XINT@Geq {#1}{#2}
- \xint@afterfi { -#1}%
+ \expandafter\xint@secondoftwo@andstop
\else
- \xint@afterfi { -#2}%
+ \expandafter\xint@firstoftwo@andstop
\fi
}%
-\def\XINT@psum #1%
-{%
- \romannumeral0\XINT@psum@checkifemptysum #1\Z
-}%
-\def\XINT@psum@checkifemptysum #1%
-{%
- \xint@relax #1\XINT@psum@returnzero\relax \XINT@psum@RQfirst #1%
-}%
-\def\XINT@psum@returnzero #1\Z { 0}%
-\def\XINT@psum@RQfirst #1\Z
-{%
- \expandafter\XINT@psum@loop\expandafter
- {\romannumeral0\XINT@RQ {}#1\R\R\R\R\R\R\R\R\Z}% avant: #1\Z
-}%
-\def\XINT@psum@loop #1#2%
-{%
- \xint@relax #2\XINT@psum@end\relax
- \expandafter
- \XINT@psum@loop\expandafter
- {\romannumeral0\expandafter\XINT@sum@A
- \expandafter0\expandafter{\expandafter}%
- \romannumeral0\XINT@RQ {}#2\R\R\R\R\R\R\R\R\Z
- \W\X\Y\Z #1\W\X\Y\Z }%
-}%
-\def\XINT@psum@end\relax\expandafter
- \XINT@psum@loop\expandafter #1%
- {\XINT@psum@end@ #1}%
-\def\XINT@psum@end@ #1\W\X\Y\Z #2\W\X\Y\Z
-{%
- \expandafter
- \xint@cleanupzeros@andstop\romannumeral0\XINT@rev {#2}%
-}%
-\def\xintSumExpr {\romannumeral0\xintsumexpr }%
-\def\xintSum {\romannumeral0\xintsum }%
-\def\xintsum #1%
+\def\xintiSum {\romannumeral0\xintisum }%
+\def\xintisum #1{\xintisumexpr #1\relax }%
+\def\xintiSumExpr {\romannumeral0\xintisumexpr }%
+\def\xintisumexpr
{%
- \expandafter\expandafter\expandafter
- \xintsumexpr #1\relax
+ \expandafter\expandafter\expandafter\XINT@sumexpr
}%
-\def\xintsumexpr #1%
+\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%
{%
+ \xint@relax #3\XINT@sum@finished\relax
\expandafter\expandafter\expandafter
- \XINT@sum@checkifempty #1\Z {\XINT@psum }{\XINT@psum }%
-}%
-\def\XINT@sum@checkifempty #1%
-{%
- \xint@relax #1\XINT@sum@returnzero\relax
- \XINT@sum@checksign #1%
+ \XINT@sum@checksign #3\Z {#1}{#2}%
}%
-\def\XINT@sum@returnzero #1\Z #2#3{ 0}%
\def\XINT@sum@checksign #1%
{%
\xint@zero #1\XINT@sum@skipzeroinput0%
\xint@UDsignfork
- #1\dummy \XINT@sum@pushneg
- -\dummy \XINT@sum@pushpos
+ #1\dummy \XINT@sum@N
+ -\dummy {\XINT@sum@P #1}%
\xint@UDkrof
- #1%
}%
-\def\XINT@sum@skipzeroinput #1\xint@UDkrof #2\Z #3#4%
+\def\XINT@sum@skipzeroinput #1\xint@UDkrof #2\Z {\XINT@sum@loop }%
+\def\XINT@sum@P #1\Z #2%
{%
- \XINT@sum@xpxpnext {#3}{#4}%
+ \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
+ \W\X\Y\Z #2\W\X\Y\Z }%
}%
-\def\XINT@sum@pushpos #1#2\Z #3#4%
+\def\XINT@sum@N #1\Z #2#3%
{%
- \XINT@sum@xpxpnext {#3{#1#2}}{#4}%
+ \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
+ \W\X\Y\Z #3\W\X\Y\Z }{#2}%
}%
-\def\XINT@sum@pushneg #1#2\Z #3#4%
+\def\XINT@sum@NN #1#2{\XINT@sum@loop {#2}{#1}}%
+\def\XINT@sum@finished #1\Z #2#3%
{%
- \XINT@sum@xpxpnext {#3}{#4{#2}}%
+ \XINT@sub@A 1{}#3\W\X\Y\Z #2\W\X\Y\Z
}%
-\def\XINT@sum@xpxpnext #1#2#3%
-{%
- \expandafter\expandafter\expandafter
- \XINT@sum@checkiffinished #3\Z {#1}{#2}%
-}%
-\def\XINT@sum@checkiffinished #1%
-{%
- \xint@relax #1\XINT@sum@end\relax
- \XINT@sum@checksign #1%
-}%
-\def\XINT@sum@end\relax\XINT@sum@checksign\relax #1\Z #2#3%
- {\xintsub{#2\relax}{#3\relax}}%
-\def\XINT@sum@A #1#2#3#4#5#6%
-{%
- \xint@w
- #3\xint@sum@az
- \W\XINT@sum@B #1{#3#4#5#6}{#2}%
-}%
-\def\xint@sum@az\W\XINT@sum@B #1#2%
-{%
- \XINT@sum@AC@checkcarry #1%
-}%
-\def\XINT@sum@B #1#2#3#4\W\X\Y\Z #5#6#7#8%
-{%
- \xint@w
- #5\xint@sum@bz
- \W\XINT@sum@E #1#2{#8#7#6#5}{#3}#4\W\X\Y\Z
-}%
-\def\XINT@sum@E #1#2#3#4#5#6%
-{\expandafter
- \XINT@sum@ABEA\the\numexpr #1+10#5#4#3#2+#6\relax
-}%
-\def\XINT@sum@ABEA #1#2#3#4#5#6#7%
-{%
- \XINT@sum@A #2{#7#6#5#4#3}%
-}%
-\def\xint@sum@bz\W\XINT@sum@E #1#2#3#4#5#6%
-{\expandafter
- \XINT@sum@CC\the\numexpr #1+10#5#4#3#2\relax
-}%
-\def\XINT@sum@CC #1#2#3#4#5#6#7%
-{%
- \XINT@sum@AC@checkcarry #2{#7#6#5#4#3}%
-}%
-\def\XINT@sum@AC@checkcarry #1%
-{%
- \xint@zero #1\xint@sum@AC@nocarry 0\XINT@sum@C
-}%
-\def\xint@sum@AC@nocarry 0\XINT@sum@C #1#2\W\X\Y\Z { #1#2}%
-\def\XINT@sum@C #1#2#3#4#5%
-{%
- \xint@w
- #2\xint@sum@cz
- \W\XINT@sum@D {#5#4#3#2}{#1}%
-}%
-\def\XINT@sum@D #1%
-{\expandafter
- \XINT@sum@CC\the\numexpr 1+10#1\relax
-}%
-\def\xint@sum@cz\W\XINT@sum@D #1#2{ #21000}%
-\def\xintMul {\romannumeral0\xintmul }%
-\def\xintmul #1%
+\def\xintiMul {\romannumeral0\xintimul }%
+\def\xintimul #1%
{%
\expandafter\expandafter\expandafter
\xint@mul
\expandafter\expandafter\expandafter
{#1}%
}%
+\let\xintMul\xintiMul \let\xintmul\xintimul
\def\xint@mul #1#2%
{\expandafter\expandafter\expandafter
\XINT@mul@fork #2\Z #1\Z
@@ -1377,136 +1589,129 @@
0\dummy
{\xint@UDsignsfork
#1#3\dummy \XINT@mul@minusminus % #1 = #3 = -
- #1-\dummy \XINT@mul@minusplus % #1 = -
- #3-\dummy \XINT@mul@plusminus % #3 = -
- --\dummy \XINT@mul@plusplus
+ #1-\dummy {\XINT@mul@minusplus #3}% % #1 = -
+ #3-\dummy {\XINT@mul@plusminus #1}% % #3 = -
+ --\dummy {\XINT@mul@plusplus #1#3}%
\xint@UDkrof }%
\xint@UDkrof
- {#2}{#4}#1#3%
+ {#2}{#4}%
}%
-\def\XINT@mul@zero #1#2#3#4{ 0}%
-\def\XINT@mul@minusminus #1#2#3#4%
+\def\XINT@mul@zero #1#2{ 0}%
+\def\XINT@mul@minusminus #1#2%
{%
- \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
+ \expandafter\XINT@mul@choice@a
+ \expandafter{\romannumeral0\XINT@length {#2}}%
+ {\romannumeral0\XINT@length {#1}}{#1}{#2}%
}%
-\def\XINT@mul@minusplus #1#2#3#4%
+\def\XINT@mul@minusplus #1#2#3%
{%
- \expandafter\space\expandafter-%
- \romannumeral0\expandafter
- \XINT@mul@enter\romannumeral0%
- \XINT@RQ {}#4#2\R\R\R\R\R\R\R\R\Z
- \W\X\Y\Z #1\W\X\Y\Z
+ \expandafter\space\expandafter-\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#4%
+\def\XINT@mul@plusminus #1#2#3%
{%
- \expandafter\space\expandafter-%
- \romannumeral0\expandafter
- \XINT@mul@enter\romannumeral0%
- \XINT@RQ {}#2\R\R\R\R\R\R\R\R\Z
- \W\X\Y\Z #3#1\W\X\Y\Z
+ \expandafter\space\expandafter-\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%
{%
- \expandafter
- \XINT@mul@enter\romannumeral0%
- \XINT@RQ {}#4#2\R\R\R\R\R\R\R\R\Z
- \W\X\Y\Z #3#1\W\X\Y\Z
-}%
-\def\XINT@mul@add@A #1#2#3#4#5#6%
-{%
- \xint@w
- #3\xint@mul@add@az
- \W\XINT@mul@add@AB #1{#3#4#5#6}{#2}%
+ \expandafter\XINT@mul@choice@a
+ \expandafter{\romannumeral0\XINT@length {#2#4}}%
+ {\romannumeral0\XINT@length {#1#3}}{#1#3}{#2#4}%
}%
-\def\xint@mul@add@az\W\XINT@mul@add@AB #1#2%
+\def\XINT@mul@choice@a #1#2%
{%
- \XINT@mul@add@AC@checkcarry #1%
+ \expandafter\XINT@mul@choice@b \expandafter{#2}{#1}%
}%
-\def\XINT@mul@add@AB #1#2#3#4\W\X\Y\Z #5#6#7#8%
+\def\XINT@mul@choice@b #1#2%
{%
- \XINT@mul@add@ABE #1#2{#8#7#6#5}{#3}#4\W\X\Y\Z
-}%
-\def\XINT@mul@add@ABE #1#2#3#4#5#6%
-{\expandafter
- \XINT@mul@add@ABEA\the\numexpr #1+10#5#4#3#2+#6\relax.%
-}%
-\def\XINT@mul@add@ABEA #1#2#3.#4%
-{%
- \XINT@mul@add@A #2{#3#4}%
-}%
-\def\XINT@mul@add@AC@checkcarry #1%
-{%
- \xint@zero #1\xint@mul@add@AC@nocarry 0\XINT@mul@add@C
+ \ifnum #1<5
+ \expandafter\XINT@mul@choice@littlebyfirst
+ \else
+ \ifnum #2<5
+ \expandafter\expandafter\expandafter
+ \XINT@mul@choice@littlebysecond
+ \else
+ \expandafter\expandafter\expandafter
+ \XINT@mul@choice@compare
+ \fi
+ \fi
+ {#1}{#2}%
}%
-\def\xint@mul@add@AC@nocarry 0\XINT@mul@add@C #1#2\W\X\Y\Z
+\def\XINT@mul@choice@littlebyfirst #1#2#3#4%
{%
- \expandafter
- \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
- #1%
+ \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
}%
-\def\XINT@mul@add@C #1#2#3#4#5%
+\def\XINT@mul@choice@littlebysecond #1#2#3#4%
{%
- \xint@w
- #5\xint@mul@add@cw
- #4\xint@mul@add@cx
- #3\xint@mul@add@cy
- #2\xint@mul@add@cz
- \W\XINT@mul@add@CD {#5#4#3#2}{#1}%
-}%
-\def\XINT@mul@add@CD #1%
-{\expandafter
- \XINT@mul@add@CC\the\numexpr 1+10#1\relax.%
+ \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
}%
-\def\XINT@mul@add@CC #1#2#3.#4%
+\def\XINT@mul@choice@compare #1#2%
{%
- \XINT@mul@add@AC@checkcarry #2{#3#4}%
-}%
-\def\xint@mul@add@cw
- #1\xint@mul@add@cx
- #2\xint@mul@add@cy
- #3\xint@mul@add@cz
- \W\XINT@mul@add@CD
-{\expandafter
- \XINT@mul@add@CDw\the\numexpr 1+#1#2#3\relax.%
+ \ifnum #1>#2
+ \expandafter \XINT@mul@choice@i
+ \else
+ \expandafter \XINT@mul@choice@ii
+ \fi
+ {#1}{#2}%
}%
-\def\XINT@mul@add@CDw #1.#2#3\X\Y\Z
-{%
- \XINT@mul@add@end #1#3%
+\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
+ \fi
}%
-\def\xint@mul@add@cx
- #1\xint@mul@add@cy
- #2\xint@mul@add@cz
- \W\XINT@mul@add@CD
-{\expandafter
- \XINT@mul@add@CDx\the\numexpr 1+#1#2\relax.%
+\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
+ \fi
}%
-\def\XINT@mul@add@CDx #1.#2#3\Y\Z
+\def\XINT@mul@choice@same #1#2%
{%
- \XINT@mul@add@end #1#3%
-}%
-\def\xint@mul@add@cy
- #1\xint@mul@add@cz
- \W\XINT@mul@add@CD
-{\expandafter
- \XINT@mul@add@CDy\the\numexpr 1+#1\relax.%
+ \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@add@CDy #1.#2#3\Z
+\def\XINT@mul@choice@permute #1#2%
{%
- \XINT@mul@add@end #1#3%
-}%
-\def\xint@mul@add@cz\W\XINT@mul@add@CD #1#2#3{\XINT@mul@add@end #1#3}%
-\def\XINT@mul@add@end #1#2#3#4#5%
-{\expandafter\space
- \the\numexpr #1#2#3#4#5\relax
+ \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%
{%
@@ -1514,7 +1719,7 @@
}%
\def\xint@mul@br\Z\XINT@mul@Br #1#2%
{%
- \XINT@sum@AC@checkcarry #1%
+ \XINT@addr@AC@checkcarry #1%
}%
\def\XINT@mul@Br #1#2#3#4\W\X\Y\Z #5#6#7#8%
{\expandafter
@@ -1579,7 +1784,8 @@
{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@one #1#2#3#4\Z\Z\Z\Z
+{%
\expandafter
\xint@cleanupzeros@andstop
\romannumeral0\XINT@rev{#4}%
@@ -1653,8 +1859,8 @@
\XINT@mul@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
- }#3\W\X\Y\Z
+ \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
@@ -1663,7 +1869,7 @@
\W\XINT@mul@compute #4#5#6\W\X\Y\Z \X\Y\Z
{%
\expandafter
- \XINT@mul@add@A \expandafter0\expandafter{\expandafter}%
+ \XINT@addm@A \expandafter0\expandafter{\expandafter}%
\romannumeral0%
\XINT@mul@Mr {#3#2#1}#6\Z\Z\Z\Z
\W\X\Y\Z 000#4\W\X\Y\Z
@@ -1674,7 +1880,7 @@
\W\XINT@mul@compute #3#4#5\W\X\Y\Z \Y\Z
{%
\expandafter
- \XINT@mul@add@A \expandafter0\expandafter{\expandafter}%
+ \XINT@addm@A \expandafter0\expandafter{\expandafter}%
\romannumeral0%
\XINT@mul@Mr {#2#1}#5\Z\Z\Z\Z
\W\X\Y\Z 00#3\W\X\Y\Z
@@ -1684,7 +1890,7 @@
\W\XINT@mul@compute #2#3#4\W\X\Y\Z \Z
{%
\expandafter
- \XINT@mul@add@A \expandafter0\expandafter{\expandafter}%
+ \XINT@addm@A \expandafter0\expandafter{\expandafter}%
\romannumeral0%
\XINT@mul@Mr {#1}#4\Z\Z\Z\Z
\W\X\Y\Z 0#2\W\X\Y\Z
@@ -1694,153 +1900,128 @@
\expandafter
\xint@cleanupzeros@andstop\romannumeral0\XINT@rev{#1}%
}%
-\def\xintSqr {\romannumeral0\xintsqr }%
-\def\xintsqr #1%
-{%
- \expandafter\expandafter\expandafter
- \XINT@sqr
- \expandafter\expandafter\expandafter
- {\xintAbs{#1}}% fait l'expansion de #1 et se d\'ebarrasse du signe
-}%
-\def\XINT@sqr #1%
-{\expandafter
- \XINT@mul@enter
- \romannumeral0%
- \XINT@RQ {}#1\R\R\R\R\R\R\R\R\Z
- \W\X\Y\Z #1\W\X\Y\Z
-}%
-\def\XINT@posprod #1%
+\def\XINT@mulr@enter #1\W\X\Y\Z #2#3#4#5%
{%
- \XINT@pprod@checkifempty #1\Z
-}%
-\def\XINT@pprod@checkifempty #1%
+ \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
+}%
+\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@relax #1\XINT@pprod@emptyproduct\relax
- \XINT@pprod@first #1%
+ \XINT@mul@Mr {#3#2#1}#5\Z\Z\Z\Z
}%
-\def\XINT@pprod@emptyproduct #1\Z { 1}%
-\def\XINT@pprod@first #1\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@pprod@getnext {#1}%
+ \XINT@mul@Mr {#2#1}#4\Z\Z\Z\Z
}%
-\def\XINT@pprod@getnext #1#2%
+\def\xint@mulr@entery
+ #1\xint@mulr@enterz
+ \W\XINT@mulr@start #2#3\W\X\Y\Z \Z
{%
- \XINT@pprod@checkiffinished #2\Z {#1}%
+ \XINT@mul@Mr {#1}#3\Z\Z\Z\Z
}%
-\def\XINT@pprod@checkiffinished #1%
-{%
- \xint@relax #1\XINT@pprod@end\relax
- \XINT@pprod@RQnew #1%
+\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
}%
-\def\XINT@pprod@RQnew #1\Z
+\def\XINT@mulr@main #1#2\W\X\Y\Z #3#4#5#6%
{%
- \expandafter\XINT@pprod@compute
- \expandafter
- {\romannumeral0\XINT@RQ {}#1\R\R\R\R\R\R\R\R\Z }%
+ \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
}%
-\def\XINT@pprod@compute #1#2%
-{%
- \expandafter
- \XINT@pprod@getnext
- \expandafter
- {\romannumeral0\XINT@mul@enter #1\W\X\Y\Z #2\W\X\Y\Z }%
+\def\XINT@mulr@compute #1#2#3\W\X\Y\Z
+{\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
+ }#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
+{\expandafter
+ \XINT@addp@A
+ \expandafter0\expandafter{\expandafter}%
+ \romannumeral0\XINT@mul@Mr {#3#2#1}#6\Z\Z\Z\Z
+ \W\X\Y\Z 000#4\W\X\Y\Z
}%
-\def\XINT@pprod@end\relax\XINT@pprod@RQnew #1\Z #2{ #2}%
-\def\xintProductExpr {\romannumeral0\xintproductexpr }%
-\def\xintPrd {\romannumeral0\xintprd }%
-\def\xintprd #1%
-{%
- \expandafter\expandafter\expandafter
- \xintproductexpr #1\relax
+\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
+ \expandafter0\expandafter{\expandafter}%
+ \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
+{\expandafter
+ \XINT@addp@A
+ \expandafter0\expandafter{\expandafter}%
+ \romannumeral0\XINT@mul@Mr {#1}#4\Z\Z\Z\Z
+ \W\X\Y\Z 0#2\W\X\Y\Z
}%
-\def\xintproductexpr #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\expandafter\expandafter
- \XINT@prod@checkifempty #1\Z
-}%
-\def\XINT@prod@checkifempty #1%
-{%
- \xint@relax #1\XINT@prod@emptyproduct\relax
- \XINT@prod@checkfirstsign #1%
-}%
-\def\XINT@prod@emptyproduct #1\Z { 1}%
-\def\XINT@prod@checkfirstsign #1%
-{%
- \xint@zero #1\XINT@prod@returnzero0%
- \xint@UDsignfork
- #1\dummy \XINT@prod@firstisneg
- -\dummy \XINT@prod@firstispos
- \xint@UDkrof
- #1%
-}%
-\def\XINT@prod@returnzero #1\relax { 0}%
-\def\XINT@prod@firstisneg #1#2\Z
-{%
- \XINT@prod@xpxpnext 0{#2}%
-}%
-\def\XINT@prod@firstispos #1\Z
-{%
- \XINT@prod@xpxpnext 1{#1}%
-}%
-\def\XINT@prod@xpxpnext #1#2#3%
-{%
+ \XINT@sqr
\expandafter\expandafter\expandafter
- \XINT@prod@checkiffinished #3\Z {#2}#1%
-}%
-\def\XINT@prod@checkiffinished #1%
-{%
- \xint@relax #1\XINT@prod@end\relax
- \XINT@prod@checksign #1%
-}%
-\def\XINT@prod@checksign #1%
-{%
- \xint@zero #1\XINT@prod@returnzero0%
- \xint@UDsignfork
- #1\dummy \XINT@prod@neg@RQnew
- -\dummy \XINT@prod@pos@RQnew
- \xint@UDkrof
- #1%
-}%
-\def\XINT@prod@pos@RQnew #1\Z
-{%
- \expandafter
- \XINT@prod@pos
- \expandafter
- {\romannumeral0\XINT@RQ {}#1\R\R\R\R\R\R\R\R\Z }%
+ {\xintiAbs{#1}}% fait l'expansion de #1 et se d\'ebarrasse du signe
}%
-\def\XINT@prod@pos #1#2#3%
-{%
- \expandafter
- \XINT@prod@xpxpnext
- \expandafter
- #3%
- \expandafter
- {\romannumeral0\XINT@mul@enter #1\W\X\Y\Z #2\W\X\Y\Z }%
-}%
-\def\XINT@prod@neg@RQnew #1#2\Z
-{%
- \expandafter
- \XINT@prod@neg
- \expandafter
- {\romannumeral0\XINT@RQ {}#2\R\R\R\R\R\R\R\R\Z }%
+\let\xintSqr\xintiSqr \let\xintsqr\xintisqr
+\def\XINT@sqr #1%
+{\expandafter
+ \XINT@mul@enter
+ \romannumeral0%
+ \XINT@RQ {}#1\R\R\R\R\R\R\R\R\Z
+ \W\X\Y\Z #1\W\X\Y\Z
}%
-\def\XINT@prod@neg #1#2#3%
+\def\xintiPrd {\romannumeral0\xintiprd }%
+\def\xintiprd #1{\xintiproductexpr #1\relax }%
+\let\xintPrd\xintiPrd
+\let\xintprd\xintiprd
+\def\xintiProductExpr {\romannumeral0\xintiproductexpr }%
+\def\xintiproductexpr
{%
- \expandafter
- \XINT@prod@xpxpnext
- \expandafter
- {\the\numexpr 1-#3\expandafter}%
- \expandafter
- {\romannumeral0\XINT@mul@enter #1\W\X\Y\Z #2\W\X\Y\Z }%
+ \expandafter\expandafter\expandafter\XINT@productexpr
}%
-\def\XINT@prod@end\relax\XINT@prod@checksign #1\Z #2#3%
+\let\xintProductExpr\xintiProductExpr
+\let\xintproductexpr\xintiproductexpr
+\def\XINT@productexpr {\XINT@prod@loop {1}}%
+\def\XINT@prod@loop #1#2%
{%
- \xint@prod@cleanupzeros #3#2%
+ \xint@relax #2\XINT@prod@finished\relax
+ \expandafter\XINT@prod@loop\expandafter
+ {\romannumeral0\xintimul {#2}{#1}}%
}%
-\def\xint@prod@cleanupzeros #1#2#3#4#5%
+\def\XINT@prod@finished #1#2#3#4#5%
{%
- \expandafter\space\the\numexpr (2*#1-1)*#2#3#4#5\relax
+ \XINT@prod@finished@ #5%
}%
+\def\XINT@prod@finished@ #1#2#3#4#5{ #5}%
\def\xintFac {\romannumeral0\xintfac }%
\def\xintfac #1%
{%
@@ -1852,7 +2033,7 @@
\def\XINT@Fac {\romannumeral0\XINT@fac@fork }%
\def\XINT@fac@fork #1%
{%
- \ifcase\xintSgn {#1}
+ \ifcase\xintiSgn {#1}
\xint@afterfi{\expandafter\space\expandafter 1\xint@gobble }%
\or
\expandafter\XINT@fac@checklength
@@ -1891,57 +2072,50 @@
}%
\def\XINT@fac@big@docomputation #1#2%
{%
- \expandafter
- \XINT@pprod@getnext
- \expandafter
+ \expandafter \XINT@fac@bigcompute@loop \expandafter
{\romannumeral0\XINT@fac@loop {9999}}#2\relax
}%
-\def\XINT@fac@loop #1{\XINT@fac@loop@main 1{#1}{}}%
-\def\XINT@fac@loop@main #1#2#3%
+\def\XINT@fac@bigcompute@loop #1#2%
{%
- \ifnum #1<#2
- \expandafter
- \XINT@fac@loop@main
- \expandafter
- {\the\numexpr #1+1\expandafter }%
- \else
- \expandafter\XINT@fac@docomputation
- \fi
- {#2}{#3{#1}}%
+ \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
+ \W\X\Y\Z #1\W\X\Y\Z }%
}%
-\def\XINT@fac@docomputation #1#2%
+\def\XINT@fac@bigcompute@end #1#2#3#4#5%
{%
- \XINT@fprod@getnext {1000}#2\relax
+ \XINT@fac@bigcompute@end@ #5%
}%
-\def\XINT@fprod@getnext #1#2%
-{%
- \XINT@fprod@checkiffinished #2\Z {#1}%
-}%
-\def\XINT@fprod@checkiffinished #1%
+\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%
{%
- \xint@relax #1\XINT@fprod@end\relax
- \XINT@fprod@compute #1%
+ \ifnum #3>#1
+ \else
+ \expandafter\XINT@fac@loop@exit
+ \fi
+ \expandafter\XINT@fac@loop@main\expandafter
+ {\the\numexpr #1+1\expandafter }\expandafter
+ {\romannumeral0\XINT@mul@Mr {#1}#2\Z\Z\Z\Z }%
+ {#3}%
}%
-\def\XINT@fprod@compute #1\Z #2%
+\def\XINT@fac@loop@exit #1#2#3#4#5#6#7%
{%
- \expandafter
- \XINT@fprod@getnext
- \expandafter
- {\romannumeral0\XINT@mul@Mr {#1}#2\Z\Z\Z\Z }%
+ \XINT@fac@loop@exit@ #6%
}%
-\def\XINT@fprod@end\relax\XINT@fprod@compute #1\Z #2%
+\def\XINT@fac@loop@exit@ #1#2#3%
{%
- \expandafter
- \xint@cleanupzeros@andstop
- \romannumeral0\XINT@rev {#2}%
+ \XINT@mul@M
}%
-\def\xintPow {\romannumeral0\xintpow }%
-\def\xintpow #1%
+\def\xintiPow {\romannumeral0\xintipow }%
+\def\xintipow #1%
{%
\expandafter\expandafter\expandafter
\xint@pow
#1\Z%
}%
+\let\xintPow\xintiPow \let\xintpow\xintipow
\def\xint@pow #1#2\Z
{%
\xint@UDsignfork
@@ -2012,7 +2186,7 @@
\def\XINT@pow@BisZero #1#2{ 1}%
\def\XINT@pow@checkBlength #1#2%
{%
- \ifnum\xintLen{#1} >9
+ \ifnum\xintiLen{#1} >9
\expandafter\XINT@pow@BtooBig
\else
\expandafter\XINT@pow@loop
@@ -2033,7 +2207,7 @@
\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\xintsqr{#2}}}%
+ \expandafter{\romannumeral0\xintisqr{#2}}}%
\fi
{{#2}}%
}%
@@ -2076,10 +2250,8 @@
}%
\def\XINT@pow@pprod@compute #1\Z #2%
{%
- \expandafter
- \XINT@pow@pprod@getnext
- \expandafter
- {\romannumeral0\XINT@pow@mul@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%
{%
@@ -2087,229 +2259,6 @@
\xint@cleanupzeros@andstop
\romannumeral0\XINT@rev {#2}%
}%
-\def\XINT@pow@mul@enter #1\W\X\Y\Z #2#3#4#5%
-{%
- \xint@w
- #5\xint@pow@mul@enterw
- #4\xint@pow@mul@enterx
- #3\xint@pow@mul@entery
- #2\xint@pow@mul@enterz
- \W\XINT@pow@mul@start {#2#3#4#5}#1\W\X\Y\Z
-}%
-\def\xint@pow@mul@enterw
- #1\xint@pow@mul@enterx
- #2\xint@pow@mul@entery
- #3\xint@pow@mul@enterz
- \W\XINT@pow@mul@start #4#5\W\X\Y\Z \X\Y\Z
-{%
- \XINT@mul@Mr {#3#2#1}#5\Z\Z\Z\Z
-}%
-\def\xint@pow@mul@enterx
- #1\xint@pow@mul@entery
- #2\xint@pow@mul@enterz
- \W\XINT@pow@mul@start #3#4\W\X\Y\Z \Y\Z
-{%
- \XINT@mul@Mr {#2#1}#4\Z\Z\Z\Z
-}%
-\def\xint@pow@mul@entery
- #1\xint@pow@mul@enterz
- \W\XINT@pow@mul@start #2#3\W\X\Y\Z \Z
-{%
- \XINT@mul@Mr {#1}#3\Z\Z\Z\Z
-}%
-\def\XINT@pow@mul@start #1#2\W\X\Y\Z
-{\expandafter
- \XINT@pow@mul@main \expandafter
- {\romannumeral0%
- \XINT@mul@Mr {#1}#2\Z\Z\Z\Z
- }#2\W\X\Y\Z
-}%
-\def\XINT@pow@mul@main #1#2\W\X\Y\Z #3#4#5#6%
-{%
- \xint@w
- #6\xint@pow@mul@mainw
- #5\xint@pow@mul@mainx
- #4\xint@pow@mul@mainy
- #3\xint@pow@mul@mainz
- \W\XINT@pow@mul@compute {#1}{#3#4#5#6}#2\W\X\Y\Z
-}%
-\def\XINT@pow@mul@compute #1#2#3\W\X\Y\Z
-{\expandafter
- \XINT@pow@mul@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
- }#3\W\X\Y\Z
-}%
-\def\xint@pow@mul@mainw
- #1\xint@pow@mul@mainx
- #2\xint@pow@mul@mainy
- #3\xint@pow@mul@mainz
- \W\XINT@pow@mul@compute #4#5#6\W\X\Y\Z \X\Y\Z
-{%
- \expandafter
- \XINT@pow@add@A \expandafter0\expandafter{\expandafter}%
- \romannumeral0%
- \XINT@mul@Mr {#3#2#1}#6\Z\Z\Z\Z
- \W\X\Y\Z 000#4\W\X\Y\Z
-}%
-\def\xint@pow@mul@mainx
- #1\xint@pow@mul@mainy
- #2\xint@pow@mul@mainz
- \W\XINT@pow@mul@compute #3#4#5\W\X\Y\Z \Y\Z
-{%
- \expandafter
- \XINT@pow@add@A \expandafter0\expandafter{\expandafter}%
- \romannumeral0%
- \XINT@mul@Mr {#2#1}#5\Z\Z\Z\Z
- \W\X\Y\Z 00#3\W\X\Y\Z
-}%
-\def\xint@pow@mul@mainy
- #1\xint@pow@mul@mainz
- \W\XINT@pow@mul@compute #2#3#4\W\X\Y\Z \Z
-{%
- \expandafter
- \XINT@pow@add@A \expandafter0\expandafter{\expandafter}%
- \romannumeral0%
- \XINT@mul@Mr {#1}#4\Z\Z\Z\Z
- \W\X\Y\Z 0#2\W\X\Y\Z
-}%
-\def\xint@pow@mul@mainz\W\XINT@pow@mul@compute #1#2#3\W\X\Y\Z
-{ #1}%
-\def\XINT@pow@add@A #1#2#3#4#5#6%
-{%
- \xint@w
- #3\xint@pow@add@az
- \W\XINT@pow@add@AB #1{#3#4#5#6}{#2}%
-}%
-\def\xint@pow@add@az\W\XINT@pow@add@AB #1#2%
-{%
- \XINT@pow@add@AC@checkcarry #1%
-}%
-\def\XINT@pow@add@AC@checkcarry #1%
-{%
- \xint@zero #1\xint@pow@add@AC@nocarry 0\XINT@pow@add@C
-}%
-\def\xint@pow@add@AC@nocarry 0\XINT@pow@add@C
-{%
- \XINT@pow@add@F
-}%
-\def\XINT@pow@add@AB #1#2#3#4\W\X\Y\Z #5#6#7#8%
-{%
- \XINT@pow@add@ABE #1#2{#8#7#6#5}{#3}#4\W\X\Y\Z
-}%
-\def\XINT@pow@add@ABE #1#2#3#4#5#6%
-{\expandafter
- \XINT@pow@add@ABEA\the\numexpr #1+10#5#4#3#2+#6\relax
-}%
-\def\XINT@pow@add@ABEA #1#2#3#4#5#6#7%
-{%
- \XINT@pow@add@A #2{#7#6#5#4#3}%<-- attention on met donc \`a droite
-}%
-\def\XINT@pow@add@C #1#2#3#4#5%
-{%
- \xint@w
- #5\xint@pow@add@cw
- #4\xint@pow@add@cx
- #3\xint@pow@add@cy
- #2\xint@pow@add@cz
- \W\XINT@pow@add@CD {#5#4#3#2}{#1}%
-}%
-\def\XINT@pow@add@CD #1%
-{\expandafter
- \XINT@pow@add@CC\the\numexpr 1+10#1\relax
-}%
-\def\XINT@pow@add@CC #1#2#3#4#5#6#7%
-{%
- \XINT@pow@add@AC@checkcarry #2{#7#6#5#4#3}%
-}%
-\def\xint@pow@add@cw
- #1\xint@pow@add@cx
- #2\xint@pow@add@cy
- #3\xint@pow@add@cz
- \W\XINT@pow@add@CD
-{\expandafter
- \XINT@pow@add@CDw\the\numexpr 1+10#1#2#3\relax
-}%
-\def\XINT@pow@add@CDw #1#2#3#4#5#6%
-{%
- \xint@quatrezeros #2#3#4#5\XINT@pow@add@endDw@zeros
- 0000\XINT@pow@add@endDw #2#3#4#5%
-}%
-\def\XINT@pow@add@endDw@zeros 0000\XINT@pow@add@endDw 0000#1\X\Y\Z{ #1}%
-\def\XINT@pow@add@endDw #1#2#3#4#5\X\Y\Z{ #5#4#3#2#1}%
-\def\xint@pow@add@cx
- #1\xint@pow@add@cy
- #2\xint@pow@add@cz
- \W\XINT@pow@add@CD
-{\expandafter
- \XINT@pow@add@CDx\the\numexpr 1+100#1#2\relax
-}%
-\def\XINT@pow@add@CDx #1#2#3#4#5#6%
-{%
- \xint@quatrezeros #2#3#4#5\XINT@pow@add@endDx@zeros
- 0000\XINT@pow@add@endDx #2#3#4#5%
-}%
-\def\XINT@pow@add@endDx@zeros 0000\XINT@pow@add@endDx 0000#1\Y\Z{ #1}%
-\def\XINT@pow@add@endDx #1#2#3#4#5\Y\Z{ #5#4#3#2#1}%
-\def\xint@pow@add@cy
- #1\xint@pow@add@cz
- \W\XINT@pow@add@CD
-{\expandafter
- \XINT@pow@add@CDy\the\numexpr 1+1000#1\relax
-}%
-\def\XINT@pow@add@CDy #1#2#3#4#5#6%
-{%
- \xint@quatrezeros #2#3#4#5\XINT@pow@add@endDy@zeros
- 0000\XINT@pow@add@endDy #2#3#4#5%
-}%
-\def\XINT@pow@add@endDy@zeros 0000\XINT@pow@add@endDy 0000#1\Z{ #1}%
-\def\XINT@pow@add@endDy #1#2#3#4#5\Z{ #5#4#3#2#1}%
-\def\xint@pow@add@cz\W\XINT@pow@add@CD #1#2{ #21000}%
-\def\XINT@pow@add@F #1#2#3#4#5%
-{%
- \xint@w
- #5\xint@pow@add@Gw
- #4\xint@pow@add@Gx
- #3\xint@pow@add@Gy
- #2\xint@pow@add@Gz
- \W\XINT@pow@add@G {#2#3#4#5}{#1}%
-}%
-\def\XINT@pow@add@G #1#2%
-{%
- \XINT@pow@add@F {#2#1}%
-}%
-\def\xint@pow@add@Gw
- #1\xint@pow@add@Gx
- #2\xint@pow@add@Gy
- #3\xint@pow@add@Gz
- \W\XINT@pow@add@G #4%
-{%
- \xint@quatrezeros #3#2#10\XINT@pow@add@endGw@zeros
- 0000\XINT@pow@add@endGw #3#2#10%
-}%
-\def\XINT@pow@add@endGw@zeros 0000\XINT@pow@add@endGw 0000#1\X\Y\Z{ #1}%
-\def\XINT@pow@add@endGw #1#2#3#4#5\X\Y\Z{ #5#1#2#3#4}%
-\def\xint@pow@add@Gx
- #1\xint@pow@add@Gy
- #2\xint@pow@add@Gz
- \W\XINT@pow@add@G #3%
-{%
- \xint@quatrezeros #2#100\XINT@pow@add@endGx@zeros
- 0000\XINT@pow@add@endGx #2#100%
-}%
-\def\XINT@pow@add@endGx@zeros 0000\XINT@pow@add@endGx 0000#1\Y\Z{ #1}%
-\def\XINT@pow@add@endGx #1#2#3#4#5\Y\Z{ #5#1#2#3#4}%
-\def\xint@pow@add@Gy
- #1\xint@pow@add@Gz
- \W\XINT@pow@add@G #2%
-{%
- \xint@quatrezeros #1000\XINT@pow@add@endGy@zeros
- 0000\XINT@pow@add@endGy #1000%
-}%
-\def\XINT@pow@add@endGy@zeros 0000\XINT@pow@add@endGy 0000#1\Z{ #1}%
-\def\XINT@pow@add@endGy #1#2#3#4#5\Z{ #5#1#2#3#4}%
-\def\xint@pow@add@Gz\W\XINT@pow@add@G #1#2{ #2}%
\def\xintQuo {\romannumeral0\xintquo }%
\def\xintRem {\romannumeral0\xintrem }%
\def\xintquo {\expandafter
@@ -2370,7 +2319,7 @@
}%
\def\XINT@div@AisNegative@post #1#2%
{%
- \ifcase\xintSgn {#2}
+ \ifcase\xintiSgn {#2}
\expandafter \XINT@div@AisNegative@zerorem
\or
\expandafter \XINT@div@AisNegative@posrem
@@ -2384,33 +2333,45 @@
}%
\def\XINT@div@AisNegative@posrem #1%
{%
- \expandafter
- \XINT@div@AisNegative@posrem@b
- \expandafter
- {\romannumeral0\xintopp {\XINT@Add{#1}{1}}}%
+ \expandafter \XINT@div@AisNegative@posrem@b \expandafter
+ {\romannumeral0\xintiopp {\XINT@Add{#1}{1}}}%
}%
\def\XINT@div@AisNegative@posrem@b #1#2#3%
{%
- \expandafter
- \xint@exchangetwo@keepbraces@andstop
- \expandafter
+ \expandafter \xint@exchangetwo@keepbraces@andstop \expandafter
{\romannumeral0\XINT@sub {#3}{#2}}{#1}%
}%
\def\XINT@div@prepare #1%
{%
- \expandafter
- \XINT@div@prepareB@a
- \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%
+{%
+ \ifnum #1=1
+ \expandafter\XINT@div@prepareB@ab
+ \else
+ \expandafter\XINT@div@prepareB@a
+ \fi
+ {#1}%
+}%
+\def\XINT@div@prepareB@ab #1#2%
+{%
+ \ifnum #2=1
+ \expandafter\XINT@div@prepareB@BisOne
+ \else
+ \xint@afterfi{\XINT@div@prepareB@e {000}{3}{4}{#2}}%
+ \fi
}%
+\def\XINT@div@prepareB@BisOne #1{ {#1}{0}}%
\def\XINT@div@prepareB@a #1%
{%
- \expandafter\XINT@div@prepareB@b\expandafter
- {\the\numexpr 4*((#1+1)/4)\relax}{#1}%
+ \expandafter \XINT@div@prepareB@b \expandafter
+ {\the\numexpr 4*((#1+1)/4)\relax}{#1}%
}%
\def\XINT@div@prepareB@b #1#2%
{%
- \expandafter\XINT@div@prepareB@c \expandafter
+ \expandafter \XINT@div@prepareB@c \expandafter
{\the\numexpr #1-#2\relax}{#1}%
}%
\def\XINT@div@prepareB@c #1%
@@ -2432,10 +2393,8 @@
}%
\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%
{%
@@ -2443,10 +2402,8 @@
}%
\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%
{%
@@ -2490,9 +2447,7 @@
}%
\def\XINT@div@finished@a #1#2#3%
{%
- \expandafter
- \XINT@div@finished@b
- \expandafter
+ \expandafter \XINT@div@finished@b \expandafter
{\romannumeral0\XINT@cuz {#1}}%
}%
\def\XINT@div@finished@b #1#2#3#4#5%
@@ -2508,9 +2463,7 @@
}%
\def\XINT@div@finished@c #1#2%
{%
- \expandafter
- \space
- \expandafter
+ \expandafter \space \expandafter
{\romannumeral0\expandafter\xint@cleanupzeros@andstop
\romannumeral0\XINT@rev {#2}}{#1}%
}%
@@ -2523,20 +2476,15 @@
\xint@quatrezeros #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 }%
\def\XINT@div@final@c #1#2#3#4%
{%
- \expandafter
- \XINT@div@final@d
- \expandafter
+ \expandafter \XINT@div@final@d \expandafter
{\the\numexpr #1/#4\relax}{#2}%
}%
\def\XINT@div@final@d #1#2#3#4#5% q,A,Q,L,B puis c
{%
- \expandafter
- \XINT@div@final@da
- \expandafter
+ \expandafter \XINT@div@final@da \expandafter
{\romannumeral0\XINT@mul@M {#1}#5\Z\Z\Z\Z }%
{\romannumeral0\xint@cleanupzeros@andstop #2}%
{#1}{#3}{#5}%
@@ -2556,8 +2504,8 @@
\def\XINT@div@final@e #1#2#3#4#5% A,qB,q,Q,B,puis c
{%
\expandafter\XINT@div@final@f
- \expandafter{\romannumeral0\xintsub {#1}{#2}}%
- {\romannumeral0\xintadd {\XINT@Rev@andcleanupzeros{#4}}{#3}}%
+ \expandafter{\romannumeral0\xintisub {#1}{#2}}%
+ {\romannumeral0\xintiadd {\XINT@Rev@andcleanupzeros{#4}}{#3}}%
}%
\def\XINT@div@final@dc #1#2#3% A sans leading zeros,trash,q,Q,B,c
{%
@@ -2567,9 +2515,9 @@
\def\XINT@div@final@dd #1#2#3#4% q,A,Q,B puis c
{%
\expandafter\XINT@div@final@f
- \expandafter{\romannumeral0\xintsub
+ \expandafter{\romannumeral0\xintisub
{#2}{\romannumeral0\XINT@mul@M {#1}#4\Z\Z\Z\Z }}%
- {\romannumeral0\xintadd {\XINT@Rev@andcleanupzeros{#3}}{#1}}%
+ {\romannumeral0\xintiadd {\XINT@Rev@andcleanupzeros{#3}}{#1}}%
}%
\def\XINT@div@final@f #1#2#3% R,Q à développer,c
{%
@@ -2588,17 +2536,15 @@
}%
\def\XINT@div@body@a #1%
{%
- \XINT@div@body@b #1\Z
+ \XINT@div@body@b #1\Z {#1}%
}%
\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#9}%
- {#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%
{%
- \XINT@div@body@d {#3}{}#1\Z {#2}{#3}%
+ \XINT@div@body@d {#3}{}#2\Z {#1}{#3}%
}%
\def\XINT@div@body@d #1#2#3#4#5#6%
{%
@@ -2619,19 +2565,40 @@
}%
\def\XINT@div@body@f #1#2#3#4#5#6#7#8%
{%
- \expandafter\XINT@div@body@g
- \expandafter
- {\the\numexpr (#1+(#5+1)/2)/(#5+1)-1\relax }%
- {#2}{#8}{#4}{#5}{#3}{#6}{#7}{#8}%
+ \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@g #1#2#3%
+\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
+ {#3#4#5#6}%
+}%
+\def\XINT@div@body@gk #1#2#3%
{%
\expandafter
\XINT@div@body@h
\romannumeral0\XINT@div@sub@xpxp
- {\romannumeral0\XINT@pow@mul@enter #3\W\X\Y\Z #1\W\X\Y\Z }%
- {#2}\Z
- {#3}{#1}%
+ {\romannumeral0\XINT@mul@Mr {#1}#2\Z\Z\Z\Z }{#3}\Z {#1}%
+}%
+\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 }%
+ {#1#2}%
+}%
+\def\XINT@div@body@gggk #1#2#3#4%
+{%
+ \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
{%
@@ -2642,6 +2609,10 @@
\fi
{#1#2#3#4#5#6#7#8#9}%
}%
+\def\XINT@div@body@k #1#2#3%
+{%
+ \XINT@div@body@l {#1}{#2}%
+}%
\def\XINT@div@body@i #1#2#3#4#5#6%
{%
\expandafter\XINT@div@body@j
@@ -2650,16 +2621,10 @@
}%
\def\XINT@div@body@j #1#2#3#4%
{%
- \expandafter
- \XINT@div@body@l
- \expandafter{\romannumeral0\XINT@div@sub@xpxp
- {\romannumeral0\XINT@pow@mul@enter #3\W\X\Y\Z #1\W\X\Y\Z }%
- {\XINT@Rev{#2}}}%
- {#4+#1}%
-}%
-\def\XINT@div@body@k #1#2%
-{%
- \XINT@div@body@l {#1}%
+ \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%
{%
@@ -2679,7 +2644,7 @@
\def\XINT@div@body@n #1#2%
{%
\expandafter\XINT@div@body@o\expandafter
- {\romannumeral0\XINT@sum@A 0{}#1\W\X\Y\Z #2\W\X\Y\Z }%
+ {\romannumeral0\XINT@addr@A 0{}#1\W\X\Y\Z #2\W\X\Y\Z }%
}%
\def\XINT@div@body@o #1#2#3#4%
{%
@@ -2701,14 +2666,12 @@
}%
\def\XINT@div@body@repeatp #1#2#3#4#5#6#7%
{%
- \expandafter
- \XINT@div@body@p
- \expandafter
+ \expandafter \XINT@div@body@p \expandafter
{\the\numexpr #1-4\relax}{#2}{0000#3}%
}%
\def\XINT@div@body@q #1#2#3#4\Z #5#6%
{%
- \XINT@div@body@a {#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 %
{%
@@ -2720,9 +2683,7 @@
}%
\def\XINT@div@sub@xpxp #1%
{%
- \expandafter
- \XINT@div@sub@xpxp@
- \expandafter
+ \expandafter \XINT@div@sub@xpxp@ \expandafter
{#1}%
}%
\def\XINT@div@sub@xpxp@ #1#2%
@@ -2842,6 +2803,24 @@
{%
\expandafter\space\expandafter #1\xint@z
}%
+\def\xintMON {\romannumeral0\xintmon }%
+\def\xintmon #1%
+{%
+ \ifodd\xintLDg {#1}
+ \xint@afterfi{ -1}%
+ \else
+ \xint@afterfi{ 1}%
+ \fi
+}%
+\def\xintMMON {\romannumeral0\xintmmon }%
+\def\xintmmon #1%
+{%
+ \ifodd\xintLDg {#1}
+ \xint@afterfi{ 1}%
+ \else
+ \xint@afterfi{ -1}%
+ \fi
+}%
\def\xintOdd {\romannumeral0\xintodd }%
\def\xintodd #1%
{%
@@ -2928,14 +2907,13 @@
\def\xint@dsh #1#2%
{%
\expandafter\expandafter\expandafter
- \XINT@dsh@checksignx
- #2\Z {#1}%
+ \XINT@dsh@checksignx #2\Z {#1}%
}%
\def\XINT@dsh@checksignx #1%
{%
\xint@UDzerominusfork
#1-\dummy \XINT@dsh@xiszero
- 0#1\dummy \XINT@dsx@xisNeg
+ 0#1\dummy \XINT@dsx@xisNeg@checkA % on passe direct dans DSx
0-\dummy {\XINT@dsh@xisPos #1}%
\xint@UDkrof
}%
@@ -2944,7 +2922,7 @@
{%
\expandafter
\xint@firstoftwo@andstop
- \romannumeral0\XINT@dsx@checksignA #2\Z {#1}%
+ \romannumeral0\XINT@dsx@checksignA #2\Z {#1}% via DSx
}%
\def\xintDSx {\romannumeral0\xintdsx }%
\def\xintdsx #1#2%
@@ -2957,8 +2935,7 @@
\def\xint@dsx #1#2%
{%
\expandafter\expandafter\expandafter
- \XINT@dsx@checksignx
- #2\Z {#1}%
+ \XINT@dsx@checksignx #2\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}}%
@@ -2966,40 +2943,50 @@
{%
\xint@UDzerominusfork
#1-\dummy \XINT@dsx@xisZero
- 0#1\dummy \XINT@dsx@xisNeg
+ 0#1\dummy \XINT@dsx@xisNeg@checkA
0-\dummy {\XINT@dsx@xisPos #1}%
\xint@UDkrof
}%
-\def\XINT@dsx@xisZero #1\Z #2{ {#2}{0}}%
-\def\XINT@dsx@xisNeg #1\Z
+\def\XINT@dsx@xisZero #1\Z #2{ {#2}{0}}% attention comme x > 0
+\def\XINT@dsx@xisNeg@checkA #1\Z #2%
{%
- \ifnum\XINT@Len {#1} > 9
+ \XINT@dsx@xisNeg@checkA@ #2\Z {#1}%
+}%
+\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}%
+}%
+\def\XINT@dsx@xisNeg@Azero #1#2#3#4#5#6#7#8{ 0}%
+\def\XINT@dsx@xisNeg@checkx #1%
+{%
+ \ifnum #1> 9
\xint@afterfi {\xintError:TooBigDecimalShift
\XINT@dsx@toobigx }%
\else
\expandafter \XINT@dsx@zeroloop
\fi
- {#1}\Z
}%
-\def\XINT@dsx@toobigx #1\Z #2{ #2}%
+\def\XINT@dsx@toobigx #1#2#3{ 0}%
\def\XINT@dsx@zeroloop #1%
{%
\ifcase #1
- \expandafter \XINT@dsx@exit
+ \XINT@dsx@exit
\or
- \expandafter \XINT@dsx@exiti
+ \XINT@dsx@exiti
\or
- \expandafter \XINT@dsx@exitii
+ \XINT@dsx@exitii
\or
- \expandafter \XINT@dsx@exitiii
+ \XINT@dsx@exitiii
\or
- \expandafter \XINT@dsx@exitiv
+ \XINT@dsx@exitiv
\or
- \expandafter \XINT@dsx@exitv
+ \XINT@dsx@exitv
\or
- \expandafter \XINT@dsx@exitvi
+ \XINT@dsx@exitvi
\or
- \expandafter \XINT@dsx@exitvii
+ \XINT@dsx@exitvii
\else
\xint@afterfi
{\expandafter
@@ -3008,22 +2995,14 @@
}%
\fi
}%
-\def\XINT@dsx@exit #1\Z
- {\XINT@dsx@addzeros {#1}}%
-\def\XINT@dsx@exiti #1\Z
- {\XINT@dsx@addzeros {0#1}}%
-\def\XINT@dsx@exitii #1\Z
- {\XINT@dsx@addzeros {00#1}}%
-\def\XINT@dsx@exitiii #1\Z
- {\XINT@dsx@addzeros {000#1}}%
-\def\XINT@dsx@exitiv #1\Z
- {\XINT@dsx@addzeros {0000#1}}%
-\def\XINT@dsx@exitv #1\Z
- {\XINT@dsx@addzeros {00000#1}}%
-\def\XINT@dsx@exitvi #1\Z
- {\XINT@dsx@addzeros {000000#1}}%
-\def\XINT@dsx@exitvii #1\Z
- {\XINT@dsx@addzeros {0000000#1}}%
+\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@xisPos #1\Z #2%
{%
@@ -3100,10 +3079,8 @@
\def\xintDecSplit {\romannumeral0\xintdecsplit }%
\def\xintdecsplit #1#2%
{%
- \expandafter
- \xint@split
- \expandafter
- {\romannumeral0\xintabs {#2}}{#1}% fait expansion de A
+ \expandafter \xint@split \expandafter
+ {\romannumeral0\xintiabs {#2}}{#1}% fait expansion de A
}%
\def\xint@split #1#2%
{%
@@ -3146,32 +3123,31 @@
\def\XINT@split@fromleft@loop #1%
{%
\ifcase #1
- \expandafter\XINT@split@fromleft@endsplit
+ \XINT@split@fromleft@endsplit
\or
- \expandafter\XINT@split@fromleft@one@andend
+ \XINT@split@fromleft@one@andend
\or
- \expandafter\XINT@split@fromleft@two@andend
+ \XINT@split@fromleft@two@andend
\or
- \expandafter\XINT@split@fromleft@three@andend
+ \XINT@split@fromleft@three@andend
\or
- \expandafter\XINT@split@fromleft@four@andend
+ \XINT@split@fromleft@four@andend
\or
- \expandafter\XINT@split@fromleft@five@andend
+ \XINT@split@fromleft@five@andend
\or
- \expandafter\XINT@split@fromleft@six@andend
+ \XINT@split@fromleft@six@andend
\or
- \expandafter\XINT@split@fromleft@seven@andend
+ \XINT@split@fromleft@seven@andend
\else
\expandafter \XINT@split@fromleft@loop@perhaps
\expandafter
- {\the\numexpr
- #1-8\expandafter\expandafter\expandafter }%
+ {\the\numexpr #1-8\expandafter\expandafter\expandafter }%
\expandafter
\XINT@split@fromleft@eight
\fi
}%
-\def\XINT@split@fromleft@endsplit #1#2\W #3\Z
- { {#1}{#2}}%
+\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}%
@@ -3189,26 +3165,26 @@
{%
\space {#1}{}%
}%
-\def\XINT@split@fromleft@one@andend
- {\expandafter\XINT@split@fromleft@checkiftoofar\XINT@split@fromleft@one }%
+\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
- {\expandafter\XINT@split@fromleft@checkiftoofar\XINT@split@fromleft@two }%
+\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
- {\expandafter\XINT@split@fromleft@checkiftoofar\XINT@split@fromleft@three }%
+\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
- {\expandafter\XINT@split@fromleft@checkiftoofar\XINT@split@fromleft@four }%
+\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
- {\expandafter\XINT@split@fromleft@checkiftoofar\XINT@split@fromleft@five }%
+\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
- {\expandafter\XINT@split@fromleft@checkiftoofar\XINT@split@fromleft@six }%
+\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
- {\expandafter\XINT@split@fromleft@checkiftoofar\XINT@split@fromleft@seven }%
+\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@checkiftoofar #1#2#3\W #4\Z
{%
@@ -3225,9 +3201,7 @@
}%
\def\XINT@split@fromright #1\Z #2%
{%
- \expandafter
- \XINT@split@fromright@a
- \expandafter
+ \expandafter \XINT@split@fromright@a \expandafter
{\romannumeral0\XINT@rev {#2}}{#1}{#2}%
}%
\def\XINT@split@fromright@a #1#2%
@@ -3239,19 +3213,19 @@
\ifcase #1
\expandafter\XINT@split@fromright@endsplit
\or
- \expandafter\XINT@split@fromright@one@andend
+ \XINT@split@fromright@one@andend
\or
- \expandafter\XINT@split@fromright@two@andend
+ \XINT@split@fromright@two@andend
\or
- \expandafter\XINT@split@fromright@three@andend
+ \XINT@split@fromright@three@andend
\or
- \expandafter\XINT@split@fromright@four@andend
+ \XINT@split@fromright@four@andend
\or
- \expandafter\XINT@split@fromright@five@andend
+ \XINT@split@fromright@five@andend
\or
- \expandafter\XINT@split@fromright@six@andend
+ \XINT@split@fromright@six@andend
\or
- \expandafter\XINT@split@fromright@seven@andend
+ \XINT@split@fromright@seven@andend
\else
\expandafter \XINT@split@fromright@loop@perhaps
\expandafter
@@ -3263,9 +3237,7 @@
}%
\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@eight #1#2#3#4#5#6#7#8#9%
{%
@@ -3276,28 +3248,27 @@
\xint@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@one@andend
- {\expandafter\XINT@split@fromright@checkiftoofar\XINT@split@fromright@one }%
+\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
- {\expandafter\XINT@split@fromright@checkiftoofar\XINT@split@fromright@two }%
+\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
- {\expandafter\XINT@split@fromright@checkiftoofar\XINT@split@fromright@three }%
+\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
- {\expandafter\XINT@split@fromright@checkiftoofar\XINT@split@fromright@four }%
+\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
- {\expandafter\XINT@split@fromright@checkiftoofar\XINT@split@fromright@five }%
+\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
- {\expandafter\XINT@split@fromright@checkiftoofar\XINT@split@fromright@six }%
+\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
- {\expandafter\XINT@split@fromright@checkiftoofar\XINT@split@fromright@seven }%
+\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@checkiftoofar #1%
{%
diff --git a/Master/texmf-dist/tex/generic/xint/xintfrac.sty b/Master/texmf-dist/tex/generic/xint/xintfrac.sty
new file mode 100644
index 00000000000..895d408430b
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/xint/xintfrac.sty
@@ -0,0 +1,1107 @@
+%%
+%% This is file `xintfrac.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% xint.dtx (with options: `xintfrac')
+%%
+%% IMPORTANT NOTICE:
+%%
+%% For the copyright see the source file.
+%%
+%% Any modified versions of this file must be renamed
+%% with new filenames distinct from xintfrac.sty.
+%%
+%% For distribution of the original source see the terms
+%% for copying and modification in the file xint.dtx.
+%%
+%% This generated file may be distributed as long as the
+%% original source files, as listed above, are part of the
+%% same distribution. (The sources need not necessarily be
+%% in the same archive or directory.)
+%%
+%%----------------------------------------------------------------
+%% The xint bundle (version 1.03 of April 14, 2013)
+%% xintfrac: Expandable operations on fractions
+%% Copyright (C) 2013 by Jean-Francois Burnol
+%%----------------------------------------------------------------
+%%
+\begingroup\catcode61\catcode48\catcode32=10\relax%
+ \catcode13=5 % ^^M
+ \endlinechar=13 %
+ \catcode123=1 % {
+ \catcode125=2 % }
+ \catcode64=11 % @
+ \catcode35=6 % #
+ \catcode44=12 % ,
+ \catcode45=12 % -
+ \catcode46=12 % .
+ \catcode58=12 % :
+ \def\space { }%
+ \let\z\endgroup
+ \expandafter\let\expandafter\x\csname ver@xintfrac.sty\endcsname
+ \expandafter\let\expandafter\w\csname ver@xint.sty\endcsname
+ \expandafter
+ \ifx\csname PackageInfo\endcsname\relax
+ \def\y#1#2{\immediate\write-1{Package #1 Info: #2.}}%
+ \else
+ \def\y#1#2{\PackageInfo{#1}{#2}}%
+ \fi
+ \expandafter
+ \ifx\csname numexpr\endcsname\relax
+ \y{xintfrac}{\numexpr not available, aborting input}%
+ \aftergroup\endinput
+ \else
+ \ifx\x\relax % plain-TeX, first loading of xintfrac.sty
+ \ifx\w\relax % but xint.sty not yet loaded.
+ \y{xintfrac}{Package xint is required}%
+ \y{xintfrac}{Will try \string\input\space xint.sty}%
+ \def\z{\endgroup\input xint.sty\relax}%
+ \fi
+ \else
+ \def\empty {}%
+ \ifx\x\empty % LaTeX, first loading,
+ % variable is initialized, but \ProvidesPackage not yet seen
+ \ifx\w\relax % xint.sty not yet loaded.
+ \y{xintfrac}{Package xint is required}%
+ \y{xintfrac}{Will try \string\RequirePackage{xint}}%
+ \def\z{\endgroup\RequirePackage{xint}}%
+ \fi
+ \else
+ \y{xintfrac}{I was already loaded, aborting input}%
+ \aftergroup\endinput
+ \fi
+ \fi
+ \fi
+\z%
+\begingroup\catcode61\catcode48\catcode32=10\relax%
+ \catcode13=5 % ^^M
+ \endlinechar=13 %
+ \catcode123=1 % {
+ \catcode125=2 % }
+ \catcode64=11 % @
+ \catcode35=6 % #
+ \catcode44=12 % ,
+ \catcode45=12 % -
+ \catcode46=12 % .
+ \catcode58=12 % :
+ \expandafter
+ \ifx\csname PackageInfo\endcsname\relax
+ \def\y#1#2{\immediate\write-1{Package #1 Info: #2.}}%
+ \else
+ \def\y#1#2{\PackageInfo{#1}{#2}}%
+ \fi
+ \def\empty {}%
+ \expandafter\let\expandafter\w\csname ver@xint.sty\endcsname
+ \ifx\w\relax % Plain TeX, user gave a file name at the prompt
+ \y{xintfrac}{Loading of package xint failed, aborting input}%
+ \aftergroup\endinput
+ \fi
+ \ifx\w\empty % LaTeX, user gave a file name at the prompt
+ \y{xintfrac}{Loading of package xint failed, aborting input}%
+ \aftergroup\endinput
+ \fi
+\endgroup%
+\begingroup\catcode61\catcode48\catcode32=10\relax%
+ \catcode13=5 % ^^M
+ \endlinechar=13 %
+ \catcode123=1 % {
+ \catcode125=2 % }
+ \catcode64=11 % @
+ \def\x
+ {%
+ \endgroup
+ \edef\XINT@frac@restorecatcodes@endinput
+ {%
+ \catcode94=\the\catcode94 % ^
+ \catcode93=\the\catcode93 % ]
+ \catcode91=\the\catcode91 % [
+ \catcode47=\the\catcode47 % /
+ \catcode41=\the\catcode41 % )
+ \catcode40=\the\catcode40 % (
+ \catcode42=\the\catcode42 % *
+ \catcode43=\the\catcode43 % +
+ \catcode62=\the\catcode62 % >
+ \catcode60=\the\catcode60 % <
+ \catcode58=\the\catcode58 % :
+ \catcode46=\the\catcode46 % .
+ \catcode45=\the\catcode45 % -
+ \catcode44=\the\catcode44 % ,
+ \catcode35=\the\catcode35 % #
+ \catcode64=\the\catcode64 % @
+ \catcode125=\the\catcode125 % }
+ \catcode123=\the\catcode123 % {
+ \endlinechar=\the\endlinechar
+ \catcode13=\the\catcode13 % ^^M
+ \catcode32=\the\catcode32 %
+ \catcode61=\the\catcode61 % =
+ \noexpand\endinput
+ }%
+ \XINT@setcatcodes
+ \catcode91=12 % [
+ \catcode93=12 % ]
+ \catcode94=7 % ^
+ }%
+\x
+\begingroup
+ \catcode58=12 % :
+ \expandafter\ifx\csname ProvidesPackage\endcsname\relax
+ \def\x#1#2#3[#4]{\endgroup
+ \immediate\write-1{Package: #3 #4}%
+ \xdef#1{#4}%
+ }%
+ \else
+ \def\x#1#2[#3]{\endgroup
+ #2[{#3}]%
+ \ifx#1\@undefined
+ \xdef#1{#3}%
+ \fi
+ \ifx#1\relax
+ \xdef#1{#3}%
+ \fi
+ }%
+ \fi
+\expandafter\x\csname ver@xintfrac.sty\endcsname
+\ProvidesPackage{xintfrac}%
+ [2013/04/14 v1.03 Expandable operations on fractions (jfB)]%
+\def\xintLen {\romannumeral0\xintlen }%
+\def\xintlen #1%
+{%
+ \expandafter\XINT@flen\romannumeral0\XINT@infrac {#1}%
+}%
+\def\XINT@flen #1#2#3%
+{%
+ \expandafter\space
+ \the\numexpr -1+\XINT@Abs {#1}+\XINT@Len {#2}+\XINT@Len {#3}\relax
+}%
+\def\XINT@outfrac #1#2#3%
+{%
+ \ifcase\XINT@Sgn{#3}
+ \expandafter \XINT@outfrac@divisionbyzero
+ \or
+ \expandafter \XINT@outfrac@P
+ \else
+ \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%
+{%
+ \ifcase\XINT@Sgn{#1}
+ \expandafter\XINT@outfrac@Zero
+ \fi
+ \space #1/#2%
+}%
+\def\XINT@outfrac@Zero #1[#2]{ 0[0]}%
+\def\XINT@outfrac@N #1#2%
+{%
+ \expandafter\XINT@outfrac@N@a\expandafter
+ {\romannumeral0\XINT@opp #2}{\romannumeral0\XINT@opp #1}%
+}%
+\def\XINT@outfrac@N@a #1#2%
+{%
+ \expandafter\XINT@outfrac@P\expandafter {#2}{#1}%
+}%
+\def\xintNumerator {\romannumeral0\xintnumerator }%
+\def\xintnumerator
+{%
+ \expandafter\XINT@numer\romannumeral0\XINT@infrac
+}%
+\def\XINT@numer #1%
+{%
+ \ifcase\XINT@Sgn {#1}
+ \expandafter\XINT@numer@B
+ \or
+ \expandafter\XINT@numer@A
+ \else
+ \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\xintDenominator {\romannumeral0\xintdenominator }%
+\def\xintdenominator
+{%
+ \expandafter\XINT@denom\romannumeral0\XINT@infrac
+}%
+\def\XINT@denom #1%
+{%
+ \ifcase\XINT@Sgn {#1}
+ \expandafter\XINT@denom@B
+ \or
+ \expandafter\XINT@denom@A
+ \else
+ \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\xintFrac {\romannumeral0\xintfrac }%
+\def\xintfrac #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
+{%
+ \xint@zero #1\XINT@@frac@C 0\XINT@@frac@D {10^{#1#2}}%
+}%
+\def\XINT@@frac@C #1#2#3#4#5%
+{%
+ \ifcase\XINT@isOne {#5}
+ \or \xint@afterfi {\expandafter\xint@firstoftwo@andstop\xint@gobble@two }%
+ \fi
+ \space
+ \frac {#4}{#5}%
+}%
+\def\XINT@@frac@D #1#2#3%
+{%
+ \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\xintFwOver {\romannumeral0\xintfwover }%
+\def\xintfwover #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
+{%
+ \xint@zero #1\XINT@fwover@C 0\XINT@fwover@D {10^{#1#2}}%
+}%
+\def\XINT@fwover@C #1#2#3#4#5%
+{%
+ \ifcase\XINT@isOne {#5}
+ \xint@afterfi { {#4\over #5}}%
+ \or
+ \xint@afterfi { #4\cdot }%
+ \fi
+}%
+\def\XINT@fwover@D #1#2#3%
+{%
+ \ifcase\XINT@isOne {#3}
+ \xint@afterfi { {#2\over #3}}%
+ \or
+ \xint@afterfi { #2\cdot }%
+ \fi
+ #1%
+}%
+\def\xintSum {\romannumeral0\xintsum }%
+\def\xintsum #1{\xintsumexpr #1\relax }%
+\def\xintSumExpr {\romannumeral0\xintsumexpr }%
+\def\xintsumexpr {\expandafter\expandafter\expandafter\XINT@fsumexpr }%
+\def\XINT@fsumexpr {\XINT@fsum@loop {0}}%
+\def\XINT@fsum@loop #1#2%
+{%
+ \xint@relax #2\XINT@fsum@finished\relax
+ \expandafter\XINT@fsum@loop\expandafter
+ {\romannumeral0\xintadd {#1}{#2}}%
+}%
+\def\XINT@fsum@finished #1#2#3#4#5%
+{%
+ \XINT@fsum@finished@ #5%
+}%
+\def\XINT@fsum@finished@ #1#2#3#4#5{ #4}%
+\def\xintPrd {\romannumeral0\xintprd }%
+\def\xintprd #1{\xintproductexpr #1\relax }%
+\def\xintProductExpr {\romannumeral0\xintproductexpr }%
+\def\xintproductexpr{\expandafter\expandafter\expandafter\XINT@fproductexpr }%
+\def\XINT@fproductexpr {\XINT@fprod@loop {1}}%
+\def\XINT@fprod@loop #1#2%
+{%
+ \xint@relax #2\XINT@fprod@finished\relax
+ \expandafter\XINT@fprod@loop\expandafter
+ {\romannumeral0\xintmul {#2}{#1}}%
+}%
+\def\XINT@fprod@finished #1#2#3#4#5%
+{%
+ \XINT@fprod@finished@ #5%
+}%
+\def\XINT@fprod@finished@ #1#2#3#4#5{ #5}%
+\def\XINT@inFrac {\romannumeral0\XINT@infrac }%
+\def\XINT@infrac #1%
+{%
+ \expandafter\expandafter\expandafter
+ \XINT@infrac@ #1[\W]\Z\T
+}%
+\def\XINT@infrac@ #1[#2#3]#4\Z
+{%
+ \xint@UDwfork
+ #2\dummy \XINT@infrac@A
+ \W\dummy \XINT@infrac@B
+ \xint@UDkrof
+ #1[#2#3]#4%
+}%
+\def\XINT@infrac@A #1[\W]\T
+{%
+ \XINT@frac #1/\W\Z
+}%
+\def\XINT@infrac@B #1%
+{%
+ \xint@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
+{%
+ \xint@UDwfork
+ #2\dummy \XINT@infrac@BCa
+ \W\dummy {\expandafter\expandafter\expandafter\XINT@infrac@BCb #2}%
+ \xint@UDkrof
+ #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
+{%
+ \xint@UDwfork
+ #2\dummy \XINT@frac@A
+ \W\dummy {\expandafter\expandafter\expandafter\XINT@frac@B #2}%
+ \xint@UDkrof
+ #3.\W\Z #1.\W\Z
+}%
+\def\XINT@frac@B #1.#2#3\Z
+{%
+ \xint@UDwfork
+ #2\dummy \XINT@frac@Ba
+ \W\dummy {\XINT@frac@Bb #2}%
+ \xint@UDkrof
+ #3\Z #1\Z
+}%
+\def\XINT@frac@Bb #1/\W.\W\Z #2\Z
+{%
+ \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
+{%
+ \xint@UDwfork
+ #4\dummy \XINT@frac@Ca
+ \W\dummy {\XINT@frac@Cb #4}%
+ \xint@UDkrof
+ #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
+{%
+ \expandafter \XINT@frac@D \expandafter
+ {\romannumeral0\XINT@length {#1}}{#2#1}%
+}%
+\def\XINT@frac@D #1#2#3#4%
+{%
+ \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 }%
+}%
+\def\XINT@frac@E #1#2#3%
+{%
+ \expandafter \XINT@frac@F #3\Z {#2}{#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
+}%
+\def\XINT@frac@Gdivisionbyzero #1\Z #2#3%
+{%
+ \xintError:DivisionByZero
+ \expandafter\space {0}{#2}{0}%
+}%
+\def\XINT@frac@Gneg #1\Z #2#3%
+{%
+ \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%
+{%
+ \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
+ \R\R\R\R\R\R\R\R\Z
+}%
+\def\XINT@cuz@cnt #1%
+{%
+ \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%
+{%
+ \xint@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 #1#2#3#4#5#6%
+{%
+ \XINT@cuz@cnt@toofarb {#5}#6%
+}%
+\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%
+ \Z #1#2#3#4#5#6#7#8%
+}%
+\def\XINT@cuz@cnt@toofard #1#2\Z #3\R #4\Z #5%
+{%
+ \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%
+{%
+ \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%
+ \Z #1#2#3#4#5#6#7#8%
+}%
+\def\XINT@cuz@cnt@checka #1#2%
+{%
+ \expandafter\XINT@cuz@cnt@checkb\the\numexpr #2\relax \Z {#1}%
+}%
+\def\XINT@cuz@cnt@checkb #1%
+{%
+ \xint@zero #1\expandafter\XINT@cuz@cnt@loop\xint@z
+ 0\XINT@cuz@cnt@stopa #1%
+}%
+\def\XINT@cuz@cnt@stopa #1\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%
+{%
+ \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%
+ \Z #1#2#3#4#5#6#7#8#9%
+}%
+\def\XINT@cuz@cnt@stopc #1#2\Z #3\R #4\Z #5%
+{%
+ \expandafter\XINT@cuz@cnt@stopd\expandafter
+ {\the\numexpr #5-#1\relax}#3%
+}%
+\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}%
+}%
+\def\xintREZ {\romannumeral0\xintrez }%
+\def\xintrez
+{%
+ \expandafter\XINT@rez@A\romannumeral0\XINT@infrac
+}%
+\def\XINT@rez@A #1#2%
+{%
+ \XINT@rez@AB #2\Z {#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
+}%
+\def\XINT@rez@zero #1\Z #2#3{ 0/1[0]}%
+\def\XINT@rez@neg
+{\expandafter\space\expandafter-\romannumeral0\XINT@rez@B }%
+\def\XINT@rez@B #1\Z
+{%
+ \expandafter\XINT@rez@C\romannumeral0\XINT@factortens {#1}%
+}%
+\def\XINT@rez@C #1#2#3#4%
+{%
+ \expandafter\XINT@rez@D\romannumeral0\XINT@factortens {#4}{#3}{#2}{#1}%
+}%
+\def\XINT@rez@D #1#2#3#4#5%
+{%
+ \expandafter\XINT@rez@E\expandafter
+ {\the\numexpr #3+#4-#2}{#1}{#5}%
+}%
+\def\XINT@rez@E #1#2#3{ #3/#2[#1]}%
+\def\XINT@@bts #1#2#3%
+{%
+ \ifcase\XINT@isOne {#2}
+ \xint@afterfi {#3#1/#2}%
+ \or
+ \xint@afterfi {#3#1}%
+ \fi
+}%
+\def\xintIrr {\romannumeral0\xintirr }%
+\def\xintirr
+{%
+ \expandafter\XINT@@bts
+ \romannumeral0\expandafter\XINT@irr
+ \romannumeral0\XINT@infrac
+}%
+\def\XINT@irr #1%
+{%
+ \ifcase\XINT@Sgn {#1}
+ \expandafter\XINT@irr@B
+ \or
+ \expandafter\XINT@irr@A
+ \else
+ \expandafter\XINT@irr@B
+ \fi
+ {#1}%
+}%
+\def\XINT@irr@A #1#2%
+{%
+ \expandafter \XINT@irr@AC \expandafter
+ {\romannumeral0\xint@dsh {#2}{-#1}}%
+}%
+\def\XINT@irr@AC #1#2{\XINT@irr@C #2\Z #1\Z }%
+\def\XINT@irr@B #1#2#3%
+{%
+ \expandafter \XINT@irr@C \romannumeral0\xint@dsh {#3}{#1}\Z #2\Z
+}%
+\def\XINT@irr@C #1#2\Z #3#4\Z
+{%
+ \xint@UDsignsfork
+ #1#3\dummy \XINT@irr@minusminus
+ #1-\dummy \XINT@irr@minusplus
+ #3-\dummy \XINT@irr@plusminus
+ --\dummy \XINT@irr@plusplus
+ \xint@UDkrof
+ {#4}{#2}#3#1%
+}%
+\def\XINT@irr@minusminus #1#2#3#4{\XINT@irr@D #1\Z #2\Z \space}%
+\def\XINT@irr@minusplus #1#2#3#4{\XINT@irr@D #3#1\Z #2\Z \XINT@opp}%
+\def\XINT@irr@plusminus #1#2#3#4{\XINT@irr@D #1\Z #4#2\Z \XINT@opp}%
+\def\XINT@irr@plusplus #1#2#3#4{\XINT@irr@D #3#1\Z #4#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@nonzero@checkifone
+ \xint@UDkrof
+ {#3#4}{#1#2}{#3#4}{#1#2}%
+}%
+\def\XINT@irr@indeterminate #1#2#3#4{\expandafter\xintError:ZeroOverZero
+ \space 00}%
+\def\XINT@irr@divisionbyzero #1#2#3#4{\expandafter\xintError:DivisionByZero
+ \space {#2}0}%
+\def\XINT@irr@zero #1#2#3#4{ 0/1}%
+\def\XINT@irr@nonzero@checkifone #1%
+{%
+ \ifcase\XINT@isOne {#1}
+ \xint@afterfi {\XINT@irr@loop@a {#1}}%
+ \or
+ \expandafter \XINT@irr@denomisone
+ \fi
+}%
+\def\XINT@irr@denomisone #1#2#3{ {#1}1}%
+\def\XINT@irr@loop@a #1#2%
+{%
+ \expandafter\XINT@irr@loop@d
+ \romannumeral0\XINT@div@prepare {#1}{#2}{#1}%
+}%
+\def\XINT@irr@loop@d #1#2#3%
+{%
+ \XINT@irr@loop@e #2\Z {#3}%
+}%
+\def\XINT@irr@loop@e #1#2\Z
+{%
+ \xint@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%
+{%
+ \expandafter\XINT@irr@loop@exitb\expandafter
+ {\romannumeral0\xintquo {#3}{#2}}%
+ {\romannumeral0\xintquo {#4}{#2}}%
+}%
+\def\XINT@irr@loop@exitb #1#2%
+{%
+ \expandafter\space\expandafter {#2}{#1}%
+}%
+\def\xintJrr {\romannumeral0\xintjrr }%
+\def\xintjrr
+{%
+ \expandafter\XINT@@bts
+ \romannumeral0\expandafter\XINT@jrr@start
+ \romannumeral0\xintrez
+}%
+\def\XINT@jrr@start #1/#2[#3]%
+{%
+ \ifcase\XINT@Sgn {#3}
+ \expandafter\XINT@jrr@B
+ \or
+ \expandafter\XINT@jrr@A
+ \else
+ \expandafter\XINT@jrr@B
+ \fi
+ {#3}{#1}{#2}%
+}%
+\def\XINT@jrr@A #1#2%
+{%
+ \expandafter \XINT@jrr@AC \expandafter
+ {\romannumeral0\xint@dsh {#2}{-#1}}%
+}%
+\def\XINT@jrr@AC #1#2{\XINT@jrr@C #2\Z #1\Z }%
+\def\XINT@jrr@B #1#2#3%
+{%
+ \expandafter \XINT@jrr@C \romannumeral0\xint@dsh {#3}{#1}\Z #2\Z
+}%
+\def\XINT@jrr@C #1#2\Z #3#4\Z
+{%
+ \xint@UDsignsfork
+ #1#3\dummy \XINT@jrr@minusminus
+ #1-\dummy \XINT@jrr@minusplus
+ #3-\dummy \XINT@jrr@plusminus
+ --\dummy \XINT@jrr@plusplus
+ \xint@UDkrof
+ {#4}{#2}#3#1%
+}%
+\def\XINT@jrr@minusminus #1#2#3#4{\XINT@jrr@D #1\Z #2\Z \space }%
+\def\XINT@jrr@minusplus #1#2#3#4{\XINT@jrr@D #3#1\Z #2\Z \XINT@opp }%
+\def\XINT@jrr@plusminus #1#2#3#4{\XINT@jrr@D #1\Z #4#2\Z \XINT@opp }%
+\def\XINT@jrr@plusplus #1#2#3#4{\XINT@jrr@D #3#1\Z #4#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@nonzero@checkifone
+ \xint@UDkrof
+ {#3#4}{#1#2}1001%
+}%
+\def\XINT@jrr@indeterminate #1#2#3#4#5#6{\expandafter\xintError:ZeroOverZero
+ \space 00}%
+\def\XINT@jrr@divisionbyzero #1#2#3#4#5#6{\expandafter\xintError:DivisionByZero
+ \space {#2}0}%
+\def\XINT@jrr@zero #1#2#3#4#5#6{ 0/1}%
+\def\XINT@jrr@nonzero@checkifone #1%
+{%
+ \ifcase\XINT@isOne {#1}
+ \xint@afterfi {\XINT@jrr@loop@a {#1}}%
+ \or
+ \expandafter \XINT@jrr@denomisone
+ \fi
+}%
+\def\XINT@jrr@denomisone #1#2#3#4#5{ {#1}1}%
+\def\XINT@jrr@loop@a #1#2%
+{%
+ \expandafter\XINT@jrr@loop@b
+ \romannumeral0\XINT@div@prepare {#1}{#2}{#1}%
+}%
+\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}}%
+ {#2}{#3}{#4}{#5}%
+}%
+\def\XINT@jrr@loop@c #1#2%
+{%
+ \expandafter \XINT@jrr@loop@d \expandafter
+ {#2}{#1}%
+}%
+\def\XINT@jrr@loop@d #1#2#3#4%
+{%
+ \XINT@jrr@loop@e #3\Z {#4}{#2}{#1}%
+}%
+\def\XINT@jrr@loop@e #1#2\Z
+{%
+ \xint@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%
+{%
+ \space {#3}{#4}%
+}%
+\def\xintTrunc {\romannumeral0\xinttrunc }%
+\def\xintiTrunc {\romannumeral0\xintitrunc }%
+\def\xinttrunc #1%
+{%
+ \expandafter\expandafter\expandafter
+ \xint@trunc
+ \expandafter\expandafter\expandafter
+ {#1}%
+}%
+\def\xint@trunc #1#2%
+{%
+ \expandafter\XINT@trunc@G
+ \romannumeral0\expandafter\XINT@trunc@A
+ \romannumeral0\XINT@infrac {#2}{#1}{#1}%
+}%
+\def\xintitrunc #1%
+{%
+ \expandafter\expandafter\expandafter
+ \xint@itrunc
+ \expandafter\expandafter\expandafter
+ {#1}%
+}%
+\def\xint@itrunc #1#2%
+{%
+ \expandafter\XINT@itrunc@G
+ \romannumeral0\expandafter\XINT@trunc@A
+ \romannumeral0\XINT@infrac {#2}{#1}{#1}%
+}%
+\def\XINT@trunc@A #1#2#3#4%
+{%
+ \expandafter\XINT@trunc@checkifzero
+ \expandafter{\the\numexpr #1+#4\relax}#2\Z {#3}%
+}%
+\def\XINT@trunc@checkifzero #1#2#3\Z
+{%
+ \xint@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%
+{%
+ \ifcase\XINT@Sgn {#1}
+ \expandafter\XINT@trunc@D
+ \or
+ \expandafter\XINT@trunc@D
+ \else
+ \expandafter\XINT@trunc@C
+ \fi
+ {#1}%
+}%
+\def\XINT@trunc@C #1#2#3%
+{%
+ \expandafter \XINT@trunc@E
+ \romannumeral0\xint@dsh {#3}{#1}\Z #2\Z
+}%
+\def\XINT@trunc@D #1#2%
+{%
+ \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
+{%
+ \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
+ {#4}{#2}%
+}%
+\def\XINT@trunc@minusminus #1#2{\xintquo {#1}{#2}\Z \space}%
+\def\XINT@trunc@minusplus #1#2#3{\xintquo {#1#2}{#3}\Z \xint@minus@andstop}%
+\def\XINT@trunc@plusminus #1#2#3{\xintquo {#2}{#1#3}\Z \xint@minus@andstop}%
+\def\XINT@trunc@plusplus #1#2#3#4{\xintquo {#1#3}{#2#4}\Z \space}%
+\def\XINT@itrunc@G #1\Z #2#3%
+{%
+ \xint@zero #2\XINT@trunc@zero 0\xint@firstoftwo {#2#1}0%
+}%
+\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\relax}{#3}{#1}#2%
+}%
+\def\XINT@trunc@zero 0#10{ 0}%
+\def\XINT@trunc@H #1#2%
+{%
+ \ifnum #1 > 0
+ \xint@afterfi {\XINT@trunc@Ha {#2}}%
+ \else
+ \xint@afterfi {\XINT@trunc@Hb {-#1}}%
+ \fi
+}%
+\def\XINT@trunc@Ha
+{%
+ \expandafter\XINT@trunc@Haa\romannumeral0\xintdecsplit
+}%
+\def\XINT@trunc@Haa #1#2#3%
+{%
+ #3#1.#2%
+}%
+\def\XINT@trunc@Hb #1#2#3%
+{%
+ \expandafter #3\expandafter0\expandafter.%
+ \romannumeral0\XINT@dsx@zeroloop {#1}\Z {}#2%
+}%
+\def\xintMul {\romannumeral0\xintmul }%
+\def\xintmul #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%
+{%
+ \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%
+{%
+ \expandafter \XINT@fmul@C \expandafter{#3}{#1}{#2}%
+}%
+\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}}%
+}%
+\def\xint@fsqr #1{\XINT@fmul@A #1#1}%
+\def\xintPow {\romannumeral0\xintpow }%
+\def\xintpow #1%
+{%
+ \expandafter\xint@fpow\expandafter {\romannumeral0\XINT@infrac {#1}}%
+}%
+\def\xint@fpow #1#2%
+{%
+ \expandafter\expandafter\expandafter
+ \XINT@fpow@fork
+ #2\Z #1%
+}%
+\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
+ {#2}%
+}%
+\def\XINT@fpow@zero #1#2#3#4%
+{%
+ \space 1[0]%
+}%
+\def\XINT@fpow@pos #1#2#3#4#5%
+{%
+ \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%
+{%
+ \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%
+{%
+ \expandafter\XINT@fpow@pos@B\expandafter {#3}{#1}{#2}%
+}%
+\def\XINT@fpow@pos@B #1#2{\XINT@outfrac {#2}{#1}}%
+\def\xintDiv {\romannumeral0\xintdiv }%
+\def\xintdiv #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%
+{%
+ \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%
+{%
+ \expandafter\XINT@fdiv@C
+ \expandafter{#3}{#1}{#2}%
+}%
+\def\XINT@fdiv@C #1#2{\XINT@outfrac {#2}{#1}}%
+\def\xintAdd {\romannumeral0\xintadd }%
+\def\xintadd #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%
+{%
+ \ifnum #4 > #1
+ \xint@afterfi {\XINT@fadd@B {#1}}%
+ \else
+ \xint@afterfi {\XINT@fadd@B {#4}}%
+ \fi
+ {#1}{#4}{#2}{#3}%
+}%
+\def\XINT@fadd@B #1#2#3#4#5#6#7%
+{%
+ \expandafter\XINT@fadd@C\expandafter
+ {\romannumeral0\xintimul {#7}{#5}}%
+ {\romannumeral0\xintiadd
+ {\romannumeral0\xintimul {\xintDSH {\the\numexpr -#3+#1\relax}{#6}}{#5}}%
+ {\romannumeral0\xintimul {#7}{\xintDSH {\the\numexpr -#2+#1\relax}{#4}}}%
+ }%
+ {#1}%
+}%
+\def\XINT@fadd@C #1#2#3%
+{%
+ \expandafter\XINT@fadd@D\expandafter {#2}{#3}{#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}}%
+}%
+\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}}%
+ \else
+ \xint@afterfi {\XINT@fsub@B {#4}}%
+ \fi
+ {#1}{#4}{#2}{#3}%
+}%
+\def\XINT@fsub@B #1#2#3#4#5#6#7%
+{%
+ \expandafter\XINT@fsub@C\expandafter
+ {\romannumeral0\xintimul {#7}{#5}}%
+ {\romannumeral0\xintisub
+ {\romannumeral0\xintimul {\xintDSH {\the\numexpr -#3+#1\relax}{#6}}{#5}}%
+ {\romannumeral0\xintimul {#7}{\xintDSH {\the\numexpr -#2+#1\relax}{#4}}}%
+ }%
+ {#1}%
+}%
+\def\XINT@fsub@C #1#2#3%
+{%
+ \expandafter\XINT@fsub@D\expandafter {#2}{#3}{#1}%
+}%
+\def\XINT@fsub@D #1#2{\XINT@outfrac {#2}{#1}}%
+\def\xintCmp {\romannumeral0\xintcmp }%
+\def\xintcmp #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%
+{%
+ \ifnum #4 > #1
+ \xint@afterfi {\XINT@fcmp@B {#1}}%
+ \else
+ \xint@afterfi {\XINT@fcmp@B {#4}}%
+ \fi
+ {#1}{#4}{#2}{#3}%
+}%
+\def\XINT@fcmp@B #1#2#3#4#5#6#7%
+{%
+ \xinticmp
+ {\romannumeral0\xintimul {\xintDSH {\the\numexpr -#3+#1\relax}{#6}}{#5}}%
+ {\romannumeral0\xintimul {#7}{\xintDSH {\the\numexpr -#2+#1\relax}{#4}}}%
+}%
+\def\xintMax {\romannumeral0\xintmax }%
+\def\xintmax #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%
+{%
+ \ifnum #4 > #1
+ \xint@afterfi {\XINT@fmax@B {#1}}%
+ \else
+ \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%
+{%
+ \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%
+{%
+ \expandafter\XINT@max@fork #2\Z #1\Z
+}%
+\def\xintMin {\romannumeral0\xintmin }%
+\def\xintmin #1%
+{%
+ \expandafter\xint@fmin\expandafter {\romannumeral0\XINT@infrac {#1}}%
+}%
+\def\xint@fmin #1#2{\expandafter\XINT@outfrac
+ \romannumeral0\expandafter\XINT@fmin@A
+ \romannumeral0\XINT@infrac {#2}#1}%
+\def\XINT@fmin@A #1#2#3#4#5#6%
+{%
+ \ifnum #4 > #1
+ \xint@afterfi {\XINT@fmin@B {#1}}%
+ \else
+ \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%
+{%
+ \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%
+{%
+ \expandafter\XINT@min@fork #2\Z #1\Z
+}%
+\def\xintSgn {\romannumeral0\xintsgn }%
+\def\xintsgn #1%
+{%
+ \expandafter\xint@fsgn\romannumeral0\XINT@infrac {#1}%
+}%
+\def\xint@fsgn #1#2#3{\xintisgn {#2}}%
+\def\xintOpp {\romannumeral0\xintopp }%
+\def\xintopp #1%
+{%
+ \expandafter\xint@fopp\romannumeral0\XINT@infrac {#1}%
+}%
+\def\xint@fopp #1#2{\expandafter\XINT@outfrac\expandafter
+ {\the\numexpr #1\expandafter}\expandafter
+ {\romannumeral0\XINT@opp #2}}%
+\def\xintAbs {\romannumeral0\xintabs }%
+\def\xintabs #1%
+{%
+ \expandafter\xint@fabs\romannumeral0\XINT@infrac {#1}%
+}%
+\def\xint@fabs #1#2{\expandafter\XINT@outfrac\expandafter
+ {\the\numexpr #1\expandafter}\expandafter
+ {\romannumeral0\XINT@abs #2}}%
+\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 a270186f4ed..24bd6ef2109 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.02 of April 5, 2013)
+%% The xint bundle (version 1.03 of April 14, 2013)
%% xintgcd: Euclidean algorithm with xint package
%% Copyright (C) 2013 by Jean-Francois Burnol
%%----------------------------------------------------------------
@@ -162,20 +162,18 @@
\fi
\expandafter\x\csname ver@xintgcd.sty\endcsname
\ProvidesPackage{xintgcd}%
- [2013/04/05 v1.02 Euclide algorithm with xint package (jfB)]%
+ [2013/04/14 v1.03 Euclide algorithm with xint package (jfB)]%
\def\xintGCD {\romannumeral0\xintgcd }%
\def\xintgcd #1%
{%
- \expandafter
- \XINT@gcd
- \expandafter
- {\romannumeral0\xintabs {#1}}%
+ \expandafter \XINT@gcd \expandafter
+ {\romannumeral0\xintiabs {#1}}%
}%
\def\XINT@gcd #1#2%
{%
\expandafter
\XINT@gcd@fork
- \romannumeral0\xintabs {#2}\Z #1\Z
+ \romannumeral0\xintiabs {#2}\Z #1\Z
}%
\def\XINT@gcd@fork #1#2\Z #3#4\Z
{%
@@ -255,10 +253,8 @@
}%
\def\XINT@bezout@mm@post #1#2%
{%
- \expandafter
- \XINT@bezout@mm@postb
- \expandafter
- {\romannumeral0\xintopp{#2}}{\romannumeral0\xintopp{#1}}%
+ \expandafter \XINT@bezout@mm@postb \expandafter
+ {\romannumeral0\xintiopp{#2}}{\romannumeral0\xintiopp{#1}}%
}%
\def\XINT@bezout@mm@postb #1#2%
{%
@@ -277,10 +273,8 @@
}%
\def\XINT@bezout@mp@post #1#2%
{%
- \expandafter
- \XINT@bezout@mp@postb
- \expandafter
- {\romannumeral0\xintopp {#2}}{#1}%
+ \expandafter \XINT@bezout@mp@postb \expandafter
+ {\romannumeral0\xintiopp {#2}}{#1}%
}%
\def\XINT@bezout@mp@postb #1#2#3#4#5%
{%
@@ -293,10 +287,8 @@
}%
\def\XINT@bezout@pm@post #1%
{%
- \expandafter
- \XINT@bezout@pm@postb
- \expandafter
- {\romannumeral0\xintopp{#1}}%
+ \expandafter \XINT@bezout@pm@postb \expandafter
+ {\romannumeral0\xintiopp{#1}}%
}%
\def\XINT@bezout@pm@postb #1#2#3#4#5%
{%
@@ -319,18 +311,14 @@
}%
\def\XINT@bezout@loop@b #1#2#3#4#5#6#7#8%
{%
- \expandafter
- \XINT@bezout@loop@c
- \expandafter
- {\romannumeral0\xintadd{\XINT@Mul{#5}{#2}}{#7}}%
- {\romannumeral0\xintadd{\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%
{%
- \expandafter
- \XINT@bezout@loop@d
- \expandafter
+ \expandafter \XINT@bezout@loop@d \expandafter
{#2}{#1}%
}%
\def\XINT@bezout@loop@d #1#2#3#4#5%
@@ -364,16 +352,14 @@
\def\xintEuclideAlgorithm {\romannumeral0\xinteuclidealgorithm }%
\def\xinteuclidealgorithm #1%
{%
- \expandafter
- \XINT@euc
- \expandafter
- {\romannumeral0\xintabs {#1}}%
+ \expandafter \XINT@euc \expandafter
+ {\romannumeral0\xintiabs {#1}}%
}%
\def\XINT@euc #1#2%
{%
\expandafter
\XINT@euc@fork
- \romannumeral0\xintabs {#2}\Z #1\Z
+ \romannumeral0\xintiabs {#2}\Z #1\Z
}%
\def\XINT@euc@fork #1#2\Z #3#4\Z
{%
@@ -418,16 +404,14 @@
\def\xintBezoutAlgorithm {\romannumeral0\xintbezoutalgorithm }%
\def\xintbezoutalgorithm #1%
{%
- \expandafter
- \XINT@bezalg
- \expandafter
- {\romannumeral0\xintabs {#1}}%
+ \expandafter \XINT@bezalg \expandafter
+ {\romannumeral0\xintiabs {#1}}%
}%
\def\XINT@bezalg #1#2%
{%
\expandafter
\XINT@bezalg@fork
- \romannumeral0\xintabs {#2}\Z #1\Z
+ \romannumeral0\xintiabs {#2}\Z #1\Z
}%
\def\XINT@bezalg@fork #1#2\Z #3#4\Z
{%
@@ -450,8 +434,8 @@
\def\XINT@bezalg@b #1#2#3#4#5#6#7#8%
{%
\expandafter\XINT@bezalg@c\expandafter
- {\romannumeral0\xintadd {\xintMul {#6}{#2}}{#8}}%
- {\romannumeral0\xintadd {\xintMul {#5}{#2}}{#7}}%
+ {\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%
diff --git a/Master/texmf-dist/tex/generic/xint/xintseries.sty b/Master/texmf-dist/tex/generic/xint/xintseries.sty
new file mode 100644
index 00000000000..6cde51e7928
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/xint/xintseries.sty
@@ -0,0 +1,349 @@
+%%
+%% This is file `xintseries.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% xint.dtx (with options: `xintseries')
+%%
+%% IMPORTANT NOTICE:
+%%
+%% For the copyright see the source file.
+%%
+%% Any modified versions of this file must be renamed
+%% with new filenames distinct from xintseries.sty.
+%%
+%% For distribution of the original source see the terms
+%% for copying and modification in the file xint.dtx.
+%%
+%% This generated file may be distributed as long as the
+%% original source files, as listed above, are part of the
+%% same distribution. (The sources need not necessarily be
+%% in the same archive or directory.)
+%%
+%%----------------------------------------------------------------
+%% The xint bundle (version 1.03 of April 14, 2013)
+%% xintseries: Expandable partial sums with xint package
+%% Copyright (C) 2013 by Jean-Francois Burnol
+%%----------------------------------------------------------------
+%%
+\begingroup\catcode61\catcode48\catcode32=10\relax%
+ \catcode13=5 % ^^M
+ \endlinechar=13 %
+ \catcode123=1 % {
+ \catcode125=2 % }
+ \catcode64=11 % @
+ \catcode35=6 % #
+ \catcode44=12 % ,
+ \catcode45=12 % -
+ \catcode46=12 % .
+ \catcode58=12 % :
+ \def\space { }%
+ \let\z\endgroup
+ \expandafter\let\expandafter\x\csname ver@xintseries.sty\endcsname
+ \expandafter\let\expandafter\w\csname ver@xintfrac.sty\endcsname
+ \expandafter
+ \ifx\csname PackageInfo\endcsname\relax
+ \def\y#1#2{\immediate\write-1{Package #1 Info: #2.}}%
+ \else
+ \def\y#1#2{\PackageInfo{#1}{#2}}%
+ \fi
+ \expandafter
+ \ifx\csname numexpr\endcsname\relax
+ \y{xintseries}{\numexpr not available, aborting input}%
+ \aftergroup\endinput
+ \else
+ \ifx\x\relax % plain-TeX, first loading of xintseries.sty
+ \ifx\w\relax % but xintfrac.sty not yet loaded.
+ \y{xintseries}{Package xintfrac is required}%
+ \y{xintseries}{Will try \string\input\space xintfrac.sty}%
+ \def\z{\endgroup\input xintfrac.sty\relax}%
+ \fi
+ \else
+ \def\empty {}%
+ \ifx\x\empty % LaTeX, first loading,
+ % variable is initialized, but \ProvidesPackage not yet seen
+ \ifx\w\relax % xintfrac.sty not yet loaded.
+ \y{xintseries}{Package xintfrac is required}%
+ \y{xintseries}{Will try \string\RequirePackage{xintfrac}}%
+ \def\z{\endgroup\RequirePackage{xintfrac}}%
+ \fi
+ \else
+ \y{xintseries}{I was already loaded, aborting input}%
+ \aftergroup\endinput
+ \fi
+ \fi
+ \fi
+\z%
+\begingroup\catcode61\catcode48\catcode32=10\relax%
+ \catcode13=5 % ^^M
+ \endlinechar=13 %
+ \catcode123=1 % {
+ \catcode125=2 % }
+ \catcode64=11 % @
+ \catcode35=6 % #
+ \catcode44=12 % ,
+ \catcode45=12 % -
+ \catcode46=12 % .
+ \catcode58=12 % :
+ \expandafter
+ \ifx\csname PackageInfo\endcsname\relax
+ \def\y#1#2{\immediate\write-1{Package #1 Info: #2.}}%
+ \else
+ \def\y#1#2{\PackageInfo{#1}{#2}}%
+ \fi
+ \def\empty {}%
+ \expandafter\let\expandafter\w\csname ver@xintfrac.sty\endcsname
+ \ifx\w\relax % Plain TeX, user gave a file name at the prompt
+ \y{xintseries}{Loading of package xintfrac failed, aborting input}%
+ \aftergroup\endinput
+ \fi
+ \ifx\w\empty % LaTeX, user gave a file name at the prompt
+ \y{xintseries}{Loading of package xintfrac failed, aborting input}%
+ \aftergroup\endinput
+ \fi
+\endgroup%
+\begingroup\catcode61\catcode48\catcode32=10\relax%
+ \catcode13=5 % ^^M
+ \endlinechar=13 %
+ \catcode123=1 % {
+ \catcode125=2 % }
+ \catcode64=11 % @
+ \def\x
+ {%
+ \endgroup
+ \edef\XINT@series@restorecatcodes@endinput
+ {%
+ \catcode93=\the\catcode93 % ]
+ \catcode91=\the\catcode91 % [
+ \catcode47=\the\catcode47 % /
+ \catcode41=\the\catcode41 % )
+ \catcode40=\the\catcode40 % (
+ \catcode42=\the\catcode42 % *
+ \catcode43=\the\catcode43 % +
+ \catcode62=\the\catcode62 % >
+ \catcode60=\the\catcode60 % <
+ \catcode58=\the\catcode58 % :
+ \catcode46=\the\catcode46 % .
+ \catcode45=\the\catcode45 % -
+ \catcode44=\the\catcode44 % ,
+ \catcode35=\the\catcode35 % #
+ \catcode64=\the\catcode64 % @
+ \catcode125=\the\catcode125 % }
+ \catcode123=\the\catcode123 % {
+ \endlinechar=\the\endlinechar
+ \catcode13=\the\catcode13 % ^^M
+ \catcode32=\the\catcode32 %
+ \catcode61=\the\catcode61 % =
+ \noexpand\endinput
+ }%
+ \XINT@setcatcodes
+ \catcode91=12 % [
+ \catcode93=12 % ]
+ }%
+\x
+\begingroup
+ \catcode58=12 % :
+ \expandafter\ifx\csname ProvidesPackage\endcsname\relax
+ \def\x#1#2#3[#4]{\endgroup
+ \immediate\write-1{Package: #3 #4}%
+ \xdef#1{#4}%
+ }%
+ \else
+ \def\x#1#2[#3]{\endgroup
+ #2[{#3}]%
+ \ifx#1\@undefined
+ \xdef#1{#3}%
+ \fi
+ \ifx#1\relax
+ \xdef#1{#3}%
+ \fi
+ }%
+ \fi
+\expandafter\x\csname ver@xintseries.sty\endcsname
+\ProvidesPackage{xintseries}%
+ [2013/04/14 v1.03 Expandable partial sums with xint package (jfB)]%
+\def\xintSeries {\romannumeral0\xintseries }%
+\def\xintseries #1#2%
+{%
+ \expandafter\expandafter\expandafter
+ \XINT@series@i
+ \expandafter\expandafter\expandafter
+ {#2}{#1}%
+}%
+\def\XINT@series@i #1#2%
+{%
+ \expandafter\expandafter\expandafter
+ \XINT@series@ii
+ \expandafter\expandafter\expandafter
+ {#2}{#1}%
+}%
+\def\XINT@series@ii #1#2#3%
+{%
+ \ifnum #2<#1
+ \xint@afterfi { 0[0]}%
+ \else
+ \xint@afterfi {\XINT@series@loop {#1}{0}{#2}{#3}}%
+ \fi
+}%
+\def\XINT@series@loop #1#2#3#4%
+{%
+ \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%
+{%
+ \fi\xint@gobble@two #6%
+}%
+\def\xintiSeries {\romannumeral0\xintiseries }%
+\def\xintiseries #1#2%
+{%
+ \expandafter\expandafter\expandafter
+ \XINT@iseries@i
+ \expandafter\expandafter\expandafter
+ {#2}{#1}%
+}%
+\def\XINT@iseries@i #1#2%
+{%
+ \expandafter\expandafter\expandafter
+ \XINT@iseries@ii
+ \expandafter\expandafter\expandafter
+ {#2}{#1}%
+}%
+\def\XINT@iseries@ii #1#2#3%
+{%
+ \ifnum #2<#1
+ \xint@afterfi { 0}%
+ \else
+ \xint@afterfi {\XINT@iseries@loop {#1}{0}{#2}{#3}}%
+ \fi
+}%
+\def\XINT@iseries@loop #1#2#3#4%
+{%
+ \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%
+{%
+ \fi\xint@gobble@two #6%
+}%
+\def\xintPowerSeries {\romannumeral0\xintpowerseries }%
+\def\xintpowerseries #1#2%
+{%
+ \expandafter\expandafter\expandafter
+ \XINT@powseries@i
+ \expandafter\expandafter\expandafter
+ {#2}{#1}%
+}%
+\def\XINT@powseries@i #1#2%
+{%
+ \expandafter\expandafter\expandafter
+ \XINT@powseries@ii
+ \expandafter\expandafter\expandafter
+ {#2}{#1}%
+}%
+\def\XINT@powseries@ii #1#2#3#4%
+{%
+ \ifnum #2<#1
+ \xint@afterfi { 0[0]}%
+ \else
+ \xint@afterfi
+ {\expandafter\XINT@powseries@loop@pre\expandafter
+ {\romannumeral0\xintpow {#4}{#1}}{#1}{#4}{#2}{#3}%
+ }%
+ \fi
+}%
+\def\XINT@powseries@loop@pre #1#2#3#4#5%
+{%
+ \ifnum #4>#2 \else\XINT@powseries@dont@i \fi
+ \expandafter\XINT@powseries@loop@i\expandafter
+ {\the\numexpr #2+1\expandafter}\expandafter
+ {\romannumeral0\xintmul {#5{#2}}{#1}}{#1}{#3}{#4}{#5}%
+}%
+\def\XINT@powseries@dont@i \fi\expandafter\XINT@powseries@loop@i
+ {\fi \expandafter\XINT@powseries@dont@ii }%
+\def\XINT@powseries@dont@ii #1#2#3#4#5#6{ #2}%
+\def\XINT@powseries@loop@i #1#2#3#4#5%
+{%
+ \ifnum #5>#1 \else \XINT@powseries@exit@i \fi
+ \expandafter\XINT@powseries@loop@ii\expandafter
+ {\romannumeral0\xintmul {#3}{#4}}{#1}{#4}{#2}{#5}%
+}%
+\def\XINT@powseries@loop@ii #1#2#3#4#5#6%
+{%
+ \expandafter\XINT@powseries@loop@i\expandafter
+ {\the\numexpr #2+1\expandafter}\expandafter
+ {\romannumeral0\xintadd {#4}{\xintMul {#6{#2}}{#1}}}%
+ {#1}{#3}{#5}{#6}%
+}%
+\def\XINT@powseries@exit@i\fi \expandafter\XINT@powseries@loop@ii
+ {\fi \expandafter\XINT@powseries@exit@ii }%
+\def\XINT@powseries@exit@ii #1#2#3#4#5#6%
+ {\xintadd {#4}{\xintMul {#6{#2}}{#1}}}%
+\def\xintFxPtPowerSeries {\romannumeral0\xintfxptpowerseries }%
+\def\xintfxptpowerseries #1#2%
+{%
+ \expandafter\expandafter\expandafter
+ \XINT@fppowseries@i
+ \expandafter\expandafter\expandafter
+ {#2}{#1}%
+}%
+\def\XINT@fppowseries@i #1#2%
+{%
+ \expandafter\expandafter\expandafter
+ \XINT@fppowseries@ii
+ \expandafter\expandafter\expandafter
+ {#2}{#1}%
+}%
+\def\XINT@fppowseries@ii #1#2#3#4#5%
+{%
+ \ifnum #2<#1
+ \xint@afterfi {\xinttrunc {#5}{0[0]}}%
+ \else
+ \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%
+{%
+ \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%
+{%
+ \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%
+{%
+ \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%
+ {\xinttrunc {#7}%
+ {\xintiAdd {#4}{\xintiTrunc {#7}{\xintMul {#6{#2}}{#1}}}[-#7]}}%
+\XINT@series@restorecatcodes@endinput%
+\endinput
+%%
+%% End of file `xintseries.sty'.