summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/xint
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2018-03-07 21:47:21 +0000
committerKarl Berry <karl@freefriends.org>2018-03-07 21:47:21 +0000
commitc5ba7c59f808b748529b8c2addcff69f25fe522c (patch)
tree0830268a3cce8e423c0d944cf8af6b340a159264 /Master/texmf-dist/tex/generic/xint
parente8a6f616cd986e7153073484150a7bb260e86a06 (diff)
xint (7mar18)
git-svn-id: svn://tug.org/texlive/trunk@46870 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/generic/xint')
-rw-r--r--Master/texmf-dist/tex/generic/xint/xint.sty49
-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.sty40
-rw-r--r--Master/texmf-dist/tex/generic/xint/xintexpr.sty96
-rw-r--r--Master/texmf-dist/tex/generic/xint/xintfrac.sty339
-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/xintseries.sty4
-rw-r--r--Master/texmf-dist/tex/generic/xint/xinttools.sty6
10 files changed, 236 insertions, 314 deletions
diff --git a/Master/texmf-dist/tex/generic/xint/xint.sty b/Master/texmf-dist/tex/generic/xint/xint.sty
index 4cebabc2f3f..80548342812 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.3 2018/03/01
+%% The xint bundle 1.3a 2018/03/07
%% Copyright (C) 2013-2018 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}%
- [2018/03/01 1.3 Expandable operations on big integers (JFB)]%
+ [2018/03/07 1.3a 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}%
@@ -1372,51 +1372,6 @@
\def\xintBool #1{\romannumeral`&&@%
\csname if#1\endcsname\expandafter1\else\expandafter0\fi }%
\def\xintToggle #1{\romannumeral`&&@\iftoggle{#1}{1}{0}}%
-\ifdefined\documentclass\ifdefined\AtEndDocument
- \AtEndDocument{%
-\XINT_ifFlagRaised{Deprecated-xint}%
- {\PackageError{xint}
-{Usage of deprecated macros!}
-{These deprecated macros from xint.sty have been detected:\MessageBreak
-\XINT_useiimessage{xintEq}%
-\XINT_useiimessage{xintGeq}%
-\XINT_useiimessage{xintGt}%
-\XINT_useiimessage{xintLt}%
-\XINT_useiimessage{xintGtorEq}%
-\XINT_useiimessage{xintLtorEq}%
-\XINT_useiimessage{xintIsZero}%
-\XINT_useiimessage{xintIsNotZero}%
-\XINT_useiimessage{xintIsOne}%
-\XINT_useiimessage{xintOdd}%
-\XINT_useiimessage{xintEven}%
-\XINT_useiimessage{xintifSgn}%
-\XINT_useiimessage{xintifCmp}%
-\XINT_useiimessage{xintifEq}%
-\XINT_useiimessage{xintifGt}%
-\XINT_useiimessage{xintifLt}%
-\XINT_useiimessage{xintifZero}%
-\XINT_useiimessage{xintifNotZero}%
-\XINT_useiimessage{xintifOne}%
-\XINT_useiimessage{xintifOdd}%
-\XINT_ifFlagRaised{xintNeq}%
- {\string\xintNeq\space(use \string\xintiiNotEq\space or \string\xintNotEq\space from xintfrac!)\MessageBreak}{}%
-\XINT_ifFlagRaised{xintNot}%
- {\string\xintNot\space(renamed to \string\xintNOT!)\MessageBreak}{}%
-\XINT_ifFlagRaised{xintMON}{\string\xintMON\MessageBreak}{}%
-\XINT_ifFlagRaised{xintMMON}{\string\xintMMON\MessageBreak}{}%
-\XINT_ifFlagRaised{xintiMax}{\string\xintiMax\MessageBreak}{}%
-\XINT_ifFlagRaised{xintiMin}{\string\xintiMin\MessageBreak}{}%
-\XINT_ifFlagRaised{xintiMaxof}{\string\xintiMaxof\MessageBreak}{}%
-\XINT_ifFlagRaised{xintiMinof}{\string\xintiMinof\MessageBreak}{}%
-\XINT_ifFlagRaised{xintiSquareRoot}{\string\xintiSquareRoot\MessageBreak}{}%
-\XINT_ifFlagRaised{xintiSqrt}{\string\xintiSqrt\MessageBreak}{}%
-\XINT_ifFlagRaised{xintiSqrtR}{\string\xintiSqrtR\MessageBreak}{}%
-\XINT_ifFlagRaised{xintiBinomial}{\string\xintiBinomial\MessageBreak}{}%
-\XINT_ifFlagRaised{xintiPFactorial}{\string\xintiPFactorial\MessageBreak}{}%
-This is not possible because they all got removed at 1.3!}}%
- {% no deprecated macro used (at top level...)
- }%
-}\fi\fi
\XINT_restorecatcodes_endinput%
\endinput
%%
diff --git a/Master/texmf-dist/tex/generic/xint/xintbinhex.sty b/Master/texmf-dist/tex/generic/xint/xintbinhex.sty
index 1391e129f79..78c9566ce06 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.3 2018/03/01
+%% The xint bundle 1.3a 2018/03/07
%% Copyright (C) 2013-2018 by Jean-Francois Burnol
%% xintbinhex: Expandable binary and hexadecimal conversions
%% ---------------------------------------------------------------
@@ -70,7 +70,7 @@
\XINTsetupcatcodes% defined in xintkernel.sty
\XINT_providespackage
\ProvidesPackage{xintbinhex}%
- [2018/03/01 1.3 Expandable binary and hexadecimal conversions (JFB)]%
+ [2018/03/07 1.3a 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 6eea46114c3..e402cc59e6a 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.3 2018/03/01
+%% The xint bundle 1.3a 2018/03/07
%% Copyright (C) 2013-2018 by Jean-Francois Burnol
%% xintcfrac: Expandable continued fractions with xint package
%% ---------------------------------------------------------------
@@ -70,7 +70,7 @@
\XINTsetupcatcodes% defined in xintkernel.sty
\XINT_providespackage
\ProvidesPackage{xintcfrac}%
- [2018/03/01 1.3 Expandable continued fractions with xint package (JFB)]%
+ [2018/03/07 1.3a 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 d947fbc48fe..e33963a9c30 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.3 2018/03/01
+%% The xint bundle 1.3a 2018/03/07
%% Copyright (C) 2013-2018 by Jean-Francois Burnol
%% xintcore: Expandable arithmetic on big integers
%% ---------------------------------------------------------------
@@ -70,7 +70,7 @@
\XINTsetupcatcodes% defined in xintkernel.sty
\XINT_providespackage
\ProvidesPackage{xintcore}%
- [2018/03/01 1.3 Expandable arithmetic on big integers (JFB)]%
+ [2018/03/07 1.3a Expandable arithmetic on big integers (JFB)]%
\csname XINT_Clamped_istrapped\endcsname
\csname XINT_ConversionSyntax_istrapped\endcsname
\csname XINT_DivisionByZero_istrapped\endcsname
@@ -2196,42 +2196,6 @@
\xint_c_x^viii+#1*(#1+\xint_c_i)*(#1+\xint_c_ii)*(#1+\xint_c_iii)!%
}%
\def\XINT_fac_loop_exit #1!#2;!#3{#3#2;!}%
-\def\XINT_signaldeprecated #1#2%
-{%
- \XINT_ifFlagRaised{#2}%
- {}% already encountered (if not hidden in a group...)
- {\XINT_RaiseFlag{Deprecated-#1}\XINT_RaiseFlag{#2}%
- \expandafter\XINT_expandableerror\expandafter
- {\csname#2\endcsname (#1) is deprecated! (RET to proceed)}}%
-}%
-\ifdefined\documentclass\ifdefined\AtEndDocument
- \AtEndDocument{%
-\XINT_ifFlagRaised{Deprecated-xintcore}%
- {\PackageError{xintcore}
-{Usage of deprecated macros!}
-{These deprecated macros from xintcore.sty have been detected:\MessageBreak
-\XINT_useiimessage{xintSgn}%
-\XINT_useiimessage{xintCmp}%
-\XINT_ifFlagRaised{xintiOpp}{\string\xintiOpp\MessageBreak}{}%
-\XINT_ifFlagRaised{xintiAbs}{\string\xintiAbs\MessageBreak}{}%
-\XINT_ifFlagRaised{xintiiFDg}{\string\xintiiFDg\space(renamed to \string\xintFDg!)\MessageBreak}{}%
-\XINT_ifFlagRaised{xintiiLDg}{\string\xintiiLDg\space(renamed to \string\xintLDg!)\MessageBreak}{}%
-\XINT_ifFlagRaised{xintiAdd}{\string\xintiAdd\MessageBreak}{}%
-\XINT_ifFlagRaised{xintiSub}{\string\xintiSub\MessageBreak}{}%
-\XINT_ifFlagRaised{xintiMul}{\string\xintiMul\MessageBreak}{}%
-\XINT_ifFlagRaised{xintiDivision}{\string\xintiDivision\MessageBreak}{}%
-\XINT_ifFlagRaised{xintiQuo}{\string\xintiQuo\MessageBreak}{}%
-\XINT_ifFlagRaised{xintiRem}{\string\xintiRem\MessageBreak}{}%
-\XINT_ifFlagRaised{xintiDivRound}{\string\xintiDivRound\MessageBreak}{}%
-\XINT_ifFlagRaised{xintiDivTrunc}{\string\xintiDivTrunc\MessageBreak}{}%
-\XINT_ifFlagRaised{xintiMod}{\string\xintiMod\MessageBreak}{}%
-\XINT_ifFlagRaised{xintiSqr}{\string\xintiSqr\MessageBreak}{}%
-\XINT_ifFlagRaised{xintiPow}{\string\xintiPow\MessageBreak}{}%
-\XINT_ifFlagRaised{xintiFac}{\string\xintiFac\MessageBreak}{}%
-This is not possible because they all got removed from xintcore at 1.3!}}%
- {% no deprecated macro used (at top level...)
- }%
-}\fi\fi
\def\XINT_useiimessage #1% used in LaTeX only
{%
\XINT_ifFlagRaised {#1}%
diff --git a/Master/texmf-dist/tex/generic/xint/xintexpr.sty b/Master/texmf-dist/tex/generic/xint/xintexpr.sty
index 979511d5410..68fa92e62d3 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.3 2018/03/01
+%% The xint bundle 1.3a 2018/03/07
%% Copyright (C) 2013-2018 by Jean-Francois Burnol
%% xintexpr: Expandable expression parser
%% ---------------------------------------------------------------
@@ -81,7 +81,7 @@
\XINTsetupcatcodes%
\XINT_providespackage
\ProvidesPackage{xintexpr}%
- [2018/03/01 1.3 Expandable expression parser (JFB)]%
+ [2018/03/07 1.3a Expandable expression parser (JFB)]%
\catcode`! 11
\let\XINT_Cmp \xintiiCmp
\def\xint_gob_til_! #1!{}% ! with catcode 11
@@ -2543,20 +2543,50 @@
}%
\let\XINT_flexpr_func_reversed\XINT_expr_func_reversed
\let\XINT_iiexpr_func_reversed\XINT_expr_func_reversed
-\def\xintifNotZero: #1,#2,#3,{\xintiiifNotZero{#1}{#2}{#3}}%
+\def\xintiiifNotZero: #1,#2,#3,{\xintiiifNotZero{#1}{#2}{#3}}%
\def\XINT_expr_func_if #1#2#3%
{%
\expandafter #1\expandafter #2\csname.=%
- \expandafter\xintifNotZero:%
+ \expandafter\xintiiifNotZero:%
\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\xintifInt: #1,#2,#3,{\xintifInt{#1}{#2}{#3}}%
+\def\XINT_expr_func_ifint #1#2#3%
+{%
+ \expandafter #1\expandafter #2\csname.=%
+ \expandafter\xintifInt:%
+ \romannumeral`&&@\XINT_expr_unlock #3,\endcsname
+}%
+\let\XINT_iiexpr_func_ifint\XINT_expr_func_ifint
+\def\xintifFloatInt: #1,#2,#3,{\xintifFloatInt{#1}{#2}{#3}}%
+\def\XINT_flexpr_func_ifint #1#2#3%
+{%
+ \expandafter #1\expandafter #2\csname.=%
+ \expandafter\xintifFloatInt:%
+ \romannumeral`&&@\XINT_expr_unlock #3,\endcsname
+}%
+\def\xintifOne: #1,#2,#3,{\xintifOne{#1}{#2}{#3}}%
+\def\XINT_expr_func_ifone #1#2#3%
+{%
+ \expandafter #1\expandafter #2\csname.=%
+ \expandafter\xintifOne:%
+ \romannumeral`&&@\XINT_expr_unlock #3,\endcsname
+}%
+\let\XINT_flexpr_func_ifone\XINT_expr_func_ifone
+\def\xintiiifOne: #1,#2,#3,{\xintiiifOne{#1}{#2}{#3}}%
+\def\XINT_iiexpr_func_ifone #1#2#3%
+{%
+ \expandafter #1\expandafter #2\csname.=%
+ \expandafter\xintiiifOne:%
+ \romannumeral`&&@\XINT_expr_unlock #3,\endcsname
+}%
+\def\xintiiifSgn: #1,#2,#3,#4,{\xintiiifSgn{#1}{#2}{#3}{#4}}%
\def\XINT_expr_func_ifsgn #1#2#3%
{%
\expandafter #1\expandafter #2\csname.=%
- \expandafter\xintifSgn:%
+ \expandafter\xintiiifSgn:%
\romannumeral`&&@\XINT_expr_unlock #3,\endcsname
}%
\let\XINT_flexpr_func_ifsgn\XINT_expr_func_ifsgn
@@ -2687,7 +2717,7 @@
{\csname XINT_#1_userfunc_#2\expandafter\endcsname
\romannumeral0\xintcsvtolistnonstripped{#3}}%
\def\XINT:newexpr:userfunc #1#2#3%
- {~csname XINT_#1_userfunc_#2~endcsname\xintCSVtoListNonStripped{#3}}%
+ {~xintExpandArgs{XINT_#1_userfunc_#2}{\xintCSVtoListNonStripped{#3}}}%
\def\XINT_expr_wrapit #1{\expandafter\XINT_expr_wrap\csname.=#1\endcsname}%
\def\xintNewFunction #1#2[#3]#4%
{%
@@ -2861,20 +2891,52 @@
\XINT:NE:two#3{#1}{#2}%
}%
\let\XINT:newflexpr:two:to:one\XINT:newexpr:two:to:one
-\def\xintifNotZeroNE:#1#2,#3,#4,%
+\def\xintiiifNotZeroNE:#1#2,#3,#4,%
+{%
+ \if1\if###11\else\if~#11\else\if$#11\else0%$
+ \fi\fi\fi
+ \xint_dothis{~xintiiifNotZero}\fi
+ \xint_orthat\xintiiifNotZero
+ {#1#2}{#3}{#4}%
+}%
+\def\xintifIntNE:#1#2,#3,#4,%
+{%
+ \if1\if###11\else\if~#11\else\if$#11\else0%$
+ \fi\fi\fi
+ \xint_dothis{~xintifInt}\fi
+ \xint_orthat\xintifInt
+ {#1#2}{#3}{#4}%
+}%
+\def\xintifFloatIntNE:#1#2,#3,#4,%
+{%
+ \if1\if###11\else\if~#11\else\if$#11\else0%$
+ \fi\fi\fi
+ \xint_dothis{~xintifFloatInt}\fi
+ \xint_orthat\xintifFloatInt
+ {#1#2}{#3}{#4}%
+}%
+\def\xintiiifOneNE:#1#2,#3,#4,%
+{%
+ \if1\if###11\else\if~#11\else\if$#11\else0%$
+ \fi\fi\fi
+ \xint_dothis{~xintiiifOne}\fi
+ \xint_orthat\xintiiifOne
+ {#1#2}{#3}{#4}%
+}%
+\def\xintifOneNE:#1#2,#3,#4,%
{%
\if1\if###11\else\if~#11\else\if$#11\else0%$
\fi\fi\fi
- \xint_dothis{~xintifNotZero}\fi
- \xint_orthat\xintifNotZero
+ \xint_dothis{~xintifOne}\fi
+ \xint_orthat\xintifOne
{#1#2}{#3}{#4}%
}%
-\def\xintifSgnNE:#1#2,#3,#4,#5,%
+\def\xintiiifSgnNE:#1#2,#3,#4,#5,%
{%
\if1\if###11\else\if~#11\else\if$#11\else0%$
\fi\fi\fi
- \xint_dothis{~xintifSgn}\fi
- \xint_orthat\xintifSgn
+ \xint_dothis{~xintiiifSgn}\fi
+ \xint_orthat\xintiiifSgn
{#1#2}{#3}{#4}{#5}%
}%
\def\XINT_expr_redefinemacros {%
@@ -2890,8 +2952,12 @@
\let\XINT:expr:two:to:one \XINT:newexpr:two:to:one
\let\XINT:flexpr:two:to:two \XINT:newflexpr:two:to:two
\let\XINT:flexpr:two:to:one \XINT:newflexpr:two:to:one
- \let\xintifNotZero: \xintifNotZeroNE:
- \let\xintifSgn: \xintifSgnNE:
+ \let\xintiiifNotZero: \xintiiifNotZeroNE:
+ \let\xintifInt: \xintifIntNE:
+ \let\xintifFloatInt: \xintifFloatIntNE:
+ \let\xintiiifOne: \xintiiifOneNE:
+ \let\xintifOne: \xintifOneNE:
+ \let\xintiiifSgn: \xintiiifSgnNE:
\let\xintSeqNumeric::csv \xintSeq::csv
\let\xintiiSeqNumeric::csv \xintiiSeq::csv
\let\XINTinFloatSeqNumeric::csv \XINTinFloatSeq::csv
diff --git a/Master/texmf-dist/tex/generic/xint/xintfrac.sty b/Master/texmf-dist/tex/generic/xint/xintfrac.sty
index 8a5fec10550..4c727e3f522 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.3 2018/03/01
+%% The xint bundle 1.3a 2018/03/07
%% Copyright (C) 2013-2018 by Jean-Francois Burnol
%% xintfrac: Expandable operations on fractions
%% ---------------------------------------------------------------
@@ -75,119 +75,7 @@
\XINTsetupcatcodes% defined in xintkernel.sty
\XINT_providespackage
\ProvidesPackage{xintfrac}%
- [2018/03/01 1.3 Expandable operations on fractions (JFB)]%
-\def\xintEq {\romannumeral0\xinteq }%
-\def\xinteq #1#2{\xintifeq{#1}{#2}{1}{0}}%
-\def\xintNotEq#1#2{\romannumeral0\xintifeq {#1}{#2}{0}{1}}%
-\def\xintGt {\romannumeral0\xintgt }%
-\def\xintgt #1#2{\xintifgt{#1}{#2}{1}{0}}%
-\def\xintLt {\romannumeral0\xintlt }%
-\def\xintlt #1#2{\xintiflt{#1}{#2}{1}{0}}%
-\def\xintGtorEq #1#2{\romannumeral0\xintiflt {#1}{#2}{0}{1}}%
-\def\xintLtorEq #1#2{\romannumeral0\xintifgt {#1}{#2}{0}{1}}%
-\def\xintIsZero {\romannumeral0\xintiszero }%
-\def\xintiszero #1{\if0\xintSgn{#1}\xint_afterfi{ 1}\else\xint_afterfi{ 0}\fi}%
-\def\xintIsNotZero{\romannumeral0\xintisnotzero }%
-\def\xintisnotzero
- #1{\if0\xintSgn{#1}\xint_afterfi{ 0}\else\xint_afterfi{ 1}\fi}%
-\def\xintIsOne {\romannumeral0\xintisone }%
-\def\xintisone #1{\expandafter\XINT_isone\romannumeral0\xintnum{#1}XY}%
-\def\xintOdd {\romannumeral0\xintodd }%
-\def\xintodd #1%
-{%
- \ifodd\xintLDg{\xintNum{#1}} %<- intentional space
- \xint_afterfi{ 1}%
- \else
- \xint_afterfi{ 0}%
- \fi
-}%
-\def\xintEven {\romannumeral0\xinteven }%
-\def\xinteven #1%
-{%
- \ifodd\xintLDg{\xintNum{#1}} %<- intentional space
- \xint_afterfi{ 0}%
- \else
- \xint_afterfi{ 1}%
- \fi
-}%
-\def\xintifSgn{\romannumeral0\xintifsgn }%
-\def\xintifsgn #1%
-{%
- \ifcase \xintSgn{#1}
- \expandafter\xint_secondofthree_thenstop
- \or\expandafter\xint_thirdofthree_thenstop
- \else\expandafter\xint_firstofthree_thenstop
- \fi
-}%
-\def\xintifCmp{\romannumeral0\xintifcmp }%
-\def\xintifcmp #1#2%
-{%
- \ifcase\xintCmp {#1}{#2}
- \expandafter\xint_secondofthree_thenstop
- \or\expandafter\xint_thirdofthree_thenstop
- \else\expandafter\xint_firstofthree_thenstop
- \fi
-}%
-\def\xintifEq {\romannumeral0\xintifeq }%
-\def\xintifeq #1#2%
-{%
- \if0\xintCmp{#1}{#2}%
- \expandafter\xint_firstoftwo_thenstop
- \else\expandafter\xint_secondoftwo_thenstop
- \fi
-}%
-\def\xintifGt {\romannumeral0\xintifgt }%
-\def\xintifgt #1#2%
-{%
- \if1\xintCmp{#1}{#2}%
- \expandafter\xint_firstoftwo_thenstop
- \else\expandafter\xint_secondoftwo_thenstop
- \fi
-}%
-\def\xintifLt {\romannumeral0\xintiflt }%
-\def\xintiflt #1#2%
-{%
- \ifnum\xintCmp{#1}{#2}<\xint_c_
- \expandafter\xint_firstoftwo_thenstop
- \else \expandafter\xint_secondoftwo_thenstop
- \fi
-}%
-\def\xintifZero {\romannumeral0\xintifzero }%
-\def\xintifzero #1%
-{%
- \if0\xintSgn{#1}%
- \expandafter\xint_firstoftwo_thenstop
- \else
- \expandafter\xint_secondoftwo_thenstop
- \fi
-}%
-\def\xintifNotZero{\romannumeral0\xintifnotzero }%
-\def\xintifnotzero #1%
-{%
- \if0\xintSgn{#1}%
- \expandafter\xint_secondoftwo_thenstop
- \else
- \expandafter\xint_firstoftwo_thenstop
- \fi
-}%
-\def\xintifOne {\romannumeral0\xintifone }%
-\def\xintifone #1%
-{%
- \if1\xintIsOne{#1}%
- \expandafter\xint_firstoftwo_thenstop
- \else
- \expandafter\xint_secondoftwo_thenstop
- \fi
-}%
-\def\xintifOdd {\romannumeral0\xintifodd }%
-\def\xintifodd #1%
-{%
- \if\xintOdd{#1}1%
- \expandafter\xint_firstoftwo_thenstop
- \else
- \expandafter\xint_secondoftwo_thenstop
- \fi
-}%
+ [2018/03/07 1.3a Expandable operations on fractions (JFB)]%
\def\XINT_cntSgnFork #1%
{%
\ifcase #1\expandafter\xint_secondofthree
@@ -367,98 +255,148 @@
{#3}{#1#2}%
}%
\def\XINT_frac_gen_zero 0#1#2#3{{0}{0}{1}}%
-\def\XINT_factortens #1%
-{%
- \expandafter\XINT_cuz_cnt_loop\expandafter
- {\expandafter}\romannumeral0\XINT_rord_main {}#1%
- \xint:
- \xint_bye\xint_bye\xint_bye\xint_bye
- \xint_bye\xint_bye\xint_bye\xint_bye
- \xint:
- \R\R\R\R\R\R\R\R\Z
-}%
-\def\XINT_cuz_cnt #1%
-{%
- \XINT_cuz_cnt_loop {}#1\R\R\R\R\R\R\R\R\Z
-}%
-\def\XINT_cuz_cnt_loop #1#2#3#4#5#6#7#8#9%
+\def\XINT_factortens #1{\expandafter\XINT_factortens_z
+ \romannumeral0\XINT_factortens_a#1%
+ \XINT_factortens_b123456789.}%
+\def\XINT_factortens_z.\XINT_factortens_y{ }%
+\def\XINT_factortens_a #1#2#3#4#5#6#7#8#9%
+ {\expandafter\XINT_factortens_x
+ \the\numexpr 1#1#2#3#4#5#6#7#8#9\XINT_factortens_a}%
+\def\XINT_factortens_b#1\XINT_factortens_a#2#3.%
+ {.\XINT_factortens_cc 000000000-#2.}%
+\def\XINT_factortens_x1#1.#2{#2#1}%
+\def\XINT_factortens_y{.\XINT_factortens_y}%
+\def\XINT_factortens_cc #1#2#3#4#5#6#7#8#9%
+ {\if#90\xint_dothis
+ {\expandafter\XINT_factortens_d\the\numexpr #8#7#6#5#4#3#2#1\relax
+ \xint_c_i 2345678.}\fi
+ \xint_orthat{\XINT_factortens_yy{#1#2#3#4#5#6#7#8#9}}}%
+\def\XINT_factortens_yy #1#2.{.\XINT_factortens_y#1.0.}%
+\def\XINT_factortens_c #1#2#3#4#5#6#7#8#9%
+ {\if#90\xint_dothis
+ {\expandafter\XINT_factortens_d\the\numexpr #8#7#6#5#4#3#2#1\relax
+ \xint_c_i 2345678.}\fi
+ \xint_orthat{.\XINT_factortens_y #1#2#3#4#5#6#7#8#9.}}%
+\def\XINT_factortens_d #1#2#3#4#5#6#7#8#9%
+ {\if#10\expandafter\XINT_factortens_e\fi
+ \XINT_factortens_f #9#9#8#7#6#5#4#3#2#1.}%
+\def\XINT_factortens_f #1#2\xint_c_i#3.#4.#5.%
+ {\expandafter\XINT_factortens_g\the\numexpr#1+#5.#3.}%
+\def\XINT_factortens_g #1.#2.{.\XINT_factortens_y#2.#1.}%
+\def\XINT_factortens_e #1..#2.%
+ {\expandafter.\expandafter\XINT_factortens_c
+ \the\numexpr\xint_c_ix+#2.}%
+\def\xintEq {\romannumeral0\xinteq }%
+\def\xinteq #1#2{\xintifeq{#1}{#2}{1}{0}}%
+\def\xintNotEq#1#2{\romannumeral0\xintifeq {#1}{#2}{0}{1}}%
+\def\xintGt {\romannumeral0\xintgt }%
+\def\xintgt #1#2{\xintifgt{#1}{#2}{1}{0}}%
+\def\xintLt {\romannumeral0\xintlt }%
+\def\xintlt #1#2{\xintiflt{#1}{#2}{1}{0}}%
+\def\xintGtorEq #1#2{\romannumeral0\xintiflt {#1}{#2}{0}{1}}%
+\def\xintLtorEq #1#2{\romannumeral0\xintifgt {#1}{#2}{0}{1}}%
+\def\xintIsZero {\romannumeral0\xintiszero }%
+\def\xintiszero #1{\if0\xintSgn{#1}\xint_afterfi{ 1}\else\xint_afterfi{ 0}\fi}%
+\def\xintIsNotZero{\romannumeral0\xintisnotzero }%
+\def\xintisnotzero
+ #1{\if0\xintSgn{#1}\xint_afterfi{ 0}\else\xint_afterfi{ 1}\fi}%
+\def\xintIsOne {\romannumeral0\xintisone }%
+\def\xintisone #1{\expandafter\XINT_isone\romannumeral0\xintnum{#1}XY}%
+\def\xintOdd {\romannumeral0\xintodd }%
+\def\xintodd #1%
{%
- \xint_gob_til_R #9\XINT_cuz_cnt_toofara \R
- \expandafter\XINT_cuz_cnt_checka\expandafter
- {\the\numexpr #1+8\relax}{#2#3#4#5#6#7#8#9}%
+ \ifodd\xintLDg{\xintNum{#1}} %<- intentional space
+ \xint_afterfi{ 1}%
+ \else
+ \xint_afterfi{ 0}%
+ \fi
}%
-\def\XINT_cuz_cnt_toofara\R
- \expandafter\XINT_cuz_cnt_checka\expandafter #1#2%
+\def\xintEven {\romannumeral0\xinteven }%
+\def\xinteven #1%
{%
- \XINT_cuz_cnt_toofarb {#1}#2%
+ \ifodd\xintLDg{\xintNum{#1}} %<- intentional space
+ \xint_afterfi{ 0}%
+ \else
+ \xint_afterfi{ 1}%
+ \fi
}%
-\def\XINT_cuz_cnt_toofarb #1#2\Z {\XINT_cuz_cnt_toofarc #2\Z {#1}}%
-\def\XINT_cuz_cnt_toofarc #1#2#3#4#5#6#7#8%
+\def\xintifSgn{\romannumeral0\xintifsgn }%
+\def\xintifsgn #1%
{%
- \xint_gob_til_R #2\XINT_cuz_cnt_toofard 7%
- #3\XINT_cuz_cnt_toofard 6%
- #4\XINT_cuz_cnt_toofard 5%
- #5\XINT_cuz_cnt_toofard 4%
- #6\XINT_cuz_cnt_toofard 3%
- #7\XINT_cuz_cnt_toofard 2%
- #8\XINT_cuz_cnt_toofard 1%
- \Z #1#2#3#4#5#6#7#8%
+ \ifcase \xintSgn{#1}
+ \expandafter\xint_secondofthree_thenstop
+ \or\expandafter\xint_thirdofthree_thenstop
+ \else\expandafter\xint_firstofthree_thenstop
+ \fi
}%
-\def\XINT_cuz_cnt_toofard #1#2\Z #3\R #4\Z #5%
+\def\xintifCmp{\romannumeral0\xintifcmp }%
+\def\xintifcmp #1#2%
{%
- \expandafter\XINT_cuz_cnt_toofare
- \the\numexpr #3\relax \R\R\R\R\R\R\R\R\Z
- {\the\numexpr #5-#1\relax}\R\Z
+ \ifcase\xintCmp {#1}{#2}
+ \expandafter\xint_secondofthree_thenstop
+ \or\expandafter\xint_thirdofthree_thenstop
+ \else\expandafter\xint_firstofthree_thenstop
+ \fi
}%
-\def\XINT_cuz_cnt_toofare #1#2#3#4#5#6#7#8%
+\def\xintifEq {\romannumeral0\xintifeq }%
+\def\xintifeq #1#2%
{%
- \xint_gob_til_R #2\XINT_cuz_cnt_stopc 1%
- #3\XINT_cuz_cnt_stopc 2%
- #4\XINT_cuz_cnt_stopc 3%
- #5\XINT_cuz_cnt_stopc 4%
- #6\XINT_cuz_cnt_stopc 5%
- #7\XINT_cuz_cnt_stopc 6%
- #8\XINT_cuz_cnt_stopc 7%
- \Z #1#2#3#4#5#6#7#8%
+ \if0\xintCmp{#1}{#2}%
+ \expandafter\xint_firstoftwo_thenstop
+ \else\expandafter\xint_secondoftwo_thenstop
+ \fi
}%
-\def\XINT_cuz_cnt_checka #1#2%
+\def\xintifGt {\romannumeral0\xintifgt }%
+\def\xintifgt #1#2%
{%
- \expandafter\XINT_cuz_cnt_checkb\the\numexpr #2\relax \Z {#1}%
+ \if1\xintCmp{#1}{#2}%
+ \expandafter\xint_firstoftwo_thenstop
+ \else\expandafter\xint_secondoftwo_thenstop
+ \fi
}%
-\def\XINT_cuz_cnt_checkb #1%
+\def\xintifLt {\romannumeral0\xintiflt }%
+\def\xintiflt #1#2%
{%
- \xint_gob_til_zero #1\expandafter\XINT_cuz_cnt_loop\xint_gob_til_Z
- 0\XINT_cuz_cnt_stopa #1%
+ \ifnum\xintCmp{#1}{#2}<\xint_c_
+ \expandafter\xint_firstoftwo_thenstop
+ \else \expandafter\xint_secondoftwo_thenstop
+ \fi
}%
-\def\XINT_cuz_cnt_stopa #1\Z
+\def\xintifZero {\romannumeral0\xintifzero }%
+\def\xintifzero #1%
{%
- \XINT_cuz_cnt_stopb #1\R\R\R\R\R\R\R\R\Z %
+ \if0\xintSgn{#1}%
+ \expandafter\xint_firstoftwo_thenstop
+ \else
+ \expandafter\xint_secondoftwo_thenstop
+ \fi
}%
-\def\XINT_cuz_cnt_stopb #1#2#3#4#5#6#7#8#9%
+\def\xintifNotZero{\romannumeral0\xintifnotzero }%
+\def\xintifnotzero #1%
{%
- \xint_gob_til_R #2\XINT_cuz_cnt_stopc 1%
- #3\XINT_cuz_cnt_stopc 2%
- #4\XINT_cuz_cnt_stopc 3%
- #5\XINT_cuz_cnt_stopc 4%
- #6\XINT_cuz_cnt_stopc 5%
- #7\XINT_cuz_cnt_stopc 6%
- #8\XINT_cuz_cnt_stopc 7%
- #9\XINT_cuz_cnt_stopc 8%
- \Z #1#2#3#4#5#6#7#8#9%
+ \if0\xintSgn{#1}%
+ \expandafter\xint_secondoftwo_thenstop
+ \else
+ \expandafter\xint_firstoftwo_thenstop
+ \fi
}%
-\def\XINT_cuz_cnt_stopc #1#2\Z #3\R #4\Z #5%
+\def\xintifOne {\romannumeral0\xintifone }%
+\def\xintifone #1%
{%
- \expandafter\XINT_cuz_cnt_stopd\expandafter
- {\the\numexpr #5-#1}#3%
+ \if1\xintIsOne{#1}%
+ \expandafter\xint_firstoftwo_thenstop
+ \else
+ \expandafter\xint_secondoftwo_thenstop
+ \fi
}%
-\def\XINT_cuz_cnt_stopd #1#2\R #3\Z
+\def\xintifOdd {\romannumeral0\xintifodd }%
+\def\xintifodd #1%
{%
- \expandafter\space\expandafter
- {\romannumeral0\XINT_rord_main {}#2%
- \xint:
- \xint_bye\xint_bye\xint_bye\xint_bye
- \xint_bye\xint_bye\xint_bye\xint_bye
- \xint:}{#1}%
+ \if\xintOdd{#1}1%
+ \expandafter\xint_firstoftwo_thenstop
+ \else
+ \expandafter\xint_secondoftwo_thenstop
+ \fi
}%
\def\xintRaw {\romannumeral0\xintraw }%
\def\xintraw
@@ -689,16 +627,15 @@
{%
\expandafter\XINT_rez_C\romannumeral0\XINT_factortens {#1}%
}%
-\def\XINT_rez_C #1#2#3#4%
+\def\XINT_rez_C #1.#2.#3#4%
{%
- \expandafter\XINT_rez_D\romannumeral0\XINT_factortens {#4}{#3}{#2}{#1}%
+ \expandafter\XINT_rez_D\romannumeral0\XINT_factortens {#4}#3+#2.#1.%
}%
-\def\XINT_rez_D #1#2#3#4#5%
+\def\XINT_rez_D #1.#2.#3.%
{%
- \expandafter\XINT_rez_E\expandafter
- {\the\numexpr #3+#4-#2}{#1}{#5}%
+ \expandafter\XINT_rez_E\the\numexpr #3-#2.#1.%
}%
-\def\XINT_rez_E #1#2#3{ #3/#2[#1]}%
+\def\XINT_rez_E #1.#2.#3.{ #3/#2[#1]}%
\def\xintE {\romannumeral0\xinte }%
\def\xinte #1%
{%
@@ -3276,17 +3213,15 @@
{#1}%
}%
\def\XINT_infloatdivmod #1#2#3{ #1,\XINTinFloat[#3]{#2}}%
-\ifdefined\documentclass\ifdefined\AtEndDocument
- \AtEndDocument{%
-\XINT_ifFlagRaised{Deprecated-xintfrac}%
- {\PackageError{xintfrac}
-{Usage of deprecated macros!}
-{This deprecated macro from xintfrac.sty has been detected:\MessageBreak
-\string\xintNeq\space(use \string\xintNotEq\space or xint's \string\xintiiNotEq!)\MessageBreak
-This is impossible as it has been removed at 1.3!}}%
- {% no deprecated macro used (at top level...)
- }%
-}\fi\fi
+\def\xintifFloatInt {\romannumeral0\xintiffloatint}%
+\def\xintiffloatint #1{\expandafter\XINT_iffloatint
+ \romannumeral0\xintrez{\XINTinFloat[\XINTdigits]{#1}}}%
+\def\XINT_iffloatint #1#2/1[#3]%
+{%
+ \if 0#1\xint_dothis\xint_firstoftwo_thenstop\fi
+ \ifnum#3<\xint_c_\xint_dothis\xint_secondoftwo_thenstop\fi
+ \xint_orthat\xint_firstoftwo_thenstop
+}%
\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 d9afbfbdaff..43a1c1c3ee8 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.3 2018/03/01
+%% The xint bundle 1.3a 2018/03/07
%% Copyright (C) 2013-2018 by Jean-Francois Burnol
%% xintgcd: Euclidean algorithm with xint package
%% ---------------------------------------------------------------
@@ -70,7 +70,7 @@
\XINTsetupcatcodes% defined in xintkernel.sty
\XINT_providespackage
\ProvidesPackage{xintgcd}%
- [2018/03/01 1.3 Euclide algorithm with xint package (JFB)]%
+ [2018/03/07 1.3a 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 480de731557..56066d5fabe 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.3 2018/03/01
+%% The xint bundle 1.3a 2018/03/07
%% Copyright (C) 2013-2018 by Jean-Francois Burnol
%% xintkernel: Paraphernalia for the xint packages
%% ---------------------------------------------------------------
@@ -156,7 +156,7 @@
\fi
\XINT_providespackage
\ProvidesPackage {xintkernel}%
- [2018/03/01 1.3 Paraphernalia for the xint packages (JFB)]%
+ [2018/03/07 1.3a 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/xintseries.sty b/Master/texmf-dist/tex/generic/xint/xintseries.sty
index f6b41030087..df418b8d4ab 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.3 2018/03/01
+%% The xint bundle 1.3a 2018/03/07
%% Copyright (C) 2013-2018 by Jean-Francois Burnol
%% xintseries: Expandable partial sums with xint package
%% ---------------------------------------------------------------
@@ -70,7 +70,7 @@
\XINTsetupcatcodes% defined in xintkernel.sty
\XINT_providespackage
\ProvidesPackage{xintseries}%
- [2018/03/01 1.3 Expandable partial sums with xint package (JFB)]%
+ [2018/03/07 1.3a 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 3909f0a056a..6143680afb8 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.3 2018/03/01
+%% The xint bundle 1.3a 2018/03/07
%% Copyright (C) 2013-2018 by Jean-Francois Burnol
%% xinttools: Expandable and non-expandable utilities
%% ---------------------------------------------------------------
@@ -70,7 +70,7 @@
\XINTsetupcatcodes% defined in xintkernel.sty
\XINT_providespackage
\ProvidesPackage{xinttools}%
- [2018/03/01 1.3 Expandable and non-expandable utilities (JFB)]%
+ [2018/03/07 1.3a Expandable and non-expandable utilities (JFB)]%
\newtoks\XINT_toks
\xint_firstofone{\let\XINT_sptoken= } %<- space here!
\def\xintgodef {\global\xintodef }%
@@ -1143,6 +1143,8 @@
}%
}%
\let\xintDigitsOf\xintAssignArray
+\def\xintExpandArgs#1#2{\csname #1\expandafter\endcsname
+ \romannumeral0\xintapply\xint_firstofone{#2}}%
\def\xintLength:f:csv {\romannumeral0\xintlength:f:csv}%
\def\xintlength:f:csv #1%
{\long\def\xintlength:f:csv ##1{%