From 96aac111c7824c49a05e48fdbb2a1eba6313d062 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Wed, 30 Aug 2017 23:00:58 +0000 Subject: xint (30aug17) git-svn-id: svn://tug.org/texlive/trunk@45177 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/tex/generic/xint/xint.sty | 1230 +++++++++++---------- Master/texmf-dist/tex/generic/xint/xintbinhex.sty | 55 +- Master/texmf-dist/tex/generic/xint/xintcfrac.sty | 8 +- Master/texmf-dist/tex/generic/xint/xintcore.sty | 150 ++- Master/texmf-dist/tex/generic/xint/xintexpr.sty | 26 +- Master/texmf-dist/tex/generic/xint/xintfrac.sty | 64 +- Master/texmf-dist/tex/generic/xint/xintgcd.sty | 4 +- Master/texmf-dist/tex/generic/xint/xintkernel.sty | 4 +- Master/texmf-dist/tex/generic/xint/xintseries.sty | 4 +- Master/texmf-dist/tex/generic/xint/xinttools.sty | 4 +- 10 files changed, 823 insertions(+), 726 deletions(-) (limited to 'Master/texmf-dist/tex/generic/xint') diff --git a/Master/texmf-dist/tex/generic/xint/xint.sty b/Master/texmf-dist/tex/generic/xint/xint.sty index 0b4ddd99c34..3cbe8373d14 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.2n 2017/08/06 +%% The xint bundle 1.2o 2017/08/29 %% Copyright (C) 2013-2017 by Jean-Francois Burnol %% xint: Expandable operations on big integers %% --------------------------------------------------------------- @@ -70,37 +70,27 @@ \XINTsetupcatcodes% defined in xintkernel.sty (loaded by xintcore.sty) \XINT_providespackage \ProvidesPackage{xint}% - [2017/08/06 1.2n Expandable operations on big integers (JFB)]% + [2017/08/29 1.2o 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}% \long\def\xint_firstofthree_thenstop #1#2#3{ #1}% 1.09i \long\def\xint_secondofthree_thenstop #1#2#3{ #2}% \long\def\xint_thirdofthree_thenstop #1#2#3{ #3}% -\def\xintSgnFork {\romannumeral0\xintsgnfork }% -\def\xintsgnfork #1% -{% - \ifcase #1 \expandafter\xint_secondofthree_thenstop - \or\expandafter\xint_thirdofthree_thenstop - \else\expandafter\xint_firstofthree_thenstop - \fi -}% -\def\xintiiIsOne {\romannumeral0\xintiiisone }% -\def\xintiiisone #1{\expandafter\XINT_isone\romannumeral`&&@#1XY}% -\def\xintIsOne {\romannumeral0\xintisone }% -\def\xintisone #1{\expandafter\XINT_isone\romannumeral0\xintnum{#1}XY}% -\def\XINT_isone #1#2#3Y% +\def\xintiLen {\romannumeral0\xintilen }% +\def\xintilen #1{\def\xintilen ##1% {% - \unless\if#2X\xint_dothis{ 0}\fi - \unless\if#11\xint_dothis{ 0}\fi - \xint_orthat{ 1}% -}% -\def\XINT_isOne #1{\XINT_is_One#1XY}% -\def\XINT_is_One #1#2#3Y% + \expandafter#1\the\numexpr + \expandafter\XINT_len_fork\romannumeral0\xintinum{##1}% + \xint:\xint:\xint:\xint:\xint:\xint:\xint:\xint:\xint: + \xint_c_viii\xint_c_vii\xint_c_vi\xint_c_v + \xint_c_iv\xint_c_iii\xint_c_ii\xint_c_i\xint_c_\xint_bye\relax +}}\xintilen{ }% +\def\xintLen {\romannumeral0\xintlen }% +\let\xintlen\xintilen +\def\XINT_len_fork #1% {% - \unless\if#2X\xint_dothis0\fi - \unless\if#11\xint_dothis0\fi - \xint_orthat1% + \expandafter\XINT_length_loop\xint_UDsignfork#1{}-#1\krof }% \def\xintReverseDigits {\romannumeral0\xintreversedigits }% \def\xintreversedigits #1% @@ -139,249 +129,219 @@ {\expandafter#1\xint_gob_til_Z ##1}% }\XINT_revdigits_end{ }% \let\xintRev\xintReverseDigits -\def\xintLen {\romannumeral0\xintlen }% -\def\xintlen #1{\def\xintlen ##1% -{% - \expandafter#1\the\numexpr - \expandafter\XINT_len_fork\romannumeral0\xintnum{##1}% - \xint:\xint:\xint:\xint:\xint:\xint:\xint:\xint:\xint: - \xint_c_viii\xint_c_vii\xint_c_vi\xint_c_v - \xint_c_iv\xint_c_iii\xint_c_ii\xint_c_i\xint_c_\xint_bye\relax -}}\xintlen{ }% -\def\XINT_len_fork #1% +%%รท Used in \xintMod +\def\xintiiE {\romannumeral0\xintiie }% +\def\xintiie #1#2% + {\expandafter\XINT_iie_fork\the\numexpr #2\expandafter.\romannumeral`&&@#1;}% +\def\XINT_iie_fork #1% {% - \expandafter\XINT_length_loop\xint_UDsignfork#1{}-#1\krof + \xint_UDsignfork + #1\XINT_iie_neg + -\XINT_iie_a + \krof #1% }% -\def\xintBool #1{\romannumeral`&&@% - \csname if#1\endcsname\expandafter1\else\expandafter0\fi }% -\def\xintToggle #1{\romannumeral`&&@\iftoggle{#1}{1}{0}}% -\def\xintifSgn {\romannumeral0\xintifsgn }% -\def\xintifsgn #1% +\def\XINT_iie_a #1.% + {\expandafter\XINT_dsx_append\romannumeral\XINT_rep #1\endcsname 0.}% +\def\XINT_iie_neg #1.#2;{ #2}% +\def\xintDecSplit {\romannumeral0\xintdecsplit }% +\def\xintdecsplit #1#2% {% - \ifcase \xintSgn{#1} - \expandafter\xint_secondofthree_thenstop - \or\expandafter\xint_thirdofthree_thenstop - \else\expandafter\xint_firstofthree_thenstop - \fi + \expandafter\XINT_split_finish + \romannumeral0\expandafter\XINT_split_xfork + \the\numexpr #1\expandafter.\romannumeral`&&@#2% + \xint_bye2345678\xint_bye..% }% -\def\xintiiifSgn {\romannumeral0\xintiiifsgn }% -\def\xintiiifsgn #1% +\def\XINT_split_finish #1.#2.{{#1}{#2}}% +\def\XINT_split_xfork #1% {% - \ifcase \xintiiSgn{#1} - \expandafter\xint_secondofthree_thenstop - \or\expandafter\xint_thirdofthree_thenstop - \else\expandafter\xint_firstofthree_thenstop - \fi + \xint_UDzerominusfork + #1-\XINT_split_zerosplit + 0#1\XINT_split_fromleft + 0-{\XINT_split_fromright #1}% + \krof }% -\def\xintifZero {\romannumeral0\xintifzero }% -\def\xintifzero #1% +\def\XINT_split_zerosplit .#1\xint_bye#2\xint_bye..{ #1..}% +\def\XINT_split_fromleft + {\expandafter\XINT_split_fromleft_a\the\numexpr\xint_c_viii-}% +\def\XINT_split_fromleft_a #1% {% - \if0\xintSgn{#1}% - \expandafter\xint_firstoftwo_thenstop - \else - \expandafter\xint_secondoftwo_thenstop - \fi + \xint_UDsignfork + #1\XINT_split_fromleft_b + -{\XINT_split_fromleft_end_a #1}% + \krof }% -\def\xintifNotZero {\romannumeral0\xintifnotzero }% -\def\xintifnotzero #1% +\def\XINT_split_fromleft_b #1.#2#3#4#5#6#7#8#9% {% - \if0\xintSgn{#1}% - \expandafter\xint_secondoftwo_thenstop - \else - \expandafter\xint_firstoftwo_thenstop - \fi + \expandafter\XINT_split_fromleft_clean + \the\numexpr1#2#3#4#5#6#7#8#9\expandafter + \XINT_split_fromleft_a\the\numexpr\xint_c_viii-#1.% }% -\def\xintiiifZero {\romannumeral0\xintiiifzero }% -\def\xintiiifzero #1% +\def\XINT_split_fromleft_end_a #1.% {% - \if0\xintiiSgn{#1}% - \expandafter\xint_firstoftwo_thenstop - \else - \expandafter\xint_secondoftwo_thenstop - \fi + \expandafter\XINT_split_fromleft_clean + \the\numexpr1\csname XINT_split_fromleft_end#1\endcsname }% -\def\xintiiifNotZero {\romannumeral0\xintiiifnotzero }% -\def\xintiiifnotzero #1% +\def\XINT_split_fromleft_clean 1{ }% +\expandafter\def\csname XINT_split_fromleft_end7\endcsname #1% + {#1\XINT_split_fromleft_end_b}% +\expandafter\def\csname XINT_split_fromleft_end6\endcsname #1#2% + {#1#2\XINT_split_fromleft_end_b}% +\expandafter\def\csname XINT_split_fromleft_end5\endcsname #1#2#3% + {#1#2#3\XINT_split_fromleft_end_b}% +\expandafter\def\csname XINT_split_fromleft_end4\endcsname #1#2#3#4% + {#1#2#3#4\XINT_split_fromleft_end_b}% +\expandafter\def\csname XINT_split_fromleft_end3\endcsname #1#2#3#4#5% + {#1#2#3#4#5\XINT_split_fromleft_end_b}% +\expandafter\def\csname XINT_split_fromleft_end2\endcsname #1#2#3#4#5#6% + {#1#2#3#4#5#6\XINT_split_fromleft_end_b}% +\expandafter\def\csname XINT_split_fromleft_end1\endcsname #1#2#3#4#5#6#7% + {#1#2#3#4#5#6#7\XINT_split_fromleft_end_b}% +\expandafter\def\csname XINT_split_fromleft_end0\endcsname #1#2#3#4#5#6#7#8% + {#1#2#3#4#5#6#7#8\XINT_split_fromleft_end_b}% +\def\XINT_split_fromleft_end_b #1\xint_bye#2\xint_bye.{.#1}% puis . +\def\XINT_split_fromright #1.#2\xint_bye {% - \if0\xintiiSgn{#1}% - \expandafter\xint_secondoftwo_thenstop - \else - \expandafter\xint_firstoftwo_thenstop - \fi + \expandafter\XINT_split_fromright_a + \the\numexpr#1-\numexpr\XINT_length_loop + #2\xint:\xint:\xint:\xint:\xint:\xint:\xint:\xint:\xint: + \xint_c_viii\xint_c_vii\xint_c_vi\xint_c_v + \xint_c_iv\xint_c_iii\xint_c_ii\xint_c_i\xint_c_\xint_bye + .#2\xint_bye }% -\def\xintiiifOne {\romannumeral0\xintiiifone }% -\def\xintiiifone #1% +\def\XINT_split_fromright_a #1% {% - \if1\xintiiIsOne{#1}% - \expandafter\xint_firstoftwo_thenstop - \else - \expandafter\xint_secondoftwo_thenstop - \fi + \xint_UDsignfork + #1\XINT_split_fromleft + -\XINT_split_fromright_Lempty + \krof }% -\def\xintifOne {\romannumeral0\xintifone }% -\def\xintifone #1% +\def\XINT_split_fromright_Lempty #1.#2\xint_bye#3..{.#2.}% +\def\xintDecSplitL {\romannumeral0\xintdecsplitl }% +\def\xintdecsplitl #1#2% {% - \if1\xintIsOne{#1}% - \expandafter\xint_firstoftwo_thenstop - \else - \expandafter\xint_secondoftwo_thenstop - \fi + \expandafter\XINT_splitl_finish + \romannumeral0\expandafter\XINT_split_xfork + \the\numexpr #1\expandafter.\romannumeral`&&@#2% + \xint_bye2345678\xint_bye..% }% -\let\xintifTrueAelseB\xintifNotZero -\let\xintifFalseAelseB\xintifZero -%%\let\xintifTrue\xintifNotZero % now removed -%%\let\xintifTrueFalse\xintifNotZero % now removed -\def\xintifCmp {\romannumeral0\xintifcmp }% -\def\xintifcmp #1#2% +\def\XINT_splitl_finish #1.#2.{ #1}% +\def\xintDecSplitR {\romannumeral0\xintdecsplitr }% +\def\xintdecsplitr #1#2% {% - \ifcase\xintCmp {#1}{#2} - \expandafter\xint_secondofthree_thenstop - \or\expandafter\xint_thirdofthree_thenstop - \else\expandafter\xint_firstofthree_thenstop - \fi + \expandafter\XINT_splitr_finish + \romannumeral0\expandafter\XINT_split_xfork + \the\numexpr #1\expandafter.\romannumeral`&&@#2% + \xint_bye2345678\xint_bye..% }% -\def\xintiiifCmp {\romannumeral0\xintiiifcmp }% -\def\xintiiifcmp #1#2% +\def\XINT_splitr_finish #1.#2.{ #2}% +\def\xintDSHr {\romannumeral0\xintdshr }% +\def\xintdshr #1#2% {% - \ifcase\xintiiCmp {#1}{#2} - \expandafter\xint_secondofthree_thenstop - \or\expandafter\xint_thirdofthree_thenstop - \else\expandafter\xint_firstofthree_thenstop - \fi + \expandafter\XINT_dshr_fork\the\numexpr#1\expandafter.\romannumeral`&&@#2;% }% -\def\xintifEq {\romannumeral0\xintifeq }% -\def\xintifeq #1#2% +\def\XINT_dshr_fork #1% {% - \if0\xintCmp{#1}{#2}% - \expandafter\xint_firstoftwo_thenstop - \else\expandafter\xint_secondoftwo_thenstop - \fi + \xint_UDzerominusfork + 0#1\XINT_dshr_xzeroorneg + #1-\XINT_dshr_xzeroorneg + 0-\XINT_dshr_xpositive + \krof #1% }% -\def\xintiiifEq {\romannumeral0\xintiiifeq }% -\def\xintiiifeq #1#2% +\def\XINT_dshr_xzeroorneg #1;{ 0}% +\def\XINT_dshr_xpositive {% - \if0\xintiiCmp{#1}{#2}% - \expandafter\xint_firstoftwo_thenstop - \else\expandafter\xint_secondoftwo_thenstop - \fi + \expandafter\xint_secondoftwo_thenstop\romannumeral0\XINT_dsx_xisPos }% -\def\xintifGt {\romannumeral0\xintifgt }% -\def\xintifgt #1#2% +\def\xintDSH {\romannumeral0\xintdsh }% +\def\xintdsh #1#2% {% - \if1\xintCmp{#1}{#2}% - \expandafter\xint_firstoftwo_thenstop - \else\expandafter\xint_secondoftwo_thenstop - \fi + \expandafter\XINT_dsh_fork\the\numexpr#1\expandafter.\romannumeral`&&@#2;% }% -\def\xintiiifGt {\romannumeral0\xintiiifgt }% -\def\xintiiifgt #1#2% +\def\XINT_dsh_fork #1% {% - \if1\xintiiCmp{#1}{#2}% - \expandafter\xint_firstoftwo_thenstop - \else\expandafter\xint_secondoftwo_thenstop - \fi + \xint_UDzerominusfork + #1-\XINT_dsh_xiszero + 0#1\XINT_dsx_xisNeg_checkA + 0-{\XINT_dsh_xisPos #1}% + \krof }% -\def\xintifLt {\romannumeral0\xintiflt }% -\def\xintiflt #1#2% +\def\XINT_dsh_xiszero #1.#2;{ #2}% +\def\XINT_dsh_xisPos {% - \ifnum\xintCmp{#1}{#2}<\xint_c_ - \expandafter\xint_firstoftwo_thenstop - \else \expandafter\xint_secondoftwo_thenstop - \fi + \expandafter\xint_firstoftwo_thenstop\romannumeral0\XINT_dsx_xisPos }% -\def\xintiiifLt {\romannumeral0\xintiiiflt }% -\def\xintiiiflt #1#2% +\def\xintDSx {\romannumeral0\xintdsx }% +\def\xintdsx #1#2% {% - \ifnum\xintiiCmp{#1}{#2}<\xint_c_ - \expandafter\xint_firstoftwo_thenstop - \else \expandafter\xint_secondoftwo_thenstop - \fi + \expandafter\XINT_dsx_fork\the\numexpr#1\expandafter.\romannumeral`&&@#2;% }% -\def\xintiiifOdd {\romannumeral0\xintiiifodd }% -\def\xintiiifodd #1% +\def\XINT_dsx_fork #1% {% - \if\xintiiOdd{#1}1% - \expandafter\xint_firstoftwo_thenstop - \else - \expandafter\xint_secondoftwo_thenstop - \fi -}% -\def\xintifOdd {\romannumeral0\xintifodd }% -\def\xintifodd #1% + \xint_UDzerominusfork + #1-\XINT_dsx_xisZero + 0#1\XINT_dsx_xisNeg_checkA + 0-{\XINT_dsx_xisPos #1}% + \krof +}% +\def\XINT_dsx_xisZero #1.#2;{{#2}{0}}% +\def\XINT_dsx_xisNeg_checkA #1.#2% {% - \if\xintOdd{#1}1% - \expandafter\xint_firstoftwo_thenstop - \else - \expandafter\xint_secondoftwo_thenstop - \fi + \xint_gob_til_zero #2\XINT_dsx_xisNeg_Azero 0% + \expandafter\XINT_dsx_append\romannumeral\XINT_rep #1\endcsname 0.#2% +}% +\def\XINT_dsx_xisNeg_Azero #1;{ 0}% +\def\XINT_dsx_addzeros #1% + {\expandafter\XINT_dsx_append\romannumeral\XINT_rep#1\endcsname0.}% +\def\XINT_dsx_addzerosnofuss #1% + {\expandafter\XINT_dsx_append\romannumeral\xintreplicate{#1}0.}% +\def\XINT_dsx_append #1.#2;{ #2#1}% +\def\XINT_dsx_xisPos #1.#2% +{% + \xint_UDzerominusfork + #2-\XINT_dsx_AisZero + 0#2\XINT_dsx_AisNeg + 0-\XINT_dsx_AisPos + \krof #1.#2% +}% +\def\XINT_dsx_AisZero #1;{{0}{0}}% +\def\XINT_dsx_AisNeg #1.-#2;% +{% + \expandafter\XINT_dsx_AisNeg_checkiffirstempty + \romannumeral0\XINT_split_xfork #1.#2\xint_bye2345678\xint_bye..% +}% +\def\XINT_dsx_AisNeg_checkiffirstempty #1% +{% + \xint_gob_til_dot #1\XINT_dsx_AisNeg_finish_zero.% + \XINT_dsx_AisNeg_finish_notzero #1% +}% +\def\XINT_dsx_AisNeg_finish_zero.\XINT_dsx_AisNeg_finish_notzero.#1.% +{% + \expandafter\XINT_dsx_end + \expandafter {\romannumeral0\XINT_num {-#1}}{0}% +}% +\def\XINT_dsx_AisNeg_finish_notzero #1.#2.% +{% + \expandafter\XINT_dsx_end + \expandafter {\romannumeral0\XINT_num {#2}}{-#1}% +}% +\def\XINT_dsx_AisPos #1.#2;% +{% + \expandafter\XINT_dsx_AisPos_finish + \romannumeral0\XINT_split_xfork #1.#2\xint_bye2345678\xint_bye..% }% -\def\xintEq {\romannumeral0\xinteq }\def\xinteq #1#2{\xintifeq{#1}{#2}{1}{0}}% -\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\xintLtorEq #1#2{\romannumeral0\xintifgt {#1}{#2}{0}{1}}% -\def\xintGtorEq #1#2{\romannumeral0\xintiflt {#1}{#2}{0}{1}}% -\def\xintNeq #1#2{\romannumeral0\xintifeq {#1}{#2}{0}{1}}% +\def\XINT_dsx_AisPos_finish #1.#2.% +{% + \expandafter\XINT_dsx_end + \expandafter {\romannumeral0\XINT_num {#2}}% + {\romannumeral0\XINT_num {#1}}% +}% +\def\XINT_dsx_end #1#2{\expandafter{#2}{#1}}% +\def\xintEq {\romannumeral0\XINT_signaldeprecated{xint}{xintEq}\xinteq }% +\def\xinteq #1#2{\xintifeq{#1}{#2}{1}{0}}% \def\xintiiEq #1#2{\romannumeral0\xintiiifeq{#1}{#2}{1}{0}}% -\def\xintiiGt #1#2{\romannumeral0\xintiiifgt{#1}{#2}{1}{0}}% -\def\xintiiLt #1#2{\romannumeral0\xintiiiflt{#1}{#2}{1}{0}}% -\def\xintiiLtorEq #1#2{\romannumeral0\xintiiifgt {#1}{#2}{0}{1}}% -\def\xintiiGtorEq #1#2{\romannumeral0\xintiiiflt {#1}{#2}{0}{1}}% -\def\xintiiNeq #1#2{\romannumeral0\xintiiifeq {#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\xintiiIsZero {\romannumeral0\xintiiiszero }% -\def\xintiiiszero #1{\if0\xintiiSgn{#1}\xint_afterfi{ 1}\else\xint_afterfi{ 0}\fi}% -\def\xintiiIsNotZero {\romannumeral0\xintiiisnotzero }% -\def\xintiiisnotzero - #1{\if0\xintiiSgn{#1}\xint_afterfi{ 0}\else\xint_afterfi{ 1}\fi}% -\let\xintIsTrue\xintIsNotZero -\let\xintNot\xintIsZero -\let\xintIsFalse\xintIsZero -\def\xintAND {\romannumeral0\xintand }% -\def\xintand #1#2{\if0\xintSgn{#1}\expandafter\xint_firstoftwo - \else\expandafter\xint_secondoftwo\fi - { 0}{\xintisnotzero{#2}}}% -\def\xintOR {\romannumeral0\xintor }% -\def\xintor #1#2{\if0\xintSgn{#1}\expandafter\xint_firstoftwo - \else\expandafter\xint_secondoftwo\fi - {\xintisnotzero{#2}}{ 1}}% -\def\xintXOR {\romannumeral0\xintxor }% -\def\xintxor #1#2{\if\xintIsZero{#1}\xintIsZero{#2}% - \xint_afterfi{ 0}\else\xint_afterfi{ 1}\fi }% -\def\xintANDof {\romannumeral0\xintandof }% -\def\xintandof #1{\expandafter\XINT_andof_a\romannumeral`&&@#1\xint:}% -\def\XINT_andof_a #1{\expandafter\XINT_andof_b\romannumeral`&&@#1!}% -\def\XINT_andof_b #1% - {\xint_gob_til_xint: #1\XINT_andof_e\xint:\XINT_andof_c #1}% -\def\XINT_andof_c #1!% - {\xintifTrueAelseB {#1}{\XINT_andof_a}{\XINT_andof_no}}% -\def\XINT_andof_no #1\xint:{ 0}% -\def\XINT_andof_e #1!{ 1}% -\def\xintORof {\romannumeral0\xintorof }% -\def\xintorof #1{\expandafter\XINT_orof_a\romannumeral`&&@#1\xint:}% -\def\XINT_orof_a #1{\expandafter\XINT_orof_b\romannumeral`&&@#1!}% -\def\XINT_orof_b #1% - {\xint_gob_til_xint: #1\XINT_orof_e\xint:\XINT_orof_c #1}% -\def\XINT_orof_c #1!% - {\xintifTrueAelseB {#1}{\XINT_orof_yes}{\XINT_orof_a}}% -\def\XINT_orof_yes #1\xint:{ 1}% -\def\XINT_orof_e #1!{ 0}% -\def\xintXORof {\romannumeral0\xintxorof }% -\def\xintxorof #1{\expandafter\XINT_xorof_a\expandafter - 0\romannumeral`&&@#1\xint:}% -\def\XINT_xorof_a #1#2{\expandafter\XINT_xorof_b\romannumeral`&&@#2!#1}% -\def\XINT_xorof_b #1% - {\xint_gob_til_xint: #1\XINT_xorof_e\xint:\XINT_xorof_c #1}% -\def\XINT_xorof_c #1!#2% - {\xintifTrueAelseB {#1}{\if #20\xint_afterfi{\XINT_xorof_a 1}% - \else\xint_afterfi{\XINT_xorof_a 0}\fi}% - {\XINT_xorof_a #2}% - }% -\def\XINT_xorof_e #1!#2{ #2}% -\def\xintGeq {\romannumeral0\xintgeq }% +\def\xintNeq #1#2{\romannumeral0\XINT_signaldeprecated{xint}{xintNeq}\xintifeq {#1}{#2}{0}{1}}% +\def\xintiiNotEq #1#2{\romannumeral0\xintiiifeq {#1}{#2}{0}{1}}% +\def\xintGeq {\romannumeral0\XINT_signaldeprecated{xint}{xintGeq}\xintgeq }% \def\xintgeq #1{\expandafter\XINT_geq\romannumeral0\xintnum{#1}\xint:}% \def\xintiiGeq {\romannumeral0\xintiigeq }% \def\xintiigeq #1{\expandafter\XINT_iigeq\romannumeral`&&@#1\xint:}% @@ -419,447 +379,489 @@ \else\expandafter\XINT_geq_yes\fi}% \def\XINT_geq_no 1{ 0}% \def\XINT_geq_yes { 1}% -\def\xintiMax {\romannumeral0\xintimax }% -\def\xintimax #1% +\def\xintGt {\romannumeral0\XINT_signaldeprecated{xint}{xintGt}\xintgt }% +\def\xintgt #1#2{\xintifgt{#1}{#2}{1}{0}}% +\def\xintiiGt #1#2{\romannumeral0\xintiiifgt{#1}{#2}{1}{0}}% +\def\xintLt {\romannumeral0\XINT_signaldeprecated{xint}{xintLt}\xintlt }% +\def\xintlt #1#2{\xintiflt{#1}{#2}{1}{0}}% +\def\xintiiLt #1#2{\romannumeral0\xintiiiflt{#1}{#2}{1}{0}}% +\def\xintGtorEq #1#2{\romannumeral0\XINT_signaldeprecated{xint}{xintGtorEq}\xintiflt {#1}{#2}{0}{1}}% +\def\xintiiGtorEq #1#2{\romannumeral0\xintiiiflt {#1}{#2}{0}{1}}% +\def\xintLtorEq #1#2{\romannumeral0\XINT_signaldeprecated{xint}{xintLtorEq}\xintifgt {#1}{#2}{0}{1}}% +\def\xintiiLtorEq #1#2{\romannumeral0\xintiiifgt {#1}{#2}{0}{1}}% +\def\xintIsZero {\romannumeral0\XINT_signaldeprecated{xint}{xintIsZero}\xintiszero }% +\def\xintiszero #1{\if0\xintSgn{#1}\xint_afterfi{ 1}\else\xint_afterfi{ 0}\fi}% +\def\xintiiIsZero {\romannumeral0\xintiiiszero }% +\def\xintiiiszero #1{\if0\xintiiSgn{#1}\xint_afterfi{ 1}\else\xint_afterfi{ 0}\fi}% +\def\xintIsNotZero {\romannumeral0\XINT_signaldeprecated{xint}{xintIsNotZero}\xintisnotzero }% +\def\xintisnotzero + #1{\if0\xintSgn{#1}\xint_afterfi{ 0}\else\xint_afterfi{ 1}\fi}% +\def\xintiiIsNotZero {\romannumeral0\xintiiisnotzero }% +\def\xintiiisnotzero + #1{\if0\xintiiSgn{#1}\xint_afterfi{ 0}\else\xint_afterfi{ 1}\fi}% +\def\xintiiIsOne {\romannumeral0\xintiiisone }% +\def\xintiiisone #1{\expandafter\XINT_isone\romannumeral`&&@#1XY}% +\def\xintIsOne {\romannumeral0\XINT_signaldeprecated{xint}{xintIsOne}\xintisone }% +\def\xintisone #1{\expandafter\XINT_isone\romannumeral0\xintnum{#1}XY}% +\def\XINT_isone #1#2#3Y% {% - \expandafter\xint_max\romannumeral0\xintnum{#1}\xint: + \unless\if#2X\xint_dothis{ 0}\fi + \unless\if#11\xint_dothis{ 0}\fi + \xint_orthat{ 1}% }% -\def\xint_max #1\xint:#2% +\def\XINT_isOne #1{\XINT_is_One#1XY}% +\def\XINT_is_One #1#2#3Y% {% - \expandafter\XINT_max_fork\romannumeral0\xintnum{#2}\xint:#1\xint: + \unless\if#2X\xint_dothis0\fi + \unless\if#11\xint_dothis0\fi + \xint_orthat1% }% -\def\xintiiMax {\romannumeral0\xintiimax }% -\def\xintiimax #1% +\def\xintiiOdd {\romannumeral0\xintiiodd }% +\def\xintiiodd #1% {% - \expandafter\xint_iimax \romannumeral`&&@#1\xint: + \ifodd\xintLDg{#1} %<- intentional space + \xint_afterfi{ 1}% + \else + \xint_afterfi{ 0}% + \fi }% -\def\xint_iimax #1\xint:#2% +\def\xintOdd {\romannumeral0\XINT_signaldeprecated{xint}{xintOdd}\xintodd }% +\def\xintodd #1% {% - \expandafter\XINT_max_fork\romannumeral`&&@#2\xint:#1\xint: + \ifodd\xintLDg{\xintNum{#1}} %<- intentional space + \xint_afterfi{ 1}% + \else + \xint_afterfi{ 0}% + \fi }% -\def\XINT_max_fork #1#2\xint:#3#4\xint: +\def\xintiiEven {\romannumeral0\xintiieven }% +\def\xintiieven #1% {% - \xint_UDsignsfork - #1#3\XINT_max_minusminus % A < 0, B < 0 - #1-\XINT_max_plusminus % B < 0, A >= 0 - #3-\XINT_max_minusplus % A < 0, B >= 0 - --{\xint_UDzerosfork - #1#3\XINT_max_zerozero % A = B = 0 - #10\XINT_max_pluszero % B = 0, A > 0 - #30\XINT_max_zeroplus % A = 0, B > 0 - 00\XINT_max_plusplus % A, B > 0 - \krof }% - \krof - #3#1#2\xint:#4\xint: - \expandafter\xint_firstoftwo_thenstop + \ifodd\xintLDg{#1} %<- intentional space + \xint_afterfi{ 0}% \else - \expandafter\xint_secondoftwo_thenstop + \xint_afterfi{ 1}% \fi - {#3#4}{#1#2}% }% -\def\XINT_max_zerozero #1\fi{\xint_firstoftwo_thenstop }% -\def\XINT_max_zeroplus #1\fi{\xint_secondoftwo_thenstop }% -\def\XINT_max_pluszero #1\fi{\xint_firstoftwo_thenstop }% -\def\XINT_max_minusplus #1\fi{\xint_secondoftwo_thenstop }% -\def\XINT_max_plusminus #1\fi{\xint_firstoftwo_thenstop }% -\def\XINT_max_plusplus +\def\xintEven {\romannumeral0\XINT_signaldeprecated{xint}{xintEven}\xinteven }% +\def\xinteven #1% {% - \if1\romannumeral0\XINT_geq_plusplus + \ifodd\xintLDg{\xintNum{#1}} %<- intentional space + \xint_afterfi{ 0}% + \else + \xint_afterfi{ 1}% + \fi }% -\def\XINT_max_minusminus --% +\def\xintiiMON {\romannumeral0\xintiimon }% +\def\xintiimon #1% {% - \unless\if1\romannumeral0\XINT_geq_plusplus{}{}% + \ifodd\xintLDg {#1} %<- intentional space + \xint_afterfi{ -1}% + \else + \xint_afterfi{ 1}% + \fi }% -\def\xintiMaxof {\romannumeral0\xintimaxof }% -\def\xintimaxof #1{\expandafter\XINT_imaxof_a\romannumeral`&&@#1\xint:}% -\def\XINT_imaxof_a -#1{\expandafter\XINT_imaxof_b\romannumeral0\xintnum{#1}!}% -\def\XINT_imaxof_b #1!#2% - {\expandafter\XINT_imaxof_c\romannumeral`&&@#2!{#1}!}% -\def\XINT_imaxof_c #1% - {\xint_gob_til_xint: #1\XINT_imaxof_e\xint:\XINT_imaxof_d #1}% -\def\XINT_imaxof_d #1!% - {\expandafter\XINT_imaxof_b\romannumeral0\xintimax {#1}}% -\def\XINT_imaxof_e #1!#2!{ #2}% -\def\xintiiMaxof {\romannumeral0\xintiimaxof }% -\def\xintiimaxof #1{\expandafter\XINT_iimaxof_a\romannumeral`&&@#1\xint:}% -\def\XINT_iimaxof_a #1{\expandafter\XINT_iimaxof_b\romannumeral`&&@#1!}% -\def\XINT_iimaxof_b #1!#2% - {\expandafter\XINT_iimaxof_c\romannumeral`&&@#2!{#1}!}% -\def\XINT_iimaxof_c #1% - {\xint_gob_til_xint: #1\XINT_iimaxof_e\xint:\XINT_iimaxof_d #1}% -\def\XINT_iimaxof_d #1!% - {\expandafter\XINT_iimaxof_b\romannumeral0\xintiimax {#1}}% -\def\XINT_iimaxof_e #1!#2!{ #2}% -\def\xintiMin {\romannumeral0\xintimin }% -\def\xintimin #1% +\def\xintMON {\romannumeral0\XINT_signaldeprecated{xint}{xintMON}\xintmon }% +\def\xintmon #1% {% - \expandafter\xint_min\romannumeral0\xintnum{#1}\xint: + \ifodd\xintLDg{\xintNum{#1}} %<- intentional space + \xint_afterfi{ -1}% + \else + \xint_afterfi{ 1}% + \fi }% -\def\xint_min #1\xint:#2% +\def\xintiiMMON {\romannumeral0\xintiimmon }% +\def\xintiimmon #1% {% - \expandafter\XINT_min_fork\romannumeral0\xintnum{#2}\xint:#1\xint: + \ifodd\xintLDg {#1} %<- intentional space + \xint_afterfi{ 1}% + \else + \xint_afterfi{ -1}% + \fi }% -\def\xintiiMin {\romannumeral0\xintiimin }% -\def\xintiimin #1% +\def\xintMMON {\romannumeral0\XINT_signaldeprecated{xint}{xintMMON}\xintmmon }% +\def\xintmmon #1% {% - \expandafter\xint_iimin \romannumeral`&&@#1\xint: + \ifodd\xintLDg{\xintNum{#1}} %<- intentional space + \xint_afterfi{ 1}% + \else + \xint_afterfi{ -1}% + \fi }% -\def\xint_iimin #1\xint:#2% +\def\xintSgnFork {\romannumeral0\xintsgnfork }% +\def\xintsgnfork #1% {% - \expandafter\XINT_min_fork\romannumeral`&&@#2\xint:#1\xint: + \ifcase #1 \expandafter\xint_secondofthree_thenstop + \or\expandafter\xint_thirdofthree_thenstop + \else\expandafter\xint_firstofthree_thenstop + \fi }% -\def\XINT_min_fork #1#2\xint:#3#4\xint: +\def\xintifSgn {\romannumeral0\XINT_signaldeprecated{xint}{xintifSgn}\xintifsgn }% +\def\xintifsgn #1% {% - \xint_UDsignsfork - #1#3\XINT_min_minusminus % A < 0, B < 0 - #1-\XINT_min_plusminus % B < 0, A >= 0 - #3-\XINT_min_minusplus % A < 0, B >= 0 - --{\xint_UDzerosfork - #1#3\XINT_min_zerozero % A = B = 0 - #10\XINT_min_pluszero % B = 0, A > 0 - #30\XINT_min_zeroplus % A = 0, B > 0 - 00\XINT_min_plusplus % A, B > 0 - \krof }% - \krof - #3#1#2\xint:#4\xint: - \expandafter\xint_secondoftwo_thenstop - \else - \expandafter\xint_firstoftwo_thenstop + \ifcase \xintSgn{#1} + \expandafter\xint_secondofthree_thenstop + \or\expandafter\xint_thirdofthree_thenstop + \else\expandafter\xint_firstofthree_thenstop \fi - {#3#4}{#1#2}% }% -\def\XINT_min_zerozero #1\fi{\xint_firstoftwo_thenstop }% -\def\XINT_min_zeroplus #1\fi{\xint_firstoftwo_thenstop }% -\def\XINT_min_pluszero #1\fi{\xint_secondoftwo_thenstop }% -\def\XINT_min_minusplus #1\fi{\xint_firstoftwo_thenstop }% -\def\XINT_min_plusminus #1\fi{\xint_secondoftwo_thenstop }% -\def\XINT_min_plusplus +\def\xintiiifSgn {\romannumeral0\xintiiifsgn }% +\def\xintiiifsgn #1% {% - \if1\romannumeral0\XINT_geq_plusplus + \ifcase \xintiiSgn{#1} + \expandafter\xint_secondofthree_thenstop + \or\expandafter\xint_thirdofthree_thenstop + \else\expandafter\xint_firstofthree_thenstop + \fi }% -\def\XINT_min_minusminus --% +\def\xintifCmp {\romannumeral0\XINT_signaldeprecated{xint}{xintifCmp}\xintifcmp }% +\def\xintifcmp #1#2% {% - \unless\if1\romannumeral0\XINT_geq_plusplus{}{}% + \ifcase\xintCmp {#1}{#2} + \expandafter\xint_secondofthree_thenstop + \or\expandafter\xint_thirdofthree_thenstop + \else\expandafter\xint_firstofthree_thenstop + \fi }% -\def\xintiMinof {\romannumeral0\xintiminof }% -\def\xintiminof #1{\expandafter\XINT_iminof_a\romannumeral`&&@#1\xint:}% -\def\XINT_iminof_a #1{\expandafter\XINT_iminof_b\romannumeral0\xintnum{#1}!}% -\def\XINT_iminof_b #1!#2% - {\expandafter\XINT_iminof_c\romannumeral`&&@#2!{#1}!}% -\def\XINT_iminof_c #1% - {\xint_gob_til_xint: #1\XINT_iminof_e\xint:\XINT_iminof_d #1}% -\def\XINT_iminof_d #1!% - {\expandafter\XINT_iminof_b\romannumeral0\xintimin {#1}}% -\def\XINT_iminof_e #1!#2!{ #2}% -\def\xintiiMinof {\romannumeral0\xintiiminof }% -\def\xintiiminof #1{\expandafter\XINT_iiminof_a\romannumeral`&&@#1\xint:}% -\def\XINT_iiminof_a #1{\expandafter\XINT_iiminof_b\romannumeral`&&@#1!}% -\def\XINT_iiminof_b #1!#2% - {\expandafter\XINT_iiminof_c\romannumeral`&&@#2!{#1}!}% -\def\XINT_iiminof_c #1% - {\xint_gob_til_xint: #1\XINT_iiminof_e\xint:\XINT_iiminof_d #1}% -\def\XINT_iiminof_d #1!% - {\expandafter\XINT_iiminof_b\romannumeral0\xintiimin {#1}}% -\def\XINT_iiminof_e #1!#2!{ #2}% -\def\xintiiSum {\romannumeral0\xintiisum }% -\def\xintiisum #1{\expandafter\XINT_sumexpr\romannumeral`&&@#1\xint:}% -\def\XINT_sumexpr {\XINT_sum_loop_a 0\Z }% -\def\XINT_sum_loop_a #1\Z #2% - {\expandafter\XINT_sum_loop_b \romannumeral`&&@#2\xint:#1\xint:\Z}% -\def\XINT_sum_loop_b #1% - {\xint_gob_til_xint: #1\XINT_sum_finished\xint:\XINT_sum_loop_c #1}% -\def\XINT_sum_loop_c - {\expandafter\XINT_sum_loop_a\romannumeral0\XINT_add_fork }% -\def\XINT_sum_finished\xint:\XINT_sum_loop_c\xint:\xint:#1\xint:\Z{ #1}% -\def\xintiiPrd {\romannumeral0\xintiiprd }% -\def\xintiiprd #1{\expandafter\XINT_prdexpr\romannumeral`&&@#1\xint:}% -\def\XINT_prdexpr {\XINT_prod_loop_a 1\Z }% -\def\XINT_prod_loop_a #1\Z #2% - {\expandafter\XINT_prod_loop_b\romannumeral`&&@#2\xint:#1\xint:\Z}% -\def\XINT_prod_loop_b #1% - {\xint_gob_til_xint: #1\XINT_prod_finished\xint:\XINT_prod_loop_c #1}% -\def\XINT_prod_loop_c - {\expandafter\XINT_prod_loop_a\romannumeral0\XINT_mul_fork }% -\def\XINT_prod_finished\xint:\XINT_prod_loop_c\xint:\xint:#1\xint:\Z { #1}% -\def\xintiiMON {\romannumeral0\xintiimon }% -\def\xintiimon #1% +\def\xintiiifCmp {\romannumeral0\xintiiifcmp }% +\def\xintiiifcmp #1#2% {% - \ifodd\xintiiLDg {#1} %<- intentional space - \xint_afterfi{ -1}% - \else - \xint_afterfi{ 1}% + \ifcase\xintiiCmp {#1}{#2} + \expandafter\xint_secondofthree_thenstop + \or\expandafter\xint_thirdofthree_thenstop + \else\expandafter\xint_firstofthree_thenstop \fi }% -\def\xintiiMMON {\romannumeral0\xintiimmon }% -\def\xintiimmon #1% +\def\xintifEq {\romannumeral0\XINT_signaldeprecated{xint}{xintifEq}\xintifeq }% +\def\xintifeq #1#2% {% - \ifodd\xintiiLDg {#1} %<- intentional space - \xint_afterfi{ 1}% - \else - \xint_afterfi{ -1}% + \if0\xintCmp{#1}{#2}% + \expandafter\xint_firstoftwo_thenstop + \else\expandafter\xint_secondoftwo_thenstop \fi }% -\def\xintMON {\romannumeral0\xintmon }% -\def\xintmon #1% +\def\xintiiifEq {\romannumeral0\xintiiifeq }% +\def\xintiiifeq #1#2% {% - \ifodd\xintLDg {#1} %<- intentional space - \xint_afterfi{ -1}% - \else - \xint_afterfi{ 1}% + \if0\xintiiCmp{#1}{#2}% + \expandafter\xint_firstoftwo_thenstop + \else\expandafter\xint_secondoftwo_thenstop \fi }% -\def\xintMMON {\romannumeral0\xintmmon }% -\def\xintmmon #1% +\def\xintifGt {\romannumeral0\XINT_signaldeprecated{xint}{xintifGt}\xintifgt }% +\def\xintifgt #1#2% {% - \ifodd\xintLDg {#1} %<- intentional space - \xint_afterfi{ 1}% - \else - \xint_afterfi{ -1}% + \if1\xintCmp{#1}{#2}% + \expandafter\xint_firstoftwo_thenstop + \else\expandafter\xint_secondoftwo_thenstop \fi }% -\def\xintiiOdd {\romannumeral0\xintiiodd }% -\def\xintiiodd #1% +\def\xintiiifGt {\romannumeral0\xintiiifgt }% +\def\xintiiifgt #1#2% {% - \ifodd\xintiiLDg{#1} %<- intentional space - \xint_afterfi{ 1}% - \else - \xint_afterfi{ 0}% + \if1\xintiiCmp{#1}{#2}% + \expandafter\xint_firstoftwo_thenstop + \else\expandafter\xint_secondoftwo_thenstop \fi }% -\def\xintiiEven {\romannumeral0\xintiieven }% -\def\xintiieven #1% +\def\xintifLt {\romannumeral0\XINT_signaldeprecated{xint}{xintifLt}\xintiflt }% +\def\xintiflt #1#2% {% - \ifodd\xintiiLDg{#1} %<- intentional space - \xint_afterfi{ 0}% - \else - \xint_afterfi{ 1}% + \ifnum\xintCmp{#1}{#2}<\xint_c_ + \expandafter\xint_firstoftwo_thenstop + \else \expandafter\xint_secondoftwo_thenstop \fi }% -\def\xintOdd {\romannumeral0\xintodd }% -\def\xintodd #1% +\def\xintiiifLt {\romannumeral0\xintiiiflt }% +\def\xintiiiflt #1#2% {% - \ifodd\xintLDg{#1} %<- intentional space - \xint_afterfi{ 1}% - \else - \xint_afterfi{ 0}% + \ifnum\xintiiCmp{#1}{#2}<\xint_c_ + \expandafter\xint_firstoftwo_thenstop + \else \expandafter\xint_secondoftwo_thenstop \fi }% -\def\xintEven {\romannumeral0\xinteven }% -\def\xinteven #1% +\def\xintifZero {\romannumeral0\XINT_signaldeprecated{xint}{xintifZero}\xintifzero }% +\def\xintifzero #1% {% - \ifodd\xintLDg{#1} %<- intentional space - \xint_afterfi{ 0}% + \if0\xintSgn{#1}% + \expandafter\xint_firstoftwo_thenstop \else - \xint_afterfi{ 1}% + \expandafter\xint_secondoftwo_thenstop \fi }% -\def\xintDSHr {\romannumeral0\xintdshr }% -\def\xintdshr #1#2% -{% - \expandafter\XINT_dshr_fork\the\numexpr#1\expandafter.\romannumeral`&&@#2;% -}% -\def\XINT_dshr_fork #1% -{% - \xint_UDzerominusfork - 0#1\XINT_dshr_xzeroorneg - #1-\XINT_dshr_xzeroorneg - 0-\XINT_dshr_xpositive - \krof #1% -}% -\def\XINT_dshr_xzeroorneg #1;{ 0}% -\def\XINT_dshr_xpositive -{% - \expandafter\xint_secondoftwo_thenstop\romannumeral0\XINT_dsx_xisPos -}% -\def\xintDSH {\romannumeral0\xintdsh }% -\def\xintdsh #1#2% -{% - \expandafter\XINT_dsh_fork\the\numexpr#1\expandafter.\romannumeral`&&@#2;% -}% -\def\XINT_dsh_fork #1% +\def\xintiiifZero {\romannumeral0\xintiiifzero }% +\def\xintiiifzero #1% {% - \xint_UDzerominusfork - #1-\XINT_dsh_xiszero - 0#1\XINT_dsx_xisNeg_checkA - 0-{\XINT_dsh_xisPos #1}% - \krof + \if0\xintiiSgn{#1}% + \expandafter\xint_firstoftwo_thenstop + \else + \expandafter\xint_secondoftwo_thenstop + \fi }% -\def\XINT_dsh_xiszero #1.#2;{ #2}% -\def\XINT_dsh_xisPos +\def\xintifNotZero {\romannumeral0\XINT_signaldeprecated{xint}{xintifNotZero}\xintifnotzero }% +\def\xintifnotzero #1% {% - \expandafter\xint_firstoftwo_thenstop\romannumeral0\XINT_dsx_xisPos + \if0\xintSgn{#1}% + \expandafter\xint_secondoftwo_thenstop + \else + \expandafter\xint_firstoftwo_thenstop + \fi }% -\def\xintDSx {\romannumeral0\xintdsx }% -\def\xintdsx #1#2% +\def\xintiiifNotZero {\romannumeral0\xintiiifnotzero }% +\def\xintiiifnotzero #1% {% - \expandafter\XINT_dsx_fork\the\numexpr#1\expandafter.\romannumeral`&&@#2;% + \if0\xintiiSgn{#1}% + \expandafter\xint_secondoftwo_thenstop + \else + \expandafter\xint_firstoftwo_thenstop + \fi }% -\def\XINT_dsx_fork #1% +\def\xintiiifOne {\romannumeral0\xintiiifone }% +\def\xintiiifone #1% {% - \xint_UDzerominusfork - #1-\XINT_dsx_xisZero - 0#1\XINT_dsx_xisNeg_checkA - 0-{\XINT_dsx_xisPos #1}% - \krof + \if1\xintiiIsOne{#1}% + \expandafter\xint_firstoftwo_thenstop + \else + \expandafter\xint_secondoftwo_thenstop + \fi }% -\def\XINT_dsx_xisZero #1.#2;{{#2}{0}}% -\def\XINT_dsx_xisNeg_checkA #1.#2% +\def\xintifOne {\romannumeral0\XINT_signaldeprecated{xint}{xintifOne}\xintifone }% +\def\xintifone #1% {% - \xint_gob_til_zero #2\XINT_dsx_xisNeg_Azero 0% - \expandafter\XINT_dsx_append\romannumeral\XINT_rep #1\endcsname 0.#2% + \if1\xintIsOne{#1}% + \expandafter\xint_firstoftwo_thenstop + \else + \expandafter\xint_secondoftwo_thenstop + \fi }% -\def\XINT_dsx_xisNeg_Azero #1;{ 0}% -\def\XINT_dsx_addzeros #1% - {\expandafter\XINT_dsx_append\romannumeral\XINT_rep#1\endcsname0.}% -\def\XINT_dsx_addzerosnofuss #1% - {\expandafter\XINT_dsx_append\romannumeral\xintreplicate{#1}0.}% -\def\XINT_dsx_append #1.#2;{ #2#1}% -\def\XINT_dsx_xisPos #1.#2% +\def\xintiiifOdd {\romannumeral0\xintiiifodd }% +\def\xintiiifodd #1% {% - \xint_UDzerominusfork - #2-\XINT_dsx_AisZero - 0#2\XINT_dsx_AisNeg - 0-\XINT_dsx_AisPos - \krof #1.#2% + \if\xintiiOdd{#1}1% + \expandafter\xint_firstoftwo_thenstop + \else + \expandafter\xint_secondoftwo_thenstop + \fi }% -\def\XINT_dsx_AisZero #1;{{0}{0}}% -\def\XINT_dsx_AisNeg #1.-#2;% +\def\xintifOdd {\romannumeral0\XINT_signaldeprecated{xint}{xintifOdd}\xintifodd }% +\def\xintifodd #1% {% - \expandafter\XINT_dsx_AisNeg_checkiffirstempty - \romannumeral0\XINT_split_xfork #1.#2\xint_bye2345678\xint_bye..% + \if\xintOdd{#1}1% + \expandafter\xint_firstoftwo_thenstop + \else + \expandafter\xint_secondoftwo_thenstop + \fi }% -\def\XINT_dsx_AisNeg_checkiffirstempty #1% +\def\xintifTrueAelseB {\romannumeral0\xintiiifnotzero}% +\def\xintifFalseAelseB{\romannumeral0\xintiiifzero}% +\def\xintNot{\romannumeral0\XINT_signaldeprecated{xint}{xintNot}\xintiiiszero}% +\def\xintNOT{\romannumeral0\xintiiiszero}% +\def\xintAND {\romannumeral0\xintand }% +\def\xintand #1#2{\if0\xintiiSgn{#1}\expandafter\xint_firstoftwo + \else\expandafter\xint_secondoftwo\fi + { 0}{\xintiiisnotzero{#2}}}% +\def\xintOR {\romannumeral0\xintor }% +\def\xintor #1#2{\if0\xintiiSgn{#1}\expandafter\xint_firstoftwo + \else\expandafter\xint_secondoftwo\fi + {\xintiiisnotzero{#2}}{ 1}}% +\def\xintXOR {\romannumeral0\xintxor }% +\def\xintxor #1#2{\if\xintiiIsZero{#1}\xintiiIsZero{#2}% + \xint_afterfi{ 0}\else\xint_afterfi{ 1}\fi }% +\def\xintANDof {\romannumeral0\xintandof }% +\def\xintandof #1{\expandafter\XINT_andof_a\romannumeral`&&@#1\xint:}% +\def\XINT_andof_a #1{\expandafter\XINT_andof_b\romannumeral`&&@#1!}% +\def\XINT_andof_b #1% + {\xint_gob_til_xint: #1\XINT_andof_e\xint:\XINT_andof_c #1}% +\def\XINT_andof_c #1!% + {\xintifTrueAelseB {#1}{\XINT_andof_a}{\XINT_andof_no}}% +\def\XINT_andof_no #1\xint:{ 0}% +\def\XINT_andof_e #1!{ 1}% +\def\xintORof {\romannumeral0\xintorof }% +\def\xintorof #1{\expandafter\XINT_orof_a\romannumeral`&&@#1\xint:}% +\def\XINT_orof_a #1{\expandafter\XINT_orof_b\romannumeral`&&@#1!}% +\def\XINT_orof_b #1% + {\xint_gob_til_xint: #1\XINT_orof_e\xint:\XINT_orof_c #1}% +\def\XINT_orof_c #1!% + {\xintifTrueAelseB {#1}{\XINT_orof_yes}{\XINT_orof_a}}% +\def\XINT_orof_yes #1\xint:{ 1}% +\def\XINT_orof_e #1!{ 0}% +\def\xintXORof {\romannumeral0\xintxorof }% +\def\xintxorof #1{\expandafter\XINT_xorof_a\expandafter + 0\romannumeral`&&@#1\xint:}% +\def\XINT_xorof_a #1#2{\expandafter\XINT_xorof_b\romannumeral`&&@#2!#1}% +\def\XINT_xorof_b #1% + {\xint_gob_til_xint: #1\XINT_xorof_e\xint:\XINT_xorof_c #1}% +\def\XINT_xorof_c #1!#2% + {\xintifTrueAelseB {#1}{\if #20\xint_afterfi{\XINT_xorof_a 1}% + \else\xint_afterfi{\XINT_xorof_a 0}\fi}% + {\XINT_xorof_a #2}% + }% +\def\XINT_xorof_e #1!#2{ #2}% +\def\xintiMax {\romannumeral0\XINT_signaldeprecated{xint}{xintiMax}\xintimax }% +\def\xintimax #1% {% - \xint_gob_til_dot #1\XINT_dsx_AisNeg_finish_zero.% - \XINT_dsx_AisNeg_finish_notzero #1% + \expandafter\xint_max\romannumeral0\xintnum{#1}\xint: }% -\def\XINT_dsx_AisNeg_finish_zero.\XINT_dsx_AisNeg_finish_notzero.#1.% +\def\xint_max #1\xint:#2% {% - \expandafter\XINT_dsx_end - \expandafter {\romannumeral0\XINT_num {-#1}}{0}% + \expandafter\XINT_max_fork\romannumeral0\xintnum{#2}\xint:#1\xint: }% -\def\XINT_dsx_AisNeg_finish_notzero #1.#2.% +\def\xintiiMax {\romannumeral0\xintiimax }% +\def\xintiimax #1% {% - \expandafter\XINT_dsx_end - \expandafter {\romannumeral0\XINT_num {#2}}{-#1}% + \expandafter\xint_iimax \romannumeral`&&@#1\xint: }% -\def\XINT_dsx_AisPos #1.#2;% +\def\xint_iimax #1\xint:#2% {% - \expandafter\XINT_dsx_AisPos_finish - \romannumeral0\XINT_split_xfork #1.#2\xint_bye2345678\xint_bye..% + \expandafter\XINT_max_fork\romannumeral`&&@#2\xint:#1\xint: }% -\def\XINT_dsx_AisPos_finish #1.#2.% +\def\XINT_max_fork #1#2\xint:#3#4\xint: {% - \expandafter\XINT_dsx_end - \expandafter {\romannumeral0\XINT_num {#2}}% - {\romannumeral0\XINT_num {#1}}% + \xint_UDsignsfork + #1#3\XINT_max_minusminus % A < 0, B < 0 + #1-\XINT_max_plusminus % B < 0, A >= 0 + #3-\XINT_max_minusplus % A < 0, B >= 0 + --{\xint_UDzerosfork + #1#3\XINT_max_zerozero % A = B = 0 + #10\XINT_max_pluszero % B = 0, A > 0 + #30\XINT_max_zeroplus % A = 0, B > 0 + 00\XINT_max_plusplus % A, B > 0 + \krof }% + \krof + #3#1#2\xint:#4\xint: + \expandafter\xint_firstoftwo_thenstop + \else + \expandafter\xint_secondoftwo_thenstop + \fi + {#3#4}{#1#2}% }% -\def\XINT_dsx_end #1#2{\expandafter{#2}{#1}}% -\def\xintDecSplit {\romannumeral0\xintdecsplit }% -\def\xintdecsplit #1#2% +\def\XINT_max_zerozero #1\fi{\xint_firstoftwo_thenstop }% +\def\XINT_max_zeroplus #1\fi{\xint_secondoftwo_thenstop }% +\def\XINT_max_pluszero #1\fi{\xint_firstoftwo_thenstop }% +\def\XINT_max_minusplus #1\fi{\xint_secondoftwo_thenstop }% +\def\XINT_max_plusminus #1\fi{\xint_firstoftwo_thenstop }% +\def\XINT_max_plusplus {% - \expandafter\XINT_split_finish - \romannumeral0\expandafter\XINT_split_xfork - \the\numexpr #1\expandafter.\romannumeral`&&@#2% - \xint_bye2345678\xint_bye..% + \if1\romannumeral0\XINT_geq_plusplus }% -\def\xintDecSplitL {\romannumeral0\xintdecsplitl }% -\def\xintdecsplitl #1#2% +\def\XINT_max_minusminus --% {% - \expandafter\XINT_splitl_finish - \romannumeral0\expandafter\XINT_split_xfork - \the\numexpr #1\expandafter.\romannumeral`&&@#2% - \xint_bye2345678\xint_bye..% + \unless\if1\romannumeral0\XINT_geq_plusplus{}{}% }% -\def\xintDecSplitR {\romannumeral0\xintdecsplitr }% -\def\xintdecsplitr #1#2% +\def\xintiMin {\romannumeral0\XINT_signaldeprecated{xint}{xintiMin}\xintimin }% +\def\xintimin #1% {% - \expandafter\XINT_splitr_finish - \romannumeral0\expandafter\XINT_split_xfork - \the\numexpr #1\expandafter.\romannumeral`&&@#2% - \xint_bye2345678\xint_bye..% + \expandafter\xint_min\romannumeral0\xintnum{#1}\xint: }% -\def\XINT_split_finish #1.#2.{{#1}{#2}}% -\def\XINT_splitl_finish #1.#2.{ #1}% -\def\XINT_splitr_finish #1.#2.{ #2}% -\def\XINT_split_xfork #1% +\def\xint_min #1\xint:#2% {% - \xint_UDzerominusfork - #1-\XINT_split_zerosplit - 0#1\XINT_split_fromleft - 0-{\XINT_split_fromright #1}% - \krof + \expandafter\XINT_min_fork\romannumeral0\xintnum{#2}\xint:#1\xint: }% -\def\XINT_split_zerosplit .#1\xint_bye#2\xint_bye..{ #1..}% -\def\XINT_split_fromleft - {\expandafter\XINT_split_fromleft_a\the\numexpr\xint_c_viii-}% -\def\XINT_split_fromleft_a #1% +\def\xintiiMin {\romannumeral0\xintiimin }% +\def\xintiimin #1% {% - \xint_UDsignfork - #1\XINT_split_fromleft_b - -{\XINT_split_fromleft_end_a #1}% - \krof + \expandafter\xint_iimin \romannumeral`&&@#1\xint: }% -\def\XINT_split_fromleft_b #1.#2#3#4#5#6#7#8#9% +\def\xint_iimin #1\xint:#2% {% - \expandafter\XINT_split_fromleft_clean - \the\numexpr1#2#3#4#5#6#7#8#9\expandafter - \XINT_split_fromleft_a\the\numexpr\xint_c_viii-#1.% + \expandafter\XINT_min_fork\romannumeral`&&@#2\xint:#1\xint: }% -\def\XINT_split_fromleft_end_a #1.% +\def\XINT_min_fork #1#2\xint:#3#4\xint: {% - \expandafter\XINT_split_fromleft_clean - \the\numexpr1\csname XINT_split_fromleft_end#1\endcsname + \xint_UDsignsfork + #1#3\XINT_min_minusminus % A < 0, B < 0 + #1-\XINT_min_plusminus % B < 0, A >= 0 + #3-\XINT_min_minusplus % A < 0, B >= 0 + --{\xint_UDzerosfork + #1#3\XINT_min_zerozero % A = B = 0 + #10\XINT_min_pluszero % B = 0, A > 0 + #30\XINT_min_zeroplus % A = 0, B > 0 + 00\XINT_min_plusplus % A, B > 0 + \krof }% + \krof + #3#1#2\xint:#4\xint: + \expandafter\xint_secondoftwo_thenstop + \else + \expandafter\xint_firstoftwo_thenstop + \fi + {#3#4}{#1#2}% }% -\def\XINT_split_fromleft_clean 1{ }% -\expandafter\def\csname XINT_split_fromleft_end7\endcsname #1% - {#1\XINT_split_fromleft_end_b}% -\expandafter\def\csname XINT_split_fromleft_end6\endcsname #1#2% - {#1#2\XINT_split_fromleft_end_b}% -\expandafter\def\csname XINT_split_fromleft_end5\endcsname #1#2#3% - {#1#2#3\XINT_split_fromleft_end_b}% -\expandafter\def\csname XINT_split_fromleft_end4\endcsname #1#2#3#4% - {#1#2#3#4\XINT_split_fromleft_end_b}% -\expandafter\def\csname XINT_split_fromleft_end3\endcsname #1#2#3#4#5% - {#1#2#3#4#5\XINT_split_fromleft_end_b}% -\expandafter\def\csname XINT_split_fromleft_end2\endcsname #1#2#3#4#5#6% - {#1#2#3#4#5#6\XINT_split_fromleft_end_b}% -\expandafter\def\csname XINT_split_fromleft_end1\endcsname #1#2#3#4#5#6#7% - {#1#2#3#4#5#6#7\XINT_split_fromleft_end_b}% -\expandafter\def\csname XINT_split_fromleft_end0\endcsname #1#2#3#4#5#6#7#8% - {#1#2#3#4#5#6#7#8\XINT_split_fromleft_end_b}% -\def\XINT_split_fromleft_end_b #1\xint_bye#2\xint_bye.{.#1}% puis . -\def\XINT_split_fromright #1.#2\xint_bye +\def\XINT_min_zerozero #1\fi{\xint_firstoftwo_thenstop }% +\def\XINT_min_zeroplus #1\fi{\xint_firstoftwo_thenstop }% +\def\XINT_min_pluszero #1\fi{\xint_secondoftwo_thenstop }% +\def\XINT_min_minusplus #1\fi{\xint_firstoftwo_thenstop }% +\def\XINT_min_plusminus #1\fi{\xint_secondoftwo_thenstop }% +\def\XINT_min_plusplus {% - \expandafter\XINT_split_fromright_a - \the\numexpr#1-\numexpr\XINT_length_loop - #2\xint:\xint:\xint:\xint:\xint:\xint:\xint:\xint:\xint: - \xint_c_viii\xint_c_vii\xint_c_vi\xint_c_v - \xint_c_iv\xint_c_iii\xint_c_ii\xint_c_i\xint_c_\xint_bye - .#2\xint_bye + \if1\romannumeral0\XINT_geq_plusplus }% -\def\XINT_split_fromright_a #1% +\def\XINT_min_minusminus --% {% - \xint_UDsignfork - #1\XINT_split_fromleft - -\XINT_split_fromright_Lempty - \krof + \unless\if1\romannumeral0\XINT_geq_plusplus{}{}% }% -\def\XINT_split_fromright_Lempty #1.#2\xint_bye#3..{.#2.}% -\def\xintiiSqrt {\romannumeral0\xintiisqrt }% -\def\xintiiSqrtR {\romannumeral0\xintiisqrtr }% +\def\xintiMaxof {\romannumeral0\XINT_signaldeprecated{xint}{xintiMaxof}\xintimaxof }% +\def\xintimaxof #1{\expandafter\XINT_imaxof_a\romannumeral`&&@#1\xint:}% +\def\XINT_imaxof_a +#1{\expandafter\XINT_imaxof_b\romannumeral0\xintnum{#1}!}% +\def\XINT_imaxof_b #1!#2% + {\expandafter\XINT_imaxof_c\romannumeral`&&@#2!{#1}!}% +\def\XINT_imaxof_c #1% + {\xint_gob_til_xint: #1\XINT_imaxof_e\xint:\XINT_imaxof_d #1}% +\def\XINT_imaxof_d #1!% + {\expandafter\XINT_imaxof_b\romannumeral0\xintimax {#1}}% +\def\XINT_imaxof_e #1!#2!{ #2}% +\def\xintiiMaxof {\romannumeral0\xintiimaxof }% +\def\xintiimaxof #1{\expandafter\XINT_iimaxof_a\romannumeral`&&@#1\xint:}% +\def\XINT_iimaxof_a #1{\expandafter\XINT_iimaxof_b\romannumeral`&&@#1!}% +\def\XINT_iimaxof_b #1!#2% + {\expandafter\XINT_iimaxof_c\romannumeral`&&@#2!{#1}!}% +\def\XINT_iimaxof_c #1% + {\xint_gob_til_xint: #1\XINT_iimaxof_e\xint:\XINT_iimaxof_d #1}% +\def\XINT_iimaxof_d #1!% + {\expandafter\XINT_iimaxof_b\romannumeral0\xintiimax {#1}}% +\def\XINT_iimaxof_e #1!#2!{ #2}% +\def\xintiMinof {\romannumeral0\XINT_signaldeprecated{xint}{xintiMinof}\xintiminof }% +\def\xintiminof #1{\expandafter\XINT_iminof_a\romannumeral`&&@#1\xint:}% +\def\XINT_iminof_a #1{\expandafter\XINT_iminof_b\romannumeral0\xintnum{#1}!}% +\def\XINT_iminof_b #1!#2% + {\expandafter\XINT_iminof_c\romannumeral`&&@#2!{#1}!}% +\def\XINT_iminof_c #1% + {\xint_gob_til_xint: #1\XINT_iminof_e\xint:\XINT_iminof_d #1}% +\def\XINT_iminof_d #1!% + {\expandafter\XINT_iminof_b\romannumeral0\xintimin {#1}}% +\def\XINT_iminof_e #1!#2!{ #2}% +\def\xintiiMinof {\romannumeral0\xintiiminof }% +\def\xintiiminof #1{\expandafter\XINT_iiminof_a\romannumeral`&&@#1\xint:}% +\def\XINT_iiminof_a #1{\expandafter\XINT_iiminof_b\romannumeral`&&@#1!}% +\def\XINT_iiminof_b #1!#2% + {\expandafter\XINT_iiminof_c\romannumeral`&&@#2!{#1}!}% +\def\XINT_iiminof_c #1% + {\xint_gob_til_xint: #1\XINT_iiminof_e\xint:\XINT_iiminof_d #1}% +\def\XINT_iiminof_d #1!% + {\expandafter\XINT_iiminof_b\romannumeral0\xintiimin {#1}}% +\def\XINT_iiminof_e #1!#2!{ #2}% +\def\xintiiSum {\romannumeral0\xintiisum }% +\def\xintiisum #1{\expandafter\XINT_sumexpr\romannumeral`&&@#1\xint:}% +\def\XINT_sumexpr {\XINT_sum_loop_a 0\Z }% +\def\XINT_sum_loop_a #1\Z #2% + {\expandafter\XINT_sum_loop_b \romannumeral`&&@#2\xint:#1\xint:\Z}% +\def\XINT_sum_loop_b #1% + {\xint_gob_til_xint: #1\XINT_sum_finished\xint:\XINT_sum_loop_c #1}% +\def\XINT_sum_loop_c + {\expandafter\XINT_sum_loop_a\romannumeral0\XINT_add_fork }% +\def\XINT_sum_finished\xint:\XINT_sum_loop_c\xint:\xint:#1\xint:\Z{ #1}% +\def\xintiiPrd {\romannumeral0\xintiiprd }% +\def\xintiiprd #1{\expandafter\XINT_prdexpr\romannumeral`&&@#1\xint:}% +\def\XINT_prdexpr {\XINT_prod_loop_a 1\Z }% +\def\XINT_prod_loop_a #1\Z #2% + {\expandafter\XINT_prod_loop_b\romannumeral`&&@#2\xint:#1\xint:\Z}% +\def\XINT_prod_loop_b #1% + {\xint_gob_til_xint: #1\XINT_prod_finished\xint:\XINT_prod_loop_c #1}% +\def\XINT_prod_loop_c + {\expandafter\XINT_prod_loop_a\romannumeral0\XINT_mul_fork }% +\def\XINT_prod_finished\xint:\XINT_prod_loop_c\xint:\xint:#1\xint:\Z { #1}% \def\xintiiSquareRoot {\romannumeral0\xintiisquareroot }% -\def\xintiSqrt {\romannumeral0\xintisqrt }% -\def\xintiSqrtR {\romannumeral0\xintisqrtr }% -\def\xintiSquareRoot {\romannumeral0\xintisquareroot }% -\def\xintisqrt {\expandafter\XINT_sqrt_post\romannumeral0\xintisquareroot }% -\def\xintisqrtr {\expandafter\XINT_sqrtr_post\romannumeral0\xintisquareroot }% -\def\xintiisqrt {\expandafter\XINT_sqrt_post\romannumeral0\xintiisquareroot }% -\def\xintiisqrtr {\expandafter\XINT_sqrtr_post\romannumeral0\xintiisquareroot }% -\def\XINT_sqrt_post #1#2{\XINT_dec #1\XINT_dec_bye234567890\xint_bye}% -\def\XINT_sqrtr_post #1#2{\xintiiifLt {#2}{#1}% - { #1}{\XINT_dec #1\XINT_dec_bye234567890\xint_bye}}% +\def\xintiSquareRoot{\romannumeral0\XINT_signaldeprecated{xint}{xintiSquareRoot}\xintisquareroot}% \def\xintisquareroot #1% {\expandafter\XINT_sqrt_checkin\romannumeral0\xintnum{#1}\xint:}% \def\xintiisquareroot #1{\expandafter\XINT_sqrt_checkin\romannumeral`&&@#1\xint:}% @@ -1144,6 +1146,17 @@ \expandafter\XINT_sqrt_big_kloop #2.#1.% }% \def\XINT_sqrt_big_end #1#2#3{{#3}{#2}}% +\def\xintiiSqrt {\romannumeral0\xintiisqrt }% +\def\xintiisqrt {\expandafter\XINT_sqrt_post\romannumeral0\xintiisquareroot }% +\def\XINT_sqrt_post #1#2{\XINT_dec #1\XINT_dec_bye234567890\xint_bye}% +\def\xintiiSqrtR {\romannumeral0\xintiisqrtr }% +\def\xintiisqrtr {\expandafter\XINT_sqrtr_post\romannumeral0\xintiisquareroot }% +\def\XINT_sqrtr_post #1#2% + {\xintiiifLt {#2}{#1}{ #1}{\XINT_dec #1\XINT_dec_bye234567890\xint_bye}}% +\def\xintiSqrt {\romannumeral0\XINT_signaldeprecated{xint}{xintiSqrt}\xintisqrt}% +\def\xintisqrt {\expandafter\XINT_sqrt_post\romannumeral0\xintisquareroot }% +\def\xintiSqrtR{\romannumeral0\XINT_signaldeprecated{xint}{xintiSqrtr}\xintisqrtr}% +\def\xintisqrtr {\expandafter\XINT_sqrtr_post\romannumeral0\xintisquareroot }% \def\xintiiBinomial {\romannumeral0\xintiibinomial }% \def\xintiibinomial #1#2% {% @@ -1153,7 +1166,7 @@ {% \expandafter\XINT_binom_fork \the\numexpr#1-#2.#2.#1.% }% -\def\xintiBinomial{\romannumeral0\xintibinomial}% +\def\xintiBinomial{\romannumeral0\XINT_signaldeprecated{xint}{xintiBinomial}\xintibinomial}% \let\xintibinomial\xintiibinomial \def\XINT_binom_fork #1#2.#3#4.#5#6.% {% @@ -1400,8 +1413,10 @@ {% \expandafter\XINT_pfac_fork\the\numexpr#1\expandafter.\the\numexpr #2.% }% -\def\xintiPFactorial{\romannumeral0\xintipfactorial}% +\def\xintiPFactorial{\romannumeral0\XINT_signaldeprecated{xint}{xintiPFactorial}\xintipfactorial}% \let\xintipfactorial\xintiipfactorial +\def\xintPFactorial{\romannumeral0\xintpfactorial}% +\let\xintpfactorial\xintiipfactorial \def\XINT_pfac_fork #1#2.#3#4.% {% \unless\ifnum #1#2<#3#4 \xint_dothis\XINT_pfac_one\fi @@ -1538,27 +1553,54 @@ \expandafter\XINT_mul_out \the\numexpr\expandafter\XINT_smallmul\the\numexpr \xint_c_x^viii+#1!% }% -\def\xintiiE {\romannumeral0\xintiie }% used in \xintMod. -\def\xintiie #1#2% - {\expandafter\XINT_iie_fork\the\numexpr #2\expandafter.\romannumeral`&&@#1;}% -\def\XINT_iie_fork #1% -{% - \xint_UDsignfork - #1\XINT_iie_neg - -\XINT_iie_a - \krof #1% -}% -\def\XINT_iie_a #1.% - {\expandafter\XINT_dsx_append\romannumeral\XINT_rep #1\endcsname 0.}% -\def\XINT_iie_neg #1.#2;{ #2}% -\catcode`! 11 -\def\xintMax {\Did_you_mean_iiMax?or_load_xintfrac!}% -\def\xintMin {\Did_you_mean_iiMin?or_load_xintfrac!}% -\def\xintMaxof {\Did_you_mean_iMaxof?or_load_xintfrac!}% -\def\xintMinof {\Did_you_mean_iMinof?or_load_xintfrac!}% -\def\xintSum {\Did_you_mean_iiSum?or_load_xintfrac!}% -\def\xintPrd {\Did_you_mean_iiPrd?or_load_xintfrac!}% -\catcode`! 12 +\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}{}% +They will get removed at some future release.}}% + {% 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 4a3be168fc7..4888a8124cb 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.2n 2017/08/06 +%% The xint bundle 1.2o 2017/08/29 %% Copyright (C) 2013-2017 by Jean-Francois Burnol %% xintbinhex: Expandable binary and hexadecimal conversions %% --------------------------------------------------------------- @@ -70,7 +70,7 @@ \XINTsetupcatcodes% defined in xintkernel.sty \XINT_providespackage \ProvidesPackage{xintbinhex}% - [2017/08/06 1.2n Expandable binary and hexadecimal conversions (JFB)]% + [2017/08/29 1.2o 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 @@ -128,20 +128,6 @@ \def\XINT_zeroes_foriv_end\R\XINT_zeroes_foriv #1#2\W {\XINT_zeroes_foriv_done #1}% \def\XINT_zeroes_foriv_done #1\R{ #1}% -\def\XINT_unsepb_loop #1!#2!#3!#4!#5!#6!#7!#8!#9!% -{% - \expandafter\XINT_unsep_clean - \the\numexpr 1#1\expandafter\XINT_unsep_clean - \the\numexpr 1#2\expandafter\XINT_unsep_clean - \the\numexpr 1#3\expandafter\XINT_unsep_clean - \the\numexpr 1#4\expandafter\XINT_unsep_clean - \the\numexpr 1#5\expandafter\XINT_unsep_clean - \the\numexpr 1#6\expandafter\XINT_unsep_clean - \the\numexpr 1#7\expandafter\XINT_unsep_clean - \the\numexpr 1#8\expandafter\XINT_unsep_clean - \the\numexpr 1#9\XINT_unsepb_loop -}% -\def\XINT_unsep_clean 1{\relax}% also in xintcore \def\xintDecToHex {\romannumeral0\xintdectohex }% \def\xintdectohex #1% {% @@ -173,9 +159,10 @@ \expandafter\XINT_dthb_again\the\numexpr\expandafter\XINT_dthb_update \the\numexpr#1#2#3#4% \xint_bye#9\XINT_dthb_lastpass\xint_bye - #5#6#7#8!\XINT_dthb_exclam\relax\XINT_dthb_nextfour!2!3!4!5!6!7!8!9!\Z #9% + #5#6#7#8!\XINT_dthb_exclam\relax\XINT_dthb_nextfour #9% }% -\def\XINT_dthb_exclam {!\XINT_dthb_exclam!}% +\def\XINT_dthb_exclam {!\XINT_dthb_exclam\relax + \expandafter\XINT_dthb_update\the\numexpr}% \def\XINT_dthb_update #1!% {% \expandafter\XINT_dthb_update_a @@ -186,10 +173,10 @@ {% 0000+#1\expandafter#3\the\numexpr#2-#1*\xint_c_ii^xvi }% -\def\XINT_dthb_nextfour #1\Z #2#3#4#5#6% +\def\XINT_dthb_nextfour #1#2#3#4#5% {% - \xint_bye#6\XINT_dthb_lastpass\xint_bye - #2#3#4#5!\XINT_dthb_exclam\relax\XINT_dthb_nextfour!2!3!4!5!6!7!8!9!\Z #6% + \xint_bye#5\XINT_dthb_lastpass\xint_bye + #1#2#3#4!\XINT_dthb_exclam\relax\XINT_dthb_nextfour#5% }% \def\XINT_dthb_lastpass\xint_bye #1!#2\xint_bye#3{#1!#3!}% \def\XINT_dth_tohex @@ -197,28 +184,18 @@ \expandafter\expandafter\expandafter\XINT_dth_tohex_a\csname\XINT_tofourhex }% \def\XINT_dth_tohex_a\endcsname{!\XINT_dth_tohex!}% -\def\XINT_dthb_a #1!#2!#3!#4!#5!#6!#7!#8!#9!% -{% - \expandafter\XINT_dthb_update - \the\numexpr #1\expandafter\XINT_dthb_update - \the\numexpr #2\expandafter\XINT_dthb_update - \the\numexpr #3\expandafter\XINT_dthb_update - \the\numexpr #4\expandafter\XINT_dthb_update - \the\numexpr #5\expandafter\XINT_dthb_update - \the\numexpr #6\expandafter\XINT_dthb_update - \the\numexpr #7\expandafter\XINT_dthb_update - \the\numexpr #8\expandafter\XINT_dthb_update - \the\numexpr #9\XINT_dthb_a -}% -\def\XINT_dthb_again #1!#2!% -{% - \ifx\XINT_dthb_exclam#2% +\def\XINT_dthb_again #1!#2#3% +{% + \ifx#3\relax \expandafter\xint_firstoftwo \else \expandafter\xint_secondoftwo \fi - {\expandafter\XINT_dthb_again\the\numexpr\expandafter\XINT_dthb_a - \romannumeral`&&@\ifnum #1>\xint_c_ \xint_dothis{#1!}\fi\xint_orthat{}}% + {\expandafter\XINT_dthb_again + \the\numexpr + \ifnum #1>\xint_c_ + \xint_afterfi{\expandafter\XINT_dthb_update\the\numexpr#1}% + \fi}% {\ifnum #1>\xint_c_ \xint_dothis{#2#1!}\fi\xint_orthat{!#2!}}% }% \def\XINT_tofourhex #1!% diff --git a/Master/texmf-dist/tex/generic/xint/xintcfrac.sty b/Master/texmf-dist/tex/generic/xint/xintcfrac.sty index f9e6c5f5241..fb5a8744899 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.2n 2017/08/06 +%% The xint bundle 1.2o 2017/08/29 %% Copyright (C) 2013-2017 by Jean-Francois Burnol %% xintcfrac: Expandable continued fractions with xint package %% --------------------------------------------------------------- @@ -70,7 +70,7 @@ \XINTsetupcatcodes% defined in xintkernel.sty \XINT_providespackage \ProvidesPackage{xintcfrac}% - [2017/08/06 1.2n Expandable continued fractions with xint package (JFB)]% + [2017/08/29 1.2o Expandable continued fractions with xint package (JFB)]% \def\xintCFrac {\romannumeral0\xintcfrac }% \def\xintcfrac #1% {% @@ -371,12 +371,12 @@ }% \def\XINT_fgtc_e #1% {% - \xintifZero {#1}{\expandafter\xint_firstofone\xint_gobble_iii}% + \xintiiifZero {#1}{\expandafter\xint_firstofone\xint_gobble_iii}% {\XINT_fgtc_f {#1}}% }% \def\XINT_fgtc_f #1#2% {% - \xintifZero {#2}{\xint_thirdofthree}{\XINT_fgtc_g {#1}{#2}}% + \xintiiifZero {#2}{\xint_thirdofthree}{\XINT_fgtc_g {#1}{#2}}% }% \def\XINT_fgtc_g #1#2#3% {% diff --git a/Master/texmf-dist/tex/generic/xint/xintcore.sty b/Master/texmf-dist/tex/generic/xint/xintcore.sty index 579e8de0ff0..b1f73e6a6c6 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.2n 2017/08/06 +%% The xint bundle 1.2o 2017/08/29 %% Copyright (C) 2013-2017 by Jean-Francois Burnol %% xintcore: Expandable arithmetic on big integers %% --------------------------------------------------------------- @@ -70,7 +70,7 @@ \XINTsetupcatcodes% defined in xintkernel.sty \XINT_providespackage \ProvidesPackage{xintcore}% - [2017/08/06 1.2n Expandable arithmetic on big integers (JFB)]% + [2017/08/29 1.2o Expandable arithmetic on big integers (JFB)]% \csname XINT_Clamped_istrapped\endcsname \csname XINT_ConversionSyntax_istrapped\endcsname \csname XINT_DivisionByZero_istrapped\endcsname @@ -123,6 +123,7 @@ \XINT_resetFlag{Overflow}% not encountered so far in xint code 1.2l % .. others .. }% +\def\XINT_RaiseFlag #1{\expandafter\xint_gobble_i\csname XINT_#1Flag_ON\endcsname}% %% NOT IMPLEMENTED! WORK IN PROGRESS! (ALL SIGNALS TRAPPED, NO HANDLERS USED) \catcode`. 11 \let\XINT_Clamped.handler\xint_firstofone % WIP @@ -147,13 +148,19 @@ \newcount\xint_c_x^viii_mone \xint_c_x^viii_mone 99999999 \newcount\xint_c_xii_e_viii \xint_c_xii_e_viii 1200000000 \newcount\xint_c_xi_e_viii_mone \xint_c_xi_e_viii_mone 1099999999 +\def\XINT_cuz_small#1{% +\def\XINT_cuz_small ##1##2##3##4##5##6##7##8% +{% + \expandafter#1\the\numexpr ##1##2##3##4##5##6##7##8\relax +}}\XINT_cuz_small{ }% \def\xintiNum {\romannumeral0\xintinum }% \def\xintinum #1% {% \expandafter\XINT_num_cleanup\the\numexpr\expandafter\XINT_num_loop \romannumeral`&&@#1\xint:\xint:\xint:\xint:\xint:\xint:\xint:\xint:\xint:\Z }% -\let\xintNum\xintiNum \let\xintnum\xintinum +\def\xintNum {\romannumeral0\xintnum }% +\let\xintnum\xintinum \def\XINT_num #1% {% \expandafter\XINT_num_cleanup\the\numexpr\XINT_num_loop @@ -171,17 +178,12 @@ }% \def\XINT_num_end\xint:#1\xint:{#1+\xint_c_\xint:}% empty input ok \def\XINT_num_cleanup #1\xint:#2\Z { #1}% -\def\XINT_cuz_small#1{% -\def\XINT_cuz_small ##1##2##3##4##5##6##7##8% -{% - \expandafter#1\the\numexpr ##1##2##3##4##5##6##7##8\relax -}}\XINT_cuz_small{ }% \def\xintiiSgn {\romannumeral0\xintiisgn }% \def\xintiisgn #1% {% \expandafter\XINT_sgn \romannumeral`&&@#1\xint: }% -\def\xintSgn {\romannumeral0\xintsgn }% +\def\xintSgn {\romannumeral0\XINT_signaldeprecated{xintcore}{xintSgn}\xintsgn }% \def\xintsgn #1% {% \expandafter\XINT_sgn \romannumeral0\xintnum{#1}\xint: @@ -215,7 +217,7 @@ {% \expandafter\XINT_opp \romannumeral`&&@#1% }% -\def\xintiOpp {\romannumeral0\xintiopp }% +\def\xintiOpp {\romannumeral0\XINT_signaldeprecated{xintcore}{xintiOpp}\xintiopp }% \def\xintiopp #1% {% \expandafter\XINT_opp \romannumeral0\xintnum{#1}% @@ -234,7 +236,7 @@ {% \expandafter\XINT_abs \romannumeral`&&@#1% }% -\def\xintiAbs {\romannumeral0\xintiabs }% +\def\xintiAbs {\romannumeral0\XINT_signaldeprecated{xintcore}{xintiAbs}\xintiabs }% \def\xintiabs #1% {% \expandafter\XINT_abs \romannumeral0\xintnum{#1}% @@ -246,17 +248,12 @@ -{ #1}% \krof }% -\def\xintiiFDg {\romannumeral0\xintiifdg }% -\def\xintiifdg #1% -{% - \expandafter\XINT_fdg \romannumeral`&&@#1\xint:\Z -}% \def\xintFDg {\romannumeral0\xintfdg }% -\def\xintfdg #1% -{% - \expandafter\XINT_fdg \romannumeral0\xintnum{#1}\xint:\Z -}% -\def\XINT_FDg #1{\romannumeral0\XINT_fdg #1\xint:\Z }% +\def\xintfdg #1{\expandafter\XINT_fdg \romannumeral`&&@#1\xint:\Z}% +\def\xintiiFDg {\romannumeral0\XINT_signaldeprecated{xintcore}{xintiiFDg}\xintiifdg }% +\let\xintiifdg\xintfdg +\def\XINT_FDg #1% + {\romannumeral0\expandafter\XINT_fdg\romannumeral`&&@\xintnum{#1}\xint:\Z }% \def\XINT_fdg #1#2#3\Z {% \xint_UDzerominusfork @@ -265,12 +262,11 @@ 0-{ #1}% positive \krof }% -\def\xintLDg {\romannumeral0\xintldg }% -\def\xintldg #1{\expandafter\XINT_ldg_fork\romannumeral0\xintnum{#1}% - \XINT_ldg_c{}{}{}{}{}{}{}{}\xint_bye\relax}% -\def\xintiiLDg {\romannumeral0\xintiildg }% -\def\xintiildg #1{\expandafter\XINT_ldg_fork\romannumeral`&&@#1% +\def\xintLDg {\romannumeral0\xintldg }% +\def\xintldg #1{\expandafter\XINT_ldg_fork\romannumeral`&&@#1% \XINT_ldg_c{}{}{}{}{}{}{}{}\xint_bye\relax}% +\def\xintiiLDg {\romannumeral0\XINT_signaldeprecated{xintcore}{xintiiLDg}\xintiildg }% +\let\xintiildg\xintldg \def\XINT_ldg_fork #1% {% \xint_UDsignfork @@ -575,7 +571,7 @@ {% \expandafter\XINT_cuz_small\xint_gob_til_sc #8#7#6#5#4#3#2#1% }% -\def\xintiAdd {\romannumeral0\xintiadd }% +\def\xintiAdd {\romannumeral0\XINT_signaldeprecated{xintcore}{xintiAdd}\xintiadd }% \def\xintiadd #1{\expandafter\XINT_iadd\romannumeral0\xintnum{#1}\xint:}% \def\xintiiAdd {\romannumeral0\xintiiadd }% \def\xintiiadd #1{\expandafter\XINT_iiadd\romannumeral`&&@#1\xint:}% @@ -730,7 +726,7 @@ \def\XINT_add_m #1!{\expandafter\XINT_add_n\the\numexpr\xint_c_i+#1\xint:}% \def\XINT_add_n #1#2\xint:{1#2\expandafter!\the\numexpr\XINT_add_o #1}% \def\XINT_add_o #1{\if #12\expandafter\XINT_add_l\else\expandafter\XINT_add_ke \fi}% -\def\xintCmp {\romannumeral0\xintcmp }% +\def\xintCmp {\romannumeral0\XINT_signaldeprecated{xintcore}{xintCmp}\xintcmp }% \def\xintcmp #1{\expandafter\XINT_icmp\romannumeral0\xintnum{#1}\xint:}% \def\xintiiCmp {\romannumeral0\xintiicmp }% \def\xintiicmp #1{\expandafter\XINT_iicmp\romannumeral`&&@#1\xint:}% @@ -841,7 +837,7 @@ \expandafter\XINT_sub_nfork\expandafter #1\romannumeral`&&@#3\xint:#2\xint: }% -\def\xintiSub {\romannumeral0\xintisub }% +\def\xintiSub {\romannumeral0\XINT_signaldeprecated{xintcore}{xintiSub}\xintisub }% \def\xintisub #1{\expandafter\XINT_isub\romannumeral0\xintnum{#1}\xint:}% \def\XINT_isub #1#2\xint:#3% {% @@ -1039,7 +1035,7 @@ \the\numexpr \xint_c_xi_e_viii_mone-#1#2#3#4#5#6#7#8\XINT_sub_comp_loop }% \def\XINT_sub_comp_clean 1#1{+#1\relax}% -\def\xintiMul {\romannumeral0\xintimul }% +\def\xintiMul {\romannumeral0\XINT_signaldeprecated{xintcore}{xintiMul}\xintimul }% \def\xintimul #1% {% \expandafter\XINT_imul\romannumeral0\xintnum{#1}\xint: @@ -1215,17 +1211,7 @@ {% 1#6#7\expandafter!\the\numexpr \xint_c_x^viii+#1#2#3#4#5+#8!% }% -\def\xintiiQuo {\romannumeral0\xintiiquo }% -\def\xintiiRem {\romannumeral0\xintiirem }% -\def\xintiiquo {\expandafter\xint_firstoftwo_thenstop\romannumeral0\xintiidivision }% -\def\xintiirem {\expandafter\xint_secondoftwo_thenstop\romannumeral0\xintiidivision }% -\def\xintiQuo {\romannumeral0\xintiquo }% -\def\xintiRem {\romannumeral0\xintirem }% -\def\xintiquo {\expandafter\xint_firstoftwo_thenstop\romannumeral0\xintidivision }% -\def\xintirem {\expandafter\xint_secondoftwo_thenstop\romannumeral0\xintidivision }% -%%\let\xintQuo\xintiQuo\let\xintquo\xintiquo % now removed -%%\let\xintRem\xintiRem\let\xintrem\xintirem % now removed -\def\xintiDivision {\romannumeral0\xintidivision }% +\def\xintiDivision {\romannumeral0\XINT_signaldeprecated{xintcore}{xintiDivision}\xintidivision }% \def\xintidivision #1{\expandafter\XINT_idivision\romannumeral0\xintnum{#1}\xint:}% \def\XINT_idivision #1#2\xint:#3{\expandafter\XINT_iidivision_a\expandafter #1% \romannumeral0\xintnum{#3}\xint:#2\xint:}% @@ -1296,7 +1282,7 @@ \def\XINT_div_BisTwo #1#2% {% \expandafter\expandafter\expandafter\XINT_div_BisTwo_a - \ifodd\xintiiLDg{#2} \expandafter1\else \expandafter0\fi {#2}% + \ifodd\xintLDg{#2} \expandafter1\else \expandafter0\fi {#2}% }% \def\XINT_div_BisTwo_a #1#2% {% @@ -1822,7 +1808,19 @@ {% \xint_c_x^viii_mone+#3+(#1#2+#5)/#4!% }% -\def\xintiDivRound {\romannumeral0\xintidivround }% +\def\xintiiQuo {\romannumeral0\xintiiquo }% +\def\xintiiRem {\romannumeral0\xintiirem }% +\def\xintiiquo + {\expandafter\xint_firstoftwo_thenstop\romannumeral0\xintiidivision }% +\def\xintiirem + {\expandafter\xint_secondoftwo_thenstop\romannumeral0\xintiidivision }% +\def\xintiQuo {\romannumeral0\XINT_signaldeprecated{xintcore}{xintiQuo}\xintiquo }% +\def\xintiRem {\romannumeral0\XINT_signaldeprecated{xintcore}{xintiRem}\xintirem }% +\def\xintiquo + {\expandafter\xint_firstoftwo_thenstop\romannumeral0\xintidivision }% +\def\xintirem + {\expandafter\xint_secondoftwo_thenstop\romannumeral0\xintidivision }% +\def\xintiDivRound {\romannumeral0\XINT_signaldeprecated{xintcore}{xintiDivRound}\xintidivround }% \def\xintidivround #1% {\expandafter\XINT_idivround\romannumeral0\xintnum{#1}\xint:}% \def\xintiiDivRound {\romannumeral0\xintiidivround }% @@ -1863,7 +1861,7 @@ \romannumeral0\XINT_div_prepare {#2}{#1#30}% \xint_bye\xint_Bye3456789\xint_bye/\xint_c_x\relax }% -\def\xintiDivTrunc {\romannumeral0\xintidivtrunc }% +\def\xintiDivTrunc {\romannumeral0\XINT_signaldeprecated{xintcore}{xintiDivTrunc}\xintidivtrunc }% \def\xintidivtrunc #1{\expandafter\XINT_iidivtrunc\romannumeral0\xintnum{#1}\xint:}% \def\xintiiDivTrunc {\romannumeral0\xintiidivtrunc }% \def\xintiidivtrunc #1{\expandafter\XINT_iidivtrunc\romannumeral`&&@#1\xint:}% @@ -1893,7 +1891,7 @@ \def\XINT_iidivtrunc_pos #1#2\xint:#3\xint: {\expandafter\xint_firstoftwo_thenstop \romannumeral0\XINT_div_prepare {#2}{#1#3}}% -\def\xintiMod {\romannumeral0\xintimod }% +\def\xintiMod {\romannumeral0\XINT_signaldeprecated{xintcore}{xintiMod}\xintimod }% \def\xintimod #1{\expandafter\XINT_iimod\romannumeral0\xintnum{#1}\xint:}% \def\xintiiMod {\romannumeral0\xintiimod }% \def\xintiimod #1{\expandafter\XINT_iimod\romannumeral`&&@#1\xint:}% @@ -1928,7 +1926,7 @@ {% \expandafter\XINT_sqr\romannumeral0\xintiiabs{#1}\xint: }% -\def\xintiSqr {\romannumeral0\xintisqr }% +\def\xintiSqr {\romannumeral0\XINT_signaldeprecated{xintcore}{xintiSqr}\xintisqr }% \def\xintisqr #1% {% \expandafter\XINT_sqr\romannumeral0\xintiabs{#1}\xint: @@ -1977,7 +1975,7 @@ \expandafter\xint_pow\the\numexpr #2\expandafter .\romannumeral`&&@#1\xint: }% -\def\xintiPow {\romannumeral0\xintipow }% +\def\xintiPow {\romannumeral0\XINT_signaldeprecated{xintcore}{xintiPow}\xintipow }% \def\xintipow #1#2% {% \expandafter\xint_pow\the\numexpr #2\expandafter @@ -2116,8 +2114,8 @@ }% \def\xintiiFac {\romannumeral0\xintiifac }% \def\xintiifac #1{\expandafter\XINT_fac_fork\the\numexpr#1.}% -\def\xintiFac {\romannumeral0\xintifac }% -\let\xintifac\xintiifac +\def\xintiFac {\romannumeral0\XINT_signaldeprecated{xintcore}{xintiFac}\xintifac }% +\let\xintifac \xintiifac % redefined by xintfrac \def\XINT_fac_fork #1#2.% {% \xint_UDzerominusfork @@ -2221,17 +2219,49 @@ \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;!}% -\catcode`! 11 -\def\xintAbs {\Did_you_mean_iiAbs?or_load_xintfrac!}% -\def\xintOpp {\Did_you_mean_iiOpp?or_load_xintfrac!}% -\def\xintAdd {\Did_you_mean_iiAdd?or_load_xintfrac!}% -\def\xintSub {\Did_you_mean_iiSub?or_load_xintfrac!}% -\def\xintMul {\Did_you_mean_iiMul?or_load_xintfrac!}% -\def\xintPow {\Did_you_mean_iiPow?or_load_xintfrac!}% -\def\xintSqr {\Did_you_mean_iiSqr?or_load_xintfrac!}% -\def\xintQuo {\Removed!use_xintiQuo_or_xintiiQuo!}% -\def\xintRem {\Removed!use_xintiRem_or_xintiiRem!}% -\catcode`! 12 +\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}{}% +They will get removed at some future release.}}% + {% no deprecated macro used (at top level...) + }% +}\fi\fi +\def\XINT_useiimessage #1% used in LaTeX only +{% + \XINT_ifFlagRaised {#1}% + {\@backslashchar#1 + (load xintfrac or use \@backslashchar xintii\xint_gobble_iv#1!)\MessageBreak}% + {}% +}% \XINT_restorecatcodes_endinput% \endinput %% diff --git a/Master/texmf-dist/tex/generic/xint/xintexpr.sty b/Master/texmf-dist/tex/generic/xint/xintexpr.sty index c9a92005f23..15789f2d24e 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.2n 2017/08/06 +%% The xint bundle 1.2o 2017/08/29 %% Copyright (C) 2013-2017 by Jean-Francois Burnol %% xintexpr: Expandable expression parser %% --------------------------------------------------------------- @@ -81,7 +81,7 @@ \XINTsetupcatcodes% \XINT_providespackage \ProvidesPackage{xintexpr}% - [2017/08/06 1.2n Expandable expression parser (JFB)]% + [2017/08/29 1.2o Expandable expression parser (JFB)]% \catcode`! 11 \let\XINT_Cmp \xintiiCmp \def\xint_gob_til_! #1!{}% ! with catcode 11 @@ -737,9 +737,9 @@ \XINT_expr_defbin_b {expr} {>=} {v}{vi} {xintGtorEq}% \XINT_expr_defbin_b {flexpr}{>=} {v}{vi} {xintGtorEq}% \XINT_expr_defbin_b {iiexpr}{>=} {v}{vi} {xintiiGtorEq}% -\XINT_expr_defbin_b {expr} {!=} {v}{vi} {xintNeq}% -\XINT_expr_defbin_b {flexpr}{!=} {v}{vi} {xintNeq}% -\XINT_expr_defbin_b {iiexpr}{!=} {v}{vi} {xintiiNeq}% +\XINT_expr_defbin_b {expr} {!=} {v}{vi} {xintNotEq}% +\XINT_expr_defbin_b {flexpr}{!=} {v}{vi} {xintNotEq}% +\XINT_expr_defbin_b {iiexpr}{!=} {v}{vi} {xintiiNotEq}% \XINT_expr_defbin_b {expr} {..} {iii}{vi} {xintSeq::csv}% \XINT_expr_defbin_b {flexpr}{..} {iii}{vi} {xintSeq::csv}% \XINT_expr_defbin_b {iiexpr}{..} {iii}{vi} {xintiiSeq::csv}% @@ -1360,7 +1360,7 @@ }% \let\XINT_expr_precedence_! \xint_c_x \def\XINT_expr_op_! #1{\expandafter\XINT_expr_getop - \csname .=\xintiFac{\XINT_expr_unlock #1}\endcsname }% + \csname .=\xintFac{\XINT_expr_unlock #1}\endcsname }% \def\XINT_flexpr_op_! #1{\expandafter\XINT_expr_getop \csname .=\XINTinFloatFac{\XINT_expr_unlock #1}\endcsname }% \def\XINT_iiexpr_op_! #1{\expandafter\XINT_expr_getop @@ -2062,7 +2062,7 @@ {% \expandafter #1\expandafter #2\csname .=% \expandafter\XINT_expr_argandopt - \romannumeral`&&@\XINT_expr_unlock#3,,.\xintiFac\XINTinFloatFac + \romannumeral`&&@\XINT_expr_unlock#3,,.\xintFac\XINTinFloatFac \endcsname }% \def\XINT_flexpr_func_factorial #1#2#3% @@ -2150,7 +2150,7 @@ \def\XINT_expr_func_binomial #1#2#3% {% \expandafter #1\expandafter #2\csname .=% - \expandafter\expandafter\expandafter\xintiBinomial + \expandafter\expandafter\expandafter\xintBinomial \expandafter\XINT_expr_twoargs \romannumeral`&&@\XINT_expr_unlock #3,\endcsname }% @@ -2171,7 +2171,7 @@ \def\XINT_expr_func_pfactorial #1#2#3% {% \expandafter #1\expandafter #2\csname .=% - \expandafter\expandafter\expandafter\xintiPFactorial + \expandafter\expandafter\expandafter\xintPFactorial \expandafter\XINT_expr_twoargs \romannumeral`&&@\XINT_expr_unlock #3,\endcsname }% @@ -2568,8 +2568,8 @@ \xintFor #1 in {DivTrunc,Mod,Round,Trunc,iRound,iTrunc,iQuo,iRem, iiDivTrunc,iiDivRound,iiMod,iiQuo,iiRem,% - Lt,Gt,Eq,LtorEq,GtorEq,Neq,% - iiLt,iiGt,iiEq,iiLtorEq,iiGtorEq,iiNeq,% + Lt,Gt,Eq,LtorEq,GtorEq,NotEq,% + iiLt,iiGt,iiEq,iiLtorEq,iiGtorEq,iiNotEq,% Add,Sub,Mul,Div,Pow,E,% iiAdd,iiSub,iiMul,iiPow,iiE,% AND,OR,XOR,% @@ -2585,8 +2585,8 @@ }% \xintFor #1 in {Num,Irr,Abs,iiAbs,Sgn,iiSgn,TFrac,Floor,iFloor,Ceil,iCeil,% Sqr,iiSqr,iiSqrt,iiSqrtR,iiIsZero,iiIsNotZero,iiifNotZero,iiifSgn,% - Odd,Even,iiOdd,iiEven,Opp,iiOpp,iiifZero,iFac,iBinomial,% - iPFactorial,iiFac,iiBinomial,iiPFactorial,Bool,Toggle}\do + Odd,Even,iiOdd,iiEven,Opp,iiOpp,iiifZero,Fac,Binomial,% + PFactorial,iiFac,iiBinomial,iiPFactorial,Bool,Toggle}\do {\toks0 \expandafter{\the\toks0% \expandafter\let\csname xint#1NE\expandafter\endcsname\csname xint#1\expandafter diff --git a/Master/texmf-dist/tex/generic/xint/xintfrac.sty b/Master/texmf-dist/tex/generic/xint/xintfrac.sty index 7bd7db6272c..4dda12fb0c2 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.2n 2017/08/06 +%% The xint bundle 1.2o 2017/08/29 %% Copyright (C) 2013-2017 by Jean-Francois Burnol %% xintfrac: Expandable operations on fractions %% --------------------------------------------------------------- @@ -70,7 +70,31 @@ \XINTsetupcatcodes% defined in xintkernel.sty \XINT_providespackage \ProvidesPackage{xintfrac}% - [2017/08/06 1.2n Expandable operations on fractions (JFB)]% + [2017/08/29 1.2o Expandable operations on fractions (JFB)]% +\def\xintSgn {\romannumeral0\xintsgn }% deprecated from xintcore +\def\xintCmp {\romannumeral0\xintcmp }% deprecated from xintcore +\def\xintEq {\romannumeral0\xinteq }% deprecated from xint +\def\xintNeq #1#2% renamed into \xintNotEq + {\romannumeral0\XINT_signaldeprecated{xintfrac}{xintNeq}\xintifeq {#1}{#2}{0}{1}}% +\def\xintNotEq #1#2{\romannumeral0\xintifeq {#1}{#2}{0}{1}}% +\def\xintGt {\romannumeral0\xintgt }% +\def\xintLt {\romannumeral0\xintlt }% +\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\xintIsNotZero{\romannumeral0\xintisnotzero }% +\def\xintIsOne {\romannumeral0\xintisone }% +\def\xintOdd {\romannumeral0\xintodd }% +\def\xintEven {\romannumeral0\xinteven }% +\def\xintifSgn{\romannumeral0\xintifsgn }% +\def\xintifCmp{\romannumeral0\xintifcmp }% +\def\xintifEq {\romannumeral0\xintifeq }% +\def\xintifGt {\romannumeral0\xintifgt }% +\def\xintifLt {\romannumeral0\xintiflt }% +\def\xintifZero {\romannumeral0\xintifzero }% +\def\xintifNotZero{\romannumeral0\xintifnotzero }% +\def\xintifOne {\romannumeral0\xintifone }% +\def\xintifOdd {\romannumeral0\xintifodd }% \def\XINT_cntSgnFork #1% {% \ifcase #1\expandafter\xint_secondofthree @@ -843,7 +867,6 @@ }% \def\xintTTrunc {\romannumeral0\xintttrunc }% \def\xintttrunc {\xintitrunc\xint_c_}% -\let\xintNum \xintTTrunc \let\xintnum \xintttrunc \def\xintRound {\romannumeral0\xintround }% \def\xintiRound {\romannumeral0\xintiround }% @@ -1338,17 +1361,31 @@ \expandafter\XINT_fpow_pos_B\expandafter {#3}{#1}{#2}% }% \def\XINT_fpow_pos_B #1#2{\XINT_outfrac {#2}{#1}}% -\def\xintifac #1{\expandafter\XINT_fac_fork\the\numexpr \xintNum{#1}.}% +\def\xintifac #1{\expandafter\XINT_fac_fork\the\numexpr\xintNum{#1}.}% +\def\xintFac {\romannumeral0\xintfac}% +\def\xintfac #1{\expandafter\XINT_fac_fork\the\numexpr\xintNum{#1}.[0]}% \def\xintibinomial #1#2% {% \expandafter\XINT_binom_pre \the\numexpr\xintNum{#1}\expandafter.\the\numexpr\xintNum{#2}.% }% +\def\xintBinomial {\romannumeral0\xintbinomial}% +\def\xintbinomial #1#2% +{% + \expandafter\XINT_binom_pre + \the\numexpr\xintNum{#1}\expandafter.\the\numexpr\xintNum{#2}.[0]% +}% \def\xintipfactorial #1#2% {% \expandafter\XINT_pfac_fork \the\numexpr\xintNum{#1}\expandafter.\the\numexpr\xintNum{#2}.% }% +\def\xintPFactorial {\romannumeral0\xintpfactorial}% +\def\xintpfactorial #1#2% +{% + \expandafter\XINT_pfac_fork + \the\numexpr\xintNum{#1}\expandafter.\the\numexpr\xintNum{#2}.[0]% +}% \def\xintPrd {\romannumeral0\xintprd }% \def\xintprd #1{\expandafter\XINT_fprdexpr \romannumeral`&&@#1\xint:}% \def\XINT_fprdexpr {\XINT_fprod_loop_a {1/1[0]}}% @@ -2263,7 +2300,7 @@ }% \def\XINT_flpowerh_a #1;% {% - \if0\xintiiLDg{#1}\expandafter\XINT_flpowerh_int + \if0\xintLDg{#1}\expandafter\XINT_flpowerh_int \else\expandafter\XINT_flpowerh_b \fi #1.% }% @@ -2280,7 +2317,7 @@ }% \def\XINT_flpowerh_c #1.% {% - \ifodd\xintiiLDg{#1} %<- intentional space + \ifodd\xintLDg{#1} %<- intentional space \expandafter\XINT_flpowerh_d\else\expandafter\XINT_flpowerh_e \fi #1.% }% @@ -2357,7 +2394,7 @@ \def\XINT_flpower_loopI #1.% {% \if1\XINT_isOne {#1}\xint_dothis\XINT_flpower_ItoIII\fi - \ifodd\xintiiLDg{#1} %<- intentional space + \ifodd\xintLDg{#1} %<- intentional space \xint_dothis{\expandafter\XINT_flpower_loopI_odd}\fi \xint_orthat{\expandafter\XINT_flpower_loopI_even}% \romannumeral0\XINT_half @@ -2386,7 +2423,7 @@ \def\XINT_flpower_loopII #1.% {% \if1\XINT_isOne{#1}\xint_dothis\XINT_flpower_IItoIII\fi - \ifodd\xintiiLDg{#1} %<- intentional space + \ifodd\xintLDg{#1} %<- intentional space \xint_dothis{\expandafter\XINT_flpower_loopII_odd}\fi \xint_orthat{\expandafter\XINT_flpower_loopII_even}% \romannumeral0\XINT_half#1\xint_bye\xint_Bye345678\xint_bye @@ -3025,6 +3062,17 @@ {\romannumeral0\XINTinfloat[#1]{#3}}{#1}}% \def\XINT_infloatmod #1#2{\expandafter\XINT_infloatmod_a\expandafter {#2}{#1}}% \def\XINT_infloatmod_a #1#2#3{\XINTinfloat [#3]{\xintMod {#2}{#1}}}% +\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 +It will get removed at some future release.}}% + {% no deprecated macro used (at top level...) + }% +}\fi\fi \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 9c58b540367..981520a4909 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.2n 2017/08/06 +%% The xint bundle 1.2o 2017/08/29 %% Copyright (C) 2013-2017 by Jean-Francois Burnol %% xintgcd: Euclidean algorithm with xint package %% --------------------------------------------------------------- @@ -70,7 +70,7 @@ \XINTsetupcatcodes% defined in xintkernel.sty \XINT_providespackage \ProvidesPackage{xintgcd}% - [2017/08/06 1.2n Euclide algorithm with xint package (JFB)]% + [2017/08/29 1.2o Euclide algorithm with xint package (JFB)]% \def\xintGCD {\romannumeral0\xintgcd }% \def\xintgcd #1% {% diff --git a/Master/texmf-dist/tex/generic/xint/xintkernel.sty b/Master/texmf-dist/tex/generic/xint/xintkernel.sty index b74070c1f66..2a9707aab89 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.2n 2017/08/06 +%% The xint bundle 1.2o 2017/08/29 %% Copyright (C) 2013-2017 by Jean-Francois Burnol %% xintkernel: Paraphernalia for the xint packages %% --------------------------------------------------------------- @@ -156,7 +156,7 @@ \fi \XINT_providespackage \ProvidesPackage {xintkernel}% - [2017/08/06 1.2n Paraphernalia for the xint packages (JFB)]% + [2017/08/29 1.2o 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 9e2716e98ba..7adc2b328da 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.2n 2017/08/06 +%% The xint bundle 1.2o 2017/08/29 %% Copyright (C) 2013-2017 by Jean-Francois Burnol %% xintseries: Expandable partial sums with xint package %% --------------------------------------------------------------- @@ -70,7 +70,7 @@ \XINTsetupcatcodes% defined in xintkernel.sty \XINT_providespackage \ProvidesPackage{xintseries}% - [2017/08/06 1.2n Expandable partial sums with xint package (JFB)]% + [2017/08/29 1.2o 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 c1729296949..2c522f602f7 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.2n 2017/08/06 +%% The xint bundle 1.2o 2017/08/29 %% Copyright (C) 2013-2017 by Jean-Francois Burnol %% xinttools: Expandable and non-expandable utilities %% --------------------------------------------------------------- @@ -70,7 +70,7 @@ \XINTsetupcatcodes% defined in xintkernel.sty \XINT_providespackage \ProvidesPackage{xinttools}% - [2017/08/06 1.2n Expandable and non-expandable utilities (JFB)]% + [2017/08/29 1.2o Expandable and non-expandable utilities (JFB)]% \newtoks\XINT_toks \xint_firstofone{\let\XINT_sptoken= } %<- space here! \def\xintgodef {\global\xintodef }% -- cgit v1.2.3