summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/xint
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2014-02-27 23:10:36 +0000
committerKarl Berry <karl@freefriends.org>2014-02-27 23:10:36 +0000
commit0b9cf8dc5d3785da3a0d3065dc2fb8ffe1398e3b (patch)
treea8fffc4cdd1e062c9d42a918b9a20e606b20fc54 /Master/texmf-dist/tex/generic/xint
parent56e0a2af1f297ff380e46108d4c154ff160b6714 (diff)
xint (27feb14)
git-svn-id: svn://tug.org/texlive/trunk@33062 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/generic/xint')
-rw-r--r--Master/texmf-dist/tex/generic/xint/xint.sty14
-rw-r--r--Master/texmf-dist/tex/generic/xint/xintbinhex.sty4
-rw-r--r--Master/texmf-dist/tex/generic/xint/xintcfrac.sty306
-rw-r--r--Master/texmf-dist/tex/generic/xint/xintexpr.sty4
-rw-r--r--Master/texmf-dist/tex/generic/xint/xintfrac.sty74
-rw-r--r--Master/texmf-dist/tex/generic/xint/xintgcd.sty4
-rw-r--r--Master/texmf-dist/tex/generic/xint/xintseries.sty16
-rw-r--r--Master/texmf-dist/tex/generic/xint/xinttools.sty256
8 files changed, 469 insertions, 209 deletions
diff --git a/Master/texmf-dist/tex/generic/xint/xint.sty b/Master/texmf-dist/tex/generic/xint/xint.sty
index 8931dd3b902..8357015b7c8 100644
--- a/Master/texmf-dist/tex/generic/xint/xint.sty
+++ b/Master/texmf-dist/tex/generic/xint/xint.sty
@@ -21,7 +21,7 @@
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
%%----------------------------------------------------------------
-%% The xint bundle (version 1.09kb of February 13, 2014)
+%% The xint bundle (version 1.09m of February 26, 2014)
%% xint: Expandable operations on long numbers
%% Copyright (C) 2013-2014 by Jean-Francois Burnol
%%----------------------------------------------------------------
@@ -101,14 +101,13 @@
\XINTsetupcatcodes%
\XINT_providespackage
\ProvidesPackage{xint}%
- [2014/02/13 v1.09kb Expandable operations on long numbers (jfB)]%
+ [2014/02/26 v1.09m Expandable operations on long numbers (jfB)]%
\long\def\xint_firstofthree #1#2#3{#1}%
\long\def\xint_secondofthree #1#2#3{#2}%
\long\def\xint_thirdofthree #1#2#3{#3}%
\long\def\xint_firstofthree_thenstop #1#2#3{ #1}% 1.09i
\long\def\xint_secondofthree_thenstop #1#2#3{ #2}%
\long\def\xint_thirdofthree_thenstop #1#2#3{ #3}%
-\def\xint_gob_til_zero #10{}%
\def\xint_gob_til_zeros_iii #1000{}%
\def\xint_gob_til_zeros_iv #10000{}%
\def\xint_gob_til_one #11{}%
@@ -122,12 +121,7 @@
\def\xint_UDwfork #1\W#2#3\krof {#2}%
\def\xint_UDzerosfork #100#2#3\krof {#2}%
\def\xint_UDonezerofork #110#2#3\krof {#2}%
-\def\xint_UDzerominusfork #10-#2#3\krof {#2}%
\def\xint_UDsignsfork #1--#2#3\krof {#2}%
-\chardef\xint_c_ii 2
-\chardef\xint_c_iii 3
-\chardef\xint_c_iv 4
-\chardef\xint_c_v 5
\chardef\xint_c_ix 9
\chardef\xint_c_x 10
\chardef\xint_c_ii^v 32 % not used in xint, common to xintfrac and xintbinhex
@@ -168,8 +162,8 @@
{%
\expandafter\XINT_length_loop
\xint_UDsignfork
- #1{{0}}%
- -{{0}#1}%
+ #1{0.}%
+ -{0.#1}%
\krof
}%
\def\XINT_RQ #1#2#3#4#5#6#7#8#9%
diff --git a/Master/texmf-dist/tex/generic/xint/xintbinhex.sty b/Master/texmf-dist/tex/generic/xint/xintbinhex.sty
index 3308a4a0c3c..44fd98864d5 100644
--- a/Master/texmf-dist/tex/generic/xint/xintbinhex.sty
+++ b/Master/texmf-dist/tex/generic/xint/xintbinhex.sty
@@ -21,7 +21,7 @@
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
%%----------------------------------------------------------------
-%% The xint bundle (version 1.09kb of February 13, 2014)
+%% The xint bundle (version 1.09m of February 26, 2014)
%% xintbinhex: Expandable binary and hexadecimal conversions
%% Copyright (C) 2013-2014 by Jean-Francois Burnol
%%----------------------------------------------------------------
@@ -101,7 +101,7 @@
\XINTsetupcatcodes%
\XINT_providespackage
\ProvidesPackage{xintbinhex}%
- [2014/02/13 v1.09kb Expandable binary and hexadecimal conversions (jfB)]%
+ [2014/02/26 v1.09m Expandable binary and hexadecimal conversions (jfB)]%
\chardef\xint_c_xvi 16
\chardef\xint_c_ii^vii 128
\mathchardef\xint_c_ii^viii 256
diff --git a/Master/texmf-dist/tex/generic/xint/xintcfrac.sty b/Master/texmf-dist/tex/generic/xint/xintcfrac.sty
index cd03181aa3b..abe94579dff 100644
--- a/Master/texmf-dist/tex/generic/xint/xintcfrac.sty
+++ b/Master/texmf-dist/tex/generic/xint/xintcfrac.sty
@@ -21,7 +21,7 @@
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
%%----------------------------------------------------------------
-%% The xint bundle (version 1.09kb of February 13, 2014)
+%% The xint bundle (version 1.09m of February 26, 2014)
%% xintcfrac: Expandable continued fractions with xint package
%% Copyright (C) 2013-2014 by Jean-Francois Burnol
%%----------------------------------------------------------------
@@ -101,22 +101,22 @@
\XINTsetupcatcodes%
\XINT_providespackage
\ProvidesPackage{xintcfrac}%
- [2014/02/13 v1.09kb Expandable continued fractions with xint package (jfB)]%
+ [2014/02/26 v1.09m Expandable continued fractions with xint package (jfB)]%
\def\xintCFrac {\romannumeral0\xintcfrac }%
\def\xintcfrac #1%
{%
- \XINT_cfrac_opt_a #1\Z
+ \XINT_cfrac_opt_a #1\xint_relax
}%
\def\XINT_cfrac_opt_a #1%
{%
\ifx[#1\XINT_cfrac_opt_b\fi \XINT_cfrac_noopt #1%
}%
-\def\XINT_cfrac_noopt #1\Z
+\def\XINT_cfrac_noopt #1\xint_relax
{%
\expandafter\XINT_cfrac_A\romannumeral0\xintrawwithzeros {#1}\Z
\relax\relax
}%
-\def\XINT_cfrac_opt_b\fi\XINT_cfrac_noopt [\Z #1]%
+\def\XINT_cfrac_opt_b\fi\XINT_cfrac_noopt [\xint_relax #1]%
{%
\fi\csname XINT_cfrac_opt#1\endcsname
}%
@@ -177,30 +177,30 @@
}%
\def\XINT_cfrac_end_b \Z+\cfrac#1#2{ #2}%
\def\xintGCFrac {\romannumeral0\xintgcfrac }%
-\def\xintgcfrac #1{\XINT_gcfrac_opt_a #1\Z }%
+\def\xintgcfrac #1{\XINT_gcfrac_opt_a #1\xint_relax }%
\def\XINT_gcfrac_opt_a #1%
{%
\ifx[#1\XINT_gcfrac_opt_b\fi \XINT_gcfrac_noopt #1%
}%
-\def\XINT_gcfrac_noopt #1\Z
+\def\XINT_gcfrac_noopt #1\xint_relax
{%
- \XINT_gcfrac #1+\W/\relax\relax
+ \XINT_gcfrac #1+\xint_relax/\relax\relax
}%
-\def\XINT_gcfrac_opt_b\fi\XINT_gcfrac_noopt [\Z #1]%
+\def\XINT_gcfrac_opt_b\fi\XINT_gcfrac_noopt [\xint_relax #1]%
{%
\fi\csname XINT_gcfrac_opt#1\endcsname
}%
\def\XINT_gcfrac_optl #1%
{%
- \XINT_gcfrac #1+\W/\relax\hfill
+ \XINT_gcfrac #1+\xint_relax/\relax\hfill
}%
\def\XINT_gcfrac_optc #1%
{%
- \XINT_gcfrac #1+\W/\relax\relax
+ \XINT_gcfrac #1+\xint_relax/\relax\relax
}%
\def\XINT_gcfrac_optr #1%
{%
- \XINT_gcfrac #1+\W/\hfill\relax
+ \XINT_gcfrac #1+\xint_relax/\hfill\relax
}%
\def\XINT_gcfrac
{%
@@ -209,43 +209,94 @@
\def\XINT_gcfrac_enter {\XINT_gcfrac_loop {}}%
\def\XINT_gcfrac_loop #1#2+#3/%
{%
- \xint_gob_til_W #3\XINT_gcfrac_endloop\W
+ \xint_gob_til_xint_relax #3\XINT_gcfrac_endloop\xint_relax
\XINT_gcfrac_loop {{#3}{#2}#1}%
}%
-\def\XINT_gcfrac_endloop\W\XINT_gcfrac_loop #1#2#3%
+\def\XINT_gcfrac_endloop\xint_relax\XINT_gcfrac_loop #1#2#3%
{%
- \XINT_gcfrac_T #2#3#1\Z\Z
+ \XINT_gcfrac_T #2#3#1\xint_relax\xint_relax
}%
\def\XINT_gcfrac_T #1#2#3#4{\XINT_gcfrac_U #1#2{\xintFrac{#4}}}%
\def\XINT_gcfrac_U #1#2#3#4#5%
{%
- \xint_gob_til_Z #5\XINT_gcfrac_end\Z\XINT_gcfrac_U
+ \xint_gob_til_xint_relax #5\XINT_gcfrac_end\xint_relax\XINT_gcfrac_U
#1#2{\xintFrac{#5}%
\ifcase\xintSgn{#4}
+\or+\else-\fi
\cfrac{#1\xintFrac{\xintAbs{#4}}#2}{#3}}%
}%
-\def\XINT_gcfrac_end\Z\XINT_gcfrac_U #1#2#3%
+\def\XINT_gcfrac_end\xint_relax\XINT_gcfrac_U #1#2#3%
{%
\XINT_gcfrac_end_b #3%
}%
\def\XINT_gcfrac_end_b #1\cfrac#2#3{ #3}%
+\def\xintGGCFrac {\romannumeral0\xintggcfrac }%
+\def\xintggcfrac #1{\XINT_ggcfrac_opt_a #1\xint_relax }%
+\def\XINT_ggcfrac_opt_a #1%
+{%
+ \ifx[#1\XINT_ggcfrac_opt_b\fi \XINT_ggcfrac_noopt #1%
+}%
+\def\XINT_ggcfrac_noopt #1\xint_relax
+{%
+ \XINT_ggcfrac #1+\xint_relax/\relax\relax
+}%
+\def\XINT_ggcfrac_opt_b\fi\XINT_ggcfrac_noopt [\xint_relax #1]%
+{%
+ \fi\csname XINT_ggcfrac_opt#1\endcsname
+}%
+\def\XINT_ggcfrac_optl #1%
+{%
+ \XINT_ggcfrac #1+\xint_relax/\relax\hfill
+}%
+\def\XINT_ggcfrac_optc #1%
+{%
+ \XINT_ggcfrac #1+\xint_relax/\relax\relax
+}%
+\def\XINT_ggcfrac_optr #1%
+{%
+ \XINT_ggcfrac #1+\xint_relax/\hfill\relax
+}%
+\def\XINT_ggcfrac
+{%
+ \expandafter\XINT_ggcfrac_enter\romannumeral-`0%
+}%
+\def\XINT_ggcfrac_enter {\XINT_ggcfrac_loop {}}%
+\def\XINT_ggcfrac_loop #1#2+#3/%
+{%
+ \xint_gob_til_xint_relax #3\XINT_ggcfrac_endloop\xint_relax
+ \XINT_ggcfrac_loop {{#3}{#2}#1}%
+}%
+\def\XINT_ggcfrac_endloop\xint_relax\XINT_ggcfrac_loop #1#2#3%
+{%
+ \XINT_ggcfrac_T #2#3#1\xint_relax\xint_relax
+}%
+\def\XINT_ggcfrac_T #1#2#3#4{\XINT_ggcfrac_U #1#2{#4}}%
+\def\XINT_ggcfrac_U #1#2#3#4#5%
+{%
+ \xint_gob_til_xint_relax #5\XINT_ggcfrac_end\xint_relax\XINT_ggcfrac_U
+ #1#2{#5+\cfrac{#1#4#2}{#3}}%
+}%
+\def\XINT_ggcfrac_end\xint_relax\XINT_ggcfrac_U #1#2#3%
+{%
+ \XINT_ggcfrac_end_b #3%
+}%
+\def\XINT_ggcfrac_end_b #1\cfrac#2#3{ #3}%
\def\xintGCtoGCx {\romannumeral0\xintgctogcx }%
\def\xintgctogcx #1#2#3%
{%
\expandafter\XINT_gctgcx_start\expandafter {\romannumeral-`0#3}{#1}{#2}%
}%
-\def\XINT_gctgcx_start #1#2#3{\XINT_gctgcx_loop_a {}{#2}{#3}#1+\W/}%
+\def\XINT_gctgcx_start #1#2#3{\XINT_gctgcx_loop_a {}{#2}{#3}#1+\xint_relax/}%
\def\XINT_gctgcx_loop_a #1#2#3#4+#5/%
{%
- \xint_gob_til_W #5\XINT_gctgcx_end\W
+ \xint_gob_til_xint_relax #5\XINT_gctgcx_end\xint_relax
\XINT_gctgcx_loop_b {#1{#4}}{#2{#5}#3}{#2}{#3}%
}%
\def\XINT_gctgcx_loop_b #1#2%
{%
\XINT_gctgcx_loop_a {#1#2}%
}%
-\def\XINT_gctgcx_end\W\XINT_gctgcx_loop_b #1#2#3#4{ #1}%
+\def\XINT_gctgcx_end\xint_relax\XINT_gctgcx_loop_b #1#2#3#4{ #1}%
\def\xintFtoCs {\romannumeral0\xintftocs }%
\def\xintftocs #1%
{%
@@ -264,7 +315,7 @@
\xint_gob_til_zero #1\XINT_ftc_integer 0\XINT_ftc_D #1%
}%
\def\XINT_ftc_integer 0\XINT_ftc_D 0#1.#2#3{ #2}%
-\def\XINT_ftc_D #1.#2#3{\XINT_ftc_loop_a {#1}{#3}{#1}{#2,}}%
+\def\XINT_ftc_D #1.#2#3{\XINT_ftc_loop_a {#1}{#3}{#1}{#2, }}% 1.09m adds a space
\def\XINT_ftc_loop_a
{%
\expandafter\XINT_ftc_loop_d\romannumeral0\XINT_div_prepare
@@ -279,7 +330,7 @@
}%
\def\XINT_ftc_loop_f #1.#2#3#4%
{%
- \XINT_ftc_loop_a {#1}{#3}{#1}{#4#2,}%
+ \XINT_ftc_loop_a {#1}{#3}{#1}{#4#2, }% 1.09m has an added space here
}%
\def\xint_ftc_loop_exit0\XINT_ftc_loop_f #1.#2#3#4{ #4#2}%
\def\xintFtoCx {\romannumeral0\xintftocx }%
@@ -300,7 +351,7 @@
\xint_gob_til_zero #1\XINT_ftcx_integer 0\XINT_ftcx_D #1%
}%
\def\XINT_ftcx_integer 0\XINT_ftcx_D 0#1.#2#3#4{ #2}%
-\def\XINT_ftcx_D #1.#2#3#4{\XINT_ftcx_loop_a {#1}{#3}{#1}{#2#4}{#4}}%
+\def\XINT_ftcx_D #1.#2#3#4{\XINT_ftcx_loop_a {#1}{#3}{#1}{{#2}#4}{#4}}%
\def\XINT_ftcx_loop_a
{%
\expandafter\XINT_ftcx_loop_d\romannumeral0\XINT_div_prepare
@@ -318,8 +369,55 @@
\XINT_ftcx_loop_a {#1}{#3}{#1}{#4{#2}#5}{#5}%
}%
\def\xint_ftcx_loop_exit0\XINT_ftcx_loop_f #1.#2#3#4#5{ #4{#2}}%
+\def\xintFtoC {\romannumeral0\xintftoc }%
+\def\xintftoc {\xintftocx {}}%
\def\xintFtoGC {\romannumeral0\xintftogc }%
\def\xintftogc {\xintftocx {+1/}}%
+\def\xintFGtoC {\romannumeral0\xintfgtoc}%
+\def\xintfgtoc#1%
+{%
+ \expandafter\XINT_fgtc_a\romannumeral0\xintrawwithzeros {#1}\Z
+}%
+\def\XINT_fgtc_a #1/#2\Z #3%
+{%
+ \expandafter\XINT_fgtc_b\romannumeral0\xintrawwithzeros {#3}\Z #1/#2\Z { }%
+}%
+\def\XINT_fgtc_b #1/#2\Z
+{%
+ \expandafter\XINT_fgtc_c\romannumeral0\xintiidivision {#1}{#2}{#2}%
+}%
+\def\XINT_fgtc_c #1#2#3#4/#5\Z
+{%
+ \expandafter\XINT_fgtc_d\romannumeral0\xintiidivision
+ {#4}{#5}{#5}{#1}{#2}{#3}%
+}%
+\def\XINT_fgtc_d #1#2#3#4%#5#6#7%
+{%
+ \xintifEq {#1}{#4}{\XINT_fgtc_da {#1}{#2}{#3}{#4}}%
+ {\xint_thirdofthree}%
+}%
+\def\XINT_fgtc_da #1#2#3#4#5#6#7%
+{%
+ \XINT_fgtc_e {#2}{#5}{#3}{#6}{#7{#1}}%
+}%
+\def\XINT_fgtc_e #1%
+{%
+ \xintifZero {#1}{\expandafter\xint_firstofone\xint_gobble_iii}%
+ {\XINT_fgtc_f {#1}}%
+}%
+\def\XINT_fgtc_f #1#2%
+{%
+ \xintifZero {#2}{\xint_thirdofthree}{\XINT_fgtc_g {#1}{#2}}%
+}%
+\def\XINT_fgtc_g #1#2#3%
+{%
+ \expandafter\XINT_fgtc_h\romannumeral0\XINT_div_prepare {#1}{#3}{#1}{#2}%
+}%
+\def\XINT_fgtc_h #1#2#3#4#5%
+{%
+ \expandafter\XINT_fgtc_d\romannumeral0\XINT_div_prepare
+ {#4}{#5}{#4}{#1}{#2}{#3}%
+}%
\def\xintFtoCC {\romannumeral0\xintftocc }%
\def\xintftocc #1%
{%
@@ -391,56 +489,51 @@
\expandafter\XINT_ftcc_loop_a\expandafter
{\romannumeral0\xintdiv {1[0]}{#1}}{#3#2+-1/}%
}%
-\def\xintFtoCv {\romannumeral0\xintftocv }%
-\def\xintftocv #1%
-{%
- \xinticstocv {\xintFtoCs {#1}}%
-}%
-\def\xintFtoCCv {\romannumeral0\xintftoccv }%
-\def\xintftoccv #1%
-{%
- \xintigctocv {\xintFtoCC {#1}}%
-}%
\def\xintCstoF {\romannumeral0\xintcstof }%
\def\xintcstof #1%
{%
- \expandafter\XINT_cstf_prep \romannumeral-`0#1,\W,%
+ \expandafter\XINT_ctf_prep \romannumeral0\xintcsvtolist{#1}\xint_relax
+}%
+\def\xintCtoF {\romannumeral0\xintctof }%
+\def\xintctof #1%
+{%
+ \expandafter\XINT_ctf_prep \romannumeral-`0#1\xint_relax
}%
-\def\XINT_cstf_prep
+\def\XINT_ctf_prep
{%
- \XINT_cstf_loop_a 1001%
+ \XINT_ctf_loop_a 1001%
}%
-\def\XINT_cstf_loop_a #1#2#3#4#5,%
+\def\XINT_ctf_loop_a #1#2#3#4#5%
{%
- \xint_gob_til_W #5\XINT_cstf_end\W
- \expandafter\XINT_cstf_loop_b
+ \xint_gob_til_xint_relax #5\XINT_ctf_end\xint_relax
+ \expandafter\XINT_ctf_loop_b
\romannumeral0\xintrawwithzeros {#5}.{#1}{#2}{#3}{#4}%
}%
-\def\XINT_cstf_loop_b #1/#2.#3#4#5#6%
+\def\XINT_ctf_loop_b #1/#2.#3#4#5#6%
{%
- \expandafter\XINT_cstf_loop_c\expandafter
+ \expandafter\XINT_ctf_loop_c\expandafter
{\romannumeral0\XINT_mul_fork #2\Z #4\Z }%
{\romannumeral0\XINT_mul_fork #2\Z #3\Z }%
{\romannumeral0\xintiiadd {\XINT_Mul {#2}{#6}}{\XINT_Mul {#1}{#4}}}%
{\romannumeral0\xintiiadd {\XINT_Mul {#2}{#5}}{\XINT_Mul {#1}{#3}}}%
}%
-\def\XINT_cstf_loop_c #1#2%
+\def\XINT_ctf_loop_c #1#2%
{%
- \expandafter\XINT_cstf_loop_d\expandafter {\expandafter{#2}{#1}}%
+ \expandafter\XINT_ctf_loop_d\expandafter {\expandafter{#2}{#1}}%
}%
-\def\XINT_cstf_loop_d #1#2%
+\def\XINT_ctf_loop_d #1#2%
{%
- \expandafter\XINT_cstf_loop_e\expandafter {\expandafter{#2}#1}%
+ \expandafter\XINT_ctf_loop_e\expandafter {\expandafter{#2}#1}%
}%
-\def\XINT_cstf_loop_e #1#2%
+\def\XINT_ctf_loop_e #1#2%
{%
- \expandafter\XINT_cstf_loop_a\expandafter{#2}#1%
+ \expandafter\XINT_ctf_loop_a\expandafter{#2}#1%
}%
-\def\XINT_cstf_end #1.#2#3#4#5{\xintrawwithzeros {#2/#3}}% 1.09b removes [0]
+\def\XINT_ctf_end #1.#2#3#4#5{\xintrawwithzeros {#2/#3}}% 1.09b removes [0]
\def\xintiCstoF {\romannumeral0\xinticstof }%
\def\xinticstof #1%
{%
- \expandafter\XINT_icstf_prep \romannumeral-`0#1,\W,%
+ \expandafter\XINT_icstf_prep \romannumeral-`0#1,\xint_relax,%
}%
\def\XINT_icstf_prep
{%
@@ -448,7 +541,7 @@
}%
\def\XINT_icstf_loop_a #1#2#3#4#5,%
{%
- \xint_gob_til_W #5\XINT_icstf_end\W
+ \xint_gob_til_xint_relax #5\XINT_icstf_end\xint_relax
\expandafter
\XINT_icstf_loop_b \romannumeral-`0#5.{#1}{#2}{#3}{#4}%
}%
@@ -467,7 +560,7 @@
\def\xintGCtoF {\romannumeral0\xintgctof }%
\def\xintgctof #1%
{%
- \expandafter\XINT_gctf_prep \romannumeral-`0#1+\W/%
+ \expandafter\XINT_gctf_prep \romannumeral-`0#1+\xint_relax/%
}%
\def\XINT_gctf_prep
{%
@@ -500,7 +593,7 @@
}%
\def\XINT_gctf_loop_f #1#2/%
{%
- \xint_gob_til_W #2\XINT_gctf_end\W
+ \xint_gob_til_xint_relax #2\XINT_gctf_end\xint_relax
\expandafter\XINT_gctf_loop_g
\romannumeral0\xintrawwithzeros {#2}.#1%
}%
@@ -528,7 +621,7 @@
\def\xintiGCtoF {\romannumeral0\xintigctof }%
\def\xintigctof #1%
{%
- \expandafter\XINT_igctf_prep \romannumeral-`0#1+\W/%
+ \expandafter\XINT_igctf_prep \romannumeral-`0#1+\xint_relax/%
}%
\def\XINT_igctf_prep
{%
@@ -552,7 +645,7 @@
}%
\def\XINT_igctf_loop_f #1#2#3#4/%
{%
- \xint_gob_til_W #4\XINT_igctf_end\W
+ \xint_gob_til_xint_relax #4\XINT_igctf_end\xint_relax
\expandafter\XINT_igctf_loop_g
\romannumeral-`0#4.{#2}{#3}#1%
}%
@@ -574,49 +667,54 @@
\def\xintCstoCv {\romannumeral0\xintcstocv }%
\def\xintcstocv #1%
{%
- \expandafter\XINT_cstcv_prep \romannumeral-`0#1,\W,%
+ \expandafter\XINT_ctcv_prep\romannumeral0\xintcsvtolist{#1}\xint_relax
}%
-\def\XINT_cstcv_prep
+\def\xintCtoCv {\romannumeral0\xintctocv }%
+\def\xintctocv #1%
{%
- \XINT_cstcv_loop_a {}1001%
+ \expandafter\XINT_ctcv_prep\romannumeral-`0#1\xint_relax
}%
-\def\XINT_cstcv_loop_a #1#2#3#4#5#6,%
+\def\XINT_ctcv_prep
{%
- \xint_gob_til_W #6\XINT_cstcv_end\W
- \expandafter\XINT_cstcv_loop_b
+ \XINT_ctcv_loop_a {}1001%
+}%
+\def\XINT_ctcv_loop_a #1#2#3#4#5#6%
+{%
+ \xint_gob_til_xint_relax #6\XINT_ctcv_end\xint_relax
+ \expandafter\XINT_ctcv_loop_b
\romannumeral0\xintrawwithzeros {#6}.{#2}{#3}{#4}{#5}{#1}%
}%
-\def\XINT_cstcv_loop_b #1/#2.#3#4#5#6%
+\def\XINT_ctcv_loop_b #1/#2.#3#4#5#6%
{%
- \expandafter\XINT_cstcv_loop_c\expandafter
+ \expandafter\XINT_ctcv_loop_c\expandafter
{\romannumeral0\XINT_mul_fork #2\Z #4\Z }%
{\romannumeral0\XINT_mul_fork #2\Z #3\Z }%
{\romannumeral0\xintiiadd {\XINT_Mul {#2}{#6}}{\XINT_Mul {#1}{#4}}}%
{\romannumeral0\xintiiadd {\XINT_Mul {#2}{#5}}{\XINT_Mul {#1}{#3}}}%
}%
-\def\XINT_cstcv_loop_c #1#2%
+\def\XINT_ctcv_loop_c #1#2%
{%
- \expandafter\XINT_cstcv_loop_d\expandafter {\expandafter{#2}{#1}}%
+ \expandafter\XINT_ctcv_loop_d\expandafter {\expandafter{#2}{#1}}%
}%
-\def\XINT_cstcv_loop_d #1#2%
+\def\XINT_ctcv_loop_d #1#2%
{%
- \expandafter\XINT_cstcv_loop_e\expandafter {\expandafter{#2}#1}%
+ \expandafter\XINT_ctcv_loop_e\expandafter {\expandafter{#2}#1}%
}%
-\def\XINT_cstcv_loop_e #1#2%
+\def\XINT_ctcv_loop_e #1#2%
{%
- \expandafter\XINT_cstcv_loop_f\expandafter{#2}#1%
+ \expandafter\XINT_ctcv_loop_f\expandafter{#2}#1%
}%
-\def\XINT_cstcv_loop_f #1#2#3#4#5%
+\def\XINT_ctcv_loop_f #1#2#3#4#5%
{%
- \expandafter\XINT_cstcv_loop_g\expandafter
+ \expandafter\XINT_ctcv_loop_g\expandafter
{\romannumeral0\xintrawwithzeros {#1/#2}}{#5}{#1}{#2}{#3}{#4}%
}%
-\def\XINT_cstcv_loop_g #1#2{\XINT_cstcv_loop_a {#2{#1}}}% 1.09b removes [0]
-\def\XINT_cstcv_end #1.#2#3#4#5#6{ #6}%
+\def\XINT_ctcv_loop_g #1#2{\XINT_ctcv_loop_a {#2{#1}}}% 1.09b removes [0]
+\def\XINT_ctcv_end #1.#2#3#4#5#6{ #6}%
\def\xintiCstoCv {\romannumeral0\xinticstocv }%
\def\xinticstocv #1%
{%
- \expandafter\XINT_icstcv_prep \romannumeral-`0#1,\W,%
+ \expandafter\XINT_icstcv_prep \romannumeral-`0#1,\xint_relax,%
}%
\def\XINT_icstcv_prep
{%
@@ -624,7 +722,7 @@
}%
\def\XINT_icstcv_loop_a #1#2#3#4#5#6,%
{%
- \xint_gob_til_W #6\XINT_icstcv_end\W
+ \xint_gob_til_xint_relax #6\XINT_icstcv_end\xint_relax
\expandafter
\XINT_icstcv_loop_b \romannumeral-`0#6.{#2}{#3}{#4}{#5}{#1}%
}%
@@ -649,7 +747,7 @@
\def\xintGCtoCv {\romannumeral0\xintgctocv }%
\def\xintgctocv #1%
{%
- \expandafter\XINT_gctcv_prep \romannumeral-`0#1+\W/%
+ \expandafter\XINT_gctcv_prep \romannumeral-`0#1+\xint_relax/%
}%
\def\XINT_gctcv_prep
{%
@@ -691,7 +789,7 @@
}%
\def\XINT_gctcv_loop_h #1#2#3/%
{%
- \xint_gob_til_W #3\XINT_gctcv_end\W
+ \xint_gob_til_xint_relax #3\XINT_gctcv_end\xint_relax
\expandafter\XINT_gctcv_loop_i
\romannumeral0\xintrawwithzeros {#3}.#2{#1}%
}%
@@ -720,7 +818,7 @@
\def\xintiGCtoCv {\romannumeral0\xintigctocv }%
\def\xintigctocv #1%
{%
- \expandafter\XINT_igctcv_prep \romannumeral-`0#1+\W/%
+ \expandafter\XINT_igctcv_prep \romannumeral-`0#1+\xint_relax/%
}%
\def\XINT_igctcv_prep
{%
@@ -744,7 +842,7 @@
}%
\def\XINT_igctcv_loop_f #1#2#3#4/%
{%
- \xint_gob_til_W #4\XINT_igctcv_end_a\W
+ \xint_gob_til_xint_relax #4\XINT_igctcv_end_a\xint_relax
\expandafter\XINT_igctcv_loop_g
\romannumeral-`0#4.#1#2{#3}%
}%
@@ -772,6 +870,16 @@
{\romannumeral0\xintrawwithzeros {#2/#3}}%
}%
\def\XINT_igctcv_end_b #1#2{ #2{#1}}% 1.09b removes [0]
+\def\xintFtoCv {\romannumeral0\xintftocv }%
+\def\xintftocv #1%
+{%
+ \xinticstocv {\xintFtoCs {#1}}%
+}%
+\def\xintFtoCCv {\romannumeral0\xintftoccv }%
+\def\xintftoccv #1%
+{%
+ \xintigctocv {\xintFtoCC {#1}}%
+}%
\def\xintCntoF {\romannumeral0\xintcntof }%
\def\xintcntof #1%
{%
@@ -787,7 +895,7 @@
\xint_afterfi
{\ifnum #1=\xint_c_
\xint_afterfi {\expandafter\space \romannumeral-`0#2{0}}%
- \else \xint_afterfi { 0/1[0]}%
+ \else \xint_afterfi { }% 1.09m now returns nothing.
\fi}%
\fi
}%
@@ -820,7 +928,7 @@
\xint_afterfi
{\ifnum #1=\xint_c_
\xint_afterfi {\expandafter\space\romannumeral-`0#2{0}}%
- \else \xint_afterfi { 0/1[0]}%
+ \else \xint_afterfi { }% 1.09m now returns nothing rather than 0/1[0]
\fi}%
\fi
}%
@@ -846,19 +954,19 @@
\def\XINT_cntcs #1#2%
{%
\ifnum #1<0
- \xint_afterfi { }% 1.09i: a 0/1[0] was strangely here, removed
+ \xint_afterfi { }% 1.09i: a 0/1[0] was here, now the macro returns nothing
\else
\xint_afterfi {\expandafter\XINT_cntcs_loop\expandafter
- {\the\numexpr #1-1\expandafter}\expandafter
- {\expandafter{\romannumeral-`0#2{#1}}}{#2}}%
+ {\the\numexpr #1-\xint_c_i\expandafter}\expandafter
+ {\romannumeral-`0#2{#1}}{#2}}% produced coeff not braced
\fi
}%
\def\XINT_cntcs_loop #1#2#3%
{%
- \ifnum #1>-1 \else \XINT_cntcs_exit \fi
+ \ifnum #1>-\xint_c_i \else \XINT_cntcs_exit \fi
\expandafter\XINT_cntcs_loop\expandafter
- {\the\numexpr #1-1\expandafter }\expandafter
- {\expandafter{\romannumeral-`0#3{#1}},#2}{#3}%
+ {\the\numexpr #1-\xint_c_i\expandafter}\expandafter
+ {\romannumeral-`0#3{#1}, #2}{#3}% space added, 1.09m
}%
\def\XINT_cntcs_exit \fi
\expandafter\XINT_cntcs_loop\expandafter
@@ -866,7 +974,7 @@
{%
\fi\XINT_cntcs_exit_b #2%
}%
-\def\XINT_cntcs_exit_b #1,{ }%
+\def\XINT_cntcs_exit_b #1,{}% romannumeral stopping space already there
\def\xintCntoGC {\romannumeral0\xintcntogc }%
\def\xintcntogc #1%
{%
@@ -878,15 +986,15 @@
\xint_afterfi { }% 1.09i there was as strange 0/1[0] here, removed
\else
\xint_afterfi {\expandafter\XINT_cntgc_loop\expandafter
- {\the\numexpr #1-1\expandafter}\expandafter
+ {\the\numexpr #1-\xint_c_i\expandafter}\expandafter
{\expandafter{\romannumeral-`0#2{#1}}}{#2}}%
\fi
}%
\def\XINT_cntgc_loop #1#2#3%
{%
- \ifnum #1>-1 \else \XINT_cntgc_exit \fi
+ \ifnum #1>-\xint_c_i \else \XINT_cntgc_exit \fi
\expandafter\XINT_cntgc_loop\expandafter
- {\the\numexpr #1-1\expandafter }\expandafter
+ {\the\numexpr #1-\xint_c_i\expandafter }\expandafter
{\expandafter{\romannumeral-`0#3{#1}}+1/#2}{#3}%
}%
\def\XINT_cntgc_exit \fi
@@ -907,20 +1015,20 @@
\xint_afterfi { }% 1.09i now returns nothing
\else
\xint_afterfi {\expandafter\XINT_gcntgc_loop\expandafter
- {\the\numexpr #1-1\expandafter}\expandafter
+ {\the\numexpr #1-\xint_c_i\expandafter}\expandafter
{\expandafter{\romannumeral-`0#2{#1}}}{#2}{#3}}%
\fi
}%
\def\XINT_gcntgc_loop #1#2#3#4%
{%
- \ifnum #1>-1 \else \XINT_gcntgc_exit \fi
+ \ifnum #1>-\xint_c_i \else \XINT_gcntgc_exit \fi
\expandafter\XINT_gcntgc_loop_b\expandafter
{\expandafter{\romannumeral-`0#4{#1}}/#2}{#3{#1}}{#1}{#3}{#4}%
}%
\def\XINT_gcntgc_loop_b #1#2#3%
{%
\expandafter\XINT_gcntgc_loop\expandafter
- {\the\numexpr #3-1\expandafter}\expandafter
+ {\the\numexpr #3-\xint_c_i \expandafter}\expandafter
{\expandafter{\romannumeral-`0#2}+#1}%
}%
\def\XINT_gcntgc_exit \fi
@@ -932,25 +1040,25 @@
\def\xintCstoGC {\romannumeral0\xintcstogc }%
\def\xintcstogc #1%
{%
- \expandafter\XINT_cstc_prep \romannumeral-`0#1,\W,%
+ \expandafter\XINT_cstc_prep \romannumeral-`0#1,\xint_relax,%
}%
\def\XINT_cstc_prep #1,{\XINT_cstc_loop_a {{#1}}}%
\def\XINT_cstc_loop_a #1#2,%
{%
- \xint_gob_til_W #2\XINT_cstc_end\W
+ \xint_gob_til_xint_relax #2\XINT_cstc_end\xint_relax
\XINT_cstc_loop_b {#1}{#2}%
}%
\def\XINT_cstc_loop_b #1#2{\XINT_cstc_loop_a {#1+1/{#2}}}%
-\def\XINT_cstc_end\W\XINT_cstc_loop_b #1#2{ #1}%
+\def\XINT_cstc_end\xint_relax\XINT_cstc_loop_b #1#2{ #1}%
\def\xintGCtoGC {\romannumeral0\xintgctogc }%
\def\xintgctogc #1%
{%
- \expandafter\XINT_gctgc_start \romannumeral-`0#1+\W/%
+ \expandafter\XINT_gctgc_start \romannumeral-`0#1+\xint_relax/%
}%
\def\XINT_gctgc_start {\XINT_gctgc_loop_a {}}%
\def\XINT_gctgc_loop_a #1#2+#3/%
{%
- \xint_gob_til_W #3\XINT_gctgc_end\W
+ \xint_gob_til_xint_relax #3\XINT_gctgc_end\xint_relax
\expandafter\XINT_gctgc_loop_b\expandafter
{\romannumeral-`0#2}{#3}{#1}%
}%
@@ -963,7 +1071,7 @@
{%
\XINT_gctgc_loop_a {#3{#2}+{#1}/}%
}%
-\def\XINT_gctgc_end\W\expandafter\XINT_gctgc_loop_b
+\def\XINT_gctgc_end\xint_relax\expandafter\XINT_gctgc_loop_b
{%
\expandafter\XINT_gctgc_end_b
}%
diff --git a/Master/texmf-dist/tex/generic/xint/xintexpr.sty b/Master/texmf-dist/tex/generic/xint/xintexpr.sty
index 1873d3bfd9f..899e824186d 100644
--- a/Master/texmf-dist/tex/generic/xint/xintexpr.sty
+++ b/Master/texmf-dist/tex/generic/xint/xintexpr.sty
@@ -21,7 +21,7 @@
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
%%----------------------------------------------------------------
-%% The xint bundle (version 1.09kb of February 13, 2014)
+%% The xint bundle (version 1.09m of February 26, 2014)
%% xintexpr: Expandable expression parser
%% Copyright (C) 2013-2014 by Jean-Francois Burnol
%%----------------------------------------------------------------
@@ -101,7 +101,7 @@
\XINTsetupcatcodes%
\XINT_providespackage
\ProvidesPackage{xintexpr}%
- [2014/02/13 v1.09kb Expandable expression parser (jfB)]%
+ [2014/02/26 v1.09m Expandable expression parser (jfB)]%
\def\xint_gob_til_! #1!{}% nota bene: this ! has catcode 11
\expandafter\def\expandafter
\XINT_expr_lock\expandafter#\expandafter1\expandafter !\expandafter
diff --git a/Master/texmf-dist/tex/generic/xint/xintfrac.sty b/Master/texmf-dist/tex/generic/xint/xintfrac.sty
index d004f3ade63..b2ea1be9fbc 100644
--- a/Master/texmf-dist/tex/generic/xint/xintfrac.sty
+++ b/Master/texmf-dist/tex/generic/xint/xintfrac.sty
@@ -21,7 +21,7 @@
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
%%----------------------------------------------------------------
-%% The xint bundle (version 1.09kb of February 13, 2014)
+%% The xint bundle (version 1.09m of February 26, 2014)
%% xintfrac: Expandable operations on fractions
%% Copyright (C) 2013-2014 by Jean-Francois Burnol
%%----------------------------------------------------------------
@@ -101,9 +101,7 @@
\XINTsetupcatcodes%
\XINT_providespackage
\ProvidesPackage{xintfrac}%
- [2014/02/13 v1.09kb Expandable operations on fractions (jfB)]%
-\chardef\xint_c_vi 6
-\chardef\xint_c_vii 7
+ [2014/02/26 v1.09m Expandable operations on fractions (jfB)]%
\chardef\xint_c_xviii 18
\def\xintLen {\romannumeral0\xintlen }%
\def\xintlen #1%
@@ -629,19 +627,19 @@
\expandafter\XINT_e_end\expandafter{\the\numexpr #1+\xintNum{#4}}{#2}{#3}%
}%
\def\xintFloatE {\romannumeral0\xintfloate }%
-\def\xintfloate #1{\XINT_floate_chkopt #1\Z }%
+\def\xintfloate #1{\XINT_floate_chkopt #1\xint_relax }%
\def\XINT_floate_chkopt #1%
{%
\ifx [#1\expandafter\XINT_floate_opt
\else\expandafter\XINT_floate_noopt
\fi #1%
}%
-\def\XINT_floate_noopt #1\Z
+\def\XINT_floate_noopt #1\xint_relax
{%
\expandafter\XINT_floate_a\expandafter\XINTdigits
\romannumeral0\XINT_infrac {#1}%
}%
-\def\XINT_floate_opt [\Z #1]#2%
+\def\XINT_floate_opt [\xint_relax #1]#2%
{%
\expandafter\XINT_floate_a\expandafter
{\the\numexpr #1\expandafter}\romannumeral0\XINT_infrac {#2}%
@@ -1239,19 +1237,19 @@
{\afterassignment \xint_gobble_i \mathchardef\XINTdigits=}%
\def\xinttheDigits {\number\XINTdigits }%
\def\xintFloat {\romannumeral0\xintfloat }%
-\def\xintfloat #1{\XINT_float_chkopt #1\Z }%
+\def\xintfloat #1{\XINT_float_chkopt #1\xint_relax }%
\def\XINT_float_chkopt #1%
{%
\ifx [#1\expandafter\XINT_float_opt
\else\expandafter\XINT_float_noopt
\fi #1%
}%
-\def\XINT_float_noopt #1\Z
+\def\XINT_float_noopt #1\xint_relax
{%
\expandafter\XINT_float_a\expandafter\XINTdigits
\romannumeral0\XINT_infrac {#1}\XINT_float_Q
}%
-\def\XINT_float_opt [\Z #1]#2%
+\def\XINT_float_opt [\xint_relax #1]#2%
{%
\expandafter\XINT_float_a\expandafter
{\the\numexpr #1\expandafter}%
@@ -1915,20 +1913,20 @@
\def\xintSgn {\romannumeral0\xintsgn }%
\def\xintsgn #1{\expandafter\XINT_sgn\romannumeral0\xintraw {#1}\Z }%
\def\xintFloatAdd {\romannumeral0\xintfloatadd }%
-\def\xintfloatadd #1{\XINT_fladd_chkopt \xintfloat #1\Z }%
+\def\xintfloatadd #1{\XINT_fladd_chkopt \xintfloat #1\xint_relax }%
\def\XINTinFloatAdd {\romannumeral0\XINTinfloatadd }%
-\def\XINTinfloatadd #1{\XINT_fladd_chkopt \XINTinfloat #1\Z }%
+\def\XINTinfloatadd #1{\XINT_fladd_chkopt \XINTinfloat #1\xint_relax }%
\def\XINT_fladd_chkopt #1#2%
{%
\ifx [#2\expandafter\XINT_fladd_opt
\else\expandafter\XINT_fladd_noopt
\fi #1#2%
}%
-\def\XINT_fladd_noopt #1#2\Z #3%
+\def\XINT_fladd_noopt #1#2\xint_relax #3%
{%
#1[\XINTdigits]{\XINT_FL_Add {\XINTdigits+\xint_c_ii}{#2}{#3}}%
}%
-\def\XINT_fladd_opt #1[\Z #2]#3#4%
+\def\XINT_fladd_opt #1[\xint_relax #2]#3#4%
{%
#1[#2]{\XINT_FL_Add {#2+\xint_c_ii}{#3}{#4}}%
}%
@@ -1963,38 +1961,38 @@
\def\XINT_FL_Add_zero 0\XINT_FL_Add_c 0[0]#1[#2]#3{#1[#2]}%
\def\XINT_FL_Add_zerobis 0\XINT_FL_Add_d #1[#2]0[0]#3{#1[#2]}%
\def\xintFloatSub {\romannumeral0\xintfloatsub }%
-\def\xintfloatsub #1{\XINT_flsub_chkopt \xintfloat #1\Z }%
+\def\xintfloatsub #1{\XINT_flsub_chkopt \xintfloat #1\xint_relax }%
\def\XINTinFloatSub {\romannumeral0\XINTinfloatsub }%
-\def\XINTinfloatsub #1{\XINT_flsub_chkopt \XINTinfloat #1\Z }%
+\def\XINTinfloatsub #1{\XINT_flsub_chkopt \XINTinfloat #1\xint_relax }%
\def\XINT_flsub_chkopt #1#2%
{%
\ifx [#2\expandafter\XINT_flsub_opt
\else\expandafter\XINT_flsub_noopt
\fi #1#2%
}%
-\def\XINT_flsub_noopt #1#2\Z #3%
+\def\XINT_flsub_noopt #1#2\xint_relax #3%
{%
#1[\XINTdigits]{\XINT_FL_Add {\XINTdigits+\xint_c_ii}{#2}{\xintOpp{#3}}}%
}%
-\def\XINT_flsub_opt #1[\Z #2]#3#4%
+\def\XINT_flsub_opt #1[\xint_relax #2]#3#4%
{%
#1[#2]{\XINT_FL_Add {#2+\xint_c_ii}{#3}{\xintOpp{#4}}}%
}%
\def\xintFloatMul {\romannumeral0\xintfloatmul}%
-\def\xintfloatmul #1{\XINT_flmul_chkopt \xintfloat #1\Z }%
+\def\xintfloatmul #1{\XINT_flmul_chkopt \xintfloat #1\xint_relax }%
\def\XINTinFloatMul {\romannumeral0\XINTinfloatmul }%
-\def\XINTinfloatmul #1{\XINT_flmul_chkopt \XINTinfloat #1\Z }%
+\def\XINTinfloatmul #1{\XINT_flmul_chkopt \XINTinfloat #1\xint_relax }%
\def\XINT_flmul_chkopt #1#2%
{%
\ifx [#2\expandafter\XINT_flmul_opt
\else\expandafter\XINT_flmul_noopt
\fi #1#2%
}%
-\def\XINT_flmul_noopt #1#2\Z #3%
+\def\XINT_flmul_noopt #1#2\xint_relax #3%
{%
#1[\XINTdigits]{\XINT_FL_Mul {\XINTdigits+\xint_c_ii}{#2}{#3}}%
}%
-\def\XINT_flmul_opt #1[\Z #2]#3#4%
+\def\XINT_flmul_opt #1[\xint_relax #2]#3#4%
{%
#1[#2]{\XINT_FL_Mul {#2+\xint_c_ii}{#3}{#4}}%
}%
@@ -2009,20 +2007,20 @@
}%
\def\XINT_FL_Mul_b #1[#2]#3[#4]{\xintE{\xintiiMul {#1}{#3}}{#2+#4}}%
\def\xintFloatDiv {\romannumeral0\xintfloatdiv}%
-\def\xintfloatdiv #1{\XINT_fldiv_chkopt \xintfloat #1\Z }%
+\def\xintfloatdiv #1{\XINT_fldiv_chkopt \xintfloat #1\xint_relax }%
\def\XINTinFloatDiv {\romannumeral0\XINTinfloatdiv }%
-\def\XINTinfloatdiv #1{\XINT_fldiv_chkopt \XINTinfloat #1\Z }%
+\def\XINTinfloatdiv #1{\XINT_fldiv_chkopt \XINTinfloat #1\xint_relax }%
\def\XINT_fldiv_chkopt #1#2%
{%
\ifx [#2\expandafter\XINT_fldiv_opt
\else\expandafter\XINT_fldiv_noopt
\fi #1#2%
}%
-\def\XINT_fldiv_noopt #1#2\Z #3%
+\def\XINT_fldiv_noopt #1#2\xint_relax #3%
{%
#1[\XINTdigits]{\XINT_FL_Div {\XINTdigits+\xint_c_ii}{#2}{#3}}%
}%
-\def\XINT_fldiv_opt #1[\Z #2]#3#4%
+\def\XINT_fldiv_opt #1[\xint_relax #2]#3#4%
{%
#1[#2]{\XINT_FL_Div {#2+\xint_c_ii}{#3}{#4}}%
}%
@@ -2059,9 +2057,9 @@
{\expandafter\XINT_floatprd_b\romannumeral0\XINTinfloatmul {#1}}%
\def\XINT_floatprd_e #1\Z #2\Z { #2}%
\def\xintFloatPow {\romannumeral0\xintfloatpow}%
-\def\xintfloatpow #1{\XINT_flpow_chkopt \xintfloat #1\Z }%
+\def\xintfloatpow #1{\XINT_flpow_chkopt \xintfloat #1\xint_relax }%
\def\XINTinFloatPow {\romannumeral0\XINTinfloatpow }%
-\def\XINTinfloatpow #1{\XINT_flpow_chkopt \XINTinfloat #1\Z }%
+\def\XINTinfloatpow #1{\XINT_flpow_chkopt \XINTinfloat #1\xint_relax }%
\def\XINT_flpow_chkopt #1#2%
{%
\ifx [#2\expandafter\XINT_flpow_opt
@@ -2069,13 +2067,13 @@
\fi
#1#2%
}%
-\def\XINT_flpow_noopt #1#2\Z #3%
+\def\XINT_flpow_noopt #1#2\xint_relax #3%
{%
\expandafter\XINT_flpow_checkB_start\expandafter
{\the\numexpr #3\expandafter}\expandafter
{\the\numexpr \XINTdigits}{#2}{#1[\XINTdigits]}%
}%
-\def\XINT_flpow_opt #1[\Z #2]#3#4%
+\def\XINT_flpow_opt #1[\xint_relax #2]#3#4%
{%
\expandafter\XINT_flpow_checkB_start\expandafter
{\the\numexpr #4\expandafter}\expandafter
@@ -2200,9 +2198,9 @@
\krof
}%
\def\xintFloatPower {\romannumeral0\xintfloatpower}%
-\def\xintfloatpower #1{\XINT_flpower_chkopt \xintfloat #1\Z }%
+\def\xintfloatpower #1{\XINT_flpower_chkopt \xintfloat #1\xint_relax }%
\def\XINTinFloatPower {\romannumeral0\XINTinfloatpower}%
-\def\XINTinfloatpower #1{\XINT_flpower_chkopt \XINTinfloat #1\Z }%
+\def\XINTinfloatpower #1{\XINT_flpower_chkopt \XINTinfloat #1\xint_relax }%
\def\XINT_flpower_chkopt #1#2%
{%
\ifx [#2\expandafter\XINT_flpower_opt
@@ -2210,13 +2208,13 @@
\fi
#1#2%
}%
-\def\XINT_flpower_noopt #1#2\Z #3%
+\def\XINT_flpower_noopt #1#2\xint_relax #3%
{%
\expandafter\XINT_flpower_checkB_start\expandafter
{\the\numexpr \XINTdigits\expandafter}\expandafter
{\romannumeral0\xintnum{#3}}{#2}{#1[\XINTdigits]}%
}%
-\def\XINT_flpower_opt #1[\Z #2]#3#4%
+\def\XINT_flpower_opt #1[\xint_relax #2]#3#4%
{%
\expandafter\XINT_flpower_checkB_start\expandafter
{\the\numexpr #2\expandafter}\expandafter
@@ -2316,20 +2314,20 @@
#4{#3}{#5}%
}%
\def\xintFloatSqrt {\romannumeral0\xintfloatsqrt }%
-\def\xintfloatsqrt #1{\XINT_flsqrt_chkopt \xintfloat #1\Z }%
+\def\xintfloatsqrt #1{\XINT_flsqrt_chkopt \xintfloat #1\xint_relax }%
\def\XINTinFloatSqrt {\romannumeral0\XINTinfloatsqrt }%
-\def\XINTinfloatsqrt #1{\XINT_flsqrt_chkopt \XINTinfloat #1\Z }%
+\def\XINTinfloatsqrt #1{\XINT_flsqrt_chkopt \XINTinfloat #1\xint_relax }%
\def\XINT_flsqrt_chkopt #1#2%
{%
\ifx [#2\expandafter\XINT_flsqrt_opt
\else\expandafter\XINT_flsqrt_noopt
\fi #1#2%
}%
-\def\XINT_flsqrt_noopt #1#2\Z
+\def\XINT_flsqrt_noopt #1#2\xint_relax
{%
#1[\XINTdigits]{\XINT_FL_sqrt \XINTdigits {#2}}%
}%
-\def\XINT_flsqrt_opt #1[\Z #2]#3%
+\def\XINT_flsqrt_opt #1[\xint_relax #2]#3%
{%
#1[#2]{\XINT_FL_sqrt {#2}{#3}}%
}%
diff --git a/Master/texmf-dist/tex/generic/xint/xintgcd.sty b/Master/texmf-dist/tex/generic/xint/xintgcd.sty
index 39b7301746a..a5016c7092b 100644
--- a/Master/texmf-dist/tex/generic/xint/xintgcd.sty
+++ b/Master/texmf-dist/tex/generic/xint/xintgcd.sty
@@ -21,7 +21,7 @@
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
%%----------------------------------------------------------------
-%% The xint bundle (version 1.09kb of February 13, 2014)
+%% The xint bundle (version 1.09m of February 26, 2014)
%% xintgcd: Euclidean algorithm with xint package
%% Copyright (C) 2013-2014 by Jean-Francois Burnol
%%----------------------------------------------------------------
@@ -101,7 +101,7 @@
\XINTsetupcatcodes%
\XINT_providespackage
\ProvidesPackage{xintgcd}%
- [2014/02/13 v1.09kb Euclide algorithm with xint package (jfB)]%
+ [2014/02/26 v1.09m Euclide algorithm with xint package (jfB)]%
\def\xintGCD {\romannumeral0\xintgcd }%
\def\xintgcd #1%
{%
diff --git a/Master/texmf-dist/tex/generic/xint/xintseries.sty b/Master/texmf-dist/tex/generic/xint/xintseries.sty
index b73dc876e64..117ccd4eb36 100644
--- a/Master/texmf-dist/tex/generic/xint/xintseries.sty
+++ b/Master/texmf-dist/tex/generic/xint/xintseries.sty
@@ -21,7 +21,7 @@
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
%%----------------------------------------------------------------
-%% The xint bundle (version 1.09kb of February 13, 2014)
+%% The xint bundle (version 1.09m of February 26, 2014)
%% xintseries: Expandable partial sums with xint package
%% Copyright (C) 2013-2014 by Jean-Francois Burnol
%%----------------------------------------------------------------
@@ -101,7 +101,7 @@
\XINTsetupcatcodes%
\XINT_providespackage
\ProvidesPackage{xintseries}%
- [2014/02/13 v1.09kb Expandable partial sums with xint package (jfB)]%
+ [2014/02/26 v1.09m Expandable partial sums with xint package (jfB)]%
\def\xintSeries {\romannumeral0\xintseries }%
\def\xintseries #1#2%
{%
@@ -339,7 +339,7 @@
{#2}{#1}{#3}{#4}{#5}%
}%
\def\xintFloatPowerSeries {\romannumeral0\xintfloatpowerseries }%
-\def\xintfloatpowerseries #1{\XINT_flpowseries_chkopt #1\Z }%
+\def\xintfloatpowerseries #1{\XINT_flpowseries_chkopt #1\xint_relax }%
\def\XINT_flpowseries_chkopt #1%
{%
\ifx [#1\expandafter\XINT_flpowseries_opt
@@ -347,13 +347,13 @@
\fi
#1%
}%
-\def\XINT_flpowseries_noopt #1\Z #2%
+\def\XINT_flpowseries_noopt #1\xint_relax #2%
{%
\expandafter\XINT_flpowseries\expandafter
{\the\numexpr #1\expandafter}\expandafter
{\the\numexpr #2}\XINTdigits
}%
-\def\XINT_flpowseries_opt [\Z #1]#2#3%
+\def\XINT_flpowseries_opt [\xint_relax #1]#2#3%
{%
\expandafter\XINT_flpowseries\expandafter
{\the\numexpr #2\expandafter}\expandafter
@@ -404,7 +404,7 @@
\xintfloatadd [#7]{#4}{\XINTinfloatmul [#7]{#6{#2}}{#1}}%
}%
\def\xintFloatPowerSeriesX {\romannumeral0\xintfloatpowerseriesx }%
-\def\xintfloatpowerseriesx #1{\XINT_flpowseriesx_chkopt #1\Z }%
+\def\xintfloatpowerseriesx #1{\XINT_flpowseriesx_chkopt #1\xint_relax }%
\def\XINT_flpowseriesx_chkopt #1%
{%
\ifx [#1\expandafter\XINT_flpowseriesx_opt
@@ -412,13 +412,13 @@
\fi
#1%
}%
-\def\XINT_flpowseriesx_noopt #1\Z #2%
+\def\XINT_flpowseriesx_noopt #1\xint_relax #2%
{%
\expandafter\XINT_flpowseriesx\expandafter
{\the\numexpr #1\expandafter}\expandafter
{\the\numexpr #2}\XINTdigits
}%
-\def\XINT_flpowseriesx_opt [\Z #1]#2#3%
+\def\XINT_flpowseriesx_opt [\xint_relax #1]#2#3%
{%
\expandafter\XINT_flpowseriesx\expandafter
{\the\numexpr #2\expandafter}\expandafter
diff --git a/Master/texmf-dist/tex/generic/xint/xinttools.sty b/Master/texmf-dist/tex/generic/xint/xinttools.sty
index 11d8315c830..9b5e78d39b8 100644
--- a/Master/texmf-dist/tex/generic/xint/xinttools.sty
+++ b/Master/texmf-dist/tex/generic/xint/xinttools.sty
@@ -21,7 +21,7 @@
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
%%----------------------------------------------------------------
-%% The xint bundle (version 1.09kb of February 13, 2014)
+%% The xint bundle (version 1.09m of February 26, 2014)
%% xinttools: Expandable and non-expandable utilities
%% Copyright (C) 2013-2014 by Jean-Francois Burnol
%%----------------------------------------------------------------
@@ -152,7 +152,7 @@
\fi
\XINT_providespackage
\ProvidesPackage {xinttools}%
- [2014/02/13 v1.09kb Expandable and non-expandable utilities (jfB)]%
+ [2014/02/26 v1.09m Expandable and non-expandable utilities (jfB)]%
\long\def\xint_gobble_ {}%
\long\def\xint_gobble_i #1{}%
\long\def\xint_gobble_ii #1#2{}%
@@ -163,12 +163,14 @@
\long\def\xint_gobble_vii #1#2#3#4#5#6#7{}%
\long\def\xint_gobble_viii #1#2#3#4#5#6#7#8{}%
\long\def\xint_firstofone #1{#1}%
-\xint_firstofone{\let\XINT_sptoken= } %<- space here!
\long\def\xint_firstoftwo #1#2{#1}%
\long\def\xint_secondoftwo #1#2{#2}%
+\long\def\xint_firstofone_thenstop #1{ #1}%
\long\def\xint_firstoftwo_thenstop #1#2{ #1}%
\long\def\xint_secondoftwo_thenstop #1#2{ #2}%
\def\xint_minus_thenstop { -}%
+\def\xint_gob_til_zero #10{}% no need to make it long, so far
+\def\xint_UDzerominusfork #10-#2#3\krof {#2}% id.
\long\def\xint_gob_til_R #1\R {}%
\long\def\xint_gob_til_W #1\W {}%
\long\def\xint_gob_til_Z #1\Z {}%
@@ -178,9 +180,16 @@
\long\def\xint_gob_til_xint_relax #1\xint_relax {}%
\long\def\xint_afterfi #1#2\fi {\fi #1}%
\chardef\xint_c_ 0
-\chardef\xint_c_i 1 % 1.09k did not have it, but needed in \xintSeq
+\chardef\xint_c_i 1
+\chardef\xint_c_ii 2
+\chardef\xint_c_iii 3
+\chardef\xint_c_iv 4
+\chardef\xint_c_v 5
+\chardef\xint_c_vi 6
+\chardef\xint_c_vii 7
\chardef\xint_c_viii 8
\newtoks\XINT_toks
+\xint_firstofone{\let\XINT_sptoken= } %<- space here!
\def\xintodef #1{\expandafter\def\expandafter#1\expandafter }%
\ifdefined\odef\else\let\odef\xintodef\fi
\def\xintgodef {\global\xintodef }%
@@ -256,33 +265,33 @@
\long\def\xintlength #1%
{%
\XINT_length_loop
- {0}#1\xint_relax\xint_relax\xint_relax\xint_relax
+ 0.#1\xint_relax\xint_relax\xint_relax\xint_relax
\xint_relax\xint_relax\xint_relax\xint_relax\xint_bye
}%
-\long\def\XINT_length_loop #1#2#3#4#5#6#7#8#9%
+\long\def\XINT_length_loop #1.#2#3#4#5#6#7#8#9%
{%
\xint_gob_til_xint_relax #9\XINT_length_finish_a\xint_relax
- \expandafter\XINT_length_loop\expandafter {\the\numexpr #1+8\relax}%
+ \expandafter\XINT_length_loop\the\numexpr #1+\xint_c_viii.%
}%
-\def\XINT_length_finish_a\xint_relax
- \expandafter\XINT_length_loop\expandafter #1#2\xint_bye
+\def\XINT_length_finish_a\xint_relax\expandafter\XINT_length_loop
+ \the\numexpr #1+\xint_c_viii.#2\xint_bye
{%
\XINT_length_finish_b #2\W\W\W\W\W\W\W\Z {#1}%
}%
\def\XINT_length_finish_b #1#2#3#4#5#6#7#8\Z
{%
\xint_gob_til_W
- #1\XINT_length_finish_c 8%
- #2\XINT_length_finish_c 7%
- #3\XINT_length_finish_c 6%
- #4\XINT_length_finish_c 5%
- #5\XINT_length_finish_c 4%
- #6\XINT_length_finish_c 3%
- #7\XINT_length_finish_c 2%
- \W\XINT_length_finish_c 1\Z
+ #1\XINT_length_finish_c \xint_c_
+ #2\XINT_length_finish_c \xint_c_i
+ #3\XINT_length_finish_c \xint_c_ii
+ #4\XINT_length_finish_c \xint_c_iii
+ #5\XINT_length_finish_c \xint_c_iv
+ #6\XINT_length_finish_c \xint_c_v
+ #7\XINT_length_finish_c \xint_c_vi
+ \W\XINT_length_finish_c \xint_c_vii\Z
}%
\edef\XINT_length_finish_c #1#2\Z #3%
- {\noexpand\expandafter\space\noexpand\the\numexpr #3-#1\relax}%
+ {\noexpand\expandafter\space\noexpand\the\numexpr #3+#1\relax}%
\def\xintZapFirstSpaces {\romannumeral0\xintzapfirstspaces }%
\long\edef\xintzapfirstspaces #1%
{\noexpand\XINT_zapbsp_a \space #1\space\space\noexpand\xint_bye\xint_relax }%
@@ -411,66 +420,217 @@
\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%
+\def\xintnthelt #1#2%
{%
- \expandafter\XINT_nthelt_a\expandafter {\the\numexpr #1}%
+ \expandafter\XINT_nthelt_a\the\numexpr #1\expandafter.%
+ \expandafter{\romannumeral-`0#2}%
}%
\def\xintntheltnoexpand #1%
{%
- \expandafter\XINT_ntheltnoexpand_a\expandafter {\the\numexpr #1}%
+ \expandafter\XINT_nthelt_a\the\numexpr #1.%
}%
-\long\def\XINT_nthelt_a #1#2%
+\def\XINT_nthelt_a #1#2.%
{%
- \ifnum #1<0
- \xint_afterfi{\expandafter\XINT_nthelt_c\expandafter
- {\romannumeral0\xintrevwithbraces {#2}}{-#1}}%
- \else
- \xint_afterfi{\expandafter\XINT_nthelt_c\expandafter
- {\romannumeral-`0#2}{#1}}%
- \fi
+ \xint_UDzerominusfork
+ #1-{\XINT_nthelt_bzero}%
+ 0#1{\XINT_nthelt_bneg {#2}}%
+ 0-{\XINT_nthelt_bpos {#1#2}}%
+ \krof
}%
-\long\def\XINT_ntheltnoexpand_a #1#2%
+\long\def\XINT_nthelt_bzero #1%
{%
- \ifnum #1<0
- \xint_afterfi{\expandafter\XINT_nthelt_c\expandafter
- {\romannumeral0\xintrevwithbracesnoexpand {#2}}{-#1}}%
- \else
- \xint_afterfi{\expandafter\XINT_nthelt_c\expandafter
- {#2}{#1}}%
- \fi
+ \XINT_length_loop 0.#1\xint_relax\xint_relax\xint_relax\xint_relax
+ \xint_relax\xint_relax\xint_relax\xint_relax\xint_bye
}%
-\long\def\XINT_nthelt_c #1#2%
+\long\def\XINT_nthelt_bneg #1#2%
{%
- \ifnum #2>\xint_c_
- \expandafter\XINT_nthelt_loop_a
- \else
- \expandafter\XINT_length_loop
- \fi {#2}#1\xint_relax\xint_relax\xint_relax\xint_relax
+ \expandafter\XINT_nthelt_loop_a\expandafter {\the\numexpr #1\expandafter}%
+ \romannumeral0\xintrevwithbracesnoexpand {#2}%
+ \xint_relax\xint_relax\xint_relax\xint_relax
\xint_relax\xint_relax\xint_relax\xint_relax\xint_bye
}%
+\long\def\XINT_nthelt_bpos #1#2%
+{%
+ \XINT_nthelt_loop_a {#1}#2\xint_relax\xint_relax\xint_relax\xint_relax
+ \xint_relax\xint_relax\xint_relax\xint_relax\xint_bye
+}%
\def\XINT_nthelt_loop_a #1%
{%
\ifnum #1>\xint_c_viii
\expandafter\XINT_nthelt_loop_b
\else
- \expandafter\XINT_nthelt_getit
+ \XINT_nthelt_getit
\fi
{#1}%
}%
\long\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}%
+ \expandafter\XINT_nthelt_loop_a\expandafter{\the\numexpr #1-\xint_c_viii}%
}%
\def\XINT_nthelt_silentend #1\xint_bye { }%
-\def\XINT_nthelt_getit #1%
+\def\XINT_nthelt_getit\fi #1%
{%
- \expandafter\expandafter\expandafter\XINT_nthelt_finish
- \csname xint_gobble_\romannumeral\numexpr#1-1\endcsname
+ \fi\expandafter\expandafter\expandafter\XINT_nthelt_finish
+ \csname xint_gobble_\romannumeral\numexpr#1-\xint_c_i\endcsname
}%
\long\edef\XINT_nthelt_finish #1#2\xint_bye
{\noexpand\xint_gob_til_xint_relax #1\noexpand\expandafter\space
\noexpand\xint_gobble_iii\xint_relax\space #1}%
+\def\xintKeep {\romannumeral0\xintkeep }%
+\def\xintKeepNoExpand {\romannumeral0\xintkeepnoexpand }%
+\def\xintkeep #1#2%
+{%
+ \expandafter\XINT_keep_a\the\numexpr #1\expandafter.%
+ \expandafter{\romannumeral-`0#2}%
+}%
+\def\xintkeepnoexpand #1%
+{%
+ \expandafter\XINT_keep_a\the\numexpr #1.%
+}%
+\def\XINT_keep_a #1#2.%
+{%
+ \xint_UDzerominusfork
+ #1-{\expandafter\space\xint_gobble_i }%
+ 0#1{\XINT_keep_bneg_a {#2}}%
+ 0-{\XINT_keep_bpos {#1#2}}%
+ \krof
+}%
+\long\def\XINT_keep_bneg_a #1#2%
+{%
+ \expandafter\XINT_keep_bneg_b \the\numexpr \xintLength{#2}-#1.{#2}%
+}%
+\def\XINT_keep_bneg_b #1#2.%
+{%
+ \xint_UDzerominusfork
+ #1-{\xint_firstofone_thenstop }%
+ 0#1{\xint_firstofone_thenstop }%
+ 0-{\XINT_trim_bpos {#1#2}}%
+ \krof
+}%
+\long\def\XINT_keep_bpos #1#2%
+{%
+ \XINT_keep_loop_a {#1}{}#2\xint_relax\xint_relax\xint_relax\xint_relax
+ \xint_relax\xint_relax\xint_relax\xint_bye
+}%
+\def\XINT_keep_loop_a #1%
+{%
+ \ifnum #1>\xint_c_vi
+ \expandafter\XINT_keep_loop_b
+ \else
+ \XINT_keep_finish
+ \fi
+ {#1}%
+}%
+\long\def\XINT_keep_loop_b #1#2#3#4#5#6#7#8#9%
+{%
+ \xint_gob_til_xint_relax #9\XINT_keep_enda\xint_relax
+ \expandafter\XINT_keep_loop_c\expandafter{\the\numexpr #1-\xint_c_vii}%
+ {{#3}{#4}{#5}{#6}{#7}{#8}{#9}}{#2}%
+}%
+\long\def\XINT_keep_loop_c #1#2#3{\XINT_keep_loop_a {#1}{#3#2}}%
+\long\def\XINT_keep_enda\xint_relax
+ \expandafter\XINT_keep_loop_c\expandafter #1#2#3#4\xint_bye
+{%
+ \XINT_keep_endb #4\W\W\W\W\W\W\Z #2{#3}%
+}%
+\def\XINT_keep_endb #1#2#3#4#5#6#7\Z
+{%
+ \xint_gob_til_W
+ #1\XINT_keep_endc_
+ #2\XINT_keep_endc_i
+ #3\XINT_keep_endc_ii
+ #4\XINT_keep_endc_iii
+ #5\XINT_keep_endc_iv
+ #6\XINT_keep_endc_v
+ \W\XINT_keep_endc_vi\Z
+}%
+\long\def\XINT_keep_endc_ #1\Z #2#3#4#5#6#7#8#9{ #9}%
+\long\def\XINT_keep_endc_i #1\Z #2#3#4#5#6#7#8#9{ #9{#2}}%
+\long\def\XINT_keep_endc_ii #1\Z #2#3#4#5#6#7#8#9{ #9{#2}{#3}}%
+\long\def\XINT_keep_endc_iii #1\Z #2#3#4#5#6#7#8#9{ #9{#2}{#3}{#4}}%
+\long\def\XINT_keep_endc_iv #1\Z #2#3#4#5#6#7#8#9{ #9{#2}{#3}{#4}{#5}}%
+\long\def\XINT_keep_endc_v #1\Z #2#3#4#5#6#7#8#9{ #9{#2}{#3}{#4}{#5}{#6}}%
+\long\def\XINT_keep_endc_vi\Z #1#2#3#4#5#6#7#8{ #8{#1}{#2}{#3}{#4}{#5}{#6}}%
+\long\def\XINT_keep_finish\fi #1#2#3#4#5#6#7#8#9\xint_bye
+{%
+ \fi\XINT_keep_finish_loop_a {#1}{}{#3}{#4}{#5}{#6}{#7}{#8}\Z {#2}%
+}%
+\def\XINT_keep_finish_loop_a #1%
+{%
+ \xint_gob_til_zero #1\XINT_keep_finish_z0%
+ \expandafter\XINT_keep_finish_loop_b\expandafter
+ {\the\numexpr #1-\xint_c_i}%
+}%
+\long\def\XINT_keep_finish_z0%
+ \expandafter\XINT_keep_finish_loop_b\expandafter #1#2#3\Z #4{ #4#2}%
+\long\def\XINT_keep_finish_loop_b #1#2#3%
+{%
+ \xint_gob_til_xint_relax #3\XINT_keep_finish_exit\xint_relax
+ \XINT_keep_finish_loop_c {#1}{#2}{#3}%
+}%
+\long\def\XINT_keep_finish_exit\xint_relax
+ \XINT_keep_finish_loop_c #1#2#3\Z #4{ #4#2}%
+\long\def\XINT_keep_finish_loop_c #1#2#3%
+ {\XINT_keep_finish_loop_a {#1}{#2{#3}}}%
+\def\xintTrim {\romannumeral0\xinttrim }%
+\def\xintTrimNoExpand {\romannumeral0\xinttrimnoexpand }%
+\def\xinttrim #1#2%
+{%
+ \expandafter\XINT_trim_a\the\numexpr #1\expandafter.%
+ \expandafter{\romannumeral-`0#2}%
+}%
+\def\xinttrimnoexpand #1%
+{%
+ \expandafter\XINT_trim_a\the\numexpr #1.%
+}%
+\def\XINT_trim_a #1#2.%
+{%
+ \xint_UDzerominusfork
+ #1-{\xint_firstofone_thenstop }%
+ 0#1{\XINT_trim_bneg_a {#2}}%
+ 0-{\XINT_trim_bpos {#1#2}}%
+ \krof
+}%
+\long\def\XINT_trim_bneg_a #1#2%
+{%
+ \expandafter\XINT_trim_bneg_b \the\numexpr \xintLength{#2}-#1.{#2}%
+}%
+\def\XINT_trim_bneg_b #1#2.%
+{%
+ \xint_UDzerominusfork
+ #1-{\expandafter\space\xint_gobble_i }%
+ 0#1{\expandafter\space\xint_gobble_i }%
+ 0-{\XINT_keep_bpos {#1#2}}%
+ \krof
+}%
+\long\def\XINT_trim_bpos #1#2%
+{%
+ \XINT_trim_loop_a {#1}#2\xint_relax\xint_relax\xint_relax\xint_relax
+ \xint_relax\xint_relax\xint_relax\xint_relax\xint_bye
+}%
+\def\XINT_trim_loop_a #1%
+{%
+ \ifnum #1>\xint_c_vii
+ \expandafter\XINT_trim_loop_b
+ \else
+ \XINT_trim_finish
+ \fi
+ {#1}%
+}%
+\long\def\XINT_trim_loop_b #1#2#3#4#5#6#7#8#9%
+{%
+ \xint_gob_til_xint_relax #9\XINT_trim_silentend\xint_relax
+ \expandafter\XINT_trim_loop_a\expandafter{\the\numexpr #1-\xint_c_viii}%
+}%
+\def\XINT_trim_silentend #1\xint_bye { }%
+\def\XINT_trim_finish\fi #1%
+{%
+ \fi\expandafter\expandafter\expandafter\XINT_trim_finish_a
+ \expandafter\expandafter\expandafter\space % avoids brace removal
+ \csname xint_gobble_\romannumeral\numexpr#1\endcsname
+}%
+\long\def\XINT_trim_finish_a #1\xint_relax #2\xint_bye {#1}%
\def\xintApply {\romannumeral0\xintapply }%
\def\xintApplyNoExpand {\romannumeral0\xintapplynoexpand }%
\long\def\xintapply #1#2%