summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/xint/xint.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/generic/xint/xint.sty')
-rw-r--r--Master/texmf-dist/tex/generic/xint/xint.sty329
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%
{%