diff options
Diffstat (limited to 'Master/texmf-dist/tex/generic/xint/xint.sty')
-rw-r--r-- | Master/texmf-dist/tex/generic/xint/xint.sty | 1000 |
1 files changed, 521 insertions, 479 deletions
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% +\def\xintiLen {\romannumeral0\xintilen }% +\def\xintilen #1{\def\xintilen ##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% -{% - \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,99 +129,392 @@ {\expandafter#1\xint_gob_til_Z ##1}% }\XINT_revdigits_end{ }% \let\xintRev\xintReverseDigits -\def\xintLen {\romannumeral0\xintlen }% -\def\xintlen #1{\def\xintlen ##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#1\the\numexpr - \expandafter\XINT_len_fork\romannumeral0\xintnum{##1}% - \xint:\xint:\xint:\xint:\xint:\xint:\xint:\xint:\xint: + \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}% +\def\xintDecSplit {\romannumeral0\xintdecsplit }% +\def\xintdecsplit #1#2% +{% + \expandafter\XINT_split_finish + \romannumeral0\expandafter\XINT_split_xfork + \the\numexpr #1\expandafter.\romannumeral`&&@#2% + \xint_bye2345678\xint_bye..% +}% +\def\XINT_split_finish #1.#2.{{#1}{#2}}% +\def\XINT_split_xfork #1% +{% + \xint_UDzerominusfork + #1-\XINT_split_zerosplit + 0#1\XINT_split_fromleft + 0-{\XINT_split_fromright #1}% + \krof +}% +\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% +{% + \xint_UDsignfork + #1\XINT_split_fromleft_b + -{\XINT_split_fromleft_end_a #1}% + \krof +}% +\def\XINT_split_fromleft_b #1.#2#3#4#5#6#7#8#9% +{% + \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\XINT_split_fromleft_end_a #1.% +{% + \expandafter\XINT_split_fromleft_clean + \the\numexpr1\csname XINT_split_fromleft_end#1\endcsname +}% +\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 +{% + \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\relax -}}\xintlen{ }% -\def\XINT_len_fork #1% + \xint_c_iv\xint_c_iii\xint_c_ii\xint_c_i\xint_c_\xint_bye + .#2\xint_bye +}% +\def\XINT_split_fromright_a #1% {% - \expandafter\XINT_length_loop\xint_UDsignfork#1{}-#1\krof + \xint_UDsignfork + #1\XINT_split_fromleft + -\XINT_split_fromright_Lempty + \krof }% -\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_split_fromright_Lempty #1.#2\xint_bye#3..{.#2.}% +\def\xintDecSplitL {\romannumeral0\xintdecsplitl }% +\def\xintdecsplitl #1#2% {% - \ifcase \xintSgn{#1} - \expandafter\xint_secondofthree_thenstop - \or\expandafter\xint_thirdofthree_thenstop - \else\expandafter\xint_firstofthree_thenstop + \expandafter\XINT_splitl_finish + \romannumeral0\expandafter\XINT_split_xfork + \the\numexpr #1\expandafter.\romannumeral`&&@#2% + \xint_bye2345678\xint_bye..% +}% +\def\XINT_splitl_finish #1.#2.{ #1}% +\def\xintDecSplitR {\romannumeral0\xintdecsplitr }% +\def\xintdecsplitr #1#2% +{% + \expandafter\XINT_splitr_finish + \romannumeral0\expandafter\XINT_split_xfork + \the\numexpr #1\expandafter.\romannumeral`&&@#2% + \xint_bye2345678\xint_bye..% +}% +\def\XINT_splitr_finish #1.#2.{ #2}% +\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% +{% + \xint_UDzerominusfork + #1-\XINT_dsh_xiszero + 0#1\XINT_dsx_xisNeg_checkA + 0-{\XINT_dsh_xisPos #1}% + \krof +}% +\def\XINT_dsh_xiszero #1.#2;{ #2}% +\def\XINT_dsh_xisPos +{% + \expandafter\xint_firstoftwo_thenstop\romannumeral0\XINT_dsx_xisPos +}% +\def\xintDSx {\romannumeral0\xintdsx }% +\def\xintdsx #1#2% +{% + \expandafter\XINT_dsx_fork\the\numexpr#1\expandafter.\romannumeral`&&@#2;% +}% +\def\XINT_dsx_fork #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% +{% + \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\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\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:}% +\def\XINT_iigeq #1#2\xint:#3% +{% + \expandafter\XINT_geq_fork\expandafter #1\romannumeral`&&@#3\xint:#2\xint: +}% +\def\XINT_geq #1#2\xint:#3% +{% + \expandafter\XINT_geq_fork\expandafter #1\romannumeral0\xintnum{#3}\xint:#2\xint: +}% +\def\XINT_geq_fork #1#2% +{% + \xint_UDzerofork + #1\XINT_geq_firstiszero + #2\XINT_geq_secondiszero + 0{}% + \krof + \xint_UDsignsfork + #1#2\XINT_geq_minusminus + #1-\XINT_geq_minusplus + #2-\XINT_geq_plusminus + --\XINT_geq_plusplus + \krof #1#2% +}% +\def\XINT_geq_firstiszero #1\krof 0#2#3\xint:#4\xint: + {\xint_UDzerofork #2{ 1}0{ 0}\krof }% +\def\XINT_geq_secondiszero #1\krof #20#3\xint:#4\xint:{ 1}% +\def\XINT_geq_plusminus #1-{\XINT_geq_plusplus #1{}}% +\def\XINT_geq_minusplus -#1{\XINT_geq_plusplus {}#1}% +\def\XINT_geq_minusminus --{\XINT_geq_plusplus {}{}}% +\def\XINT_geq_plusplus + {\expandafter\XINT_geq_finish\romannumeral0\XINT_cmp_plusplus}% +\def\XINT_geq_finish #1{\if-#1\expandafter\XINT_geq_no + \else\expandafter\XINT_geq_yes\fi}% +\def\XINT_geq_no 1{ 0}% +\def\XINT_geq_yes { 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% +{% + \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% +{% + \unless\if#2X\xint_dothis0\fi + \unless\if#11\xint_dothis0\fi + \xint_orthat1% +}% +\def\xintiiOdd {\romannumeral0\xintiiodd }% +\def\xintiiodd #1% +{% + \ifodd\xintLDg{#1} %<- intentional space + \xint_afterfi{ 1}% + \else + \xint_afterfi{ 0}% \fi }% -\def\xintiiifSgn {\romannumeral0\xintiiifsgn }% -\def\xintiiifsgn #1% +\def\xintOdd {\romannumeral0\XINT_signaldeprecated{xint}{xintOdd}\xintodd }% +\def\xintodd #1% {% - \ifcase \xintiiSgn{#1} - \expandafter\xint_secondofthree_thenstop - \or\expandafter\xint_thirdofthree_thenstop - \else\expandafter\xint_firstofthree_thenstop + \ifodd\xintLDg{\xintNum{#1}} %<- intentional space + \xint_afterfi{ 1}% + \else + \xint_afterfi{ 0}% \fi }% -\def\xintifZero {\romannumeral0\xintifzero }% -\def\xintifzero #1% +\def\xintiiEven {\romannumeral0\xintiieven }% +\def\xintiieven #1% {% - \if0\xintSgn{#1}% - \expandafter\xint_firstoftwo_thenstop + \ifodd\xintLDg{#1} %<- intentional space + \xint_afterfi{ 0}% \else - \expandafter\xint_secondoftwo_thenstop + \xint_afterfi{ 1}% \fi }% -\def\xintifNotZero {\romannumeral0\xintifnotzero }% -\def\xintifnotzero #1% +\def\xintEven {\romannumeral0\XINT_signaldeprecated{xint}{xintEven}\xinteven }% +\def\xinteven #1% {% - \if0\xintSgn{#1}% - \expandafter\xint_secondoftwo_thenstop + \ifodd\xintLDg{\xintNum{#1}} %<- intentional space + \xint_afterfi{ 0}% \else - \expandafter\xint_firstoftwo_thenstop + \xint_afterfi{ 1}% \fi }% -\def\xintiiifZero {\romannumeral0\xintiiifzero }% -\def\xintiiifzero #1% +\def\xintiiMON {\romannumeral0\xintiimon }% +\def\xintiimon #1% {% - \if0\xintiiSgn{#1}% - \expandafter\xint_firstoftwo_thenstop + \ifodd\xintLDg {#1} %<- intentional space + \xint_afterfi{ -1}% \else - \expandafter\xint_secondoftwo_thenstop + \xint_afterfi{ 1}% \fi }% -\def\xintiiifNotZero {\romannumeral0\xintiiifnotzero }% -\def\xintiiifnotzero #1% +\def\xintMON {\romannumeral0\XINT_signaldeprecated{xint}{xintMON}\xintmon }% +\def\xintmon #1% {% - \if0\xintiiSgn{#1}% - \expandafter\xint_secondoftwo_thenstop + \ifodd\xintLDg{\xintNum{#1}} %<- intentional space + \xint_afterfi{ -1}% \else - \expandafter\xint_firstoftwo_thenstop + \xint_afterfi{ 1}% \fi }% -\def\xintiiifOne {\romannumeral0\xintiiifone }% -\def\xintiiifone #1% +\def\xintiiMMON {\romannumeral0\xintiimmon }% +\def\xintiimmon #1% {% - \if1\xintiiIsOne{#1}% - \expandafter\xint_firstoftwo_thenstop + \ifodd\xintLDg {#1} %<- intentional space + \xint_afterfi{ 1}% \else - \expandafter\xint_secondoftwo_thenstop + \xint_afterfi{ -1}% \fi }% -\def\xintifOne {\romannumeral0\xintifone }% -\def\xintifone #1% +\def\xintMMON {\romannumeral0\XINT_signaldeprecated{xint}{xintMMON}\xintmmon }% +\def\xintmmon #1% {% - \if1\xintIsOne{#1}% - \expandafter\xint_firstoftwo_thenstop + \ifodd\xintLDg{\xintNum{#1}} %<- intentional space + \xint_afterfi{ 1}% \else - \expandafter\xint_secondoftwo_thenstop + \xint_afterfi{ -1}% \fi }% -\let\xintifTrueAelseB\xintifNotZero -\let\xintifFalseAelseB\xintifZero -%%\let\xintifTrue\xintifNotZero % now removed -%%\let\xintifTrueFalse\xintifNotZero % now removed -\def\xintifCmp {\romannumeral0\xintifcmp }% +\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\xintifSgn {\romannumeral0\XINT_signaldeprecated{xint}{xintifSgn}\xintifsgn }% +\def\xintifsgn #1% +{% + \ifcase \xintSgn{#1} + \expandafter\xint_secondofthree_thenstop + \or\expandafter\xint_thirdofthree_thenstop + \else\expandafter\xint_firstofthree_thenstop + \fi +}% +\def\xintiiifSgn {\romannumeral0\xintiiifsgn }% +\def\xintiiifsgn #1% +{% + \ifcase \xintiiSgn{#1} + \expandafter\xint_secondofthree_thenstop + \or\expandafter\xint_thirdofthree_thenstop + \else\expandafter\xint_firstofthree_thenstop + \fi +}% +\def\xintifCmp {\romannumeral0\XINT_signaldeprecated{xint}{xintifCmp}\xintifcmp }% \def\xintifcmp #1#2% {% \ifcase\xintCmp {#1}{#2} @@ -249,7 +532,7 @@ \else\expandafter\xint_firstofthree_thenstop \fi }% -\def\xintifEq {\romannumeral0\xintifeq }% +\def\xintifEq {\romannumeral0\XINT_signaldeprecated{xint}{xintifEq}\xintifeq }% \def\xintifeq #1#2% {% \if0\xintCmp{#1}{#2}% @@ -265,7 +548,7 @@ \else\expandafter\xint_secondoftwo_thenstop \fi }% -\def\xintifGt {\romannumeral0\xintifgt }% +\def\xintifGt {\romannumeral0\XINT_signaldeprecated{xint}{xintifGt}\xintifgt }% \def\xintifgt #1#2% {% \if1\xintCmp{#1}{#2}% @@ -281,7 +564,7 @@ \else\expandafter\xint_secondoftwo_thenstop \fi }% -\def\xintifLt {\romannumeral0\xintiflt }% +\def\xintifLt {\romannumeral0\XINT_signaldeprecated{xint}{xintifLt}\xintiflt }% \def\xintiflt #1#2% {% \ifnum\xintCmp{#1}{#2}<\xint_c_ @@ -297,6 +580,60 @@ \else \expandafter\xint_secondoftwo_thenstop \fi }% +\def\xintifZero {\romannumeral0\XINT_signaldeprecated{xint}{xintifZero}\xintifzero }% +\def\xintifzero #1% +{% + \if0\xintSgn{#1}% + \expandafter\xint_firstoftwo_thenstop + \else + \expandafter\xint_secondoftwo_thenstop + \fi +}% +\def\xintiiifZero {\romannumeral0\xintiiifzero }% +\def\xintiiifzero #1% +{% + \if0\xintiiSgn{#1}% + \expandafter\xint_firstoftwo_thenstop + \else + \expandafter\xint_secondoftwo_thenstop + \fi +}% +\def\xintifNotZero {\romannumeral0\XINT_signaldeprecated{xint}{xintifNotZero}\xintifnotzero }% +\def\xintifnotzero #1% +{% + \if0\xintSgn{#1}% + \expandafter\xint_secondoftwo_thenstop + \else + \expandafter\xint_firstoftwo_thenstop + \fi +}% +\def\xintiiifNotZero {\romannumeral0\xintiiifnotzero }% +\def\xintiiifnotzero #1% +{% + \if0\xintiiSgn{#1}% + \expandafter\xint_secondoftwo_thenstop + \else + \expandafter\xint_firstoftwo_thenstop + \fi +}% +\def\xintiiifOne {\romannumeral0\xintiiifone }% +\def\xintiiifone #1% +{% + \if1\xintiiIsOne{#1}% + \expandafter\xint_firstoftwo_thenstop + \else + \expandafter\xint_secondoftwo_thenstop + \fi +}% +\def\xintifOne {\romannumeral0\XINT_signaldeprecated{xint}{xintifOne}\xintifone }% +\def\xintifone #1% +{% + \if1\xintIsOne{#1}% + \expandafter\xint_firstoftwo_thenstop + \else + \expandafter\xint_secondoftwo_thenstop + \fi +}% \def\xintiiifOdd {\romannumeral0\xintiiifodd }% \def\xintiiifodd #1% {% @@ -306,7 +643,7 @@ \expandafter\xint_secondoftwo_thenstop \fi }% -\def\xintifOdd {\romannumeral0\xintifodd }% +\def\xintifOdd {\romannumeral0\XINT_signaldeprecated{xint}{xintifOdd}\xintifodd }% \def\xintifodd #1% {% \if\xintOdd{#1}1% @@ -315,41 +652,20 @@ \expandafter\xint_secondoftwo_thenstop \fi }% -\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\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\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\xintSgn{#1}\expandafter\xint_firstoftwo +\def\xintand #1#2{\if0\xintiiSgn{#1}\expandafter\xint_firstoftwo \else\expandafter\xint_secondoftwo\fi - { 0}{\xintisnotzero{#2}}}% + { 0}{\xintiiisnotzero{#2}}}% \def\xintOR {\romannumeral0\xintor }% -\def\xintor #1#2{\if0\xintSgn{#1}\expandafter\xint_firstoftwo +\def\xintor #1#2{\if0\xintiiSgn{#1}\expandafter\xint_firstoftwo \else\expandafter\xint_secondoftwo\fi - {\xintisnotzero{#2}}{ 1}}% + {\xintiiisnotzero{#2}}{ 1}}% \def\xintXOR {\romannumeral0\xintxor }% -\def\xintxor #1#2{\if\xintIsZero{#1}\xintIsZero{#2}% +\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:}% @@ -381,45 +697,7 @@ {\XINT_xorof_a #2}% }% \def\XINT_xorof_e #1!#2{ #2}% -\def\xintGeq {\romannumeral0\xintgeq }% -\def\xintgeq #1{\expandafter\XINT_geq\romannumeral0\xintnum{#1}\xint:}% -\def\xintiiGeq {\romannumeral0\xintiigeq }% -\def\xintiigeq #1{\expandafter\XINT_iigeq\romannumeral`&&@#1\xint:}% -\def\XINT_iigeq #1#2\xint:#3% -{% - \expandafter\XINT_geq_fork\expandafter #1\romannumeral`&&@#3\xint:#2\xint: -}% -\def\XINT_geq #1#2\xint:#3% -{% - \expandafter\XINT_geq_fork\expandafter #1\romannumeral0\xintnum{#3}\xint:#2\xint: -}% -\def\XINT_geq_fork #1#2% -{% - \xint_UDzerofork - #1\XINT_geq_firstiszero - #2\XINT_geq_secondiszero - 0{}% - \krof - \xint_UDsignsfork - #1#2\XINT_geq_minusminus - #1-\XINT_geq_minusplus - #2-\XINT_geq_plusminus - --\XINT_geq_plusplus - \krof #1#2% -}% -\def\XINT_geq_firstiszero #1\krof 0#2#3\xint:#4\xint: - {\xint_UDzerofork #2{ 1}0{ 0}\krof }% -\def\XINT_geq_secondiszero #1\krof #20#3\xint:#4\xint:{ 1}% -\def\XINT_geq_plusminus #1-{\XINT_geq_plusplus #1{}}% -\def\XINT_geq_minusplus -#1{\XINT_geq_plusplus {}#1}% -\def\XINT_geq_minusminus --{\XINT_geq_plusplus {}{}}% -\def\XINT_geq_plusplus - {\expandafter\XINT_geq_finish\romannumeral0\XINT_cmp_plusplus}% -\def\XINT_geq_finish #1{\if-#1\expandafter\XINT_geq_no - \else\expandafter\XINT_geq_yes\fi}% -\def\XINT_geq_no 1{ 0}% -\def\XINT_geq_yes { 1}% -\def\xintiMax {\romannumeral0\xintimax }% +\def\xintiMax {\romannumeral0\XINT_signaldeprecated{xint}{xintiMax}\xintimax }% \def\xintimax #1% {% \expandafter\xint_max\romannumeral0\xintnum{#1}\xint: @@ -470,28 +748,7 @@ {% \unless\if1\romannumeral0\XINT_geq_plusplus{}{}% }% -\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 {\romannumeral0\XINT_signaldeprecated{xint}{xintiMin}\xintimin }% \def\xintimin #1% {% \expandafter\xint_min\romannumeral0\xintnum{#1}\xint: @@ -542,7 +799,28 @@ {% \unless\if1\romannumeral0\XINT_geq_plusplus{}{}% }% -\def\xintiMinof {\romannumeral0\xintiminof }% +\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% @@ -582,284 +860,8 @@ \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% -{% - \ifodd\xintiiLDg {#1} %<- intentional space - \xint_afterfi{ -1}% - \else - \xint_afterfi{ 1}% - \fi -}% -\def\xintiiMMON {\romannumeral0\xintiimmon }% -\def\xintiimmon #1% -{% - \ifodd\xintiiLDg {#1} %<- intentional space - \xint_afterfi{ 1}% - \else - \xint_afterfi{ -1}% - \fi -}% -\def\xintMON {\romannumeral0\xintmon }% -\def\xintmon #1% -{% - \ifodd\xintLDg {#1} %<- intentional space - \xint_afterfi{ -1}% - \else - \xint_afterfi{ 1}% - \fi -}% -\def\xintMMON {\romannumeral0\xintmmon }% -\def\xintmmon #1% -{% - \ifodd\xintLDg {#1} %<- intentional space - \xint_afterfi{ 1}% - \else - \xint_afterfi{ -1}% - \fi -}% -\def\xintiiOdd {\romannumeral0\xintiiodd }% -\def\xintiiodd #1% -{% - \ifodd\xintiiLDg{#1} %<- intentional space - \xint_afterfi{ 1}% - \else - \xint_afterfi{ 0}% - \fi -}% -\def\xintiiEven {\romannumeral0\xintiieven }% -\def\xintiieven #1% -{% - \ifodd\xintiiLDg{#1} %<- intentional space - \xint_afterfi{ 0}% - \else - \xint_afterfi{ 1}% - \fi -}% -\def\xintOdd {\romannumeral0\xintodd }% -\def\xintodd #1% -{% - \ifodd\xintLDg{#1} %<- intentional space - \xint_afterfi{ 1}% - \else - \xint_afterfi{ 0}% - \fi -}% -\def\xintEven {\romannumeral0\xinteven }% -\def\xinteven #1% -{% - \ifodd\xintLDg{#1} %<- intentional space - \xint_afterfi{ 0}% - \else - \xint_afterfi{ 1}% - \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% -{% - \xint_UDzerominusfork - #1-\XINT_dsh_xiszero - 0#1\XINT_dsx_xisNeg_checkA - 0-{\XINT_dsh_xisPos #1}% - \krof -}% -\def\XINT_dsh_xiszero #1.#2;{ #2}% -\def\XINT_dsh_xisPos -{% - \expandafter\xint_firstoftwo_thenstop\romannumeral0\XINT_dsx_xisPos -}% -\def\xintDSx {\romannumeral0\xintdsx }% -\def\xintdsx #1#2% -{% - \expandafter\XINT_dsx_fork\the\numexpr#1\expandafter.\romannumeral`&&@#2;% -}% -\def\XINT_dsx_fork #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% -{% - \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\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\xintDecSplit {\romannumeral0\xintdecsplit }% -\def\xintdecsplit #1#2% -{% - \expandafter\XINT_split_finish - \romannumeral0\expandafter\XINT_split_xfork - \the\numexpr #1\expandafter.\romannumeral`&&@#2% - \xint_bye2345678\xint_bye..% -}% -\def\xintDecSplitL {\romannumeral0\xintdecsplitl }% -\def\xintdecsplitl #1#2% -{% - \expandafter\XINT_splitl_finish - \romannumeral0\expandafter\XINT_split_xfork - \the\numexpr #1\expandafter.\romannumeral`&&@#2% - \xint_bye2345678\xint_bye..% -}% -\def\xintDecSplitR {\romannumeral0\xintdecsplitr }% -\def\xintdecsplitr #1#2% -{% - \expandafter\XINT_splitr_finish - \romannumeral0\expandafter\XINT_split_xfork - \the\numexpr #1\expandafter.\romannumeral`&&@#2% - \xint_bye2345678\xint_bye..% -}% -\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% -{% - \xint_UDzerominusfork - #1-\XINT_split_zerosplit - 0#1\XINT_split_fromleft - 0-{\XINT_split_fromright #1}% - \krof -}% -\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% -{% - \xint_UDsignfork - #1\XINT_split_fromleft_b - -{\XINT_split_fromleft_end_a #1}% - \krof -}% -\def\XINT_split_fromleft_b #1.#2#3#4#5#6#7#8#9% -{% - \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\XINT_split_fromleft_end_a #1.% -{% - \expandafter\XINT_split_fromleft_clean - \the\numexpr1\csname XINT_split_fromleft_end#1\endcsname -}% -\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 -{% - \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\XINT_split_fromright_a #1% -{% - \xint_UDsignfork - #1\XINT_split_fromleft - -\XINT_split_fromright_Lempty - \krof -}% -\def\XINT_split_fromright_Lempty #1.#2\xint_bye#3..{.#2.}% -\def\xintiiSqrt {\romannumeral0\xintiisqrt }% -\def\xintiiSqrtR {\romannumeral0\xintiisqrtr }% \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 %% |