From c0fd6688c3703e0e3835fea389bccdf0fc0e6902 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Tue, 20 Oct 2015 21:19:41 +0000 Subject: xint (20oct15) git-svn-id: svn://tug.org/texlive/trunk@38680 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/tex/generic/xint/xint.sty | 86 +++-- Master/texmf-dist/tex/generic/xint/xintbinhex.sty | 30 +- Master/texmf-dist/tex/generic/xint/xintcfrac.sty | 68 ++-- Master/texmf-dist/tex/generic/xint/xintcore.sty | 64 ++-- Master/texmf-dist/tex/generic/xint/xintexpr.sty | 402 +++++++++++----------- Master/texmf-dist/tex/generic/xint/xintfrac.sty | 40 +-- Master/texmf-dist/tex/generic/xint/xintgcd.sty | 16 +- Master/texmf-dist/tex/generic/xint/xintkernel.sty | 32 +- Master/texmf-dist/tex/generic/xint/xintseries.sty | 12 +- Master/texmf-dist/tex/generic/xint/xinttools.sty | 160 +++++++-- 10 files changed, 528 insertions(+), 382 deletions(-) (limited to 'Master/texmf-dist/tex/generic/xint') diff --git a/Master/texmf-dist/tex/generic/xint/xint.sty b/Master/texmf-dist/tex/generic/xint/xint.sty index b06c32ff687..757e72728b6 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 v1.2 2015/10/10 +%% The xint bundle v1.2a 2015/10/19 %% Copyright (C) 2013-2015 by Jean-Francois Burnol %% xint: Expandable operations on big integers %% --------------------------------------------------------------- @@ -70,7 +70,7 @@ \XINTsetupcatcodes% defined in xintkernel.sty (loaded by xintcore.sty) \XINT_providespackage \ProvidesPackage{xint}% - [2015/10/10 v1.2 Expandable operations on big integers (jfB)]% + [2015/10/19 v1.2a Expandable operations on big integers (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}% @@ -90,7 +90,7 @@ \fi }% \def\xintiiIsOne {\romannumeral0\xintiiisone }% -\def\xintiiisone #1{\expandafter\XINT_isone\romannumeral-`0#1\W\Z }% +\def\xintiiisone #1{\expandafter\XINT_isone\romannumeral`&&@#1\W\Z }% \def\xintIsOne {\romannumeral0\xintisone }% \def\xintisone #1{\expandafter\XINT_isone\romannumeral0\xintnum{#1}\W\Z }% \def\XINT_isOne #1{\romannumeral0\XINT_isone #1\W\Z }% @@ -127,9 +127,9 @@ -{0.#1}% \krof }% -\def\xintBool #1{\romannumeral-`0% +\def\xintBool #1{\romannumeral`&&@% \csname if#1\endcsname\expandafter1\else\expandafter0\fi }% -\def\xintToggle #1{\romannumeral-`0\iftoggle{#1}{1}{0}}% +\def\xintToggle #1{\romannumeral`&&@\iftoggle{#1}{1}{0}}% \def\xintifSgn {\romannumeral0\xintifsgn }% \def\xintifsgn #1% {% @@ -293,10 +293,10 @@ \def\xintCmp {\romannumeral0\xintcmp }% \def\xintcmp #1{\expandafter\XINT_icmp\romannumeral0\xintnum{#1}\Z }% \def\xintiiCmp {\romannumeral0\xintiicmp }% -\def\xintiicmp #1{\expandafter\XINT_iicmp\romannumeral-`0#1\Z }% +\def\xintiicmp #1{\expandafter\XINT_iicmp\romannumeral`&&@#1\Z }% \def\XINT_iicmp #1#2\Z #3% {% - \expandafter\XINT_cmp_nfork\expandafter #1\romannumeral-`0#3\Z #2\Z + \expandafter\XINT_cmp_nfork\expandafter #1\romannumeral`&&@#3\Z #2\Z }% \let\XINT_Cmp \xintiiCmp \def\XINT_icmp #1#2\Z #3% @@ -496,8 +496,8 @@ \def\xintxor #1#2{\if\xintIsZero{#1}\xintIsZero{#2}% \xint_afterfi{ 0}\else\xint_afterfi{ 1}\fi }% \def\xintANDof {\romannumeral0\xintandof }% -\def\xintandof #1{\expandafter\XINT_andof_a\romannumeral-`0#1\relax }% -\def\XINT_andof_a #1{\expandafter\XINT_andof_b\romannumeral-`0#1\Z }% +\def\xintandof #1{\expandafter\XINT_andof_a\romannumeral`&&@#1\relax }% +\def\XINT_andof_a #1{\expandafter\XINT_andof_b\romannumeral`&&@#1\Z }% \def\XINT_andof_b #1% {\xint_gob_til_relax #1\XINT_andof_e\relax\XINT_andof_c #1}% \def\XINT_andof_c #1\Z @@ -505,8 +505,8 @@ \def\XINT_andof_no #1\relax { 0}% \def\XINT_andof_e #1\Z { 1}% \def\xintORof {\romannumeral0\xintorof }% -\def\xintorof #1{\expandafter\XINT_orof_a\romannumeral-`0#1\relax }% -\def\XINT_orof_a #1{\expandafter\XINT_orof_b\romannumeral-`0#1\Z }% +\def\xintorof #1{\expandafter\XINT_orof_a\romannumeral`&&@#1\relax }% +\def\XINT_orof_a #1{\expandafter\XINT_orof_b\romannumeral`&&@#1\Z }% \def\XINT_orof_b #1% {\xint_gob_til_relax #1\XINT_orof_e\relax\XINT_orof_c #1}% \def\XINT_orof_c #1\Z @@ -515,8 +515,8 @@ \def\XINT_orof_e #1\Z { 0}% \def\xintXORof {\romannumeral0\xintxorof }% \def\xintxorof #1{\expandafter\XINT_xorof_a\expandafter - 0\romannumeral-`0#1\relax }% -\def\XINT_xorof_a #1#2{\expandafter\XINT_xorof_b\romannumeral-`0#2\Z #1}% + 0\romannumeral`&&@#1\relax }% +\def\XINT_xorof_a #1#2{\expandafter\XINT_xorof_b\romannumeral`&&@#2\Z #1}% \def\XINT_xorof_b #1% {\xint_gob_til_relax #1\XINT_xorof_e\relax\XINT_xorof_c #1}% \def\XINT_xorof_c #1\Z #2% @@ -528,10 +528,10 @@ \def\xintGeq {\romannumeral0\xintgeq }% \def\xintgeq #1{\expandafter\XINT_geq\romannumeral0\xintnum{#1}\Z }% \def\xintiiGeq {\romannumeral0\xintiigeq }% -\def\xintiigeq #1{\expandafter\XINT_iigeq\romannumeral-`0#1\Z }% +\def\xintiigeq #1{\expandafter\XINT_iigeq\romannumeral`&&@#1\Z }% \def\XINT_iigeq #1#2\Z #3% {% - \expandafter\XINT_geq_fork\expandafter #1\romannumeral-`0#3\Z #2\Z + \expandafter\XINT_geq_fork\expandafter #1\romannumeral`&&@#3\Z #2\Z }% \let\XINT_geq_pre \xintiigeq % TEMPORAIRE \let\XINT_Geq \xintGeq % TEMPORAIRE ATTENTION FAIT xintNum @@ -685,11 +685,11 @@ \def\xintiiMax {\romannumeral0\xintiimax }% \def\xintiimax #1% {% - \expandafter\xint_iimax\expandafter {\romannumeral-`0#1}% + \expandafter\xint_iimax\expandafter {\romannumeral`&&@#1}% }% \def\xint_iimax #1#2% {% - \expandafter\XINT_max_pre\expandafter {\romannumeral-`0#2}{#1}% + \expandafter\XINT_max_pre\expandafter {\romannumeral`&&@#2}{#1}% }% \def\XINT_max_pre #1#2{\XINT_max_fork #1\Z #2\Z {#2}{#1}}% \def\XINT_Max #1#2{\romannumeral0\XINT_max_fork #2\Z #1\Z {#1}{#2}}% @@ -730,15 +730,25 @@ \fi }% \def\xintiMaxof {\romannumeral0\xintimaxof }% -\def\xintimaxof #1{\expandafter\XINT_imaxof_a\romannumeral-`0#1\relax }% +\def\xintimaxof #1{\expandafter\XINT_imaxof_a\romannumeral`&&@#1\relax }% \def\XINT_imaxof_a #1{\expandafter\XINT_imaxof_b\romannumeral0\xintnum{#1}\Z }% \def\XINT_imaxof_b #1\Z #2% - {\expandafter\XINT_imaxof_c\romannumeral-`0#2\Z {#1}\Z}% + {\expandafter\XINT_imaxof_c\romannumeral`&&@#2\Z {#1}\Z}% \def\XINT_imaxof_c #1% {\xint_gob_til_relax #1\XINT_imaxof_e\relax\XINT_imaxof_d #1}% \def\XINT_imaxof_d #1\Z {\expandafter\XINT_imaxof_b\romannumeral0\xintimax {#1}}% \def\XINT_imaxof_e #1\Z #2\Z { #2}% +\def\xintiiMaxof {\romannumeral0\xintiimaxof }% +\def\xintiimaxof #1{\expandafter\XINT_iimaxof_a\romannumeral`&&@#1\relax }% +\def\XINT_iimaxof_a #1{\expandafter\XINT_iimaxof_b\romannumeral`&&@#1\Z }% +\def\XINT_iimaxof_b #1\Z #2% + {\expandafter\XINT_iimaxof_c\romannumeral`&&@#2\Z {#1}\Z}% +\def\XINT_iimaxof_c #1% + {\xint_gob_til_relax #1\XINT_iimaxof_e\relax\XINT_iimaxof_d #1}% +\def\XINT_iimaxof_d #1\Z + {\expandafter\XINT_iimaxof_b\romannumeral0\xintiimax {#1}}% +\def\XINT_iimaxof_e #1\Z #2\Z { #2}% \def\xintiMin {\romannumeral0\xintimin }% \def\xintimin #1% {% @@ -751,11 +761,11 @@ \def\xintiiMin {\romannumeral0\xintiimin }% \def\xintiimin #1% {% - \expandafter\xint_iimin\expandafter {\romannumeral-`0#1}% + \expandafter\xint_iimin\expandafter {\romannumeral`&&@#1}% }% \def\xint_iimin #1#2% {% - \expandafter\XINT_min_pre\expandafter {\romannumeral-`0#2}{#1}% + \expandafter\XINT_min_pre\expandafter {\romannumeral`&&@#2}{#1}% }% \def\XINT_min_pre #1#2{\XINT_min_fork #1\Z #2\Z {#2}{#1}}% \def\XINT_Min #1#2{\romannumeral0\XINT_min_fork #2\Z #1\Z {#1}{#2}}% @@ -796,22 +806,32 @@ \fi }% \def\xintiMinof {\romannumeral0\xintiminof }% -\def\xintiminof #1{\expandafter\XINT_iminof_a\romannumeral-`0#1\relax }% +\def\xintiminof #1{\expandafter\XINT_iminof_a\romannumeral`&&@#1\relax }% \def\XINT_iminof_a #1{\expandafter\XINT_iminof_b\romannumeral0\xintnum{#1}\Z }% \def\XINT_iminof_b #1\Z #2% - {\expandafter\XINT_iminof_c\romannumeral-`0#2\Z {#1}\Z}% + {\expandafter\XINT_iminof_c\romannumeral`&&@#2\Z {#1}\Z}% \def\XINT_iminof_c #1% {\xint_gob_til_relax #1\XINT_iminof_e\relax\XINT_iminof_d #1}% \def\XINT_iminof_d #1\Z {\expandafter\XINT_iminof_b\romannumeral0\xintimin {#1}}% \def\XINT_iminof_e #1\Z #2\Z { #2}% +\def\xintiiMinof {\romannumeral0\xintiiminof }% +\def\xintiiminof #1{\expandafter\XINT_iiminof_a\romannumeral`&&@#1\relax }% +\def\XINT_iiminof_a #1{\expandafter\XINT_iiminof_b\romannumeral`&&@#1\Z }% +\def\XINT_iiminof_b #1\Z #2% + {\expandafter\XINT_iiminof_c\romannumeral`&&@#2\Z {#1}\Z}% +\def\XINT_iiminof_c #1% + {\xint_gob_til_relax #1\XINT_iiminof_e\relax\XINT_iiminof_d #1}% +\def\XINT_iiminof_d #1\Z + {\expandafter\XINT_iiminof_b\romannumeral0\xintiimin {#1}}% +\def\XINT_iiminof_e #1\Z #2\Z { #2}% \def\xintiiSum {\romannumeral0\xintiisum }% \def\xintiisum #1{\xintiisumexpr #1\relax }% \def\xintiiSumExpr {\romannumeral0\xintiisumexpr }% -\def\xintiisumexpr {\expandafter\XINT_sumexpr\romannumeral-`0}% +\def\xintiisumexpr {\expandafter\XINT_sumexpr\romannumeral`&&@}% \def\XINT_sumexpr {\XINT_sum_loop_a 0\Z }% \def\XINT_sum_loop_a #1\Z #2% - {\expandafter\XINT_sum_loop_b \romannumeral-`0#2\Z #1\Z \Z}% + {\expandafter\XINT_sum_loop_b \romannumeral`&&@#2\Z #1\Z \Z}% \def\XINT_sum_loop_b #1% {\xint_gob_til_relax #1\XINT_sum_finished\relax\XINT_sum_loop_c #1}% \def\XINT_sum_loop_c @@ -820,10 +840,10 @@ \def\xintiiPrd {\romannumeral0\xintiiprd }% \def\xintiiprd #1{\xintiiprdexpr #1\relax }% \def\xintiiPrdExpr {\romannumeral0\xintiiprdexpr }% -\def\xintiiprdexpr {\expandafter\XINT_prdexpr\romannumeral-`0}% +\def\xintiiprdexpr {\expandafter\XINT_prdexpr\romannumeral`&&@}% \def\XINT_prdexpr {\XINT_prod_loop_a 1\Z }% \def\XINT_prod_loop_a #1\Z #2% - {\expandafter\XINT_prod_loop_b \romannumeral-`0#2\Z #1\Z \Z}% + {\expandafter\XINT_prod_loop_b \romannumeral`&&@#2\Z #1\Z \Z}% \def\XINT_prod_loop_b #1% {\xint_gob_til_relax #1\XINT_prod_finished\relax\XINT_prod_loop_c #1}% \def\XINT_prod_loop_c @@ -904,7 +924,7 @@ \def\xintDSL {\romannumeral0\xintdsl }% \def\xintdsl #1% {% - \expandafter\XINT_dsl \romannumeral-`0#1\Z + \expandafter\XINT_dsl \romannumeral`&&@#1\Z }% \def\XINT_DSL #1{\romannumeral0\XINT_dsl #1\Z }% \def\XINT_dsl #1% @@ -916,7 +936,7 @@ \def\xintDSR {\romannumeral0\xintdsr }% \def\xintdsr #1% {% - \expandafter\XINT_dsr_a\expandafter {\romannumeral-`0#1}\W\Z + \expandafter\XINT_dsr_a\expandafter {\romannumeral`&&@#1}\W\Z }% \def\XINT_DSR #1{\romannumeral0\XINT_dsr_a {#1}\W\Z }% \def\XINT_dsr_a @@ -953,7 +973,7 @@ \def\xintDSH {\romannumeral0\xintdsh }% \def\xintdsh #1#2% {% - \expandafter\xint_dsh\expandafter {\romannumeral-`0#2}{#1}% + \expandafter\xint_dsh\expandafter {\romannumeral`&&@#2}{#1}% }% \def\xint_dsh #1#2% {% @@ -976,7 +996,7 @@ \def\xintDSx {\romannumeral0\xintdsx }% \def\xintdsx #1#2% {% - \expandafter\xint_dsx\expandafter {\romannumeral-`0#2}{#1}% + \expandafter\xint_dsx\expandafter {\romannumeral`&&@#2}{#1}% }% \def\xint_dsx #1#2% {% @@ -1251,7 +1271,7 @@ \def\XINT_sqrtr_post #1#2{\xintiiifLt {#2}{#1}{ #1}{\XINT_dec_pos #1\Z}}% \def\xintisquareroot #1% {\expandafter\XINT_sqrt_checkin\romannumeral0\xintnum{#1}\Z }% -\def\xintiisquareroot #1{\expandafter\XINT_sqrt_checkin\romannumeral-`0#1\Z }% +\def\xintiisquareroot #1{\expandafter\XINT_sqrt_checkin\romannumeral`&&@#1\Z }% \def\XINT_sqrt_checkin #1% {% \xint_UDzerominusfork @@ -1419,7 +1439,7 @@ \def\XINT_sqrt_big_end #1#2#3#4{ {#3}{#2}}% \def\xintiiE {\romannumeral0\xintiie }% used in \xintMod. \def\xintiie #1#2% - {\expandafter\XINT_iie\the\numexpr #2\expandafter.\expandafter{\romannumeral-`0#1}}% + {\expandafter\XINT_iie\the\numexpr #2\expandafter.\expandafter{\romannumeral`&&@#1}}% \def\XINT_iie #1.#2{\ifnum#1>\xint_c_ \xint_dothis{\xint_dsh {#2}{-#1}}\fi \xint_orthat{ #2}}% \catcode`! 11 diff --git a/Master/texmf-dist/tex/generic/xint/xintbinhex.sty b/Master/texmf-dist/tex/generic/xint/xintbinhex.sty index 1fb50a91f74..1bcfb127830 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 v1.2 2015/10/10 +%% The xint bundle v1.2a 2015/10/19 %% Copyright (C) 2013-2015 by Jean-Francois Burnol %% xintbinhex: Expandable binary and hexadecimal conversions %% --------------------------------------------------------------- @@ -70,7 +70,7 @@ \XINTsetupcatcodes% defined in xintkernel.sty \XINT_providespackage \ProvidesPackage{xintbinhex}% - [2015/10/10 v1.2 Expandable binary and hexadecimal conversions (jfB)]% + [2015/10/19 v1.2a Expandable binary and hexadecimal conversions (jfB)]% \newcount\xint_c_ii^xv \xint_c_ii^xv 32768 \newcount\xint_c_ii^xvi \xint_c_ii^xvi 65536 \newcount\xint_c_x^v \xint_c_x^v 100000 @@ -198,7 +198,7 @@ \def\XINT_OQ_end_i \Z #1#2#3#4#5#6#7#8\Z { #1#2#3#4#5#6#7#80}% \def\xintDecToHex {\romannumeral0\xintdectohex }% \def\xintdectohex #1% - {\expandafter\XINT_dth_checkin\romannumeral-`0#1\W\W\W\W \T}% + {\expandafter\XINT_dth_checkin\romannumeral`&&@#1\W\W\W\W \T}% \def\XINT_dth_checkin #1% {% \xint_UDsignfork @@ -207,10 +207,10 @@ \krof }% \def\XINT_dth_N {\expandafter\xint_minus_thenstop\romannumeral0\XINT_dth_P }% -\def\XINT_dth_P {\expandafter\XINT_dth_III\romannumeral-`0\XINT_dtbh_I {0.}}% +\def\XINT_dth_P {\expandafter\XINT_dth_III\romannumeral`&&@\XINT_dtbh_I {0.}}% \def\xintDecToBin {\romannumeral0\xintdectobin }% \def\xintdectobin #1% - {\expandafter\XINT_dtb_checkin\romannumeral-`0#1\W\W\W\W \T }% + {\expandafter\XINT_dtb_checkin\romannumeral`&&@#1\W\W\W\W \T }% \def\XINT_dtb_checkin #1% {% \xint_UDsignfork @@ -219,7 +219,7 @@ \krof }% \def\XINT_dtb_N {\expandafter\xint_minus_thenstop\romannumeral0\XINT_dtb_P }% -\def\XINT_dtb_P {\expandafter\XINT_dtb_III\romannumeral-`0\XINT_dtbh_I {0.}}% +\def\XINT_dtb_P {\expandafter\XINT_dtb_III\romannumeral`&&@\XINT_dtbh_I {0.}}% \def\XINT_dtbh_I #1#2#3#4#5% {% \xint_gob_til_W #5\XINT_dtbh_II_a\W\XINT_dtbh_I_a {}{#2#3#4#5}#1\Z.% @@ -292,13 +292,13 @@ {% \xint_gob_til_Z #2\XINT_dth_end\Z \expandafter\XINT_dth_III\expandafter - {\romannumeral-`0\XINT_dth_small #2.#1}% + {\romannumeral`&&@\XINT_dth_small #2.#1}% }% \def\XINT_dth_small #1.% {% \expandafter\XINT_smallhex\expandafter {\the\numexpr (#1+\xint_c_ii^vii)/\xint_c_ii^viii-\xint_c_i\expandafter}% - \romannumeral-`0\expandafter\XINT_smallhex\expandafter + \romannumeral`&&@\expandafter\XINT_smallhex\expandafter {\the\numexpr #1-((#1+\xint_c_ii^vii)/\xint_c_ii^viii-\xint_c_i)*\xint_c_ii^viii}% }% @@ -321,13 +321,13 @@ {% \xint_gob_til_Z #2\XINT_dtb_end\Z \expandafter\XINT_dtb_III\expandafter - {\romannumeral-`0\XINT_dtb_small #2.#1}% + {\romannumeral`&&@\XINT_dtb_small #2.#1}% }% \def\XINT_dtb_small #1.% {% \expandafter\XINT_smallbin\expandafter {\the\numexpr (#1+\xint_c_ii^vii)/\xint_c_ii^viii-\xint_c_i\expandafter}% - \romannumeral-`0\expandafter\XINT_smallbin\expandafter + \romannumeral`&&@\expandafter\XINT_smallbin\expandafter {\the\numexpr #1-((#1+\xint_c_ii^vii)/\xint_c_ii^viii-\xint_c_i)*\xint_c_ii^viii}% }% @@ -346,7 +346,7 @@ }% \def\xintHexToDec {\romannumeral0\xinthextodec }% \def\xinthextodec #1% - {\expandafter\XINT_htd_checkin\romannumeral-`0#1\W\W\W\W \T }% + {\expandafter\XINT_htd_checkin\romannumeral`&&@#1\W\W\W\W \T }% \def\XINT_htd_checkin #1% {% \xint_UDsignfork @@ -430,7 +430,7 @@ }% \def\xintBinToDec {\romannumeral0\xintbintodec }% \def\xintbintodec #1{\expandafter\XINT_btd_checkin - \romannumeral-`0#1\W\W\W\W\W\W\W\W \T }% + \romannumeral`&&@#1\W\W\W\W\W\W\W\W \T }% \def\XINT_btd_checkin #1% {% \xint_UDsignfork @@ -538,7 +538,7 @@ {% \expandafter\XINT_bth_checkin \romannumeral0\expandafter\XINT_num_loop - \romannumeral-`0#1\xint_relax\xint_relax + \romannumeral`&&@#1\xint_relax\xint_relax \xint_relax\xint_relax \xint_relax\xint_relax\xint_relax\xint_relax\Z \R\R\R\R\R\R\R\R\Z \W\W\W\W\W\W\W\W @@ -575,7 +575,7 @@ \def\xintHexToBin {\romannumeral0\xinthextobin }% \def\xinthextobin #1% {% - \expandafter\XINT_htb_checkin\romannumeral-`0#1GGGGGGGG\T + \expandafter\XINT_htb_checkin\romannumeral`&&@#1GGGGGGGG\T }% \def\XINT_htb_checkin #1% {% @@ -615,7 +615,7 @@ \def\xintCHexToBin {\romannumeral0\xintchextobin }% \def\xintchextobin #1% {% - \expandafter\XINT_chtb_checkin\romannumeral-`0#1% + \expandafter\XINT_chtb_checkin\romannumeral`&&@#1% \R\R\R\R\R\R\R\R\Z \W\W\W\W\W\W\W\W }% \def\XINT_chtb_checkin #1% diff --git a/Master/texmf-dist/tex/generic/xint/xintcfrac.sty b/Master/texmf-dist/tex/generic/xint/xintcfrac.sty index 4a1656c4cb0..a2495c33681 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 v1.2 2015/10/10 +%% The xint bundle v1.2a 2015/10/19 %% Copyright (C) 2013-2015 by Jean-Francois Burnol %% xintcfrac: Expandable continued fractions with xint package %% --------------------------------------------------------------- @@ -70,7 +70,7 @@ \XINTsetupcatcodes% defined in xintkernel.sty \XINT_providespackage \ProvidesPackage{xintcfrac}% - [2015/10/10 v1.2 Expandable continued fractions with xint package (jfB)]% + [2015/10/19 v1.2a Expandable continued fractions with xint package (jfB)]% \def\xintCFrac {\romannumeral0\xintcfrac }% \def\xintcfrac #1% {% @@ -173,7 +173,7 @@ }% \def\XINT_gcfrac {% - \expandafter\XINT_gcfrac_enter\romannumeral-`0% + \expandafter\XINT_gcfrac_enter\romannumeral`&&@% }% \def\XINT_gcfrac_enter {\XINT_gcfrac_loop {}}% \def\XINT_gcfrac_loop #1#2+#3/% @@ -227,7 +227,7 @@ }% \def\XINT_ggcfrac {% - \expandafter\XINT_ggcfrac_enter\romannumeral-`0% + \expandafter\XINT_ggcfrac_enter\romannumeral`&&@% }% \def\XINT_ggcfrac_enter {\XINT_ggcfrac_loop {}}% \def\XINT_ggcfrac_loop #1#2+#3/% @@ -253,7 +253,7 @@ \def\xintGCtoGCx {\romannumeral0\xintgctogcx }% \def\xintgctogcx #1#2#3% {% - \expandafter\XINT_gctgcx_start\expandafter {\romannumeral-`0#3}{#1}{#2}% + \expandafter\XINT_gctgcx_start\expandafter {\romannumeral`&&@#3}{#1}{#2}% }% \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/% @@ -466,7 +466,7 @@ \def\xintCtoF {\romannumeral0\xintctof }% \def\xintctof #1% {% - \expandafter\XINT_ctf_prep \romannumeral-`0#1\xint_relax + \expandafter\XINT_ctf_prep \romannumeral`&&@#1\xint_relax }% \def\XINT_ctf_prep {% @@ -502,7 +502,7 @@ \def\xintiCstoF {\romannumeral0\xinticstof }% \def\xinticstof #1% {% - \expandafter\XINT_icstf_prep \romannumeral-`0#1,\xint_relax,% + \expandafter\XINT_icstf_prep \romannumeral`&&@#1,\xint_relax,% }% \def\XINT_icstf_prep {% @@ -512,7 +512,7 @@ {% \xint_gob_til_xint_relax #5\XINT_icstf_end\xint_relax \expandafter - \XINT_icstf_loop_b \romannumeral-`0#5.{#1}{#2}{#3}{#4}% + \XINT_icstf_loop_b \romannumeral`&&@#5.{#1}{#2}{#3}{#4}% }% \def\XINT_icstf_loop_b #1.#2#3#4#5% {% @@ -529,7 +529,7 @@ \def\xintGCtoF {\romannumeral0\xintgctof }% \def\xintgctof #1% {% - \expandafter\XINT_gctf_prep \romannumeral-`0#1+\xint_relax/% + \expandafter\XINT_gctf_prep \romannumeral`&&@#1+\xint_relax/% }% \def\XINT_gctf_prep {% @@ -590,7 +590,7 @@ \def\xintiGCtoF {\romannumeral0\xintigctof }% \def\xintigctof #1% {% - \expandafter\XINT_igctf_prep \romannumeral-`0#1+\xint_relax/% + \expandafter\XINT_igctf_prep \romannumeral`&&@#1+\xint_relax/% }% \def\XINT_igctf_prep {% @@ -599,7 +599,7 @@ \def\XINT_igctf_loop_a #1#2#3#4#5+% {% \expandafter\XINT_igctf_loop_b - \romannumeral-`0#5.{#1}{#2}{#3}{#4}% + \romannumeral`&&@#5.{#1}{#2}{#3}{#4}% }% \def\XINT_igctf_loop_b #1.#2#3#4#5% {% @@ -616,7 +616,7 @@ {% \xint_gob_til_xint_relax #4\XINT_igctf_end\xint_relax \expandafter\XINT_igctf_loop_g - \romannumeral-`0#4.{#2}{#3}#1% + \romannumeral`&&@#4.{#2}{#3}#1% }% \def\XINT_igctf_loop_g #1.#2#3% {% @@ -641,7 +641,7 @@ \def\xintCtoCv {\romannumeral0\xintctocv }% \def\xintctocv #1% {% - \expandafter\XINT_ctcv_prep\romannumeral-`0#1\xint_relax + \expandafter\XINT_ctcv_prep\romannumeral`&&@#1\xint_relax }% \def\XINT_ctcv_prep {% @@ -683,7 +683,7 @@ \def\xintiCstoCv {\romannumeral0\xinticstocv }% \def\xinticstocv #1% {% - \expandafter\XINT_icstcv_prep \romannumeral-`0#1,\xint_relax,% + \expandafter\XINT_icstcv_prep \romannumeral`&&@#1,\xint_relax,% }% \def\XINT_icstcv_prep {% @@ -693,7 +693,7 @@ {% \xint_gob_til_xint_relax #6\XINT_icstcv_end\xint_relax \expandafter - \XINT_icstcv_loop_b \romannumeral-`0#6.{#2}{#3}{#4}{#5}{#1}% + \XINT_icstcv_loop_b \romannumeral`&&@#6.{#2}{#3}{#4}{#5}{#1}% }% \def\XINT_icstcv_loop_b #1.#2#3#4#5% {% @@ -716,7 +716,7 @@ \def\xintGCtoCv {\romannumeral0\xintgctocv }% \def\xintgctocv #1% {% - \expandafter\XINT_gctcv_prep \romannumeral-`0#1+\xint_relax/% + \expandafter\XINT_gctcv_prep \romannumeral`&&@#1+\xint_relax/% }% \def\XINT_gctcv_prep {% @@ -787,7 +787,7 @@ \def\xintiGCtoCv {\romannumeral0\xintigctocv }% \def\xintigctocv #1% {% - \expandafter\XINT_igctcv_prep \romannumeral-`0#1+\xint_relax/% + \expandafter\XINT_igctcv_prep \romannumeral`&&@#1+\xint_relax/% }% \def\XINT_igctcv_prep {% @@ -796,7 +796,7 @@ \def\XINT_igctcv_loop_a #1#2#3#4#5#6+% {% \expandafter\XINT_igctcv_loop_b - \romannumeral-`0#6.{#2}{#3}{#4}{#5}{#1}% + \romannumeral`&&@#6.{#2}{#3}{#4}{#5}{#1}% }% \def\XINT_igctcv_loop_b #1.#2#3#4#5% {% @@ -813,7 +813,7 @@ {% \xint_gob_til_xint_relax #4\XINT_igctcv_end_a\xint_relax \expandafter\XINT_igctcv_loop_g - \romannumeral-`0#4.#1#2{#3}% + \romannumeral`&&@#4.#1#2{#3}% }% \def\XINT_igctcv_loop_g #1.#2#3#4#5% {% @@ -859,11 +859,11 @@ \ifnum #1>\xint_c_ \xint_afterfi {\expandafter\XINT_cntf_loop\expandafter {\the\numexpr #1-1\expandafter}\expandafter - {\romannumeral-`0#2{#1}}{#2}}% + {\romannumeral`&&@#2{#1}}{#2}}% \else \xint_afterfi {\ifnum #1=\xint_c_ - \xint_afterfi {\expandafter\space \romannumeral-`0#2{0}}% + \xint_afterfi {\expandafter\space \romannumeral`&&@#2{0}}% \else \xint_afterfi { }% 1.09m now returns nothing. \fi}% \fi @@ -892,11 +892,11 @@ \ifnum #1>\xint_c_ \xint_afterfi {\expandafter\XINT_gcntf_loop\expandafter {\the\numexpr #1-1\expandafter}\expandafter - {\romannumeral-`0#2{#1}}{#2}{#3}}% + {\romannumeral`&&@#2{#1}}{#2}{#3}}% \else \xint_afterfi {\ifnum #1=\xint_c_ - \xint_afterfi {\expandafter\space\romannumeral-`0#2{0}}% + \xint_afterfi {\expandafter\space\romannumeral`&&@#2{0}}% \else \xint_afterfi { }% 1.09m now returns nothing rather than 0/1[0] \fi}% \fi @@ -927,7 +927,7 @@ \else \xint_afterfi {\expandafter\XINT_cntcs_loop\expandafter {\the\numexpr #1-\xint_c_i\expandafter}\expandafter - {\romannumeral-`0#2{#1}}{#2}}% produced coeff not braced + {\romannumeral`&&@#2{#1}}{#2}}% produced coeff not braced \fi }% \def\XINT_cntcs_loop #1#2#3% @@ -935,7 +935,7 @@ \ifnum #1>-\xint_c_i \else \XINT_cntcs_exit \fi \expandafter\XINT_cntcs_loop\expandafter {\the\numexpr #1-\xint_c_i\expandafter}\expandafter - {\romannumeral-`0#3{#1}, #2}{#3}% space added, 1.09m + {\romannumeral`&&@#3{#1}, #2}{#3}% space added, 1.09m }% \def\XINT_cntcs_exit \fi \expandafter\XINT_cntcs_loop\expandafter @@ -956,7 +956,7 @@ \else \xint_afterfi {\expandafter\XINT_cntgc_loop\expandafter {\the\numexpr #1-\xint_c_i\expandafter}\expandafter - {\expandafter{\romannumeral-`0#2{#1}}}{#2}}% + {\expandafter{\romannumeral`&&@#2{#1}}}{#2}}% \fi }% \def\XINT_cntgc_loop #1#2#3% @@ -964,7 +964,7 @@ \ifnum #1>-\xint_c_i \else \XINT_cntgc_exit \fi \expandafter\XINT_cntgc_loop\expandafter {\the\numexpr #1-\xint_c_i\expandafter }\expandafter - {\expandafter{\romannumeral-`0#3{#1}}+1/#2}{#3}% + {\expandafter{\romannumeral`&&@#3{#1}}+1/#2}{#3}% }% \def\XINT_cntgc_exit \fi \expandafter\XINT_cntgc_loop\expandafter @@ -985,20 +985,20 @@ \else \xint_afterfi {\expandafter\XINT_gcntgc_loop\expandafter {\the\numexpr #1-\xint_c_i\expandafter}\expandafter - {\expandafter{\romannumeral-`0#2{#1}}}{#2}{#3}}% + {\expandafter{\romannumeral`&&@#2{#1}}}{#2}{#3}}% \fi }% \def\XINT_gcntgc_loop #1#2#3#4% {% \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}% + {\expandafter{\romannumeral`&&@#4{#1}}/#2}{#3{#1}}{#1}{#3}{#4}% }% \def\XINT_gcntgc_loop_b #1#2#3% {% \expandafter\XINT_gcntgc_loop\expandafter {\the\numexpr #3-\xint_c_i \expandafter}\expandafter - {\expandafter{\romannumeral-`0#2}+#1}% + {\expandafter{\romannumeral`&&@#2}+#1}% }% \def\XINT_gcntgc_exit \fi \expandafter\XINT_gcntgc_loop_b\expandafter #1#2#3#4#5% @@ -1009,7 +1009,7 @@ \def\xintCstoGC {\romannumeral0\xintcstogc }% \def\xintcstogc #1% {% - \expandafter\XINT_cstc_prep \romannumeral-`0#1,\xint_relax,% + \expandafter\XINT_cstc_prep \romannumeral`&&@#1,\xint_relax,% }% \def\XINT_cstc_prep #1,{\XINT_cstc_loop_a {{#1}}}% \def\XINT_cstc_loop_a #1#2,% @@ -1022,19 +1022,19 @@ \def\xintGCtoGC {\romannumeral0\xintgctogc }% \def\xintgctogc #1% {% - \expandafter\XINT_gctgc_start \romannumeral-`0#1+\xint_relax/% + \expandafter\XINT_gctgc_start \romannumeral`&&@#1+\xint_relax/% }% \def\XINT_gctgc_start {\XINT_gctgc_loop_a {}}% \def\XINT_gctgc_loop_a #1#2+#3/% {% \xint_gob_til_xint_relax #3\XINT_gctgc_end\xint_relax \expandafter\XINT_gctgc_loop_b\expandafter - {\romannumeral-`0#2}{#3}{#1}% + {\romannumeral`&&@#2}{#3}{#1}% }% \def\XINT_gctgc_loop_b #1#2% {% \expandafter\XINT_gctgc_loop_c\expandafter - {\romannumeral-`0#2}{#1}% + {\romannumeral`&&@#2}{#1}% }% \def\XINT_gctgc_loop_c #1#2#3% {% diff --git a/Master/texmf-dist/tex/generic/xint/xintcore.sty b/Master/texmf-dist/tex/generic/xint/xintcore.sty index 3352af4f189..1c119449588 100644 --- a/Master/texmf-dist/tex/generic/xint/xintcore.sty +++ b/Master/texmf-dist/tex/generic/xint/xintcore.sty @@ -21,7 +21,7 @@ %% same distribution. (The sources need not necessarily be %% in the same archive or directory.) %% --------------------------------------------------------------- -%% The xint bundle v1.2 2015/10/10 +%% The xint bundle v1.2a 2015/10/19 %% Copyright (C) 2013-2015 by Jean-Francois Burnol %% xintcore: Expandable arithmetic on big integers %% --------------------------------------------------------------- @@ -70,7 +70,7 @@ \XINTsetupcatcodes% defined in xintkernel.sty \XINT_providespackage \ProvidesPackage{xintcore}% - [2015/10/10 v1.2 Expandable arithmetic on big integers (jfB)]% + [2015/10/19 v1.2a Expandable arithmetic on big integers (jfB)]% \ifdefined\m@ne\let\xint_c_mone\m@ne \else\csname newcount\endcsname\xint_c_mone \xint_c_mone -1 \fi \newcount\xint_c_x^viii \xint_c_x^viii 100000000 @@ -83,7 +83,7 @@ \def\xintinum #1% {% \expandafter\XINT_num_loop - \romannumeral-`0#1\xint_relax\xint_relax\xint_relax\xint_relax + \romannumeral`&&@#1\xint_relax\xint_relax\xint_relax\xint_relax \xint_relax\xint_relax\xint_relax\xint_relax\Z }% \let\xintNum\xintiNum \let\xintnum\xintinum @@ -271,7 +271,7 @@ }% \edef\XINT_unrevbyviii_a\R\XINT_unrevbyviii #1#2\W {\noexpand\expandafter\space - \noexpand\romannumeral-`0\noexpand\xint_gob_til_Z #1}% + \noexpand\romannumeral`&&@\noexpand\xint_gob_til_Z #1}% \def\XINT_smallunrevbyviii 1#1!1#2!1#3!1#4!1#5!1#6!1#7!1#8!#9\W% {% \expandafter\XINT_cuz_small\xint_gob_til_Z #8#7#6#5#4#3#2#1% @@ -282,7 +282,7 @@ }% \def\XINT_microrevsep_end #1\W #2\expandafter #3\Z{#2!}% \def\xintReverseDigits {\romannumeral0\xintreversedigits }% -\def\xintreversedigits #1{\expandafter\XINT_reversedigits\romannumeral-`0#1\Z}% +\def\xintreversedigits #1{\expandafter\XINT_reversedigits\romannumeral`&&@#1\Z}% \def\XINT_reversedigits #1% {% \xint_UDsignfork @@ -293,7 +293,7 @@ \def\XINT_reversedigits_a #1\Z {% \expandafter\XINT_revdigits_a\the\numexpr\expandafter\XINT_microrevsep - \romannumeral-`0#1{\XINT_microrevsep_end\W}\XINT_microrevsep_end + \romannumeral`&&@#1{\XINT_microrevsep_end\W}\XINT_microrevsep_end \XINT_microrevsep_end\XINT_microrevsep_end \XINT_microrevsep_end\XINT_microrevsep_end \XINT_microrevsep_end\XINT_microrevsep_end\Z @@ -310,7 +310,7 @@ \def\xintiiSgn {\romannumeral0\xintiisgn }% \def\xintiisgn #1% {% - \expandafter\XINT_sgn \romannumeral-`0#1\Z% + \expandafter\XINT_sgn \romannumeral`&&@#1\Z% }% \def\xintSgn {\romannumeral0\xintsgn }% \def\xintsgn #1% @@ -344,7 +344,7 @@ \def\xintiiOpp {\romannumeral0\xintiiopp }% \def\xintiiopp #1% {% - \expandafter\XINT_opp \romannumeral-`0#1% + \expandafter\XINT_opp \romannumeral`&&@#1% }% \def\xintiOpp {\romannumeral0\xintiopp }% \def\xintiopp #1% @@ -363,7 +363,7 @@ \def\xintiiAbs {\romannumeral0\xintiiabs }% \def\xintiiabs #1% {% - \expandafter\XINT_abs \romannumeral-`0#1% + \expandafter\XINT_abs \romannumeral`&&@#1% }% \def\xintiAbs {\romannumeral0\xintiabs }% \def\xintiabs #1% @@ -381,7 +381,7 @@ \def\xintiiFDg {\romannumeral0\xintiifdg }% \def\xintiifdg #1% {% - \expandafter\XINT_fdg \romannumeral-`0#1\W\Z + \expandafter\XINT_fdg \romannumeral`&&@#1\W\Z }% \def\xintFDg {\romannumeral0\xintfdg }% \def\xintfdg #1% @@ -405,7 +405,7 @@ \expandafter\XINT_ldg_done\romannumeral0% \expandafter\XINT_revdigits_a\the\numexpr\expandafter\XINT_microrevsep \romannumeral0\expandafter\XINT_abs - \romannumeral-`0#1{\XINT_microrevsep_end\W}\XINT_microrevsep_end + \romannumeral`&&@#1{\XINT_microrevsep_end\W}\XINT_microrevsep_end \XINT_microrevsep_end\XINT_microrevsep_end \XINT_microrevsep_end\XINT_microrevsep_end \XINT_microrevsep_end\XINT_microrevsep_end\Z @@ -416,7 +416,7 @@ \def\xintDouble {\romannumeral0\xintdouble }% \def\xintdouble #1% {% - \expandafter\XINT_dbl\romannumeral-`0#1\Z + \expandafter\XINT_dbl\romannumeral`&&@#1\Z }% \def\XINT_dbl #1% {% @@ -446,7 +446,7 @@ \def\xintHalf {\romannumeral0\xinthalf }% \def\xinthalf #1% {% - \expandafter\XINT_half\romannumeral-`0#1\Z + \expandafter\XINT_half\romannumeral`&&@#1\Z }% \def\XINT_half #1% {% @@ -483,7 +483,7 @@ \def\xintDec {\romannumeral0\xintdec }% \def\xintdec #1% {% - \expandafter\XINT_dec\romannumeral-`0#1\Z + \expandafter\XINT_dec\romannumeral`&&@#1\Z }% \def\XINT_dec #1% {% @@ -510,7 +510,7 @@ \def\xintInc {\romannumeral0\xintinc }% \def\xintinc #1% {% - \expandafter\XINT_inc\romannumeral-`0#1\Z + \expandafter\XINT_inc\romannumeral`&&@#1\Z }% \def\XINT_inc #1% {% @@ -536,10 +536,10 @@ \def\xintiAdd {\romannumeral0\xintiadd }% \def\xintiadd #1{\expandafter\XINT_iadd\romannumeral0\xintnum{#1}\Z }% \def\xintiiAdd {\romannumeral0\xintiiadd }% -\def\xintiiadd #1{\expandafter\XINT_iiadd\romannumeral-`0#1\Z }% +\def\xintiiadd #1{\expandafter\XINT_iiadd\romannumeral`&&@#1\Z }% \def\XINT_iiadd #1#2\Z #3% {% - \expandafter\XINT_add_nfork\expandafter #1\romannumeral-`0#3\Z #2\Z + \expandafter\XINT_add_nfork\expandafter #1\romannumeral`&&@#3\Z #2\Z }% \def\XINT_iadd #1#2\Z #3% {% @@ -710,10 +710,10 @@ \def\XINT_add_o #1% {\if #12\expandafter\XINT_add_l\else\expandafter\XINT_add_ke \fi}% \def\xintiiSub {\romannumeral0\xintiisub }% -\def\xintiisub #1{\expandafter\XINT_iisub\romannumeral-`0#1\Z }% +\def\xintiisub #1{\expandafter\XINT_iisub\romannumeral`&&@#1\Z }% \def\XINT_iisub #1#2\Z #3% {% - \expandafter\XINT_sub_nfork\expandafter #1\romannumeral-`0#3\Z #2\Z + \expandafter\XINT_sub_nfork\expandafter #1\romannumeral`&&@#3\Z #2\Z }% \def\xintiSub {\romannumeral0\xintisub }% \def\xintisub #1{\expandafter\XINT_isub\romannumeral0\xintnum{#1}\Z }% @@ -924,11 +924,11 @@ \def\xintiiMul {\romannumeral0\xintiimul }% \def\xintiimul #1% {% - \expandafter\XINT_iimul\romannumeral-`0#1\Z + \expandafter\XINT_iimul\romannumeral`&&@#1\Z }% \def\XINT_iimul #1#2\Z #3% {% - \expandafter\XINT_mul_nfork\expandafter #1\romannumeral-`0#3\Z #2\Z + \expandafter\XINT_mul_nfork\expandafter #1\romannumeral`&&@#3\Z #2\Z }% \def\XINT_mul_fork #1#2\Z #3\Z{\XINT_mul_nfork #1#3\Z #2\Z}% \def\XINT_mul_nfork #1#2% @@ -1134,7 +1134,7 @@ \def\xintiiPow {\romannumeral0\xintiipow }% \def\xintiipow #1% {% - \expandafter\xint_pow\romannumeral-`0#1\Z% + \expandafter\xint_pow\romannumeral`&&@#1\Z% }% \def\xintiPow {\romannumeral0\xintipow }% \def\xintipow #1% @@ -1287,7 +1287,7 @@ \def\xintiiFac {\romannumeral0\xintiifac }% \def\xintiifac #1% {% - \expandafter\XINT_fac_fork\expandafter {\romannumeral-`0#1}% + \expandafter\XINT_fac_fork\expandafter {\romannumeral`&&@#1}% }% \let\xintFac\xintiFac \let\xintfac\xintifac \def\XINT_fac_fork #1% @@ -1409,9 +1409,9 @@ \def\XINT_idivision #1#2\Z #3{\expandafter\XINT_iidivision_a\expandafter #1% \romannumeral0\xintnum{#3}\Z #2\Z }% \def\xintiiDivision {\romannumeral0\xintiidivision }% -\def\xintiidivision #1{\expandafter\XINT_iidivision \romannumeral-`0#1\Z }% +\def\xintiidivision #1{\expandafter\XINT_iidivision \romannumeral`&&@#1\Z }% \def\XINT_iidivision #1#2\Z #3{\expandafter\XINT_iidivision_a\expandafter #1% - \romannumeral-`0#3\Z #2\Z }% + \romannumeral`&&@#3\Z #2\Z }% \def\XINT_iidivision_a #1#2% #1 de A, #2 de B. {% \if0#2\xint_dothis\XINT_iidivision_divbyzero\fi @@ -1579,7 +1579,7 @@ }% \def\XINT_div_finish {% - \expandafter\XINT_div_finish_a \romannumeral-`0\XINT_div_unsepQ + \expandafter\XINT_div_finish_a \romannumeral`&&@\XINT_div_unsepQ }% \def\XINT_div_finish_a #1\Z #2.{\XINT_div_finish_b #2.{#1}}% \def\XINT_div_finish_b #1% @@ -1994,12 +1994,12 @@ \def\xintidivround #1% {\expandafter\XINT_idivround\romannumeral0\xintnum{#1}\Z }% \def\xintiiDivRound {\romannumeral0\xintiidivround }% -\def\xintiidivround #1{\expandafter\XINT_iidivround \romannumeral-`0#1\Z }% +\def\xintiidivround #1{\expandafter\XINT_iidivround \romannumeral`&&@#1\Z }% \def\XINT_idivround #1#2\Z #3% {\expandafter\XINT_iidivround_a\expandafter #1% \romannumeral0\xintnum{#3}\Z #2\Z }% \def\XINT_iidivround #1#2\Z #3% - {\expandafter\XINT_iidivround_a\expandafter #1\romannumeral-`0#3\Z #2\Z }% + {\expandafter\XINT_iidivround_a\expandafter #1\romannumeral`&&@#3\Z #2\Z }% \def\XINT_iidivround_a #1#2% #1 de A, #2 de B. {% \if0#2\xint_dothis\XINT_iidivround_divbyzero\fi @@ -2070,9 +2070,9 @@ \def\xintiDivTrunc {\romannumeral0\xintidivtrunc }% \def\xintidivtrunc #1{\expandafter\XINT_iidivtrunc\romannumeral0\xintnum{#1}\Z }% \def\xintiiDivTrunc {\romannumeral0\xintiidivtrunc }% -\def\xintiidivtrunc #1{\expandafter\XINT_iidivtrunc \romannumeral-`0#1\Z }% +\def\xintiidivtrunc #1{\expandafter\XINT_iidivtrunc \romannumeral`&&@#1\Z }% \def\XINT_iidivtrunc #1#2\Z #3{\expandafter\XINT_iidivtrunc_a\expandafter #1% - \romannumeral-`0#3\Z #2\Z }% + \romannumeral`&&@#3\Z #2\Z }% \def\XINT_iidivtrunc_a #1#2% #1 de A, #2 de B. {% \if0#2\xint_dothis\XINT_iidivround_divbyzero\fi @@ -2100,9 +2100,9 @@ \def\xintiMod {\romannumeral0\xintimod }% \def\xintimod #1{\expandafter\XINT_iimod\romannumeral0\xintnum{#1}\Z }% \def\xintiiMod {\romannumeral0\xintiimod }% -\def\xintiimod #1{\expandafter\XINT_iimod \romannumeral-`0#1\Z }% +\def\xintiimod #1{\expandafter\XINT_iimod \romannumeral`&&@#1\Z }% \def\XINT_iimod #1#2\Z #3{\expandafter\XINT_iimod_a\expandafter #1% - \romannumeral-`0#3\Z #2\Z }% + \romannumeral`&&@#3\Z #2\Z }% \def\XINT_iimod_a #1#2% #1 de A, #2 de B. {% \if0#2\xint_dothis\XINT_iidivround_divbyzero\fi diff --git a/Master/texmf-dist/tex/generic/xint/xintexpr.sty b/Master/texmf-dist/tex/generic/xint/xintexpr.sty index 72e5194b49e..ce9b596606d 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 v1.2 2015/10/10 +%% The xint bundle v1.2a 2015/10/19 %% Copyright (C) 2013-2015 by Jean-Francois Burnol %% xintexpr: Expandable expression parser %% --------------------------------------------------------------- @@ -81,7 +81,7 @@ \XINTsetupcatcodes% \XINT_providespackage \ProvidesPackage{xintexpr}% - [2015/10/10 v1.2 Expandable expression parser (jfB)]% + [2015/10/19 v1.2a Expandable expression parser (jfB)]% \catcode`! 11 \def\xint_gob_til_! #1!{}% catcode 11 ! default in xintexpr.sty code. \edef\XINT_expr_lockscan#1!% not used for decimal numbers in xintexpr 1.2 @@ -89,7 +89,7 @@ \edef\XINT_expr_lockit #1{\noexpand\expandafter\space\noexpand\csname .=#1\endcsname }% \def\XINT_expr_unlock_hex_in #1% expanded inside \csname..\endcsname - {\expandafter\XINT_expr_inhex\romannumeral-`0\XINT_expr_unlock#1;}% + {\expandafter\XINT_expr_inhex\romannumeral`&&@\XINT_expr_unlock#1;}% \def\XINT_expr_inhex #1.#2#3;% expanded inside \csname..\endcsname {% \if#2>\xintHexToDec{#1}% @@ -115,27 +115,27 @@ \def\xintfloatexpr {\romannumeral0\xintfloateval }% \def\xintiiexpr {\romannumeral0\xintiieval }% \def\xinttheexpr - {\romannumeral-`0\expandafter\XINT_expr_print\romannumeral0\xintbareeval }% -\def\xinttheiexpr {\romannumeral-`0\xintthe\xintiexpr }% -\def\xintthefloatexpr {\romannumeral-`0\xintthe\xintfloatexpr }% + {\romannumeral`&&@\expandafter\XINT_expr_print\romannumeral0\xintbareeval }% +\def\xinttheiexpr {\romannumeral`&&@\xintthe\xintiexpr }% +\def\xintthefloatexpr {\romannumeral`&&@\xintthe\xintfloatexpr }% \def\xinttheiiexpr - {\romannumeral-`0\expandafter\XINT_iiexpr_print\romannumeral0\xintbareiieval }% -\def\xintthe #1{\romannumeral-`0\expandafter\xint_gobble_iii\romannumeral-`0#1}% -\def\xintthecoords #1{\romannumeral-`0\expandafter\expandafter\expandafter + {\romannumeral`&&@\expandafter\XINT_iiexpr_print\romannumeral0\xintbareiieval }% +\def\xintthe #1{\romannumeral`&&@\expandafter\xint_gobble_iii\romannumeral`&&@#1}% +\def\xintthecoords #1{\romannumeral`&&@\expandafter\expandafter\expandafter \XINT_thecoords_a \expandafter\xint_gobble_iii\romannumeral0#1}% \def\XINT_thecoords_a #1#2% #1=print macro, indispensible for scientific notation {\expandafter\XINT_expr_unlock\csname.=\expandafter\XINT_thecoords_b - \romannumeral-`0#1#2,!,!,^\endcsname }% + \romannumeral`&&@#1#2,!,!,^\endcsname }% \def\XINT_thecoords_b #1#2,#3#4,% {\xint_gob_til_! #3\XINT_thecoords_c ! (#1#2, #3#4)\XINT_thecoords_b }% \def\XINT_thecoords_c #1^{}% \def\xintbareeval - {\expandafter\XINT_expr_until_end_a\romannumeral-`0\XINT_expr_getnext }% + {\expandafter\XINT_expr_until_end_a\romannumeral`&&@\XINT_expr_getnext }% \def\xintbarefloateval - {\expandafter\XINT_flexpr_until_end_a\romannumeral-`0\XINT_expr_getnext }% + {\expandafter\XINT_flexpr_until_end_a\romannumeral`&&@\XINT_expr_getnext }% \def\xintbareiieval - {\expandafter\XINT_iiexpr_until_end_a\romannumeral-`0\XINT_expr_getnext }% + {\expandafter\XINT_iiexpr_until_end_a\romannumeral`&&@\XINT_expr_getnext }% \def\xinteval {\expandafter\XINT_expr_wrap\romannumeral0\xintbareeval }% \def\xintiieval {\expandafter\XINT_iiexpr_wrap\romannumeral0\xintbareiieval }% \def\xintieval #1% @@ -178,41 +178,41 @@ \def\XINT_flexpr_print #1% {% \expandafter\xintPFloat::csv - \romannumeral-`0\expandafter\XINT_expr_unlock_sp\string #1!% + \romannumeral`&&@\expandafter\XINT_expr_unlock_sp\string #1!% }% \catcode`: 12 \def\XINT_expr_unlock_sp #1.;#2.=#3!{{#2}{#3}}% \catcode`: 11 \def\xintboolexpr {\romannumeral0\expandafter\expandafter\expandafter \XINT_boolexpr_done \expandafter\xint_gobble_iv\romannumeral0\xinteval }% -\def\xinttheboolexpr {\romannumeral-`0\expandafter\expandafter\expandafter +\def\xinttheboolexpr {\romannumeral`&&@\expandafter\expandafter\expandafter \XINT_boolexpr_print\expandafter\xint_gobble_iv\romannumeral0\xinteval }% \def\XINT_boolexpr_done { !\XINT_expr_usethe\XINT_protectii\XINT_boolexpr_print }% \def\xintifboolexpr #1{\romannumeral0\xintifnotzero {\xinttheexpr #1\relax}}% \def\xintifboolfloatexpr #1{\romannumeral0\xintifnotzero {\xintthefloatexpr #1\relax}}% \def\xintifbooliiexpr #1{\romannumeral0\xintifnotzero {\xinttheiiexpr #1\relax}}% \def\XINT_::_end #1,#2{\xint_gobble_i #2}% -\def\xintCSV::csv #1{\expandafter\XINT_csv::_a\romannumeral-`0#1,^,}% +\def\xintCSV::csv #1{\expandafter\XINT_csv::_a\romannumeral`&&@#1,^,}% \def\XINT_csv::_a {\XINT_csv::_b {}}% -\def\XINT_csv::_b #1#2,{\expandafter\XINT_csv::_c \romannumeral-`0#2,{#1}}% +\def\XINT_csv::_b #1#2,{\expandafter\XINT_csv::_c \romannumeral`&&@#2,{#1}}% \def\XINT_csv::_c #1{\if ^#1\expandafter\XINT_::_end\fi\XINT_csv::_d #1}% \def\XINT_csv::_d #1,#2{\XINT_csv::_b {#2, #1}}% possibly, item #1 is empty. \def\xintSPRaw {\romannumeral0\xintspraw }% -\def\xintspraw #1{\expandafter\XINT_spraw\romannumeral-`0#1[\W]}% +\def\xintspraw #1{\expandafter\XINT_spraw\romannumeral`&&@#1[\W]}% \def\XINT_spraw #1[#2#3]{\xint_gob_til_W #2\XINT_spraw_a\W\XINT_spraw_p #1[#2#3]}% \def\XINT_spraw_a\W\XINT_spraw_p #1[\W]{ #1}% \def\XINT_spraw_p #1[\W]{\xintpraw {#1}}% -\def\xintSPRaw::csv #1{\romannumeral0\expandafter\XINT_spraw::_a\romannumeral-`0#1,^,}% +\def\xintSPRaw::csv #1{\romannumeral0\expandafter\XINT_spraw::_a\romannumeral`&&@#1,^,}% \def\XINT_spraw::_a {\XINT_spraw::_b {}}% -\def\XINT_spraw::_b #1#2,{\expandafter\XINT_spraw::_c \romannumeral-`0#2,{#1}}% +\def\XINT_spraw::_b #1#2,{\expandafter\XINT_spraw::_c \romannumeral`&&@#2,{#1}}% \def\XINT_spraw::_c #1{\if ,#1\xint_dothis\XINT_spraw::_e\fi \if ^#1\xint_dothis\XINT_::_end\fi \xint_orthat\XINT_spraw::_d #1}% \def\XINT_spraw::_d #1,{\expandafter\XINT_spraw::_e\romannumeral0\XINT_spraw #1[\W],}% \def\XINT_spraw::_e #1,#2{\XINT_spraw::_b {#2, #1}}% -\def\xintIsTrue::csv #1{\romannumeral0\expandafter\XINT_istrue::_a\romannumeral-`0#1,^,}% +\def\xintIsTrue::csv #1{\romannumeral0\expandafter\XINT_istrue::_a\romannumeral`&&@#1,^,}% \def\XINT_istrue::_a {\XINT_istrue::_b {}}% -\def\XINT_istrue::_b #1#2,{\expandafter\XINT_istrue::_c \romannumeral-`0#2,{#1}}% +\def\XINT_istrue::_b #1#2,{\expandafter\XINT_istrue::_c \romannumeral`&&@#2,{#1}}% \def\XINT_istrue::_c #1{\if ,#1\xint_dothis\XINT_istrue::_e\fi \if ^#1\xint_dothis\XINT_::_end\fi \xint_orthat\XINT_istrue::_d #1}% @@ -220,8 +220,8 @@ \def\XINT_istrue::_e #1,#2{\XINT_istrue::_b {#2, #1}}% \def\XINT_:::_end #1,#2#3{\xint_gobble_i #3}% \def\xintRound::csv #1#2{\romannumeral0\expandafter\XINT_round::_b\expandafter - {\the\numexpr#1\expandafter}\expandafter{\expandafter}\romannumeral-`0#2,^,}% -\def\XINT_round::_b #1#2#3,{\expandafter\XINT_round::_c \romannumeral-`0#3,{#1}{#2}}% + {\the\numexpr#1\expandafter}\expandafter{\expandafter}\romannumeral`&&@#2,^,}% +\def\XINT_round::_b #1#2#3,{\expandafter\XINT_round::_c \romannumeral`&&@#3,{#1}{#2}}% \def\XINT_round::_c #1{\if ,#1\xint_dothis\XINT_round::_e\fi \if ^#1\xint_dothis\XINT_:::_end\fi \xint_orthat\XINT_round::_d #1}% @@ -230,7 +230,7 @@ \expandafter\xintround\else\expandafter\xintiround\fi {#2}{#1},{#2}}% \def\XINT_round::_e #1,#2#3{\XINT_round::_b {#2}{#3, #1}}% \def\XINTinFloat::csv #1#2{\romannumeral0\expandafter\XINT_infloat::_b\expandafter - {\the\numexpr #1\expandafter}\expandafter{\expandafter}\romannumeral-`0#2,^,}% + {\the\numexpr #1\expandafter}\expandafter{\expandafter}\romannumeral`&&@#2,^,}% \def\XINT_infloat::_b #1#2#3,{\XINT_infloat::_c #3,{#1}{#2}}% \def\XINT_infloat::_c #1{\if ,#1\xint_dothis\XINT_infloat::_e\fi \if ^#1\xint_dothis\XINT_:::_end\fi @@ -239,8 +239,8 @@ {\expandafter\XINT_infloat::_e\romannumeral0\XINTinfloat [#2]{#1},{#2}}% \def\XINT_infloat::_e #1,#2#3{\XINT_infloat::_b {#2}{#3, #1}}% \def\xintPFloat::csv #1#2{\romannumeral0\expandafter\XINT_pfloat::_b\expandafter - {\the\numexpr #1\expandafter}\expandafter{\expandafter}\romannumeral-`0#2,^,}% -\def\XINT_pfloat::_b #1#2#3,{\expandafter\XINT_pfloat::_c \romannumeral-`0#3,{#1}{#2}}% + {\the\numexpr #1\expandafter}\expandafter{\expandafter}\romannumeral`&&@#2,^,}% +\def\XINT_pfloat::_b #1#2#3,{\expandafter\XINT_pfloat::_c \romannumeral`&&@#3,{#1}{#2}}% \def\XINT_pfloat::_c #1{\if ,#1\xint_dothis\XINT_pfloat::_e\fi \if ^#1\xint_dothis\XINT_:::_end\fi \xint_orthat\XINT_pfloat::_d #1}% @@ -249,7 +249,7 @@ \def\XINT_pfloat::_e #1,#2#3{\XINT_pfloat::_b {#2}{#3, #1}}% \def\XINT_expr_getnext #1% {% - \expandafter\XINT_expr_getnext_a\romannumeral-`0#1% + \expandafter\XINT_expr_getnext_a\romannumeral`&&@#1% }% \def\XINT_expr_getnext_a #1% {% screens out sub-expressions and \count or \dimen registers/variables @@ -304,13 +304,13 @@ }% \def\XINT_expr_scanint_a #1#2% {\expandafter\XINT_expr_getop\csname.=#1% - \expandafter\XINT_expr_scanint_b\romannumeral-`0#2}% + \expandafter\XINT_expr_scanint_b\romannumeral`&&@#2}% \def\XINT_expr_gobz_a #1% {\expandafter\XINT_expr_getop\csname.=% - \expandafter\XINT_expr_gobz_scanint_b\romannumeral-`0#1}% + \expandafter\XINT_expr_gobz_scanint_b\romannumeral`&&@#1}% \def\XINT_expr_startdec #1% {\expandafter\XINT_expr_getop\csname.=% - \expandafter\XINT_expr_scandec_a\romannumeral-`0#1}% + \expandafter\XINT_expr_scandec_a\romannumeral`&&@#1}% \def\XINT_expr_scanint_b #1% {% \ifcat \relax #1\expandafter\XINT_expr_scanint_endbycs\expandafter #1\fi @@ -319,7 +319,7 @@ }% \def\XINT_expr_scanint_d #1% {% - \expandafter\XINT_expr_scanint_b\romannumeral-`0#1% + \expandafter\XINT_expr_scanint_b\romannumeral`&&@#1% }% \def\XINT_expr_scanint_endbycs#1#2\XINT_expr_scanint_d{\endcsname #1}% \def\XINT_expr_scanint_c\string #1\XINT_expr_scanint_d @@ -332,7 +332,7 @@ }% \def\XINT_expr_startdec_a .#1% {% - \expandafter\XINT_expr_scandec_a\romannumeral-`0#1% + \expandafter\XINT_expr_scandec_a\romannumeral`&&@#1% }% \def\XINT_expr_scandec_a #1% {% @@ -357,11 +357,11 @@ }% \def\XINT_expr_gobz_scanint_d #1% {% - \expandafter\XINT_expr_gobz_scanint_b\romannumeral-`0#1% + \expandafter\XINT_expr_gobz_scanint_b\romannumeral`&&@#1% }% \def\XINT_expr_gobz_startdec_a .#1% {% - \expandafter\XINT_expr_gobz_scandec_a\romannumeral-`0#1% + \expandafter\XINT_expr_gobz_scandec_a\romannumeral`&&@#1% }% \def\XINT_expr_gobz_scandec_a #1% {% @@ -379,7 +379,7 @@ \def\XINT_expr_scandec_d #1.#2% {% \expandafter\XINT_expr_scandec_b - \the\numexpr #1\expandafter.\romannumeral-`0#2% + \the\numexpr #1\expandafter.\romannumeral`&&@#2% }% \def\XINT_expr_scandec_c\string #1#2\the\numexpr#3-\xint_c_i.% {% @@ -388,14 +388,16 @@ \ifcat a#1\xint_dothis{[#3]\endcsname *#1}\fi \xint_orthat {[#3]\expandafter\endcsname \string#1}% }% -\def\XINT_expr_gobz_scandec_b 0.#1% +\def\XINT_expr_gobz_scandec_b #1.#2% {% - \ifcat \relax #1\expandafter\XINT_expr_gobz_scandec_endbycs\expandafter#1\fi - \ifnum\xint_c_ix<1\string#1 \else\expandafter\XINT_expr_gobz_scandec_c\fi - \string#1\expandafter\XINT_expr_scandec_d\the\numexpr\xint_c_mone.% + \ifcat \relax #2\expandafter\XINT_expr_gobz_scandec_endbycs\expandafter#2\fi + \ifnum\xint_c_ix<1\string#2 \else\expandafter\XINT_expr_gobz_scandec_c\fi + \if0#2\expandafter\xint_firstoftwo\else\expandafter\xint_secondoftwo\fi + {\expandafter\XINT_expr_gobz_scandec_b}% + {\string#2\expandafter\XINT_expr_scandec_d}\the\numexpr#1-\xint_c_i.% }% -\def\XINT_expr_gobz_scandec_endbycs #1#2\xint_c_mone.{0[0]\endcsname #1}% -\def\XINT_expr_gobz_scandec_c\string #1#2\xint_c_mone.% +\def\XINT_expr_gobz_scandec_endbycs #1#2\xint_c_i.{0[0]\endcsname #1}% +\def\XINT_expr_gobz_scandec_c\if0#1#2\fi #3\xint_c_i.% {% \if e#1\xint_dothis{0[\the\numexpr0\XINT_expr_scanexp_a +}\fi \if E#1\xint_dothis{0[\the\numexpr0\XINT_expr_scanexp_a +}\fi @@ -404,7 +406,7 @@ }% \def\XINT_expr_scanexp_a #1#2% {% - #1\expandafter\XINT_expr_scanexp_b\romannumeral-`0#2% + #1\expandafter\XINT_expr_scanexp_b\romannumeral`&&@#2% }% \def\XINT_expr_scanexp_b #1% {% @@ -415,7 +417,7 @@ \def\XINT_expr_scanexpr_endbycs#1#2\XINT_expr_scanexp_d {]\endcsname #1}% \def\XINT_expr_scanexp_d #1% {% - \expandafter\XINT_expr_scanexp_bb\romannumeral-`0#1% + \expandafter\XINT_expr_scanexp_bb\romannumeral`&&@#1% }% \def\XINT_expr_scanexp_c\string #1\XINT_expr_scanexp_d {% @@ -433,7 +435,7 @@ \def\XINT_expr_scanexp_endbycs_b#1#2\XINT_expr_scanexp_db {]\endcsname #1}% \def\XINT_expr_scanexp_db #1% {% - \expandafter\XINT_expr_scanexp_bb\romannumeral-`0#1% + \expandafter\XINT_expr_scanexp_bb\romannumeral`&&@#1% }% \def\XINT_expr_scanexp_cb\string #1\XINT_expr_scanexp_db {% @@ -472,12 +474,12 @@ }% \def\XINT_expr_scanhexI_b #1#2% {% - #1\expandafter\XINT_expr_scanhexI_a\romannumeral-`0#2% + #1\expandafter\XINT_expr_scanhexI_a\romannumeral`&&@#2% }% \def\XINT_expr_scanhex_transition .#1% {% \expandafter.\expandafter.\expandafter - \XINT_expr_scanhexII_a\romannumeral-`0#1% + \XINT_expr_scanhexII_a\romannumeral`&&@#1% }% \def\XINT_expr_scanhexII_a #1% {% @@ -500,15 +502,15 @@ }% \def\XINT_expr_scanhexII_b #1#2% {% - #1\expandafter\XINT_expr_scanhexII_a\romannumeral-`0#2% + #1\expandafter\XINT_expr_scanhexII_a\romannumeral`&&@#2% }% \def\XINT_expr_scanfunc {% - \expandafter\XINT_expr_func\romannumeral-`0\XINT_expr_scanfunc_a + \expandafter\XINT_expr_func\romannumeral`&&@\XINT_expr_scanfunc_a }% \def\XINT_expr_scanfunc_a #1#2% {% - \expandafter #1\romannumeral-`0\expandafter\XINT_expr_scanfunc_b\romannumeral-`0#2% + \expandafter #1\romannumeral`&&@\expandafter\XINT_expr_scanfunc_b\romannumeral`&&@#2% }% \def\XINT_expr_scanfunc_b #1% {% @@ -531,7 +533,7 @@ }% \def\XINT_expr_getop #1#2% this #1 is the current locked computed value {% - \expandafter\XINT_expr_getop_a\expandafter #1\romannumeral-`0#2% + \expandafter\XINT_expr_getop_a\expandafter #1\romannumeral`&&@#2% }% \catcode`* 11 \def\XINT_expr_getop_a #1#2% @@ -558,7 +560,7 @@ \def\XINT_expr_binopwrd #1#2'{\expandafter\XINT_expr_foundop_a \csname XINT_expr_itself_\xint_zapspaces #2 \xint_gobble_i\endcsname #1}% \def\XINT_expr_scanop_a #1#2#3% - {\expandafter\XINT_expr_scanop_b\expandafter #1\expandafter #2\romannumeral-`0#3}% + {\expandafter\XINT_expr_scanop_b\expandafter #1\expandafter #2\romannumeral`&&@#3}% \def\XINT_expr_scanop_b #1#2#3% {% \ifcat#3\relax\xint_dothis{\XINT_expr_foundop_a #1#2#3}\fi @@ -569,7 +571,7 @@ }% \def\XINT_expr_scanop_c #1#2#3% {% - \expandafter\XINT_expr_scanop_d\expandafter #1\expandafter #2\romannumeral-`0#3% + \expandafter\XINT_expr_scanop_d\expandafter #1\expandafter #2\romannumeral`&&@#3% }% \def\XINT_expr_scanop_d #1#2#3% {% @@ -596,7 +598,7 @@ \def#1##1% {% \xint_UDsignfork - ##1{\expandafter#1\romannumeral-`0#3}% + ##1{\expandafter#1\romannumeral`&&@#3}% -{#2##1}% \krof }% @@ -604,12 +606,12 @@ {% \ifcase ##1\xint_afterfi {\ifx\XINT_expr_itself_^C ##2\xint_dothis - {\expandafter#1\romannumeral-`0\expandafter\XINT_expr_getnext\xint_gobble_i}\fi + {\expandafter#1\romannumeral`&&@\expandafter\XINT_expr_getnext\xint_gobble_i}\fi \xint_orthat \XINT_expr_done }% \or\xint_afterfi{\XINT_expr_extra_) - \expandafter #1\romannumeral-`0\XINT_expr_getop }% + \expandafter #1\romannumeral`&&@\XINT_expr_getop }% \else - \xint_afterfi{\expandafter#1\romannumeral-`0\csname XINT_#4_op_##2\endcsname }% + \xint_afterfi{\expandafter#1\romannumeral`&&@\csname XINT_#4_op_##2\endcsname }% \fi }% }% @@ -623,10 +625,10 @@ }% \def\XINT_tmpa #1#2#3#4#5#6% {% - \def #1##1{\expandafter #3\romannumeral-`0\XINT_expr_getnext }% - \def #2{\expandafter #3\romannumeral-`0\XINT_expr_getnext }% + \def #1##1{\expandafter #3\romannumeral`&&@\XINT_expr_getnext }% + \def #2{\expandafter #3\romannumeral`&&@\XINT_expr_getnext }% \def #3##1{\xint_UDsignfork - ##1{\expandafter #3\romannumeral-`0#5}% + ##1{\expandafter #3\romannumeral`&&@#5}% -{#4##1}% \krof }% \def #4##1##2{\ifcase ##1% @@ -634,7 +636,7 @@ \xint_orthat\XINT_expr_missing_) }% \or \csname XINT_#6_op_##2\expandafter\endcsname \else - \xint_afterfi{\expandafter #3\romannumeral-`0\csname XINT_#6_op_##2\endcsname }% + \xint_afterfi{\expandafter #3\romannumeral`&&@\csname XINT_#6_op_##2\endcsname }% \fi }% }% @@ -666,24 +668,26 @@ {\expandafter\.=+\xintiCeil{\XINT_expr_unlock ##1}}}% }% \catcode`. 12 \catcode`= 12 \catcode`+ 12 +\catcode`& 12 \xintFor* #1 in {{==}{<=}{>=}{!=}{&&}{||}{**}{//}{/:}{..}{..[}{].}{]..}% {+[}{-[}{*[}{/[}{**[}{^[}{a+}{a-}{a*}{a/}{a**}{a^}% {][}{][:}{:]}{^C}{++}{++)}} \do {\expandafter\def\csname XINT_expr_itself_#1\endcsname {#1}}% +\catcode`& 7 \def\XINT_tmpc #1#2#3#4#5#6#7#8% {% \def #1##1% \XINT_expr_op_ ou flexpr ou iiexpr {% keep value, get next number and operator, then do until \expandafter #2\expandafter ##1% - \romannumeral-`0\expandafter\XINT_expr_getnext }% + \romannumeral`&&@\expandafter\XINT_expr_getnext }% \def #2##1##2% \XINT_expr_until__a ou flexpr ou iiexpr - {\xint_UDsignfork ##2{\expandafter #2\expandafter ##1\romannumeral-`0#4}% + {\xint_UDsignfork ##2{\expandafter #2\expandafter ##1\romannumeral`&&@#4}% -{#3##1##2}% \krof }% \def #3##1##2##3##4% \XINT_expr_until__b ou flexpr ou iiexpr {% either execute next operation now, or first do next (possibly unary) \ifnum ##2>#5% - \xint_afterfi {\expandafter #2\expandafter ##1\romannumeral-`0% + \xint_afterfi {\expandafter #2\expandafter ##1\romannumeral`&&@% \csname XINT_#8_op_##3\endcsname {##4}}% \else \xint_afterfi {\expandafter ##2\expandafter ##3% \csname .=#6{\XINT_expr_unlock ##1}{\XINT_expr_unlock ##4}\endcsname }% @@ -701,6 +705,7 @@ \csname #2#6\expandafter\endcsname \csname XINT_expr_precedence_#3\endcsname {#1}% }% +\catcode`& 12 \xintFor #1 in {expr, flexpr} \do {% \def\XINT_tmpa ##1{\XINT_tmpb {#1}{xint}##1}% \xintApplyInline {\XINT_tmpa }{% @@ -718,6 +723,7 @@ {{/:}{vii}{vii}{Mod}}% }% }% +\catcode`& 7 \def\XINT_tmpa #1{\XINT_tmpb {expr}{xint}#1}% \xintApplyInline {\XINT_tmpa }{% {+{vi}{vi}{Add}}% @@ -739,6 +745,7 @@ {{]..}{iii}{vi}{SeqB::csv}}% }% \def\XINT_tmpa #1{\XINT_tmpb {iiexpr}{xint}#1}% +\catcode`& 12 \xintApplyInline {\XINT_tmpa }{% {|{iii}{vi}{OR}}% {&{iv}{vi}{AND}}% @@ -760,8 +767,9 @@ {{//}{vii}{vii}{iiDivTrunc}}% {{/:}{vii}{vii}{iiMod}}% }% +\catcode`& 7 \def\XINT_expr_binop_inline_a - {\expandafter\xint_gobble_i\romannumeral-`0\XINT_expr_binop_inline_b }% + {\expandafter\xint_gobble_i\romannumeral`&&@\XINT_expr_binop_inline_b }% \def\XINT_expr_binop_inline_b #1#2,{\XINT_expr_binop_inline_c #2,{#1}}% \def\XINT_expr_binop_inline_c #1{% \if ,#1\xint_dothis\XINT_expr_binop_inline_e\fi @@ -775,22 +783,22 @@ \def #1##1% \XINT_expr_op_ ou flexpr ou iiexpr {% keep value, get next number and operator, then do until \expandafter #2\expandafter ##1% - \romannumeral-`0\expandafter\XINT_expr_getnext }% + \romannumeral`&&@\expandafter\XINT_expr_getnext }% \def #2##1##2% \XINT_expr_until__a ou flexpr ou iiexpr - {\xint_UDsignfork ##2{\expandafter #2\expandafter ##1\romannumeral-`0#4}% + {\xint_UDsignfork ##2{\expandafter #2\expandafter ##1\romannumeral`&&@#4}% -{#3##1##2}% \krof }% \def #3##1##2##3##4% \XINT_expr_until__b ou flexpr ou iiexpr {% either execute next operation now, or first do next (possibly unary) \ifnum ##2>#5% - \xint_afterfi {\expandafter #2\expandafter ##1\romannumeral-`0% + \xint_afterfi {\expandafter #2\expandafter ##1\romannumeral`&&@% \csname XINT_#8_op_##3\endcsname {##4}}% \else \xint_afterfi {\expandafter ##2\expandafter ##3% \csname .=\expandafter\XINT_expr_binop_inline_a\expandafter {\expandafter\expandafter\expandafter#6\expandafter \xint_exchangetwo_keepbraces\expandafter {\expandafter\XINT_expr_unlock\expandafter ##4\expandafter}\expandafter}% - \romannumeral-`0\XINT_expr_unlock ##1,^,\endcsname }% + \romannumeral`&&@\XINT_expr_unlock ##1,^,\endcsname }% \fi }% \let #7#5% }% @@ -824,18 +832,18 @@ }% \def\XINT_tmpc #1#2#3#4#5#6#7% {% - \def #1##1{\expandafter#2\expandafter##1\romannumeral-`0% - \expandafter #3\romannumeral-`0\XINT_expr_getnext }% + \def #1##1{\expandafter#2\expandafter##1\romannumeral`&&@% + \expandafter #3\romannumeral`&&@\XINT_expr_getnext }% \def #2##1##2##3##4% {% either execute next operation now, or first do next (possibly unary) \ifnum ##2>#4% - \xint_afterfi {\expandafter #2\expandafter ##1\romannumeral-`0% + \xint_afterfi {\expandafter #2\expandafter ##1\romannumeral`&&@% \csname XINT_#7_op_##3\endcsname {##4}}% \else \xint_afterfi {\expandafter ##2\expandafter ##3% \csname .=\expandafter\XINT_expr_binop_inline_a\expandafter {\expandafter#5\expandafter {\expandafter\XINT_expr_unlock\expandafter ##1\expandafter}\expandafter}% - \romannumeral-`0\XINT_expr_unlock ##4,^,\endcsname }% + \romannumeral`&&@\XINT_expr_unlock ##4,^,\endcsname }% \fi }% \let #6#4% }% @@ -869,14 +877,14 @@ \xintFor #1 in {and,or,xor,mod} \do {% \expandafter\def\csname XINT_expr_itself_#1\endcsname {#1}}% \expandafter\let\csname XINT_expr_precedence_and\expandafter\endcsname - \csname XINT_expr_precedence_&\endcsname + \csname XINT_expr_precedence_\string&\endcsname \expandafter\let\csname XINT_expr_precedence_or\expandafter\endcsname \csname XINT_expr_precedence_|\endcsname \expandafter\let\csname XINT_expr_precedence_mod\expandafter\endcsname \csname XINT_expr_precedence_/:\endcsname \xintFor #1 in {expr, flexpr, iiexpr} \do {% \expandafter\let\csname XINT_#1_op_and\expandafter\endcsname - \csname XINT_#1_op_&\endcsname + \csname XINT_#1_op_\string&\endcsname \expandafter\let\csname XINT_#1_op_or\expandafter\endcsname \csname XINT_#1_op_|\endcsname \expandafter\let\csname XINT_#1_op_mod\expandafter\endcsname @@ -884,8 +892,8 @@ }% \expandafter\let\csname XINT_expr_precedence_==\expandafter\endcsname \csname XINT_expr_precedence_=\endcsname -\expandafter\let\csname XINT_expr_precedence_&&\expandafter\endcsname - \csname XINT_expr_precedence_&\endcsname +\expandafter\let\csname XINT_expr_precedence_\string&\string&\expandafter\endcsname + \csname XINT_expr_precedence_\string&\endcsname \expandafter\let\csname XINT_expr_precedence_||\expandafter\endcsname \csname XINT_expr_precedence_|\endcsname \expandafter\let\csname XINT_expr_precedence_**\expandafter\endcsname @@ -897,8 +905,8 @@ \xintFor #1 in {expr, flexpr, iiexpr} \do {% \expandafter\let\csname XINT_#1_op_==\expandafter\endcsname \csname XINT_#1_op_=\endcsname - \expandafter\let\csname XINT_#1_op_&&\expandafter\endcsname - \csname XINT_#1_op_&\endcsname + \expandafter\let\csname XINT_#1_op_\string&\string&\expandafter\endcsname + \csname XINT_#1_op_\string&\endcsname \expandafter\let\csname XINT_#1_op_||\expandafter\endcsname \csname XINT_#1_op_|\endcsname \expandafter\let\csname XINT_#1_op_**\expandafter\endcsname @@ -912,22 +920,22 @@ {% \def #1##1% \XINT_expr_op_][ {% - \expandafter #2\expandafter ##1\romannumeral-`0\XINT_expr_getnext + \expandafter #2\expandafter ##1\romannumeral`&&@\XINT_expr_getnext }% \def #2##1##2% \XINT_expr_until_][_a {\xint_UDsignfork - ##2{\expandafter #2\expandafter ##1\romannumeral-`0#4}% + ##2{\expandafter #2\expandafter ##1\romannumeral`&&@#4}% -{#3##1##2}% \krof }% \def #3##1##2##3##4% \XINT_expr_until_][_b {% \ifnum ##2>\xint_c_ii - \xint_afterfi {\expandafter #2\expandafter ##1\romannumeral-`0% + \xint_afterfi {\expandafter #2\expandafter ##1\romannumeral`&&@% \csname XINT_#6_op_##3\endcsname {##4}}% \else \xint_afterfi {\expandafter ##2\expandafter ##3\csname - .=\expandafter\xintListSel:csv \romannumeral-`0\XINT_expr_unlock ##4;% + .=\expandafter\xintListSel:csv \romannumeral`&&@\XINT_expr_unlock ##4;% \XINT_expr_unlock ##1;\endcsname % unlock for \xintNewExpr }% \fi @@ -946,17 +954,17 @@ {% \def #1##1% \XINT_expr_op_: {% - \expandafter #2\expandafter ##1\romannumeral-`0\XINT_expr_getnext + \expandafter #2\expandafter ##1\romannumeral`&&@\XINT_expr_getnext }% \def #2##1##2% \XINT_expr_until_:_a {\xint_UDsignfork - ##2{\expandafter #2\expandafter ##1\romannumeral-`0#4}% + ##2{\expandafter #2\expandafter ##1\romannumeral`&&@#4}% -{#3##1##2}% \krof }% \def #3##1##2##3##4% \XINT_expr_until_:_b {% \ifnum ##2>\xint_c_iii - \xint_afterfi {\expandafter #2\expandafter ##1\romannumeral-`0% + \xint_afterfi {\expandafter #2\expandafter ##1\romannumeral`&&@% \csname XINT_#6_op_##3\endcsname {##4}}% \else \xint_afterfi @@ -990,7 +998,7 @@ \let\XINT_iiexpr_op_][: \XINT_expr_op_][: \catcode`[ 12 \catcode`] 12 \def\xintListSel:csv #1{% - \if ]\noexpand#1\xint_dothis{\expandafter\XINT_listsel:_s\romannumeral-`0}\fi + \if ]\noexpand#1\xint_dothis{\expandafter\XINT_listsel:_s\romannumeral`&&@}\fi \if :\noexpand#1\xint_dothis{\XINT_listsel:_:}\fi \xint_orthat {\XINT_listsel:_nth #1}% }% @@ -1111,8 +1119,8 @@ \def\XINT_seqa::csv #1#2{\expandafter\XINT_seqa::csv_a \romannumeral0\xintraw {#2};#1;}% \def\xintiiSeqA::csv #1#2{\XINT_iiseqa::csv #1#2}% \def\XINT_iiseqa::csv #1#2#3#4{\expandafter\XINT_seqa::csv_a - \romannumeral-`0\expandafter \XINT_expr_unlock\expandafter#4% - \expandafter;\romannumeral-`0\XINT_expr_unlock #2;}% + \romannumeral`&&@\expandafter \XINT_expr_unlock\expandafter#4% + \expandafter;\romannumeral`&&@\XINT_expr_unlock #2;}% \def\XINTinFloatSeqA::csv #1{\expandafter\XINT_flseqa::csv\expandafter {\romannumeral0\XINTinfloat [\XINTdigits]{#1}}}% \def\XINT_flseqa::csv #1#2% @@ -1124,7 +1132,7 @@ \krof #1}% \def\xintSeqB::csv #1#2% {\expandafter\XINT_seqb::csv \expandafter{\romannumeral0\xintraw{#2}}{#1}}% -\def\XINT_seqb::csv #1#2{\expandafter\XINT_seqb::csv_a\romannumeral-`0#2#1!}% +\def\XINT_seqb::csv #1#2{\expandafter\XINT_seqb::csv_a\romannumeral`&&@#2#1!}% \def\XINT_seqb::csv_a #1#2;#3;#4!{\expandafter\XINT_expr_seq_empty? \romannumeral0\csname XINT_seqb::csv_#1\endcsname {#3}{#4}{#2}}% \def\XINT_seqb::csv_p #1#2#3% @@ -1143,10 +1151,10 @@ \def\xintiiSeqB::csv #1#2{\XINT_iiseqb::csv #1#2}% \def\XINT_iiseqb::csv #1#2#3#4% {\expandafter\XINT_iiseqb::csv_a - \romannumeral-`0\expandafter \XINT_expr_unlock\expandafter#2% - \romannumeral-`0\XINT_expr_unlock #4!}% + \romannumeral`&&@\expandafter \XINT_expr_unlock\expandafter#2% + \romannumeral`&&@\XINT_expr_unlock #4!}% \def\XINT_iiseqb::csv_a #1#2;#3;#4!{\expandafter\XINT_expr_seq_empty? - \romannumeral-`0\csname XINT_iiseqb::csv_#1\endcsname {#3}{#4}{#2}}% + \romannumeral`&&@\csname XINT_iiseqb::csv_#1\endcsname {#3}{#4}{#2}}% \def\XINT_iiseqb::csv_p #1#2#3% {% \xintSgnFork{\XINT_Cmp {#1}{#2}}{,#1\expandafter\XINT_iiseqb::csv_p\expandafter}% @@ -1162,9 +1170,9 @@ \def\XINT_iiseqb::csv_z #1#2#3{,#1}% \def\XINTinFloatSeqB::csv #1#2{\expandafter\XINT_flseqb::csv \expandafter {\romannumeral0\XINTinfloat [\XINTdigits]{#2}}{#1}}% -\def\XINT_flseqb::csv #1#2{\expandafter\XINT_flseqb::csv_a\romannumeral-`0#2#1!}% +\def\XINT_flseqb::csv #1#2{\expandafter\XINT_flseqb::csv_a\romannumeral`&&@#2#1!}% \def\XINT_flseqb::csv_a #1#2;#3;#4!{\expandafter\XINT_expr_seq_empty? - \romannumeral-`0\csname XINT_flseqb::csv_#1\endcsname {#3}{#4}{#2}}% + \romannumeral`&&@\csname XINT_flseqb::csv_#1\endcsname {#3}{#4}{#2}}% \def\XINT_flseqb::csv_p #1#2#3% {% \xintifCmp {#1}{#2}{,#1\expandafter\XINT_flseqb::csv_p\expandafter}% @@ -1182,17 +1190,17 @@ {% \def #1##1% \XINT_expr_op_, {% - \expandafter #2\expandafter ##1\romannumeral-`0\XINT_expr_getnext + \expandafter #2\expandafter ##1\romannumeral`&&@\XINT_expr_getnext }% \def #2##1##2% \XINT_expr_until_,_a {\xint_UDsignfork - ##2{\expandafter #2\expandafter ##1\romannumeral-`0#4}% + ##2{\expandafter #2\expandafter ##1\romannumeral`&&@#4}% -{#3##1##2}% \krof }% \def #3##1##2##3##4% \XINT_expr_until_,_b {% \ifnum ##2>\xint_c_ii - \xint_afterfi {\expandafter #2\expandafter ##1\romannumeral-`0% + \xint_afterfi {\expandafter #2\expandafter ##1\romannumeral`&&@% \csname XINT_#6_op_##3\endcsname {##4}}% \else \xint_afterfi @@ -1222,17 +1230,17 @@ {% \def #1% \XINT_expr_op_- {% get next number+operator then switch to _until macro - \expandafter #2\romannumeral-`0\XINT_expr_getnext + \expandafter #2\romannumeral`&&@\XINT_expr_getnext }% \def #2##1% \XINT_expr_until_-_a {\xint_UDsignfork - ##1{\expandafter #2\romannumeral-`0#1}% + ##1{\expandafter #2\romannumeral`&&@#1}% -{#3##1}% \krof }% \def #3##1##2##3% \XINT_expr_until_-_b {% _until tests precedence level with next op, executes now or postpones \ifnum ##1>#4% - \xint_afterfi {\expandafter #2\romannumeral-`0% + \xint_afterfi {\expandafter #2\romannumeral`&&@% \csname XINT_#5_op_##2\endcsname {##3}}% \else \xint_afterfi {\expandafter ##1\expandafter ##2% @@ -1367,9 +1375,9 @@ \xint_dothis{\csname XINT_expr_onlitteral_##1\endcsname}\fi \ifcsname XINT_#3_func_##1\endcsname \xint_dothis{\expandafter\expandafter - \csname XINT_#3_func_##1\endcsname\romannumeral-`0#2}\fi + \csname XINT_#3_func_##1\endcsname\romannumeral`&&@#2}\fi \xint_orthat{\XINT_expr_unknown_function {##1}% - \expandafter\XINT_expr_func_unknown\romannumeral-`0#2}% + \expandafter\XINT_expr_func_unknown\romannumeral`&&@#2}% }% }% \def\XINT_expr_unknown_function #1{\xintError:removed \xint_gobble_i {#1}}% @@ -1389,7 +1397,7 @@ \def\XINT_expr_func_unknown #1#2#3% {\expandafter #1\expandafter #2\csname .=0\endcsname }% \def\XINT_expr_func_break #1#2#3% - {\expandafter #1\expandafter #2\csname.=?\romannumeral-`0\XINT_expr_unlock #3\endcsname }% + {\expandafter #1\expandafter #2\csname.=?\romannumeral`&&@\XINT_expr_unlock #3\endcsname }% \let\XINT_flexpr_func_break \XINT_expr_func_break \let\XINT_iiexpr_func_break \XINT_expr_func_break \def\XINT_expr_onlitteral_qint #1)% @@ -1399,7 +1407,7 @@ \def\XINT_expr_onlitteral_qfloat #1)% {\expandafter\XINT_expr_getop\csname .=\XINTinFloatdigits{#1}\endcsname }% \def\XINT_expr_onlitteral_seq - {\expandafter\XINT_expr_onlitteral_seq_f\romannumeral-`0\XINT_expr_onlitteral_seq_a {}}% + {\expandafter\XINT_expr_onlitteral_seq_f\romannumeral`&&@\XINT_expr_onlitteral_seq_a {}}% \def\XINT_expr_onlitteral_seq_f #1#2{\xint_c_xviii `{seqx}#2)\relax #1}% \def\XINT_expr_onlitteral_seq_a #1#2,% {% checks balancing of parentheses @@ -1440,7 +1448,7 @@ {% #3 is the Latin letter serving as dummy variable, #4 is the expression to evaluate \expandafter \XINT_expr_getop \csname .=\expandafter\XINT_expr_seq:_aa - \romannumeral-`0\XINT_expr_unlock #2!{#1#4\relax !#3},^,\endcsname + \romannumeral`&&@\XINT_expr_unlock #2!{#1#4\relax !#3},^,\endcsname }% \def\XINT_expr_seq:_aa #1{\if +#1\expandafter\XINT_expr_seq:_A\else \expandafter\XINT_expr_seq:_a\fi #1}% @@ -1451,7 +1459,7 @@ \if ^#1\xint_dothis\XINT_expr_seq:_end\fi \xint_orthat\XINT_expr_seq:_d #1}% \def\XINT_expr_seq:_d #1,#2{\expandafter\XINT_expr_seq:_e - \romannumeral-`0\expandafter\XINT_expr_unlock\romannumeral0#2{#1}{#2}}% + \romannumeral`&&@\expandafter\XINT_expr_unlock\romannumeral0#2{#1}{#2}}% \def\XINT_expr_seq:_e #1{\if #1^\xint_dothis\XINT_expr_seq:_abort\fi \if #1?\xint_dothis\XINT_expr_seq:_break\fi \if #1!\xint_dothis\XINT_expr_seq:_omit\fi @@ -1468,7 +1476,7 @@ \def\XINT_expr_seq:_A +#1!#2,^,% {\expandafter\XINT_expr_seq_empty?\romannumeral0\XINT_expr_seq:_D {#1}{#2}}% \def\XINT_expr_seq:_D #1#2{\expandafter\XINT_expr_seq:_E - \romannumeral-`0\expandafter\XINT_expr_unlock\romannumeral0#2{#1}{#2}}% + \romannumeral`&&@\expandafter\XINT_expr_unlock\romannumeral0#2{#1}{#2}}% \def\XINT_expr_seq:_E #1{\if #1^\xint_dothis\XINT_expr_seq:_Abort\fi \if #1?\xint_dothis\XINT_expr_seq:_Break\fi \if #1!\xint_dothis\XINT_expr_seq:_Omit\fi @@ -1480,10 +1488,10 @@ \def\XINT_expr_seq:_Abort #1!#2#3#4{}% \def\XINT_expr_seq:_Break #1!#2#3#4{,#1}% \def\XINT_expr_onlitteral_add - {\expandafter\XINT_expr_onlitteral_add_f\romannumeral-`0\XINT_expr_onlitteral_seq_a {}}% + {\expandafter\XINT_expr_onlitteral_add_f\romannumeral`&&@\XINT_expr_onlitteral_seq_a {}}% \def\XINT_expr_onlitteral_add_f #1#2{\xint_c_xviii `{opx}#2)\relax #1+}% \def\XINT_expr_onlitteral_mul - {\expandafter\XINT_expr_onlitteral_mul_f\romannumeral-`0\XINT_expr_onlitteral_seq_a {}}% + {\expandafter\XINT_expr_onlitteral_mul_f\romannumeral`&&@\XINT_expr_onlitteral_seq_a {}}% \def\XINT_expr_onlitteral_mul_f #1#2{\xint_c_xviii `{opx}#2)\relax #1*}% \expandafter\edef\csname XINT_expr_op:_+\endcsname {\noexpand\xint_gobble_v {}{}{}\expandafter\noexpand\csname .=0\endcsname}% @@ -1496,7 +1504,7 @@ {% \expandafter\XINT_expr_getop\romannumeral0\expandafter\XINT_expr_op:_a \csname XINT_expr_op:_#5\expandafter\endcsname - \romannumeral-`0\XINT_expr_unlock #2!#5#1#3{#4}% + \romannumeral`&&@\XINT_expr_unlock #2!#5#1#3{#4}% }% \def\XINT_expr_op:_a #1#2!#3#4#5#6{\XINT_expr_op:_b {#1#4#3{#6\relax\relax !#5}}#2,^,}% \def\XINT_expr_op:_b #1#2,{\XINT_expr_op:_c #2,#1}% @@ -1510,7 +1518,7 @@ \def\XINT_expr_op:_end ^,#1#2#3#4{\expandafter\expandafter\expandafter\space \expandafter\xint_gobble_iv #1}% \def\XINT_expr_onlitteral_subs - {\expandafter\XINT_expr_onlitteral_subs_f\romannumeral-`0\XINT_expr_onlitteral_seq_a {}}% + {\expandafter\XINT_expr_onlitteral_subs_f\romannumeral`&&@\XINT_expr_onlitteral_seq_a {}}% \def\XINT_expr_onlitteral_subs_f #1#2{\xint_c_xviii `{subx}#2)\relax #1}% \def\XINT_expr_func_subx #1#2{\XINT_allexpr_subx \xintbareeval }% \def\XINT_flexpr_func_subx #1#2{\XINT_allexpr_subx \xintbarefloateval}% @@ -1519,7 +1527,7 @@ {% #3 is the dummy variable, #4 is the expression to evaluate \expandafter \XINT_expr_getop \csname .=\expandafter\XINT_expr_subx:_a - \romannumeral-`0\XINT_expr_unlock #2!{#1#4\relax !#3}\endcsname + \romannumeral`&&@\XINT_expr_unlock #2!{#1#4\relax !#3}\endcsname }% \def\XINT_expr_subx:_a #1!#2% {\expandafter\XINT_expr_subx:_end \romannumeral0#2{#1}}% @@ -1530,7 +1538,7 @@ \def\XINT_allexpr_rseq #1#2% {% \expandafter\XINT_expr_rseqx\expandafter #1\expandafter - #2\romannumeral-`0\XINT_expr_onlitteral_seq_a {}% + #2\romannumeral`&&@\XINT_expr_onlitteral_seq_a {}% }% \def\XINT_expr_rseqx #1#2#3#4% {% @@ -1542,7 +1550,7 @@ \expandafter \XINT_expr_getop \csname .=\XINT_expr_unlock #2% \expandafter\XINT_expr_rseq:_aa - \romannumeral-`0\XINT_expr_unlock #1!{#5#4\relax !#3}#2,^,\endcsname + \romannumeral`&&@\XINT_expr_unlock #1!{#5#4\relax !#3}#2,^,\endcsname }% \def\XINT_expr_rseq:_aa #1{\if +#1\expandafter\XINT_expr_rseq:_A\else \expandafter\XINT_expr_rseq:_a\fi #1}% @@ -1552,7 +1560,7 @@ \if ^#1\xint_dothis\XINT_expr_rseq:_end\fi \xint_orthat\XINT_expr_rseq:_d #1}% \def\XINT_expr_rseq:_d #1,~#2#3{\expandafter\XINT_expr_rseq:_e - \romannumeral-`0\expandafter\XINT_expr_unlock\romannumeral0#3{#1}~#2{#3}}% + \romannumeral`&&@\expandafter\XINT_expr_unlock\romannumeral0#3{#1}~#2{#3}}% \def\XINT_expr_rseq:_e #1{% \if ^#1\xint_dothis\XINT_expr_rseq:_abort\fi \if ?#1\xint_dothis\XINT_expr_rseq:_break\fi @@ -1567,7 +1575,7 @@ \def\XINT_expr_rseq:_end ^,~#1#2{}% no nil for rseq \def\XINT_expr_rseq:_A +#1!#2#3,^,{\XINT_expr_rseq:_D {#1}#3{#2}}% \def\XINT_expr_rseq:_D #1#2#3{\expandafter\XINT_expr_rseq:_E - \romannumeral-`0\expandafter\XINT_expr_unlock\romannumeral0#3{#1}~#2{#3}}% + \romannumeral`&&@\expandafter\XINT_expr_unlock\romannumeral0#3{#1}~#2{#3}}% \def\XINT_expr_rseq:_E #1{\if #1^\xint_dothis\XINT_expr_rseq:_Abort\fi \if #1?\xint_dothis\XINT_expr_rseq:_Break\fi \if #1!\xint_dothis\XINT_expr_rseq:_Omit\fi @@ -1585,7 +1593,7 @@ \def\XINT_allexpr_rrseq #1#2% {% \expandafter\XINT_expr_rrseqx\expandafter #1\expandafter - #2\romannumeral-`0\XINT_expr_onlitteral_seq_a {}% + #2\romannumeral`&&@\XINT_expr_onlitteral_seq_a {}% }% \def\XINT_expr_rrseqx #1#2#3#4% {% @@ -1599,7 +1607,7 @@ \expandafter \XINT_expr_getop \csname .=\XINT_expr_unlock #3% \expandafter\XINT_expr_rrseq:_aa - \romannumeral-`0\XINT_expr_unlock #1!{#6#5\relax !#4}{#2},^,\endcsname + \romannumeral`&&@\XINT_expr_unlock #1!{#6#5\relax !#4}{#2},^,\endcsname }% \def\XINT_expr_rrseq:_aa #1{\if +#1\expandafter\XINT_expr_rrseq:_A\else \expandafter\XINT_expr_rrseq:_a\fi #1}% @@ -1610,7 +1618,7 @@ \if ^#1\xint_dothis\XINT_expr_rrseq:_end\fi \xint_orthat\XINT_expr_rrseq:_d #1}% \def\XINT_expr_rrseq:_d #1,~#2?#3{\expandafter\XINT_expr_rrseq:_e - \romannumeral-`0\expandafter\XINT_expr_unlock\romannumeral0#3{#1}~#2?{#3}}% + \romannumeral`&&@\expandafter\XINT_expr_unlock\romannumeral0#3{#1}~#2?{#3}}% \def\XINT_expr_rrseq:_goon #1!#2#3~#4?#5{,#1\expandafter\XINT_expr_rrseq:_b\expandafter {\romannumeral0\xinttrim{-1}{\XINT_expr_lockit{#1}#4}}{#5}}% \def\XINT_expr_rrseq:_omit #1!#2#3~{\XINT_expr_rrseq:_b }% @@ -1628,7 +1636,7 @@ \catcode`? 3 \def\XINT_expr_rrseq:_A +#1!#2#3,^,{\XINT_expr_rrseq:_D {#1}{#3}{#2}}% \def\XINT_expr_rrseq:_D #1#2#3{\expandafter\XINT_expr_rrseq:_E - \romannumeral-`0\expandafter\XINT_expr_unlock\romannumeral0#3{#1}~#2?{#3}}% + \romannumeral`&&@\expandafter\XINT_expr_unlock\romannumeral0#3{#1}~#2?{#3}}% \def\XINT_expr_rrseq:_Goon #1!#2#3~#4?#5% {,#1\expandafter\XINT_expr_rrseq:_D\expandafter{\the\numexpr #3+\xint_c_i\expandafter}% \expandafter{\romannumeral0\xinttrim{-1}{\XINT_expr_lockit{#1}#4}}{#5}}% @@ -1647,7 +1655,7 @@ \def\XINT_allexpr_iter #1#2% {% \expandafter\XINT_expr_iterx\expandafter #1\expandafter - #2\romannumeral-`0\XINT_expr_onlitteral_seq_a {}% + #2\romannumeral`&&@\XINT_expr_onlitteral_seq_a {}% }% \def\XINT_expr_iterx #1#2#3#4% {% @@ -1661,7 +1669,7 @@ \expandafter \XINT_expr_getop \csname .=% \expandafter\XINT_expr_iter:_aa - \romannumeral-`0\XINT_expr_unlock #1!{#6#5\relax !#4}{#2},^,\endcsname + \romannumeral`&&@\XINT_expr_unlock #1!{#6#5\relax !#4}{#2},^,\endcsname }% \def\XINT_expr_iter:_aa #1{\if +#1\expandafter\XINT_expr_iter:_A\else \expandafter\XINT_expr_iter:_a\fi #1}% @@ -1672,7 +1680,7 @@ \if ^#1\xint_dothis\XINT_expr_iter:_end\fi \xint_orthat\XINT_expr_iter:_d #1}% \def\XINT_expr_iter:_d #1,~#2?#3{\expandafter\XINT_expr_iter:_e - \romannumeral-`0\expandafter\XINT_expr_unlock\romannumeral0#3{#1}~#2?{#3}}% + \romannumeral`&&@\expandafter\XINT_expr_unlock\romannumeral0#3{#1}~#2?{#3}}% \def\XINT_expr_iter:_goon #1!#2#3~#4?#5{\expandafter\XINT_expr_iter:_b\expandafter {\romannumeral0\xinttrim{-1}{\XINT_expr_lockit{#1}#4}}{#5}}% \def\XINT_expr_iter:_omit #1!#2#3~{\XINT_expr_iter:_b }% @@ -1697,7 +1705,7 @@ \catcode`? 3 \def\XINT_expr_iter:_A +#1!#2#3,^,{\XINT_expr_iter:_D {#1}{#3}{#2}}% \def\XINT_expr_iter:_D #1#2#3{\expandafter\XINT_expr_iter:_E - \romannumeral-`0\expandafter\XINT_expr_unlock\romannumeral0#3{#1}~#2?{#3}}% + \romannumeral`&&@\expandafter\XINT_expr_unlock\romannumeral0#3{#1}~#2?{#3}}% \def\XINT_expr_iter:_Goon #1!#2#3~#4?#5% {\expandafter\XINT_expr_iter:_D\expandafter{\the\numexpr #3+\xint_c_i\expandafter}% \expandafter{\romannumeral0\xinttrim{-1}{\XINT_expr_lockit{#1}#4}}{#5}}% @@ -1714,19 +1722,19 @@ \if #1?\xint_dothis\XINT_expr_iter:_Break\fi \if #1!\xint_dothis\XINT_expr_iter:_Omit\fi \xint_orthat{\XINT_expr_iter:_Goon #1}}% -\def\xintANDof:csv #1{\expandafter\XINT_andof:_a\romannumeral-`0#1,,^}% +\def\xintANDof:csv #1{\expandafter\XINT_andof:_a\romannumeral`&&@#1,,^}% \def\XINT_andof:_a #1{\if ,#1\expandafter\XINT_andof:_e \else\expandafter\XINT_andof:_c\fi #1}% \def\XINT_andof:_c #1,{\xintiiifNotZero {#1}{\XINT_andof:_a}{\XINT_andof:_no}}% \def\XINT_andof:_no #1^{0}% \def\XINT_andof:_e #1^{1}% works with empty list -\def\xintORof:csv #1{\expandafter\XINT_orof:_a\romannumeral-`0#1,,^}% +\def\xintORof:csv #1{\expandafter\XINT_orof:_a\romannumeral`&&@#1,,^}% \def\XINT_orof:_a #1{\if ,#1\expandafter\XINT_orof:_e \else\expandafter\XINT_orof:_c\fi #1}% \def\XINT_orof:_c #1,{\xintiiifNotZero{#1}{\XINT_orof:_yes}{\XINT_orof:_a}}% \def\XINT_orof:_yes #1^{1}% \def\XINT_orof:_e #1^{0}% works with empty list -\def\xintXORof:csv #1{\expandafter\XINT_xorof:_a\expandafter 0\romannumeral-`0#1,,^}% +\def\xintXORof:csv #1{\expandafter\XINT_xorof:_a\expandafter 0\romannumeral`&&@#1,,^}% \def\XINT_xorof:_a #1#2,{\XINT_xorof:_b #2,#1}% \def\XINT_xorof:_b #1{\if ,#1\expandafter\XINT_xorof:_e \else\expandafter\XINT_xorof:_c\fi #1}% @@ -1741,46 +1749,46 @@ \def\XINT_oncsv:_a #1#2#3% {\if ,#3\expandafter\XINT_oncsv:_empty\else\expandafter\XINT_oncsv:_b\fi #1#2#3}% \def\XINT_oncsv:_b #1#2#3,% - {\expandafter\XINT_oncsv:_c \expandafter{\romannumeral-`0#2{#3}}#1#2}% -\def\XINT_oncsv:_c #1#2#3#4,{\expandafter\XINT_oncsv:_d \romannumeral-`0#4,{#1}#2#3}% + {\expandafter\XINT_oncsv:_c \expandafter{\romannumeral`&&@#2{#3}}#1#2}% +\def\XINT_oncsv:_c #1#2#3#4,{\expandafter\XINT_oncsv:_d \romannumeral`&&@#4,{#1}#2#3}% \def\XINT_oncsv:_d #1% {\if ^#1\expandafter\XINT_oncsv:_end\else\expandafter\XINT_oncsv:_e\fi #1}% \def\XINT_oncsv:_e #1,#2#3#4% - {\expandafter\XINT_oncsv:_c\expandafter {\romannumeral-`0#3{#4{#1}}{#2}}#3#4}% + {\expandafter\XINT_oncsv:_c\expandafter {\romannumeral`&&@#3{#4{#1}}{#2}}#3#4}% \def\xintMaxof:csv #1{\expandafter\XINT_oncsv:_a\expandafter\xintmax - \expandafter\xint_firstofone\romannumeral-`0#1,^,{0/1[0]}}% + \expandafter\xint_firstofone\romannumeral`&&@#1,^,{0/1[0]}}% \def\xintiiMaxof:csv #1{\expandafter\XINT_oncsv:_a\expandafter\xintiimax - \expandafter\xint_firstofone\romannumeral-`0#1,^,0}% + \expandafter\xint_firstofone\romannumeral`&&@#1,^,0}% \def\xintMinof:csv #1{\expandafter\XINT_oncsv:_a\expandafter\xintmin - \expandafter\xint_firstofone\romannumeral-`0#1,^,{0/1[0]}}% + \expandafter\xint_firstofone\romannumeral`&&@#1,^,{0/1[0]}}% \def\xintiiMinof:csv #1{\expandafter\XINT_oncsv:_a\expandafter\xintiimin - \expandafter\xint_firstofone\romannumeral-`0#1,^,0}% + \expandafter\xint_firstofone\romannumeral`&&@#1,^,0}% \def\xintSum:csv #1{\expandafter\XINT_oncsv:_a\expandafter\xintadd - \expandafter\xint_firstofone\romannumeral-`0#1,^,{0/1[0]}}% + \expandafter\xint_firstofone\romannumeral`&&@#1,^,{0/1[0]}}% \def\xintiiSum:csv #1{\expandafter\XINT_oncsv:_a\expandafter\xintiiadd - \expandafter\xint_firstofone\romannumeral-`0#1,^,0}% + \expandafter\xint_firstofone\romannumeral`&&@#1,^,0}% \def\xintPrd:csv #1{\expandafter\XINT_oncsv:_a\expandafter\xintmul - \expandafter\xint_firstofone\romannumeral-`0#1,^,{1/1[0]}}% + \expandafter\xint_firstofone\romannumeral`&&@#1,^,{1/1[0]}}% \def\xintiiPrd:csv #1{\expandafter\XINT_oncsv:_a\expandafter\xintiimul - \expandafter\xint_firstofone\romannumeral-`0#1,^,1}% + \expandafter\xint_firstofone\romannumeral`&&@#1,^,1}% \def\xintGCDof:csv #1{\expandafter\XINT_oncsv:_a\expandafter\xintgcd - \expandafter\xint_firstofone\romannumeral-`0#1,^,1}% + \expandafter\xint_firstofone\romannumeral`&&@#1,^,1}% \def\xintLCMof:csv #1{\expandafter\XINT_oncsv:_a\expandafter\xintlcm - \expandafter\xint_firstofone\romannumeral-`0#1,^,0}% + \expandafter\xint_firstofone\romannumeral`&&@#1,^,0}% \def\xintiiGCDof:csv #1{\expandafter\XINT_oncsv:_a\expandafter\xintiigcd - \expandafter\xint_firstofone\romannumeral-`0#1,^,1}% + \expandafter\xint_firstofone\romannumeral`&&@#1,^,1}% \def\xintiiLCMof:csv #1{\expandafter\XINT_oncsv:_a\expandafter\xintiilcm - \expandafter\xint_firstofone\romannumeral-`0#1,^,0}% + \expandafter\xint_firstofone\romannumeral`&&@#1,^,0}% \def\XINTinFloatdigits {\XINTinFloat [\XINTdigits]}% \def\XINTinFloatSqrtdigits {\XINTinFloatSqrt [\XINTdigits]}% \def\XINTinFloatMaxof:csv #1{\expandafter\XINT_oncsv:_a\expandafter\xintmax - \expandafter\XINTinFloatdigits\romannumeral-`0#1,^,{0[0]}}% + \expandafter\XINTinFloatdigits\romannumeral`&&@#1,^,{0[0]}}% \def\XINTinFloatMinof:csv #1{\expandafter\XINT_oncsv:_a\expandafter\xintmin - \expandafter\XINTinFloatdigits\romannumeral-`0#1,^,{0[0]}}% + \expandafter\XINTinFloatdigits\romannumeral`&&@#1,^,{0[0]}}% \def\XINTinFloatSum:csv #1{\expandafter\XINT_oncsv:_a\expandafter\XINTinfloatadd - \expandafter\XINTinFloatdigits\romannumeral-`0#1,^,{0[0]}}% + \expandafter\XINTinFloatdigits\romannumeral`&&@#1,^,{0[0]}}% \def\XINTinFloatPrd:csv #1{\expandafter\XINT_oncsv:_a\expandafter\XINTinfloatmul - \expandafter\XINTinFloatdigits\romannumeral-`0#1,^,{1[0]}}% + \expandafter\XINTinFloatdigits\romannumeral`&&@#1,^,{1[0]}}% \def\XINT_expr_twoargs #1,#2,{{#1}{#2}}% \def\XINT_expr_argandopt #1,#2,#3.#4#5% {% @@ -1846,7 +1854,7 @@ {% \expandafter #1\expandafter #2\csname .=% \expandafter\XINT_expr_argandopt - \romannumeral-`0\XINT_expr_unlock#3,,.\XINTinFloatSqrtdigits\XINTinFloatSqrt + \romannumeral`&&@\XINT_expr_unlock#3,,.\XINTinFloatSqrtdigits\XINTinFloatSqrt \endcsname }% \let\XINT_flexpr_func_sqrt\XINT_expr_func_sqrt @@ -1859,34 +1867,34 @@ \expandafter #1\expandafter #2\csname .=% \expandafter\XINT_expr_oneortwo \expandafter\xintiRound\expandafter\xintRound - \romannumeral-`0\XINT_expr_unlock #3,,.\endcsname + \romannumeral`&&@\XINT_expr_unlock #3,,.\endcsname }% \let\XINT_flexpr_func_round\XINT_expr_func_round \def\XINT_iiexpr_func_round #1#2#3% {% \expandafter #1\expandafter #2\csname .=% \expandafter\XINT_iiexpr_oneortwo\expandafter\xintiRound - \romannumeral-`0\XINT_expr_unlock #3,,.\endcsname + \romannumeral`&&@\XINT_expr_unlock #3,,.\endcsname }% \def\XINT_expr_func_trunc #1#2#3% {% \expandafter #1\expandafter #2\csname .=% \expandafter\XINT_expr_oneortwo \expandafter\xintiTrunc\expandafter\xintTrunc - \romannumeral-`0\XINT_expr_unlock #3,,.\endcsname + \romannumeral`&&@\XINT_expr_unlock #3,,.\endcsname }% \let\XINT_flexpr_func_trunc\XINT_expr_func_trunc \def\XINT_iiexpr_func_trunc #1#2#3% {% \expandafter #1\expandafter #2\csname .=% \expandafter\XINT_iiexpr_oneortwo\expandafter\xintiTrunc - \romannumeral-`0\XINT_expr_unlock #3,,.\endcsname + \romannumeral`&&@\XINT_expr_unlock #3,,.\endcsname }% \def\XINT_expr_func_float #1#2#3% {% \expandafter #1\expandafter #2\csname .=% \expandafter\XINT_expr_argandopt - \romannumeral-`0\XINT_expr_unlock #3,,.\XINTinFloatdigits\XINTinFloat + \romannumeral`&&@\XINT_expr_unlock #3,,.\XINTinFloatdigits\XINTinFloat \endcsname }% \let\XINT_flexpr_func_float\XINT_expr_func_float @@ -1895,28 +1903,28 @@ \expandafter #1\expandafter #2\csname .=% \expandafter\expandafter\expandafter\xintMod \expandafter\XINT_expr_twoargs - \romannumeral-`0\XINT_expr_unlock #3,\endcsname + \romannumeral`&&@\XINT_expr_unlock #3,\endcsname }% \def\XINT_flexpr_func_mod #1#2#3% {% \expandafter #1\expandafter #2\csname .=% \expandafter\XINTinFloatMod - \romannumeral-`0\expandafter\XINT_expr_twoargs - \romannumeral-`0\XINT_expr_unlock #3,\endcsname + \romannumeral`&&@\expandafter\XINT_expr_twoargs + \romannumeral`&&@\XINT_expr_unlock #3,\endcsname }% \def\XINT_iiexpr_func_mod #1#2#3% {% \expandafter #1\expandafter #2\csname .=% \expandafter\expandafter\expandafter\xintiiMod \expandafter\XINT_expr_twoargs - \romannumeral-`0\XINT_expr_unlock #3,\endcsname + \romannumeral`&&@\XINT_expr_unlock #3,\endcsname }% \def\XINT_expr_func_quo #1#2#3% {% \expandafter #1\expandafter #2\csname .=% \expandafter\expandafter\expandafter\xintiQuo \expandafter\XINT_expr_twoargs - \romannumeral-`0\XINT_expr_unlock #3,\endcsname + \romannumeral`&&@\XINT_expr_unlock #3,\endcsname }% \let\XINT_flexpr_func_quo\XINT_expr_func_quo \def\XINT_iiexpr_func_quo #1#2#3% @@ -1924,14 +1932,14 @@ \expandafter #1\expandafter #2\csname .=% \expandafter\expandafter\expandafter\xintiiQuo \expandafter\XINT_expr_twoargs - \romannumeral-`0\XINT_expr_unlock #3,\endcsname + \romannumeral`&&@\XINT_expr_unlock #3,\endcsname }% \def\XINT_expr_func_rem #1#2#3% {% \expandafter #1\expandafter #2\csname .=% \expandafter\expandafter\expandafter\xintiRem \expandafter\XINT_expr_twoargs - \romannumeral-`0\XINT_expr_unlock #3,\endcsname + \romannumeral`&&@\XINT_expr_unlock #3,\endcsname }% \let\XINT_flexpr_func_rem\XINT_expr_func_rem \def\XINT_iiexpr_func_rem #1#2#3% @@ -1939,7 +1947,7 @@ \expandafter #1\expandafter #2\csname .=% \expandafter\expandafter\expandafter\xintiiRem \expandafter\XINT_expr_twoargs - \romannumeral-`0\XINT_expr_unlock #3,\endcsname + \romannumeral`&&@\XINT_expr_unlock #3,\endcsname }% \def\XINT_expr_func_gcd #1#2#3% {\expandafter #1\expandafter #2\csname @@ -2022,26 +2030,26 @@ \def\xintifNotZero: #1,#2,#3,{\xintiiifNotZero{#1}{#2}{#3}}% \def\XINT_expr_func_if #1#2#3% {\expandafter #1\expandafter #2\csname - .=\expandafter\xintifNotZero:\romannumeral-`0\XINT_expr_unlock #3,\endcsname }% + .=\expandafter\xintifNotZero:\romannumeral`&&@\XINT_expr_unlock #3,\endcsname }% \let\XINT_flexpr_func_if\XINT_expr_func_if \let\XINT_iiexpr_func_if\XINT_expr_func_if \def\xintifSgn: #1,#2,#3,#4,{\xintiiifSgn{#1}{#2}{#3}{#4}}% \def\XINT_expr_func_ifsgn #1#2#3% {% \expandafter #1\expandafter #2\csname - .=\expandafter\xintifSgn:\romannumeral-`0\XINT_expr_unlock #3,\endcsname + .=\expandafter\xintifSgn:\romannumeral`&&@\XINT_expr_unlock #3,\endcsname }% \let\XINT_flexpr_func_ifsgn\XINT_expr_func_ifsgn \let\XINT_iiexpr_func_ifsgn\XINT_expr_func_ifsgn \def\XINT_expr_func_first #1#2#3% {\expandafter #1\expandafter #2\csname.=\expandafter\XINT_expr_func_firsta - \romannumeral-`0\XINT_expr_unlock #3,^\endcsname }% + \romannumeral`&&@\XINT_expr_unlock #3,^\endcsname }% \def\XINT_expr_func_firsta #1,#2^{#1}% \let\XINT_flexpr_func_first\XINT_expr_func_first \let\XINT_iiexpr_func_first\XINT_expr_func_first \def\XINT_expr_func_last #1#2#3% will not work in \xintNewExpr if macro param involved {\expandafter #1\expandafter #2\csname.=\expandafter\XINT_expr_func_lasta - \romannumeral-`0\XINT_expr_unlock #3,^\endcsname }% + \romannumeral`&&@\XINT_expr_unlock #3,^\endcsname }% \def\XINT_expr_func_lasta #1,#2% {\if ^#2 #1\expandafter\xint_gobble_ii\fi \XINT_expr_func_lasta #2}% \let\XINT_flexpr_func_last\XINT_expr_func_last @@ -2069,9 +2077,9 @@ {\xintListWithSep,{\xintRevWithBraces {\xintCSVtoListNonStripped{#1}}}}% \def\xintSeqB:f:csv #1#2% {\expandafter\XINT_seqb:f:csv \expandafter{\romannumeral0\xintraw{#2}}{#1}}% -\def\XINT_seqb:f:csv #1#2{\expandafter\XINT_seqb:f:csv_a\romannumeral-`0#2#1!}% +\def\XINT_seqb:f:csv #1#2{\expandafter\XINT_seqb:f:csv_a\romannumeral`&&@#2#1!}% \def\XINT_seqb:f:csv_a #1#2;#3;#4!{% - \expandafter\xint_gobble_i\romannumeral-`0% + \expandafter\xint_gobble_i\romannumeral`&&@% \xintifCmp {#3}{#4}\XINT_seqb:f:csv_bl\XINT_seqb:f:csv_be\XINT_seqb:f:csv_bg #1{#3}{#4}{}{#2}}% \def\XINT_seqb:f:csv_be #1#2#3#4#5{,#2}% @@ -2098,10 +2106,10 @@ \def\XINT_seqb:f:csv_nb #1#2#3#4{#3,#1}% \def\XINT_seqb:f:csv_nc #1#2#3#4{#3}% \def\xintiiSeqb:f:csv #1#2% - {\expandafter\XINT_iiseqb:f:csv \expandafter{\romannumeral-`0#2}{#1}}% -\def\XINT_iiseqb:f:csv #1#2{\expandafter\XINT_iiseqb:f:csv_a\romannumeral-`0#2#1!}% + {\expandafter\XINT_iiseqb:f:csv \expandafter{\romannumeral`&&@#2}{#1}}% +\def\XINT_iiseqb:f:csv #1#2{\expandafter\XINT_iiseqb:f:csv_a\romannumeral`&&@#2#1!}% \def\XINT_iiseqb:f:csv_a #1#2;#3;#4!{% - \expandafter\xint_gobble_i\romannumeral-`0% + \expandafter\xint_gobble_i\romannumeral`&&@% \xintSgnFork{\XINT_Cmp {#3}{#4}}% \XINT_iiseqb:f:csv_bl\XINT_seqb:f:csv_be\XINT_iiseqb:f:csv_bg #1{#3}{#4}{}{#2}}% @@ -2127,9 +2135,9 @@ }% \def\XINTinFloatSeqB:f:csv #1#2{\expandafter\XINT_flseqb:f:csv \expandafter {\romannumeral0\XINTinfloat [\XINTdigits]{#2}}{#1}}% -\def\XINT_flseqb:f:csv #1#2{\expandafter\XINT_flseqb:f:csv_a\romannumeral-`0#2#1!}% +\def\XINT_flseqb:f:csv #1#2{\expandafter\XINT_flseqb:f:csv_a\romannumeral`&&@#2#1!}% \def\XINT_flseqb:f:csv_a #1#2;#3;#4!{% - \expandafter\xint_gobble_i\romannumeral-`0% + \expandafter\xint_gobble_i\romannumeral`&&@% \xintifCmp {#3}{#4}\XINT_flseqb:f:csv_bl\XINT_seqb:f:csv_be\XINT_flseqb:f:csv_bg #1{#3}{#4}{}{#2}}% \def\XINT_flseqb:f:csv_bl #1{\if #1p\expandafter\XINT_flseqb:f:csv_pa\else @@ -2153,24 +2161,24 @@ \XINT_seqb:f:csv_nc\XINT_seqb:f:csv_nb\XINT_flseqb:f:csv_na {#1}{#2}% }% \def\xintApply::csv #1#2% - {\expandafter\XINT_applyon::_a\expandafter {\romannumeral-`0#2}{#1}}% + {\expandafter\XINT_applyon::_a\expandafter {\romannumeral`&&@#2}{#1}}% \def\XINT_applyon::_a #1#2{\XINT_applyon::_b {#2}{}#1,,}% -\def\XINT_applyon::_b #1#2#3,{\expandafter\XINT_applyon::_c \romannumeral-`0#3,{#1}{#2}}% +\def\XINT_applyon::_b #1#2#3,{\expandafter\XINT_applyon::_c \romannumeral`&&@#3,{#1}{#2}}% \def\XINT_applyon::_c #1{\if #1,\expandafter\XINT_applyon::_end \else\expandafter\XINT_applyon::_d\fi #1}% -\def\XINT_applyon::_d #1,#2{\expandafter\XINT_applyon::_e\romannumeral-`0#2{#1},{#2}}% +\def\XINT_applyon::_d #1,#2{\expandafter\XINT_applyon::_e\romannumeral`&&@#2{#1},{#2}}% \def\XINT_applyon::_e #1,#2#3{\XINT_applyon::_b {#2}{#3, #1}}% \def\XINT_applyon::_end #1,#2#3{\xint_secondoftwo #3}% \def\xintApply:::csv #1#2#3% - {\expandafter\XINT_applyon:::_a\expandafter{\romannumeral-`0#2}{#1}{#3}}% + {\expandafter\XINT_applyon:::_a\expandafter{\romannumeral`&&@#2}{#1}{#3}}% \def\XINT_applyon:::_a #1#2#3{\XINT_applyon:::_b {#2}{#3}{}#1,,}% \def\XINT_applyon:::_b #1#2#3#4,% - {\expandafter\XINT_applyon:::_c \romannumeral-`0#4,{#1}{#2}{#3}}% + {\expandafter\XINT_applyon:::_c \romannumeral`&&@#4,{#1}{#2}{#3}}% \def\XINT_applyon:::_c #1{\if #1,\expandafter\XINT_applyon:::_end \else\expandafter\XINT_applyon:::_d\fi #1}% \def\XINT_applyon:::_d #1,#2#3% {\expandafter\XINT_applyon:::_e\expandafter - {\romannumeral-`0\xintApply::csv {#2{#1}}{#3}},{#2}{#3}}% + {\romannumeral`&&@\xintApply::csv {#2{#1}}{#3}},{#2}{#3}}% \def\XINT_applyon:::_e #1,#2#3#4{\XINT_applyon:::_b {#2}{#3}{#4, #1}}% \def\XINT_applyon:::_end #1,#2#3#4{\xint_secondoftwo #4}% \def\XINT_expr_RApply::csv #1#2#3#4% @@ -2180,7 +2188,7 @@ \catcode`~ 12 % by the way, catcode is set to 3 in \XINTsetupcatcodes \catcode`$ 12 % $ \def\XINT_xptwo_getab_b #1#2!#3% - {\expandafter\XINT_xptwo_getab_c\romannumeral-`0#3!#1{#1#2}}% + {\expandafter\XINT_xptwo_getab_c\romannumeral`&&@#3!#1{#1#2}}% \def\XINT_xptwo_getab_c #1#2!#3#4#5#6{#1#3{#5}{#6}{#1#2}{#4}}% \def\xint_ddfork #1$$#2#3\krof {#2}% $$ \def\XINT_NEfork #1#2{\xint_ddfork @@ -2211,8 +2219,8 @@ \expandafter\let\csname xint#1NE\expandafter\endcsname\csname xint#1\expandafter \endcsname\expandafter\def\csname xint#1\endcsname ####1####2{% \expandafter\XINT_NEfork - \romannumeral-`0\expandafter\XINT_xptwo_getab_b - \romannumeral-`0####2!{####1}{~xint#1}{xint#1}}% + \romannumeral`&&@\expandafter\XINT_xptwo_getab_b + \romannumeral`&&@####2!{####1}{~xint#1}{xint#1}}% }% }% cela aurait-il un sens d'ajouter Raw et iNum (à cause de qint, qfrac, % qfloat?). Pas le temps d'y réfléchir. Je ne fais rien. @@ -2223,7 +2231,7 @@ \expandafter{\the\toks0% \expandafter\let\csname xint#1NE\expandafter\endcsname\csname xint#1\expandafter \endcsname\expandafter\def\csname xint#1\endcsname ####1{% - \expandafter\XINT_NEfork_one\romannumeral-`0####1!{~xint#1}{xint#1}{}{}}% + \expandafter\XINT_NEfork_one\romannumeral`&&@####1!{~xint#1}{xint#1}{}{}}% }% }% \toks0 @@ -2231,7 +2239,7 @@ \let\XINTinFloatFacNE\XINTinFloatFac \def\XINTinFloatFac ##1{% \expandafter\XINT_NEfork_one - \romannumeral-`0##1!{~XINTinFloatFac}{XINTinFloatFac}{}{}}% + \romannumeral`&&@##1!{~XINTinFloatFac}{XINTinFloatFac}{}{}}% }% \xintFor #1 in {Add,Sub,Mul,Div,Power,E,Mod,SeqA::csv}\do {\toks0 @@ -2240,8 +2248,8 @@ \csname XINTinFloat#1\expandafter\endcsname \expandafter\def\csname XINTinFloat#1\endcsname ####1####2{% \expandafter\XINT_NEfork - \romannumeral-`0\expandafter\XINT_xptwo_getab_b - \romannumeral-`0####2!{####1}{~XINTinFloat#1}{XINTinFloat#1}}% + \romannumeral`&&@\expandafter\XINT_xptwo_getab_b + \romannumeral`&&@####2!{####1}{~XINTinFloat#1}{XINTinFloat#1}}% }% }% \xintFor #1 in {XINTinFloatdigits,XINTinFloatFracdigits,XINTinFloatSqrtdigits}\do @@ -2249,7 +2257,7 @@ \expandafter{\the\toks0% \expandafter\let\csname #1NE\expandafter\endcsname\csname #1\expandafter \endcsname\expandafter\def\csname #1\endcsname ####1{\expandafter - \XINT_NEfork_one\romannumeral-`0####1!{~#1}{#1}{}{}}% + \XINT_NEfork_one\romannumeral`&&@####1!{~#1}{#1}{}{}}% }% }% \xintFor #1 in {xintSeq::csv,xintiiSeq::csv,XINTinFloatSeq::csv}\do @@ -2258,8 +2266,8 @@ \expandafter\let\csname #1NE\expandafter\endcsname\csname #1\expandafter \endcsname\expandafter\def\csname #1\endcsname ####1####2{% \expandafter\XINT_NEfork - \romannumeral-`0\expandafter\XINT_xptwo_getab_b - \romannumeral-`0####2!{####1}{$noexpand$#1}{#1}}% + \romannumeral`&&@\expandafter\XINT_xptwo_getab_b + \romannumeral`&&@####2!{####1}{$noexpand$#1}{#1}}% }% }% \xintFor #1 in {xintSeqB,xintiiSeqB,XINTinFloatSeqB}\do @@ -2268,8 +2276,8 @@ \expandafter\let\csname #1::csvNE\expandafter\endcsname\csname #1::csv\expandafter \endcsname\expandafter\def\csname #1::csv\endcsname ####1####2{% \expandafter\XINT_NEfork - \romannumeral-`0\expandafter\XINT_xptwo_getab_b - \romannumeral-`0####2!{####1}{$noexpand$#1:f:csv}{#1::csv}}% + \romannumeral`&&@\expandafter\XINT_xptwo_getab_b + \romannumeral`&&@####2!{####1}{$noexpand$#1:f:csv}{#1::csv}}% }% }% \toks0 @@ -2277,11 +2285,11 @@ \let\XINTinFloatNE\XINTinFloat \def\XINTinFloat [##1]##2{% not ultimately general, but got tired \expandafter\XINT_NEfork_one - \romannumeral-`0##2!{~XINTinFloat[##1]}{XINTinFloat}{}{[##1]}}% + \romannumeral`&&@##2!{~XINTinFloat[##1]}{XINTinFloat}{}{[##1]}}% \let\XINTinFloatSqrtNE\XINTinFloatSqrt \def\XINTinFloatSqrt [##1]##2{% \expandafter\XINT_NEfork_one - \romannumeral-`0##2!{~XINTinFloatSqrt[##1]}{XINTinFloatSqrt}{}{[##1]}}% + \romannumeral`&&@##2!{~XINTinFloatSqrt[##1]}{XINTinFloatSqrt}{}{[##1]}}% }% \xintFor #1 in {ANDof,ORof,XORof,iiMaxof,iiMinof,iiSum,iiPrd, GCDof,LCMof,Sum,Prd,Maxof,Minof}\do @@ -2301,11 +2309,11 @@ \def\XINT_expr_unlock_sp ##1.;##2##3.=##4!{\if -##2\expandafter\xint_firstoftwo \else\expandafter\xint_secondoftwo\fi \XINTdigits{{##2##3}}{##4}}% \def\XINT_expr_print ##1{\expandafter\xintSPRaw::csv\expandafter - {\romannumeral-`0\XINT_expr_unlock ##1}}% + {\romannumeral`&&@\XINT_expr_unlock ##1}}% \def\XINT_iiexpr_print ##1{\expandafter\xintCSV::csv\expandafter - {\romannumeral-`0\XINT_expr_unlock ##1}}% + {\romannumeral`&&@\XINT_expr_unlock ##1}}% \def\XINT_boolexpr_print ##1{\expandafter\xintIsTrue::csv\expandafter - {\romannumeral-`0\XINT_expr_unlock ##1}}% + {\romannumeral`&&@\XINT_expr_unlock ##1}}% \def\xintCSV::csv {~xintCSV::csv }% spaces to separate from possible catcode 11 \def\xintSPRaw::csv {~xintSPRaw::csv }% stuff after \def\xintPFloat::csv {~xintPFloat::csv }% @@ -2320,7 +2328,7 @@ \def\xintNewIExpr {\xint_NewExpr\xinttheiexpr }% \def\xintNewIIExpr {\xint_NewExpr\xinttheiiexpr }% \def\xintNewBoolExpr {\xint_NewExpr\xinttheboolexpr }% -\def\XINT_newexpr_finish #1>{\noexpand\romannumeral-`0}% +\def\XINT_newexpr_finish #1>{\noexpand\romannumeral`&&@}% \def\xint_NewExpr #1#2[#3]% {% \begingroup @@ -2350,7 +2358,7 @@ \endlinechar -1 \everyeof {\noexpand }@ \edef\XINT_tmpb {\scantokens\expandafter - {\romannumeral-`0\expandafter%1\XINT_tmpa {#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}{#9}\relax}@ + {\romannumeral`&&@\expandafter%1\XINT_tmpa {#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}{#9}\relax}@ }@ \escapechar 92 \catcode`# 6 \catcode`$ 0 @ $ \the\toks0 diff --git a/Master/texmf-dist/tex/generic/xint/xintfrac.sty b/Master/texmf-dist/tex/generic/xint/xintfrac.sty index 59030c1e9be..0b91335890c 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 v1.2 2015/10/10 +%% The xint bundle v1.2a 2015/10/19 %% Copyright (C) 2013-2015 by Jean-Francois Burnol %% xintfrac: Expandable operations on fractions %% --------------------------------------------------------------- @@ -70,7 +70,7 @@ \XINTsetupcatcodes% defined in xintkernel.sty \XINT_providespackage \ProvidesPackage{xintfrac}% - [2015/10/10 v1.2 Expandable operations on fractions (jfB)]% + [2015/10/19 v1.2a Expandable operations on fractions (jfB)]% \def\XINT_cntSgnFork #1% {% \ifcase #1\expandafter\xint_secondofthree @@ -89,7 +89,7 @@ \the\numexpr -1+\XINT_Abs {#1}+\XINT_Len {#2}+\XINT_Len {#3}\relax }% \def\XINT_lenrord_loop #1#2#3#4#5#6#7#8#9% -{% faire \romannumeral-`0\XINT_lenrord_loop 0{}#1\Z\W\W\W\W\W\W\W\Z +{% faire \romannumeral`&&@\XINT_lenrord_loop 0{}#1\Z\W\W\W\W\W\W\W\Z \xint_gob_til_W #9\XINT_lenrord_W\W \expandafter\XINT_lenrord_loop\expandafter {\the\numexpr #1+7}{#9#8#7#6#5#4#3#2}% @@ -149,7 +149,7 @@ \def\XINT_inFrac {\romannumeral0\XINT_infrac }% \def\XINT_infrac #1% {% - \expandafter\XINT_infrac_fork\romannumeral-`0#1/\XINT_W[\XINT_W\XINT_T + \expandafter\XINT_infrac_fork\romannumeral`&&@#1/\XINT_W[\XINT_W\XINT_T }% \def\XINT_infrac_fork #1[#2% {% @@ -175,7 +175,7 @@ \def\XINT_infrac_res_ca #1[#2]/\XINT_W[\XINT_W\XINT_T {\expandafter{\the\numexpr 0#2}{#1}{1}}% \def\XINT_infrac_res_cb #1/#2[% - {\expandafter\XINT_infrac_res_cc\romannumeral-`0#2~#1[}% + {\expandafter\XINT_infrac_res_cc\romannumeral`&&@#2~#1[}% \def\XINT_infrac_res_cc #1~#2[#3]/\XINT_W[\XINT_W\XINT_T {\expandafter{\the\numexpr 0#3}{#2}{#1}}% \def\XINT_frac_gen #1/#2% @@ -190,7 +190,7 @@ \def\XINT_frac_gen_B #1/#2/\XINT_W[%\XINT_W {% \expandafter\XINT_frac_gen_Ba - \romannumeral-`0#2ee.\XINT_W\XINT_Z #1ee.%\XINT_W + \romannumeral`&&@#2ee.\XINT_W\XINT_Z #1ee.%\XINT_W }% \def\XINT_frac_gen_Ba #1.#2% {% @@ -204,7 +204,7 @@ {\expandafter\XINT_frac_gen_C\the\numexpr 0#2~#1!}% \def\XINT_frac_gen_Bc #1.#2e% {% - \expandafter\XINT_frac_gen_Bd\romannumeral-`0#2.#1e% + \expandafter\XINT_frac_gen_Bd\romannumeral`&&@#2.#1e% }% \def\XINT_frac_gen_Bd #1.#2e#3e#4\XINT_Z {% @@ -230,7 +230,7 @@ }% \def\XINT_frac_gen_Cb #1.#2e% {% - \expandafter\XINT_frac_gen_Cc\romannumeral-`0#2.#1e% + \expandafter\XINT_frac_gen_Cc\romannumeral`&&@#2.#1e% }% \def\XINT_frac_gen_Cc #1.#2~#3!#4e#5e#6\XINT_T {% @@ -1412,7 +1412,7 @@ {% \expandafter\XINT_float_T\expandafter {\the\numexpr #4+\xint_c_i\expandafter}% - \romannumeral-`0\XINT_lenrord_loop 0{}#2\Z\W\W\W\W\W\W\W\Z #1{#3}{#4}% + \romannumeral`&&@\XINT_lenrord_loop 0{}#2\Z\W\W\W\W\W\W\W\Z #1{#3}{#4}% }% \def\XINT_float_T #1#2#3% {% @@ -1556,7 +1556,7 @@ {% \expandafter\XINT_infloat_T\expandafter {\the\numexpr #3+\xint_c_i\expandafter}% - \romannumeral-`0\XINT_lenrord_loop 0{}#1\Z\W\W\W\W\W\W\W\Z + \romannumeral`&&@\XINT_lenrord_loop 0{}#1\Z\W\W\W\W\W\W\W\Z {#2}% }% \def\XINT_infloat_T #1#2#3% @@ -1706,11 +1706,11 @@ \def\xintSum {\romannumeral0\xintsum }% \def\xintsum #1{\xintsumexpr #1\relax }% \def\xintSumExpr {\romannumeral0\xintsumexpr }% -\def\xintsumexpr {\expandafter\XINT_fsumexpr\romannumeral-`0}% +\def\xintsumexpr {\expandafter\XINT_fsumexpr\romannumeral`&&@}% \def\XINT_fsumexpr {\XINT_fsum_loop_a {0/1[0]}}% \def\XINT_fsum_loop_a #1#2% {% - \expandafter\XINT_fsum_loop_b \romannumeral-`0#2\Z {#1}% + \expandafter\XINT_fsum_loop_b \romannumeral`&&@#2\Z {#1}% }% \def\XINT_fsum_loop_b #1% {% @@ -1799,11 +1799,11 @@ \def\xintPrd {\romannumeral0\xintprd }% \def\xintprd #1{\xintprdexpr #1\relax }% \def\xintPrdExpr {\romannumeral0\xintprdexpr }% -\def\xintprdexpr {\expandafter\XINT_fprdexpr \romannumeral-`0}% +\def\xintprdexpr {\expandafter\XINT_fprdexpr \romannumeral`&&@}% \def\XINT_fprdexpr {\XINT_fprod_loop_a {1/1[0]}}% \def\XINT_fprod_loop_a #1#2% {% - \expandafter\XINT_fprod_loop_b \romannumeral-`0#2\Z {#1}% + \expandafter\XINT_fprod_loop_b \romannumeral`&&@#2\Z {#1}% }% \def\XINT_fprod_loop_b #1% {% @@ -1919,7 +1919,7 @@ }% \def\XINT_fgeq_D #1#2#3% {% - \expandafter\XINT_cntSgnFork\romannumeral-`0\expandafter\XINT_cntSgn + \expandafter\XINT_cntSgnFork\romannumeral`&&@\expandafter\XINT_cntSgn \the\numexpr #2+\xintLength{#3}-\xintLength{#1}\relax\Z { 0}{\XINT_fgeq_E #2\Z {#3}{#1}}{ 1}% }% @@ -1976,10 +1976,10 @@ \fi }% \def\xintMaxof {\romannumeral0\xintmaxof }% -\def\xintmaxof #1{\expandafter\XINT_maxof_a\romannumeral-`0#1\relax }% +\def\xintmaxof #1{\expandafter\XINT_maxof_a\romannumeral`&&@#1\relax }% \def\XINT_maxof_a #1{\expandafter\XINT_maxof_b\romannumeral0\xintraw{#1}\Z }% \def\XINT_maxof_b #1\Z #2% - {\expandafter\XINT_maxof_c\romannumeral-`0#2\Z {#1}\Z}% + {\expandafter\XINT_maxof_c\romannumeral`&&@#2\Z {#1}\Z}% \def\XINT_maxof_c #1% {\xint_gob_til_relax #1\XINT_maxof_e\relax\XINT_maxof_d #1}% \def\XINT_maxof_d #1\Z @@ -2020,10 +2020,10 @@ \fi }% \def\xintMinof {\romannumeral0\xintminof }% -\def\xintminof #1{\expandafter\XINT_minof_a\romannumeral-`0#1\relax }% +\def\xintminof #1{\expandafter\XINT_minof_a\romannumeral`&&@#1\relax }% \def\XINT_minof_a #1{\expandafter\XINT_minof_b\romannumeral0\xintraw{#1}\Z }% \def\XINT_minof_b #1\Z #2% - {\expandafter\XINT_minof_c\romannumeral-`0#2\Z {#1}\Z}% + {\expandafter\XINT_minof_c\romannumeral`&&@#2\Z {#1}\Z}% \def\XINT_minof_c #1% {\xint_gob_til_relax #1\XINT_minof_e\relax\XINT_minof_d #1}% \def\XINT_minof_d #1\Z @@ -2081,7 +2081,7 @@ }% \def\XINT_fcmp_D #1#2#3% {% - \expandafter\XINT_cntSgnFork\romannumeral-`0\expandafter\XINT_cntSgn + \expandafter\XINT_cntSgnFork\romannumeral`&&@\expandafter\XINT_cntSgn \the\numexpr #2+\xintLength{#3}-\xintLength{#1}\relax\Z { -1}{\XINT_fcmp_E #2\Z {#3}{#1}}{ 1}% }% diff --git a/Master/texmf-dist/tex/generic/xint/xintgcd.sty b/Master/texmf-dist/tex/generic/xint/xintgcd.sty index 187a37133df..ef6cc899122 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 v1.2 2015/10/10 +%% The xint bundle v1.2a 2015/10/19 %% Copyright (C) 2013-2015 by Jean-Francois Burnol %% xintgcd: Euclidean algorithm with xint package %% --------------------------------------------------------------- @@ -70,7 +70,7 @@ \XINTsetupcatcodes% defined in xintkernel.sty \XINT_providespackage \ProvidesPackage{xintgcd}% - [2015/10/10 v1.2 Euclide algorithm with xint package (jfB)]% + [2015/10/19 v1.2a Euclide algorithm with xint package (jfB)]% \def\xintGCD {\romannumeral0\xintgcd }% \def\xintgcd #1% {% @@ -395,16 +395,16 @@ \space {#1}{#3}{0}{1}{#2}{#4}{1}{0}% }% \def\xintGCDof {\romannumeral0\xintgcdof }% -\def\xintgcdof #1{\expandafter\XINT_gcdof_a\romannumeral-`0#1\relax }% -\def\XINT_gcdof_a #1{\expandafter\XINT_gcdof_b\romannumeral-`0#1\Z }% -\def\XINT_gcdof_b #1\Z #2{\expandafter\XINT_gcdof_c\romannumeral-`0#2\Z {#1}\Z}% +\def\xintgcdof #1{\expandafter\XINT_gcdof_a\romannumeral`&&@#1\relax }% +\def\XINT_gcdof_a #1{\expandafter\XINT_gcdof_b\romannumeral`&&@#1\Z }% +\def\XINT_gcdof_b #1\Z #2{\expandafter\XINT_gcdof_c\romannumeral`&&@#2\Z {#1}\Z}% \def\XINT_gcdof_c #1{\xint_gob_til_relax #1\XINT_gcdof_e\relax\XINT_gcdof_d #1}% \def\XINT_gcdof_d #1\Z {\expandafter\XINT_gcdof_b\romannumeral0\xintgcd {#1}}% \def\XINT_gcdof_e #1\Z #2\Z { #2}% \def\xintLCMof {\romannumeral0\xintlcmof }% -\def\xintlcmof #1{\expandafter\XINT_lcmof_a\romannumeral-`0#1\relax }% -\def\XINT_lcmof_a #1{\expandafter\XINT_lcmof_b\romannumeral-`0#1\Z }% -\def\XINT_lcmof_b #1\Z #2{\expandafter\XINT_lcmof_c\romannumeral-`0#2\Z {#1}\Z}% +\def\xintlcmof #1{\expandafter\XINT_lcmof_a\romannumeral`&&@#1\relax }% +\def\XINT_lcmof_a #1{\expandafter\XINT_lcmof_b\romannumeral`&&@#1\Z }% +\def\XINT_lcmof_b #1\Z #2{\expandafter\XINT_lcmof_c\romannumeral`&&@#2\Z {#1}\Z}% \def\XINT_lcmof_c #1{\xint_gob_til_relax #1\XINT_lcmof_e\relax\XINT_lcmof_d #1}% \def\XINT_lcmof_d #1\Z {\expandafter\XINT_lcmof_b\romannumeral0\xintlcm {#1}}% \def\XINT_lcmof_e #1\Z #2\Z { #2}% diff --git a/Master/texmf-dist/tex/generic/xint/xintkernel.sty b/Master/texmf-dist/tex/generic/xint/xintkernel.sty index 2b16addfa2b..7afd90f7dad 100644 --- a/Master/texmf-dist/tex/generic/xint/xintkernel.sty +++ b/Master/texmf-dist/tex/generic/xint/xintkernel.sty @@ -21,7 +21,7 @@ %% same distribution. (The sources need not necessarily be %% in the same archive or directory.) %% --------------------------------------------------------------- -%% The xint bundle v1.2 2015/10/10 +%% The xint bundle v1.2a 2015/10/19 %% Copyright (C) 2013-2015 by Jean-Francois Burnol %% xintkernel: Paraphernalia for the xint packages %% --------------------------------------------------------------- @@ -61,6 +61,7 @@ \endgroup \def\XINT_restorecatcodes {% takes care of all, to allow more economical code in modules + \catcode0=\the\catcode0 % \catcode59=\the\catcode59 % ; xintexpr \catcode126=\the\catcode126 % ~ xintexpr \catcode39=\the\catcode39 % ' xintexpr @@ -122,18 +123,19 @@ \catcode47=12 % / \catcode96=12 % ` \catcode94=11 % ^ LETTER - \catcode36=3 % $ - \catcode91=12 % [ - \catcode93=12 % ] - \catcode33=12 % ! - \catcode64=11 % @ LETTER - \catcode38=12 % & - \catcode124=12 % | - \catcode63=11 % ? LETTER - \catcode34=12 % " - \catcode39=12 % ' - \catcode126=3 % ~ MATH - \catcode59=12 % ; + \catcode36=3 % $ + \catcode91=12 % [ + \catcode93=12 % ] + \catcode33=12 % ! + \catcode64=11 % @ LETTER + \catcode38=7 % & for \romannumeral`&&@ trick. + \catcode124=12 % | + \catcode63=11 % ? LETTER + \catcode34=12 % " + \catcode39=12 % ' + \catcode126=3 % ~ MATH + \catcode59=12 % ; + \catcode0=12 % for \romannumeral`&&@ trick }% \XINT_setcatcodes }% @@ -154,7 +156,7 @@ \fi \XINT_providespackage \ProvidesPackage {xintkernel}% - [2015/10/10 v1.2 Paraphernalia for the xint packages (jfB)]% + [2015/10/19 v1.2a Paraphernalia for the xint packages (jfB)]% \chardef\xint_c_ 0 \chardef\xint_c_i 1 \chardef\xint_c_ii 2 @@ -248,7 +250,7 @@ \expandafter\expandafter\expandafter#1% \expandafter\expandafter\expandafter }% \def\xintfdef #1#2{\expandafter\def\expandafter#1\expandafter - {\romannumeral-`0#2}}% + {\romannumeral`&&@#2}}% \ifdefined\odef\else\let\odef\xintodef\fi \ifdefined\oodef\else\let\oodef\xintoodef\fi \ifdefined\fdef\else\let\fdef\xintfdef\fi diff --git a/Master/texmf-dist/tex/generic/xint/xintseries.sty b/Master/texmf-dist/tex/generic/xint/xintseries.sty index 40cfb759761..eac6e6a2d82 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 v1.2 2015/10/10 +%% The xint bundle v1.2a 2015/10/19 %% Copyright (C) 2013-2015 by Jean-Francois Burnol %% xintseries: Expandable partial sums with xint package %% --------------------------------------------------------------- @@ -70,7 +70,7 @@ \XINTsetupcatcodes% defined in xintkernel.sty \XINT_providespackage \ProvidesPackage{xintseries}% - [2015/10/10 v1.2 Expandable partial sums with xint package (jfB)]% + [2015/10/19 v1.2a Expandable partial sums with xint package (jfB)]% \def\xintSeries {\romannumeral0\xintseries }% \def\xintseries #1#2% {% @@ -171,7 +171,7 @@ \else \xint_afterfi {\expandafter\XINT_powseriesx_pre\expandafter - {\romannumeral-`0#4}{#1}{#2}{#3}% + {\romannumeral`&&@#4}{#1}{#2}{#3}% }% \fi }% @@ -226,7 +226,7 @@ \else \xint_afterfi {\expandafter\XINT_ratseriesx_pre\expandafter - {\romannumeral-`0#5}{#2}{#1}{#4}{#3}% + {\romannumeral`&&@#5}{#2}{#1}{#4}{#3}% }% \fi }% @@ -297,7 +297,7 @@ \else \xint_afterfi {\expandafter \XINT_fppowseriesx_pre \expandafter - {\romannumeral-`0#4}{#1}{#2}{#3}{#5}% + {\romannumeral`&&@#4}{#1}{#2}{#3}{#5}% }% \fi }% @@ -400,7 +400,7 @@ \else \xint_afterfi {\expandafter \XINT_flpowseriesx_pre \expandafter - {\romannumeral-`0#5}{#1}{#2}{#4}{#3}% + {\romannumeral`&&@#5}{#1}{#2}{#4}{#3}% }% \fi }% diff --git a/Master/texmf-dist/tex/generic/xint/xinttools.sty b/Master/texmf-dist/tex/generic/xint/xinttools.sty index 94b8839bea3..6cc3477b30e 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 v1.2 2015/10/10 +%% The xint bundle v1.2a 2015/10/19 %% Copyright (C) 2013-2015 by Jean-Francois Burnol %% xinttools: Expandable and non-expandable utilities %% --------------------------------------------------------------- @@ -70,7 +70,7 @@ \XINTsetupcatcodes% defined in xintkernel.sty \XINT_providespackage \ProvidesPackage{xinttools}% - [2015/10/10 v1.2 Expandable and non-expandable utilities (jfB)]% + [2015/10/19 v1.2a Expandable and non-expandable utilities (jfB)]% \newtoks\XINT_toks \xint_firstofone{\let\XINT_sptoken= } %<- space here! \def\xintgodef {\global\xintodef }% @@ -81,7 +81,7 @@ \long\def\xintrevwithbraces #1% {% \expandafter\XINT_revwbr_loop\expandafter{\expandafter}% - \romannumeral-`0#1\xint_relax\xint_relax\xint_relax\xint_relax + \romannumeral`&&@#1\xint_relax\xint_relax\xint_relax\xint_relax \xint_relax\xint_relax\xint_relax\xint_relax\xint_bye }% \long\def\xintrevwithbracesnoexpand #1% @@ -168,7 +168,7 @@ \long\def\xintcsvtolistnonstripped #1% {% \expandafter\XINT_csvtol_loop_a\expandafter - {\expandafter}\romannumeral-`0#1% + {\expandafter}\romannumeral`&&@#1% ,\xint_bye,\xint_bye,\xint_bye,\xint_bye ,\xint_bye,\xint_bye,\xint_bye,\xint_bye,\Z }% @@ -213,7 +213,7 @@ \def\xintListWithSep {\romannumeral0\xintlistwithsep }% \def\xintListWithSepNoExpand {\romannumeral0\xintlistwithsepnoexpand }% \long\def\xintlistwithsep #1#2% - {\expandafter\XINT_lws\expandafter {\romannumeral-`0#2}{#1}}% + {\expandafter\XINT_lws\expandafter {\romannumeral`&&@#2}{#1}}% \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% @@ -234,7 +234,7 @@ \def\xintnthelt #1#2% {% \expandafter\XINT_nthelt_a\the\numexpr #1\expandafter.% - \expandafter{\romannumeral-`0#2}% + \expandafter{\romannumeral`&&@#2}% }% \def\xintntheltnoexpand #1% {% @@ -293,7 +293,7 @@ \def\xintkeep #1#2% {% \expandafter\XINT_keep_a\the\numexpr #1\expandafter.% - \expandafter{\romannumeral-`0#2}% + \expandafter{\romannumeral`&&@#2}% }% \def\xintkeepnoexpand #1% {% @@ -370,8 +370,7 @@ \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}% + \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}% @@ -384,12 +383,98 @@ \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\xintKeepUnbraced {\romannumeral0\xintkeepunbraced }% +\def\xintKeepUnbracedNoExpand {\romannumeral0\xintkeepunbracednoexpand }% +\def\xintkeepunbraced #1#2% +{% + \expandafter\XINT_keepunbraced_a\the\numexpr #1\expandafter.% + \expandafter{\romannumeral`&&@#2}% +}% +\def\xintkeepnoexpand #1% +{% + \expandafter\XINT_keepunbraced_a\the\numexpr #1.% +}% +\def\XINT_keepunbraced_a #1#2.% +{% + \xint_UDzerominusfork + #1-{\expandafter\space\xint_gobble_i }% + 0#1{\XINT_keep_bneg_a {#2}}% + 0-{\XINT_keepunbraced_bpos {#1#2}}% + \krof +}% +\long\def\XINT_keepunbraced_bpos #1#2% +{% + \XINT_keepunbraced_loop_a {#1}{}#2% + \xint_relax\xint_relax\xint_relax\xint_relax + \xint_relax\xint_relax\xint_relax\xint_bye +}% +\def\XINT_keepunbraced_loop_a #1% +{% + \ifnum #1>\xint_c_vi + \expandafter\XINT_keepunbraced_loop_b + \else + \XINT_keepunbraced_finish + \fi + {#1}% +}% +\long\def\XINT_keepunbraced_loop_b #1#2#3#4#5#6#7#8#9% +{% + \xint_gob_til_xint_relax #9\XINT_keepunbraced_enda\xint_relax + \expandafter\XINT_keepunbraced_loop_c\expandafter + {\the\numexpr #1-\xint_c_vii}{#3}{#4}{#5}{#6}{#7}{#8}{#9}.{#2}% +}% +\long\def\XINT_keepunbraced_loop_c #1#2#3#4#5#6#7#8.#9% + {\XINT_keepunbraced_loop_a {#1}{#9#2#3#4#5#6#7#8}}% +\long\def\XINT_keepunbraced_enda\xint_relax + \expandafter\XINT_keepunbraced_loop_c\expandafter #1#2.#3#4\xint_bye +{% + \XINT_keepunbraced_endb #4\W\W\W\W\W\W\Z #2{#3}% +}% +\def\XINT_keepunbraced_endb #1#2#3#4#5#6#7\Z +{% + \xint_gob_til_W + #1\XINT_keepunbraced_endc_ + #2\XINT_keepunbraced_endc_i + #3\XINT_keepunbraced_endc_ii + #4\XINT_keepunbraced_endc_iii + #5\XINT_keepunbraced_endc_iv + #6\XINT_keepunbraced_endc_v + \W\XINT_keepunbraced_endc_vi\Z +}% +\long\def\XINT_keepunbraced_endc_ #1\Z #2#3#4#5#6#7#8#9{ #9}% +\long\def\XINT_keepunbraced_endc_i #1\Z #2#3#4#5#6#7#8#9{ #9#2}% +\long\def\XINT_keepunbraced_endc_ii #1\Z #2#3#4#5#6#7#8#9{ #9#2#3}% +\long\def\XINT_keepunbraced_endc_iii #1\Z #2#3#4#5#6#7#8#9{ #9#2#3#4}% +\long\def\XINT_keepunbraced_endc_iv #1\Z #2#3#4#5#6#7#8#9{ #9#2#3#4#5}% +\long\def\XINT_keepunbraced_endc_v #1\Z #2#3#4#5#6#7#8#9{ #9#2#3#4#5#6}% +\long\def\XINT_keepunbraced_endc_vi\Z #1#2#3#4#5#6#7#8{ #8#1#2#3#4#5#6}% +\long\def\XINT_keepunbraced_finish\fi #1#2#3#4#5#6#7#8#9\xint_bye +{% + \fi\XINT_keepunbraced_finish_loop_a {#1}{}{#3}{#4}{#5}{#6}{#7}{#8}\Z {#2}% +}% +\def\XINT_keepunbraced_finish_loop_a #1% +{% + \xint_gob_til_zero #1\XINT_keepunbraced_finish_z0% + \expandafter\XINT_keepunbraced_finish_loop_b\expandafter + {\the\numexpr #1-\xint_c_i}% +}% +\long\def\XINT_keepunbraced_finish_z0% + \expandafter\XINT_keepunbraced_finish_loop_b\expandafter #1#2#3\Z #4{ #4#2}% +\long\def\XINT_keepunbraced_finish_loop_b #1#2#3% +{% + \xint_gob_til_xint_relax #3\XINT_keepunbraced_finish_exit\xint_relax + \XINT_keepunbraced_finish_loop_c {#1}{#2}{#3}% +}% +\long\def\XINT_keepunbraced_finish_exit\xint_relax + \XINT_keepunbraced_finish_loop_c #1#2#3\Z #4{ #4#2}% +\long\def\XINT_keepunbraced_finish_loop_c #1#2#3% + {\XINT_keepunbraced_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}% + \expandafter{\romannumeral`&&@#2}% }% \def\xinttrimnoexpand #1% {% @@ -442,11 +527,42 @@ \csname xint_gobble_\romannumeral\numexpr#1\endcsname }% \long\def\XINT_trim_finish_a #1\xint_relax #2\xint_bye {#1}% +\def\xintTrimUnbraced {\romannumeral0\xinttrimunbraced }% +\def\xintTrimUnbracedNoExpand {\romannumeral0\xinttrimunbracednoexpand }% +\def\xinttrimunbraced #1#2% +{% + \expandafter\XINT_trimunbraced_a\the\numexpr #1\expandafter.% + \expandafter{\romannumeral`&&@#2}% +}% +\def\xinttrimunbracednoexpand #1% +{% + \expandafter\XINT_trimunbraced_a\the\numexpr #1.% +}% +\def\XINT_trimunbraced_a #1#2.% +{% + \xint_UDzerominusfork + #1-{\xint_firstofone_thenstop }% + 0#1{\XINT_trimunbraced_bneg_a {#2}}% + 0-{\XINT_trim_bpos {#1#2}}% + \krof +}% +\long\def\XINT_trimunbraced_bneg_a #1#2% +{% + \expandafter\XINT_trimunbraced_bneg_b \the\numexpr \xintLength{#2}-#1.{#2}% +}% +\def\XINT_trimunbraced_bneg_b #1#2.% +{% + \xint_UDzerominusfork + #1-{\expandafter\space\xint_gobble_i }% + 0#1{\expandafter\space\xint_gobble_i }% + 0-{\XINT_keepunbraced_bpos {#1#2}}% + \krof +}% \def\xintApply {\romannumeral0\xintapply }% \def\xintApplyNoExpand {\romannumeral0\xintapplynoexpand }% \long\def\xintapply #1#2% {% - \expandafter\XINT_apply\expandafter {\romannumeral-`0#2}% + \expandafter\XINT_apply\expandafter {\romannumeral`&&@#2}% {#1}% }% \long\def\XINT_apply #1#2{\XINT_apply_loop_a {}{#2}#1\xint_bye }% @@ -456,7 +572,7 @@ \xint_bye #3\XINT_apply_end\xint_bye \expandafter \XINT_apply_loop_b - \expandafter {\romannumeral-`0#2{#3}}{#1}{#2}% + \expandafter {\romannumeral`&&@#2{#3}}{#1}{#2}% }% \long\def\XINT_apply_loop_b #1#2{\XINT_apply_loop_a {#2{#1}}}% \long\def\XINT_apply_end\xint_bye\expandafter\XINT_apply_loop_b @@ -465,7 +581,7 @@ \def\xintApplyUnbracedNoExpand {\romannumeral0\xintapplyunbracednoexpand }% \long\def\xintapplyunbraced #1#2% {% - \expandafter\XINT_applyunbr\expandafter {\romannumeral-`0#2}% + \expandafter\XINT_applyunbr\expandafter {\romannumeral`&&@#2}% {#1}% }% \long\def\XINT_applyunbr #1#2{\XINT_applyunbr_loop_a {}{#2}#1\xint_bye }% @@ -475,7 +591,7 @@ {% \xint_bye #3\XINT_applyunbr_end\xint_bye \expandafter\XINT_applyunbr_loop_b - \expandafter {\romannumeral-`0#2{#3}}{#1}{#2}% + \expandafter {\romannumeral`&&@#2{#3}}{#1}{#2}% }% \long\def\XINT_applyunbr_loop_b #1#2{\XINT_applyunbr_loop_a {#2#1}}% \long\def\XINT_applyunbr_end\xint_bye\expandafter\XINT_applyunbr_loop_b @@ -627,7 +743,7 @@ \def\XINT_xflet_zapsp {% \expandafter\futurelet\expandafter\XINT_token - \expandafter\XINT_xflet_sp?\romannumeral-`0% + \expandafter\XINT_xflet_sp?\romannumeral`&&@% }% \def\XINT_xflet_sp? {% @@ -639,7 +755,7 @@ \def\XINT_xflet_zapspB {% \expandafter\futurelet\expandafter\XINT_tokenB - \expandafter\XINT_xflet_spB?\romannumeral-`0% + \expandafter\XINT_xflet_spB?\romannumeral`&&@% }% \def\XINT_xflet_spB? {% @@ -810,8 +926,8 @@ \def\XINT_?expr_Va #1#2% {% \expandafter\XINT_?expr_Vb\expandafter - {\romannumeral-`0\xintrawwithzeros{\xintZapSpacesB{#2}}}% - {\romannumeral-`0\xintrawwithzeros{\xintZapSpacesB{#1}}}% + {\romannumeral`&&@\xintrawwithzeros{\xintZapSpacesB{#2}}}% + {\romannumeral`&&@\xintrawwithzeros{\xintZapSpacesB{#1}}}% }% \catcode`Z 3 \def\XINT_?expr_Vb #1#2{\expandafter\XINT_?expr_Vc #2.#1.}% @@ -858,7 +974,7 @@ {% \expandafter\expandafter\expandafter \XINT_forever_opt_c\expandafter\the\expandafter\XINT_toks - \romannumeral-`0#1{#4}{#5}#3% + \romannumeral`&&@#1{#4}{#5}#3% }% \long\def\XINT_forever_opt_c #1#2#3#4#5#6{\XINT_forever_d #2{#4}{#5}#6{#3}Z}% \long\def\XINT_forever_d #1#2#3#4#5% @@ -869,7 +985,7 @@ \the\XINT_toks \csname XINT_for_right#1\endcsname }% \XINT_x \let\xintifForFirst\xint_secondoftwo - \expandafter\XINT_forever_d\expandafter #1\romannumeral-`0#4{#2}{#3}#4{#5}% + \expandafter\XINT_forever_d\expandafter #1\romannumeral`&&@#4{#2}{#3}#4{#5}% }% \catcode`j 3 \long\def\xintForpair #1#2#3in#4#5#6% @@ -957,7 +1073,7 @@ \long\def\XINT_assign_a #1\to {% \def\XINT_flet_macro{\XINT_assign_b}% - \expandafter\XINT_flet_zapsp\romannumeral-`0#1\xint_relax\to + \expandafter\XINT_flet_zapsp\romannumeral`&&@#1\xint_relax\to }% \long\def\XINT_assign_b {% @@ -1025,7 +1141,7 @@ \expandafter\def\expandafter\xint_arrayname\expandafter {\string #2}% \XINT_restoreescapechar \def\xint_itemcount {0}% - \expandafter\XINT_assignarray_loop \romannumeral-`0#1\xint_relax + \expandafter\XINT_assignarray_loop \romannumeral`&&@#1\xint_relax \csname\xint_arrayname 00\expandafter\endcsname \csname\xint_arrayname 0\expandafter\endcsname \expandafter {\xint_arrayname}#2% -- cgit v1.2.3