summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/xint
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2017-08-01 21:38:49 +0000
committerKarl Berry <karl@freefriends.org>2017-08-01 21:38:49 +0000
commit9a9c1b6e2502a6a9c90e739c411de26012b9db2c (patch)
treeb72c9fa43c71360ad6c0d3c8e1b86c2530273492 /Master/texmf-dist/tex/generic/xint
parent7ba0b2e501e4b5d83a48295804d3570ef3407f8a (diff)
xint (1aug17)
git-svn-id: svn://tug.org/texlive/trunk@44934 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/generic/xint')
-rw-r--r--Master/texmf-dist/tex/generic/xint/xint.sty231
-rw-r--r--Master/texmf-dist/tex/generic/xint/xintbinhex.sty761
-rw-r--r--Master/texmf-dist/tex/generic/xint/xintcfrac.sty4
-rw-r--r--Master/texmf-dist/tex/generic/xint/xintcore.sty24
-rw-r--r--Master/texmf-dist/tex/generic/xint/xintexpr.sty4
-rw-r--r--Master/texmf-dist/tex/generic/xint/xintfrac.sty32
-rw-r--r--Master/texmf-dist/tex/generic/xint/xintgcd.sty4
-rw-r--r--Master/texmf-dist/tex/generic/xint/xintkernel.sty4
-rw-r--r--Master/texmf-dist/tex/generic/xint/xintseries.sty4
-rw-r--r--Master/texmf-dist/tex/generic/xint/xinttools.sty4
10 files changed, 454 insertions, 618 deletions
diff --git a/Master/texmf-dist/tex/generic/xint/xint.sty b/Master/texmf-dist/tex/generic/xint/xint.sty
index de8669e6acb..4641adb163b 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.2l 2017/07/26
+%% The xint bundle 1.2m 2017/07/31
%% Copyright (C) 2013-2017 by Jean-Francois Burnol
%% xint: Expandable operations on big integers
%% ---------------------------------------------------------------
@@ -70,7 +70,7 @@
\XINTsetupcatcodes% defined in xintkernel.sty (loaded by xintcore.sty)
\XINT_providespackage
\ProvidesPackage{xint}%
- [2017/07/26 1.2l Expandable operations on big integers (JFB)]%
+ [2017/07/31 1.2m 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}%
@@ -389,8 +389,6 @@
{%
\expandafter\XINT_geq_fork\expandafter #1\romannumeral`&&@#3\xint:#2\xint:
}%
-\let\XINT_geq_pre \xintiigeq % TEMPORAIRE (oui, mais depuis quand ?)
-\let\XINT_Geq \xintGeq % TEMPORAIRE ATTENTION FAIT xintNum (et alors?)
\def\XINT_geq #1#2\xint:#3%
{%
\expandafter\XINT_geq_fork\expandafter #1\romannumeral0\xintnum{#3}\xint:#2\xint:
@@ -414,173 +412,63 @@
\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 #1#2#3\xint:#4\xint:{\XINT_geq_pp #1#4\xint:#2#3\xint:}%
-\def\XINT_geq_pp #1\xint:
-{%
- \expandafter\XINT_geq_pp_a
- \romannumeral0\expandafter\XINT_sepandrev_andcount
- \romannumeral0\XINT_zeroes_forviii #1\R\R\R\R\R\R\R\R{10}0000001\W
- #1\XINT_rsepbyviii_end_A 2345678%
- \XINT_rsepbyviii_end_B 2345678\relax\xint_c_ii\xint_c_i
- \R\xint:\xint_c_xii \R\xint:\xint_c_x \R\xint:\xint_c_viii \R\xint:\xint_c_vi
- \R\xint:\xint_c_iv \R\xint:\xint_c_ii \R\xint:\xint_c_\W
- \X
-}%
-\def\XINT_geq_pp_a #1\xint:#2\X #3\xint:
-{%
- \expandafter\XINT_geq_checklengths
- \the\numexpr #1\expandafter\xint:%
- \romannumeral0\expandafter\XINT_sepandrev_andcount
- \romannumeral0\XINT_zeroes_forviii #3\R\R\R\R\R\R\R\R{10}0000001\W
- #3\XINT_rsepbyviii_end_A 2345678%
- \XINT_rsepbyviii_end_B 2345678\relax\xint_c_ii\xint_c_i
- \R\xint:\xint_c_xii \R\xint:\xint_c_x \R\xint:\xint_c_viii \R\xint:\xint_c_vi
- \R\xint:\xint_c_iv \R\xint:\xint_c_ii \R\xint:\xint_c_\W
- \Z!\Z!\Z!\Z!\Z!\W #2\Z!\Z!\Z!\Z!\Z!\W
-}%
-\def\XINT_geq_checklengths #1\xint:#2\xint:
-{%
- \ifnum #1=#2
- \expandafter\xint_firstoftwo
- \else
- \expandafter\xint_secondoftwo
- \fi
- \XINT_geq_aa {\XINT_geq_distinctlengths {#1}{#2}}%
-}%
-\def\XINT_geq_distinctlengths #1#2#3\W #4\W
-{%
- \ifnum #1>#2
- \expandafter\xint_firstoftwo
- \else
- \expandafter\xint_secondoftwo
- \fi
- { 1}{ 0}%
-}%
-\def\XINT_geq_aa {\expandafter\XINT_geq_w\the\numexpr\XINT_geq_a \xint_c_i }%
-\def\XINT_geq_a #1!#2!#3!#4!#5\W #6!#7!#8!#9!%
-{%
- \XINT_geq_b #1!#6!#2!#7!#3!#8!#4!#9!#5\W
-}%
-\def\XINT_geq_b #1#2#3!#4!%
-{%
- \xint_gob_til_Z #2\XINT_geq_bi \Z
- \expandafter\XINT_geq_c\the\numexpr#1+1#4-#3-\xint_c_i\xint:%
-}%
-\def\XINT_geq_c 1#1#2\xint:%
-{%
- 1#2\expandafter!\the\numexpr\XINT_geq_d #1%
-}%
-\def\XINT_geq_d #1#2#3!#4!%
-{%
- \xint_gob_til_Z #2\XINT_geq_di \Z
- \expandafter\XINT_geq_e\the\numexpr#1+1#4-#3-\xint_c_i\xint:%
-}%
-\def\XINT_geq_e 1#1#2\xint:%
-{%
- 1#2\expandafter!\the\numexpr\XINT_geq_f #1%
-}%
-\def\XINT_geq_f #1#2#3!#4!%
-{%
- \xint_gob_til_Z #2\XINT_geq_fi \Z
- \expandafter\XINT_geq_g\the\numexpr#1+1#4-#3-\xint_c_i\xint:%
-}%
-\def\XINT_geq_g 1#1#2\xint:%
-{%
- 1#2\expandafter!\the\numexpr\XINT_geq_h #1%
-}%
-\def\XINT_geq_h #1#2#3!#4!%
-{%
- \xint_gob_til_Z #2\XINT_geq_hi \Z
- \expandafter\XINT_geq_i\the\numexpr#1+1#4-#3-\xint_c_i\xint:%
-}%
-\def\XINT_geq_i 1#1#2\xint:%
-{%
- 1#2\expandafter!\the\numexpr\XINT_geq_a #1%
-}%
-\def\XINT_geq_bi\Z
- \expandafter\XINT_geq_c\the\numexpr#1+1#2-#3\xint:#4!#5!#6!#7!#8!#9!\Z !\W
-{%
- \XINT_geq_k #1#2!#5!#7!#9!%
-}%
-\def\XINT_geq_di\Z
- \expandafter\XINT_geq_e\the\numexpr#1+1#2-#3\xint:#4!#5!#6!#7!#8\W
-{%
- \XINT_geq_k #1#2!#5!#7!%
-}%
-\def\XINT_geq_fi\Z
- \expandafter\XINT_geq_g\the\numexpr#1+1#2-#3\xint:#4!#5!#6\W
-{%
- \XINT_geq_k #1#2!#5!%
-}%
-\def\XINT_geq_hi\Z
- \expandafter\XINT_geq_i\the\numexpr#1+1#2-#3\xint:#4\W
-{%
- \XINT_geq_k #1#2!%
-}%
-\def\XINT_geq_k #1#2\W
-{%
- \xint_UDzerofork
- #1{-1\relax { 0}}%
- 0{-1\relax { 1}}%
- \krof
-}%
-\def\XINT_geq_w #1-1#2{#2}%
+\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 #1%
{%
- \expandafter\xint_max\expandafter {\romannumeral0\xintnum{#1}}%
+ \expandafter\xint_max\romannumeral0\xintnum{#1}\xint:
}%
-\def\xint_max #1#2%
+\def\xint_max #1\xint:#2%
{%
- \expandafter\XINT_max_pre\expandafter {\romannumeral0\xintnum{#2}}{#1}%
+ \expandafter\XINT_max_fork\romannumeral0\xintnum{#2}\xint:#1\xint:
}%
\def\xintiiMax {\romannumeral0\xintiimax }%
\def\xintiimax #1%
{%
- \expandafter\xint_iimax\expandafter {\romannumeral`&&@#1}%
+ \expandafter\xint_iimax \romannumeral`&&@#1\xint:
}%
-\def\xint_iimax #1#2%
+\def\xint_iimax #1\xint:#2%
{%
- \expandafter\XINT_max_pre\expandafter {\romannumeral`&&@#2}{#1}%
+ \expandafter\XINT_max_fork\romannumeral`&&@#2\xint:#1\xint:
}%
-\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}}%
-\def\XINT_max_fork #1#2\Z #3#4\Z
+\def\XINT_max_fork #1#2\xint:#3#4\xint:
{%
\xint_UDsignsfork
#1#3\XINT_max_minusminus % A < 0, B < 0
- #1-\XINT_max_minusplus % B < 0, A >= 0
- #3-\XINT_max_plusminus % 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_zeroplus % B = 0, A > 0
- #30\XINT_max_pluszero % A = 0, 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
- {#2}{#4}#1#3%
-}%
-\def\XINT_max_zerozero #1#2#3#4{\xint_firstoftwo_thenstop }%
-\def\XINT_max_zeroplus #1#2#3#4{\xint_firstoftwo_thenstop }%
-\def\XINT_max_pluszero #1#2#3#4{\xint_secondoftwo_thenstop }%
-\def\XINT_max_minusplus #1#2#3#4{\xint_firstoftwo_thenstop }%
-\def\XINT_max_plusminus #1#2#3#4{\xint_secondoftwo_thenstop }%
-\def\XINT_max_plusplus #1#2#3#4%
-{%
- \ifodd\XINT_Geq {#4#2}{#3#1}
+ #3#1#2\xint:#4\xint:
\expandafter\xint_firstoftwo_thenstop
\else
\expandafter\xint_secondoftwo_thenstop
\fi
+ {#3#4}{#1#2}%
}%
-\def\XINT_max_minusminus #1#2#3#4%
+\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
{%
- \ifodd\XINT_Geq {#1}{#2}
- \expandafter\xint_firstoftwo_thenstop
- \else
- \expandafter\xint_secondoftwo_thenstop
- \fi
+ \if1\romannumeral0\XINT_geq_plusplus
+}%
+\def\XINT_max_minusminus --%
+{%
+ \unless\if1\romannumeral0\XINT_geq_plusplus{}{}%
}%
\def\xintiMaxof {\romannumeral0\xintimaxof }%
\def\xintimaxof #1{\expandafter\XINT_imaxof_a\romannumeral`&&@#1\xint:}%
@@ -606,58 +494,53 @@
\def\xintiMin {\romannumeral0\xintimin }%
\def\xintimin #1%
{%
- \expandafter\xint_min\expandafter {\romannumeral0\xintnum{#1}}%
+ \expandafter\xint_min\romannumeral0\xintnum{#1}\xint:
}%
-\def\xint_min #1#2%
+\def\xint_min #1\xint:#2%
{%
- \expandafter\XINT_min_pre\expandafter {\romannumeral0\xintnum{#2}}{#1}%
+ \expandafter\XINT_min_fork\romannumeral0\xintnum{#2}\xint:#1\xint:
}%
\def\xintiiMin {\romannumeral0\xintiimin }%
\def\xintiimin #1%
{%
- \expandafter\xint_iimin\expandafter {\romannumeral`&&@#1}%
+ \expandafter\xint_iimin \romannumeral`&&@#1\xint:
}%
-\def\xint_iimin #1#2%
+\def\xint_iimin #1\xint:#2%
{%
- \expandafter\XINT_min_pre\expandafter {\romannumeral`&&@#2}{#1}%
+ \expandafter\XINT_min_fork\romannumeral`&&@#2\xint:#1\xint:
}%
-\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}}%
-\def\XINT_min_fork #1#2\Z #3#4\Z
+\def\XINT_min_fork #1#2\xint:#3#4\xint:
{%
\xint_UDsignsfork
#1#3\XINT_min_minusminus % A < 0, B < 0
- #1-\XINT_min_minusplus % B < 0, A >= 0
- #3-\XINT_min_plusminus % 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_zeroplus % B = 0, A > 0
- #30\XINT_min_pluszero % A = 0, 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
- {#2}{#4}#1#3%
-}%
-\def\XINT_min_zerozero #1#2#3#4{\xint_firstoftwo_thenstop }%
-\def\XINT_min_zeroplus #1#2#3#4{\xint_secondoftwo_thenstop }%
-\def\XINT_min_pluszero #1#2#3#4{\xint_firstoftwo_thenstop }%
-\def\XINT_min_minusplus #1#2#3#4{\xint_secondoftwo_thenstop }%
-\def\XINT_min_plusminus #1#2#3#4{\xint_firstoftwo_thenstop }%
-\def\XINT_min_plusplus #1#2#3#4%
-{%
- \ifodd\XINT_Geq {#4#2}{#3#1}
+ #3#1#2\xint:#4\xint:
\expandafter\xint_secondoftwo_thenstop
\else
\expandafter\xint_firstoftwo_thenstop
\fi
+ {#3#4}{#1#2}%
}%
-\def\XINT_min_minusminus #1#2#3#4%
+\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
{%
- \ifodd\XINT_Geq {#1}{#2}
- \expandafter\xint_secondoftwo_thenstop
- \else
- \expandafter\xint_firstoftwo_thenstop
- \fi
+ \if1\romannumeral0\XINT_geq_plusplus
+}%
+\def\XINT_min_minusminus --%
+{%
+ \unless\if1\romannumeral0\XINT_geq_plusplus{}{}%
}%
\def\xintiMinof {\romannumeral0\xintiminof }%
\def\xintiminof #1{\expandafter\XINT_iminof_a\romannumeral`&&@#1\xint:}%
diff --git a/Master/texmf-dist/tex/generic/xint/xintbinhex.sty b/Master/texmf-dist/tex/generic/xint/xintbinhex.sty
index bdbc76c5089..7cf6463d960 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.2l 2017/07/26
+%% The xint bundle 1.2m 2017/07/31
%% Copyright (C) 2013-2017 by Jean-Francois Burnol
%% xintbinhex: Expandable binary and hexadecimal conversions
%% ---------------------------------------------------------------
@@ -70,71 +70,47 @@
\XINTsetupcatcodes% defined in xintkernel.sty
\XINT_providespackage
\ProvidesPackage{xintbinhex}%
- [2017/07/26 1.2l Expandable binary and hexadecimal conversions (JFB)]%
-\def\xint_cleanupzeros_andstop#1{%
-\def\xint_cleanupzeros_andstop ##1##2##3##4%
-{%
- \expandafter#1\the\numexpr ##1##2##3##4\relax
-}}\xint_cleanupzeros_andstop{ }%
+ [2017/07/31 1.2m 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
\newcount\xint_c_x^v \xint_c_x^v 100000
\def\XINT_tmpa #1{\ifx\relax#1\else
\expandafter\edef\csname XINT_sdth_#1\endcsname
{\ifcase #1 0\or 1\or 2\or 3\or 4\or 5\or 6\or 7\or
- 8\or 9\or A\or B\or C\or D\or E\or F\fi}%
+ 8\or 9\or A\or B\or C\or D\or E\or F\else\space\fi}%
\expandafter\XINT_tmpa\fi }%
-\XINT_tmpa {0}{1}{2}{3}{4}{5}{6}{7}{8}{9}{10}{11}{12}{13}{14}{15}\relax
+\XINT_tmpa {-1}{0}{1}{2}{3}{4}{5}{6}{7}{8}{9}{10}{11}{12}{13}{14}{15}\relax
\def\XINT_tmpa #1{\ifx\relax#1\else
\expandafter\edef\csname XINT_sdtb_#1\endcsname
{\ifcase #1
0000\or 0001\or 0010\or 0011\or 0100\or 0101\or 0110\or 0111\or
- 1000\or 1001\or 1010\or 1011\or 1100\or 1101\or 1110\or 1111\fi}%
+ 1000\or 1001\or 1010\or 1011\or 1100\or 1101\or 1110\or 1111\else\space\fi}%
\expandafter\XINT_tmpa\fi }%
-\XINT_tmpa {0}{1}{2}{3}{4}{5}{6}{7}{8}{9}{10}{11}{12}{13}{14}{15}\relax
+\XINT_tmpa {-1}{0}{1}{2}{3}{4}{5}{6}{7}{8}{9}{10}{11}{12}{13}{14}{15}\relax
\let\XINT_tmpa\relax
-\expandafter\def\csname XINT_sbtd_0000\endcsname {0}%
-\expandafter\def\csname XINT_sbtd_0001\endcsname {1}%
-\expandafter\def\csname XINT_sbtd_0010\endcsname {2}%
-\expandafter\def\csname XINT_sbtd_0011\endcsname {3}%
-\expandafter\def\csname XINT_sbtd_0100\endcsname {4}%
-\expandafter\def\csname XINT_sbtd_0101\endcsname {5}%
-\expandafter\def\csname XINT_sbtd_0110\endcsname {6}%
-\expandafter\def\csname XINT_sbtd_0111\endcsname {7}%
-\expandafter\def\csname XINT_sbtd_1000\endcsname {8}%
-\expandafter\def\csname XINT_sbtd_1001\endcsname {9}%
-\expandafter\def\csname XINT_sbtd_1010\endcsname {10}%
-\expandafter\def\csname XINT_sbtd_1011\endcsname {11}%
-\expandafter\def\csname XINT_sbtd_1100\endcsname {12}%
-\expandafter\def\csname XINT_sbtd_1101\endcsname {13}%
-\expandafter\def\csname XINT_sbtd_1110\endcsname {14}%
-\expandafter\def\csname XINT_sbtd_1111\endcsname {15}%
-\expandafter\let\csname XINT_sbth_0000\expandafter\endcsname
- \csname XINT_sbtd_0000\endcsname
-\expandafter\let\csname XINT_sbth_0001\expandafter\endcsname
- \csname XINT_sbtd_0001\endcsname
-\expandafter\let\csname XINT_sbth_0010\expandafter\endcsname
- \csname XINT_sbtd_0010\endcsname
-\expandafter\let\csname XINT_sbth_0011\expandafter\endcsname
- \csname XINT_sbtd_0011\endcsname
-\expandafter\let\csname XINT_sbth_0100\expandafter\endcsname
- \csname XINT_sbtd_0100\endcsname
-\expandafter\let\csname XINT_sbth_0101\expandafter\endcsname
- \csname XINT_sbtd_0101\endcsname
-\expandafter\let\csname XINT_sbth_0110\expandafter\endcsname
- \csname XINT_sbtd_0110\endcsname
-\expandafter\let\csname XINT_sbth_0111\expandafter\endcsname
- \csname XINT_sbtd_0111\endcsname
-\expandafter\let\csname XINT_sbth_1000\expandafter\endcsname
- \csname XINT_sbtd_1000\endcsname
-\expandafter\let\csname XINT_sbth_1001\expandafter\endcsname
- \csname XINT_sbtd_1001\endcsname
+\expandafter\def\csname XINT_sbth_0000\endcsname {0}%
+\expandafter\def\csname XINT_sbth_0001\endcsname {1}%
+\expandafter\def\csname XINT_sbth_0010\endcsname {2}%
+\expandafter\def\csname XINT_sbth_0011\endcsname {3}%
+\expandafter\def\csname XINT_sbth_0100\endcsname {4}%
+\expandafter\def\csname XINT_sbth_0101\endcsname {5}%
+\expandafter\def\csname XINT_sbth_0110\endcsname {6}%
+\expandafter\def\csname XINT_sbth_0111\endcsname {7}%
+\expandafter\def\csname XINT_sbth_1000\endcsname {8}%
+\expandafter\def\csname XINT_sbth_1001\endcsname {9}%
+\expandafter\def\csname XINT_sbth_1010\endcsname {10}%
+\expandafter\def\csname XINT_sbth_1011\endcsname {11}%
+\expandafter\def\csname XINT_sbth_1100\endcsname {12}%
+\expandafter\def\csname XINT_sbth_1101\endcsname {13}%
+\expandafter\def\csname XINT_sbth_1110\endcsname {14}%
+\expandafter\def\csname XINT_sbth_1111\endcsname {15}%
\expandafter\def\csname XINT_sbth_1010\endcsname {A}%
\expandafter\def\csname XINT_sbth_1011\endcsname {B}%
\expandafter\def\csname XINT_sbth_1100\endcsname {C}%
\expandafter\def\csname XINT_sbth_1101\endcsname {D}%
\expandafter\def\csname XINT_sbth_1110\endcsname {E}%
\expandafter\def\csname XINT_sbth_1111\endcsname {F}%
+\let\XINT_sbth_none \empty
\expandafter\def\csname XINT_shtb_0\endcsname {0000}%
\expandafter\def\csname XINT_shtb_1\endcsname {0001}%
\expandafter\def\csname XINT_shtb_2\endcsname {0010}%
@@ -151,516 +127,471 @@
\def\XINT_shtb_D {1101}%
\def\XINT_shtb_E {1110}%
\def\XINT_shtb_F {1111}%
-\def\XINT_shtb_G {}%
-\def\XINT_smallhex #1%
+\let\XINT_shtb_none \empty
+\def\XINT_smallhex #1!%
{%
- \expandafter\XINT_smallhex_a\expandafter
- {\the\numexpr (#1+\xint_c_viii)/\xint_c_xvi-\xint_c_i}{#1}%
+ \expandafter\XINT_smallhex_a
+ \the\numexpr (#1+\xint_c_viii)/\xint_c_xvi-\xint_c_i\xint:#1\xint:
}%
-\def\XINT_smallhex_a #1#2%
+\def\XINT_smallhex_a #1\xint:#2\xint:
{%
\csname XINT_sdth_#1\expandafter\expandafter\expandafter\endcsname
- \csname XINT_sdth_\the\numexpr #2-\xint_c_xvi*#1\endcsname
+ \csname XINT_sdth_\the\numexpr #2-\xint_c_xvi*#1\relax\expandafter\endcsname
+ \romannumeral`&&@%
}%
-\def\XINT_smallbin #1%
+\def\XINT_smallbin #1!%
{%
- \expandafter\XINT_smallbin_a\expandafter
- {\the\numexpr (#1+\xint_c_viii)/\xint_c_xvi-\xint_c_i}{#1}%
+ \expandafter\XINT_smallbin_a
+ \the\numexpr (#1+\xint_c_viii)/\xint_c_xvi-\xint_c_i\xint:#1\xint:
}%
-\def\XINT_smallbin_a #1#2%
+\def\XINT_smallbin_a #1\xint:#2\xint:
{%
\csname XINT_sdtb_#1\expandafter\expandafter\expandafter\endcsname
- \csname XINT_sdtb_\the\numexpr #2-\xint_c_xvi*#1\endcsname
+ \csname XINT_sdtb_\the\numexpr #2-\xint_c_xvi*#1\relax\expandafter\endcsname
+ \romannumeral`&&@%
}%
-\def\XINT_OQ #1#2#3#4#5#6#7#8#9%
+\def\xintDecToHex {\romannumeral0\xintdectohex }%
+\def\xintdectohex #1%
{%
- \xint_gob_til_R #9\XINT_OQ_end_a\R\XINT_OQ {#9#8#7#6#5#4#3#2#1}%
+ \expandafter\XINT_dth_checkin\romannumeral`&&@#1\xint:
}%
-\def\XINT_OQ_end_a\R\XINT_OQ #1#2\Z
+\def\XINT_dth_checkin #1%
{%
- \XINT_OQ_end_b #1\Z
+ \xint_UDsignfork
+ #1\XINT_dth_neg
+ -{\XINT_dth_main #1}%
+ \krof
}%
-\def\XINT_OQ_end_b #1#2#3#4#5#6#7#8%
+\def\XINT_dth_neg {\expandafter-\romannumeral0\XINT_dth_main}%
+\def\XINT_dth_main #1\xint:
{%
- \xint_gob_til_R
- #8\XINT_OQ_end_viii
- #7\XINT_OQ_end_vii
- #6\XINT_OQ_end_vi
- #5\XINT_OQ_end_v
- #4\XINT_OQ_end_iv
- #3\XINT_OQ_end_iii
- #2\XINT_OQ_end_ii
- \R\XINT_OQ_end_i
- \Z #2#3#4#5#6#7#8%
+ \expandafter\XINT_dth_start
+ \romannumeral0\XINT_zeroes_foriv
+ #1\R{0\R}{00\R}{000\R}\R{0\R}{00\R}{000\R}\R\W
+ #1\xint_bye\xint_bye\XINT_dthb_final_a!2!3!4!5!6!7!8!9!\W
}%
-\def\XINT_OQ_end_viii #1\Z #2#3#4#5#6#7#8#9\Z { #9}%
-\def\XINT_OQ_end_vii #1\Z #2#3#4#5#6#7#8#9\Z { #8#90000000}%
-\def\XINT_OQ_end_vi #1\Z #2#3#4#5#6#7#8#9\Z { #7#8#9000000}%
-\def\XINT_OQ_end_v #1\Z #2#3#4#5#6#7#8#9\Z { #6#7#8#900000}%
-\def\XINT_OQ_end_iv #1\Z #2#3#4#5#6#7#8#9\Z { #5#6#7#8#90000}%
-\def\XINT_OQ_end_iii #1\Z #2#3#4#5#6#7#8#9\Z { #4#5#6#7#8#9000}%
-\def\XINT_OQ_end_ii #1\Z #2#3#4#5#6#7#8#9\Z { #3#4#5#6#7#8#900}%
-\def\XINT_OQ_end_i \Z #1#2#3#4#5#6#7#8\Z { #1#2#3#4#5#6#7#80}%
-\def\xintDecToHex {\romannumeral0\xintdectohex }%
-\def\xintdectohex #1%
- {\expandafter\XINT_dth_checkin\romannumeral`&&@#1\W\W\W\W \T}%
-\def\XINT_dth_checkin #1%
+\def\XINT_dth_start #1#2#3#4#5%
{%
- \xint_UDsignfork
- #1\XINT_dth_N
- -{\XINT_dth_P #1}%
- \krof
+ \xint_bye#5\XINT_dth_small\xint_bye
+ \XINT_dth_start_a #1#2#3#4#5%
}%
-\def\XINT_dth_N {\expandafter-\romannumeral0\XINT_dth_P }%
-\def\XINT_dth_P {\expandafter\XINT_dth_III\romannumeral`&&@\XINT_dtbh_I {0.}}%
-\def\xintDecToBin {\romannumeral0\xintdectobin }%
-\def\xintdectobin #1%
- {\expandafter\XINT_dtb_checkin\romannumeral`&&@#1\W\W\W\W \T }%
-\def\XINT_dtb_checkin #1%
+\def\XINT_dth_start_a #1#2#3#4#5%
{%
- \xint_UDsignfork
- #1\XINT_dtb_N
- -{\XINT_dtb_P #1}%
- \krof
+ \expandafter\XINT_dth_A\the\numexpr\XINT_dth_a
+ #1#2#3#4\XINT_dth_nextfour!2!3!4!5!6!7!8!9!\Z #5%
}%
-\def\XINT_dtb_N {\expandafter-\romannumeral0\XINT_dtb_P }%
-\def\XINT_dtb_P {\expandafter\XINT_dtb_III\romannumeral`&&@\XINT_dtbh_I {0.}}%
-\def\XINT_dtbh_I #1#2#3#4#5%
+\def\XINT_dth_small\xint_bye\XINT_dth_start_a #1\xint_bye #2\W
{%
- \xint_gob_til_W #5\XINT_dtbh_II_a\W\XINT_dtbh_I_a {}{#2#3#4#5}#1\Z.%
+ \expandafter\XINT_dth_B_finish
+ \romannumeral`&&@\XINT_tofourhex#1!\space
}%
-\def\XINT_dtbh_II_a\W\XINT_dtbh_I_a #1#2{\XINT_dtbh_II_b #2}%
-\def\XINT_dtbh_II_b #1#2#3#4%
+\def\XINT_dth_a #1!#2!#3!#4!#5!#6!#7!#8!#9!%
{%
- \xint_gob_til_W
- #1\XINT_dtbh_II_c
- #2\XINT_dtbh_II_ci
- #3\XINT_dtbh_II_cii
- \W\XINT_dtbh_II_ciii #1#2#3#4%
+ \expandafter\XINT_dth_update
+ \the\numexpr #1\expandafter\XINT_dth_update
+ \the\numexpr #2\expandafter\XINT_dth_update
+ \the\numexpr #3\expandafter\XINT_dth_update
+ \the\numexpr #4\expandafter\XINT_dth_update
+ \the\numexpr #5\expandafter\XINT_dth_update
+ \the\numexpr #6\expandafter\XINT_dth_update
+ \the\numexpr #7\expandafter\XINT_dth_update
+ \the\numexpr #8\expandafter\XINT_dth_update
+ \the\numexpr #9\XINT_dth_a
}%
-\def\XINT_dtbh_II_c \W\XINT_dtbh_II_ci
- \W\XINT_dtbh_II_cii
- \W\XINT_dtbh_II_ciii \W\W\W\W {{}}%
-\def\XINT_dtbh_II_ci #1\XINT_dtbh_II_ciii #2\W\W\W
- {\XINT_dtbh_II_d {}{#2}{0}}%
-\def\XINT_dtbh_II_cii\W\XINT_dtbh_II_ciii #1#2\W\W
- {\XINT_dtbh_II_d {}{#1#2}{00}}%
-\def\XINT_dtbh_II_ciii #1#2#3\W
- {\XINT_dtbh_II_d {}{#1#2#3}{000}}%
-\def\XINT_dtbh_I_a #1#2#3.%
+\def\XINT_dth_nextfour #1\Z #2#3#4#5%
{%
- \xint_gob_til_Z #3\XINT_dtbh_I_z\Z
- \expandafter\XINT_dtbh_I_b\the\numexpr #2+#30000.{#1}%
+ #2#3#4#5!\relax\XINT_dth_nextfour!2!3!4!5!6!7!8!9!\Z
}%
-\def\XINT_dtbh_I_b #1.%
+\def\XINT_dth_update #1!%
{%
- \expandafter\XINT_dtbh_I_c\the\numexpr
- (#1+\xint_c_ii^xv)/\xint_c_ii^xvi-\xint_c_i.#1.%
+ \expandafter\XINT_dth_update_a
+ \the\numexpr (#1+\xint_c_ii^xv)/\xint_c_ii^xvi-\xint_c_i\xint:
+ #1\xint:%
}%
-\def\XINT_dtbh_I_c #1.#2.%
+\def\XINT_dth_update_a #1\xint:#2\xint:
{%
- \expandafter\XINT_dtbh_I_d\expandafter
- {\the\numexpr #2-\xint_c_ii^xvi*#1}{#1}%
+ 0000+#1\expandafter!\expandafter!\the\numexpr#2-#1*\xint_c_ii^xvi
}%
-\def\XINT_dtbh_I_d #1#2#3{\XINT_dtbh_I_a {#3#1.}{#2}}%
-\def\XINT_dtbh_I_z\Z\expandafter\XINT_dtbh_I_b\the\numexpr #1+#2.%
+\def\XINT_dth_A #1!!%
{%
- \ifnum #1=\xint_c_ \expandafter\XINT_dtbh_I_end_zb\fi
- \XINT_dtbh_I_end_za {#1}%
+ \ifnum #1>\xint_c_ \xint_dothis{\XINT_dth_again #1!}\fi
+ \xint_orthat{\XINT_dth_again}%
}%
-\def\XINT_dtbh_I_end_za #1#2{\XINT_dtbh_I {#2#1.}}%
-\def\XINT_dtbh_I_end_zb\XINT_dtbh_I_end_za #1#2{\XINT_dtbh_I {#2}}%
-\def\XINT_dtbh_II_d #1#2#3#4.%
+\def\XINT_dth_again #1\Z #2%
{%
- \xint_gob_til_Z #4\XINT_dtbh_II_z\Z
- \expandafter\XINT_dtbh_II_e\the\numexpr #2+#4#3.{#1}{#3}%
+ \xint_bye #2\XINT_dth_B_a\xint_bye
+ \expandafter\XINT_dth_A\the\numexpr\XINT_dth_a #1\Z #2%
}%
-\def\XINT_dtbh_II_e #1.%
+\def\XINT_dth_B_a\xint_bye
+ \expandafter\XINT_dth_A\the\numexpr\XINT_dth_a #1\XINT_dth_nextfour #2\Z
{%
- \expandafter\XINT_dtbh_II_f\the\numexpr
- (#1+\xint_c_ii^xv)/\xint_c_ii^xvi-\xint_c_i.#1.%
+ \expandafter\XINT_dth_B_finish\romannumeral`&&@\XINT_dth_B_c #1!%
}%
-\def\XINT_dtbh_II_f #1.#2.%
+\def\XINT_dth_B_c #1!#2!#3!#4!#5!#6!#7!#8!#9!%
{%
- \expandafter\XINT_dtbh_II_g\expandafter
- {\the\numexpr #2-\xint_c_ii^xvi*#1}{#1}%
+ \XINT_tofourhex#1!%
+ \XINT_tofourhex#2!%
+ \XINT_tofourhex#3!%
+ \XINT_tofourhex#4!%
+ \XINT_tofourhex#5!%
+ \XINT_tofourhex#6!%
+ \XINT_tofourhex#7!%
+ \XINT_tofourhex#8!%
+ \XINT_tofourhex#9!%
+ \XINT_dth_B_c
}%
-\def\XINT_dtbh_II_g #1#2#3{\XINT_dtbh_II_d {#3#1.}{#2}}%
-\def\XINT_dtbh_II_z\Z\expandafter\XINT_dtbh_II_e\the\numexpr #1+#2.%
+\def\XINT_tofourhex #1!%
{%
- \ifnum #1=\xint_c_ \expandafter\XINT_dtbh_II_end_zb\fi
- \XINT_dtbh_II_end_za {#1}%
+ \expandafter\XINT_tofourhex_a
+ \the\numexpr (#1+\xint_c_ii^vii)/\xint_c_ii^viii-\xint_c_i\xint: #1\xint:
}%
-\def\XINT_dtbh_II_end_za #1#2#3{{}#2#1.\Z.}%
-\def\XINT_dtbh_II_end_zb\XINT_dtbh_II_end_za #1#2#3{{}#2\Z.}%
-\def\XINT_dth_III #1#2.%
+\def\XINT_tofourhex_a #1\xint: #2\xint:
{%
- \xint_gob_til_Z #2\XINT_dth_end\Z
- \expandafter\XINT_dth_III\expandafter
- {\romannumeral`&&@\XINT_dth_small #2.#1}%
+ \expandafter\XINT_tofourhex_b
+ \the\numexpr #2-\xint_c_ii^viii*#1\xint:#1\xint:
}%
-\def\XINT_dth_small #1.%
+\def\XINT_tofourhex_b #1\xint: #2\xint:
{%
- \expandafter\XINT_smallhex\expandafter
- {\the\numexpr (#1+\xint_c_ii^vii)/\xint_c_ii^viii-\xint_c_i\expandafter}%
- \romannumeral`&&@\expandafter\XINT_smallhex\expandafter
- {\the\numexpr
- #1-((#1+\xint_c_ii^vii)/\xint_c_ii^viii-\xint_c_i)*\xint_c_ii^viii}%
+ \XINT_smallhex #2!%
+ \XINT_smallhex #1!%
}%
-\def\XINT_dth_end\Z\expandafter\XINT_dth_III\expandafter #1#2\T
+\def\XINT_dthb_final_a #1\W{1)\relax \xint:\XINT_dthb_final_b\xint:\W}%
+\def\XINT_dthb_final_b #1\W{1\relax \xint:\XINT_dthb_final_c\xint:\W}%
+\def\XINT_dthb_final_c #1\W{-1)\relax \XINT_dthb_final_d\xint:\xint:\W}%
+\def\XINT_dthb_final_d #1\W{\endcsname}%
+\def\XINT_dth_B_finish #1#2#3%
{%
- \XINT_dth_end_b #1%
+ \unless\if#10\xint_dothis{ #1#2#3}\fi
+ \unless\if#20\xint_dothis{ #2#3}\fi
+ \unless\if#30\xint_dothis{ #3}\fi
+ \xint_orthat{ }%
}%
-\def\XINT_dth_end_b #1.{\XINT_dth_end_c }%
-\def\XINT_dth_end_c #1{\xint_gob_til_zero #1\XINT_dth_end_d 0\space #1}%
-\def\XINT_dth_end_d 0\space 0#1%
+\def\xintDecToBin {\romannumeral0\xintdectobin }%
+\def\xintdectobin #1%
{%
- \xint_gob_til_zero #1\XINT_dth_end_e 0\space #1%
+ \expandafter\XINT_dtb_checkin\romannumeral`&&@#1\xint:
}%
-\def\XINT_dth_end_e 0\space 0#1%
+\def\XINT_dtb_checkin #1%
{%
- \xint_gob_til_zero #1\XINT_dth_end_f 0\space #1%
+ \xint_UDsignfork
+ #1\XINT_dtb_neg
+ -{\XINT_dtb_main #1}%
+ \krof
}%
-\def\XINT_dth_end_f 0\space 0{ }%
-\def\XINT_dtb_III #1#2.%
+\def\XINT_dtb_neg {\expandafter-\romannumeral0\XINT_dtb_main}%
+\def\XINT_dtb_main #1\xint:
{%
- \xint_gob_til_Z #2\XINT_dtb_end\Z
- \expandafter\XINT_dtb_III\expandafter
- {\romannumeral`&&@\XINT_dtb_small #2.#1}%
+ \expandafter\XINT_dtb_start
+ \romannumeral0\XINT_zeroes_foriv
+ #1\R{0\R}{00\R}{000\R}\R{0\R}{00\R}{000\R}\R\W
+ #1\xint_bye\xint_bye\XINT_dthb_final_a!2!3!4!5!6!7!8!9!\W
}%
-\def\XINT_dtb_small #1.%
+\def\XINT_dtb_start #1#2#3#4#5%
{%
- \expandafter\XINT_smallbin\expandafter
- {\the\numexpr (#1+\xint_c_ii^vii)/\xint_c_ii^viii-\xint_c_i\expandafter}%
- \romannumeral`&&@\expandafter\XINT_smallbin\expandafter
- {\the\numexpr
- #1-((#1+\xint_c_ii^vii)/\xint_c_ii^viii-\xint_c_i)*\xint_c_ii^viii}%
+ \xint_bye#5\XINT_dtb_small\xint_bye
+ \XINT_dtb_start_a #1#2#3#4#5%
}%
-\def\XINT_dtb_end\Z\expandafter\XINT_dtb_III\expandafter #1#2\T
+\def\XINT_dtb_start_a #1#2#3#4#5%
{%
- \XINT_dtb_end_b #1%
+ \expandafter\XINT_dtb_A\the\numexpr\XINT_dtb_a
+ #1#2#3#4\XINT_dtb_nextfour!2!3!4!5!6!7!8!9!\Z #5%
}%
-\def\XINT_dtb_end_b #1.{\XINT_dtb_end_c }%
-\def\XINT_dtb_end_c #1#2#3#4#5#6#7#8%
+\def\XINT_dtb_small\xint_bye\XINT_dtb_start_a #1\xint_bye #2\W
{%
- \expandafter\XINT_dtb_end_d\the\numexpr #1#2#3#4#5#6#7#8\relax
+ \expandafter\XINT_dtb_B_finish
+ \romannumeral`&&@\XINT_tosixteenbits#1!\space
}%
-\def\XINT_dtb_end_d#1{%
-\def\XINT_dtb_end_d ##1##2##3##4##5##6##7##8##9%
+\def\XINT_dtb_a #1!#2!#3!#4!#5!#6!#7!#8!#9!%
{%
- \expandafter#1\the\numexpr ##1##2##3##4##5##6##7##8##9\relax
-}}\XINT_dtb_end_d{ }%
-\def\xintHexToDec {\romannumeral0\xinthextodec }%
-\def\xinthextodec #1%
- {\expandafter\XINT_htd_checkin\romannumeral`&&@#1\W\W\W\W \T }%
-\def\XINT_htd_checkin #1%
+ \expandafter\XINT_dtb_update
+ \the\numexpr #1\expandafter\XINT_dtb_update
+ \the\numexpr #2\expandafter\XINT_dtb_update
+ \the\numexpr #3\expandafter\XINT_dtb_update
+ \the\numexpr #4\expandafter\XINT_dtb_update
+ \the\numexpr #5\expandafter\XINT_dtb_update
+ \the\numexpr #6\expandafter\XINT_dtb_update
+ \the\numexpr #7\expandafter\XINT_dtb_update
+ \the\numexpr #8\expandafter\XINT_dtb_update
+ \the\numexpr #9\XINT_dtb_a
+}%
+\def\XINT_dtb_nextfour #1\Z #2#3#4#5%
{%
- \xint_UDsignfork
- #1\XINT_htd_neg
- -{\XINT_htd_I {0000}#1}%
- \krof
+ #2#3#4#5!\relax\XINT_dtb_nextfour!2!3!4!5!6!7!8!9!\Z
}%
-\def\XINT_htd_neg {\expandafter-\romannumeral0\XINT_htd_I {0000}}%
-\def\XINT_htd_I #1#2#3#4#5%
+\def\XINT_dtb_update #1!%
{%
- \xint_gob_til_W #5\XINT_htd_II_a\W
- \XINT_htd_I_a {}{"#2#3#4#5}#1\Z\Z\Z\Z
+ \expandafter\XINT_dtb_update_a
+ \the\numexpr (#1+\xint_c_ii^xv)/\xint_c_ii^xvi-\xint_c_i\xint:
+ #1\xint:%
}%
-\def\XINT_htd_II_a \W\XINT_htd_I_a #1#2{\XINT_htd_II_b #2}%
-\def\XINT_htd_II_b "#1#2#3#4%
+\def\XINT_dtb_update_a #1\xint:#2\xint:
{%
- \xint_gob_til_W
- #1\XINT_htd_II_c
- #2\XINT_htd_II_ci
- #3\XINT_htd_II_cii
- \W\XINT_htd_II_ciii #1#2#3#4%
+ 0000+#1\expandafter!\expandafter!\the\numexpr#2-#1*\xint_c_ii^xvi
}%
-\def\XINT_htd_II_c \W\XINT_htd_II_ci
- \W\XINT_htd_II_cii
- \W\XINT_htd_II_ciii \W\W\W\W #1\Z\Z\Z\Z\T
+\def\XINT_dtb_A #1!!%
{%
- \expandafter\xint_cleanupzeros_andstop
- \romannumeral0\XINT_rord_main {}#1%
- \xint:
- \xint_bye\xint_bye\xint_bye\xint_bye
- \xint_bye\xint_bye\xint_bye\xint_bye
- \xint:
+ \ifnum #1>\xint_c_ \xint_dothis{\XINT_dtb_again #1!}\fi
+ \xint_orthat{\XINT_dtb_again}%
}%
-\def\XINT_htd_II_ci #1\XINT_htd_II_ciii
- #2\W\W\W {\XINT_htd_II_d {}{"#2}{\xint_c_xvi}}%
-\def\XINT_htd_II_cii\W\XINT_htd_II_ciii
- #1#2\W\W {\XINT_htd_II_d {}{"#1#2}{\xint_c_ii^viii}}%
-\def\XINT_htd_II_ciii #1#2#3\W {\XINT_htd_II_d {}{"#1#2#3}{\xint_c_ii^xii}}%
-\def\XINT_htd_I_a #1#2#3#4#5#6%
+\def\XINT_dtb_again #1\Z #2%
{%
- \xint_gob_til_Z #3\XINT_htd_I_end_a\Z
- \expandafter\XINT_htd_I_b\the\numexpr
- #2+\xint_c_ii^xvi*#6#5#4#3+\xint_c_x^ix\relax {#1}%
+ \xint_bye #2\XINT_dtb_B_a\xint_bye
+ \expandafter\XINT_dtb_A\the\numexpr\XINT_dtb_a #1\Z #2%
}%
-\def\XINT_htd_I_b 1#1#2#3#4#5#6#7#8#9{\XINT_htd_I_c {#1#2#3#4#5}{#9#8#7#6}}%
-\def\XINT_htd_I_c #1#2#3{\XINT_htd_I_a {#3#2}{#1}}%
-\def\XINT_htd_I_end_a\Z\expandafter\XINT_htd_I_b\the\numexpr #1+#2\relax
+\def\XINT_dtb_B_a\xint_bye
+ \expandafter\XINT_dtb_A\the\numexpr\XINT_dtb_a #1\XINT_dtb_nextfour #2\Z
{%
- \expandafter\XINT_htd_I_end_b\the\numexpr \xint_c_x^v+#1\relax
+ \expandafter\XINT_dtb_B_finish\romannumeral`&&@\XINT_dtb_B_c #1!%
}%
-\def\XINT_htd_I_end_b 1#1#2#3#4#5%
+\def\XINT_dtb_B_c #1!#2!#3!#4!#5!#6!#7!#8!#9!%
{%
- \xint_gob_til_zero #1\XINT_htd_I_end_bz0%
- \XINT_htd_I_end_c #1#2#3#4#5%
+ \XINT_tosixteenbits#1!%
+ \XINT_tosixteenbits#2!%
+ \XINT_tosixteenbits#3!%
+ \XINT_tosixteenbits#4!%
+ \XINT_tosixteenbits#5!%
+ \XINT_tosixteenbits#6!%
+ \XINT_tosixteenbits#7!%
+ \XINT_tosixteenbits#8!%
+ \XINT_tosixteenbits#9!%
+ \XINT_dtb_B_c
}%
-\def\XINT_htd_I_end_c #1#2#3#4#5#6{\XINT_htd_I {#6#5#4#3#2#1000}}%
-\def\XINT_htd_I_end_bz0\XINT_htd_I_end_c 0#1#2#3#4%
+\def\XINT_tosixteenbits #1!%
{%
- \xint_gob_til_zeros_iv #1#2#3#4\XINT_htd_I_end_bzz 0000%
- \XINT_htd_I_end_D {#4#3#2#1}%
+ \expandafter\XINT_tosixteenbits_a
+ \the\numexpr (#1+\xint_c_ii^vii)/\xint_c_ii^viii-\xint_c_i\xint: #1\xint:
}%
-\def\XINT_htd_I_end_D #1#2{\XINT_htd_I {#2#1}}%
-\def\XINT_htd_I_end_bzz 0000\XINT_htd_I_end_D #1{\XINT_htd_I }%
-\def\XINT_htd_II_d #1#2#3#4#5#6#7%
+\def\XINT_tosixteenbits_a #1\xint: #2\xint:
{%
- \xint_gob_til_Z #4\XINT_htd_II_end_a\Z
- \expandafter\XINT_htd_II_e\the\numexpr
- #2+#3*#7#6#5#4+\xint_c_x^viii\relax {#1}{#3}%
+ \expandafter\XINT_tosixteenbits_b
+ \the\numexpr #2-\xint_c_ii^viii*#1\xint:#1\xint:
}%
-\def\XINT_htd_II_e 1#1#2#3#4#5#6#7#8{\XINT_htd_II_f {#1#2#3#4}{#5#6#7#8}}%
-\def\XINT_htd_II_f #1#2#3{\XINT_htd_II_d {#2#3}{#1}}%
-\def\XINT_htd_II_end_a\Z\expandafter\XINT_htd_II_e
- \the\numexpr #1+#2\relax #3#4\T
+\def\XINT_tosixteenbits_b #1\xint: #2\xint:
{%
- \XINT_htd_II_end_b #1#3%
+ \XINT_smallbin #2!%
+ \XINT_smallbin #1!%
}%
-\def\XINT_htd_II_end_b#1{%
-\def\XINT_htd_II_end_b ##1##2##3##4##5##6##7##8%
+\def\XINT_dtb_B_finish #1#2#3#4#5#6#7#8%
{%
- \expandafter#1\the\numexpr ##1##2##3##4##5##6##7##8\relax
-}}\XINT_htd_II_end_b{ }%
-\def\xintBinToDec {\romannumeral0\xintbintodec }%
-\def\xintbintodec #1{\expandafter\XINT_btd_checkin
- \romannumeral`&&@#1\W\W\W\W\W\W\W\W \T }%
-\def\XINT_btd_checkin #1%
+ \expandafter\XINT_dtb_B_finish_a\the\numexpr #1#2#3#4#5#6#7#8\relax
+}%
+\def\XINT_dtb_B_finish_a #1{%
+\def\XINT_dtb_B_finish_a ##1##2##3##4##5##6##7##8##9%
+{%
+ \expandafter#1\the\numexpr ##1##2##3##4##5##6##7##8##9\relax
+}}\XINT_dtb_B_finish_a { }%
+\def\xintHexToDec {\romannumeral0\xinthextodec }%
+\def\xinthextodec #1%
+{%
+ \expandafter\XINT_htd_checkin\romannumeral`&&@#1\xint:
+}%
+\def\XINT_htd_checkin #1%
{%
\xint_UDsignfork
- #1\XINT_btd_neg
- -{\XINT_btd_I {000000}#1}%
+ #1\XINT_htd_neg
+ -{\XINT_htd_main #1}%
\krof
}%
-\def\XINT_btd_neg {\expandafter-\romannumeral0\XINT_btd_I {000000}}%
-\def\XINT_btd_I #1#2#3#4#5#6#7#8#9%
+\def\XINT_htd_neg {\expandafter-\romannumeral0\XINT_htd_main}%
+\def\XINT_htd_main #1\xint:
{%
- \xint_gob_til_W #9\XINT_btd_II_a {#2#3#4#5#6#7#8#9}\W
- \XINT_btd_I_a {}{\csname XINT_sbtd_#2#3#4#5\endcsname*\xint_c_xvi+%
- \csname XINT_sbtd_#6#7#8#9\endcsname}%
- #1\Z\Z\Z\Z\Z\Z
+ \expandafter\XINT_htd_startb
+ \the\numexpr\expandafter\XINT_htd_starta
+ \romannumeral0\XINT_zeroes_foriv
+ #1\R{0\R}{00\R}{000\R}\R{0\R}{00\R}{000\R}\R\W
+ #1\xint_bye!2!3!4!5!6!7!8!9!\xint_bye\relax
}%
-\def\XINT_btd_II_a #1\W\XINT_btd_I_a #2#3{\XINT_btd_II_b #1}%
-\def\XINT_btd_II_b #1#2#3#4#5#6#7#8%
+\def\XINT_htd_starta #1#2#3#4{"#1#2#3#4+100000!}%
+\def\XINT_htd_startb 1#1%
{%
- \xint_gob_til_W
- #1\XINT_btd_II_c
- #2\XINT_btd_II_ci
- #3\XINT_btd_II_cii
- #4\XINT_btd_II_ciii
- #5\XINT_btd_II_civ
- #6\XINT_btd_II_cv
- #7\XINT_btd_II_cvi
- \W\XINT_btd_II_cvii #1#2#3#4#5#6#7#8%
+ \if#10\expandafter\XINT_htd_startba\else
+ \expandafter\XINT_htd_startbb
+ \fi 1#1%
}%
-\def\XINT_btd_II_c #1\XINT_btd_II_cvii \W\W\W\W\W\W\W\W #2\Z\Z\Z\Z\Z\Z\T
+\def\XINT_htd_startba 10#1!{\XINT_htd_again #1%
+ \xint_bye!2!3!4!5!6!7!8!9!\xint_bye\XINT_htd_nextfour}%
+\def\XINT_htd_startbb 1#1#2!{\XINT_htd_again #1!#2%
+ \xint_bye!2!3!4!5!6!7!8!9!\xint_bye\XINT_htd_nextfour}%
+\def\XINT_htd_again #1\XINT_htd_nextfour #2%
{%
- \expandafter\XINT_btd_II_c_end
- \romannumeral0\XINT_rord_main {}#2%
- \xint:
- \xint_bye\xint_bye\xint_bye\xint_bye
- \xint_bye\xint_bye\xint_bye\xint_bye
- \xint:
+ \xint_bye #2\XINT_htd_end_a\xint_bye
+ \expandafter\XINT_htd_A\the\numexpr
+ \XINT_htd_a #1\XINT_htd_nextfour #2%
}%
-\def\XINT_btd_II_c_end#1{%
-\def\XINT_btd_II_c_end ##1##2##3##4##5##6%
+\def\XINT_htd_a #1!#2!#3!#4!#5!#6!#7!#8!#9!%
{%
- \expandafter#1\the\numexpr ##1##2##3##4##5##6\relax
-}}\XINT_btd_II_c_end{ }%
-\def\XINT_btd_II_ci #1\XINT_btd_II_cvii #2\W\W\W\W\W\W\W
- {\XINT_btd_II_d {}{#2}{\xint_c_ii }}%
-\def\XINT_btd_II_cii #1\XINT_btd_II_cvii #2\W\W\W\W\W\W
- {\XINT_btd_II_d {}{\csname XINT_sbtd_00#2\endcsname }{\xint_c_iv }}%
-\def\XINT_btd_II_ciii #1\XINT_btd_II_cvii #2\W\W\W\W\W
- {\XINT_btd_II_d {}{\csname XINT_sbtd_0#2\endcsname }{\xint_c_viii }}%
-\def\XINT_btd_II_civ #1\XINT_btd_II_cvii #2\W\W\W\W
- {\XINT_btd_II_d {}{\csname XINT_sbtd_#2\endcsname}{\xint_c_xvi }}%
-\def\XINT_btd_II_cv #1\XINT_btd_II_cvii #2#3#4#5#6\W\W\W
+ #1\expandafter\XINT_htd_update
+ \the\numexpr #2\expandafter\XINT_htd_update
+ \the\numexpr #3\expandafter\XINT_htd_update
+ \the\numexpr #4\expandafter\XINT_htd_update
+ \the\numexpr #5\expandafter\XINT_htd_update
+ \the\numexpr #6\expandafter\XINT_htd_update
+ \the\numexpr #7\expandafter\XINT_htd_update
+ \the\numexpr #8\expandafter\XINT_htd_update
+ \the\numexpr #9\expandafter\XINT_htd_update
+ \the\numexpr \XINT_htd_a
+}%
+\def\XINT_htd_nextfour #1#2#3#4%
{%
- \XINT_btd_II_d {}{\csname XINT_sbtd_#2#3#4#5\endcsname*\xint_c_ii+%
- #6}{\xint_c_ii^v }%
+ *\xint_c_ii^xvi+"#1#2#3#4+\xint_c_x^ix\relax\xint_bye!%
+ 2!3!4!5!6!7!8!9!\xint_bye\XINT_htd_nextfour
}%
-\def\XINT_btd_II_cvi #1\XINT_btd_II_cvii #2#3#4#5#6#7\W\W
+\def\XINT_htd_update 1#1#2#3#4#5#6!%
{%
- \XINT_btd_II_d {}{\csname XINT_sbtd_#2#3#4#5\endcsname*\xint_c_iv+%
- \csname XINT_sbtd_00#6#7\endcsname}{\xint_c_ii^vi }%
+ *\xint_c_ii^xvi+#1#2#3#4#5+\xint_c_x^ix!#6!%
}%
-\def\XINT_btd_II_cvii #1#2#3#4#5#6#7\W
+\def\XINT_htd_A 1#1%
{%
- \XINT_btd_II_d {}{\csname XINT_sbtd_#1#2#3#4\endcsname*\xint_c_viii+%
- \csname XINT_sbtd_0#5#6#7\endcsname}{\xint_c_ii^vii }%
+ \if#10\expandafter\XINT_htd_Aa\else
+ \expandafter\XINT_htd_Ab
+ \fi 1#1%
}%
-\def\XINT_btd_II_d #1#2#3#4#5#6#7#8#9%
+\def\XINT_htd_Aa 10#1#2#3#4#5!{\XINT_htd_again #1#2#3#4!#5!}%
+\def\XINT_htd_Ab 1#1#2#3#4#5#6!{\XINT_htd_again #1!#2#3#4#5!#6!}%
+\def\XINT_htd_end_a\xint_bye
+ \expandafter\XINT_htd_A\the\numexpr \XINT_htd_a #1\XINT_htd_nextfour
{%
- \xint_gob_til_Z #4\XINT_btd_II_end_a\Z
- \expandafter\XINT_btd_II_e\the\numexpr
- #2+(\xint_c_x^ix+#3*#9#8#7#6#5#4)\relax {#1}{#3}%
+ \expandafter\XINT_htd_end_b\the\numexpr0\XINT_unsepb_loop #1%
}%
-\def\XINT_btd_II_e 1#1#2#3#4#5#6#7#8#9{\XINT_btd_II_f {#1#2#3}{#4#5#6#7#8#9}}%
-\def\XINT_btd_II_f #1#2#3{\XINT_btd_II_d {#2#3}{#1}}%
-\def\XINT_btd_II_end_a\Z\expandafter\XINT_btd_II_e
- \the\numexpr #1+(#2\relax #3#4\T
+\def\XINT_htd_end_b #1{%
+\def\XINT_htd_end_b ##1##2##3##4##5%
+ {\expandafter#1\the\numexpr ##1##2##3##4##5\relax}%
+}\XINT_htd_end_b{ }%
+\def\xintBinToDec {\romannumeral0\xintbintodec }%
+\def\xintbintodec #1%
{%
- \XINT_btd_II_end_b #1#3%
+ \expandafter\XINT_btd_checkin\romannumeral`&&@#1\xint:
}%
-\def\XINT_btd_II_end_b#1{%
-\def\XINT_btd_II_end_b ##1##2##3##4##5##6##7##8##9%
+\def\XINT_btd_checkin #1%
{%
- \expandafter#1\the\numexpr ##1##2##3##4##5##6##7##8##9\relax
-}}\XINT_btd_II_end_b{ }%
-\def\XINT_btd_I_a #1#2#3#4#5#6#7#8%
+ \xint_UDsignfork
+ #1\XINT_btd_N
+ -{\XINT_btd_main #1}%
+ \krof
+}%
+\def\XINT_btd_N {\expandafter-\romannumeral0\XINT_btd_main }%
+\def\XINT_btd_main #1\xint:
{%
- \xint_gob_til_Z #3\XINT_btd_I_end_a\Z
- \expandafter\XINT_btd_I_b\the\numexpr
- #2+\xint_c_ii^viii*#8#7#6#5#4#3+\xint_c_x^ix\relax {#1}%
+ \expandafter\XINT_btd_htd
+ \csname\expandafter\XINT_btd_tohex
+ \romannumeral0\XINT_zeroes_foriv
+ #1\R{0\R}{00\R}{000\R}\R{0\R}{00\R}{000\R}\R\W
+ #1\XINT_btd_tohex_endcsname2345678\W
}%
-\def\XINT_btd_I_b 1#1#2#3#4#5#6#7#8#9{\XINT_btd_I_c {#1#2#3}{#9#8#7#6#5#4}}%
-\def\XINT_btd_I_c #1#2#3{\XINT_btd_I_a {#3#2}{#1}}%
-\def\XINT_btd_I_end_a\Z\expandafter\XINT_btd_I_b
- \the\numexpr #1+\xint_c_ii^viii #2\relax
+\def\XINT_btd_tohex #1#2#3#4#5#6#7#8%
{%
- \expandafter\XINT_btd_I_end_b\the\numexpr 1000+#1\relax
+ XINT_sbth_#1#2#3#4\expandafter\endcsname
+ \csname XINT_sbth_#5#6#7#8\expandafter\endcsname
+ \csname\XINT_btd_tohex
}%
-\def\XINT_btd_I_end_b 1#1#2#3%
+\def\XINT_btd_tohex_endcsname#1\W{none\endcsname}%
+\def\XINT_btd_htd #1\XINT_sbth_none
{%
- \xint_gob_til_zeros_iii #1#2#3\XINT_btd_I_end_bz 000%
- \XINT_btd_I_end_c #1#2#3%
+ \expandafter\XINT_htd_startb
+ \the\numexpr\expandafter\XINT_htd_starta
+ \romannumeral0\XINT_zeroes_foriv
+ #1\R{0\R}{00\R}{000\R}\R{0\R}{00\R}{000\R}\R\W
+ #1\xint_bye!2!3!4!5!6!7!8!9!\xint_bye\relax
}%
-\def\XINT_btd_I_end_c #1#2#3#4{\XINT_btd_I {#4#3#2#1000}}%
-\def\XINT_btd_I_end_bz 000\XINT_btd_I_end_c 000{\XINT_btd_I }%
\def\xintBinToHex {\romannumeral0\xintbintohex }%
\def\xintbintohex #1%
{%
- \expandafter\XINT_bth_checkin
- \romannumeral0\expandafter\XINT_num_cleanup
- \the\numexpr\expandafter\XINT_num_loop
- \romannumeral`&&@#1\xint:\xint:\xint:\xint:\xint:\xint:\xint:\xint:\xint:\Z
- \R\R\R\R\R\R\R\R\Z \W\W\W\W\W\W\W\W
+ \expandafter\XINT_bth_checkin\romannumeral`&&@#1\xint:
}%
\def\XINT_bth_checkin #1%
{%
\xint_UDsignfork
#1\XINT_bth_N
- -{\XINT_bth_P #1}%
+ -{\XINT_bth_main #1}%
\krof
}%
-\def\XINT_bth_N {\expandafter-\romannumeral0\XINT_bth_P }%
-\def\XINT_bth_P {\expandafter\XINT_bth_I\expandafter{\expandafter}%
- \romannumeral0\XINT_OQ {}}%
-\def\XINT_bth_I #1#2#3#4#5#6#7#8#9%
+\def\XINT_bth_N {\expandafter-\romannumeral0\XINT_bth_main }%
+\def\XINT_bth_main #1{%
+\def\XINT_bth_main ##1\xint:
{%
- \xint_gob_til_W #9\XINT_bth_end_a\W
- \expandafter\expandafter\expandafter
- \XINT_bth_I
- \expandafter\expandafter\expandafter
- {\csname XINT_sbth_#9#8#7#6\expandafter\expandafter\expandafter\endcsname
- \csname XINT_sbth_#5#4#3#2\endcsname #1}%
-}%
-\def\XINT_bth_end_a\W \expandafter\expandafter\expandafter
- \XINT_bth_I \expandafter\expandafter\expandafter #1%
-{%
- \XINT_bth_end_b #1%
-}%
-\def\XINT_bth_end_b #1\endcsname #2\endcsname #3%
+ \expandafter\expandafter\expandafter#1%
+ \csname\expandafter\XINT_bth_tohex
+ \romannumeral0\XINT_zeroes_foriv
+ ##1\R{0\R}{00\R}{000\R}\R{0\R}{00\R}{000\R}\R\W
+ ##1\XINT_bth_tohex_endcsname2345678\W
+}}\XINT_bth_main{ }%
+\def\XINT_bth_tohex #1#2#3#4#5#6#7#8%
{%
- \xint_gob_til_zero #3\XINT_bth_end_z 0\space #3%
+ XINT_sbth_#1#2#3#4\expandafter\expandafter\expandafter\endcsname
+ \csname XINT_sbth_#5#6#7#8\expandafter\expandafter\expandafter\endcsname
+ \csname\XINT_bth_tohex
}%
-\def\XINT_bth_end_z0\space 0{ }%
+\def\XINT_bth_tohex_endcsname#1\W{none\endcsname}%
\def\xintHexToBin {\romannumeral0\xinthextobin }%
\def\xinthextobin #1%
{%
- \expandafter\XINT_htb_checkin\romannumeral`&&@#1GGGGGGGG\T
+ \expandafter\XINT_htb_checkin\romannumeral`&&@#1%
+ \xint_bye 23456789\xint_bye none\endcsname\relax
}%
\def\XINT_htb_checkin #1%
{%
\xint_UDsignfork
#1\XINT_htb_N
- -{\XINT_htb_P #1}%
+ -{\XINT_htb_main #1}%
\krof
}%
-\def\XINT_htb_N {\expandafter-\romannumeral0\XINT_htb_P }%
-\def\XINT_htb_P {\XINT_htb_I_a {}}%
-\def\XINT_htb_I_a #1#2#3#4#5#6#7#8#9%
-{%
- \xint_gob_til_G #9\XINT_htb_II_a G%
- \expandafter\expandafter\expandafter
- \XINT_htb_I_b
- \expandafter\expandafter\expandafter
- {\csname XINT_shtb_#2\expandafter\expandafter\expandafter\endcsname
- \csname XINT_shtb_#3\expandafter\expandafter\expandafter\endcsname
- \csname XINT_shtb_#4\expandafter\expandafter\expandafter\endcsname
- \csname XINT_shtb_#5\expandafter\expandafter\expandafter\endcsname
- \csname XINT_shtb_#6\expandafter\expandafter\expandafter\endcsname
- \csname XINT_shtb_#7\expandafter\expandafter\expandafter\endcsname
- \csname XINT_shtb_#8\expandafter\expandafter\expandafter\endcsname
- \csname XINT_shtb_#9\endcsname }{#1}%
-}%
-\def\XINT_htb_I_b #1#2{\XINT_htb_I_a {#2#1}}%
-\def\XINT_htb_II_a G\expandafter\expandafter\expandafter\XINT_htb_I_b
-{%
- \expandafter\expandafter\expandafter \XINT_htb_II_b
-}%
-\def\XINT_htb_II_b #1#2#3\T
-{%
- \expandafter\XINT_num_cleanup
- \the\numexpr\expandafter\XINT_num_loop #2#1%
- \xint:\xint:\xint:\xint:\xint:\xint:\xint:\xint:\xint:\Z
-}%
+\def\XINT_htb_N {\expandafter-\romannumeral0\XINT_htb_main }%
+\def\XINT_htb_main {\expandafter\XINT_htb_cuz\the\numexpr\XINT_htb_loop}%
+\def\XINT_htb_loop #1#2#3#4#5#6#7#8#9%
+{%
+ 1\csname XINT_shtb_#1\endcsname
+ \csname XINT_shtb_#2\endcsname
+ \expandafter\XINT_unsep_clean
+ \the\numexpr1\csname XINT_shtb_#3\endcsname
+ \csname XINT_shtb_#4\endcsname
+ \expandafter\XINT_unsep_clean
+ \the\numexpr1\csname XINT_shtb_#5\endcsname
+ \csname XINT_shtb_#6\endcsname
+ \expandafter\XINT_unsep_clean
+ \the\numexpr1\csname XINT_shtb_#7\endcsname
+ \csname XINT_shtb_#8\endcsname
+ \expandafter\XINT_unsep_clean
+ \the\numexpr1\csname XINT_shtb_#9\endcsname
+ \XINT_htb_loop_a
+}%
+\def\XINT_htb_loop_a #1#2#3#4#5#6#7#8#9%
+{%
+ \csname XINT_shtb_#1\endcsname
+ \expandafter\XINT_unsep_clean
+ \the\numexpr1\csname XINT_shtb_#2\endcsname
+ \csname XINT_shtb_#3\endcsname
+ \expandafter\XINT_unsep_clean
+ \the\numexpr1\csname XINT_shtb_#4\endcsname
+ \csname XINT_shtb_#5\endcsname
+ \expandafter\XINT_unsep_clean
+ \the\numexpr1\csname XINT_shtb_#6\endcsname
+ \csname XINT_shtb_#7\endcsname
+ \expandafter\XINT_unsep_clean
+ \the\numexpr1\csname XINT_shtb_#8\endcsname
+ \csname XINT_shtb_#9\endcsname
+ \expandafter\XINT_unsep_clean
+ \the\numexpr\XINT_htb_loop
+}%
+\def\XINT_htb_cuz #1{%
+\def\XINT_htb_cuz 1##1##2##3##4%
+ {\expandafter#1\the\numexpr##1##2##3##4\relax}%
+}\XINT_htb_cuz { }%
\def\xintCHexToBin {\romannumeral0\xintchextobin }%
\def\xintchextobin #1%
{%
\expandafter\XINT_chtb_checkin\romannumeral`&&@#1%
- \R\R\R\R\R\R\R\R\Z \W\W\W\W\W\W\W\W
+ \xint_bye 23456789\xint_bye none\endcsname\relax
}%
\def\XINT_chtb_checkin #1%
{%
\xint_UDsignfork
#1\XINT_chtb_N
- -{\XINT_chtb_P #1}%
+ -{\XINT_chtb_main #1}%
\krof
}%
-\def\XINT_chtb_N {\expandafter-\romannumeral0\XINT_chtb_P }%
-\def\XINT_chtb_P {\expandafter\XINT_chtb_I\expandafter{\expandafter}%
- \romannumeral0\XINT_OQ {}}%
-\def\XINT_chtb_I #1#2#3#4#5#6#7#8#9%
-{%
- \xint_gob_til_W #9\XINT_chtb_end_a\W
- \expandafter\expandafter\expandafter
- \XINT_chtb_I
- \expandafter\expandafter\expandafter
- {\csname XINT_shtb_#9\expandafter\expandafter\expandafter\endcsname
- \csname XINT_shtb_#8\expandafter\expandafter\expandafter\endcsname
- \csname XINT_shtb_#7\expandafter\expandafter\expandafter\endcsname
- \csname XINT_shtb_#6\expandafter\expandafter\expandafter\endcsname
- \csname XINT_shtb_#5\expandafter\expandafter\expandafter\endcsname
- \csname XINT_shtb_#4\expandafter\expandafter\expandafter\endcsname
- \csname XINT_shtb_#3\expandafter\expandafter\expandafter\endcsname
- \csname XINT_shtb_#2\endcsname
- #1}%
-}%
-\def\XINT_chtb_end_a\W\expandafter\expandafter\expandafter
- \XINT_chtb_I\expandafter\expandafter\expandafter #1%
-{%
- \XINT_chtb_end_b #1%
- \xint:\xint:\xint:\xint:\xint:\xint:\xint:\xint:\xint:\Z
-}%
-\def\XINT_chtb_end_b #1\W#2\W#3\W#4\W#5\W#6\W#7\W#8\W\endcsname
-{%
- \expandafter\XINT_num_cleanup
- \the\numexpr\expandafter\XINT_num_loop
-}%
+\def\XINT_chtb_N {\expandafter-\romannumeral0\XINT_chtb_main }%
+\def\XINT_chtb_main
+ {\expandafter\xint_gobble_thenstop\the\numexpr\XINT_htb_loop}%
\XINT_restorecatcodes_endinput%
\endinput
%%
diff --git a/Master/texmf-dist/tex/generic/xint/xintcfrac.sty b/Master/texmf-dist/tex/generic/xint/xintcfrac.sty
index 244f3fa5cff..de079d94c89 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.2l 2017/07/26
+%% The xint bundle 1.2m 2017/07/31
%% 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/07/26 1.2l Expandable continued fractions with xint package (JFB)]%
+ [2017/07/31 1.2m Expandable continued fractions with xint package (JFB)]%
\def\xintCFrac {\romannumeral0\xintcfrac }%
\def\xintcfrac #1%
{%
diff --git a/Master/texmf-dist/tex/generic/xint/xintcore.sty b/Master/texmf-dist/tex/generic/xint/xintcore.sty
index 96b159fb997..5c2950f160c 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.2l 2017/07/26
+%% The xint bundle 1.2m 2017/07/31
%% 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/07/26 1.2l Expandable arithmetic on big integers (JFB)]%
+ [2017/07/31 1.2m Expandable arithmetic on big integers (JFB)]%
\csname XINT_Clamped_istrapped\endcsname
\csname XINT_ConversionSyntax_istrapped\endcsname
\csname XINT_DivisionByZero_istrapped\endcsname
@@ -446,6 +446,19 @@
\the\numexpr #9\XINT_unsep_loop
}%
\def\XINT_unsep_clean 1{\relax}%
+\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_cuzsmall
{%
\expandafter\XINT_unsep_cuzsmall_x\the\numexpr0\XINT_unsep_loop
@@ -489,6 +502,13 @@
{%
\expandafter#1\xint_gob_til_one ##2##3##4##5##6##7##8%
}}\XINT_zeroes_forviii_end{ }%
+\def\XINT_zeroes_foriv #1#2#3#4#5#6#7#8%
+{%
+ \xint_gob_til_R #8\XINT_zeroes_foriv_end\R\XINT_zeroes_foriv
+}%
+\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_sepbyviii_Z #1#2#3#4#5#6#7#8%
{%
1#1#2#3#4#5#6#7#8\expandafter!\the\numexpr\XINT_sepbyviii_Z
diff --git a/Master/texmf-dist/tex/generic/xint/xintexpr.sty b/Master/texmf-dist/tex/generic/xint/xintexpr.sty
index 8b8abe637c1..469337572ba 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.2l 2017/07/26
+%% The xint bundle 1.2m 2017/07/31
%% Copyright (C) 2013-2017 by Jean-Francois Burnol
%% xintexpr: Expandable expression parser
%% ---------------------------------------------------------------
@@ -81,7 +81,7 @@
\XINTsetupcatcodes%
\XINT_providespackage
\ProvidesPackage{xintexpr}%
- [2017/07/26 1.2l Expandable expression parser (JFB)]%
+ [2017/07/31 1.2m Expandable expression parser (JFB)]%
\catcode`! 11
\let\XINT_Cmp \xintiiCmp
\def\xint_gob_til_! #1!{}% ! with catcode 11
diff --git a/Master/texmf-dist/tex/generic/xint/xintfrac.sty b/Master/texmf-dist/tex/generic/xint/xintfrac.sty
index d5fbc30c454..60c14bb01d0 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.2l 2017/07/26
+%% The xint bundle 1.2m 2017/07/31
%% Copyright (C) 2013-2017 by Jean-Francois Burnol
%% xintfrac: Expandable operations on fractions
%% ---------------------------------------------------------------
@@ -70,7 +70,7 @@
\XINTsetupcatcodes% defined in xintkernel.sty
\XINT_providespackage
\ProvidesPackage{xintfrac}%
- [2017/07/26 1.2l Expandable operations on fractions (JFB)]%
+ [2017/07/31 1.2m Expandable operations on fractions (JFB)]%
\def\XINT_cntSgnFork #1%
{%
\ifcase #1\expandafter\xint_secondofthree
@@ -1479,15 +1479,16 @@
}%
\def\XINT_fgeq_Fd #1\Z #2#3%
{%
- \expandafter\XINT_fgeq_Fe\expandafter
- {\romannumeral0\XINT_dsx_addzeros {#1}#3;}{#2}%
+ \expandafter\XINT_fgeq_Fe
+ \romannumeral0\XINT_dsx_addzeros {#1}#3;\xint:#2\xint:
}%
-\def\XINT_fgeq_Fe #1#2{\XINT_geq_pre {#2}{#1}}%
+\def\XINT_fgeq_Fe #1\xint:#2#3\xint:{\XINT_geq_plusplus #2#1\xint:#3\xint:}%
\def\XINT_fgeq_Fn #1\Z #2#3%
{%
- \expandafter\XINT_geq_pre\expandafter
- {\romannumeral0\XINT_dsx_addzeros {#1}#2;}{#3}%
+ \expandafter\XINT_fgeq_Fo
+ \romannumeral0\XINT_dsx_addzeros {#1}#2;\xint:#3\xint:
}%
+\def\XINT_fgeq_Fo #1#2\xint:#3\xint:{\XINT_geq_plusplus #1#3\xint:#2\xint:}%
\def\xintMax {\romannumeral0\xintmax }%
\def\xintmax #1%
{%
@@ -1608,9 +1609,9 @@
\krof
#1#2%
}%
-\def\XINT_fcmp_zerozero #1#2#3#4{ 0}% 1.08b had some [ and ] here!!!
-\def\XINT_fcmp_firstzero #1#2#3#4{ -1}% incredibly I never saw that until
-\def\XINT_fcmp_secondzero #1#2#3#4{ 1}% preparing 1.09a.
+\def\XINT_fcmp_zerozero #1#2#3#4{ 0}%
+\def\XINT_fcmp_firstzero #1#2#3#4{ -1}%
+\def\XINT_fcmp_secondzero #1#2#3#4{ 1}%
\def\XINT_fcmp_pos #1#2#3#4%
{%
\XINT_fcmp_B #1#3#2#4%
@@ -1642,15 +1643,16 @@
}%
\def\XINT_fcmp_Fd #1\Z #2#3%
{%
- \expandafter\XINT_fcmp_Fe\expandafter
- {\romannumeral0\XINT_dsx_addzeros {#1}#3;}{#2}%
+ \expandafter\XINT_fcmp_Fe
+ \romannumeral0\XINT_dsx_addzeros {#1}#3;\xint:#2\xint:
}%
-\def\XINT_fcmp_Fe #1#2{\xintiicmp {#2}{#1}}%
+\def\XINT_fcmp_Fe #1\xint:#2#3\xint:{\XINT_cmp_plusplus #2#1\xint:#3\xint:}%
\def\XINT_fcmp_Fn #1\Z #2#3%
{%
- \expandafter\xintiicmp\expandafter
- {\romannumeral0\XINT_dsx_addzeros {#1}#2;}{#3}%
+ \expandafter\XINT_fcmp_Fo
+ \romannumeral0\XINT_dsx_addzeros {#1}#2;\xint:#3\xint:
}%
+\def\XINT_fcmp_Fo #1#2\xint:#3\xint:{\XINT_cmp_plusplus #1#3\xint:#2\xint:}%
\def\xintAbs {\romannumeral0\xintabs }%
\def\xintabs #1{\expandafter\XINT_abs\romannumeral0\xintraw {#1}}%
\def\xintOpp {\romannumeral0\xintopp }%
diff --git a/Master/texmf-dist/tex/generic/xint/xintgcd.sty b/Master/texmf-dist/tex/generic/xint/xintgcd.sty
index d38d188a8c8..37b396cb7ca 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.2l 2017/07/26
+%% The xint bundle 1.2m 2017/07/31
%% 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/07/26 1.2l Euclide algorithm with xint package (JFB)]%
+ [2017/07/31 1.2m 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 92af7369012..8c9b9371df6 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.2l 2017/07/26
+%% The xint bundle 1.2m 2017/07/31
%% Copyright (C) 2013-2017 by Jean-Francois Burnol
%% xintkernel: Paraphernalia for the xint packages
%% ---------------------------------------------------------------
@@ -156,7 +156,7 @@
\fi
\XINT_providespackage
\ProvidesPackage {xintkernel}%
- [2017/07/26 1.2l Paraphernalia for the xint packages (JFB)]%
+ [2017/07/31 1.2m 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 16bfec971a4..d6f66718cee 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.2l 2017/07/26
+%% The xint bundle 1.2m 2017/07/31
%% 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/07/26 1.2l Expandable partial sums with xint package (JFB)]%
+ [2017/07/31 1.2m 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 b23ed5ac1e7..ed3e2606850 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.2l 2017/07/26
+%% The xint bundle 1.2m 2017/07/31
%% 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/07/26 1.2l Expandable and non-expandable utilities (JFB)]%
+ [2017/07/31 1.2m Expandable and non-expandable utilities (JFB)]%
\newtoks\XINT_toks
\xint_firstofone{\let\XINT_sptoken= } %<- space here!
\def\xintgodef {\global\xintodef }%