summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2013-11-03 23:44:08 +0000
committerKarl Berry <karl@freefriends.org>2013-11-03 23:44:08 +0000
commit8130b636b82bbc55d48a69eb8c28c4e966d33f1b (patch)
treeb9f66de8625517b6613eca2d8e7733c7c61abc05 /Master/texmf-dist/tex
parent60d9684691aa95d10a1e12b07b703ccede3f1d9d (diff)
xint
git-svn-id: svn://tug.org/texlive/trunk@32053 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex')
-rw-r--r--Master/texmf-dist/tex/generic/xint/xint.sty621
-rw-r--r--Master/texmf-dist/tex/generic/xint/xintbinhex.sty12
-rw-r--r--Master/texmf-dist/tex/generic/xint/xintcfrac.sty4
-rw-r--r--Master/texmf-dist/tex/generic/xint/xintexpr.sty4
-rw-r--r--Master/texmf-dist/tex/generic/xint/xintfrac.sty83
-rw-r--r--Master/texmf-dist/tex/generic/xint/xintgcd.sty12
-rw-r--r--Master/texmf-dist/tex/generic/xint/xintseries.sty4
7 files changed, 424 insertions, 316 deletions
diff --git a/Master/texmf-dist/tex/generic/xint/xint.sty b/Master/texmf-dist/tex/generic/xint/xint.sty
index 30747397538..dca6c247cfb 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.09d of October 22, 2013)
+%% The xint bundle (version 1.09e of October 29, 2013)
%% xint: Expandable operations on long numbers
%% Copyright (C) 2013 by Jean-Francois Burnol
%%----------------------------------------------------------------
@@ -152,7 +152,7 @@
\fi
\XINT_providespackage
\ProvidesPackage {xint}%
- [2013/10/22 v1.09d Expandable operations on long numbers (jfB)]%
+ [2013/10/29 v1.09e Expandable operations on long numbers (jfB)]%
\def\xint_gobble_ {}%
\def\xint_gobble_i #1{}%
\def\xint_gobble_ii #1#2{}%
@@ -164,8 +164,8 @@
\def\xint_gobble_viii #1#2#3#4#5#6#7#8{}%
\def\xint_firstofone #1{#1}%
\xint_firstofone{\let\XINT_sptoken= } % 1.09d, 2013/10/22
-\def\xint_firstoftwo #1#2{#1}%
-\def\xint_secondoftwo #1#2{#2}%
+\long\def\xint_firstoftwo #1#2{#1}% made long in 1.09e, 2013/10/28
+\long\def\xint_secondoftwo #1#2{#2}%
\def\xint_firstoftwo_andstop #1#2{ #1}%
\def\xint_secondoftwo_andstop #1#2{ #2}%
\def\xint_exchangetwo_keepbraces_andstop #1#2{ {#2}{#1}}%
@@ -173,6 +173,7 @@
\def\xint_secondofthree #1#2#3{#2}%
\def\xint_thirdofthree #1#2#3{#3}%
\def\xint_minus_andstop { -}%
+\def\xint_bye #1\xint_bye {}%
\def\xint_gob_til_R #1\R {}%
\def\xint_gob_til_W #1\W {}%
\def\xint_gob_til_Z #1\Z {}%
@@ -182,8 +183,9 @@
\def\xint_gob_til_minus #1-{}%
\def\xint_gob_til_zeros_iii #1000{}%
\def\xint_gob_til_zeros_iv #10000{}%
+\let\xint_relax\relax
+\def\xint_brelax {\xint_relax }%
\def\xint_gob_til_relax #1\relax {}%
-\def\xint_gob_til_xint_undef #1\xint_undef {}%
\def\xint_gob_til_xint_relax #1\xint_relax {}%
\def\xint_UDzerofork #10\dummy #2#3\krof {#2}%
\def\xint_UDsignfork #1-\dummy #2#3\krof {#2}%
@@ -193,8 +195,6 @@
\def\xint_UDzerominusfork #10-\dummy #2#3\krof {#2}%
\def\xint_UDsignsfork #1--\dummy #2#3\krof {#2}%
\def\xint_afterfi #1#2\fi {\fi #1}%
-\let\xint_relax\relax
-\def\xint_braced_xint_relax {\xint_relax }%
\chardef\xint_c_ 0
\chardef\xint_c_i 1
\chardef\xint_c_ii 2
@@ -210,17 +210,16 @@
\def\xintrev #1%
{%
\expandafter\XINT_rev_fork
- \romannumeral-`0#1\xint_relax % empty #1 ok
- \xint_undef\xint_undef\xint_undef\xint_undef
- \xint_undef\xint_undef\xint_undef\xint_undef
+ \romannumeral-`0#1\xint_relax % empty #1 ok, \xint_relax stops expansion
+ \xint_bye\xint_bye\xint_bye\xint_bye
+ \xint_bye\xint_bye\xint_bye\xint_bye
\xint_relax
}%
\def\XINT_rev_fork #1%
{%
\xint_UDsignfork
- #1\dummy {\expandafter\xint_minus_andstop
- \romannumeral0\XINT_rord_main {}}%
- -\dummy {\XINT_rord_main {}#1}%
+ #1\dummy {\expandafter\xint_minus_andstop\romannumeral0\XINT_rord_main {}}%
+ -\dummy {\XINT_rord_main {}#1}%
\krof
}%
\def\XINT_Rev {\romannumeral0\XINT_rev }%
@@ -229,16 +228,16 @@
{%
\XINT_rord_main {}#1%
\xint_relax
- \xint_undef\xint_undef\xint_undef\xint_undef
- \xint_undef\xint_undef\xint_undef\xint_undef
+ \xint_bye\xint_bye\xint_bye\xint_bye
+ \xint_bye\xint_bye\xint_bye\xint_bye
\xint_relax
}%
\def\XINT_rord_main #1#2#3#4#5#6#7#8#9%
{%
- \xint_gob_til_xint_undef #9\XINT_rord_cleanup\xint_undef
+ \xint_bye #9\XINT_rord_cleanup\xint_bye
\XINT_rord_main {#9#8#7#6#5#4#3#2#1}%
}%
-\def\XINT_rord_cleanup\xint_undef\XINT_rord_main #1#2\xint_relax
+\def\XINT_rord_cleanup\xint_bye\XINT_rord_main #1#2\xint_relax
{%
\expandafter\space\xint_gob_til_xint_relax #1%
}%
@@ -248,20 +247,20 @@
{%
\expandafter\XINT_revwbr_loop\expandafter{\expandafter}%
\romannumeral-`0#1\xint_relax\xint_relax\xint_relax\xint_relax
- \xint_relax\xint_relax\xint_relax\xint_relax\Z
+ \xint_relax\xint_relax\xint_relax\xint_relax\xint_bye
}%
\def\xintrevwithbracesnoexpand #1%
{%
\XINT_revwbr_loop {}%
#1\xint_relax\xint_relax\xint_relax\xint_relax
- \xint_relax\xint_relax\xint_relax\xint_relax\Z
+ \xint_relax\xint_relax\xint_relax\xint_relax\xint_bye
}%
\def\XINT_revwbr_loop #1#2#3#4#5#6#7#8#9%
{%
\xint_gob_til_xint_relax #9\XINT_revwbr_finish_a\xint_relax
\XINT_revwbr_loop {{#9}{#8}{#7}{#6}{#5}{#4}{#3}{#2}#1}%
}%
-\def\XINT_revwbr_finish_a\xint_relax\XINT_revwbr_loop #1#2\Z
+\def\XINT_revwbr_finish_a\xint_relax\XINT_revwbr_loop #1#2\xint_bye
{%
\XINT_revwbr_finish_b #2\R\R\R\R\R\R\R\Z #1%
}%
@@ -288,14 +287,14 @@
{%
\expandafter\XINT_length_fork
\romannumeral0\xintnum{#1}\xint_relax\xint_relax\xint_relax\xint_relax
- \xint_relax\xint_relax\xint_relax\xint_relax\Z
+ \xint_relax\xint_relax\xint_relax\xint_relax\xint_bye
}%
\let\xintLen\xintiLen \let\xintlen\xintilen
\def\XINT_Len #1%
{%
\romannumeral0\XINT_length_fork
#1\xint_relax\xint_relax\xint_relax\xint_relax
- \xint_relax\xint_relax\xint_relax\xint_relax\Z
+ \xint_relax\xint_relax\xint_relax\xint_relax\xint_bye
}%
\def\XINT_length_fork #1%
{%
@@ -310,7 +309,7 @@
{%
\XINT_length_loop
{0}#1\xint_relax\xint_relax\xint_relax\xint_relax
- \xint_relax\xint_relax\xint_relax\xint_relax\Z
+ \xint_relax\xint_relax\xint_relax\xint_relax\xint_bye
}%
\let\xintLength\XINT_Length
\def\XINT_length_loop #1#2#3#4#5#6#7#8#9%
@@ -319,7 +318,7 @@
\expandafter\XINT_length_loop\expandafter {\the\numexpr #1+8\relax}%
}%
\def\XINT_length_finish_a\xint_relax
- \expandafter\XINT_length_loop\expandafter #1#2\Z
+ \expandafter\XINT_length_loop\expandafter #1#2\xint_bye
{%
\XINT_length_finish_b #2\W\W\W\W\W\W\W\Z {#1}%
}%
@@ -335,30 +334,29 @@
#7\XINT_length_finish_c 2%
\W\XINT_length_finish_c 1\Z
}%
-\def\XINT_length_finish_c #1#2\Z #3%
- {\expandafter\space\the\numexpr #3-#1\relax}%
+\def\XINT_length_finish_c #1#2\Z #3{\expandafter\space\the\numexpr #3-#1\relax}%
\def\xintCSVtoList {\romannumeral0\xintcsvtolist }%
\def\xintCSVtoListNoExpand {\romannumeral0\xintcsvtolistnoexpand }%
\def\xintcsvtolist #1%
{%
\expandafter\XINT_csvtol_loop_a\expandafter
{\expandafter}\romannumeral-`0#1%
- ,\xint_undef,\xint_undef,\xint_undef,\xint_undef
- ,\xint_undef,\xint_undef,\xint_undef,\xint_undef,\Z
+ ,\xint_bye,\xint_bye,\xint_bye,\xint_bye
+ ,\xint_bye,\xint_bye,\xint_bye,\xint_bye,\Z
}%
\def\xintcsvtolistnoexpand #1%
{%
\XINT_csvtol_loop_a
- {}#1,\xint_undef,\xint_undef,\xint_undef,\xint_undef
- ,\xint_undef,\xint_undef,\xint_undef,\xint_undef,\Z
+ {}#1,\xint_bye,\xint_bye,\xint_bye,\xint_bye
+ ,\xint_bye,\xint_bye,\xint_bye,\xint_bye,\Z
}%
\def\XINT_csvtol_loop_a #1#2,#3,#4,#5,#6,#7,#8,#9,%
{%
- \xint_gob_til_xint_undef #9\XINT_csvtol_finish_a\xint_undef
+ \xint_bye #9\XINT_csvtol_finish_a\xint_bye
\XINT_csvtol_loop_b {#1}{{#2}{#3}{#4}{#5}{#6}{#7}{#8}{#9}}%
}%
\def\XINT_csvtol_loop_b #1#2{\XINT_csvtol_loop_a {#1#2}}%
-\def\XINT_csvtol_finish_a\xint_undef\XINT_csvtol_loop_b #1#2#3\Z
+\def\XINT_csvtol_finish_a\xint_bye\XINT_csvtol_loop_b #1#2#3\Z
{%
\XINT_csvtol_finish_b #3\R,\R,\R,\R,\R,\R,\R,\Z #2{#1}%
}%
@@ -391,21 +389,21 @@
\def\xintListWithSepNoExpand {\romannumeral0\xintlistwithsepnoexpand }%
\long\def\xintlistwithsep #1#2%
{\expandafter\XINT_lws\expandafter {\romannumeral-`0#2}{#1}}%
-\long\def\XINT_lws #1#2{\XINT_lws_start {#2}#1\Z }%
-\long\def\xintlistwithsepnoexpand #1#2{\XINT_lws_start {#1}#2\Z }%
+\long\def\XINT_lws #1#2{\XINT_lws_start {#2}#1\xint_bye }%
+\long\def\xintlistwithsepnoexpand #1#2{\XINT_lws_start {#1}#2\xint_bye }%
\long\def\XINT_lws_start #1#2%
{%
- \xint_gob_til_Z #2\XINT_lws_dont\Z
+ \xint_bye #2\XINT_lws_dont\xint_bye
\XINT_lws_loop_a {#2}{#1}%
}%
-\long\def\XINT_lws_dont\Z\XINT_lws_loop_a #1#2{ }%
+\long\def\XINT_lws_dont\xint_bye\XINT_lws_loop_a #1#2{ }%
\long\def\XINT_lws_loop_a #1#2#3%
{%
- \xint_gob_til_Z #3\XINT_lws_end\Z
+ \xint_bye #3\XINT_lws_end\xint_bye
\XINT_lws_loop_b {#1}{#2#3}{#2}%
}%
\long\def\XINT_lws_loop_b #1#2{\XINT_lws_loop_a {#1#2}}%
-\long\def\XINT_lws_end\Z\XINT_lws_loop_b #1#2#3{ #1}%
+\long\def\XINT_lws_end\xint_bye\XINT_lws_loop_b #1#2#3{ #1}%
\def\xintNthElt {\romannumeral0\xintnthelt }%
\def\xintNthEltNoExpand {\romannumeral0\xintntheltnoexpand }%
\def\xintnthelt #1%
@@ -443,7 +441,7 @@
\else
\expandafter\XINT_length_loop
\fi {#2}#1\xint_relax\xint_relax\xint_relax\xint_relax
- \xint_relax\xint_relax\xint_relax\xint_relax\Z
+ \xint_relax\xint_relax\xint_relax\xint_relax\xint_bye
}%
\def\XINT_nthelt_loop_a #1%
{%
@@ -457,21 +455,17 @@
\def\XINT_nthelt_loop_b #1#2#3#4#5#6#7#8#9%
{%
\xint_gob_til_xint_relax #9\XINT_nthelt_silentend\xint_relax
- \expandafter\XINT_nthelt_loop_a\expandafter{\the\numexpr #1-8\relax}%
+ \expandafter\XINT_nthelt_loop_a\expandafter{\the\numexpr #1-8}%
}%
-\def\XINT_nthelt_silentend #1\Z { }%
+\def\XINT_nthelt_silentend #1\xint_bye { }%
\def\XINT_nthelt_getit #1%
{%
\expandafter\expandafter\expandafter\XINT_nthelt_finish
\csname xint_gobble_\romannumeral\numexpr#1-1\endcsname
}%
-\def\XINT_nthelt_finish #1#2\Z
-{%
- \xint_UDwfork
- #1\dummy { }%
- \W\dummy { #1}%
- \krof
-}%
+\def\XINT_nthelt_finish #1#2\xint_bye
+ {\xint_gob_til_xint_relax #1\expandafter\space
+ \xint_gobble_iii\xint_relax\space #1}%
\def\xintApply {\romannumeral0\xintapply }%
\def\xintApplyNoExpand {\romannumeral0\xintapplynoexpand }%
\def\xintapply #1#2%
@@ -479,17 +473,18 @@
\expandafter\XINT_apply\expandafter {\romannumeral-`0#2}%
{#1}%
}%
-\def\XINT_apply #1#2{\XINT_apply_loop_a {}{#2}#1\Z }%
-\def\xintapplynoexpand #1#2{\XINT_apply_loop_a {}{#1}#2\Z }%
+\def\XINT_apply #1#2{\XINT_apply_loop_a {}{#2}#1\xint_bye }%
+\def\xintapplynoexpand #1#2{\XINT_apply_loop_a {}{#1}#2\xint_bye }%
\def\XINT_apply_loop_a #1#2#3%
{%
- \xint_gob_til_Z #3\XINT_apply_end\Z
+ \xint_bye #3\XINT_apply_end\xint_bye
\expandafter
\XINT_apply_loop_b
\expandafter {\romannumeral-`0#2{#3}}{#1}{#2}%
}%
\def\XINT_apply_loop_b #1#2{\XINT_apply_loop_a {#2{#1}}}%
-\def\XINT_apply_end\Z\expandafter\XINT_apply_loop_b\expandafter #1#2#3{ #2}%
+\def\XINT_apply_end\xint_bye\expandafter\XINT_apply_loop_b
+ \expandafter #1#2#3{ #2}%
\def\xintApplyUnbraced {\romannumeral0\xintapplyunbraced }%
\def\xintApplyUnbracedNoExpand {\romannumeral0\xintapplyunbracednoexpand }%
\def\xintapplyunbraced #1#2%
@@ -497,27 +492,27 @@
\expandafter\XINT_applyunbr\expandafter {\romannumeral-`0#2}%
{#1}%
}%
-\def\XINT_applyunbr #1#2{\XINT_applyunbr_loop_a {}{#2}#1\Z }%
+\def\XINT_applyunbr #1#2{\XINT_applyunbr_loop_a {}{#2}#1\xint_bye }%
\def\xintapplyunbracednoexpand #1#2%
- {\XINT_applyunbr_loop_a {}{#1}#2\Z }%
+ {\XINT_applyunbr_loop_a {}{#1}#2\xint_bye }%
\def\XINT_applyunbr_loop_a #1#2#3%
{%
- \xint_gob_til_Z #3\XINT_applyunbr_end\Z
+ \xint_bye #3\XINT_applyunbr_end\xint_bye
\expandafter\XINT_applyunbr_loop_b
\expandafter {\romannumeral-`0#2{#3}}{#1}{#2}%
}%
\def\XINT_applyunbr_loop_b #1#2{\XINT_applyunbr_loop_a {#2#1}}%
-\def\XINT_applyunbr_end\Z
- \expandafter\XINT_applyunbr_loop_b\expandafter #1#2#3{ #2}%
+\def\XINT_applyunbr_end\xint_bye\expandafter\XINT_applyunbr_loop_b
+ \expandafter #1#2#3{ #2}%
\def\xintSeq {\romannumeral0\xintseq }%
-\def\xintseq #1{\XINT_seq_chkopt #1\Z }%
+\def\xintseq #1{\XINT_seq_chkopt #1\xint_bye }%
\def\XINT_seq_chkopt #1%
{%
\ifx [#1\expandafter\XINT_seq_opt
\else\expandafter\XINT_seq_noopt
\fi #1%
}%
-\def\XINT_seq_noopt #1\Z #2%
+\def\XINT_seq_noopt #1\xint_bye #2%
{%
\expandafter\XINT_seq\expandafter
{\the\numexpr#1\expandafter}\expandafter{\the\numexpr #2}%
@@ -552,7 +547,7 @@
\expandafter{\the\numexpr #1+1}{#2}{#1}%
}%
\def\XINT_seq_e #1#2#3{ }%
-\def\XINT_seq_opt [\Z #1]#2#3%
+\def\XINT_seq_opt [\xint_bye #1]#2#3%
{%
\expandafter\XINT_seqo\expandafter
{\the\numexpr #2\expandafter}\expandafter
@@ -622,28 +617,53 @@
{#1}{#2}%
}%
\def\XINT_seqo_nd #1#2#3#4{\XINT_seqo_nb {#1}{#2}{#3}{#4{#1}}}%
-\catcode`z 3%
\def\XINT_xflet #1%
{%
+ \def\XINT_xflet_macro {#1}\XINT_xflet_get
+}%
+\def\XINT_xflet_get
+{%
\expandafter\futurelet\expandafter\XINT_token
- \expandafter#1\romannumeral-`0\romannumeral-`0%
+ \expandafter\XINT_xflet_sp?\romannumeral-`0%
+}%
+\def\XINT_xflet_sp?
+{%
+ \ifx\XINT_token\XINT_sptoken
+ \expandafter\XINT_xflet_get
+ \else\expandafter\XINT_xflet_getB
+ \fi
+}%
+\def\XINT_xflet_getB
+{%
+ \expandafter\futurelet\expandafter\XINT_tokenB
+ \expandafter\XINT_xflet_spB?\romannumeral-`0%
+}%
+\def\XINT_xflet_spB?
+{%
+ \ifx\XINT_tokenB\XINT_sptoken
+ \expandafter\XINT_xflet_getB
+ \else\expandafter\XINT_xflet_eq?
+ \fi
+}%
+\def\XINT_xflet_eq?
+{%
+ \ifx\XINT_token\XINT_tokenB
+ \expandafter\XINT_xflet_macro
+ \else\expandafter\XINT_xflet_get
+ \fi
}%
+\catcode`z 3%
\def\xintApplyInline #1#2%
{%
- \expandafter\def\expandafter\XINT_inline_macro\expandafter ##\expandafter 1%
- \expandafter {#1{##1}}%
- \XINT_xflet\XINT_inline_b #2z% THIS z HAS CATCODE 3
+ \long\expandafter\def\expandafter\XINT_inline_macro
+ \expandafter ##\expandafter 1\expandafter {#1{##1}}%
+ \XINT_xflet\XINT_inline_b #2z% this z has catcode 3
}%
-\def\XINT_inline_b {\futurelet\XINT_token\XINT_inline_c }%
\def\XINT_inline_b
{%
- \ifx\XINT_token\XINT_sptoken
- \xint_afterfi{\XINT_xflet\XINT_inline_b }%
- \else
- \xint_afterfi
- {\ifx\XINT_token z\expandafter\xint_gobble_i
- \else\expandafter\XINT_inline_d\fi }%
- \fi
+ \ifx\XINT_token z\expandafter\xint_gobble_i
+ \else\expandafter\XINT_inline_d
+ \fi
}%
\def\XINT_inline_d #1%
{%
@@ -651,13 +671,9 @@
}%
\def\XINT_inline_e
{%
- \ifx\XINT_token\XINT_sptoken
- \xint_afterfi{\XINT_xflet\XINT_inline_e }%
- \else
- \xint_afterfi
- {\ifx\XINT_token z\expandafter\XINT_inline_w
- \else \expandafter\XINT_inline_f\fi }%
- \fi
+ \ifx\XINT_token z\expandafter\XINT_inline_w
+ \else\expandafter\XINT_inline_f
+ \fi
}%
\def\XINT_inline_f
{%
@@ -666,188 +682,288 @@
\def\XINT_inline_g #1%
{%
\expandafter\XINT_inline_macro\XINT_item
- \def\XINT_inline_macro ##1{#1}\XINT_inline_d
+ \long\def\XINT_inline_macro ##1{#1}\XINT_inline_d
}%
\def\XINT_inline_w #1%
{%
\expandafter\XINT_inline_macro\XINT_item
}%
+\long\def\xintBreakFor #1z{}%
+\long\def\xintBreakForAndDo #1#2z{#1}%
+\catcode`U 3 % with numexpr
+\catcode`V 3 % with xintfrac.sty (xint.sty not enough, uses \xintIrr)
+\catcode`D 3 % with dimexpr
+\catcode`j 3
\def\xintFor {\futurelet\XINT_token\XINT_for_ifstar }%
-\def\XINT_for_ifstar {\ifx\XINT_token*\expandafter\XINT_forx
+\def\XINT_for_ifstar {\let\xintifForFirst\xint_firstoftwo
+ \ifx\XINT_token*\expandafter\XINT_forx
\else\expandafter\XINT_for \fi }%
-\def\XINT_for #1#2in#3#4#5%
+\long\def\XINT_for #1#2in#3#4#5%
+{%
+ \XINT_toks {\csname XINT_for_d\romannumeral#2\endcsname {#5}}%
+ \expandafter\futurelet\expandafter\XINT_token
+ \expandafter\XINT_for_forever? #3,z% this z has catcode 3
+}%
+\long\def\XINT_forx *#1#2in#3#4#5%
{%
- \XINT_toks \expandafter{\csname XINT_for_d\romannumeral#2\endcsname {#5}}%
- \expandafter\XINT_for_b #3,z,% THIS z HAS CATCODE 3.
+ \XINT_toks {\csname XINT_forx_d\romannumeral#2\endcsname {#5}}%
+ \XINT_xflet\XINT_forx_forever? #3jz% j and z have catcode 3
}%
-\def\XINT_forx *#1#2in#3#4#5%
+\def\XINT_to_forever #1\XINT_toks {\fi \XINT_forever }%
+\def\XINT_for_forever?
{%
- \XINT_toks \expandafter{\csname XINT_forx_d\romannumeral#2\endcsname {#5}}%
- \XINT_xflet\XINT_forx_b #3z% THIS z HAS CATCODE 3.
+ \ifx\XINT_token U\XINT_to_forever\fi
+ \ifx\XINT_token V\XINT_to_forever\fi
+ \ifx\XINT_token D\XINT_to_forever\fi
+ \the\XINT_toks
}%
-\def\XINT_for_b {\futurelet\XINT_token\XINT_for_c }%
-\def\XINT_for_c
+\def\XINT_to_forxever #1\XINT_forx_empty? {\fi \XINT_forever }%
+\def\XINT_forx_forever?
{%
- \ifx\XINT_token z\expandafter\xint_gobble_iv\fi
- \the\XINT_toks
+ \ifx\XINT_token U\XINT_to_forxever\fi
+ \ifx\XINT_token V\XINT_to_forxever\fi
+ \ifx\XINT_token D\XINT_to_forxever\fi
+ \XINT_forx_empty?
}%
-\def\XINT_for_di #1#2,%
+\def\XINT_forx_empty?
{%
- \def\XINT_y ##1##2##3##4{#1}%
- \def\XINT_x {\XINT_y {#2}{####2}{####3}{####4}}%
- \XINT_toks {\XINT_x\XINT_for_di {#1}}%
- \futurelet\XINT_token\XINT_for_e
+ \ifx\XINT_token j\expandafter\xint_gobble_iv\fi
+ \the\XINT_toks
}%
-\def\XINT_for_dii #1#2,%
+\long\def\XINT_for_di #1#2,%
{%
- \def\XINT_y ##1##2##3##4{#1}%
- \def\XINT_x {\XINT_y {####1}{#2}{####3}{####4}}%
- \XINT_toks {\XINT_x \XINT_for_dii {#1}}%
- \futurelet\XINT_token\XINT_for_e
+ \long\def\XINT_y ##1##2##3##4{#1}%
+ \long\def\XINT_x {\XINT_y {#2}{####2}{####3}{####4}}%
+ \XINT_toks {\XINT_x\let\xintifForFirst\xint_secondoftwo\XINT_for_di {#1}}%
+ \futurelet\XINT_token\XINT_for_last?
}%
-\def\XINT_for_diii #1#2,%
+\long\def\XINT_for_dii #1#2,%
{%
- \def\XINT_y ##1##2##3##4{#1}%
- \def\XINT_x {\XINT_y {####1}{####2}{#2}{####4}}%
- \XINT_toks {\XINT_x \XINT_for_diii {#1}}%
- \futurelet\XINT_token\XINT_for_e
+ \long\def\XINT_y ##1##2##3##4{#1}%
+ \long\def\XINT_x {\XINT_y {####1}{#2}{####3}{####4}}%
+ \XINT_toks {\XINT_x\let\xintifForFirst\xint_secondoftwo\XINT_for_dii {#1}}%
+ \futurelet\XINT_token\XINT_for_last?
}%
-\def\XINT_for_div #1#2,%
+\long\def\XINT_for_diii #1#2,%
{%
- \def\XINT_y ##1##2##3##4{#1}%
- \def\XINT_x {\XINT_y {####1}{####2}{####3}{#2}}%
- \XINT_toks {\XINT_x \XINT_for_div {#1}}%
- \futurelet\XINT_token\XINT_for_e
+ \long\def\XINT_y ##1##2##3##4{#1}%
+ \long\def\XINT_x {\XINT_y {####1}{####2}{#2}{####4}}%
+ \XINT_toks {\XINT_x\let\xintifForFirst\xint_secondoftwo\XINT_for_diii {#1}}%
+ \futurelet\XINT_token\XINT_for_last?
}%
-\def\XINT_for_e
+\long\def\XINT_for_div #1#2,%
{%
- \ifx\XINT_token z\xint_afterfi{\expandafter\XINT_x \xint_gobble_iv}\fi
- \the\XINT_toks
+ \long\def\XINT_y ##1##2##3##4{#1}%
+ \long\def\XINT_x {\XINT_y {####1}{####2}{####3}{#2}}%
+ \XINT_toks {\XINT_x\let\xintifForFirst\xint_secondoftwo\XINT_for_div {#1}}%
+ \futurelet\XINT_token\XINT_for_last?
}%
-\def\XINT_forx_b
+\def\XINT_for_last?
{%
- \ifx\XINT_token\XINT_sptoken
- \xint_afterfi{\XINT_xflet\XINT_forx_b }%
- \else
- \xint_afterfi
- {\ifx\XINT_token z\expandafter\xint_gobble_iii\fi
- \the\XINT_toks }%
- \fi
+ \ifx\XINT_token z\xint_afterfi{\let\xintifForLast\xint_firstoftwo
+ \expandafter\XINT_x\xint_gobble_vi}\fi
+ \let\xintifForLast\xint_secondoftwo\the\XINT_toks
}%
-\def\XINT_forx_di #1#2%
+\long\def\XINT_forx_di #1#2%
{%
- \def\XINT_y ##1##2##3##4{#1}%
- \def\XINT_x {\XINT_y {#2}{####2}{####3}{####4}}%
- \XINT_toks {\XINT_x \XINT_forx_di {#1}}%
- \XINT_xflet\XINT_forx_e
+ \long\def\XINT_y ##1##2##3##4{#1}%
+ \long\def\XINT_x {\XINT_y {#2}{####2}{####3}{####4}}%
+ \XINT_toks {\XINT_x\let\xintifForFirst\xint_secondoftwo\XINT_forx_di {#1}}%
+ \XINT_xflet\XINT_forx_last?
}%
-\def\XINT_forx_dii #1#2%
+\long\def\XINT_forx_dii #1#2%
{%
- \def\XINT_y ##1##2##3##4{#1}%
- \def\XINT_x {\XINT_y {####1}{#2}{####3}{####4}}%
- \XINT_toks {\XINT_x \XINT_forx_dii {#1}}%
- \XINT_xflet\XINT_forx_e
+ \long\def\XINT_y ##1##2##3##4{#1}%
+ \long\def\XINT_x {\XINT_y {####1}{#2}{####3}{####4}}%
+ \XINT_toks {\XINT_x\let\xintifForFirst\xint_secondoftwo\XINT_forx_dii {#1}}%
+ \XINT_xflet\XINT_forx_last?
}%
-\def\XINT_forx_diii #1#2%
+\long\def\XINT_forx_diii #1#2%
{%
- \def\XINT_y ##1##2##3##4{#1}%
- \def\XINT_x {\XINT_y {####1}{####2}{#2}{####4}}%
- \XINT_toks {\XINT_x \XINT_forx_diii {#1}}%
- \XINT_xflet\XINT_forx_e
+ \long\def\XINT_y ##1##2##3##4{#1}%
+ \long\def\XINT_x {\XINT_y {####1}{####2}{#2}{####4}}%
+ \XINT_toks {\XINT_x\let\xintifForFirst\xint_secondoftwo\XINT_forx_diii {#1}}%
+ \XINT_xflet\XINT_forx_last?
}%
-\def\XINT_forx_div #1#2%
+\long\def\XINT_forx_div #1#2%
{%
- \def\XINT_y ##1##2##3##4{#1}%
- \def\XINT_x {\XINT_y {####1}{####2}{####3}{#2}}%
- \XINT_toks {\XINT_x \XINT_forx_div {#1}}%
- \XINT_xflet\XINT_forx_e
+ \long\def\XINT_y ##1##2##3##4{#1}%
+ \long\def\XINT_x {\XINT_y {####1}{####2}{####3}{#2}}%
+ \XINT_toks {\XINT_x\let\xintifForFirst\xint_secondoftwo\XINT_forx_div {#1}}%
+ \XINT_xflet\XINT_forx_last?
}%
-\def\XINT_forx_e
+\def\XINT_forx_last?
{%
- \ifx\XINT_token\XINT_sptoken
- \xint_afterfi{\XINT_xflet\XINT_forx_e}%
- \else
- \xint_afterfi
- {\ifx\XINT_token z\xint_afterfi{\expandafter\XINT_x \xint_gobble_iii}\fi
- \the\XINT_toks }%
- \fi
+ \ifx\XINT_token j\xint_afterfi{\let\xintifForLast\xint_firstoftwo
+ \expandafter\XINT_x\xint_gobble_vii}\fi
+ \let\xintifForLast\xint_secondoftwo\the\XINT_toks
+}%
+\catcode`j 11
+\let\xintegers U%
+\let\xintintegers U%
+\let\xintdimensions D%
+\let\xintrationals V%
+\def\XINT_forever #1%
+{%
+ \expandafter\XINT_forever_a
+ \csname XINT_?expr_\ifx#1UU\else\ifx#1DD\else V\fi\fi a\expandafter\endcsname
+ \csname XINT_?expr_\ifx#1UU\else\ifx#1DD\else V\fi\fi i\expandafter\endcsname
+ \csname XINT_?expr_\ifx#1UU\else\ifx#1DD\else V\fi\fi \endcsname
}%
-\def\xintForpair #1#2#3#4in#5#6#7%
+\catcode`U 11
+\catcode`D 11
+\catcode`V 11
+\def\XINT_?expr_Ua #1#2%
+ {\expandafter{\expandafter\numexpr\the\numexpr #1\expandafter\relax
+ \expandafter\relax\expandafter}%
+ \expandafter{\the\numexpr #2}}%
+\def\XINT_?expr_Da #1#2%
+ {\expandafter{\expandafter\dimexpr\number\dimexpr #1\expandafter\relax
+ \expandafter s\expandafter p\expandafter\relax\expandafter}%
+ \expandafter{\number\dimexpr #2}}%
+\catcode`z 11
+\def\XINT_?expr_Va #1#2%
+{%
+ \expandafter\XINT_?expr_Vb\expandafter
+ {\romannumeral-`0\xintrawwithzeros{#2}}%
+ {\romannumeral-`0\xintrawwithzeros{#1}}%
+}%
+\catcode`z 3
+\def\XINT_?expr_Vb #1#2{\expandafter\XINT_?expr_Vc #2.#1.}%
+\def\XINT_?expr_Vc #1/#2.#3/#4.%
+{%
+ \xintifEq {#2}{#4}
+ {\XINT_?expr_Vf {#3}{#1}{#2}}
+ {\expandafter\XINT_?expr_Vd\expandafter
+ {\romannumeral0\xintimul {#2}{#4}}%
+ {\romannumeral0\xintimul {#1}{#4}}%
+ {\romannumeral0\xintimul {#2}{#3}}}%
+}%
+\def\XINT_?expr_Vd #1#2#3{\expandafter\XINT_?expr_Ve\expandafter {#2}{#3}{#1}}%
+\def\XINT_?expr_Ve #1#2{\expandafter\XINT_?expr_Vf\expandafter {#2}{#1}}%
+\def\XINT_?expr_Vf #1#2#3{{#2/#3}{{0}{#1}{#2}{#3}}}%
+\def\XINT_?expr_Ui {{\numexpr 1\relax}{1}}%
+\def\XINT_?expr_Di {{\dimexpr 0pt\relax}{65536}}%
+\def\XINT_?expr_Vi {{1/1}{0111}}%
+\def\XINT_?expr_U #1#2%
+ {\expandafter{\expandafter\numexpr\the\numexpr #1+#2\relax\relax}{#2}}%
+\def\XINT_?expr_D #1#2%
+ {\expandafter{\expandafter\dimexpr\the\numexpr #1+#2\relax sp\relax}{#2}}%
+\def\XINT_?expr_V #1#2{\XINT_?expr_Vx #2}%
+\def\XINT_?expr_Vx #1#2%
+{%
+ \expandafter\XINT_?expr_Vy\expandafter
+ {\romannumeral0\xintiadd {#1}{#2}}{#2}%
+}%
+\def\XINT_?expr_Vy #1#2#3#4%
+{%
+ \expandafter{\romannumeral0\xintiadd {#3}{#1}/#4}{{#1}{#2}{#3}{#4}}%
+}%
+\def\XINT_forever_a #1#2#3#4%
+{%
+ \ifx #4[\expandafter\XINT_forever_opt_a
+ \else\expandafter\XINT_forever_b
+ \fi #1#2#3%
+}%
+\def\XINT_forever_b #1#2#3#4z{\expandafter\XINT_forever_c\the\XINT_toks #2#3}%
+\long\def\XINT_forever_c #1\romannumeral #2#3#4#5#6%
+{%
+ \csname XINT_forever_d\romannumeral#2\expandafter\endcsname #5#6{#4}z%
+}%
+\def\XINT_forever_opt_a #1#2#3#4+#5]#6z%
+{%
+ \expandafter\expandafter\expandafter
+ \XINT_forever_opt_c\expandafter\the\expandafter\XINT_toks
+ \romannumeral-`0#1{#4}{#5}#3%
+}%
+\long\def\XINT_forever_opt_c #1\romannumeral #2#3#4#5#6#7%
+{%
+ \csname XINT_forever_d\romannumeral#2\endcsname {#5}{#6}#7{#4}z%
+}%
+\long\def\XINT_forever_di #1#2#3#4%
+{%
+ \long\def\XINT_y ##1##2##3##4{#4}%
+ \XINT_y {#1}{##2}{##3}{##4}%
+ \let\xintifForFirst\xint_secondoftwo
+ \expandafter\XINT_forever_di\romannumeral-`0#3{#1}{#2}#3{#4}%
+}%
+\long\def\XINT_forever_dii #1#2#3#4%
{%
- \XINT_toks \expandafter{%
- \csname XINT_forii_d\romannumeral#2\endcsname {#7}}%
- \expandafter\XINT_forii_b #5,z,% THIS z HAS CATCODE 3
+ \long\def\XINT_y ##1##2##3##4{#4}%
+ \XINT_y {##1}{#1}{##3}{##4}%
+ \let\xintifForFirst\xint_secondoftwo
+ \expandafter\XINT_forever_dii\romannumeral-`0#3{#1}{#2}#3{#4}%
}%
-\def\XINT_forii_b {\futurelet\XINT_token\XINT_forii_c }%
-\def\XINT_forii_c
+\long\def\XINT_forever_diii #1#2#3#4%
{%
- \ifx\XINT_token z\expandafter\xint_gobble_iv\fi
- \the\XINT_toks
+ \long\def\XINT_y ##1##2##3##4{#4}%
+ \XINT_y {##1}{##2}{#1}{##4}%
+ \let\xintifForFirst\xint_secondoftwo
+ \expandafter\XINT_forever_diii\romannumeral-`0#3{#1}{#2}#3{#4}%
}%
-\def\XINT_forii_di #1(#2,#3),%
+\long\def\XINT_forever_div #1#2#3#4%
{%
- \def\XINT_y ##1##2##3##4{#1}%
+ \long\def\XINT_y ##1##2##3##4{#4}%
+ \XINT_y {##1}{##2}{##3}{#1}%
+ \let\xintifForFirst\xint_secondoftwo
+ \expandafter\XINT_forever_div\romannumeral-`0#3{#1}{#2}#3{#4}%
+}%
+\long\def\xintForpair #1#2#3#4in#5#6#7%
+{%
+ \XINT_toks \expandafter{\csname XINT_forii_d\romannumeral#2\endcsname {#7}}%
+ \expandafter\the\expandafter\XINT_toks #5,z% THIS z HAS CATCODE 3
+}%
+\long\def\XINT_forii_di #1(#2,#3),%
+{%
+ \long\def\XINT_y ##1##2##3##4{#1}%
\def\XINT_x {\XINT_y {#2}{#3}{####3}{####4}}%
\XINT_toks {\XINT_x\XINT_forii_di {#1}}%
- \futurelet\XINT_token\XINT_for_e
+ \futurelet\XINT_token\XINT_for_last?
}%
-\def\XINT_forii_dii #1(#2,#3),%
+\long\def\XINT_forii_dii #1(#2,#3),%
{%
- \def\XINT_y ##1##2##3##4{#1}%
+ \long\def\XINT_y ##1##2##3##4{#1}%
\def\XINT_x {\XINT_y {####1}{#2}{#3}{####4}}%
\XINT_toks {\XINT_x \XINT_forii_dii {#1}}%
- \futurelet\XINT_token\XINT_for_e
+ \futurelet\XINT_token\XINT_for_last?
}%
-\def\XINT_forii_diii #1(#2,#3),%
+\long\def\XINT_forii_diii #1(#2,#3),%
{%
- \def\XINT_y ##1##2##3##4{#1}%
- \def\XINT_x {\XINT_y {####1}{####2}{#2}{#3}}%
+ \long\def\XINT_y ##1##2##3##4{#1}%
+ \long\def\XINT_x {\XINT_y {####1}{####2}{#2}{#3}}%
\XINT_toks {\XINT_x \XINT_forii_diii {#1}}%
- \futurelet\XINT_token\XINT_for_e
-}%
-\def\xintForthree #1#2#3in#4#5#6%
-{%
- \XINT_toks \expandafter{%
- \csname XINT_foriii_d\romannumeral#2\endcsname {#6}}%
- \expandafter\XINT_foriii_b #4,z,%
+ \futurelet\XINT_token\XINT_for_last?
}%
-\def\XINT_foriii_b {\futurelet\XINT_token\XINT_foriii_c }%
-\def\XINT_foriii_c
+\long\def\xintForthree #1#2#3in#4#5#6%
{%
- \ifx\XINT_token z\expandafter\xint_gobble_iv\fi
- \the\XINT_toks
+ \XINT_toks \expandafter{\csname XINT_foriii_d\romannumeral#2\endcsname {#6}}%
+ \expandafter\the\expandafter\XINT_toks #4,z%
}%
-\def\XINT_foriii_di #1(#2,#3,#4),%
+\long\def\XINT_foriii_di #1(#2,#3,#4),%
{%
- \def\XINT_y ##1##2##3##4{#1}%
- \def\XINT_x {\XINT_y {#2}{#3}{#4}{####4}}%
+ \long\def\XINT_y ##1##2##3##4{#1}%
+ \long\def\XINT_x {\XINT_y {#2}{#3}{#4}{####4}}%
\XINT_toks {\XINT_x\XINT_foriii_di {#1}}%
- \futurelet\XINT_token\XINT_for_e
+ \futurelet\XINT_token\XINT_for_last?
}%
-\def\XINT_foriii_dii #1(#2,#3,#4),%
+\long\def\XINT_foriii_dii #1(#2,#3,#4),%
{%
- \def\XINT_y ##1##2##3##4{#1}%
- \def\XINT_x {\XINT_y {####1}{#2}{#3}{#4}}%
+ \long\def\XINT_y ##1##2##3##4{#1}%
+ \long\def\XINT_x {\XINT_y {####1}{#2}{#3}{#4}}%
\XINT_toks {\XINT_x \XINT_foriii_dii {#1}}%
- \futurelet\XINT_token\XINT_for_e
+ \futurelet\XINT_token\XINT_for_last?
}%
-\def\xintForfour #1#2#3in#4#5#6%
+\long\def\xintForfour #1#2#3in#4#5#6%
{%
\XINT_toks {\XINT_foriv_di {#6}}%
- \expandafter\XINT_foriv_b #4,z,%
-}%
-\def\XINT_foriv_b {\futurelet\XINT_token\XINT_foriv_c }%
-\def\XINT_foriv_c
-{%
- \ifx\XINT_token z\expandafter\xint_gobble_iv\fi
- \the\XINT_toks
+ \expandafter\the\expandafter\XINT_toks #4,z%
}%
-\def\XINT_foriv_di #1(#2,#3,#4,#5),%
+\long\def\XINT_foriv_di #1(#2,#3,#4,#5),%
{%
- \def\XINT_y ##1##2##3##4{#1}%
- \def\XINT_x {\XINT_y {#2}{#3}{#4}{#5}}%
+ \long\def\XINT_y ##1##2##3##4{#1}%
+ \long\def\XINT_x {\XINT_y {#2}{#3}{#4}{#5}}%
\XINT_toks {\XINT_x\XINT_foriv_di {#1}}%
- \futurelet\XINT_token\XINT_for_e
+ \futurelet\XINT_token\XINT_for_last?
}%
\catcode`z 11
\def\xintAssign #1\to
@@ -909,7 +1025,7 @@
\def\XINT_assignarray_loop #1%
{%
\def\xint_temp {#1}%
- \ifx\xint_braced_xint_relax\xint_temp
+ \ifx\xint_brelax\xint_temp
\expandafter\edef\csname\xint_arrayname 0\endcsname{\the\count 255 }%
\expandafter\expandafter\expandafter\XINT_assignarray_end_a
\else
@@ -1049,8 +1165,8 @@
\expandafter\xint_cleanupzeros_andstop
\romannumeral0\XINT_rord_main {}#1%
\xint_relax
- \xint_undef\xint_undef\xint_undef\xint_undef
- \xint_undef\xint_undef\xint_undef\xint_undef
+ \xint_bye\xint_bye\xint_bye\xint_bye
+ \xint_bye\xint_bye\xint_bye\xint_bye
\xint_relax
}%
\def\XINT_cuz #1%
@@ -1193,6 +1309,16 @@
\fi
}%
\let\xintifTrue\xintifNotZero
+\let\xintifTrueFalse\xintifNotZero
+\def\xintifCmp {\romannumeral0\xintifcmp }%
+\def\xintifcmp #1#2%
+{%
+ \ifcase \xintCmp {#1}{#2}
+ \xint_afterfi{\expandafter\space\xint_secondofthree}%
+ \or\xint_afterfi{\expandafter\space\xint_thirdofthree}%
+ \else\xint_afterfi{\expandafter\space\xint_firstofthree}%
+ \fi
+}%
\def\xintifEq {\romannumeral0\xintifeq }%
\def\xintifeq #1#2%
{%
@@ -1217,6 +1343,15 @@
{\expandafter\space\xint_secondoftwo}%
{\expandafter\space\xint_secondoftwo}%
}%
+\def\xintifOdd {\romannumeral0\xintifodd }%
+\def\xintifodd #1%
+{%
+ \if\xintOdd{#1}1%
+ \xint_afterfi{\expandafter\space\xint_firstoftwo}%
+ \else
+ \xint_afterfi{\expandafter\space\xint_secondoftwo}%
+ \fi
+}%
\def\xintiiOpp {\romannumeral0\xintiiopp }%
\def\xintiiopp #1%
{%
@@ -1272,7 +1407,7 @@
}%
\def\XINT_add_ABE #1#2#3#4#5#6%
{%
- \expandafter\XINT_add_ABEA\the\numexpr #1+10#5#4#3#2+#6\relax.%
+ \expandafter\XINT_add_ABEA\the\numexpr #1+10#5#4#3#2+#6.%
}%
\def\XINT_add_ABEA #1#2#3.#4%
{%
@@ -1280,7 +1415,7 @@
}%
\def\xint_add_bz\W\XINT_add_ABE #1#2#3#4#5#6%
{%
- \expandafter\XINT_add_CC\the\numexpr #1+10#5#4#3#2\relax.%
+ \expandafter\XINT_add_CC\the\numexpr #1+10#5#4#3#2.%
}%
\def\XINT_add_CC #1#2#3.#4%
{%
@@ -1297,8 +1432,8 @@
\romannumeral0%
\XINT_rord_main {}#2%
\xint_relax
- \xint_undef\xint_undef\xint_undef\xint_undef
- \xint_undef\xint_undef\xint_undef\xint_undef
+ \xint_bye\xint_bye\xint_bye\xint_bye
+ \xint_bye\xint_bye\xint_bye\xint_bye
\xint_relax
#1%
}%
@@ -1309,7 +1444,7 @@
}%
\def\XINT_add_CD #1%
{%
- \expandafter\XINT_add_CC\the\numexpr 1+10#1\relax.%
+ \expandafter\XINT_add_CC\the\numexpr 1+10#1.%
}%
\def\xint_add_cz\W\XINT_add_CD #1#2{ 1#2}%
\def\XINT_addr_A #1#2#3#4#5#6%
@@ -1372,7 +1507,7 @@
}%
\def\XINT_addm_ABE #1#2#3#4#5#6%
{%
- \expandafter\XINT_addm_ABEA\the\numexpr #1+10#5#4#3#2+#6\relax.%
+ \expandafter\XINT_addm_ABEA\the\numexpr #1+10#5#4#3#2+#6.%
}%
\def\XINT_addm_ABEA #1#2#3.#4%
{%
@@ -1389,8 +1524,8 @@
\romannumeral0%
\XINT_rord_main {}#2%
\xint_relax
- \xint_undef\xint_undef\xint_undef\xint_undef
- \xint_undef\xint_undef\xint_undef\xint_undef
+ \xint_bye\xint_bye\xint_bye\xint_bye
+ \xint_bye\xint_bye\xint_bye\xint_bye
\xint_relax
#1%
}%
@@ -1405,7 +1540,7 @@
}%
\def\XINT_addm_CD #1%
{%
- \expandafter\XINT_addm_CC\the\numexpr 1+10#1\relax.%
+ \expandafter\XINT_addm_CC\the\numexpr 1+10#1.%
}%
\def\XINT_addm_CC #1#2#3.#4%
{%
@@ -1417,7 +1552,7 @@
#3\xint_addm_cz
\W\XINT_addm_CD
{%
- \expandafter\XINT_addm_CDw\the\numexpr 1+#1#2#3\relax.%
+ \expandafter\XINT_addm_CDw\the\numexpr 1+#1#2#3.%
}%
\def\XINT_addm_CDw #1.#2#3\X\Y\Z
{%
@@ -1428,7 +1563,7 @@
#2\xint_addm_cz
\W\XINT_addm_CD
{%
- \expandafter\XINT_addm_CDx\the\numexpr 1+#1#2\relax.%
+ \expandafter\XINT_addm_CDx\the\numexpr 1+#1#2.%
}%
\def\XINT_addm_CDx #1.#2#3\Y\Z
{%
@@ -1438,7 +1573,7 @@
#1\xint_addm_cz
\W\XINT_addm_CD
{%
- \expandafter\XINT_addm_CDy\the\numexpr 1+#1\relax.%
+ \expandafter\XINT_addm_CDy\the\numexpr 1+#1.%
}%
\def\XINT_addm_CDy #1.#2#3\Z
{%
@@ -1727,7 +1862,7 @@
}%
\def\XINT_sub_onestep #1#2#3#4#5#6%
{%
- \expandafter\XINT_sub_backtoA\the\numexpr 11#5#4#3#2-#6+#1-\xint_c_i\relax.%
+ \expandafter\XINT_sub_backtoA\the\numexpr 11#5#4#3#2-#6+#1-\xint_c_i.%
}%
\def\XINT_sub_backtoA #1#2#3.#4%
{%
@@ -1749,8 +1884,8 @@
\romannumeral0%
\XINT_rord_main {}#2%
\xint_relax
- \xint_undef\xint_undef\xint_undef\xint_undef
- \xint_undef\xint_undef\xint_undef\xint_undef
+ \xint_bye\xint_bye\xint_bye\xint_bye
+ \xint_bye\xint_bye\xint_bye\xint_bye
\xint_relax
#1%
}%
@@ -1762,7 +1897,7 @@
}%
\def\XINT_sub_AC_onestep #1%
{%
- \expandafter\XINT_sub_backtoC\the\numexpr 11#1-\xint_c_i\relax.%
+ \expandafter\XINT_sub_backtoC\the\numexpr 11#1-\xint_c_i.%
}%
\def\XINT_sub_backtoC #1#2#3.#4%
{%
@@ -1779,8 +1914,8 @@
\romannumeral0%
\XINT_rord_main {}#2%
\xint_relax
- \xint_undef\xint_undef\xint_undef\xint_undef
- \xint_undef\xint_undef\xint_undef\xint_undef
+ \xint_bye\xint_bye\xint_bye\xint_bye
+ \xint_bye\xint_bye\xint_bye\xint_bye
\xint_relax
#1\W\W\W\W\W\W\W\Z
}%
@@ -1801,8 +1936,8 @@
\romannumeral0%
\XINT_rord_main {}#2%
\xint_relax
- \xint_undef\xint_undef\xint_undef\xint_undef
- \xint_undef\xint_undef\xint_undef\xint_undef
+ \xint_bye\xint_bye\xint_bye\xint_bye
+ \xint_bye\xint_bye\xint_bye\xint_bye
\xint_relax
\W\X\Y\Z #1%
}%
@@ -1813,7 +1948,7 @@
}%
\def\XINT_sub_Eonestep #1#2%
{%
- \expandafter\XINT_sub_backtoE\the\numexpr 109999-#2+#1\relax.%
+ \expandafter\XINT_sub_backtoE\the\numexpr 109999-#2+#1.%
}%
\def\XINT_sub_backtoE #1#2#3.#4%
{%
@@ -1836,7 +1971,7 @@
}%
\def\XINT_sub_Fdec_onestep #1#2%
{%
- \expandafter\XINT_sub_backtoFdec\the\numexpr 11#2+#1-\xint_c_i\relax.%
+ \expandafter\XINT_sub_backtoFdec\the\numexpr 11#2+#1-\xint_c_i.%
}%
\def\XINT_sub_backtoFdec #1#2#3.#4%
{%
@@ -1853,7 +1988,7 @@
}%
\def\XINT_sub_Finc_onestep #1#2%
{%
- \expandafter\XINT_sub_backtoFinc\the\numexpr 10#2+#1\relax.%
+ \expandafter\XINT_sub_backtoFinc\the\numexpr 10#2+#1.%
}%
\def\XINT_sub_backtoFinc #1#2#3.#4%
{%
@@ -1882,8 +2017,8 @@
\romannumeral0%
\XINT_rord_main {}#1%
\xint_relax
- \xint_undef\xint_undef\xint_undef\xint_undef
- \xint_undef\xint_undef\xint_undef\xint_undef
+ \xint_bye\xint_bye\xint_bye\xint_bye
+ \xint_bye\xint_bye\xint_bye\xint_bye
\xint_relax
}%
\def\XINT_sub_KK #1#2#3#4#5#6%
@@ -1893,7 +2028,7 @@
}%
\def\XINT_sub_KK_onestep #1#2%
{%
- \expandafter\XINT_sub_backtoKK\the\numexpr 109999-#2+#1\relax.%
+ \expandafter\XINT_sub_backtoKK\the\numexpr 109999-#2+#1.%
}%
\def\XINT_sub_backtoKK #1#2#3.#4%
{%
@@ -1967,7 +2102,7 @@
}%
\def\XINT_cmp_onestep #1#2#3#4#5#6%
{%
- \expandafter\XINT_cmp_backtoA\the\numexpr 11#5#4#3#2-#6+#1-\xint_c_i\relax.%
+ \expandafter\XINT_cmp_backtoA\the\numexpr 11#5#4#3#2-#6+#1-\xint_c_i.%
}%
\def\XINT_cmp_backtoA #1#2#3.#4%
{%
@@ -2157,7 +2292,7 @@
}%
\def\XINT_geq_onestep #1#2#3#4#5#6%
{%
- \expandafter\XINT_geq_backtoA\the\numexpr 11#5#4#3#2-#6+#1-\xint_c_i\relax.%
+ \expandafter\XINT_geq_backtoA\the\numexpr 11#5#4#3#2-#6+#1-\xint_c_i.%
}%
\def\XINT_geq_backtoA #1#2#3.#4%
{%
@@ -2478,7 +2613,7 @@
\def\XINT_mul_Br #1#2#3#4\W\X\Y\Z #5#6#7#8%
{%
\expandafter\XINT_mul_ABEAr
- \the\numexpr #1+10#2+#8#7#6#5\relax.{#3}#4\W\X\Y\Z
+ \the\numexpr #1+10#2+#8#7#6#5.{#3}#4\W\X\Y\Z
}%
\def\XINT_mul_ABEAr #1#2#3#4#5#6.#7%
{%
@@ -2920,8 +3055,8 @@
\fi
{#1}{#2}\XINT_pow_posprod
\xint_relax
- \xint_undef\xint_undef\xint_undef\xint_undef
- \xint_undef\xint_undef\xint_undef\xint_undef
+ \xint_bye\xint_bye\xint_bye\xint_bye
+ \xint_bye\xint_bye\xint_bye\xint_bye
\xint_relax
}%
\def\XINT_pow_BtooBig #1\xint_relax #2\xint_relax
@@ -3418,7 +3553,7 @@
\def\XINT_div_sub_onestep #1#2#3#4#5#6%
{%
\expandafter\XINT_div_sub_backtoA
- \the\numexpr 11#5#4#3#2-#6+#1-\xint_c_i\relax.%
+ \the\numexpr 11#5#4#3#2-#6+#1-\xint_c_i.%
}%
\def\XINT_div_sub_backtoA #1#2#3.#4%
{%
@@ -3438,8 +3573,8 @@
\romannumeral0%
\XINT_rord_main {}#2%
\xint_relax
- \xint_undef\xint_undef\xint_undef\xint_undef
- \xint_undef\xint_undef\xint_undef\xint_undef
+ \xint_bye\xint_bye\xint_bye\xint_bye
+ \xint_bye\xint_bye\xint_bye\xint_bye
\xint_relax
#1%
}%
@@ -3450,7 +3585,7 @@
}%
\def\XINT_div_sub_AC_onestep #1%
{%
- \expandafter\XINT_div_sub_backtoC\the\numexpr 11#1-\xint_c_i\relax.%
+ \expandafter\XINT_div_sub_backtoC\the\numexpr 11#1-\xint_c_i.%
}%
\def\XINT_div_sub_backtoC #1#2#3.#4%
{%
@@ -3466,8 +3601,8 @@
\romannumeral0%
\XINT_rord_main {}#2%
\xint_relax
- \xint_undef\xint_undef\xint_undef\xint_undef
- \xint_undef\xint_undef\xint_undef\xint_undef
+ \xint_bye\xint_bye\xint_bye\xint_bye
+ \xint_bye\xint_bye\xint_bye\xint_bye
\xint_relax
#1%
}%
@@ -4036,8 +4171,8 @@
\expandafter\XINT_dec_cleanup
\romannumeral0\XINT_rord_main {}#2%
\xint_relax
- \xint_undef\xint_undef\xint_undef\xint_undef
- \xint_undef\xint_undef\xint_undef\xint_undef
+ \xint_bye\xint_bye\xint_bye\xint_bye
+ \xint_bye\xint_bye\xint_bye\xint_bye
\xint_relax
#1%
}%
@@ -4095,8 +4230,8 @@
0-\dummy {\XINT_sqrt #1}%
\krof
}%
-\def\XINT_sqrt_iszero #1\Z { 0}%
-\def\XINT_sqrt_isneg #1\Z {\xintError:RootOfNegative\space 0}%
+\def\XINT_sqrt_iszero #1\Z { 1.}% 1.09e was wrong from inception in 1.08 :-((
+\def\XINT_sqrt_isneg #1\Z {\xintError:RootOfNegative\space 1.}%
\def\XINT_sqrt #1\Z
{%
\expandafter\XINT_sqrt_start\expandafter
diff --git a/Master/texmf-dist/tex/generic/xint/xintbinhex.sty b/Master/texmf-dist/tex/generic/xint/xintbinhex.sty
index 5b2695c4103..caadf6f105e 100644
--- a/Master/texmf-dist/tex/generic/xint/xintbinhex.sty
+++ b/Master/texmf-dist/tex/generic/xint/xintbinhex.sty
@@ -22,7 +22,7 @@
%% in the same archive or directory.)
%%
%%----------------------------------------------------------------
-%% The xint bundle (version 1.09d of October 22, 2013)
+%% The xint bundle (version 1.09e of October 29, 2013)
%% xintbinhex: Expandable binary and hexadecimal conversions
%% Copyright (C) 2013 by Jean-Francois Burnol
%%----------------------------------------------------------------
@@ -105,7 +105,7 @@
\XINTsetupcatcodes%
\XINT_providespackage
\ProvidesPackage{xintbinhex}%
- [2013/10/22 v1.09d Expandable binary and hexadecimal conversions (jfB)]%
+ [2013/10/29 v1.09e Expandable binary and hexadecimal conversions (jfB)]%
\chardef\xint_c_xvi 16
\chardef\xint_c_ii^v 32
\chardef\xint_c_ii^vi 64
@@ -390,8 +390,8 @@
\expandafter\xint_cleanupzeros_andstop
\romannumeral0\XINT_rord_main {}#1%
\xint_relax
- \xint_undef\xint_undef\xint_undef\xint_undef
- \xint_undef\xint_undef\xint_undef\xint_undef
+ \xint_bye\xint_bye\xint_bye\xint_bye
+ \xint_bye\xint_bye\xint_bye\xint_bye
\xint_relax
}%
\def\XINT_htd_II_ci #1\XINT_htd_II_ciii
@@ -478,8 +478,8 @@
\expandafter\XINT_btd_II_c_end
\romannumeral0\XINT_rord_main {}#2%
\xint_relax
- \xint_undef\xint_undef\xint_undef\xint_undef
- \xint_undef\xint_undef\xint_undef\xint_undef
+ \xint_bye\xint_bye\xint_bye\xint_bye
+ \xint_bye\xint_bye\xint_bye\xint_bye
\xint_relax
}%
\def\XINT_btd_II_c_end #1#2#3#4#5#6%
diff --git a/Master/texmf-dist/tex/generic/xint/xintcfrac.sty b/Master/texmf-dist/tex/generic/xint/xintcfrac.sty
index b8b934b9294..7019c7af6b3 100644
--- a/Master/texmf-dist/tex/generic/xint/xintcfrac.sty
+++ b/Master/texmf-dist/tex/generic/xint/xintcfrac.sty
@@ -22,7 +22,7 @@
%% in the same archive or directory.)
%%
%%----------------------------------------------------------------
-%% The xint bundle (version 1.09d of October 22, 2013)
+%% The xint bundle (version 1.09e of October 29, 2013)
%% xintcfrac: Expandable continued fractions with xint package
%% Copyright (C) 2013 by Jean-Francois Burnol
%%----------------------------------------------------------------
@@ -105,7 +105,7 @@
\XINTsetupcatcodes%
\XINT_providespackage
\ProvidesPackage{xintcfrac}%
- [2013/10/22 v1.09d Expandable continued fractions with xint package (jfB)]%
+ [2013/10/29 v1.09e Expandable continued fractions with xint package (jfB)]%
\def\xintCFrac {\romannumeral0\xintcfrac }%
\def\xintcfrac #1%
{%
diff --git a/Master/texmf-dist/tex/generic/xint/xintexpr.sty b/Master/texmf-dist/tex/generic/xint/xintexpr.sty
index ccc877a888d..2abe4875295 100644
--- a/Master/texmf-dist/tex/generic/xint/xintexpr.sty
+++ b/Master/texmf-dist/tex/generic/xint/xintexpr.sty
@@ -22,7 +22,7 @@
%% in the same archive or directory.)
%%
%%----------------------------------------------------------------
-%% The xint bundle (version 1.09d of October 22, 2013)
+%% The xint bundle (version 1.09e of October 29, 2013)
%% xintexpr: Expandable expression parser
%% Copyright (C) 2013 by Jean-Francois Burnol
%%----------------------------------------------------------------
@@ -105,7 +105,7 @@
\XINTsetupcatcodes%
\XINT_providespackage
\ProvidesPackage{xintexpr}%
- [2013/10/22 v1.09d Expandable expression parser (jfB)]%
+ [2013/10/29 v1.09e Expandable expression parser (jfB)]%
\def\xint_gob_til_dot #1.{}%
\def\xint_gob_til_dot_andstop #1.{ }%
\def\xint_gob_til_! #1!{}% nota bene: ! is of catcode 11
diff --git a/Master/texmf-dist/tex/generic/xint/xintfrac.sty b/Master/texmf-dist/tex/generic/xint/xintfrac.sty
index b4ab5fbe664..36ea3fd20c6 100644
--- a/Master/texmf-dist/tex/generic/xint/xintfrac.sty
+++ b/Master/texmf-dist/tex/generic/xint/xintfrac.sty
@@ -22,7 +22,7 @@
%% in the same archive or directory.)
%%
%%----------------------------------------------------------------
-%% The xint bundle (version 1.09d of October 22, 2013)
+%% The xint bundle (version 1.09e of October 29, 2013)
%% xintfrac: Expandable operations on fractions
%% Copyright (C) 2013 by Jean-Francois Burnol
%%----------------------------------------------------------------
@@ -105,7 +105,7 @@
\XINTsetupcatcodes%
\XINT_providespackage
\ProvidesPackage{xintfrac}%
- [2013/10/22 v1.09d Expandable operations on fractions (jfB)]%
+ [2013/10/29 v1.09e Expandable operations on fractions (jfB)]%
\chardef\xint_c_vi 6
\chardef\xint_c_vii 7
\chardef\xint_c_xviii 18
@@ -306,8 +306,8 @@
\expandafter\XINT_cuz_cnt_loop\expandafter
{\expandafter}\romannumeral0\XINT_rord_main {}#1%
\xint_relax
- \xint_undef\xint_undef\xint_undef\xint_undef
- \xint_undef\xint_undef\xint_undef\xint_undef
+ \xint_bye\xint_bye\xint_bye\xint_bye
+ \xint_bye\xint_bye\xint_bye\xint_bye
\xint_relax
\R\R\R\R\R\R\R\R\Z
}%
@@ -390,8 +390,8 @@
\expandafter\space\expandafter
{\romannumeral0\XINT_rord_main {}#2%
\xint_relax
- \xint_undef\xint_undef\xint_undef\xint_undef
- \xint_undef\xint_undef\xint_undef\xint_undef
+ \xint_bye\xint_bye\xint_bye\xint_bye
+ \xint_bye\xint_bye\xint_bye\xint_bye
\xint_relax }{#1}%
}%
\def\xintRaw {\romannumeral0\xintraw }%
@@ -706,6 +706,16 @@
\xintError:NotAnInteger
\fi\space #1%
}%
+\def\xintifInt {\romannumeral0\xintifint }%
+\def\xintifint #1{\expandafter\XINT_ifint\romannumeral0\xintirr {#1}\Z }%
+\def\XINT_ifint #1/#2\Z
+{%
+ \if\XINT_isOne {#2}1%
+ \xint_afterfi{\expandafter\space\xint_firstoftwo}%
+ \else
+ \xint_afterfi{\expandafter\space\xint_secondoftwo}%
+ \fi
+}%
\def\xintJrr {\romannumeral0\xintjrr }%
\def\xintjrr #1%
{%
@@ -897,8 +907,8 @@
\expandafter\XINT_round_C
\romannumeral0\XINT_rord_main {}#1%
\xint_relax
- \xint_undef\xint_undef\xint_undef\xint_undef
- \xint_undef\xint_undef\xint_undef\xint_undef
+ \xint_bye\xint_bye\xint_bye\xint_bye
+ \xint_bye\xint_bye\xint_bye\xint_bye
\xint_relax
\Z
}%
@@ -919,8 +929,8 @@
{%
\XINT_rord_main {}#1%
\xint_relax
- \xint_undef\xint_undef\xint_undef\xint_undef
- \xint_undef\xint_undef\xint_undef\xint_undef
+ \xint_bye\xint_bye\xint_bye\xint_bye
+ \xint_bye\xint_bye\xint_bye\xint_bye
\xint_relax \Z
}%
\def\XINT_round_Dba #1%
@@ -1095,8 +1105,8 @@
\romannumeral0\expandafter\XINT_float_Wa
\romannumeral0\XINT_rord_main {}#2%
\xint_relax
- \xint_undef\xint_undef\xint_undef\xint_undef
- \xint_undef\xint_undef\xint_undef\xint_undef
+ \xint_bye\xint_bye\xint_bye\xint_bye
+ \xint_bye\xint_bye\xint_bye\xint_bye
\xint_relax \Z
}%
\def\XINT_float_Vb #1#2\Z #3%
@@ -1198,8 +1208,8 @@
\expandafter#1%
\romannumeral0\XINT_rord_main {}#2%
\xint_relax
- \xint_undef\xint_undef\xint_undef\xint_undef
- \xint_undef\xint_undef\xint_undef\xint_undef
+ \xint_bye\xint_bye\xint_bye\xint_bye
+ \xint_bye\xint_bye\xint_bye\xint_bye
\xint_relax \Z
}%
\def\XINT_infloat_Vb #1#2\Z
@@ -1745,43 +1755,6 @@
\romannumeral0\xintdivision }%
\def\xintrem {\expandafter\xint_secondoftwo_andstop
\romannumeral0\xintdivision }%
-\def\xintFDg {\romannumeral0\xintfdg }%
-\def\xintfdg #1%
-{%
- \expandafter\XINT_fdg\romannumeral0\xintnum {#1}\W\Z
-}%
-\def\xintLDg {\romannumeral0\xintldg }%
-\def\xintldg #1%
-{%
- \expandafter\XINT_ldg\expandafter{\romannumeral0\xintnum {#1}}%
-}%
-\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%
-{%
- \ifodd\xintLDg{#1}
- \xint_afterfi{ 1}%
- \else
- \xint_afterfi{ 0}%
- \fi
-}%
\def\xintFloatAdd {\romannumeral0\xintfloatadd }%
\def\xintfloatadd #1{\XINT_fladd_chkopt \xintfloat #1\Z }%
\def\XINTinFloatAdd {\romannumeral0\XINTinfloatadd }%
@@ -2013,8 +1986,8 @@
{%
\XINT_flpow_loop {#1}{#2}{#3}{{#1}}\XINT_flpow_prd
\xint_relax
- \xint_undef\xint_undef\xint_undef\xint_undef
- \xint_undef\xint_undef\xint_undef\xint_undef
+ \xint_bye\xint_bye\xint_bye\xint_bye
+ \xint_bye\xint_bye\xint_bye\xint_bye
\xint_relax {#4}%
}%
\def\XINT_flpow_loop #1#2#3%
@@ -2153,8 +2126,8 @@
{%
\XINT_flpower_loop {#1}{#2}{#3}{{#1}}\XINT_flpow_prd
\xint_relax
- \xint_undef\xint_undef\xint_undef\xint_undef
- \xint_undef\xint_undef\xint_undef\xint_undef
+ \xint_bye\xint_bye\xint_bye\xint_bye
+ \xint_bye\xint_bye\xint_bye\xint_bye
\xint_relax {#4}%
}%
\def\XINT_flpower_loop #1#2#3%
diff --git a/Master/texmf-dist/tex/generic/xint/xintgcd.sty b/Master/texmf-dist/tex/generic/xint/xintgcd.sty
index 87f1880991d..1660cda8541 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.09d of October 22, 2013)
+%% The xint bundle (version 1.09e of October 29, 2013)
%% xintgcd: Euclidean algorithm with xint package
%% Copyright (C) 2013 by Jean-Francois Burnol
%%----------------------------------------------------------------
@@ -105,7 +105,7 @@
\XINTsetupcatcodes%
\XINT_providespackage
\ProvidesPackage{xintgcd}%
- [2013/10/22 v1.09d Euclide algorithm with xint package (jfB)]%
+ [2013/10/29 v1.09e Euclide algorithm with xint package (jfB)]%
\def\xintGCD {\romannumeral0\xintgcd }%
\def\xintgcd #1%
{%
@@ -372,8 +372,8 @@
\romannumeral0%
\XINT_rord_main {}#4{{#1}{#3}}%
\xint_relax
- \xint_undef\xint_undef\xint_undef\xint_undef
- \xint_undef\xint_undef\xint_undef\xint_undef
+ \xint_bye\xint_bye\xint_bye\xint_bye
+ \xint_bye\xint_bye\xint_bye\xint_bye
\xint_relax
}%
\def\xint_euc_end_ #1#2#3%
@@ -431,8 +431,8 @@
\romannumeral0%
\XINT_rord_main {}#8{{#1}{#3}}%
\xint_relax
- \xint_undef\xint_undef\xint_undef\xint_undef
- \xint_undef\xint_undef\xint_undef\xint_undef
+ \xint_bye\xint_bye\xint_bye\xint_bye
+ \xint_bye\xint_bye\xint_bye\xint_bye
\xint_relax
}%
\def\xint_bezalg_end_ #1#2#3#4%
diff --git a/Master/texmf-dist/tex/generic/xint/xintseries.sty b/Master/texmf-dist/tex/generic/xint/xintseries.sty
index 2e2deaa7ec9..dec1e89498c 100644
--- a/Master/texmf-dist/tex/generic/xint/xintseries.sty
+++ b/Master/texmf-dist/tex/generic/xint/xintseries.sty
@@ -22,7 +22,7 @@
%% in the same archive or directory.)
%%
%%----------------------------------------------------------------
-%% The xint bundle (version 1.09d of October 22, 2013)
+%% The xint bundle (version 1.09e of October 29, 2013)
%% xintseries: Expandable partial sums with xint package
%% Copyright (C) 2013 by Jean-Francois Burnol
%%----------------------------------------------------------------
@@ -105,7 +105,7 @@
\XINTsetupcatcodes%
\XINT_providespackage
\ProvidesPackage{xintseries}%
- [2013/10/22 v1.09d Expandable partial sums with xint package (jfB)]%
+ [2013/10/29 v1.09e Expandable partial sums with xint package (jfB)]%
\def\xintSeries {\romannumeral0\xintseries }%
\def\xintseries #1#2%
{%