diff options
Diffstat (limited to 'Master/texmf-dist/tex/generic/xint/xint.sty')
-rw-r--r-- | Master/texmf-dist/tex/generic/xint/xint.sty | 329 |
1 files changed, 288 insertions, 41 deletions
diff --git a/Master/texmf-dist/tex/generic/xint/xint.sty b/Master/texmf-dist/tex/generic/xint/xint.sty index 21911c686ee..3b0f6239b6d 100644 --- a/Master/texmf-dist/tex/generic/xint/xint.sty +++ b/Master/texmf-dist/tex/generic/xint/xint.sty @@ -22,7 +22,7 @@ %% in the same archive or directory.) %% %%---------------------------------------------------------------- -%% The xint bundle (version 1.08b of June 14, 2013) +%% The xint bundle (version 1.09a of September 22, 2013) %% xint: Expandable operations on long numbers %% Copyright (C) 2013 by Jean-Francois Burnol %%---------------------------------------------------------------- @@ -140,7 +140,7 @@ \fi \expandafter\x\csname ver@xint.sty\endcsname \ProvidesPackage{xint}% - [2013/06/14 v1.08b Expandable operations on long numbers (jfB)]% + [2013/09/24 v1.09a Expandable operations on long numbers (jfB)]% \def\xint_gobble_ {}% \def\xint_gobble_i #1{}% \def\xint_gobble_ii #1#2{}% @@ -271,7 +271,7 @@ \def\xintilen #1% {% \expandafter\XINT_length_fork - \romannumeral-`0#1\xint_relax\xint_relax\xint_relax\xint_relax + \romannumeral0\xintnum{#1}\xint_relax\xint_relax\xint_relax\xint_relax \xint_relax\xint_relax\xint_relax\xint_relax\Z }% \let\xintLen\xintiLen \let\xintlen\xintilen @@ -474,6 +474,17 @@ \def\XINT_applyunbr_loop_b #1#2{\XINT_applyunbr_loop_a {#2#1}}% \def\XINT_applyunbr_end\Z \expandafter\XINT_applyunbr_loop_b\expandafter #1#2#3{ #2}% +\def\xintApplyInline #1#2% +{% + \def\XINT_apply_themacro {#1}% + \expandafter\XINT_applyinline_a\romannumeral-`0#2:% +}% +\def\XINT_applyinline_a {\futurelet\XINT_apply_nexttoken\XINT_applyinline_b }% +\def\XINT_applyinline_b #1% +{% + \ifx\XINT_apply_nexttoken :\expandafter\xint_gobble_iii\fi + \XINT_apply_themacro {#1}\XINT_applyinline_a +}% \def\xintAssign #1\to {% \expandafter\XINT_assign_a\romannumeral-`0#1{}\to @@ -706,6 +717,8 @@ }% \def\XINT_cuz_stop #1\W #2\Z{ #1}% \def\xint_cuz_backtoloop 0\XINT_cuz_stop 0{\XINT_cuz_loop }% +\def\xintIsOne {\romannumeral0\xintisone }% +\def\xintisone #1{\expandafter\XINT_isone \romannumeral0\xintnum{#1}\W\Z }% \def\XINT_isOne #1{\romannumeral0\XINT_isone #1\W\Z }% \def\XINT_isone #1#2% {% @@ -762,7 +775,11 @@ {% \expandafter\XINT_sgn \romannumeral-`0#1\Z% }% -\let\xintSgn\xintiSgn \let\xintsgn\xintisgn +\def\xintSgn {\romannumeral0\xintsgn }% +\def\xintsgn #1% +{% + \expandafter\XINT_sgn \romannumeral0\xintnum{#1}\Z% +}% \def\XINT_Sgn #1{\romannumeral0\XINT_sgn #1\Z }% \def\XINT_sgn #1#2\Z {% @@ -780,10 +797,66 @@ \else\xint_afterfi{\expandafter\space\xint_firstofthree}% \fi }% +\def\xintifSgn {\romannumeral0\xintifsgn }% +\def\xintifsgn #1% +{% + \ifcase \romannumeral0\xintsgn{#1} + \xint_afterfi{\expandafter\space\xint_secondofthree}% + \or\xint_afterfi{\expandafter\space\xint_thirdofthree}% + \else\xint_afterfi{\expandafter\space\xint_firstofthree}% + \fi +}% +\def\xintifZero {\romannumeral0\xintifzero }% +\def\xintifzero #1% +{% + \if\xintSgn{\xintAbs{#1}}0% + \xint_afterfi{\expandafter\space\xint_firstoftwo}% + \else + \xint_afterfi{\expandafter\space\xint_secondoftwo}% + \fi +}% +\def\xintifNotZero {\romannumeral0\xintifnotzero }% +\def\xintifnotzero #1% +{% + \if\xintSgn{\xintAbs{#1}}1% + \xint_afterfi{\expandafter\space\xint_firstoftwo}% + \else + \xint_afterfi{\expandafter\space\xint_secondoftwo}% + \fi +}% +\def\xintifEq {\romannumeral0\xintifeq }% +\def\xintifeq #1#2% +{% + \if\xintCmp{#1}{#2}0% + \xint_afterfi{\expandafter\space\xint_firstoftwo}% + \else\xint_afterfi{\expandafter\space\xint_secondoftwo}% + \fi +}% +\def\xintifGt {\romannumeral0\xintifgt }% +\def\xintifgt #1#2% +{% + \if\xintCmp{#1}{#2}1% + \xint_afterfi{\expandafter\space\xint_firstoftwo}% + \else\xint_afterfi{\expandafter\space\xint_secondoftwo}% + \fi +}% +\def\xintifLt {\romannumeral0\xintiflt }% +\def\xintiflt #1#2% +{% + \xintSgnFork{\xintCmp{#1}{#2}}% + {\expandafter\space\xint_firstoftwo}% + {\expandafter\space\xint_secondoftwo}% + {\expandafter\space\xint_secondoftwo}% +}% +\def\xintiiOpp {\romannumeral0\xintiiopp }% +\def\xintiiopp #1% +{% + \expandafter\XINT_opp \romannumeral-`0#1% +}% \def\xintiOpp {\romannumeral0\xintiopp }% \def\xintiopp #1% {% - \expandafter\XINT_opp \romannumeral-`0#1% + \expandafter\XINT_opp \romannumeral0\xintnum{#1}% }% \let\xintOpp\xintiOpp \let\xintopp\xintiopp \def\XINT_Opp #1{\romannumeral0\XINT_opp #1}% @@ -795,10 +868,15 @@ 0-\dummy { -#1}% positive \krof }% +\def\xintiiAbs {\romannumeral0\xintiiabs }% +\def\xintiiabs #1% +{% + \expandafter\XINT_abs \romannumeral-`0#1% +}% \def\xintiAbs {\romannumeral0\xintiabs }% \def\xintiabs #1% {% - \expandafter\XINT_abs \romannumeral-`0#1% + \expandafter\XINT_abs \romannumeral0\xintnum{#1}% }% \let\xintAbs\xintiAbs \let\xintabs\xintiabs \def\XINT_Abs #1{\romannumeral0\XINT_abs #1}% @@ -1131,16 +1209,25 @@ \def\XINT_addp_endGy_zeros 0000\XINT_addp_endGy 0000#1\Z{ #1}% \def\XINT_addp_endGy #1#2#3#4#5\Z{ #5#1#2#3#4}% \def\xint_addp_Gz\W\XINT_addp_G #1#2{ #2}% +\def\xintiiAdd {\romannumeral0\xintiiadd }% +\def\xintiiadd #1% +{% + \expandafter\xint_iiadd\expandafter{\romannumeral-`0#1}% +}% +\def\xint_iiadd #1#2% +{% + \expandafter\XINT_add_fork \romannumeral-`0#2\Z #1\Z +}% \def\xintiAdd {\romannumeral0\xintiadd }% \def\xintiadd #1% {% - \expandafter\xint_add\expandafter{\romannumeral-`0#1}% + \expandafter\xint_add\expandafter{\romannumeral0\xintnum{#1}}% }% -\let\xintAdd\xintiAdd \let\xintadd\xintiadd \def\xint_add #1#2% {% - \expandafter\XINT_add_fork \romannumeral-`0#2\Z #1\Z + \expandafter\XINT_add_fork \romannumeral0\xintnum{#2}\Z #1\Z }% +\let\xintAdd\xintiAdd \let\xintadd\xintiadd \def\XINT_Add #1#2{\romannumeral0\XINT_add_fork #2\Z #1\Z }% \def\XINT_add #1#2{\XINT_add_fork #2\Z #1\Z }% \def\XINT_add_fork #1#2\Z #3#4\Z @@ -1189,18 +1276,27 @@ \romannumeral0\XINT_RQ {}#2\R\R\R\R\R\R\R\R\Z \W\X\Y\Z #1\W\X\Y\Z }% +\def\xintiiSub {\romannumeral0\xintiisub }% +\def\xintiisub #1% +{% + \expandafter\xint_iisub\expandafter{\romannumeral-`0#1}% +}% +\def\xint_iisub #1#2% +{% + \expandafter\XINT_sub_fork \romannumeral-`0#2\Z #1\Z +}% \def\xintiSub {\romannumeral0\xintisub }% \def\xintisub #1% {% - \expandafter\xint_sub\expandafter{\romannumeral-`0#1}% + \expandafter\xint_sub\expandafter{\romannumeral0\xintnum{#1}}% }% -\let\xintSub\xintiSub \let\xintsub\xintisub \def\xint_sub #1#2% {% - \expandafter\XINT_sub_fork \romannumeral-`0#2\Z #1\Z + \expandafter\XINT_sub_fork \romannumeral0\xintnum{#2}\Z #1\Z }% \def\XINT_Sub #1#2{\romannumeral0\XINT_sub_fork #2\Z #1\Z }% \def\XINT_sub #1#2{\XINT_sub_fork #2\Z #1\Z }% +\let\xintSub\xintiSub \let\xintsub\xintisub \def\XINT_sub_fork #1#2\Z #3#4\Z {% \xint_UDsignsfork @@ -1442,12 +1538,12 @@ \def\xintiCmp {\romannumeral0\xinticmp }% \def\xinticmp #1% {% - \expandafter\xint_cmp\expandafter{\romannumeral-`0#1}% + \expandafter\xint_cmp\expandafter{\romannumeral0\xintnum{#1}}% }% \let\xintCmp\xintiCmp \let\xintcmp\xinticmp \def\xint_cmp #1#2% {% - \expandafter\XINT_cmp_fork \romannumeral-`0#2\Z #1\Z + \expandafter\XINT_cmp_fork \romannumeral0\xintnum{#2}\Z #1\Z }% \def\XINT_Cmp #1#2{\romannumeral0\XINT_cmp_fork #2\Z #1\Z }% \def\XINT_cmp_fork #1#2\Z #3#4\Z @@ -1546,15 +1642,94 @@ \def\XINT_OneIfPositive_finish #1\W\X\Y\Z{ 1}% \def\xint_OneIfPositive_backtomain 0\XINT_OneIfPositive_finish 0% {\XINT_OneIfPositive_main }% +\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\xintIsZero {\romannumeral0\xintiszero }% +\def\xintiszero #1{\xintifsgn {#1}{0}{1}{0}}% +\def\xintIsNotZero {\romannumeral0\xintisnotzero }% +\def\xintisnotzero #1{\xintifsgn {#1}{1}{0}{1}}% +\def\xintAND {\romannumeral0\xintand }% +\def\xintand #1#2{\xintifzero {#1}{0}{\xintifzero {#2}{0}{1}}}% +\def\xintOR {\romannumeral0\xintor }% +\def\xintor #1#2{\xintifzero {#1}{\xintifzero {#2}{0}{1}}{1}}% +\def\xintXOR {\romannumeral0\xintxor }% +\def\xintxor #1#2{\ifcase \numexpr\xintIsZero{#1}+\xintIsZero{#2}\relax + \xint_afterfi{ 0}% + \or\xint_afterfi{ 1}% + \else\xint_afterfi { 0}% + \fi }% +\def\xintANDof {\romannumeral0\xintandof }% +\def\xintandof #1{\expandafter\XINT_andof_a\romannumeral-`0#1\relax }% +\def\XINT_andof_a #1{\expandafter\XINT_andof_b\romannumeral-`0#1\Z }% +\def\XINT_andof_b #1% + {\xint_gob_til_relax #1\XINT_andof_e\relax\XINT_andof_c #1}% +\def\XINT_andof_c #1\Z + {\xintifZero{#1}{\XINT_andof_no}{\XINT_andof_a}}% +\def\XINT_andof_no #1\relax { 0}% +\def\XINT_andof_e #1\Z { 1}% +\def\xintANDof:csv #1{\expandafter\XINT_andof:_a\romannumeral-`0#1,,^}% +\def\XINT_andof:_a {\expandafter\XINT_andof:_b\romannumeral-`0}% +\def\XINT_andof:_b #1{\if #1,\expandafter\XINT_andof:_e + \else\expandafter\XINT_andof:_c\fi #1}% +\def\XINT_andof:_c #1,{\xintifZero{#1}{\XINT_andof:_no}{\XINT_andof:_a}}% +\def\XINT_andof:_no #1^{0}% +\def\XINT_andof:_e #1^{1}% +\def\xintORof {\romannumeral0\xintorof }% +\def\xintorof #1{\expandafter\XINT_orof_a\romannumeral-`0#1\relax }% +\def\XINT_orof_a #1{\expandafter\XINT_orof_b\romannumeral-`0#1\Z }% +\def\XINT_orof_b #1% + {\xint_gob_til_relax #1\XINT_orof_e\relax\XINT_orof_c #1}% +\def\XINT_orof_c #1\Z + {\xintifZero{#1}{\XINT_orof_a}{\XINT_orof_yes}}% +\def\XINT_orof_yes #1\relax { 1}% +\def\XINT_orof_e #1\Z { 0}% +\def\xintORof:csv #1{\expandafter\XINT_orof:_a\romannumeral-`0#1,,^}% +\def\XINT_orof:_a {\expandafter\XINT_orof:_b\romannumeral-`0}% +\def\XINT_orof:_b #1{\if #1,\expandafter\XINT_orof:_e + \else\expandafter\XINT_orof:_c\fi #1}% +\def\XINT_orof:_c #1,{\xintifZero{#1}{\XINT_orof:_a}{\XINT_orof:_yes}}% +\def\XINT_orof:_yes #1^{1}% +\def\XINT_orof:_e #1^{0}% +\def\xintXORof {\romannumeral0\xintxorof }% +\def\xintxorof #1{\expandafter\XINT_xorof_a\expandafter + 0\romannumeral-`0#1\relax }% +\def\XINT_xorof_a #1#2{\expandafter\XINT_xorof_b\romannumeral-`0#2\Z #1}% +\def\XINT_xorof_b #1% + {\xint_gob_til_relax #1\XINT_xorof_e\relax\XINT_xorof_c #1}% +\def\XINT_xorof_c #1\Z #2% + {\xintifZero {#1}{\XINT_xorof_a #2}{\ifcase #2 + \xint_afterfi{\XINT_xorof_a 1}% + \else + \xint_afterfi{\XINT_xorof_a 0}% + \fi }% + }% +\def\XINT_xorof_e #1\Z #2{ #2}% +\def\xintXORof:csv #1{\expandafter\XINT_xorof:_a\expandafter + 0\romannumeral-`0#1,,^}% +\def\XINT_xorof:_a #1#2,{\expandafter\XINT_xorof:_b\romannumeral-`0#2,#1}% +\def\XINT_xorof:_b #1{\if #1,\expandafter\XINT_xorof:_e + \else\expandafter\XINT_xorof:_c\fi #1}% +\def\XINT_xorof:_c #1,#2% + {\xintifZero {#1}{\XINT_xorof:_a #2}{\ifcase #2 + \xint_afterfi{\XINT_xorof:_a 1}% + \else + \xint_afterfi{\XINT_xorof:_a 0}% + \fi }% + }% +\def\XINT_xorof:_e ,#1#2^{#1}% allows empty list \def\xintiGeq {\romannumeral0\xintigeq }% \def\xintigeq #1% {% - \expandafter\xint_geq\expandafter {\romannumeral-`0#1}% + \expandafter\xint_geq\expandafter {\romannumeral0\xintnum{#1}}% }% \let\xintGeq\xintiGeq \let\xintgeq\xintigeq \def\xint_geq #1#2% {% - \expandafter\XINT_geq_fork \romannumeral-`0#2\Z #1\Z + \expandafter\XINT_geq_fork \romannumeral0\xintnum{#2}\Z #1\Z }% \def\XINT_Geq #1#2{\romannumeral0\XINT_geq_fork #2\Z #1\Z }% \def\XINT_geq_fork #1#2\Z #3#4\Z @@ -1624,12 +1799,12 @@ \def\xintiMax {\romannumeral0\xintimax }% \def\xintimax #1% {% - \expandafter\xint_max\expandafter {\romannumeral-`0#1}% + \expandafter\xint_max\expandafter {\romannumeral0\xintnum{#1}}% }% \let\xintMax\xintiMax \let\xintmax\xintimax \def\xint_max #1#2% {% - \expandafter\XINT_max_pre\expandafter {\romannumeral-`0#2}{#1}% + \expandafter\XINT_max_pre\expandafter {\romannumeral0\xintnum{#2}}{#1}% }% \def\XINT_max_pre #1#2{\XINT_max_fork #1\Z #2\Z {#2}{#1}}% \def\XINT_Max #1#2{\romannumeral0\XINT_max_fork #2\Z #1\Z {#1}{#2}}% @@ -1669,15 +1844,26 @@ \expandafter\xint_secondoftwo_andstop \fi }% +\def\xintiMaxof {\romannumeral0\xintimaxof }% +\def\xintimaxof #1{\expandafter\XINT_imaxof_a\romannumeral-`0#1\relax }% +\def\XINT_imaxof_a #1{\expandafter\XINT_imaxof_b\romannumeral0\xintnum{#1}\Z }% +\def\XINT_imaxof_b #1\Z #2% + {\expandafter\XINT_imaxof_c\romannumeral-`0#2\Z {#1}\Z}% +\def\XINT_imaxof_c #1% + {\xint_gob_til_relax #1\XINT_imaxof_e\relax\XINT_imaxof_d #1}% +\def\XINT_imaxof_d #1\Z + {\expandafter\XINT_imaxof_b\romannumeral0\xintimax {#1}}% +\def\XINT_imaxof_e #1\Z #2\Z { #2}% +\let\xintMaxof\xintiMaxof \let\xintmaxof\xintimaxof \def\xintiMin {\romannumeral0\xintimin }% \def\xintimin #1% {% - \expandafter\xint_min\expandafter {\romannumeral-`0#1}% + \expandafter\xint_min\expandafter {\romannumeral0\xintnum{#1}}% }% \let\xintMin\xintiMin \let\xintmin\xintimin \def\xint_min #1#2% {% - \expandafter\XINT_min_pre\expandafter {\romannumeral-`0#2}{#1}% + \expandafter\XINT_min_pre\expandafter {\romannumeral0\xintnum{#2}}{#1}% }% \def\XINT_min_pre #1#2{\XINT_min_fork #1\Z #2\Z {#2}{#1}}% \def\XINT_Min #1#2{\romannumeral0\XINT_min_fork #2\Z #1\Z {#1}{#2}}% @@ -1717,6 +1903,17 @@ \expandafter\xint_firstoftwo_andstop \fi }% +\def\xintiMinof {\romannumeral0\xintiminof }% +\def\xintiminof #1{\expandafter\XINT_iminof_a\romannumeral-`0#1\relax }% +\def\XINT_iminof_a #1{\expandafter\XINT_iminof_b\romannumeral0\xintnum{#1}\Z }% +\def\XINT_iminof_b #1\Z #2% + {\expandafter\XINT_iminof_c\romannumeral-`0#2\Z {#1}\Z}% +\def\XINT_iminof_c #1% + {\xint_gob_til_relax #1\XINT_iminof_e\relax\XINT_iminof_d #1}% +\def\XINT_iminof_d #1\Z + {\expandafter\XINT_iminof_b\romannumeral0\xintimin {#1}}% +\def\XINT_iminof_e #1\Z #2\Z { #2}% +\let\xintMinof\xintiMinof \let\xintminof\xintiminof \def\xintiSum {\romannumeral0\xintisum }% \def\xintisum #1{\xintisumexpr #1\relax }% \def\xintiSumExpr {\romannumeral0\xintisumexpr }% @@ -1759,16 +1956,25 @@ \W\X\Y\Z #3\W\X\Y\Z }{#2}% }% \def\XINT_sum_NN #1#2{\XINT_sum_loop {#2}{#1}}% +\def\xintiiMul {\romannumeral0\xintiimul }% +\def\xintiimul #1% +{% + \expandafter\xint_iimul\expandafter {\romannumeral-`0#1}% +}% +\def\xint_iimul #1#2% +{% + \expandafter\XINT_mul_fork \romannumeral-`0#2\Z #1\Z +}% \def\xintiMul {\romannumeral0\xintimul }% \def\xintimul #1% {% - \expandafter\xint_mul\expandafter {\romannumeral-`0#1}% + \expandafter\xint_mul\expandafter {\romannumeral0\xintnum{#1}}% }% -\let\xintMul\xintiMul \let\xintmul\xintimul \def\xint_mul #1#2% {% - \expandafter\XINT_mul_fork \romannumeral-`0#2\Z #1\Z + \expandafter\XINT_mul_fork \romannumeral0\xintnum{#2}\Z #1\Z }% +\let\xintMul\xintiMul \let\xintmul\xintimul \def\XINT_Mul #1#2{\romannumeral0\XINT_mul_fork #2\Z #1\Z }% \def\XINT_mul_fork #1#2\Z #3#4\Z {% @@ -2128,6 +2334,11 @@ \romannumeral0\XINT_mul_Mr {#2}#4\Z\Z\Z\Z \W\X\Y\Z 0#3\W\X\Y\Z }% \def\XINT_mulr_finish_c #1\XINT_mulr_finish_ciii \W\W\W\W #2#3\Z\Z\Z\Z { #2}% +\def\xintiiSqr {\romannumeral0\xintiisqr }% +\def\xintiisqr #1% +{% + \expandafter\XINT_sqr\expandafter {\romannumeral0\xintiiabs{#1}}% +}% \def\xintiSqr {\romannumeral0\xintisqr }% \def\xintisqr #1% {% @@ -2169,7 +2380,11 @@ {% \expandafter\XINT_fac_fork\expandafter{\the\numexpr #1}% }% -\let\xintFac\xintiFac \let\xintfac\xintifac +\def\xintFac {\romannumeral0\xintfac }% +\def\xintfac #1% +{% + \expandafter\XINT_fac_fork\expandafter{\romannumeral0\xintnum{#1}}% +}% \def\XINT_fac_fork #1% {% \ifcase\XINT_Sgn {#1} @@ -2250,7 +2465,7 @@ \def\xintiPow {\romannumeral0\xintipow }% \def\xintipow #1% {% - \expandafter\xint_pow\romannumeral-`0#1\Z% + \expandafter\xint_pow\romannumeral0\xintnum{#1}\Z% }% \let\xintPow\xintiPow \let\xintpow\xintipow \def\xint_pow #1#2\Z @@ -2338,7 +2553,7 @@ \xint_afterfi{\expandafter\XINT_pow_loop_a \expandafter{\the\numexpr 2*(#1/2)-#1\expandafter }% b mod 2 \expandafter{\the\numexpr #1-#1/2\expandafter }% [b/2] - \expandafter{\romannumeral0\xintisqr{#2}}}% + \expandafter{\romannumeral0\xintiisqr{#2}}}% \fi {{#2}}% }% @@ -2400,12 +2615,12 @@ \def\xintiDivision {\romannumeral0\xintidivision }% \def\xintidivision #1% {% - \expandafter\xint_division\expandafter {\romannumeral-`0#1}% + \expandafter\xint_division\expandafter {\romannumeral0\xintnum{#1}}% }% \let\xintDivision\xintiDivision \let\xintdivision\xintidivision \def\xint_division #1#2% {% - \expandafter\XINT_div_fork \romannumeral-`0#2\Z #1\Z + \expandafter\XINT_div_fork \romannumeral0\xintnum{#2}\Z #1\Z }% \def\XINT_Division #1#2{\romannumeral0\XINT_div_fork #2\Z #1\Z }% \def\XINT_div_fork #1#2\Z #3#4\Z @@ -2458,7 +2673,7 @@ \def\XINT_div_AisNegative_posrem #1% {% \expandafter \XINT_div_AisNegative_posrem_b \expandafter - {\romannumeral0\xintiopp{\xintInc {#1}}}% + {\romannumeral0\xintiiopp{\xintInc {#1}}}% }% \def\XINT_div_AisNegative_posrem_b #1#2#3% {% @@ -2618,14 +2833,14 @@ \def\XINT_div_final_dP #1#2#3#4#5% q,A,Q,L,B (puis c) {% \expandafter \XINT_div_final_f \expandafter - {\romannumeral0\xintisub {#2}% + {\romannumeral0\xintiisub {#2}% {\romannumeral0\XINT_mul_M {#1}#5\Z\Z\Z\Z }}% {\romannumeral0\XINT_add_A 0{}#1000\W\X\Y\Z #3\W\X\Y\Z }% }% \def\XINT_div_final_db #1#2#3#4#5% q,A,Q,L,B (puis c) {% \expandafter\XINT_div_final_dc\expandafter - {\romannumeral0\xintisub {#2}% + {\romannumeral0\xintiisub {#2}% {\romannumeral0\XINT_mul_M {#1}#5\Z\Z\Z\Z }}% {#1}{#2}{#3}{#4}{#5}% }% @@ -2882,7 +3097,11 @@ {% \expandafter\XINT_fdg \romannumeral-`0#1\W\Z }% -\let\xintFDg\xintiFDg \let\xintfdg\xintifdg +\def\xintFDg {\romannumeral0\xintfdg }% +\def\xintfdg #1% +{% + \expandafter\XINT_fdg \romannumeral0\xintnum{#1}\W\Z +}% \def\XINT_FDg #1{\romannumeral0\XINT_fdg #1\W\Z }% \def\XINT_fdg #1#2#3\Z {% @@ -2897,7 +3116,11 @@ {% \expandafter\XINT_ldg\expandafter {\romannumeral-`0#1}% }% -\let\xintLDg\xintiLDg \let\xintldg\xintildg +\def\xintLDg {\romannumeral0\xintldg }% +\def\xintldg #1% +{% + \expandafter\XINT_ldg\expandafter {\romannumeral0\xintnum{#1}}% +}% \def\XINT_LDg #1{\romannumeral0\XINT_ldg {#1}}% \def\XINT_ldg #1% {% @@ -2922,8 +3145,24 @@ \xint_afterfi{ -1}% \fi }% -\let\xintMON\xintiMON \let\xintmon\xintimon -\let\xintMMON\xintiMMON \let\xintmmon\xintimmon +\def\xintMON {\romannumeral0\xintmon }% +\def\xintmon #1% +{% + \ifodd\xintLDg {#1} + \xint_afterfi{ -1}% + \else + \xint_afterfi{ 1}% + \fi +}% +\def\xintMMON {\romannumeral0\xintmmon }% +\def\xintmmon #1% +{% + \ifodd\xintLDg {#1} + \xint_afterfi{ 1}% + \else + \xint_afterfi{ -1}% + \fi +}% \def\xintiOdd {\romannumeral0\xintiodd }% \def\xintiodd #1% {% @@ -2941,7 +3180,15 @@ \xint_afterfi{ 0}% \fi }% -\let\xintOdd\xintiOdd \let\xintodd\xintiodd +\def\xintOdd {\romannumeral0\xintodd }% +\def\xintodd #1% +{% + \ifodd\xintLDg{#1} + \xint_afterfi{ 1}% + \else + \xint_afterfi{ 0}% + \fi +}% \def\xintDSL {\romannumeral0\xintdsl }% \def\xintdsl #1% {% @@ -3458,7 +3705,7 @@ \W\W\W\W\W\W\W\W }% \def\xintiSquareRoot {\romannumeral0\xintisquareroot }% \def\xintisquareroot #1% - {\expandafter\XINT_sqrt_checkin\romannumeral-`0#1\Z}% + {\expandafter\XINT_sqrt_checkin\romannumeral0\xintnum{#1}\Z}% \def\XINT_sqrt_checkin #1% {% \xint_UDzerominusfork @@ -3612,13 +3859,13 @@ {% \expandafter\XINT_sqrt_big_f_a\expandafter {\the\numexpr #2+#3\expandafter}\expandafter - {\romannumeral-`0\XINT_dsx_addzerosnofuss + {\romannumeral0\XINT_dsx_addzerosnofuss {\numexpr #4-\xint_c_iv\relax}{#1}}{#4}% }% \def\XINT_sqrt_big_f_a #1#2#3#4% {% \expandafter\XINT_sqrt_big_g\expandafter - {\romannumeral0\xintisub + {\romannumeral0\xintiisub {\XINT_dsx_addzerosnofuss {\numexpr \xint_c_ii*#3-\xint_c_viii\relax}{#1}}{#4}}% {#2}{#3}% @@ -3639,8 +3886,8 @@ \def\XINT_sqrt_big_k #1#2#3% {% \expandafter\XINT_sqrt_big_l\expandafter - {\romannumeral0\xintisub {#3}{#1}}% - {\romannumeral0\xintiadd {#2}{\xintiSqr {#1}}}% + {\romannumeral0\xintiisub {#3}{#1}}% + {\romannumeral0\xintiiadd {#2}{\xintiiSqr {#1}}}% }% \def\XINT_sqrt_big_l #1#2% {% |