diff options
Diffstat (limited to 'Master/texmf-dist/tex/generic/xint/xintbinhex.sty')
-rw-r--r-- | Master/texmf-dist/tex/generic/xint/xintbinhex.sty | 521 |
1 files changed, 224 insertions, 297 deletions
diff --git a/Master/texmf-dist/tex/generic/xint/xintbinhex.sty b/Master/texmf-dist/tex/generic/xint/xintbinhex.sty index 7cf6463d960..4a3be168fc7 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.2m 2017/07/31 +%% The xint bundle 1.2n 2017/08/06 %% Copyright (C) 2013-2017 by Jean-Francois Burnol %% xintbinhex: Expandable binary and hexadecimal conversions %% --------------------------------------------------------------- @@ -38,7 +38,7 @@ \catcode58=12 % : \let\z\endgroup \expandafter\let\expandafter\x\csname ver@xintbinhex.sty\endcsname - \expandafter\let\expandafter\w\csname ver@xintcore.sty\endcsname + \expandafter\let\expandafter\w\csname ver@xintkernel.sty\endcsname \expandafter \ifx\csname PackageInfo\endcsname\relax \def\y#1#2{\immediate\write-1{Package #1 Info: #2.}}% @@ -51,15 +51,15 @@ \aftergroup\endinput \else \ifx\x\relax % plain-TeX, first loading of xintbinhex.sty - \ifx\w\relax % but xintcore.sty not yet loaded. - \def\z{\endgroup\input xintcore.sty\relax}% + \ifx\w\relax % but xintkernel.sty not yet loaded. + \def\z{\endgroup\input xintkernel.sty\relax}% \fi \else \def\empty {}% \ifx\x\empty % LaTeX, first loading, % variable is initialized, but \ProvidesPackage not yet seen - \ifx\w\relax % xintcore.sty not yet loaded. - \def\z{\endgroup\RequirePackage{xintcore}}% + \ifx\w\relax % xintkernel.sty not yet loaded. + \def\z{\endgroup\RequirePackage{xintkernel}}% \fi \else \aftergroup\endinput % xintbinhex already loaded. @@ -70,86 +70,78 @@ \XINTsetupcatcodes% defined in xintkernel.sty \XINT_providespackage \ProvidesPackage{xintbinhex}% - [2017/07/31 1.2m Expandable binary and hexadecimal conversions (JFB)]% + [2017/08/06 1.2n 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\else\space\fi}% + \expandafter\edef\csname XINT_csdth_#1\endcsname + {\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}% \expandafter\XINT_tmpa\fi }% -\XINT_tmpa {-1}{0}{1}{2}{3}{4}{5}{6}{7}{8}{9}{10}{11}{12}{13}{14}{15}\relax +\XINT_tmpa {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 + \expandafter\edef\csname XINT_csdtb_#1\endcsname + {\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\else\space\fi}% + 1000\or 1001\or 1010\or 1011\or 1100\or 1101\or 1110\or 1111\fi}% \expandafter\XINT_tmpa\fi }% -\XINT_tmpa {-1}{0}{1}{2}{3}{4}{5}{6}{7}{8}{9}{10}{11}{12}{13}{14}{15}\relax +\XINT_tmpa {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_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}% -\expandafter\def\csname XINT_shtb_3\endcsname {0011}% -\expandafter\def\csname XINT_shtb_4\endcsname {0100}% -\expandafter\def\csname XINT_shtb_5\endcsname {0101}% -\expandafter\def\csname XINT_shtb_6\endcsname {0110}% -\expandafter\def\csname XINT_shtb_7\endcsname {0111}% -\expandafter\def\csname XINT_shtb_8\endcsname {1000}% -\expandafter\def\csname XINT_shtb_9\endcsname {1001}% -\def\XINT_shtb_A {1010}% -\def\XINT_shtb_B {1011}% -\def\XINT_shtb_C {1100}% -\def\XINT_shtb_D {1101}% -\def\XINT_shtb_E {1110}% -\def\XINT_shtb_F {1111}% -\let\XINT_shtb_none \empty -\def\XINT_smallhex #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\xint:#2\xint: -{% - \csname XINT_sdth_#1\expandafter\expandafter\expandafter\endcsname - \csname XINT_sdth_\the\numexpr #2-\xint_c_xvi*#1\relax\expandafter\endcsname - \romannumeral`&&@% -}% -\def\XINT_smallbin #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\xint:#2\xint: -{% - \csname XINT_sdtb_#1\expandafter\expandafter\expandafter\endcsname - \csname XINT_sdtb_\the\numexpr #2-\xint_c_xvi*#1\relax\expandafter\endcsname - \romannumeral`&&@% -}% +\expandafter\def\csname XINT_csbth_0000\endcsname {\endcsname0}% +\expandafter\def\csname XINT_csbth_0001\endcsname {\endcsname1}% +\expandafter\def\csname XINT_csbth_0010\endcsname {\endcsname2}% +\expandafter\def\csname XINT_csbth_0011\endcsname {\endcsname3}% +\expandafter\def\csname XINT_csbth_0100\endcsname {\endcsname4}% +\expandafter\def\csname XINT_csbth_0101\endcsname {\endcsname5}% +\expandafter\def\csname XINT_csbth_0110\endcsname {\endcsname6}% +\expandafter\def\csname XINT_csbth_0111\endcsname {\endcsname7}% +\expandafter\def\csname XINT_csbth_1000\endcsname {\endcsname8}% +\expandafter\def\csname XINT_csbth_1001\endcsname {\endcsname9}% +\expandafter\def\csname XINT_csbth_1010\endcsname {\endcsname A}% +\expandafter\def\csname XINT_csbth_1011\endcsname {\endcsname B}% +\expandafter\def\csname XINT_csbth_1100\endcsname {\endcsname C}% +\expandafter\def\csname XINT_csbth_1101\endcsname {\endcsname D}% +\expandafter\def\csname XINT_csbth_1110\endcsname {\endcsname E}% +\expandafter\def\csname XINT_csbth_1111\endcsname {\endcsname F}% +\let\XINT_csbth_none \endcsname +\expandafter\def\csname XINT_cshtb_0\endcsname {\endcsname0000}% +\expandafter\def\csname XINT_cshtb_1\endcsname {\endcsname0001}% +\expandafter\def\csname XINT_cshtb_2\endcsname {\endcsname0010}% +\expandafter\def\csname XINT_cshtb_3\endcsname {\endcsname0011}% +\expandafter\def\csname XINT_cshtb_4\endcsname {\endcsname0100}% +\expandafter\def\csname XINT_cshtb_5\endcsname {\endcsname0101}% +\expandafter\def\csname XINT_cshtb_6\endcsname {\endcsname0110}% +\expandafter\def\csname XINT_cshtb_7\endcsname {\endcsname0111}% +\expandafter\def\csname XINT_cshtb_8\endcsname {\endcsname1000}% +\expandafter\def\csname XINT_cshtb_9\endcsname {\endcsname1001}% +\def\XINT_cshtb_A {\endcsname1010}% +\def\XINT_cshtb_B {\endcsname1011}% +\def\XINT_cshtb_C {\endcsname1100}% +\def\XINT_cshtb_D {\endcsname1101}% +\def\XINT_cshtb_E {\endcsname1110}% +\def\XINT_cshtb_F {\endcsname1111}% +\let\XINT_cshtb_none \endcsname +\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_unsepb_loop #1!#2!#3!#4!#5!#6!#7!#8!#9!% +{% + \expandafter\XINT_unsep_clean + \the\numexpr 1#1\expandafter\XINT_unsep_clean + \the\numexpr 1#2\expandafter\XINT_unsep_clean + \the\numexpr 1#3\expandafter\XINT_unsep_clean + \the\numexpr 1#4\expandafter\XINT_unsep_clean + \the\numexpr 1#5\expandafter\XINT_unsep_clean + \the\numexpr 1#6\expandafter\XINT_unsep_clean + \the\numexpr 1#7\expandafter\XINT_unsep_clean + \the\numexpr 1#8\expandafter\XINT_unsep_clean + \the\numexpr 1#9\XINT_unsepb_loop +}% +\def\XINT_unsep_clean 1{\relax}% also in xintcore \def\xintDecToHex {\romannumeral0\xintdectohex }% \def\xintdectohex #1% {% @@ -165,101 +157,101 @@ \def\XINT_dth_neg {\expandafter-\romannumeral0\XINT_dth_main}% \def\XINT_dth_main #1\xint: {% - \expandafter\XINT_dth_start + \expandafter\XINT_dth_finish + \romannumeral`&&@\expandafter\XINT_dthb_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_dth_start #1#2#3#4#5% -{% - \xint_bye#5\XINT_dth_small\xint_bye - \XINT_dth_start_a #1#2#3#4#5% + #1\xint_bye\XINT_dth_tohex }% -\def\XINT_dth_start_a #1#2#3#4#5% +\def\XINT_dthb_start #1#2#3#4#5% {% - \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% + \xint_bye#5\XINT_dthb_small\xint_bye\XINT_dthb_start_a #1#2#3#4#5% }% -\def\XINT_dth_small\xint_bye\XINT_dth_start_a #1\xint_bye #2\W +\def\XINT_dthb_small\xint_bye\XINT_dthb_start_a #1\xint_bye#2{#2#1!}% +\def\XINT_dthb_start_a #1#2#3#4#5#6#7#8#9% {% - \expandafter\XINT_dth_B_finish - \romannumeral`&&@\XINT_tofourhex#1!\space + \expandafter\XINT_dthb_again\the\numexpr\expandafter\XINT_dthb_update + \the\numexpr#1#2#3#4% + \xint_bye#9\XINT_dthb_lastpass\xint_bye + #5#6#7#8!\XINT_dthb_exclam\relax\XINT_dthb_nextfour!2!3!4!5!6!7!8!9!\Z #9% }% -\def\XINT_dth_a #1!#2!#3!#4!#5!#6!#7!#8!#9!% +\def\XINT_dthb_exclam {!\XINT_dthb_exclam!}% +\def\XINT_dthb_update #1!% {% - \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_dth_nextfour #1\Z #2#3#4#5% -{% - #2#3#4#5!\relax\XINT_dth_nextfour!2!3!4!5!6!7!8!9!\Z -}% -\def\XINT_dth_update #1!% -{% - \expandafter\XINT_dth_update_a + \expandafter\XINT_dthb_update_a \the\numexpr (#1+\xint_c_ii^xv)/\xint_c_ii^xvi-\xint_c_i\xint: #1\xint:% }% -\def\XINT_dth_update_a #1\xint:#2\xint: +\def\XINT_dthb_update_a #1\xint:#2\xint:#3% {% - 0000+#1\expandafter!\expandafter!\the\numexpr#2-#1*\xint_c_ii^xvi + 0000+#1\expandafter#3\the\numexpr#2-#1*\xint_c_ii^xvi }% -\def\XINT_dth_A #1!!% +\def\XINT_dthb_nextfour #1\Z #2#3#4#5#6% {% - \ifnum #1>\xint_c_ \xint_dothis{\XINT_dth_again #1!}\fi - \xint_orthat{\XINT_dth_again}% + \xint_bye#6\XINT_dthb_lastpass\xint_bye + #2#3#4#5!\XINT_dthb_exclam\relax\XINT_dthb_nextfour!2!3!4!5!6!7!8!9!\Z #6% }% -\def\XINT_dth_again #1\Z #2% +\def\XINT_dthb_lastpass\xint_bye #1!#2\xint_bye#3{#1!#3!}% +\def\XINT_dth_tohex {% - \xint_bye #2\XINT_dth_B_a\xint_bye - \expandafter\XINT_dth_A\the\numexpr\XINT_dth_a #1\Z #2% + \expandafter\expandafter\expandafter\XINT_dth_tohex_a\csname\XINT_tofourhex }% -\def\XINT_dth_B_a\xint_bye - \expandafter\XINT_dth_A\the\numexpr\XINT_dth_a #1\XINT_dth_nextfour #2\Z +\def\XINT_dth_tohex_a\endcsname{!\XINT_dth_tohex!}% +\def\XINT_dthb_a #1!#2!#3!#4!#5!#6!#7!#8!#9!% {% - \expandafter\XINT_dth_B_finish\romannumeral`&&@\XINT_dth_B_c #1!% + \expandafter\XINT_dthb_update + \the\numexpr #1\expandafter\XINT_dthb_update + \the\numexpr #2\expandafter\XINT_dthb_update + \the\numexpr #3\expandafter\XINT_dthb_update + \the\numexpr #4\expandafter\XINT_dthb_update + \the\numexpr #5\expandafter\XINT_dthb_update + \the\numexpr #6\expandafter\XINT_dthb_update + \the\numexpr #7\expandafter\XINT_dthb_update + \the\numexpr #8\expandafter\XINT_dthb_update + \the\numexpr #9\XINT_dthb_a }% -\def\XINT_dth_B_c #1!#2!#3!#4!#5!#6!#7!#8!#9!% +\def\XINT_dthb_again #1!#2!% {% - \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 + \ifx\XINT_dthb_exclam#2% + \expandafter\xint_firstoftwo + \else + \expandafter\xint_secondoftwo + \fi + {\expandafter\XINT_dthb_again\the\numexpr\expandafter\XINT_dthb_a + \romannumeral`&&@\ifnum #1>\xint_c_ \xint_dothis{#1!}\fi\xint_orthat{}}% + {\ifnum #1>\xint_c_ \xint_dothis{#2#1!}\fi\xint_orthat{!#2!}}% }% \def\XINT_tofourhex #1!% {% \expandafter\XINT_tofourhex_a - \the\numexpr (#1+\xint_c_ii^vii)/\xint_c_ii^viii-\xint_c_i\xint: #1\xint: + \the\numexpr (#1+\xint_c_ii^vii)/\xint_c_ii^viii-\xint_c_i\xint: + #1\xint: +}% +\def\XINT_tofourhex_a #1\xint:#2\xint: +{% + \expandafter\XINT_tofourhex_c + \the\numexpr (#1+\xint_c_viii)/\xint_c_xvi-\xint_c_i\xint: + #1\xint: + \the\numexpr #2-\xint_c_ii^viii*#1!% }% -\def\XINT_tofourhex_a #1\xint: #2\xint: +\def\XINT_tofourhex_c #1\xint:#2\xint: {% - \expandafter\XINT_tofourhex_b - \the\numexpr #2-\xint_c_ii^viii*#1\xint:#1\xint: + XINT_csdth_#1% + \csname XINT_csdth_\the\numexpr #2-\xint_c_xvi*#1\relax + \csname \expandafter\XINT_tofourhex_d }% -\def\XINT_tofourhex_b #1\xint: #2\xint: +\def\XINT_tofourhex_d #1!% {% - \XINT_smallhex #2!% - \XINT_smallhex #1!% + \expandafter\XINT_tofourhex_e + \the\numexpr (#1+\xint_c_viii)/\xint_c_xvi-\xint_c_i\xint: + #1\xint: }% -\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% +\def\XINT_tofourhex_e #1\xint:#2\xint: +{% + XINT_csdth_#1% + \csname XINT_csdth_\the\numexpr #2-\xint_c_xvi*#1\endcsname +}% +\def\XINT_dth_finish !\XINT_dth_tohex!#1#2#3% {% \unless\if#10\xint_dothis{ #1#2#3}\fi \unless\if#20\xint_dothis{ #2#3}\fi @@ -281,105 +273,56 @@ \def\XINT_dtb_neg {\expandafter-\romannumeral0\XINT_dtb_main}% \def\XINT_dtb_main #1\xint: {% - \expandafter\XINT_dtb_start + \expandafter\XINT_dtb_finish + \romannumeral`&&@\expandafter\XINT_dthb_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_start #1#2#3#4#5% -{% - \xint_bye#5\XINT_dtb_small\xint_bye - \XINT_dtb_start_a #1#2#3#4#5% -}% -\def\XINT_dtb_start_a #1#2#3#4#5% -{% - \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_small\xint_bye\XINT_dtb_start_a #1\xint_bye #2\W -{% - \expandafter\XINT_dtb_B_finish - \romannumeral`&&@\XINT_tosixteenbits#1!\space -}% -\def\XINT_dtb_a #1!#2!#3!#4!#5!#6!#7!#8!#9!% -{% - \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% -{% - #2#3#4#5!\relax\XINT_dtb_nextfour!2!3!4!5!6!7!8!9!\Z -}% -\def\XINT_dtb_update #1!% -{% - \expandafter\XINT_dtb_update_a - \the\numexpr (#1+\xint_c_ii^xv)/\xint_c_ii^xvi-\xint_c_i\xint: - #1\xint:% + #1\xint_bye\XINT_dtb_tobin }% -\def\XINT_dtb_update_a #1\xint:#2\xint: +\def\XINT_dtb_tobin {% - 0000+#1\expandafter!\expandafter!\the\numexpr#2-#1*\xint_c_ii^xvi + \expandafter\expandafter\expandafter\XINT_dtb_tobin_a\csname\XINT_tosixteenbits }% -\def\XINT_dtb_A #1!!% -{% - \ifnum #1>\xint_c_ \xint_dothis{\XINT_dtb_again #1!}\fi - \xint_orthat{\XINT_dtb_again}% -}% -\def\XINT_dtb_again #1\Z #2% -{% - \xint_bye #2\XINT_dtb_B_a\xint_bye - \expandafter\XINT_dtb_A\the\numexpr\XINT_dtb_a #1\Z #2% -}% -\def\XINT_dtb_B_a\xint_bye - \expandafter\XINT_dtb_A\the\numexpr\XINT_dtb_a #1\XINT_dtb_nextfour #2\Z +\def\XINT_dtb_tobin_a\endcsname{!\XINT_dtb_tobin!}% +\def\XINT_tosixteenbits #1!% {% - \expandafter\XINT_dtb_B_finish\romannumeral`&&@\XINT_dtb_B_c #1!% + \expandafter\XINT_tosixteenbits_a + \the\numexpr (#1+\xint_c_ii^vii)/\xint_c_ii^viii-\xint_c_i\xint: + #1\xint: }% -\def\XINT_dtb_B_c #1!#2!#3!#4!#5!#6!#7!#8!#9!% +\def\XINT_tosixteenbits_a #1\xint:#2\xint: {% - \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 + \expandafter\XINT_tosixteenbits_c + \the\numexpr (#1+\xint_c_viii)/\xint_c_xvi-\xint_c_i\xint: + #1\xint: + \the\numexpr #2-\xint_c_ii^viii*#1!% }% -\def\XINT_tosixteenbits #1!% +\def\XINT_tosixteenbits_c #1\xint:#2\xint: {% - \expandafter\XINT_tosixteenbits_a - \the\numexpr (#1+\xint_c_ii^vii)/\xint_c_ii^viii-\xint_c_i\xint: #1\xint: + XINT_csdtb_#1% + \csname XINT_csdtb_\the\numexpr #2-\xint_c_xvi*#1\relax + \csname \expandafter\XINT_tosixteenbits_d }% -\def\XINT_tosixteenbits_a #1\xint: #2\xint: +\def\XINT_tosixteenbits_d #1!% {% - \expandafter\XINT_tosixteenbits_b - \the\numexpr #2-\xint_c_ii^viii*#1\xint:#1\xint: + \expandafter\XINT_tosixteenbits_e + \the\numexpr (#1+\xint_c_viii)/\xint_c_xvi-\xint_c_i\xint: + #1\xint: }% -\def\XINT_tosixteenbits_b #1\xint: #2\xint: +\def\XINT_tosixteenbits_e #1\xint:#2\xint: {% - \XINT_smallbin #2!% - \XINT_smallbin #1!% + XINT_csdtb_#1% + \csname XINT_csdtb_\the\numexpr #2-\xint_c_xvi*#1\endcsname }% -\def\XINT_dtb_B_finish #1#2#3#4#5#6#7#8% +\def\XINT_dtb_finish !\XINT_dtb_tobin!#1#2#3#4#5#6#7#8% {% - \expandafter\XINT_dtb_B_finish_a\the\numexpr #1#2#3#4#5#6#7#8\relax + \expandafter\XINT_dtb_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% +\def\XINT_dtb_finish_a #1{% +\def\XINT_dtb_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 { }% +}}\XINT_dtb_finish_a { }% \def\xintHexToDec {\romannumeral0\xinthextodec }% \def\xinthextodec #1% {% @@ -414,7 +357,7 @@ \xint_bye!2!3!4!5!6!7!8!9!\xint_bye\XINT_htd_nextfour}% \def\XINT_htd_again #1\XINT_htd_nextfour #2% {% - \xint_bye #2\XINT_htd_end_a\xint_bye + \xint_bye #2\XINT_htd_finish\xint_bye \expandafter\XINT_htd_A\the\numexpr \XINT_htd_a #1\XINT_htd_nextfour #2% }% @@ -433,12 +376,12 @@ }% \def\XINT_htd_nextfour #1#2#3#4% {% - *\xint_c_ii^xvi+"#1#2#3#4+\xint_c_x^ix\relax\xint_bye!% + *\xint_c_ii^xvi+"#1#2#3#4+1000000000\relax\xint_bye!% 2!3!4!5!6!7!8!9!\xint_bye\XINT_htd_nextfour }% -\def\XINT_htd_update 1#1#2#3#4#5#6!% +\def\XINT_htd_update 1#1#2#3#4#5%#6!% {% - *\xint_c_ii^xvi+#1#2#3#4#5+\xint_c_x^ix!#6!% + *\xint_c_ii^xvi+10000#1#2#3#4#5!%#6!% }% \def\XINT_htd_A 1#1% {% @@ -446,17 +389,35 @@ \expandafter\XINT_htd_Ab \fi 1#1% }% -\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 +\def\XINT_htd_Aa 10#1#2#3#4{\XINT_htd_again #1#2#3#4!}% +\def\XINT_htd_Ab 1#1#2#3#4#5{\XINT_htd_again #1!#2#3#4#5!}% +\def\XINT_htd_finish\xint_bye \expandafter\XINT_htd_A\the\numexpr \XINT_htd_a #1\XINT_htd_nextfour {% - \expandafter\XINT_htd_end_b\the\numexpr0\XINT_unsepb_loop #1% + \expandafter\XINT_htd_finish_cuz\the\numexpr0\XINT_htd_unsep_loop #1% +}% +\def\XINT_htd_unsep_loop #1!#2!#3!#4!#5!#6!#7!#8!#9!% +{% + \expandafter\XINT_unsep_clean + \the\numexpr 1#1#2\expandafter\XINT_unsep_clean + \the\numexpr 1#3#4\expandafter\XINT_unsep_clean + \the\numexpr 1#5#6\expandafter\XINT_unsep_clean + \the\numexpr 1#7#8\expandafter\XINT_unsep_clean + \the\numexpr 1#9\XINT_htd_unsep_loop_a +}% +\def\XINT_htd_unsep_loop_a #1!#2!#3!#4!#5!#6!#7!#8!#9!% +{% + #1\expandafter\XINT_unsep_clean + \the\numexpr 1#2#3\expandafter\XINT_unsep_clean + \the\numexpr 1#4#5\expandafter\XINT_unsep_clean + \the\numexpr 1#6#7\expandafter\XINT_unsep_clean + \the\numexpr 1#8#9\XINT_htd_unsep_loop }% -\def\XINT_htd_end_b #1{% -\def\XINT_htd_end_b ##1##2##3##4##5% +\def\XINT_unsep_clean 1{\relax}% also in xintcore +\def\XINT_htd_finish_cuz #1{% +\def\XINT_htd_finish_cuz ##1##2##3##4##5% {\expandafter#1\the\numexpr ##1##2##3##4##5\relax}% -}\XINT_htd_end_b{ }% +}\XINT_htd_finish_cuz{ }% \def\xintBinToDec {\romannumeral0\xintbintodec }% \def\xintbintodec #1% {% @@ -472,20 +433,12 @@ \def\XINT_btd_N {\expandafter-\romannumeral0\XINT_btd_main }% \def\XINT_btd_main #1\xint: {% - \expandafter\XINT_btd_htd - \csname\expandafter\XINT_btd_tohex + \csname XINT_btd_htd\csname\expandafter\XINT_bth_loop \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_tohex #1#2#3#4#5#6#7#8% -{% - XINT_sbth_#1#2#3#4\expandafter\endcsname - \csname XINT_sbth_#5#6#7#8\expandafter\endcsname - \csname\XINT_btd_tohex + #1\R{0\R}{00\R}{000\R}\R{0\R}{00\R}{000\R}\R\W + #1\xint_bye2345678\xint_bye none\endcsname\xint: }% -\def\XINT_btd_tohex_endcsname#1\W{none\endcsname}% -\def\XINT_btd_htd #1\XINT_sbth_none +\def\XINT_btd_htd #1\xint: {% \expandafter\XINT_htd_startb \the\numexpr\expandafter\XINT_htd_starta @@ -506,27 +459,24 @@ \krof }% \def\XINT_bth_N {\expandafter-\romannumeral0\XINT_bth_main }% -\def\XINT_bth_main #1{% -\def\XINT_bth_main ##1\xint: +\def\XINT_bth_main #1\xint: {% - \expandafter\expandafter\expandafter#1% - \csname\expandafter\XINT_bth_tohex + \csname space\csname\expandafter\XINT_bth_loop \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% + #1\R{0\R}{00\R}{000\R}\R{0\R}{00\R}{000\R}\R\W + #1\xint_bye2345678\xint_bye none\endcsname +}% +\def\XINT_bth_loop #1#2#3#4#5#6#7#8% {% - 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 + XINT_csbth_#1#2#3#4% + \csname XINT_csbth_#5#6#7#8% + \csname\XINT_bth_loop }% -\def\XINT_bth_tohex_endcsname#1\W{none\endcsname}% \def\xintHexToBin {\romannumeral0\xinthextobin }% \def\xinthextobin #1% {% \expandafter\XINT_htb_checkin\romannumeral`&&@#1% - \xint_bye 23456789\xint_bye none\endcsname\relax + \xint_bye 23456789\xint_bye none\endcsname }% \def\XINT_htb_checkin #1% {% @@ -536,51 +486,29 @@ \krof }% \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_main {\csname XINT_htb_cuz\csname\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 + XINT_cshtb_#1% + \csname XINT_cshtb_#2% + \csname XINT_cshtb_#3% + \csname XINT_cshtb_#4% + \csname XINT_cshtb_#5% + \csname XINT_cshtb_#6% + \csname XINT_cshtb_#7% + \csname XINT_cshtb_#8% + \csname XINT_cshtb_#9% + \csname \XINT_htb_loop }% \def\XINT_htb_cuz #1{% -\def\XINT_htb_cuz 1##1##2##3##4% +\def\XINT_htb_cuz ##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% - \xint_bye 23456789\xint_bye none\endcsname\relax + \xint_bye 23456789\xint_bye none\endcsname }% \def\XINT_chtb_checkin #1% {% @@ -590,8 +518,7 @@ \krof }% \def\XINT_chtb_N {\expandafter-\romannumeral0\XINT_chtb_main }% -\def\XINT_chtb_main - {\expandafter\xint_gobble_thenstop\the\numexpr\XINT_htb_loop}% +\def\XINT_chtb_main {\csname space\csname\XINT_htb_loop}% \XINT_restorecatcodes_endinput% \endinput %% |