diff options
author | Karl Berry <karl@freefriends.org> | 2018-03-07 21:47:21 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2018-03-07 21:47:21 +0000 |
commit | c5ba7c59f808b748529b8c2addcff69f25fe522c (patch) | |
tree | 0830268a3cce8e423c0d944cf8af6b340a159264 /Master/texmf-dist/tex/generic/xint | |
parent | e8a6f616cd986e7153073484150a7bb260e86a06 (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.sty | 49 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/xint/xintbinhex.sty | 4 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/xint/xintcfrac.sty | 4 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/xint/xintcore.sty | 40 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/xint/xintexpr.sty | 96 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/xint/xintfrac.sty | 339 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/xint/xintgcd.sty | 4 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/xint/xintkernel.sty | 4 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/xint/xintseries.sty | 4 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/xint/xinttools.sty | 6 |
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{% |