summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/xint
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2019-09-11 21:20:23 +0000
committerKarl Berry <karl@freefriends.org>2019-09-11 21:20:23 +0000
commita4638c5ac366e7d8e329f5276543492ee5c22f41 (patch)
tree389c084a88deb4ee8c094654268ac45d331d680e /Master/texmf-dist/tex/generic/xint
parentae7f7ce522ff387f85698d8f28692b008de1e520 (diff)
xint (11sep19)
git-svn-id: svn://tug.org/texlive/trunk@52081 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/generic/xint')
-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.sty21
-rw-r--r--Master/texmf-dist/tex/generic/xint/xintexpr.sty134
-rw-r--r--Master/texmf-dist/tex/generic/xint/xintfrac.sty56
-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.sty74
-rw-r--r--Master/texmf-dist/tex/generic/xint/xintseries.sty4
-rw-r--r--Master/texmf-dist/tex/generic/xint/xinttools.sty4
-rw-r--r--Master/texmf-dist/tex/generic/xint/xinttrig.sty6
12 files changed, 209 insertions, 110 deletions
diff --git a/Master/texmf-dist/tex/generic/xint/xint.sty b/Master/texmf-dist/tex/generic/xint/xint.sty
index 4137ad675a7..33a477c63d2 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.3e 2019/04/05
+%% The xint bundle 1.3f 2019/09/10
%% Copyright (C) 2013-2019 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}%
- [2019/04/05 1.3e Expandable operations on big integers (JFB)]%
+ [2019/09/10 v1.3f 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 07e52be6dfc..43044815376 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.3e 2019/04/05
+%% The xint bundle 1.3f 2019/09/10
%% Copyright (C) 2013-2019 by Jean-Francois Burnol
%% xintbinhex: Expandable binary and hexadecimal conversions
%% ---------------------------------------------------------------
@@ -70,7 +70,7 @@
\XINTsetupcatcodes% defined in xintkernel.sty
\XINT_providespackage
\ProvidesPackage{xintbinhex}%
- [2019/04/05 1.3e Expandable binary and hexadecimal conversions (JFB)]%
+ [2019/09/10 v1.3f 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 c62037bbc24..e8c7fb8512c 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.3e 2019/04/05
+%% The xint bundle 1.3f 2019/09/10
%% Copyright (C) 2013-2019 by Jean-Francois Burnol
%% xintcfrac: Expandable continued fractions with xint package
%% ---------------------------------------------------------------
@@ -70,7 +70,7 @@
\XINTsetupcatcodes% defined in xintkernel.sty
\XINT_providespackage
\ProvidesPackage{xintcfrac}%
- [2019/04/05 1.3e Expandable continued fractions with xint package (JFB)]%
+ [2019/09/10 v1.3f 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 b0f8ff5d0f2..23755a7cf1d 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.3e 2019/04/05
+%% The xint bundle 1.3f 2019/09/10
%% Copyright (C) 2013-2019 by Jean-Francois Burnol
%% xintcore: Expandable arithmetic on big integers
%% ---------------------------------------------------------------
@@ -70,7 +70,7 @@
\XINTsetupcatcodes% defined in xintkernel.sty
\XINT_providespackage
\ProvidesPackage{xintcore}%
- [2019/04/05 1.3e Expandable arithmetic on big integers (JFB)]%
+ [2019/09/10 v1.3f Expandable arithmetic on big integers (JFB)]%
\csname XINT_Clamped_istrapped\endcsname
\csname XINT_ConversionSyntax_istrapped\endcsname
\csname XINT_DivisionByZero_istrapped\endcsname
@@ -559,11 +559,6 @@
{%
\expandafter\XINT_add_nfork\expandafter#1\romannumeral`&&@#3\xint:#2\xint:
}%
-\def\XINT_iadd #1#2\xint:#3%
-{%
- \expandafter\XINT_add_nfork\expandafter
- #1\romannumeral0\xintnum{#3}\xint:#2\xint:
-}%
\def\XINT_add_fork #1#2\xint:#3\xint:{\XINT_add_nfork #1#3\xint:#2\xint:}%
\def\XINT_add_nfork #1#2%
{%
@@ -712,10 +707,6 @@
{%
\expandafter\XINT_cmp_nfork\expandafter #1\romannumeral`&&@#3\xint:#2\xint:
}%
-\def\XINT_icmp #1#2\xint:#3%
-{%
- \expandafter\XINT_cmp_nfork\expandafter #1\romannumeral0\xintnum{#3}\xint:#2\xint:
-}%
\def\XINT_cmp_nfork #1#2%
{%
\xint_UDzerofork
@@ -815,11 +806,6 @@
\expandafter\XINT_sub_nfork\expandafter
#1\romannumeral`&&@#3\xint:#2\xint:
}%
-\def\XINT_isub #1#2\xint:#3%
-{%
- \expandafter\XINT_sub_nfork\expandafter
- #1\romannumeral0\xintnum{#3}\xint:#2\xint:
-}%
\def\XINT_sub_nfork #1#2%
{%
\xint_UDzerofork
@@ -1779,9 +1765,6 @@
{\expandafter\xint_stop_atsecondoftwo\romannumeral0\xintiidivision }%
\def\xintiiDivRound {\romannumeral0\xintiidivround }%
\def\xintiidivround #1{\expandafter\XINT_iidivround\romannumeral`&&@#1\xint:}%
-\def\XINT_idivround #1#2\xint:#3%
- {\expandafter\XINT_iidivround_a\expandafter #1%
- \romannumeral0\xintnum{#3}\xint:#2\xint:}%
\def\XINT_iidivround #1#2\xint:#3%
{\expandafter\XINT_iidivround_a\expandafter #1\romannumeral`&&@#3\xint:#2\xint:}%
\def\XINT_iidivround_a #1#2% #1 de A, #2 de B.
diff --git a/Master/texmf-dist/tex/generic/xint/xintexpr.sty b/Master/texmf-dist/tex/generic/xint/xintexpr.sty
index 8ed1191fb8a..382a121466a 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.3e 2019/04/05
+%% The xint bundle 1.3f 2019/09/10
%% Copyright (C) 2013-2019 by Jean-Francois Burnol
%% xintexpr: Expandable expression parser
%% ---------------------------------------------------------------
@@ -81,9 +81,16 @@
\XINTsetupcatcodes%
\XINT_providespackage
\ProvidesPackage{xintexpr}%
- [2019/04/05 1.3e Expandable expression parser (JFB)]%
+ [2019/09/10 v1.3f Expandable expression parser (JFB)]%
\catcode`! 11
\let\XINT_Cmp \xintiiCmp
+\def\xintDigits {\futurelet\XINT_token\xintDigitss}%
+\def\xintDigitss #1={\afterassignment\xintDigitsss\mathchardef\XINTdigits=}%
+\def\xintDigitsss#1{\ifx*\XINT_token\expandafter\xintreloadxinttrig\fi}%
+\let\xintfracSetDigits\xintSetDigits
+\def\xintSetDigits#1#{\if\relax\detokenize{#1}\relax
+ \else\afterassignment\xintreloadxinttrig\fi
+ \xintfracSetDigits}%
\def\xintexpr {\romannumeral0\xintexpro }%
\def\xintiexpr {\romannumeral0\xintiexpro }%
\def\xintfloatexpr {\romannumeral0\xintfloatexpro }%
@@ -97,16 +104,16 @@
}%
\def\XINT_iexpr_noopt
{%
- \expandafter\XINT_iexpr_preprint\expandafter 0%
+ \expandafter\XINT_iexpr_round\expandafter 0%
\romannumeral0\xintbareeval
}%
\def\XINT_iexpr_withopt [#1]%
{%
- \expandafter\XINT_iexpr_preprint\expandafter
+ \expandafter\XINT_iexpr_round\expandafter
{\the\numexpr \xint_zapspaces #1 \xint_gobble_i\expandafter}%
\romannumeral0\xintbareeval
}%
-\def\XINT_iexpr_preprint #1#2%
+\def\XINT_iexpr_round #1#2%
{%
\expandafter\XINT_expr_wrap
\csname .=\xintRound::csv {#1}{\XINT_expr_unlock #2}\endcsname
@@ -118,27 +125,40 @@
}%
\def\XINT_flexpr_noopt
{%
- \expandafter\XINT_flexpr_preprint\expandafter\xinttheDigits
- \romannumeral0\xintbarefloateval
+ \expandafter\XINT_flexpr_noopt_a\romannumeral0\xintbarefloateval
+}%
+\def\XINT_flexpr_noopt_a #1%
+{%
+ \expandafter\XINT_flexpr_wrap
+ \csname .;\xinttheDigits.=\XINT_expr_unlock #1\endcsname
}%
\def\XINT_flexpr_withopt [#1]%
{%
- \expandafter\XINT_flexpr_preprint\expandafter
- {\the\numexpr\xint_zapspaces #1 \xint_gobble_i\expandafter}%
+ \expandafter\XINT_flexpr_withopt_a
+ \the\numexpr\xint_zapspaces #1 \xint_gobble_i\expandafter.%
\romannumeral0\xintbarefloateval
}%
-\def\XINT_flexpr_preprint #1#2%
+\def\XINT_flexpr_withopt_a #1.#2%
{%
\expandafter\XINT_flexpr_wrap
\csname .;#1.=\XINTinFloat::csv {#1}{\XINT_expr_unlock #2}\endcsname
}%
+\def\XINT:NE_flexpr_withopt_a #1.#2%
+{%
+ \expandafter\XINT_flexpr_wrap
+ \csname .;#1.=\XINT:NE:one{\XINTinFloat::csv{#1}}{\XINT_expr_unlock #2}\endcsname
+}%
\def\XINT_expr_wrap {!\XINT_expr_usethe\XINT_protectii\XINT_expr_print}%
\def\XINT_iiexpr_wrap {!\XINT_expr_usethe\XINT_protectii\XINT_iiexpr_print}%
\def\XINT_flexpr_wrap {!\XINT_expr_usethe\XINT_protectii\XINT_flexpr_print}%
\def\XINT_protectii #1{\noexpand\XINT_protectii\noexpand #1\noexpand }%
\protected\def\XINT_expr_usethe\XINT_protectii {\xintError:missing_xintthe!}%
\def\XINT_expr_print #1{\xintSPRaw::csv {\XINT_expr_unlock #1}}%
-\def\XINT_iiexpr_print #1{\xintCSV::csv {\XINT_expr_unlock #1}}%
+\def\XINT:NE_expr_print#1{\expandafter
+ \xintSPRaw::csv\expandafter{\romannumeral`&&@\XINT_expr_unlock #1}}%
+\def\XINT_iiexpr_print #1{\xintCSV::csv {\XINT_expr_unlock #1}}%
+\def\XINT:NE_iiexpr_print #1{\expandafter
+ \xintCSV::csv\expandafter{\romannumeral`&&@\XINT_expr_unlock #1}}%
\def\XINT_flexpr_print #1%
{%
\expandafter\xintPFloat::csv
@@ -165,6 +185,10 @@
{\romannumeral`&&@\expandafter\xint_gobble_iii\romannumeral`&&@\xintfloatexpr#1\relax}%
\def\xintiieval #1%
{\romannumeral`&&@\expandafter\XINT_iiexpr_print\romannumeral0\xintbareiieval#1\relax}%
+\def\XINT:NE:eval #1{\xintexpr #1\relax}%
+\def\XINT:NE:ieval #1{\xintiexpr #1\relax}%
+\def\XINT:NE:floateval#1{\xintfloatexpr #1\relax}%
+\def\XINT:NE:iieval #1{\xintiiexpr #1\relax}%
\def\xintthe #1{\romannumeral`&&@\expandafter\xint_gobble_iii\romannumeral`&&@#1}%
\def\xintbareeval
{\expandafter\XINT_expr_until_end_a\romannumeral`&&@\XINT_expr_getnext }%
@@ -181,7 +205,9 @@
\XINT_boolexpr_done\expandafter\xint_gobble_iv\romannumeral0\xintexpro
}%
\def\XINT_boolexpr_done {!\XINT_expr_usethe\XINT_protectii\XINT_boolexpr_print}%
-\def\XINT_boolexpr_print #1{\xintIsTrue::csv {\XINT_expr_unlock #1}}%
+\def\XINT_boolexpr_print #1{\xintIsTrue::csv {\XINT_expr_unlock #1}}%
+\def\XINT:NE_boolexpr_print #1{\expandafter
+ \xintIsTrue::csv\expandafter{\romannumeral`&&@\XINT_expr_unlock #1}}%
\def\xinttheboolexpr
{%
\romannumeral`&&@\expandafter\expandafter\expandafter
@@ -2993,7 +3019,7 @@
\def\XINT_expr_defuserefunc_none #1#2#3%
{%
\expandafter\XINT_expr_defuserefunc_none_a
- \csname XINT_#3_userefunc_#2\endcsname
+ \csname XINT_#3_userefunc_#2\endcsname #1%
}%
\def\XINT_expr_defuserefunc_none_a #1#2%
{%
@@ -3196,13 +3222,13 @@
{%
\XINT:NE:two_fork_dd#1#3{#5}{\detokenize{#5}}{#1#2}{#3#4}%
}%
-\def\XINT:NE:one#1#2{\expandafter\XINT:NE:one_a\romannumeral`&&@#2!#1}%
+\def\XINT:NE:one#1#2{\expandafter\XINT:NE:one_a\romannumeral`&&@#2!{#1}}%
\def\XINT:NE:one_a#1#2!#3%
{%
\if ###1\xint_dothis {\detokenize{#3}}\fi
\if ~#1\xint_dothis {\detokenize{#3}}\fi
\if $#1\xint_dothis {~xintApply::csv{\detokenize{#3}}}\fi %$
- \xint_orthat #3{#1#2}%
+ \xint_orthat {#3}{#1#2}%
}%
\def\XINT:NE:userfunc #1#2#3%
{~xintExpandArgs{XINT_#1_userfunc_#2}{\xintCSVtoListNonStripped{#3}}}%
@@ -3381,7 +3407,6 @@
\let\xintiiifSgn: \xintiiifSgnNE:
\let\xintSeqNumeric::csv \xintSeq::csv
\let\xintiiSeqNumeric::csv \xintiiSeq::csv
- \let\XINTinFloatSeqNumeric::csv \XINTinFloatSeq::csv
\let\xintSeqBNumeric::csv \xintSeqB::csv
\let\xintiiSeqBNumeric::csv \xintiiSeqB::csv
\let\XINTinFloatSeqBNumeric::csv\XINTinFloatSeqB::csv
@@ -3389,8 +3414,6 @@
{\XINT:NE:two_\xintSeqNumeric::csv{$noexpand$xintSeq::csv}}%
\def\xintiiSeq::csv
{\XINT:NE:two_\xintiiSeqNumeric::csv{$noexpand$xintiiSeq::csv}}%
- \def\XINTinFloatSeq::csv
- {\XINT:NE:two_\XINTinFloatSeqNumeric::csv{$noexpand$XINTinFloatSeq::csv}}%
\def\xintSeqB::csv
{\XINT:NE:two_\xintSeqBNumeric::csv{$noexpand$xintSeqB:f:csv}}%
\def\xintiiSeqB::csv
@@ -3402,73 +3425,60 @@
\def\XINTinRandomFloatSixteen{~XINTinRandomFloatSixteen }%
\def\xintiiRandRange{~xintiiRandRange }%
\def\xintiiRandRangeAtoB{~xintiiRandRangeAtoB }%
+ \let\xinteval\XINT:NE:eval
+ \let\xintieval\XINT:NE:ieval
+ \let\xintiieval\XINT:NE:iieval
+ \let\xintfloateval\XINT:NE:floateval
}%
\def\XINT_expr_redefineprints
{%
- \def\XINT_flexpr_noopt
- {%
- \expandafter
- \XINT_flexpr_preprint\expandafter-\romannumeral0\xintbarefloateval
- }%
- \def\XINT_flexpr_preprint ##1##2%
- {%
- \expandafter\XINT_flexpr_wrap
- \csname .;##1.=\XINT_expr_unlock##2\endcsname
- }%
- \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`&&@\XINT_expr_unlock ##1}}%
- \def\XINT_iiexpr_print ##1{\expandafter
- \xintCSV::csv\expandafter{\romannumeral`&&@\XINT_expr_unlock ##1}}%
- \def\XINT_boolexpr_print ##1{\expandafter
- \xintIsTrue::csv\expandafter{\romannumeral`&&@\XINT_expr_unlock ##1}}%
+ \let\XINT_flexpr_withopt_a\XINT:NE_flexpr_withopt_a
+ \let\XINT_expr_print \XINT:NE_expr_print
+ \let\XINT_iiexpr_print \XINT:NE_iiexpr_print
+ \let\XINT_boolexpr_print \XINT:NE_boolexpr_print
\def\xintCSV::csv {~xintCSV::csv }%
\def\xintSPRaw::csv {~xintSPRaw::csv }%
\def\xintPFloat::csv {~xintPFloat::csv }%
\def\xintIsTrue::csv {~xintIsTrue::csv }%
\def\xintRound::csv {~xintRound::csv }%
}%
-\def\xintNewExpr {\XINT_NewExpr\XINT_expr_redefineprints\xint_firstofone
+\def\xintNewExpr {\XINT_NewExpr\xint_firstofone
\xinttheexpr\XINT_newexpr_clean}%
-\def\xintNewFloatExpr{\XINT_NewExpr\XINT_expr_redefineprints\xint_firstofone
+\def\xintNewFloatExpr{\XINT_NewExpr\xint_firstofone
\xintthefloatexpr\XINT_newexpr_clean}%
-\def\xintNewIExpr {\XINT_NewExpr\XINT_expr_redefineprints\xint_firstofone
+\def\xintNewIExpr {\XINT_NewExpr\xint_firstofone
\xinttheiexpr\XINT_newexpr_clean}%
-\def\xintNewIIExpr {\XINT_NewExpr\XINT_expr_redefineprints\xint_firstofone
+\def\xintNewIIExpr {\XINT_NewExpr\xint_firstofone
\xinttheiiexpr\XINT_newexpr_clean}%
-\def\xintNewBoolExpr {\XINT_NewExpr\XINT_expr_redefineprints\xint_firstofone
+\def\xintNewBoolExpr {\XINT_NewExpr\xint_firstofone
\xinttheboolexpr\XINT_newexpr_clean}%
\def\XINT_newexpr_clean #1>{\noexpand\romannumeral`&&@}%
\def\XINT_NewFunc
- {\XINT_NewExpr\XINT_expr_redefineprints\xint_gobble_i\xintthebareeval\XINT_newfunc_clean}%
+ {\XINT_NewExpr\xint_gobble_i\xintthebareeval\XINT_newfunc_clean}%
\def\XINT_NewFloatFunc
- {\XINT_NewExpr\XINT_expr_redefineprints\xint_gobble_i\xintthebarefloateval\XINT_newfunc_clean}%
+ {\XINT_NewExpr\xint_gobble_i\xintthebarefloateval\XINT_newfunc_clean}%
\def\XINT_NewIIFunc
- {\XINT_NewExpr\XINT_expr_redefineprints\xint_gobble_i\xintthebareiieval\XINT_newfunc_clean}%
+ {\XINT_NewExpr\xint_gobble_i\xintthebareiieval\XINT_newfunc_clean}%
\def\XINT_newfunc_clean #1>{}%
-\def\XINT_NewExpr #1#2#3#4#5#6[#7]%
+\def\XINT_NewExpr #1#2#3#4#5[#6]%
{%
\begingroup
- \ifcase #7\relax
- \toks0 {\endgroup\XINT_global\def#5}%
- \or \toks0 {\endgroup\XINT_global\def#5##1}%
- \or \toks0 {\endgroup\XINT_global\def#5##1##2}%
- \or \toks0 {\endgroup\XINT_global\def#5##1##2##3}%
- \or \toks0 {\endgroup\XINT_global\def#5##1##2##3##4}%
- \or \toks0 {\endgroup\XINT_global\def#5##1##2##3##4##5}%
- \or \toks0 {\endgroup\XINT_global\def#5##1##2##3##4##5##6}%
- \or \toks0 {\endgroup\XINT_global\def#5##1##2##3##4##5##6##7}%
- \or \toks0 {\endgroup\XINT_global\def#5##1##2##3##4##5##6##7##8}%
- \or \toks0 {\endgroup\XINT_global\def#5##1##2##3##4##5##6##7##8##9}%
+ \ifcase #6\relax
+ \toks0 {\endgroup\XINT_global\def#4}%
+ \or \toks0 {\endgroup\XINT_global\def#4##1}%
+ \or \toks0 {\endgroup\XINT_global\def#4##1##2}%
+ \or \toks0 {\endgroup\XINT_global\def#4##1##2##3}%
+ \or \toks0 {\endgroup\XINT_global\def#4##1##2##3##4}%
+ \or \toks0 {\endgroup\XINT_global\def#4##1##2##3##4##5}%
+ \or \toks0 {\endgroup\XINT_global\def#4##1##2##3##4##5##6}%
+ \or \toks0 {\endgroup\XINT_global\def#4##1##2##3##4##5##6##7}%
+ \or \toks0 {\endgroup\XINT_global\def#4##1##2##3##4##5##6##7##8}%
+ \or \toks0 {\endgroup\XINT_global\def#4##1##2##3##4##5##6##7##8##9}%
\fi
- #2\xintexprSafeCatcodes
+ #1\xintexprSafeCatcodes
\XINT_expr_redefinemacros
- #1%
- \XINT_NewExpr_a #2#3#4#5%
+ \XINT_expr_redefineprints
+ \XINT_NewExpr_a #1#2#3#4%
}%
\catcode`~ 13 \catcode`@ 14 \catcode`\% 6 \catcode`# 12 \catcode`$ 11 @ $
\def\XINT_NewExpr_a %1%2%3%4%5@
diff --git a/Master/texmf-dist/tex/generic/xint/xintfrac.sty b/Master/texmf-dist/tex/generic/xint/xintfrac.sty
index 11d4185c722..a9371efa96a 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.3e 2019/04/05
+%% The xint bundle 1.3f 2019/09/10
%% Copyright (C) 2013-2019 by Jean-Francois Burnol
%% xintfrac: Expandable operations on fractions
%% ---------------------------------------------------------------
@@ -70,7 +70,7 @@
\XINTsetupcatcodes% defined in xintkernel.sty
\XINT_providespackage
\ProvidesPackage{xintfrac}%
- [2019/04/05 1.3e Expandable operations on fractions (JFB)]%
+ [2019/09/10 v1.3f Expandable operations on fractions (JFB)]%
\def\XINT_cntSgnFork #1%
{%
\ifcase #1\expandafter\xint_secondofthree
@@ -1261,10 +1261,6 @@
{%
#2\romannumeral\XINT_rep#1\endcsname0.\romannumeral\XINT_rep#3\endcsname0%
}%
-\mathchardef\XINTdigits 16
-\def\xintDigits #1#2%
- {\afterassignment \xint_gobble_i \mathchardef\XINTdigits=}%
-\def\xinttheDigits {\number\XINTdigits }%
\def\xintAdd {\romannumeral0\xintadd }%
\def\xintadd #1{\expandafter\XINT_fadd\romannumeral0\xintraw {#1}}%
\def\XINT_fadd #1{\xint_gob_til_zero #1\XINT_fadd_Azero 0\XINT_fadd_a #1}%
@@ -1882,6 +1878,11 @@
\def\XINT_inv_b #1.#2{ #2[#1]}%
\def\xintSgn {\romannumeral0\xintsgn }%
\def\xintsgn #1{\expandafter\XINT_sgn\romannumeral0\xintraw {#1}\xint:}%
+\mathchardef\XINTdigits 16
+\def\xintDigits #1=%
+ {\afterassignment \xint_gobble_i \mathchardef\XINTdigits=}%
+\def\xinttheDigits {\number\XINTdigits }%
+\def\xintSetDigits #1{\mathchardef\XINTdigits=\numexpr#1\relax}%
\def\xintFloat {\romannumeral0\xintfloat }%
\def\xintfloat #1{\XINT_float_chkopt #1\xint:}%
\def\XINT_float_chkopt #1%
@@ -3319,6 +3320,49 @@
\romannumeral`&&@\expandafter\XINT_eightrandomdigits
\romannumeral`&&@\XINT_eightrandomdigits[-16]%
}%
+\def\PoorManLogBaseTen{\romannumeral0\poormanlogbaseten}%
+\def\poormanlogbaseten #1%
+ {\expandafter\PML@logbaseten\romannumeral0\XINTinfloat[9]{#1}}%
+\def\PML@logbaseten#1[#2]%
+{%
+ \xintiiadd{\xintDSx{-9}{\the\numexpr#2+8\relax}}{\the\numexpr\PML@#1.}%
+ [-9]%
+}%
+\def\PoorManPowerOfTen{\the\numexpr\poormanpoweroften}%
+\def\poormanpoweroften #1%
+ {\expandafter\PML@powoften\romannumeral0\xintraw{#1}}%
+\def\PML@powoften#1%
+{%
+ \xint_UDzerominusfork
+ #1-\PML@powoften@zero
+ 0#1\PML@powoften@neg
+ 0-\PML@powoften@pos
+ \krof #1%
+}%
+\def\PML@powoften@zero 0{1\relax}%/1[0]
+\def\PML@powoften@pos#1[#2]%
+{%
+ \expandafter\PML@powoften@pos@a\romannumeral0\xintround{9}{#1[#2]}.%
+}%
+\def\PML@powoften@pos@a#1.#2.{\PML@Pa#2.\expandafter[\the\numexpr-8+#1]}%
+\def\PML@powoften@neg#1[#2]%
+{%
+ \expandafter\PML@powoften@neg@a\romannumeral0\xintround{9}{#1[#2]}.%
+}%
+\def\PML@powoften@neg@a#1.#2.%
+{\ifnum#2=\xint_c_ \xint_afterfi{1\relax/1[#1]}\else
+ \expandafter\expandafter\expandafter
+ \PML@Pa\expandafter\xint_gobble_i\the\numexpr2000000000-#2.%
+ \expandafter[\the\numexpr-9+#1\expandafter]\fi
+}%
+\def\PoorManPower#1#2%
+{%
+ \PoorManPowerOfTen{\xintMul{#2}{\PoorManLogBaseTen{#1}}}%
+}%
+\def\xintLog#1{\xintMul{\PoorManLogBaseTen{#1}}{23025850923[-10]}}%
+\def\XINTinFloatLog#1{\XINTinFloatMul{\PoorManLogBaseTen{#1}}{23025850923[-10]}}%
+\def\xintExp#1{\PoorManPowerOfTen{\xintMul{#1}{434294481903[-12]}}}%
+\def\XINTinFloatExp#1{\PoorManPowerOfTen{\XINTinFloatMul{#1}{434294481903[-12]}}}%
\XINT_restorecatcodes_endinput%
\endinput
%%
diff --git a/Master/texmf-dist/tex/generic/xint/xintgcd.sty b/Master/texmf-dist/tex/generic/xint/xintgcd.sty
index ecd3d3f8532..473e4520af2 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.3e 2019/04/05
+%% The xint bundle 1.3f 2019/09/10
%% Copyright (C) 2013-2019 by Jean-Francois Burnol
%% xintgcd: Euclidean algorithm with xint package
%% ---------------------------------------------------------------
@@ -70,7 +70,7 @@
\XINTsetupcatcodes% defined in xintkernel.sty
\XINT_providespackage
\ProvidesPackage{xintgcd}%
- [2019/04/05 1.3e Euclide algorithm with xint package (JFB)]%
+ [2019/09/10 v1.3f Euclide algorithm with xint package (JFB)]%
\def\xintGCD {\romannumeral0\xintgcd }%
\def\xintgcd #1#2{\xintiigcd {\xintNum{#1}}{\xintNum{#2}}}%
\def\xintiiGCD {\romannumeral0\xintiigcd }%
diff --git a/Master/texmf-dist/tex/generic/xint/xintkernel.sty b/Master/texmf-dist/tex/generic/xint/xintkernel.sty
index 2b03201a5f5..3fdf7040f4e 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.3e 2019/04/05
+%% The xint bundle 1.3f 2019/09/10
%% Copyright (C) 2013-2019 by Jean-Francois Burnol
%% xintkernel: Paraphernalia for the xint packages
%% ---------------------------------------------------------------
@@ -156,7 +156,7 @@
\fi
\XINT_providespackage
\ProvidesPackage {xintkernel}%
- [2019/04/05 1.3e Paraphernalia for the xint packages (JFB)]%
+ [2019/09/10 v1.3f 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 0ba983d2530..b93e1c2bb05 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.3e 2019/04/05
+%% The xint bundle 1.3f 2019/09/10
%% Copyright (C) 2013-2019 by Jean-Francois Burnol
%% xintlog: Logarithms and exponentials for xintexpr
%% ---------------------------------------------------------------
@@ -74,17 +74,27 @@
\xintexprSafeCatcodes\catcode`_ 11
\XINT_providespackage
\ProvidesPackage{xintlog}%
-[2019/04/05 1.3e Logarithms and exponentials for xintexpr (JFB)]%
+[2019/09/10 v1.3f Logarithms and exponentials for xintexpr (JFB)]%
\ifdefined\RequirePackage
\RequirePackage{poormanlog}%
\else
\input poormanlog.tex
\fi
\xintexprRestoreCatcodes\csname XINT_setcatcodes\endcsname\catcode`\! 11
-\def\xintLog#1{\xintMul{\PoorManLogBaseTen{#1}}{23025850923[-10]}}%
-\def\XINTinFloatLog#1{\XINTinFloatMul{\PoorManLogBaseTen{#1}}{23025850923[-10]}}%
-\def\xintExp#1{\PoorManPowerOfTen{\xintMul{#1}{434294481903[-12]}}}%
-\def\XINTinFloatExp#1{\PoorManPowerOfTen{\XINTinFloatMul{#1}{434294481903[-12]}}}%
+\expandafter\def\csname XINT_expr_func_log10\endcsname#1#2#3%
+{%
+ \expandafter #1\expandafter #2\csname.=%
+ \XINT:NEhook:one\PoorManLogBaseTen{\XINT_expr_unlock #3}\endcsname
+}%
+\expandafter\let\csname XINT_flexpr_func_log10\expandafter\endcsname
+ \csname XINT_expr_func_log10\endcsname
+\expandafter\def\csname XINT_expr_func_pow10\endcsname#1#2#3%
+{%
+ \expandafter #1\expandafter #2\csname.=%
+ \XINT:NEhook:one\PoorManPowerOfTen{\XINT_expr_unlock #3}\endcsname
+}%
+\expandafter\let\csname XINT_flexpr_func_pow10\expandafter\endcsname
+ \csname XINT_expr_func_pow10\endcsname
\def\XINT_expr_func_log #1#2#3%
{%
\expandafter #1\expandafter #2\csname.=%
@@ -113,6 +123,58 @@
\endcsname
}%
\let\XINT_flexpr_func_pow\XINT_expr_func_pow
+\catcode`\* 11
+\def\poormanloghack**{%
+\def\XINT_expr_op_** ##1%
+{%
+ \expandafter \XINT_expr_until_**_a
+ \expandafter ##1\romannumeral`&&@\expandafter\XINT_expr_getnext
+}%
+\def\XINT_expr_until_**_a ##1{%
+\def\XINT_expr_until_**_a ####1####2%
+{%
+ \xint_UDsignfork
+ ####2{\expandafter \XINT_expr_until_**_a \expandafter ##1%
+ \romannumeral`&&@##1}%
+ -{\XINT_expr_until_**_b ####1####2}%
+ \krof
+}}\expandafter\XINT_expr_until_**_a\csname XINT_expr_op_-ix\endcsname
+\def\XINT_expr_until_**_b ##1##2##3##4%
+{%
+ \ifnum ##2>\XINT_expr_precedence_**
+ \xint_afterfi
+ {\expandafter \XINT_expr_until_**_a \expandafter ##1%
+ \romannumeral`&&@\csname XINT_expr_op_##3\endcsname{##4}}%
+ \else
+ \xint_afterfi
+ {\expandafter ##2\expandafter ##3%
+ \csname .=\XINT:NEhook:two
+ \PoorManPower{\XINT_expr_unlock ##1}{\XINT_expr_unlock ##4}\endcsname
+ }%
+ \fi
+}%
+\let\XINT_flexpr_op_** \XINT_expr_op_**
+\let\XINT_flexpr_until_**_a\XINT_expr_until_**_a
+\let\XINT_flexpr_until_**_b\XINT_expr_until_**_b
+}%
+\def\poormanloghack^{%
+\def\XINT_expr_until_^_b ##1##2##3##4%
+{%
+ \ifnum ##2>\XINT_expr_precedence_^
+ \xint_afterfi
+ {\expandafter \XINT_expr_until_^_a \expandafter ##1%
+ \romannumeral`&&@\csname XINT_expr_op_##3\endcsname {##4}}%
+ \else
+ \xint_afterfi
+ {\expandafter ##2\expandafter ##3%
+ \csname .=\XINT:NEhook:two
+ \PoorManPower{\XINT_expr_unlock ##1}{\XINT_expr_unlock ##4}\endcsname
+ }%
+ \fi
+}%
+\let\XINT_flexpr_until_^_b\XINT_expr_until_^_b
+}%
+\def\poormanloghack#1{\csname poormanloghack#1\endcsname}%
\endinput
%%
%% End of file `xintlog.sty'.
diff --git a/Master/texmf-dist/tex/generic/xint/xintseries.sty b/Master/texmf-dist/tex/generic/xint/xintseries.sty
index 38ea5b473c4..f7f708c86db 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.3e 2019/04/05
+%% The xint bundle 1.3f 2019/09/10
%% Copyright (C) 2013-2019 by Jean-Francois Burnol
%% xintseries: Expandable partial sums with xint package
%% ---------------------------------------------------------------
@@ -70,7 +70,7 @@
\XINTsetupcatcodes% defined in xintkernel.sty
\XINT_providespackage
\ProvidesPackage{xintseries}%
- [2019/04/05 1.3e Expandable partial sums with xint package (JFB)]%
+ [2019/09/10 v1.3f 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 c38614a2a1e..a06a4db27d0 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.3e 2019/04/05
+%% The xint bundle 1.3f 2019/09/10
%% Copyright (C) 2013-2019 by Jean-Francois Burnol
%% xinttools: Expandable and non-expandable utilities
%% ---------------------------------------------------------------
@@ -70,7 +70,7 @@
\XINTsetupcatcodes% defined in xintkernel.sty
\XINT_providespackage
\ProvidesPackage{xinttools}%
- [2019/04/05 1.3e Expandable and non-expandable utilities (JFB)]%
+ [2019/09/10 v1.3f Expandable and non-expandable utilities (JFB)]%
\newtoks\XINT_toks
\xint_firstofone{\let\XINT_sptoken= } %<- space here!
\def\xintgodef {\global\xintodef }%
diff --git a/Master/texmf-dist/tex/generic/xint/xinttrig.sty b/Master/texmf-dist/tex/generic/xint/xinttrig.sty
index b2e41c7b21f..c25ebaeb452 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.3e 2019/04/05
+%% The xint bundle 1.3f 2019/09/10
%% Copyright (C) 2013-2019 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{2019/04/05 1.3e}%
+{\expandafter\gdef\csname xintlibver@trig\endcsname{2019/09/10 v1.3f}%
\XINT_providespackage
\ProvidesPackage{xinttrig}%
-[2019/04/05 1.3e Trigonometrical functions for xintexpr (JFB)]%
+[2019/09/10 v1.3f Trigonometrical functions for xintexpr (JFB)]%
}%
\xintFor* #1 in {iDTVtuwxyzX}\do{\xintensuredummy{#1}}%
\def\xintreloadxinttrig