summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2020-02-26 22:09:41 +0000
committerKarl Berry <karl@freefriends.org>2020-02-26 22:09:41 +0000
commit99b2adbfc26d5f6af886cad6177e3bee811e59ea (patch)
tree60e38e4b58a686fe0a9338f98629135297e191a7 /Master/texmf-dist/tex
parent72d53c78195f62dc7d8b66f7399ef0c8c2ccdc6f (diff)
xint (26feb20)
git-svn-id: svn://tug.org/texlive/trunk@53930 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex')
-rw-r--r--Master/texmf-dist/tex/generic/xint/xint.sty4
-rw-r--r--Master/texmf-dist/tex/generic/xint/xintbinhex.sty4
-rw-r--r--Master/texmf-dist/tex/generic/xint/xintcfrac.sty4
-rw-r--r--Master/texmf-dist/tex/generic/xint/xintcore.sty4
-rw-r--r--Master/texmf-dist/tex/generic/xint/xintexpr.sty344
-rw-r--r--Master/texmf-dist/tex/generic/xint/xintfrac.sty59
-rw-r--r--Master/texmf-dist/tex/generic/xint/xintgcd.sty4
-rw-r--r--Master/texmf-dist/tex/generic/xint/xintkernel.sty4
-rw-r--r--Master/texmf-dist/tex/generic/xint/xintlog.sty4
-rw-r--r--Master/texmf-dist/tex/generic/xint/xintseries.sty4
-rw-r--r--Master/texmf-dist/tex/generic/xint/xinttools.sty168
-rw-r--r--Master/texmf-dist/tex/generic/xint/xinttrig.sty8
12 files changed, 422 insertions, 189 deletions
diff --git a/Master/texmf-dist/tex/generic/xint/xint.sty b/Master/texmf-dist/tex/generic/xint/xint.sty
index 68d37b63ea7..17115294aac 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 1.4a 2020/02/19
+%% The xint bundle 1.4b 2020/02/25
%% Copyright (C) 2013-2020 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}%
- [2020/02/19 v1.4a Expandable operations on big integers (JFB)]%
+ [2020/02/25 v1.4b 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}%
diff --git a/Master/texmf-dist/tex/generic/xint/xintbinhex.sty b/Master/texmf-dist/tex/generic/xint/xintbinhex.sty
index dd03a0f5378..22aac49ae40 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 1.4a 2020/02/19
+%% The xint bundle 1.4b 2020/02/25
%% Copyright (C) 2013-2020 by Jean-Francois Burnol
%% xintbinhex: Expandable binary and hexadecimal conversions
%% ---------------------------------------------------------------
@@ -70,7 +70,7 @@
\XINTsetupcatcodes% defined in xintkernel.sty
\XINT_providespackage
\ProvidesPackage{xintbinhex}%
- [2020/02/19 v1.4a Expandable binary and hexadecimal conversions (JFB)]%
+ [2020/02/25 v1.4b 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
\def\XINT_tmpa #1{\ifx\relax#1\else
diff --git a/Master/texmf-dist/tex/generic/xint/xintcfrac.sty b/Master/texmf-dist/tex/generic/xint/xintcfrac.sty
index 8d82132fcd0..4be57daef06 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 1.4a 2020/02/19
+%% The xint bundle 1.4b 2020/02/25
%% Copyright (C) 2013-2020 by Jean-Francois Burnol
%% xintcfrac: Expandable continued fractions with xint package
%% ---------------------------------------------------------------
@@ -70,7 +70,7 @@
\XINTsetupcatcodes% defined in xintkernel.sty
\XINT_providespackage
\ProvidesPackage{xintcfrac}%
- [2020/02/19 v1.4a Expandable continued fractions with xint package (JFB)]%
+ [2020/02/25 v1.4b Expandable continued fractions with xint package (JFB)]%
\def\xintCFrac {\romannumeral0\xintcfrac }%
\def\xintcfrac #1%
{%
diff --git a/Master/texmf-dist/tex/generic/xint/xintcore.sty b/Master/texmf-dist/tex/generic/xint/xintcore.sty
index 909eabff017..59aa7106101 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 1.4a 2020/02/19
+%% The xint bundle 1.4b 2020/02/25
%% Copyright (C) 2013-2020 by Jean-Francois Burnol
%% xintcore: Expandable arithmetic on big integers
%% ---------------------------------------------------------------
@@ -70,7 +70,7 @@
\XINTsetupcatcodes% defined in xintkernel.sty
\XINT_providespackage
\ProvidesPackage{xintcore}%
- [2020/02/19 v1.4a Expandable arithmetic on big integers (JFB)]%
+ [2020/02/25 v1.4b Expandable arithmetic on big integers (JFB)]%
\csname XINT_Clamped_istrapped\endcsname
\csname XINT_ConversionSyntax_istrapped\endcsname
\csname XINT_DivisionByZero_istrapped\endcsname
diff --git a/Master/texmf-dist/tex/generic/xint/xintexpr.sty b/Master/texmf-dist/tex/generic/xint/xintexpr.sty
index 2d8a4df7af5..889e3e521b9 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 1.4a 2020/02/19
+%% The xint bundle 1.4b 2020/02/25
%% Copyright (C) 2013-2020 by Jean-Francois Burnol
%% xintexpr: Expandable expression parser
%% ---------------------------------------------------------------
@@ -82,7 +82,7 @@
\XINTsetupcatcodes%
\XINT_providespackage
\ProvidesPackage{xintexpr}%
- [2020/02/19 v1.4a Expandable expression parser (JFB)]%
+ [2020/02/25 v1.4b Expandable expression parser (JFB)]%
\catcode`! 11
\let\XINT_Cmp \xintiiCmp
\def\XINTfstop{\noexpand\XINTfstop}%
@@ -120,6 +120,35 @@
\xint_orthat<]\XINT:expr:toblist_c>#1#2%
>%
\catcode`{ 1 \catcode`} 2 \catcode`< 12 \catcode`> 12
+\def\XINT:expr:flatten#1%
+{%
+ {{\expandafter\XINT:expr:flatten_checkempty\detokenize{#1}^}}%
+}%
+\def\XINT:expr:flatten_checkempty #1%
+{%
+ \if ^#1\expandafter\xint_gobble_i\else\expandafter\XINT:expr:flatten_a\fi
+ #1%
+}%
+\begingroup % should I check lccode s generally if corrupted context at load?
+\catcode`[ 1 \catcode`] 2 \lccode`[`{ \lccode`]`}
+\catcode`< 1 \catcode`> 2 \catcode`{ 12 \catcode`} 12
+\lowercase<\endgroup
+\def\XINT:expr:flatten_a {#1%
+<%
+ \if{#1\xint_dothis<\XINT:expr:flatten_a>\fi
+ \xint_orthat\XINT:expr:flatten_b #1%
+>%
+\def\XINT:expr:flatten_b #1}%
+<%
+ [#1]\XINT:expr:flatten_c }%
+>%
+\def\XINT:expr:flatten_c }#1%
+<%
+ \if ^#1\xint_dothis<\xint_gobble_i>\fi
+ \if{#1\xint_dothis<\XINT:expr:flatten_a>\fi
+ \xint_orthat<\XINT:expr:flatten_c>#1%
+>%
+>% back to normal catcodes
\catcode`& 4
\protected\def\xintexpralignbegin {\halign\bgroup\tabskip2ex\hfil##&&##\hfil\cr}%
\protected\def\xintexpralignend {\crcr\egroup}%
@@ -354,7 +383,6 @@
#1#2#3#4#5#6#7#8#9%
\xintthespaceseparated_b}%
\def\xintthespaceseparated_c !#1!#2^{#1}%
-\def\XINT:NEhook:unpack{\xint_stop_atfirstofone}%
\let\XINT:NEhook:f:one:from:one\expandafter
\let\XINT:NEhook:f:one:from:one:direct\empty
\let\XINT:NEhook:f:one:from:two\expandafter
@@ -1018,15 +1046,17 @@
\fi
}%
}%
+\def\XINT:NEhook:unpack{\xint_stop_atfirstofone}%
\xintFor* #1 in {{expr}{flexpr}{iiexpr}}:
{\expandafter\XINT_tmpa\csname XINT_#1_op_0\expandafter\endcsname
\csname XINT_#1_until_unpack\endcsname {#1}}%
\catcode`& 12
-\xintFor* #1 in {{==}{<=}{>=}{!=}{&&}{||}{**}{//}{/:}{..}{..[}{].}{]..}}%
+\xintFor* #1 in {{==}{<=}{>=}{&&}{||}{**}{//}{/:}{..}{..[}{].}{]..}}%
\do {\expandafter\def\csname XINT_expr_itself_#1\endcsname {#1}}%
\catcode`& 7
+\expandafter\edef\csname XINT_expr_itself_!=\endcsname{\string !=}%
\expandafter\let\csname XINT_expr_precedence_***\endcsname \xint_c_xvi
-\def\XINT_expr_defbin_c #1#2#3#4#5#6#7#8#9%
+\def\XINT_expr_defbin_c #1#2#3#4#5#6#7#8%
{%
\def #1##1% \XINT_expr_op_<op>
{%
@@ -1036,7 +1066,7 @@
\def #2##1##2##3##4% \XINT_expr_exec_<op>
{%
\expandafter##2\expandafter##3\expandafter
- {#9{\romannumeral`&&@#6##1##4}}%
+ {\romannumeral`&&@\XINT:NEhook:f:one:from:two{\romannumeral`&&@#6##1##4}}%
}%
\def #3##1% \XINT_expr_check-_<op>
{%
@@ -1065,60 +1095,44 @@
\csname XINT_#1_op_-#4\expandafter\endcsname
\csname #5\expandafter\endcsname
\csname XINT_expr_precedence_#2\endcsname
- {#1}{\romannumeral`&&@\XINT:NEhook:f:one:from:two}%
+ {#1}%
\expandafter % done 3 times but well
\let\csname XINT_expr_precedence_#2\expandafter\endcsname
\csname xint_c_#3\endcsname
}%
-\catcode`& 12
\XINT_expr_defbin_b {expr} {||} {vi}{xii} {xintOR}%
\XINT_expr_defbin_b {flexpr}{||} {vi}{xii} {xintOR}%
\XINT_expr_defbin_b {iiexpr}{||} {vi}{xii} {xintOR}%
+\catcode`& 12
\XINT_expr_defbin_b {expr} {&&} {viii}{xii} {xintAND}%
\XINT_expr_defbin_b {flexpr}{&&} {viii}{xii} {xintAND}%
\XINT_expr_defbin_b {iiexpr}{&&} {viii}{xii} {xintAND}%
+\catcode`& 7
\XINT_expr_defbin_b {expr} {xor}{vi}{xii} {xintXOR}%
\XINT_expr_defbin_b {flexpr}{xor}{vi}{xii} {xintXOR}%
\XINT_expr_defbin_b {iiexpr}{xor}{vi}{xii} {xintXOR}%
-\XINT_expr_defbin_b {expr} < {x}{xii} {xintLt}%
-\XINT_expr_defbin_b {flexpr} < {x}{xii} {xintLt}%
-\XINT_expr_defbin_b {iiexpr} < {x}{xii} {xintiiLt}%
-\XINT_expr_defbin_b {expr} > {x}{xii} {xintGt}%
-\XINT_expr_defbin_b {flexpr} > {x}{xii} {xintGt}%
-\XINT_expr_defbin_b {iiexpr} > {x}{xii} {xintiiGt}%
-\XINT_expr_defbin_b {expr} {==} {x}{xii} {xintEq}%
-\XINT_expr_defbin_b {flexpr}{==} {x}{xii} {xintEq}%
-\XINT_expr_defbin_b {iiexpr}{==} {x}{xii} {xintiiEq}%
-\XINT_expr_defbin_b {expr} {<=} {x}{xii} {xintLtorEq}%
-\XINT_expr_defbin_b {flexpr}{<=} {x}{xii} {xintLtorEq}%
-\XINT_expr_defbin_b {iiexpr}{<=} {x}{xii} {xintiiLtorEq}%
-\XINT_expr_defbin_b {expr} {>=} {x}{xii} {xintGtorEq}%
-\XINT_expr_defbin_b {flexpr}{>=} {x}{xii} {xintGtorEq}%
-\XINT_expr_defbin_b {iiexpr}{>=} {x}{xii} {xintiiGtorEq}%
-\XINT_expr_defbin_b {expr} {!=} {x}{xii} {xintNotEq}%
-\XINT_expr_defbin_b {flexpr}{!=} {x}{xii} {xintNotEq}%
-\XINT_expr_defbin_b {iiexpr}{!=} {x}{xii} {xintiiNotEq}%
-\XINT_expr_defbin_b {expr} {//} {xiv}{xiv}{xintDivFloor}% CHANGED IN 1.2p!
+\XINT_expr_defbin_b {expr} {//} {xiv}{xiv}{xintDivFloor}%
\XINT_expr_defbin_b {flexpr}{//} {xiv}{xiv}{XINTinFloatDivFloor}% "
\XINT_expr_defbin_b {iiexpr}{//} {xiv}{xiv}{xintiiDivFloor}% "
\XINT_expr_defbin_b {expr} {/:} {xiv}{xiv}{xintMod}% "
\XINT_expr_defbin_b {flexpr}{/:} {xiv}{xiv}{XINTinFloatMod}% "
\XINT_expr_defbin_b {iiexpr}{/:} {xiv}{xiv}{xintiiMod}% "
-\XINT_expr_defbin_b {expr} + {xii}{xii} {xintAdd}%
-\XINT_expr_defbin_b {flexpr} + {xii}{xii} {XINTinFloatAdd}%
-\XINT_expr_defbin_b {iiexpr} + {xii}{xii} {xintiiAdd}%
-\XINT_expr_defbin_b {expr} - {xii}{xii} {xintSub}%
-\XINT_expr_defbin_b {flexpr} - {xii}{xii} {XINTinFloatSub}%
-\XINT_expr_defbin_b {iiexpr} - {xii}{xii} {xintiiSub}%
+\XINT_expr_defbin_b {expr} + {xii}{xii}{xintAdd}%
+\XINT_expr_defbin_b {flexpr} + {xii}{xii}{XINTinFloatAdd}%
+\XINT_expr_defbin_b {iiexpr} + {xii}{xii}{xintiiAdd}%
+\XINT_expr_defbin_b {expr} - {xii}{xii}{xintSub}%
+\XINT_expr_defbin_b {flexpr} - {xii}{xii}{XINTinFloatSub}%
+\XINT_expr_defbin_b {iiexpr} - {xii}{xii}{xintiiSub}%
\XINT_expr_defbin_b {expr} * {xiv}{xiv}{xintMul}%
\XINT_expr_defbin_b {flexpr} * {xiv}{xiv}{XINTinFloatMul}%
\XINT_expr_defbin_b {iiexpr} * {xiv}{xiv}{xintiiMul}%
\XINT_expr_defbin_b {expr} / {xiv}{xiv}{xintDiv}%
\XINT_expr_defbin_b {flexpr} / {xiv}{xiv}{XINTinFloatDiv}%
-\XINT_expr_defbin_b {iiexpr} / {xiv}{xiv}{xintiiDivRound}% CHANGED IN 1.1!
-\XINT_expr_defbin_b {expr} ^ {xviii}{xviii} {xintPow}%
-\XINT_expr_defbin_b {flexpr} ^ {xviii}{xviii} {XINTinFloatPowerH}%
-\XINT_expr_defbin_b {iiexpr} ^ {xviii}{xviii} {xintiiPow}%
+\XINT_expr_defbin_b {iiexpr} / {xiv}{xiv}{xintiiDivRound}%
+\XINT_expr_defbin_b {expr} ^ {xviii}{xviii}{xintPow}%
+\XINT_expr_defbin_b {flexpr} ^ {xviii}{xviii}{XINTinFloatPowerH}%
+\XINT_expr_defbin_b {iiexpr} ^ {xviii}{xviii}{xintiiPow}%
+\catcode`& 12
\xintFor #1 in {and,or,xor,mod} \do
{%
\expandafter\def\csname XINT_expr_itself_#1\endcsname {#1}%
@@ -1138,8 +1152,6 @@
\expandafter\let\csname XINT_#1_op_mod\expandafter\endcsname
\csname XINT_#1_op_/:\endcsname
}%
-\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_|\expandafter\endcsname
@@ -1148,8 +1160,6 @@
\csname XINT_expr_precedence_^\endcsname
\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_|\expandafter\endcsname
@@ -1158,35 +1168,113 @@
\csname XINT_#1_op_^\endcsname
}%
\catcode`& 7
-\def\XINT_expr_defbin_b #1#2#3#4%
+\def\XINT_expr_defbin_c #1#2#3#4#5#6#7%
+{%
+ \def #1##1% \XINT_expr_op_..[
+ {%
+ \expanded{\unexpanded{#2{##1}}\expandafter}%
+ \romannumeral`&&@\expandafter#3\romannumeral`&&@\XINT_expr_getnext
+ }%
+ \def #2##1##2##3##4% \XINT_expr_exec_..[
+ {%
+ ##2##3{{##1##4}}%
+ }%
+ \def #3##1% \XINT_expr_check-_..[
+ {%
+ \xint_UDsignfork
+ ##1{\expandafter#4\romannumeral`&&@#5}%
+ -{#4##1}%
+ \krof
+ }%
+ \def #4##1##2% \XINT_expr_checkp_..[
+ {%
+ \ifnum ##1>#6%
+ \expandafter#4%
+ \romannumeral`&&@\csname XINT_#7_op_##2\expandafter\endcsname
+ \else
+ \expandafter ##1\expandafter ##2%
+ \fi
+ }%
+}%
+\def\XINT_expr_defbin_b #1%
+{%
+ \expandafter\XINT_expr_defbin_c
+ \csname XINT_#1_op_..[\expandafter\endcsname
+ \csname XINT_#1_exec_..[\expandafter\endcsname
+ \csname XINT_#1_check-_..[\expandafter\endcsname
+ \csname XINT_#1_checkp_..[\expandafter\endcsname
+ \csname XINT_#1_op_-xii\expandafter\endcsname
+ \csname XINT_expr_precedence_..[\endcsname
+ {#1}%
+}%
+\XINT_expr_defbin_b {expr}%
+\XINT_expr_defbin_b {flexpr}%
+\XINT_expr_defbin_b {iiexpr}%
+\expandafter\let\csname XINT_expr_precedence_..[\endcsname\xint_c_vi
+\def\XINT_expr_defbin_c #1#2#3#4#5#6#7#8%
+{%
+ \def #1##1% \XINT_expr_op_<op>
+ {%
+ \expanded{\unexpanded{#2{##1}}\expandafter}%
+ \romannumeral`&&@\expandafter#3\romannumeral`&&@\XINT_expr_getnext
+ }%
+ \def #2##1##2##3##4% \XINT_expr_exec_<op>
+ {%
+ \expandafter##2\expandafter##3\expanded
+ {{\XINT:NEhook:x:one:from:two#8##1##4}}%
+ }%
+ \def #3##1% \XINT_expr_check-_<op>
+ {%
+ \xint_UDsignfork
+ ##1{\expandafter#4\romannumeral`&&@#5}%
+ -{#4##1}%
+ \krof
+ }%
+ \def #4##1##2% \XINT_expr_checkp_<op>
+ {%
+ \ifnum ##1>#6%
+ \expandafter#4%
+ \romannumeral`&&@\csname XINT_#7_op_##2\expandafter\endcsname
+ \else
+ \expandafter ##1\expandafter ##2%
+ \fi
+ }%
+}%
+\def\XINT_expr_defbin_b #1#2#3%
{%
\expandafter\XINT_expr_defbin_c
\csname XINT_#1_op_#2\expandafter\endcsname
\csname XINT_#1_exec_#2\expandafter\endcsname
\csname XINT_#1_check-_#2\expandafter\endcsname
\csname XINT_#1_checkp_#2\expandafter\endcsname
- \csname XINT_#1_op_-#4\expandafter\endcsname
- \expandafter{\expandafter}%
+ \csname XINT_#1_op_-xii\expandafter\endcsname
\csname XINT_expr_precedence_#2\endcsname
- {#1}{\expandafter}% REVOIR
- \expandafter
- \let\csname XINT_expr_precedence_#2\expandafter\endcsname
- \csname xint_c_#3\endcsname
+ {#1}#3%
+ \expandafter\let
+ \csname XINT_expr_precedence_#2\expandafter\endcsname\xint_c_vi
+}%
+\XINT_expr_defbin_b {expr} {..}\xintSeq:tl:x
+\XINT_expr_defbin_b {flexpr} {..}\xintSeq:tl:x
+\XINT_expr_defbin_b {iiexpr} {..}\xintiiSeq:tl:x
+\XINT_expr_defbin_b {expr} {]..}\xintSeqB:tl:x
+\XINT_expr_defbin_b {flexpr}{]..}\xintSeqB:tl:x
+\XINT_expr_defbin_b {iiexpr}{]..}\xintiiSeqB:tl:x
+\def\XINT_expr_defbin_d #1#2%
+{%
+ \def #1##1##2##3##4% \XINT_expr_exec_<op>
+ {%
+ \expandafter##2\expandafter##3\expandafter
+ {\romannumeral`&&@\XINT:NEhook:f:one:from:two{\romannumeral`&&@#2##1##4}}%
+ }%
}%
-\XINT_expr_defbin_b {expr} {..[}{vi}{xii}%
-\XINT_expr_defbin_b {flexpr}{..[}{vi}{xii}%
-\XINT_expr_defbin_b {iiexpr}{..[}{vi}{xii}%
\def\XINT_expr_defbin_c #1#2#3#4#5#6#7#8#9%
{%
\def #1##1% \XINT_expr_op_<op>
{%
\expanded{\unexpanded{#2{##1}}\expandafter}%
+ \romannumeral`&&@\expandafter#7%
\romannumeral`&&@\expandafter#3\romannumeral`&&@\XINT_expr_getnext
}%
- \def #2##1##2##3##4% \XINT_expr_exec_<op>
- {%
- \expandafter##2\expandafter##3\expanded{{#9#6##1##4}}%
- }%
\def #3##1% \XINT_expr_check-_<op>
{%
\xint_UDsignfork
@@ -1196,34 +1284,64 @@
}%
\def #4##1##2% \XINT_expr_checkp_<op>
{%
- \ifnum ##1>#7%
+ \ifnum ##1>#6%
\expandafter#4%
- \romannumeral`&&@\csname XINT_#8_op_##2\expandafter\endcsname
+ \romannumeral`&&@\csname XINT_#9_op_##2\expandafter\endcsname
\else
\expandafter ##1\expandafter ##2%
\fi
}%
+ \let #6\xint_c_x
+ \def #7##1% \XINT_expr_checkc_<op>
+ {%
+ \ifnum ##1=\xint_c_x\expandafter#8\fi ##1%
+ }%
+ \edef #8##1##2##3% \XINT_expr_execc_<op>
+ {%
+ \csname XINT_#9_precedence_\string&\string&\endcsname
+ \expandafter\noexpand\csname XINT_#9_itself_\string&\string&\endcsname
+ {##3}%
+ \XINTfstop.{##3}##2%
+ }%
+ \XINT_expr_defbin_d #2% \XINT_expr_exec_<op>
}%
-\def\XINT_expr_defbin_b #1#2#3#4#5#6%
+\def\XINT_expr_defbin_b #1#2%#3%
{%
\expandafter\XINT_expr_defbin_c
\csname XINT_#1_op_#2\expandafter\endcsname
\csname XINT_#1_exec_#2\expandafter\endcsname
\csname XINT_#1_check-_#2\expandafter\endcsname
\csname XINT_#1_checkp_#2\expandafter\endcsname
- \csname XINT_#1_op_-#4\expandafter\endcsname
- \csname #5\expandafter\endcsname
- \csname XINT_expr_precedence_#2\endcsname {#1}#6%
- \expandafter\let
+ \csname XINT_#1_op_-xii\expandafter\endcsname
\csname XINT_expr_precedence_#2\expandafter\endcsname
- \csname xint_c_#3\endcsname
-}%
-\XINT_expr_defbin_b {expr} {..} {vi}{xii}{xintSeq:tl:x}\XINT:NEhook:x:one:from:two
-\XINT_expr_defbin_b {flexpr}{..} {vi}{xii}{xintSeq:tl:x}\XINT:NEhook:x:one:from:two
-\XINT_expr_defbin_b {iiexpr}{..} {vi}{xii}{xintiiSeq:tl:x}\XINT:NEhook:x:one:from:two
-\XINT_expr_defbin_b {expr} {]..}{vi}{xii}{xintSeqB:tl:x}\XINT:NEhook:x:one:from:twoandone
-\XINT_expr_defbin_b {flexpr}{]..}{vi}{xii}{xintSeqB:tl:x}\XINT:NEhook:x:one:from:twoandone
-\XINT_expr_defbin_b {iiexpr}{]..}{vi}{xii}{xintiiSeqB:tl:x}\XINT:NEhook:x:one:from:twoandone
+ \csname XINT_#1_checkc_#2\expandafter\endcsname
+ \csname XINT_#1_execc_#2\endcsname
+ {#1}%#3%
+}%
+\XINT_expr_defbin_b {expr} <\xintLt
+\XINT_expr_defbin_b {flexpr}<\xintLt
+\XINT_expr_defbin_b {iiexpr}<\xintiiLt
+\XINT_expr_defbin_b {expr} >\xintGt
+\XINT_expr_defbin_b {flexpr}>\xintGt
+\XINT_expr_defbin_b {iiexpr}>\xintiiGt
+\XINT_expr_defbin_b {expr} {==}\xintEq
+\XINT_expr_defbin_b {flexpr}{==}\xintEq
+\XINT_expr_defbin_b {iiexpr}{==}\xintiiEq
+\XINT_expr_defbin_b {expr} {<=}\xintLtorEq
+\XINT_expr_defbin_b {flexpr}{<=}\xintLtorEq
+\XINT_expr_defbin_b {iiexpr}{<=}\xintiiLtorEq
+\XINT_expr_defbin_b {expr} {>=}\xintGtorEq
+\XINT_expr_defbin_b {flexpr}{>=}\xintGtorEq
+\XINT_expr_defbin_b {iiexpr}{>=}\xintiiGtorEq
+\XINT_expr_defbin_b {expr} {!=}\xintNotEq
+\XINT_expr_defbin_b {flexpr}{!=}\xintNotEq
+\XINT_expr_defbin_b {iiexpr}{!=}\xintiiNotEq
+\expandafter\let\csname XINT_expr_precedence_=\endcsname\xint_c_x
+\xintFor #1 in {expr, flexpr, iiexpr} \do
+{%
+ \expandafter\let\csname XINT_#1_op_=\expandafter\endcsname
+ \csname XINT_#1_op_==\endcsname
+}%
\def\xintSeq:tl:x #1#2%
{%
\expandafter\XINT_Seq:tl:x
@@ -1332,7 +1450,7 @@
}%
\def\XINT_expr_itself_obracket{obracket}%
\catcode`] 11 \catcode`[ 11
-\def\XINT_tmpa #1#2#3#4#5#6%
+\def\XINT_expr_defbin_c #1#2#3#4#5#6%
{%
\def #1##1%
{%
@@ -1361,8 +1479,9 @@
\fi
}%
}%
-\xintFor #1 in {expr,flexpr,iiexpr} \do {%
- \expandafter\XINT_tmpa
+\def\XINT_expr_defbin_b #1%
+{%
+ \expandafter\XINT_expr_defbin_c
\csname XINT_#1_op_obracket\expandafter\endcsname
\csname XINT_#1_op_]\expandafter\endcsname
\csname XINT_#1_until_cbracket_a\expandafter\endcsname
@@ -1370,11 +1489,14 @@
\csname XINT_#1_op_-xii\endcsname
{#1}%
}%
+\XINT_expr_defbin_b {expr}%
+\XINT_expr_defbin_b {flexpr}%
+\XINT_expr_defbin_b {iiexpr}%
\def\XINT_expr_missing_]
{\XINT_expandableerror{Ooops, looks like we are missing a ] here. Goodbye!}%
\xint_c_ \XINT_expr_done}%
\let\XINT_expr_precedence_]\xint_c_ii
-\def\XINT_tmpa #1#2#3#4#5#6%
+\def\XINT_expr_defbin_c #1#2#3#4#5#6%
{%
\def #1##1% \XINT_expr_op_[
{%
@@ -1409,8 +1531,9 @@
}%
}%
\let\XINT_expr_precedence_[ \xint_c_xx
-\xintFor #1 in {expr,flexpr,iiexpr} \do {%
-\expandafter\XINT_tmpa
+\def\XINT_expr_defbin_b #1%
+{%
+ \expandafter\XINT_expr_defbin_c
\csname XINT_#1_op_[\expandafter\endcsname
\csname XINT_#1_exec_]\expandafter\endcsname
\csname XINT_#1_check-_]\expandafter\endcsname
@@ -1418,8 +1541,11 @@
\csname XINT_#1_op_-xii\endcsname
{#1}%
}%
+\XINT_expr_defbin_b {expr}%
+\XINT_expr_defbin_b {flexpr}%
+\XINT_expr_defbin_b {iiexpr}%
\catcode`] 12 \catcode`[ 12
-\def\XINT_tmpa #1#2#3#4#5#6%
+\def\XINT_expr_defbin_c #1#2#3#4#5#6%
{%
\def #1##1% \XINT_expr_op_:
{%
@@ -1447,14 +1573,18 @@
}%
}%
\let\XINT_expr_precedence_: \xint_c_vi
-\xintFor #1 in {expr,flexpr,iiexpr} \do {%
-\expandafter\XINT_tmpa
+\def\XINT_expr_defbin_b #1%
+{%
+ \expandafter\XINT_expr_defbin_c
\csname XINT_#1_op_:\expandafter\endcsname
\csname XINT_#1_exec_:\expandafter\endcsname
\csname XINT_#1_check-_:\expandafter\endcsname
\csname XINT_#1_checkp_:\expandafter\endcsname
\csname XINT_#1_op_-xii\endcsname {#1}%
}%
+\XINT_expr_defbin_b {expr}%
+\XINT_expr_defbin_b {flexpr}%
+\XINT_expr_defbin_b {iiexpr}%
\def\XINT_ListSel_deeper #1%
{%
\if :#1\xint_dothis\XINT_ListSel_slice_next\fi
@@ -3249,6 +3379,23 @@
{\expandafter#1\expandafter#2\romannumeral0\XINT:NEhook:unpack}%
\let\XINT_flexpr_func_unpack\XINT_expr_func_unpack
\let\XINT_iiexpr_func_unpack\XINT_expr_func_unpack
+\def\XINT_expr_func_flat #1#2%#3%
+{%
+ \expandafter#1\expandafter#2\expanded
+ \XINT:NEhook:x:flatten\XINT:expr:flatten
+}%
+\let\XINT_flexpr_func_flat\XINT_expr_func_flat
+\let\XINT_iiexpr_func_flat\XINT_expr_func_flat
+\let\XINT:NEhook:x:flatten\empty
+\def\XINT_expr_func_zip #1#2%#3%
+{%
+ \expandafter#1\expandafter#2\romannumeral`&&@%
+ \XINT:NEhook:x:zip\XINT:expr:zip
+}%
+\let\XINT_flexpr_func_zip\XINT_expr_func_zip
+\let\XINT_iiexpr_func_zip\XINT_expr_func_zip
+\let\XINT:NEhook:x:zip\empty
+\def\XINT:expr:zip#1{\expandafter{\expanded\XINT_zip_A#1\xint_bye\xint_bye}}%
\def\XINT_tmpa #1#2#3#4#5%
{%
\def #1##1(##2)##3={%
@@ -3920,6 +4067,43 @@
\fi \XINT:expr:toblistwith{##1}{##2}%
}}\expandafter\XINT:NE:x:toblist\string#%
\def\XINT:NE:x:toblist:p\XINT:expr:toblistwith #1#2{{\XINTfstop.{#2}}}%
+\def\XINT:NE:x:flatten#1{%
+\def\XINT:NE:x:flatten\XINT:expr:flatten##1%
+{%
+ \if 0\expandafter\XINT:NE:hastilde\detokenize{##1}~!\relax
+ \expandafter\XINT:NE:hashash \detokenize{##1}#1!\relax 0%
+ \else
+ \expandafter\XINT:NE:x:flatten:p
+ \fi \XINT:expr:flatten{##1}%
+}}\expandafter\XINT:NE:x:flatten\string#%
+\def\XINT:NE:x:flatten:p\XINT:expr:flatten #1%
+{%
+ {{%
+ \detokenize
+ {%
+ \expandafter\XINT:expr:flatten_checkempty
+ \detokenize\expandafter{\expanded{#1}}$XINT_expr_caret%$
+ }%
+ }}%
+}%
+\def\XINT:NE:x:zip#1{%
+\def\XINT:NE:x:zip\XINT:expr:zip##1%
+{%
+ \if 0\expandafter\XINT:NE:hastilde\detokenize{##1}~!\relax
+ \expandafter\XINT:NE:hashash \detokenize{##1}#1!\relax 0%
+ \else
+ \expandafter\XINT:NE:x:zip:p
+ \fi \XINT:expr:zip{##1}%
+}}\expandafter\XINT:NE:x:zip\string#%
+\def\XINT:NE:x:zip:p\XINT:expr:zip #1%
+{%
+ \expandafter{%
+ \detokenize
+ {%
+ \expanded\expandafter\XINT_zip_A\expanded{#1}\xint_bye\xint_bye
+ }%
+ }%
+}%
\def\XINT:NE:x:mapwithin#1{%
\def\XINT:NE:x:mapwithin\XINT:expr:mapwithin ##1##2%
{%
@@ -4040,6 +4224,8 @@
\let\XINT:NEhook:rrseq \XINT:NE:rrseq
\let\XINT:NEhook:iterr \XINT:NE:iterr
\let\XINT:NEhook:x:toblist \XINT:NE:x:toblist
+ \let\XINT:NEhook:x:flatten \XINT:NE:x:flatten
+ \let\XINT:NEhook:x:zip \XINT:NE:x:zip
\let\XINT:NEhook:x:mapwithin \XINT:NE:x:mapwithin
\let\XINT:NEhook:x:ndmapx \XINT:NE:x:ndmapx
\let\XINT:NEhook:userfunc \XINT:NE:userfunc
diff --git a/Master/texmf-dist/tex/generic/xint/xintfrac.sty b/Master/texmf-dist/tex/generic/xint/xintfrac.sty
index d6e79408cc9..a9218952fd0 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 1.4a 2020/02/19
+%% The xint bundle 1.4b 2020/02/25
%% Copyright (C) 2013-2020 by Jean-Francois Burnol
%% xintfrac: Expandable operations on fractions
%% ---------------------------------------------------------------
@@ -70,7 +70,7 @@
\XINTsetupcatcodes% defined in xintkernel.sty
\XINT_providespackage
\ProvidesPackage{xintfrac}%
- [2020/02/19 v1.4a Expandable operations on fractions (JFB)]%
+ [2020/02/25 v1.4b Expandable operations on fractions (JFB)]%
\def\XINT_cntSgnFork #1%
{%
\ifcase #1\expandafter\xint_secondofthree
@@ -458,8 +458,9 @@
\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\xintFracToSci #1%
- {\expandafter\XINT_FracToSci\romannumeral`&&@#1/\W[\R]}%
+\edef\xintFracToSci #1%
+ {\unexpanded{\expandafter\XINT_FracToSci\romannumeral`&&@}#1\string e%
+ \unexpanded{\Z/\W[\R]}}%
\def\XINT_FracToSci #1/#2#3[#4%
{%
\xint_gob_til_W #2\XINT_FracToSci_no\W
@@ -471,18 +472,39 @@
\xint_gob_til_R #3\XINT_FracToSci_nono\R
\XINT_FracToSci_noyes #2[#3%
}%
-\def\XINT_FracToSci_nono\R\XINT_FracToSci_noyes #1/\W[\R]{#1}%
-\def\XINT_FracToSci_noyes #1#2[#3]/\W[\R]%
+\edef\XINT_tmpa{##1\string e##2}%
+\def\XINT_tmpb{\def\XINT_FracToSci_nono\R\XINT_FracToSci_noyes}%
+\expandafter
+\XINT_tmpb\XINT_tmpa
+{%
+ #1\xint_gob_til_Z #2\XINT_FracToSci_nonono\Z
+ \XINT_FracToSci_nonoyes #2%
+}%
+\edef\XINT_tmpa{##1\string e}%
+ \def\XINT_tmpb{\def\XINT_FracToSci_nonoyes}%
+\expandafter
+\XINT_tmpb\XINT_tmpa\Z/\W[\R]{\xintFracToSciE#1}%
+\def\XINT_FracToSci_nonono\Z\XINT_FracToSci_nonoyes\Z/\W[\R]{}%
+\edef\XINT_tmpa{##1##2[##3]\string e}%
+ \def\XINT_tmpb{\def\XINT_FracToSci_noyes}%
+\expandafter
+\XINT_tmpb\XINT_tmpa\Z/\W[\R]%
{%
#1\xint_gob_til_zero#1\expandafter\iffalse\xint_gobble_ii0\iftrue
#2\ifnum #3=\xint_c_\else\xintFracToSciE#3\fi\fi
}%
-\def\XINT_FracToSci_yesno\R\XINT_FracToSci_yesyes #1#2/#3/\W[\R]%
+\edef\XINT_tmpa{##1##2/##3\string e}%
+ \def\XINT_tmpb{\def\XINT_FracToSci_yesno\R\XINT_FracToSci_yesyes}%
+\expandafter
+\XINT_tmpb\XINT_tmpa\Z/\W[\R]%
{%
#1\xint_gob_til_zero#1\expandafter\iffalse\xint_gobble_ii0\iftrue
#2\if\XINT_isOne{#3}1\else/#3\fi\fi
}%
-\def\XINT_FracToSci_yesyes #1#2/#3[#4]/\W[\R]%
+\edef\XINT_tmpa{##1##2/##3[##4]\string e}%
+ \def\XINT_tmpb{\def\XINT_FracToSci_yesyes}%
+\expandafter
+\XINT_tmpb\XINT_tmpa\Z/\W[\R]%
{%
#1\xint_gob_til_zero#1\expandafter\iffalse\xint_gobble_ii0\iftrue
#2\ifnum #4=\xint_c_\else\xintFracToSciE#4\fi
@@ -2299,21 +2321,26 @@
\ifnum #3<-\xint_c_v \xint_dothis\XINT_pfloat_no\fi
\ifnum #3<\xint_c_ \xint_dothis\XINT_pfloat_N\fi
\ifnum #3>\numexpr #4-\xint_c_i\relax \xint_dothis\XINT_pfloat_Ps\fi
- \xint_orthat\XINT_pfloat_P #1#2e#3;%
+ \xint_orthat\XINT_pfloat_P #1{#2}{#3}%
+}%
+\def\XINT_pfloat_no
+{%
+ \expandafter\XINT_pfloat_no_e\expandafter{\xintPFloatE}%
}%
-\def\XINT_pfloat_no #1#2;{ #1.#2}%
-\def\XINT_pfloat_N #1e-#2;%
+\def\XINT_pfloat_no_e #1#2#3#4{ #2.#3#1#4}%
+\def\xintPFloatE{e}%
+\def\XINT_pfloat_N #1#2#3%
{%
- \csname XINT_pfloat_N_\romannumeral#2\endcsname #1%
+ \csname XINT_pfloat_N_\romannumeral-#3\endcsname #1#2%
}%
\def\XINT_pfloat_N_i { 0.}%
\def\XINT_pfloat_N_ii { 0.0}%
\def\XINT_pfloat_N_iii{ 0.00}%
\def\XINT_pfloat_N_iv { 0.000}%
\def\XINT_pfloat_N_v { 0.0000}%
-\def\XINT_pfloat_P #1e#2;%
+\def\XINT_pfloat_P #1#2#3%
{%
- \csname XINT_pfloat_P_\romannumeral#2\endcsname #1%
+ \csname XINT_pfloat_P_\romannumeral#3\endcsname #1#2%
}%
\def\XINT_pfloat_P_ #1{ #1.}%
\def\XINT_pfloat_P_i #1#2{ #1#2.}%
@@ -2321,9 +2348,9 @@
\def\XINT_pfloat_P_iii#1#2#3#4{ #1#2#3#4.}%
\def\XINT_pfloat_P_iv #1#2#3#4#5{ #1#2#3#4#5.}%
\def\XINT_pfloat_P_v #1#2#3#4#5#6{ #1#2#3#4#5#6.}%
-\def\XINT_pfloat_Ps #1e#2;%
+\def\XINT_pfloat_Ps #1#2#3%
{%
- \csname XINT_pfloat_Ps\romannumeral#2\endcsname #100000;%
+ \csname XINT_pfloat_Ps\romannumeral#3\endcsname #1#200000;%
}%
\def\XINT_pfloat_Psi #1#2#3;{ #1#2.}%
\def\XINT_pfloat_Psii #1#2#3#4;{ #1#2#3.}%
diff --git a/Master/texmf-dist/tex/generic/xint/xintgcd.sty b/Master/texmf-dist/tex/generic/xint/xintgcd.sty
index d6afd5f3cbd..e80299dd21a 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 1.4a 2020/02/19
+%% The xint bundle 1.4b 2020/02/25
%% Copyright (C) 2013-2020 by Jean-Francois Burnol
%% xintgcd: Euclidean algorithm with xint package
%% ---------------------------------------------------------------
@@ -77,7 +77,7 @@
\XINTsetupcatcodes% defined in xintkernel.sty
\XINT_providespackage
\ProvidesPackage{xintgcd}%
- [2020/02/19 v1.4a Euclide algorithm with xint package (JFB)]%
+ [2020/02/25 v1.4b Euclide algorithm with xint package (JFB)]%
\def\xintBezout {\romannumeral0\xintbezout }%
\def\xintbezout #1%
{%
diff --git a/Master/texmf-dist/tex/generic/xint/xintkernel.sty b/Master/texmf-dist/tex/generic/xint/xintkernel.sty
index 7ff6d800034..29a8b3a05f2 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 1.4a 2020/02/19
+%% The xint bundle 1.4b 2020/02/25
%% Copyright (C) 2013-2020 by Jean-Francois Burnol
%% xintkernel: Paraphernalia for the xint packages
%% ---------------------------------------------------------------
@@ -157,7 +157,7 @@
\fi
\XINT_providespackage
\ProvidesPackage {xintkernel}%
- [2020/02/19 v1.4a Paraphernalia for the xint packages (JFB)]%
+ [2020/02/25 v1.4b Paraphernalia for the xint packages (JFB)]%
\chardef\xint_c_ 0
\chardef\xint_c_i 1
\chardef\xint_c_ii 2
diff --git a/Master/texmf-dist/tex/generic/xint/xintlog.sty b/Master/texmf-dist/tex/generic/xint/xintlog.sty
index 8b900fff49a..ddf209338a4 100644
--- a/Master/texmf-dist/tex/generic/xint/xintlog.sty
+++ b/Master/texmf-dist/tex/generic/xint/xintlog.sty
@@ -21,7 +21,7 @@
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
%% ---------------------------------------------------------------
-%% The xint bundle 1.4a 2020/02/19
+%% The xint bundle 1.4b 2020/02/25
%% Copyright (C) 2013-2020 by Jean-Francois Burnol
%% xintlog: Logarithms and exponentials for xintexpr
%% ---------------------------------------------------------------
@@ -74,7 +74,7 @@
\xintexprSafeCatcodes\catcode`_ 11
\XINT_providespackage
\ProvidesPackage{xintlog}%
-[2020/02/19 v1.4a Logarithms and exponentials for xintexpr (JFB)]%
+[2020/02/25 v1.4b Logarithms and exponentials for xintexpr (JFB)]%
\ifdefined\RequirePackage
\RequirePackage{poormanlog}%
\else
diff --git a/Master/texmf-dist/tex/generic/xint/xintseries.sty b/Master/texmf-dist/tex/generic/xint/xintseries.sty
index 1c391526cc6..76608a2239b 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 1.4a 2020/02/19
+%% The xint bundle 1.4b 2020/02/25
%% Copyright (C) 2013-2020 by Jean-Francois Burnol
%% xintseries: Expandable partial sums with xint package
%% ---------------------------------------------------------------
@@ -70,7 +70,7 @@
\XINTsetupcatcodes% defined in xintkernel.sty
\XINT_providespackage
\ProvidesPackage{xintseries}%
- [2020/02/19 v1.4a Expandable partial sums with xint package (JFB)]%
+ [2020/02/25 v1.4b Expandable partial sums with xint package (JFB)]%
\def\xintSeries {\romannumeral0\xintseries }%
\def\xintseries #1#2%
{%
diff --git a/Master/texmf-dist/tex/generic/xint/xinttools.sty b/Master/texmf-dist/tex/generic/xint/xinttools.sty
index b0806b12848..0aeffe17888 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 1.4a 2020/02/19
+%% The xint bundle 1.4b 2020/02/25
%% Copyright (C) 2013-2020 by Jean-Francois Burnol
%% xinttools: Expandable and non-expandable utilities
%% ---------------------------------------------------------------
@@ -70,7 +70,7 @@
\XINTsetupcatcodes% defined in xintkernel.sty
\XINT_providespackage
\ProvidesPackage{xinttools}%
- [2020/02/19 v1.4a Expandable and non-expandable utilities (JFB)]%
+ [2020/02/25 v1.4b Expandable and non-expandable utilities (JFB)]%
\newtoks\XINT_toks
\xint_firstofone{\let\XINT_sptoken= } %<- space here!
\def\xintgodef {\global\xintodef }%
@@ -578,28 +578,6 @@
\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
\expandafter #1#2#3{ #2}%
-\long\def\xintApply:x #1#2%
-{%
- \XINT_apply:x_loop {#1}#2%
- {\xint:\XINT_apply:x_loop_enda}{\xint:\XINT_apply:x_loop_endb}%
- {\xint:\XINT_apply:x_loop_endc}{\xint:\XINT_apply:x_loop_endd}%
- {\xint:\XINT_apply:x_loop_ende}{\xint:\XINT_apply:x_loop_endf}%
- {\xint:\XINT_apply:x_loop_endg}{\xint:\XINT_apply:x_loop_endh}\xint_bye
-}%
-\long\def\XINT_apply:x_loop #1#2#3#4#5#6#7#8#9%
-{%
- \xint_gob_til_xint: #9\xint:
- {#1{#2}}{#1{#3}}{#1{#4}}{#1{#5}}{#1{#6}}{#1{#7}}{#1{#8}}{#1{#9}}%
- \XINT_apply:x_loop {#1}%
-}%
-\long\def\XINT_apply:x_loop_endh\xint: #1\xint_bye{}%
-\long\def\XINT_apply:x_loop_endg\xint: #1#2\xint_bye{{#1}}%
-\long\def\XINT_apply:x_loop_endf\xint: #1#2#3\xint_bye{{#1}{#2}}%
-\long\def\XINT_apply:x_loop_ende\xint: #1#2#3#4\xint_bye{{#1}{#2}{#3}}%
-\long\def\XINT_apply:x_loop_endd\xint: #1#2#3#4#5\xint_bye{{#1}{#2}{#3}{#4}}%
-\long\def\XINT_apply:x_loop_endc\xint: #1#2#3#4#5#6\xint_bye{{#1}{#2}{#3}{#4}{#5}}%
-\long\def\XINT_apply:x_loop_endb\xint: #1#2#3#4#5#6#7\xint_bye{{#1}{#2}{#3}{#4}{#5}{#6}}%
-\long\def\XINT_apply:x_loop_enda\xint: #1#2#3#4#5#6#7#8\xint_bye{{#1}{#2}{#3}{#4}{#5}{#6}{#7}}%
\def\xintApplyUnbraced {\romannumeral0\xintapplyunbraced }%
\def\xintApplyUnbracedNoExpand {\romannumeral0\xintapplyunbracednoexpand }%
\long\def\xintapplyunbraced #1#2%
@@ -619,56 +597,98 @@
\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
\expandafter #1#2#3{ #2}%
-\long\def\xintApplyUnbraced:x #1#2%
-{%
- \XINT_applyunbraced:x_loop {#1}#2%
- {\xint:\XINT_applyunbraced:x_loop_enda}{\xint:\XINT_applyunbraced:x_loop_endb}%
- {\xint:\XINT_applyunbraced:x_loop_endc}{\xint:\XINT_applyunbraced:x_loop_endd}%
- {\xint:\XINT_applyunbraced:x_loop_ende}{\xint:\XINT_applyunbraced:x_loop_endf}%
- {\xint:\XINT_applyunbraced:x_loop_endg}{\xint:\XINT_applyunbraced:x_loop_endh}\xint_bye
-}%
-\long\def\XINT_applyunbraced:x_loop #1#2#3#4#5#6#7#8#9%
-{%
- \xint_gob_til_xint: #9\xint:
- #1{#2}%
- \empty#1{#3}%
- \empty#1{#4}%
- \empty#1{#5}%
- \empty#1{#6}%
- \empty#1{#7}%
- \empty#1{#8}%
- \empty#1{#9}%
- \XINT_applyunbraced:x_loop {#1}%
-}%
-\long\def\XINT_applyunbraced:x_loop_endh\xint: #1\xint_bye{}%
-\long\def\XINT_applyunbraced:x_loop_endg\xint: #1\empty#2\xint_bye{#1}%
-\long\def\XINT_applyunbraced:x_loop_endf\xint: #1\empty
- #2\empty#3\xint_bye{#1#2}%
-\long\def\XINT_applyunbraced:x_loop_ende\xint: #1\empty
- #2\empty
- #3\empty#4\xint_bye{#1#2#3}%
-\long\def\XINT_applyunbraced:x_loop_endd\xint: #1\empty
- #2\empty
- #3\empty
- #4\empty#5\xint_bye{#1#2#3#4}%
-\long\def\XINT_applyunbraced:x_loop_endc\xint: #1\empty
- #2\empty
- #3\empty
- #4\empty
- #5\empty#6\xint_bye{#1#2#3#4#5}%
-\long\def\XINT_applyunbraced:x_loop_endb\xint: #1\empty
- #2\empty
- #3\empty
- #4\empty
- #5\empty
- #6\empty#7\xint_bye{#1#2#3#4#5#6}%
-\long\def\XINT_applyunbraced:x_loop_enda\xint: #1\empty
- #2\empty
- #3\empty
- #4\empty
- #5\empty
- #6\empty
- #7\empty#8\xint_bye{#1#2#3#4#5#6#7}%
+\def\xintZip #1{\expanded\XINT_zip_A#1\xint_bye\xint_bye}%
+\def\XINT_zip_A#1%
+{%
+ \xint_bye#1{\expandafter}\xint_bye
+ \expanded{\unexpanded{\XINT_ziptwo_A
+ #1\xint_bye\xint_bye\xint_bye\xint_bye\xint:}\expandafter}%
+ \expanded\XINT_zip_a
+}%
+\def\XINT_zip_a#1%
+{%
+ \xint_bye#1\XINT_zip_terminator\xint_bye
+ \expanded{\unexpanded{\XINT_ziptwo_a
+ #1\xint_bye\xint_bye\xint_bye\xint_bye\xint:}\expandafter}%
+ \expanded\XINT_zip_a
+}%
+\def\XINT_zip_terminator\xint_bye#1\xint_bye{{}\empty\empty\empty\empty\xint:}%
+\def\XINT_ziptwo_a #1#2#3#4#5\xint:#6#7#8#9%
+{%
+ \bgroup
+ \xint_bye #1\XINT_ziptwo_e \xint_bye
+ \xint_bye #6\XINT_ziptwo_e \xint_bye {{#1}#6}%
+ \xint_bye #2\XINT_ziptwo_e \xint_bye
+ \xint_bye #7\XINT_ziptwo_e \xint_bye {{#2}#7}%
+ \xint_bye #3\XINT_ziptwo_e \xint_bye
+ \xint_bye #8\XINT_ziptwo_e \xint_bye {{#3}#8}%
+ \xint_bye #4\XINT_ziptwo_e \xint_bye
+ \xint_bye #9\XINT_ziptwo_e \xint_bye {{#4}#9}%
+ \ifx \empty#6\expandafter\XINT_zipone_a\fi
+ \XINT_ziptwo_b #5\xint:
+}%
+\def\XINT_zipone_a\XINT_ziptwo_b{\XINT_zipone_b}%
+\def\XINT_ziptwo_b #1#2#3#4#5\xint:#6#7#8#9%
+{%
+ \xint_bye #1\XINT_ziptwo_e \xint_bye
+ \xint_bye #6\XINT_ziptwo_e \xint_bye {{#1}#6}%
+ \xint_bye #2\XINT_ziptwo_e \xint_bye
+ \xint_bye #7\XINT_ziptwo_e \xint_bye {{#2}#7}%
+ \xint_bye #3\XINT_ziptwo_e \xint_bye
+ \xint_bye #8\XINT_ziptwo_e \xint_bye {{#3}#8}%
+ \xint_bye #4\XINT_ziptwo_e \xint_bye
+ \xint_bye #9\XINT_ziptwo_e \xint_bye {{#4}#9}%
+ \XINT_ziptwo_b #5\xint:
+}%
+\def\XINT_ziptwo_e #1\XINT_ziptwo_b #2\xint:#3\xint:
+ {\iffalse{\fi}\xint_bye\xint_bye\xint_bye\xint_bye\xint:}%
+\def\XINT_zipone_b #1#2#3#4%
+{%
+ \xint_bye #1\XINT_zipone_e \xint_bye {{#1}}%
+ \xint_bye #2\XINT_zipone_e \xint_bye {{#2}}%
+ \xint_bye #3\XINT_zipone_e \xint_bye {{#3}}%
+ \xint_bye #4\XINT_zipone_e \xint_bye {{#4}}%
+ \XINT_zipone_b
+}%
+\def\XINT_zipone_e #1\XINT_zipone_b #2\xint:
+ {\iffalse{\fi}\xint_bye\xint_bye\xint_bye\xint_bye\empty}%
+\def\XINT_ziptwo_A #1#2#3#4#5\xint:#6#7#8#9%
+{%
+ \bgroup
+ \xint_bye #1\XINT_ziptwo_end \xint_bye
+ \xint_bye #6\XINT_ziptwo_end \xint_bye {{#1}#6}%
+ \xint_bye #2\XINT_ziptwo_end \xint_bye
+ \xint_bye #7\XINT_ziptwo_end \xint_bye {{#2}#7}%
+ \xint_bye #3\XINT_ziptwo_end \xint_bye
+ \xint_bye #8\XINT_ziptwo_end \xint_bye {{#3}#8}%
+ \xint_bye #4\XINT_ziptwo_end \xint_bye
+ \xint_bye #9\XINT_ziptwo_end \xint_bye {{#4}#9}%
+ \ifx \empty#6\expandafter\XINT_zipone_A\fi
+ \XINT_ziptwo_B #5\xint:
+}%
+\def\XINT_zipone_A\XINT_ziptwo_B{\XINT_zipone_B}%
+\def\XINT_ziptwo_B #1#2#3#4#5\xint:#6#7#8#9%
+{%
+ \xint_bye #1\XINT_ziptwo_end \xint_bye
+ \xint_bye #6\XINT_ziptwo_end \xint_bye {{#1}#6}%
+ \xint_bye #2\XINT_ziptwo_end \xint_bye
+ \xint_bye #7\XINT_ziptwo_end \xint_bye {{#2}#7}%
+ \xint_bye #3\XINT_ziptwo_end \xint_bye
+ \xint_bye #8\XINT_ziptwo_end \xint_bye {{#3}#8}%
+ \xint_bye #4\XINT_ziptwo_end \xint_bye
+ \xint_bye #9\XINT_ziptwo_end \xint_bye {{#4}#9}%
+ \XINT_ziptwo_B #5\xint:
+}%
+\def\XINT_ziptwo_end #1\XINT_ziptwo_B #2\xint:#3\xint:{\iffalse{\fi}}%
+\def\XINT_zipone_B #1#2#3#4%
+{%
+ \xint_bye #1\XINT_zipone_end \xint_bye {{#1}}%
+ \xint_bye #2\XINT_zipone_end \xint_bye {{#2}}%
+ \xint_bye #3\XINT_zipone_end \xint_bye {{#3}}%
+ \xint_bye #4\XINT_zipone_end \xint_bye {{#4}}%
+ \XINT_zipone_B
+}%
+\def\XINT_zipone_end #1\XINT_zipone_B #2\xint:#3\xint:{\iffalse{\fi}}%
\def\xintSeq {\romannumeral0\xintseq }%
\def\xintseq #1{\XINT_seq_chkopt #1\xint_bye }%
\def\XINT_seq_chkopt #1%
diff --git a/Master/texmf-dist/tex/generic/xint/xinttrig.sty b/Master/texmf-dist/tex/generic/xint/xinttrig.sty
index 4fe1f6170c3..8eacf2dce04 100644
--- a/Master/texmf-dist/tex/generic/xint/xinttrig.sty
+++ b/Master/texmf-dist/tex/generic/xint/xinttrig.sty
@@ -21,7 +21,7 @@
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
%% ---------------------------------------------------------------
-%% The xint bundle 1.4a 2020/02/19
+%% The xint bundle 1.4b 2020/02/25
%% Copyright (C) 2013-2020 by Jean-Francois Burnol
%% xinttrig: Trigonometry for the xintexpr package
%% ---------------------------------------------------------------
@@ -68,10 +68,10 @@
\expandafter\xint_secondoftwo
\fi
{\immediate\write-1{Reloading xinttrig library using Digits=\xinttheDigits.}}%
-{\expandafter\gdef\csname xintlibver@trig\endcsname{2020/02/19 v1.4a}%
+{\expandafter\gdef\csname xintlibver@trig\endcsname{2020/02/25 v1.4b}%
\XINT_providespackage
\ProvidesPackage{xinttrig}%
-[2020/02/19 v1.4a Trigonometrical functions for xintexpr (JFB)]%
+[2020/02/25 v1.4b Trigonometrical functions for xintexpr (JFB)]%
}%
\xintFor* #1 in {iDTVtuwxyzX}\do{\xintensuredummy{#1}}%
\def\xintreloadxinttrig
@@ -93,7 +93,7 @@
57.2957795130823208767981548141051703324054724665643215491602;% 180/Pi
\xintdeffloatvar invfact\xintListWithSep{, invfact}{\xintSeq{2}{44}}%
:= \xintfloatexpr [\XINTdigits] % force float rounding after exact evaluations
- \xintexpr rseq(1/2{;}@/i, i=3..44)\relax % need to hide inner ; from \xintdeffloatvar
+ \xintexpr rseq(1/2; @/i, i=3..44)\relax % no need to hide this inner ;
\relax;%
\xintdeffloatfunc sin_aux(X) := 1 - X(invfact3 - X(invfact5
\ifnum\XINTdigits>4