diff options
Diffstat (limited to 'Master/texmf-dist/tex/generic/xint/xintfrac.sty')
-rw-r--r-- | Master/texmf-dist/tex/generic/xint/xintfrac.sty | 980 |
1 files changed, 404 insertions, 576 deletions
diff --git a/Master/texmf-dist/tex/generic/xint/xintfrac.sty b/Master/texmf-dist/tex/generic/xint/xintfrac.sty index 4ffec9ded36..496dbca7b9c 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.2h 2016/11/20 +%% The xint bundle 1.2i 2016/12/13 %% Copyright (C) 2013-2016 by Jean-Francois Burnol %% xintfrac: Expandable operations on fractions %% --------------------------------------------------------------- @@ -70,7 +70,7 @@ \XINTsetupcatcodes% defined in xintkernel.sty \XINT_providespackage \ProvidesPackage{xintfrac}% - [2016/11/20 1.2h Expandable operations on fractions (JFB)]% + [2016/12/13 1.2i Expandable operations on fractions (JFB)]% \def\XINT_cntSgnFork #1% {% \ifcase #1\expandafter\xint_secondofthree @@ -86,33 +86,14 @@ \def\XINT_flen #1#2#3% {% \expandafter\space - \the\numexpr -1+\XINT_Abs {#1}+\XINT_Len {#2}+\XINT_Len {#3}\relax -}% -\def\XINT_lenrord_loop #1.#2#3#4#5#6#7#8#9% -{% - \xint_gob_til_W #9\XINT_lenrord_W\W - \expandafter\XINT_lenrord_loop\the\numexpr #1+\xint_c_vii.{#9#8#7#6#5#4#3#2}% -}% -\def\XINT_lenrord_W\W\expandafter\XINT_lenrord_loop #1.#2#3\Z -{% - \expandafter\XINT_lenrord_X #1.#2\Z -}% -\def\XINT_lenrord_X #1.#2\Z -{% - \XINT_lenrord_Y #2\R\R\R\R\R\R\T {#1}% -}% -\def\XINT_lenrord_Y #1#2#3#4#5#6#7#8\T -{% - \xint_gob_til_W - #7\XINT_lenrord_Z \xint_c_viii - #6\XINT_lenrord_Z \xint_c_vii - #5\XINT_lenrord_Z \xint_c_vi - #4\XINT_lenrord_Z \xint_c_v - #3\XINT_lenrord_Z \xint_c_iv - #2\XINT_lenrord_Z \xint_c_iii - \W\XINT_lenrord_Z \xint_c_ii \Z + \the\numexpr \XINT_abs#1+\xint_c_viii + \XINT_length_loop + #2#3\xint_relax\xint_relax\xint_relax\xint_relax + \xint_relax\xint_relax\xint_relax\xint_relax\xint_relax + \xint_c_i\xint_c_ii\xint_c_iii\xint_c_iv + \xint_c_v\xint_c_vi\xint_c_vii\xint_c_viii\xint_c_ix\xint_bye + \relax }% -\def\XINT_lenrord_Z #1#2\Z #3{\the\numexpr #3-#1.}% \def\XINT_outfrac #1#2#3% {% \ifcase\XINT_cntSgn #3\Z @@ -204,10 +185,13 @@ }% \def\XINT_frac_gen_Bd #1.#2e#3e#4\XINT_Z {% - \expandafter\XINT_frac_gen_C\the\numexpr #3-\romannumeral0\expandafter - \XINT_length_loop - 0.#1\xint_relax\xint_relax\xint_relax\xint_relax - \xint_relax\xint_relax\xint_relax\xint_relax\xint_bye~#2#1!% + \expandafter\XINT_frac_gen_C\the\numexpr #3-% + \numexpr\xint_c_ix\XINT_length_loop + #1\xint_relax\xint_relax\xint_relax\xint_relax + \xint_relax\xint_relax\xint_relax\xint_relax\xint_relax + \xint_c_i\xint_c_ii\xint_c_iii\xint_c_iv + \xint_c_v\xint_c_vi\xint_c_vii\xint_c_viii\xint_c_ix\xint_bye + ~#2#1!% }% \def\XINT_frac_gen_C #1!#2.#3% {% @@ -231,10 +215,12 @@ \def\XINT_frac_gen_Cc #1.#2~#3!#4e#5e#6\XINT_T {% \expandafter\XINT_frac_gen_F\the\numexpr #5-#2-% - \romannumeral0\XINT_length_loop - 0.#1\xint_relax\xint_relax\xint_relax\xint_relax - \xint_relax\xint_relax\xint_relax\xint_relax\xint_bye\expandafter - ~\romannumeral0\XINT_num_loop + \numexpr\xint_c_ix\XINT_length_loop + #1\xint_relax\xint_relax\xint_relax\xint_relax + \xint_relax\xint_relax\xint_relax\xint_relax\xint_relax + \xint_c_i\xint_c_ii\xint_c_iii\xint_c_iv + \xint_c_v\xint_c_vi\xint_c_vii\xint_c_viii\xint_c_ix\xint_bye + \relax\expandafter~\romannumeral0\XINT_num_loop #3\xint_relax\xint_relax\xint_relax\xint_relax \xint_relax\xint_relax\xint_relax\xint_relax\Z ~#4#1~% @@ -364,96 +350,6 @@ \xint_bye\xint_bye\xint_bye\xint_bye \xint_relax }{#1}% }% -\def\XINT_addm_A #1#2#3#4#5#6% -{% - \xint_gob_til_W #3\XINT_addm_az\W - \XINT_addm_AB #1{#3#4#5#6}{#2}% -}% -\def\XINT_addm_az\W\XINT_addm_AB #1#2% -{% - \XINT_addm_AC_checkcarry #1% -}% -\def\XINT_addm_AB #1#2#3#4\W\X\Y\Z #5#6#7#8% -{% - \XINT_addm_ABE #1#2{#8#7#6#5}{#3}#4\W\X\Y\Z -}% -\def\XINT_addm_ABE #1#2#3#4#5#6% -{% - \expandafter\XINT_addm_ABEA\the\numexpr #1+10#5#4#3#2+#6.% -}% -\def\XINT_addm_ABEA #1#2#3.#4% -{% - \XINT_addm_A #2{#3#4}% -}% -\def\XINT_addm_AC_checkcarry #1% -{% - \xint_gob_til_zero #1\XINT_addm_AC_nocarry 0\XINT_addm_C -}% -\def\XINT_addm_AC_nocarry 0\XINT_addm_C #1#2\W\X\Y\Z -{% - \expandafter - \xint_cleanupzeros_andstop - \romannumeral0% - \XINT_rord_main {}#2% - \xint_relax - \xint_bye\xint_bye\xint_bye\xint_bye - \xint_bye\xint_bye\xint_bye\xint_bye - \xint_relax - #1% -}% -\def\XINT_addm_C #1#2#3#4#5% -{% - \xint_gob_til_W - #5\XINT_addm_cw - #4\XINT_addm_cx - #3\XINT_addm_cy - #2\XINT_addm_cz - \W\XINT_addm_CD {#5#4#3#2}{#1}% -}% -\def\XINT_addm_CD #1% -{% - \expandafter\XINT_addm_CC\the\numexpr 1+10#1.% -}% -\def\XINT_addm_CC #1#2#3.#4% -{% - \XINT_addm_AC_checkcarry #2{#3#4}% -}% -\def\XINT_addm_cw - #1\XINT_addm_cx - #2\XINT_addm_cy - #3\XINT_addm_cz - \W\XINT_addm_CD -{% - \expandafter\XINT_addm_CDw\the\numexpr 1+#1#2#3.% -}% -\def\XINT_addm_CDw #1.#2#3\X\Y\Z -{% - \XINT_addm_end #1#3% -}% -\def\XINT_addm_cx - #1\XINT_addm_cy - #2\XINT_addm_cz - \W\XINT_addm_CD -{% - \expandafter\XINT_addm_CDx\the\numexpr 1+#1#2.% -}% -\def\XINT_addm_CDx #1.#2#3\Y\Z -{% - \XINT_addm_end #1#3% -}% -\def\XINT_addm_cy - #1\XINT_addm_cz - \W\XINT_addm_CD -{% - \expandafter\XINT_addm_CDy\the\numexpr 1+#1.% -}% -\def\XINT_addm_CDy #1.#2#3\Z -{% - \XINT_addm_end #1#3% -}% -\def\XINT_addm_cz\W\XINT_addm_CD #1#2#3{\XINT_addm_end #1#3}% -\edef\XINT_addm_end #1#2#3#4#5% - {\noexpand\expandafter\space\noexpand\the\numexpr #1#2#3#4#5\relax}% \def\xintRaw {\romannumeral0\xintraw }% \def\xintraw {% @@ -484,22 +380,20 @@ \def\xintRawWithZeros {\romannumeral0\xintrawwithzeros }% \def\xintrawwithzeros {% - \expandafter\XINT_rawz\romannumeral0\XINT_infrac + \expandafter\XINT_rawz_fork\romannumeral0\XINT_infrac }% -\def\XINT_rawz #1% +\def\XINT_rawz_fork #1% {% - \ifcase\XINT_cntSgn #1\Z + \ifnum#1<\xint_c_ \expandafter\XINT_rawz_Ba - \or - \expandafter\XINT_rawz_A \else - \expandafter\XINT_rawz_Ba + \expandafter\XINT_rawz_A \fi - {#1}% + #1.% }% -\def\XINT_rawz_A #1#2#3{\xint_dsh {#2}{-#1}/#3}% -\def\XINT_rawz_Ba #1#2#3{\expandafter\XINT_rawz_Bb - \expandafter{\romannumeral0\xint_dsh {#3}{#1}}{#2}}% +\def\XINT_rawz_A #1.#2#3{\XINT_dsx_addzeros{#1}#2;/#3}% +\def\XINT_rawz_Ba -#1.#2#3{\expandafter\XINT_rawz_Bb + \expandafter{\romannumeral0\XINT_dsx_addzeros{#1}#3;}{#2}}% \def\XINT_rawz_Bb #1#2{ #2/#1}% \def\xintFloor {\romannumeral0\xintfloor }% \def\xintfloor #1% devrais-je faire \xintREZ? @@ -528,26 +422,24 @@ \fi {#1}% }% -\def\XINT_numer_A #1#2#3{\xint_dsh {#2}{-#1}}% +\def\XINT_numer_A #1#2#3{\XINT_dsx_addzeros{#1}#2;}% \def\XINT_numer_B #1#2#3{ #2}% \def\xintDenominator {\romannumeral0\xintdenominator }% \def\xintdenominator {% - \expandafter\XINT_denom\romannumeral0\XINT_infrac + \expandafter\XINT_denom_fork\romannumeral0\XINT_infrac }% -\def\XINT_denom #1% +\def\XINT_denom_fork #1% {% - \ifcase\XINT_cntSgn #1\Z + \ifnum#1<\xint_c_ \expandafter\XINT_denom_B - \or - \expandafter\XINT_denom_A \else - \expandafter\XINT_denom_B + \expandafter\XINT_denom_A \fi - {#1}% + #1.% }% -\def\XINT_denom_A #1#2#3{ #3}% -\def\XINT_denom_B #1#2#3{\xint_dsh {#3}{#1}}% +\def\XINT_denom_A #1.#2#3{ #3}% +\def\XINT_denom_B -#1.#2#3{\XINT_dsx_addzeros{#1}#3;}% \def\xintFrac {\romannumeral0\xintfrac }% \def\xintfrac #1% {% @@ -832,82 +724,105 @@ \def\XINT_tfrac_P #1/#2\Z {\expandafter\XINT_rez_AB \romannumeral0\xintiirem{#1}{#2}\Z {0}{#2}}% \def\xintTrunc {\romannumeral0\xinttrunc }% -\def\xintiTrunc {\romannumeral0\xintitrunc }% -\def\xinttrunc #1% +\def\xintiTrunc {\romannumeral0\xintitrunc}% +\def\xinttrunc #1{\expandafter\XINT_trunc\the\numexpr#1.\XINT_trunc_G}% +\def\xintitrunc #1{\expandafter\XINT_trunc\the\numexpr#1.\XINT_itrunc_G}% +\def\XINT_trunc #1.#2#3% {% - \expandafter\XINT_trunc\expandafter {\the\numexpr #1}% + \expandafter\XINT_trunc_a\romannumeral0\XINT_infrac{#3}#1.#2% }% -\def\XINT_trunc #1#2% +\def\XINT_trunc_a #1#2#3#4.#5% {% - \expandafter\XINT_trunc_G - \romannumeral0\expandafter\XINT_trunc_A - \romannumeral0\XINT_infrac {#2}{#1}{#1}% + \if0\XINT_Sgn#2\Z\xint_dothis\XINT_trunc_zero\fi + \if1\XINT_iSone#3XY\xint_dothis\XINT_trunc_sp_b\fi + \xint_orthat\XINT_trunc_b #1+#4.{#2}{#3}#5#4.% }% -\def\xintitrunc #1% +\def\XINT_trunc_zero #1.#2.{ 0}% +\def\XINT_trunc_b {\expandafter\XINT_trunc_B\the\numexpr}% +\def\XINT_trunc_sp_b {\expandafter\XINT_trunc_sp_B\the\numexpr}% +\def\XINT_trunc_B #1% {% - \expandafter\XINT_itrunc\expandafter {\the\numexpr #1}% + \xint_UDsignfork + #1\XINT_trunc_C + -\XINT_trunc_D + \krof #1% }% -\def\XINT_itrunc #1#2% +\def\XINT_trunc_sp_B #1% {% - \expandafter\XINT_itrunc_G - \romannumeral0\expandafter\XINT_trunc_A - \romannumeral0\XINT_infrac {#2}{#1}{#1}% + \xint_UDsignfork + #1\XINT_trunc_sp_C + -\XINT_trunc_sp_D + \krof #1% }% -\def\XINT_trunc_A #1#2#3#4% +\def\XINT_trunc_C -#1.#2#3% {% - \expandafter\XINT_trunc_checkifzero - \expandafter{\the\numexpr #1+#4}#2\Z {#3}% + \expandafter\XINT_trunc_CE + \romannumeral0\XINT_dsx_addzeros{#1}#3;.{#2}% }% -\def\XINT_trunc_checkifzero #1#2#3\Z +\def\XINT_trunc_CE #1.#2{\XINT_trunc_E #2.{#1}}% +\def\XINT_trunc_sp_C -#1.#2#3{\XINT_trunc_sp_Ca #2.#1.}% +\def\XINT_trunc_sp_Ca #1% {% - \xint_gob_til_zero #2\XINT_trunc_iszero0\XINT_trunc_B {#1}{#2#3}% + \xint_UDsignfork + #1{\XINT_trunc_sp_Cb -}% + -{\XINT_trunc_sp_Cb \space#1}% + \krof }% -\def\XINT_trunc_iszero0\XINT_trunc_B #1#2#3{ 0\Z 0}% -\def\XINT_trunc_B #1% +\def\XINT_trunc_sp_Cb #1#2.#3.% {% - \ifcase\XINT_cntSgn #1\Z - \expandafter\XINT_trunc_D - \or - \expandafter\XINT_trunc_D - \else - \expandafter\XINT_trunc_C - \fi - {#1}% + \expandafter\XINT_trunc_sp_Cc + \romannumeral0\expandafter\XINT_split_fromright_a + \the\numexpr#3-\numexpr\xint_c_ix\XINT_length_loop + #2\xint_relax\xint_relax\xint_relax\xint_relax + \xint_relax\xint_relax\xint_relax\xint_relax\xint_relax + \xint_c_i\xint_c_ii\xint_c_iii\xint_c_iv + \xint_c_v\xint_c_vi\xint_c_vii\xint_c_viii\xint_c_ix\xint_bye + .#2\xint_bye2345678\xint_bye..#1% +}% +\def\XINT_trunc_sp_Cc #1% +{% + \if.#1\xint_dothis{\XINT_trunc_sp_Cd 0.}\fi + \xint_orthat {\XINT_trunc_sp_Cd #1}% }% -\def\XINT_trunc_C #1#2#3% +\def\XINT_trunc_sp_Cd #1.#2.#3% {% - \expandafter\XINT_trunc_CE\expandafter - {\romannumeral0\XINT_dsx_zeroloop -#1.{}\Z {#3}}{#2}% + \XINT_trunc_sp_F #3#1.% }% -\def\XINT_trunc_CE #1#2{\XINT_trunc_E #2.{#1}}% -\def\XINT_trunc_D #1#2% +\def\XINT_trunc_D #1.#2% {% \expandafter\XINT_trunc_E - \romannumeral0\XINT_dsx_zeroloop #1.{}\Z {#2}.% + \romannumeral0\XINT_dsx_addzeros {#1}#2;.% +}% +\def\XINT_trunc_sp_D #1.#2#3% +{% + \expandafter\XINT_trunc_sp_E + \romannumeral0\XINT_dsx_addzeros {#1}#2;.% }% \def\XINT_trunc_E #1% {% \xint_UDsignfork - #1\XINT_trunc_Fneg - -{\XINT_trunc_Fpos #1}% + #1{\XINT_trunc_F -}% + -{\XINT_trunc_F \space#1}% \krof }% -\def\XINT_trunc_Fneg #1.#2{\expandafter\xint_firstoftwo_thenstop - \romannumeral0\XINT_div_prepare {#2}{#1}\Z -}% -\def\XINT_trunc_Fpos #1.#2{\expandafter\xint_firstoftwo_thenstop - \romannumeral0\XINT_div_prepare {#2}{#1}\Z \space }% -\def\XINT_itrunc_G #1#2\Z #3#4% +\def\XINT_trunc_sp_E #1% {% - \xint_gob_til_zero #1\XINT_trunc_zero 0#3#1#2% + \xint_UDsignfork + #1{\XINT_trunc_sp_F -}% + -{\XINT_trunc_sp_F\space#1}% + \krof }% -\def\XINT_trunc_zero 0#1#20{ 0}% -\def\XINT_trunc_G #1\Z #2#3% +\def\XINT_trunc_F #1#2.#3#4% + {\expandafter#4\romannumeral`&&@\expandafter\xint_firstoftwo + \romannumeral0\XINT_div_prepare {#3}{#2}.#1}% +\def\XINT_trunc_sp_F #1#2.#3{#3#2.#1}% +\def\XINT_itrunc_G #1#2.#3#4.{\if#10\xint_dothis{ 0}\fi\xint_orthat{#3#1}#2}% +\def\XINT_trunc_G #1.#2#3.% {% - \xint_gob_til_zero #2\XINT_trunc_zero 0% - \expandafter\XINT_trunc_H\expandafter - {\the\numexpr\romannumeral0\xintlength {#1}-#3}{#3}{#1}#2% + \expandafter\XINT_trunc_H + \the\numexpr\romannumeral0\xintlength {#1}-#3.#3.{#1}#2% }% -\def\XINT_trunc_H #1#2% +\def\XINT_trunc_H #1.#2.% {% \ifnum #1 > \xint_c_ \xint_afterfi {\XINT_trunc_Ha {#2}}% @@ -915,329 +830,311 @@ \xint_afterfi {\XINT_trunc_Hb {-#1}}% -0,--1,--2, .... \fi }% -\def\XINT_trunc_Ha -{% - \expandafter\XINT_trunc_Haa\romannumeral0\xintdecsplit -}% -\def\XINT_trunc_Haa #1#2#3% -{% - #3#1.#2% -}% +\def\XINT_trunc_Ha{\expandafter\XINT_trunc_Haa\romannumeral0\xintdecsplit}% +\def\XINT_trunc_Haa #1#2#3{#3#1.#2}% \def\XINT_trunc_Hb #1#2#3% {% \expandafter #3\expandafter0\expandafter.% - \romannumeral0\XINT_dsx_zeroloop #1.{}\Z {}#2% #1=-0 autoris\'e ! + \romannumeral\xintreplicate{#1}0#2% }% \def\xintTTrunc {\romannumeral0\xintttrunc }% -\def\xintttrunc #1% -{% - \expandafter\XINT_itrunc_G - \romannumeral0\expandafter\XINT_ttrunc_A - \romannumeral0\XINT_infrac {#1}0% this last 0 to let \XINT_itrunc_G be happy -}% -\def\XINT_ttrunc_A #1#2#3{\XINT_trunc_checkifzero {#1}#2\Z {#3}}% +\def\xintttrunc {\xintitrunc\xint_c_}% \let\xintNum \xintTTrunc \let\xintnum \xintttrunc -\def\xintRound {\romannumeral0\xintround }% +\def\xintRound {\romannumeral0\xintround }% \def\xintiRound {\romannumeral0\xintiround }% -\def\xintround #1% +\def\xintround #1{\expandafter\XINT_round\the\numexpr #1.\XINT_round_A}% +\def\xintiround #1{\expandafter\XINT_round\the\numexpr #1.\XINT_iround_A}% +\def\XINT_round #1.{\expandafter\XINT_round_aa\the\numexpr #1+\xint_c_i.#1.}% +\def\XINT_round_aa #1.#2.#3#4% {% - \expandafter\XINT_round\expandafter {\the\numexpr #1}% + \expandafter\XINT_round_a\romannumeral0\XINT_infrac{#4}#1.#3#2.% }% -\def\XINT_round +\def\XINT_round_a #1#2#3#4.% {% - \expandafter\XINT_trunc_G\romannumeral0\XINT_round_A + \if0\XINT_Sgn#2\Z\xint_dothis\XINT_trunc_zero\fi + \if1\XINT_iSone#3XY\xint_dothis\XINT_trunc_sp_b\fi + \xint_orthat\XINT_trunc_b #1+#4.{#2}{#3}% }% -\def\xintiround #1% +\def\XINT_round_A{\expandafter\XINT_trunc_G\romannumeral0\XINT_round_B}% +\def\XINT_iround_A{\expandafter\XINT_itrunc_G\romannumeral0\XINT_round_B}% +\def\XINT_round_B #1.% + {\XINT_dsrr #1\xint_bye\xint_Bye3456789\xint_bye/\xint_c_x\relax.}% +\def\xintXTrunc #1%#2% {% - \expandafter\XINT_iround\expandafter {\the\numexpr #1}% + \expandafter\XINT_xtrunc_a + \the\numexpr #1\expandafter.\romannumeral0\xintraw }% -\def\XINT_iround +\def\XINT_xtrunc_a #1.% ?? faire autre chose {% - \expandafter\XINT_itrunc_G\romannumeral0\XINT_round_A + \expandafter\XINT_xtrunc_b\the\numexpr\ifnum#1<\xint_c_i \xint_c_i-\fi #1.% }% -\def\XINT_round_A #1#2% +\def\XINT_xtrunc_b #1.#2{\XINT_xtrunc_c #2{#1}}% +\def\XINT_xtrunc_c #1% {% - \expandafter\XINT_round_B - \romannumeral0\expandafter\XINT_trunc_A - \romannumeral0\XINT_infrac {#2}{#1+\xint_c_i}{#1}% -}% -\def\XINT_round_B #1\Z + \xint_UDzerominusfork + #1-\XINT_xtrunc_zero + 0#1{-\XINT_xtrunc_d {}}% + 0-{\XINT_xtrunc_d #1}% + \krof +}%[ +\def\XINT_xtrunc_zero #1#2]{0.\romannumeral\xintreplicate{#1}0}% +\def\XINT_xtrunc_d #1#2#3/#4[#5]% {% - \expandafter\XINT_round_C - \romannumeral0\XINT_rord_main {}#1% - \xint_relax - \xint_bye\xint_bye\xint_bye\xint_bye - \xint_bye\xint_bye\xint_bye\xint_bye - \xint_relax - \Z + \XINT_xtrunc_prepare_a#4\R\R\R\R\R\R\R\R {10}0000001\W !{#4};{#5}{#2}{#1#3}% }% -\def\XINT_round_C #1% +\def\XINT_xtrunc_prepare_a #1#2#3#4#5#6#7#8#9% {% - \ifnum #1<\xint_c_v - \expandafter\XINT_round_Daa - \else - \expandafter\XINT_round_Dba - \fi + \xint_gob_til_R #9\XINT_xtrunc_prepare_small\R + \XINT_xtrunc_prepare_b #9% }% -\def\XINT_round_Daa #1% +\def\XINT_xtrunc_prepare_small\R #1!#2;% {% - \xint_gob_til_Z #1\XINT_round_Daz\Z \XINT_round_Da #1% + \ifcase #2 + \or\expandafter\XINT_xtrunc_BisOne + \or\expandafter\XINT_xtrunc_BisTwo + \or + \or\expandafter\XINT_xtrunc_BisFour + \or\expandafter\XINT_xtrunc_BisFive + \or + \or + \or\expandafter\XINT_xtrunc_BisEight + \fi\XINT_xtrunc_BisSmall {#2}% }% -\def\XINT_round_Daz\Z \XINT_round_Da \Z { 0\Z }% -\def\XINT_round_Da #1\Z +\def\XINT_xtrunc_BisOne\XINT_xtrunc_BisSmall #1#2#3#4% + {\XINT_xtrunc_sp_e {#2}{#4}{#3}}% +\def\XINT_xtrunc_BisTwo\XINT_xtrunc_BisSmall #1#2#3#4% {% - \XINT_rord_main {}#1% - \xint_relax - \xint_bye\xint_bye\xint_bye\xint_bye - \xint_bye\xint_bye\xint_bye\xint_bye - \xint_relax \Z + \expandafter\XINT_xtrunc_sp_e\expandafter + {\the\numexpr #2-\xint_c_i\expandafter}\expandafter + {\romannumeral0\xintiimul 5{#4}}{#3}% }% -\def\XINT_round_Dba #1% +\def\XINT_xtrunc_BisFour\XINT_xtrunc_BisSmall #1#2#3#4% {% - \xint_gob_til_Z #1\XINT_round_Dbz\Z \XINT_round_Db #1% + \expandafter\XINT_xtrunc_sp_e\expandafter + {\the\numexpr #2-\xint_c_ii\expandafter}\expandafter + {\romannumeral0\xintiimul {25}{#4}}{#3}% }% -\def\XINT_round_Dbz\Z \XINT_round_Db \Z { 1\Z }% -\def\XINT_round_Db #1\Z +\def\XINT_xtrunc_BisFive\XINT_xtrunc_BisSmall #1#2#3#4% {% - \XINT_addm_A 0{}1000\W\X\Y\Z #1000\W\X\Y\Z \Z + \expandafter\XINT_xtrunc_sp_e\expandafter + {\the\numexpr #2-\xint_c_i\expandafter}\expandafter + {\romannumeral0\xintdouble {#4}}{#3}% }% -\def\xintXTrunc #1#2% +\def\XINT_xtrunc_BisEight\XINT_xtrunc_BisSmall #1#2#3#4% {% - \expandafter\XINT_xtrunc_a\expandafter - {\the\numexpr #1\expandafter}\romannumeral0\xintraw {#2}% + \expandafter\XINT_xtrunc_sp_e\expandafter + {\the\numexpr #2-\xint_c_iii\expandafter}\expandafter + {\romannumeral0\xintiimul {125}{#4}}{#3}% }% -\def\XINT_xtrunc_a #1% +\def\XINT_xtrunc_BisSmall #1% {% - \expandafter\XINT_xtrunc_b\expandafter - {\the\numexpr\ifnum#1<\xint_c_i \xint_c_i-\fi #1}% + \expandafter\XINT_xtrunc_e\expandafter + {\expandafter\XINT_xtrunc_small_a + \the\numexpr #1/\xint_c_ii\expandafter.\the\numexpr \xint_c_x^viii+#1!}% }% -\def\XINT_xtrunc_b #1% +\def\XINT_xtrunc_small_a #1.#2!#3% {% - \expandafter\XINT_xtrunc_c\expandafter - {\the\numexpr (#1+\xint_c_ii^v)/\xint_c_ii^vi-\xint_c_i}{#1}% + \expandafter\XINT_div_small_b\the\numexpr #1\expandafter + .\the\numexpr #2\expandafter!% + \romannumeral0\XINT_div_small_ba #3\R\R\R\R\R\R\R\R{10}0000001\W + #3\XINT_sepbyviii_Z_end 2345678\relax }% -\def\XINT_xtrunc_c #1#2% +\def\XINT_xtrunc_prepare_b + {\expandafter\XINT_xtrunc_prepare_c\romannumeral0\XINT_zeroes_forviii }% +\def\XINT_xtrunc_prepare_c #1!% {% - \expandafter\XINT_xtrunc_d\expandafter - {\the\numexpr #2-\xint_c_ii^vi*#1}{#1}{#2}% + \XINT_xtrunc_prepare_d #1.00000000!{#1}% }% -\def\XINT_xtrunc_d #1#2#3#4/#5[#6]% +\def\XINT_xtrunc_prepare_d #1#2#3#4#5#6#7#8#9% {% - \XINT_xtrunc_e #4.{#6}{#5}{#3}{#2}{#1}% + \expandafter\XINT_xtrunc_prepare_e\xint_gob_til_dot #1#2#3#4#5#6#7#8#9!% }% -\def\XINT_xtrunc_e #1% +\def\XINT_xtrunc_prepare_e #1!#2!#3#4% {% - \xint_UDzerominusfork - #1-\XINT_xtrunc_zero - 0#1\XINT_xtrunc_N - 0-{\XINT_xtrunc_P #1}% - \krof + \XINT_xtrunc_prepare_f #4#3\X {#1}{#3}% }% -\def\XINT_xtrunc_zero .#1#2#3#4#5% +\def\XINT_xtrunc_prepare_f #1#2#3#4#5#6#7#8#9\X {% - 0.\romannumeral0\expandafter\XINT_dsx_zeroloop - \the\numexpr #5.{}\Z {}% - \xintiloop [#4+-1] - \ifnum \xintiloopindex>\xint_c_ - 0000000000000000000000000000000000000000000000000000000000000000% - \repeat + \expandafter\XINT_xtrunc_prepare_g\expandafter + \XINT_div_prepare_g + \the\numexpr #1#2#3#4#5#6#7#8+\xint_c_i\expandafter + .\the\numexpr (#1#2#3#4#5#6#7#8+\xint_c_i)/\xint_c_ii\expandafter + .\the\numexpr #1#2#3#4#5#6#7#8\expandafter + .\romannumeral0\XINT_sepandrev_andcount + #1#2#3#4#5#6#7#8#9\XINT_rsepbyviii_end_A 2345678% + \XINT_rsepbyviii_end_B 2345678% + \relax\xint_c_ii\xint_c_iii + \R.\xint_c_vi\R.\xint_c_v\R.\xint_c_iv\R.\xint_c_iii + \R.\xint_c_ii\R.\xint_c_i\R.\xint_c_\W + \X }% -\def\XINT_xtrunc_N {-\XINT_xtrunc_P }% -\def\XINT_xtrunc_P #1.#2% +\def\XINT_xtrunc_prepare_g #1;{\XINT_xtrunc_e {#1}}% +\def\XINT_xtrunc_e #1#2% {% \ifnum #2<\xint_c_ - \expandafter\XINT_xtrunc_negN_Q + \expandafter\XINT_xtrunc_I \else - \expandafter\XINT_xtrunc_Q - \fi {#2}{#1}.% + \expandafter\XINT_xtrunc_II + \fi #2.{#1}% }% -\def\XINT_xtrunc_negN_Q #1#2.#3#4#5#6% +\def\XINT_xtrunc_I -#1.#2#3#4% {% - \expandafter\XINT_xtrunc_negN_R - \romannumeral0\XINT_div_prepare {#3}{#2}{#3}{#1}{#4}% + \expandafter\XINT_xtrunc_I_a\romannumeral0#2{#4}{#2}{#1}{#3}% }% -\def\XINT_xtrunc_negN_R #1#2#3#4#5% +\def\XINT_xtrunc_I_a #1#2#3#4#5% {% - \expandafter\XINT_xtrunc_negN_S\expandafter - {\the\numexpr -#4}{#5}{#2}{#3}{#1}% + \expandafter\XINT_xtrunc_I_b\the\numexpr #4-#5.#4.{#5}{#2}{#3}{#1}% }% -\def\XINT_xtrunc_negN_S #1#2% +\def\XINT_xtrunc_I_b #1% {% - \expandafter\XINT_xtrunc_negN_T\expandafter - {\the\numexpr #2-#1}{#1}{#2}% + \xint_UDsignfork + #1\XINT_xtrunc_IA_c + -\XINT_xtrunc_IB_c + \krof #1% }% -\def\XINT_xtrunc_negN_T #1% +\def\XINT_xtrunc_IA_c -#1.#2.#3#4#5#6% {% - \ifnum \xint_c_<#1 - \expandafter\XINT_xtrunc_negNA - \else - \expandafter\XINT_xtrunc_negNW - \fi {#1}% + \expandafter\XINT_xtrunc_IA_d + \the\numexpr#2-\xintLength{#6}.{#6}% + \expandafter\XINT_xtrunc_IA_xd + \the\numexpr (#1+\xint_c_ii^v)/\xint_c_ii^vi-\xint_c_i.#1.{#5}{#4}% }% -\def\XINT_xtrunc_unlock #10.{ }% -\def\XINT_xtrunc_negNA #1#2#3#4#5#6% +\def\XINT_xtrunc_IA_d #1% {% - \expandafter\XINT_xtrunc_negNB\expandafter - {\romannumeral0\expandafter\expandafter\expandafter - \XINT_xtrunc_unlock\expandafter\string - \csname\XINT_xtrunc_b {#1}#4/#5[0]\expandafter\endcsname - \expandafter}\expandafter - {\the\numexpr\xintLength{#6}-#2}{#6}% + \xint_UDsignfork + #1\XINT_xtrunc_IAA_e + -\XINT_xtrunc_IAB_e + \krof #1% }% -\def\XINT_xtrunc_negNB #1#2#3{\XINT_xtrunc_negNC {#2}{#3}#1}% -\def\XINT_xtrunc_negNC #1% +\def\XINT_xtrunc_IAA_e -#1.#2% {% - \ifnum \xint_c_ < #1 - \expandafter\XINT_xtrunc_negNDa - \else - \expandafter\XINT_xtrunc_negNE - \fi {#1}% + \romannumeral0\XINT_split_fromleft + #1.#2\xint_gobble_i\xint_bye2345678\xint_bye..% }% -\def\XINT_xtrunc_negNDa #1#2% +\def\XINT_xtrunc_IAB_e #1.#2% {% - \expandafter\XINT_xtrunc_negNDb% - \romannumeral0\XINT_split_fromleft_loop #1.{}#2\W\W\W\W\W\W\W\W\Z + 0.\romannumeral\XINT_rep#1\endcsname0#2% }% -\def\XINT_xtrunc_negNDb #1.#2.{#1.#2}% -\def\XINT_xtrunc_negNE #1#2% +\def\XINT_xtrunc_IA_xd #1.#2.% {% - 0.\romannumeral0\XINT_dsx_zeroloop -#1.{}\Z {}#2% + \expandafter\XINT_xtrunc_IA_xe\the\numexpr #2-\xint_c_ii^vi*#1.#1.% }% -\def\XINT_xtrunc_negNW #1#2#3#4#5#6% +\def\XINT_xtrunc_IA_xe #1.#2.#3#4% {% - \expandafter\XINT_xtrunc_negNX\expandafter - {\romannumeral0\xintnum{\xintDecSplitL {-#1}{#6}}}{#3}% + \XINT_xtrunc_loop {#2}{#4}{#3}{#1}% }% -\def\XINT_xtrunc_negNX #1#2% +\def\XINT_xtrunc_IB_c #1.#2.#3#4#5#6% {% - \expandafter\XINT_xtrunc_negNC\expandafter - {\the\numexpr\xintLength {#1}-#2}{#1}% + \expandafter\XINT_xtrunc_IB_d + \romannumeral0\XINT_split_xfork #1.#6\xint_bye2345678\xint_bye..{#3}% }% -\def\XINT_xtrunc_BisOne #1#2#3#4#5#6#7% +\def\XINT_xtrunc_IB_d #1.#2.#3% {% - #5.\romannumeral0\expandafter\XINT_dsx_zeroloop - \the\numexpr #7.{}\Z {}% - \xintiloop [#6+-1] - \ifnum \xintiloopindex>\xint_c_ - 0000000000000000000000000000000000000000000000000000000000000000% - \repeat + \expandafter\XINT_xtrunc_IA_d\the\numexpr#3-\xintLength {#1}.{#1}% }% -\def\XINT_xtrunc_BisTwo #1#2#3#4#5#6#7% +\def\XINT_xtrunc_II #1.% {% - \xintHalf {#5}.\ifodd\xintiiLDg{#5} 5\else 0\fi - \romannumeral0\expandafter\XINT_dsx_zeroloop - \the\numexpr #7-\xint_c_i.{}\Z {}% - \xintiloop [#6+-1] - \ifnum \xintiloopindex>\xint_c_ - 0000000000000000000000000000000000000000000000000000000000000000% - \repeat + \expandafter\XINT_xtrunc_II_a\romannumeral\xintreplicate{#1}0.% }% -\def\XINT_xtrunc_Q #1% +\def\XINT_xtrunc_II_a #1.#2#3#4% {% - \expandafter\XINT_xtrunc_prepare - \romannumeral0\XINT_dsx_zeroloop #1.{}\Z + \expandafter\XINT_xtrunc_II_b + \the\numexpr (#3+\xint_c_ii^v)/\xint_c_ii^vi-\xint_c_i\expandafter.% + \the\numexpr #3\expandafter.\romannumeral0#2{#4#1}{#2}% }% -\def\XINT_xtrunc_prepare #1.#2#3% +\def\XINT_xtrunc_II_b #1.#2.% {% - \expandafter\XINT_xtrunc_Pa\expandafter - {\romannumeral0% - \XINT_xtrunc_prepare_a #2\R\R\R\R\R\R\R\R {10}0000001\W !{#2}}{#1}% + \expandafter\XINT_xtrunc_II_c\the\numexpr #2-\xint_c_ii^vi*#1.#1.% }% -\def\XINT_xtrunc_prepare_a #1#2#3#4#5#6#7#8#9% +\def\XINT_xtrunc_II_c #1.#2.#3#4#5% {% - \xint_gob_til_R #9\XINT_xtrunc_prepare_small\R - \XINT_xtrunc_prepare_b #9% + #3.\XINT_xtrunc_loop {#2}{#4}{#5}{#1}% }% -\def\XINT_xtrunc_prepare_small\R #1!#2% +\def\XINT_xtrunc_loop #1% {% - \ifcase #2 - \or\xint_afterfi{ \XINT_div_BisOne}% - \or\xint_afterfi{ \XINT_div_BisTwo}% - \else\expandafter\XINT_xtrunc_small_aa - \fi {#2}% + \ifnum #1=\xint_c_ \expandafter\XINT_xtrunc_transition\fi + \expandafter\XINT_xtrunc_loop_a\the\numexpr #1-\xint_c_i.% }% -\def\XINT_xtrunc_small_aa #1% +\def\XINT_xtrunc_loop_a #1.#2#3% {% - \expandafter\space\expandafter\XINT_xtrunc_small_a - \the\numexpr #1/\xint_c_ii\expandafter - .\the\numexpr \xint_c_x^viii+#1!% + \expandafter\XINT_xtrunc_loop_b\romannumeral0#3% + {#20000000000000000000000000000000000000000000000000000000000000000}% + {#1}{#3}% }% -\def\XINT_xtrunc_small_a #1.#2!#3% +\def\XINT_xtrunc_loop_b #1#2#3% {% - \expandafter\XINT_div_small_b\the\numexpr #1\expandafter - .\the\numexpr #2\expandafter!% - \romannumeral0\XINT_div_small_ba #3\R\R\R\R\R\R\R\R{10}0000001\W - #3\XINT_sepbyviii_Z_end 2345678\relax + \romannumeral\xintreplicate{\xint_c_ii^vi-\xintLength{#1}}0#1% + \XINT_xtrunc_loop {#3}{#2}% }% -\def\XINT_xtrunc_prepare_b - {\expandafter\XINT_xtrunc_prepare_c\romannumeral0\XINT_zeroes_forviii }% -\def\XINT_xtrunc_prepare_c #1!% +\def\XINT_xtrunc_transition + \expandafter\XINT_xtrunc_loop_a\the\numexpr #1.#2#3#4% {% - \XINT_xtrunc_prepare_d #1.00000000!{#1}% + \ifnum #4=\xint_c_ \expandafter\xint_gobble_vi\fi + \expandafter\XINT_xtrunc_finish\expandafter + {\romannumeral0\XINT_dsx_addzeros{#4}#2;}{#3}{#4}% }% -\def\XINT_xtrunc_prepare_d #1#2#3#4#5#6#7#8#9% +\def\XINT_xtrunc_finish #1#2% {% - \expandafter\XINT_xtrunc_prepare_e\xint_gob_til_dot #1#2#3#4#5#6#7#8#9!% + \expandafter\XINT_xtrunc_finish_a\romannumeral0#2{#1}% }% -\def\XINT_xtrunc_prepare_e #1!#2!#3#4% +\def\XINT_xtrunc_finish_a #1#2#3% {% - \XINT_xtrunc_prepare_f #4#3\X {#1}{#3}% + \romannumeral\xintreplicate{#3-\xintLength{#1}}0#1% }% -\def\XINT_xtrunc_prepare_f #1#2#3#4#5#6#7#8#9\X +\def\XINT_xtrunc_sp_e #1% {% - \expandafter\space\expandafter\XINT_div_prepare_g - \the\numexpr #1#2#3#4#5#6#7#8+\xint_c_i\expandafter - .\the\numexpr (#1#2#3#4#5#6#7#8+\xint_c_i)/\xint_c_ii\expandafter - .\the\numexpr #1#2#3#4#5#6#7#8\expandafter - .\romannumeral0\XINT_sepandrev_andcount - #1#2#3#4#5#6#7#8#9\XINT_rsepbyviii_end_A 2345678% - \XINT_rsepbyviii_end_B 2345678% - \relax\xint_c_ii\xint_c_iii - \R.\xint_c_vi\R.\xint_c_v\R.\xint_c_iv\R.\xint_c_iii - \R.\xint_c_ii\R.\xint_c_i\R.\xint_c_\W - \X + \ifnum #1<\xint_c_ + \expandafter\XINT_xtrunc_sp_I + \else + \expandafter\XINT_xtrunc_sp_II + \fi #1.% }% -\def\XINT_xtrunc_Pa #1#2% +\def\XINT_xtrunc_sp_I -#1.#2#3% {% - \expandafter\XINT_xtrunc_Pb\romannumeral0#1{#2}{#1}% + \expandafter\XINT_xtrunc_sp_I_a\the\numexpr #1-#3.#1.{#3}{#2}% }% -\def\XINT_xtrunc_Pb #1#2#3#4{#1.\XINT_xtrunc_A {#4}{#2}{#3}}% -\def\XINT_xtrunc_A #1% +\def\XINT_xtrunc_sp_I_a #1% {% - \unless\ifnum #1>\xint_c_ \XINT_xtrunc_transition\fi - \expandafter\XINT_xtrunc_B\expandafter{\the\numexpr #1-\xint_c_i}% + \xint_UDsignfork + #1\XINT_xtrunc_sp_IA_b + -\XINT_xtrunc_sp_IB_b + \krof #1% }% -\def\XINT_xtrunc_B #1#2#3% +\def\XINT_xtrunc_sp_IA_b -#1.#2.#3#4% {% - \expandafter\XINT_xtrunc_D\romannumeral0#3% - {#20000000000000000000000000000000000000000000000000000000000000000}% - {#1}{#3}% + \expandafter\XINT_xtrunc_sp_IA_c + \the\numexpr#2-\xintLength{#4}.{#4}\romannumeral\XINT_rep#1\endcsname0% }% -\def\XINT_xtrunc_D #1#2#3% +\def\XINT_xtrunc_sp_IA_c #1% {% - \romannumeral0\expandafter\XINT_dsx_zeroloop - \the\numexpr \xint_c_ii^vi-\xintLength{#1}.{}\Z {}#1% - \XINT_xtrunc_A {#3}{#2}% + \xint_UDsignfork + #1\XINT_xtrunc_sp_IAA + -\XINT_xtrunc_sp_IAB + \krof #1% }% -\def\XINT_xtrunc_transition\fi - \expandafter\XINT_xtrunc_B\expandafter #1#2#3#4% +\def\XINT_xtrunc_sp_IAA -#1.#2% {% - \fi - \ifnum #4=\xint_c_ \XINT_xtrunc_abort\fi - \expandafter\XINT_xtrunc_x\expandafter - {\romannumeral0\XINT_dsx_zeroloop #4.{}\Z {#2}}{#3}{#4}% + \romannumeral0\XINT_split_fromleft + #1.#2\xint_gobble_i\xint_bye2345678\xint_bye..% +}% +\def\XINT_xtrunc_sp_IAB #1.#2% +{% + 0.\romannumeral\XINT_rep#1\endcsname0#2% +}% +\def\XINT_xtrunc_sp_IB_b #1.#2.#3#4% +{% + \expandafter\XINT_xtrunc_sp_IB_c + \romannumeral0\XINT_split_xfork #1.#4\xint_bye2345678\xint_bye..{#3}% }% -\def\XINT_xtrunc_x #1#2% +\def\XINT_xtrunc_sp_IB_c #1.#2.#3% {% - \expandafter\XINT_xtrunc_y\romannumeral0#2{#1}% + \expandafter\XINT_xtrunc_sp_IA_c\the\numexpr#3-\xintLength {#1}.{#1}% }% -\def\XINT_xtrunc_y #1#2#3% +\def\XINT_xtrunc_sp_II #1.#2#3% {% - \romannumeral0\expandafter\XINT_dsx_zeroloop - \the\numexpr #3-\xintLength{#1}.{}\Z {}#1% + #2\romannumeral\XINT_rep#1\endcsname0.\romannumeral\XINT_rep#3\endcsname0% }% -\def\XINT_xtrunc_abort\fi\expandafter\XINT_xtrunc_x\expandafter #1#2#3{\fi}% \mathchardef\XINTdigits 16 \def\xintDigits #1#2% {\afterassignment \xint_gobble_i \mathchardef\XINTdigits=}% @@ -1252,29 +1149,27 @@ \def\XINT_fadd_Bzero #1]#2#3#4{ #3/#4[#2]}% \def\XINT_fadd_c #1/#2[#3]#4% {% - \expandafter\XINT_fadd_Aa\expandafter{\the\numexpr #4-#3}{#3}{#4}{#1}{#2}% + \expandafter\XINT_fadd_Aa\the\numexpr #4-#3.{#3}{#4}{#1}{#2}% }% \def\XINT_fadd_Aa #1% {% - \ifcase\XINT_cntSgn #1\Z - \expandafter\XINT_fadd_B - \or - \expandafter \XINT_fadd_Ba - \else - \expandafter \XINT_fadd_Bb - \fi {#1}% + \xint_UDzerominusfork + #1-\XINT_fadd_B + 0#1\XINT_fadd_Bb + 0-\XINT_fadd_Ba + \krof #1% }% -\def\XINT_fadd_B #1#2#3#4#5#6#7{\XINT_fadd_C {#4}{#5}{#7}{#6}[#3]}% -\def\XINT_fadd_Ba #1#2#3#4#5#6#7% +\def\XINT_fadd_B #1.#2#3#4#5#6#7{\XINT_fadd_C {#4}{#5}{#7}{#6}[#3]}% +\def\XINT_fadd_Ba #1.#2#3#4#5#6#7% {% \expandafter\XINT_fadd_C\expandafter - {\romannumeral0\XINT_dsx_zeroloop #1.{}\Z {#6}}% + {\romannumeral0\XINT_dsx_addzeros {#1}#6;}% {#7}{#5}{#4}[#2]% }% -\def\XINT_fadd_Bb #1#2#3#4#5#6#7% +\def\XINT_fadd_Bb -#1.#2#3#4#5#6#7% {% \expandafter\XINT_fadd_C\expandafter - {\romannumeral0\XINT_dsx_zeroloop -#1.{}\Z {#4}}% + {\romannumeral0\XINT_dsx_addzeros {#1}#4;}% {#5}{#7}{#6}[#3]% }% \def\XINT_fadd_C #1#2#3% @@ -1579,13 +1474,13 @@ \def\XINT_fgeq_Fd #1\Z #2#3% {% \expandafter\XINT_fgeq_Fe\expandafter - {\romannumeral0\XINT_dsx_addzerosnofuss {#1}{#3}}{#2}% + {\romannumeral0\XINT_dsx_addzeros {#1}#3;}{#2}% }% \def\XINT_fgeq_Fe #1#2{\XINT_geq_pre {#2}{#1}}% \def\XINT_fgeq_Fn #1\Z #2#3% {% \expandafter\XINT_geq_pre\expandafter - {\romannumeral0\XINT_dsx_addzerosnofuss {#1}{#2}}{#3}% + {\romannumeral0\XINT_dsx_addzeros {#1}#2;}{#3}% }% \def\xintMax {\romannumeral0\xintmax }% \def\xintmax #1% @@ -1741,13 +1636,13 @@ \def\XINT_fcmp_Fd #1\Z #2#3% {% \expandafter\XINT_fcmp_Fe\expandafter - {\romannumeral0\XINT_dsx_addzerosnofuss {#1}{#3}}{#2}% + {\romannumeral0\XINT_dsx_addzeros {#1}#3;}{#2}% }% \def\XINT_fcmp_Fe #1#2{\xintiicmp {#2}{#1}}% \def\XINT_fcmp_Fn #1\Z #2#3% {% \expandafter\xintiicmp\expandafter - {\romannumeral0\XINT_dsx_addzerosnofuss {#1}{#2}}{#3}% + {\romannumeral0\XINT_dsx_addzeros {#1}#2;}{#3}% }% \def\xintAbs {\romannumeral0\xintabs }% \def\xintabs #1{\expandafter\XINT_abs\romannumeral0\xintraw {#1}}% @@ -1775,7 +1670,7 @@ }% \def\XINT_float_a #1.#2#3#4% {% - \if\romannumeral0\XINT_isone#4XY1\expandafter\XINT_float_sp + \if1\XINT_iSone#4XY\expandafter\XINT_float_sp \else\expandafter\XINT_float_fork\fi #3.{#1}{#2}{#4}% }% \def\XINT_float_sp #1% @@ -1808,50 +1703,26 @@ {% \expandafter\XINT_float_sp_done \the\numexpr #4-#1+#3-\xint_c_i\expandafter.% - \romannumeral0\XINT_dsx_addzerosnofuss {#1}{#2};% + \romannumeral0\XINT_dsx_addzeros {#1}#2;;% }% \def\XINT_float_sp_done #1.#2#3;{ #2.#3e#1}% \def\XINT_float_sp_c #1.#2% {% \if #29\xint_dothis {\XINT_float_sp_d\XINT_float_Wb }\fi - \xint_orthat {\XINT_float_sp_d\XINT_float_sp_Wa }#1.#2% + \xint_orthat {\XINT_float_sp_d\XINT_float_Wa }#1.#2% }% \def\XINT_float_sp_d #1#2.#3.#4.#5.% {% \expandafter\XINT_float_sp_e \the\numexpr #5+#2+#4-\xint_c_i\expandafter.% - \romannumeral0\expandafter\XINT_split_fromleft_loop - \the\numexpr #4+\xint_c_i.{}#3\W\W\W\W\W\W\W\W\Z #1% + \romannumeral0\XINT_split_fromleft + (\xint_c_i+#4).#3\xint_bye2345678\xint_bye..#1% }% -\def\XINT_float_sp_e #1.#2.#3.% +\def\XINT_float_sp_e #1.#2.#3.#4% {% - \expandafter\XINT_float_sp_f - \romannumeral0\XINT_rord_main {}#2% - \xint_relax - \xint_bye\xint_bye\xint_bye\xint_bye - \xint_bye\xint_bye\xint_bye\xint_bye - \xint_relax ;#1.% + \expandafter#4\romannumeral0\XINT_dsrr#2% + \xint_bye\xint_Bye3456789\xint_bye/\xint_c_x\relax e#1% }% -\def\XINT_float_sp_f #1% -{% - \ifnum #1<\xint_c_v - \expandafter\XINT_float_sp_ga\else\expandafter\XINT_float_sp_h\fi -}% -\def\XINT_float_sp_ga #1;#2.#3% -{% - \expandafter\XINT_float_sp_Wa - \romannumeral0\XINT_rord_main {}#1% - \xint_relax - \xint_bye\xint_bye\xint_bye\xint_bye - \xint_bye\xint_bye\xint_bye\xint_bye - \xint_relax e#2% -}% -\def\XINT_float_sp_h #1;#2.#3% -{% - \expandafter#3% - \romannumeral0\XINT_addm_A 0{}1000\W\X\Y\Z #1000\W\X\Y\Z e#2% -}% -\def\XINT_float_sp_Wa #1{ #1.}% \def\XINT_float_fork #1% {% \xint_UDsignfork @@ -1877,8 +1748,7 @@ {% \expandafter\XINT_float_MatoN \the\numexpr #1-#2\expandafter.% - \romannumeral0\XINT_split_fromleft_loop #2.{}#3\W\W\W\W\W\W\W\W\Z - {#2}% + \romannumeral0\XINT_split_fromleft#2.#3\xint_bye2345678\xint_bye..{#2}% }% \def\XINT_float_MatoN #1.#2.#3.#4#5#6#7% {% @@ -1902,7 +1772,7 @@ {% \expandafter\XINT_float_NaP \the\numexpr #2-#1+#3\expandafter.% - \romannumeral0\XINT_split_fromleft_loop #3.{}#4\W\W\W\W\W\W\W\W\Z {#3}% + \romannumeral0\XINT_split_fromleft#3.#4\xint_bye2345678\xint_bye..{#3}% }% \def\XINT_float_NaP #1.#2.#3.#4{\XINT_float_P #4.#1.#4.{#2}}% \def\XINT_float_P #1.#2.#3.#4#5#6#7#8% @@ -1912,7 +1782,7 @@ \def\XINT_float_Q #1.#2#3% {% \expandafter\XINT_float_Sa - \romannumeral0\xintiiquo{\XINT_dsx_addzerosnofuss {#1}{#2}}{#3}\Z {#1}% + \romannumeral0\xintiiquo{\XINT_dsx_addzeros {#1}#2;}{#3}\Z {#1}% }% \def\XINT_float_Sa #1% {% @@ -1922,45 +1792,40 @@ \def\XINT_float_Sb #1#2\Z #3#4% {% \expandafter\XINT_float_T - \the\numexpr #4+\xint_c_i\expandafter.% - \romannumeral`&&@\XINT_lenrord_loop 0.{}#2\Z\W\W\W\W\W\W\W\Z #1{#3}{#4}% + \the\numexpr\xint_c_ix\XINT_length_loop + #2\xint_relax\xint_relax\xint_relax\xint_relax + \xint_relax\xint_relax\xint_relax\xint_relax\xint_relax + \xint_c_i\xint_c_ii\xint_c_iii\xint_c_iv + \xint_c_v\xint_c_vi\xint_c_vii\xint_c_viii\xint_c_ix\xint_bye-#4.% + {#2}#1{#3}{#4}% }% -\def\XINT_float_T #1.#2.#3% +\def\XINT_float_T #1.% {% - \ifnum #2>#1 \xint_dothis{\XINT_float_U\XINT_float_Xb}\fi - \xint_orthat{\XINT_float_U\XINT_float_Xa #3}% + \if2#1\expandafter\XINT_float_Ub\else\expandafter\XINT_float_Ua\fi }% -\def\XINT_float_U #1#2% +\def\XINT_float_Ua #1#2% {% - \ifnum #2<\xint_c_v - \expandafter\XINT_float_Va - \else - \expandafter\XINT_float_Vb - \fi #1% -}% -\def\XINT_float_Va #1#2\Z #3% -{% - \expandafter#1% - \romannumeral0\expandafter\XINT_float_Wa - \romannumeral0\XINT_rord_main {}#2% - \xint_relax - \xint_bye\xint_bye\xint_bye\xint_bye - \xint_bye\xint_bye\xint_bye\xint_bye - \xint_relax \Z + \expandafter\XINT_float_Xa + \romannumeral0\expandafter#2% + \romannumeral0\XINT_dsrr + #1\xint_bye\xint_Bye3456789\xint_bye/\xint_c_x\relax;% }% -\def\XINT_float_Vb #1#2\Z #3% +\def\XINT_float_Ub #1#2% {% - \expandafter #1% - \romannumeral0\expandafter #3% - \romannumeral0\XINT_addm_A 0{}1000\W\X\Y\Z #2000\W\X\Y\Z \Z + \expandafter\XINT_float_Xb + \romannumeral0\expandafter#2% + \romannumeral0\expandafter\XINT_dsrr + \romannumeral0\XINT_dsr + #1\xint_bye\xint_Bye3456789\xint_bye+\xint_c_v)/\xint_c_x-\xint_c_i\relax + \xint_bye\xint_Bye3456789\xint_bye/\xint_c_x\relax;% }% \def\XINT_float_Wa #1{ #1.}% \def\XINT_float_Wb #1#2{\if #11\xint_dothis{ 10.}\fi\xint_orthat{ #1.#2}}% -\def\XINT_float_Xa #1\Z #2#3#4% +\def\XINT_float_Xa #1;#2#3#4% {% \expandafter\XINT_float_Y\the\numexpr #3+#4-#2.{#1}% }% -\def\XINT_float_Xb #1\Z #2#3#4% +\def\XINT_float_Xb #1;#2#3#4% {% \expandafter\XINT_float_Y\the\numexpr #3+#4+\xint_c_i-#2.{#1}% }% @@ -1972,11 +1837,11 @@ {\if #1!\xint_dothis\XINT_infloat_clean_a\fi\xint_orthat{ }#1}% \def\XINT_infloat_clean_a !#1.#2[#3]% {% - \expandafter\XINT_infloat_sp_done + \expandafter\XINT_infloat_done \the\numexpr #3-#1\expandafter.% - \romannumeral0\XINT_dsx_addzerosnofuss {#1}{#2};% + \romannumeral0\XINT_dsx_addzeros {#1}#2;;% }% -\def\XINT_infloat_sp_done #1.#2;{ #2[#1]}% +\def\XINT_infloat_done #1.#2;{ #2[#1]}% \def\XINTinFloatS {\romannumeral0\XINTinfloatS}% \def\XINTinfloatS {\expandafter\XINT_infloatS_clean\romannumeral0\XINT_infloat}% @@ -1990,7 +1855,7 @@ }% \def\XINT_infloat_a #1.#2#3#4% {% - \if\romannumeral0\XINT_isone#4XY1\expandafter\XINT_infloat_sp + \if1\XINT_iSone#4XY\expandafter\XINT_infloat_sp \else\expandafter\XINT_float_fork\fi #3.{#1}{#2}{#4}% }% \def\XINT_infloat_sp #1% @@ -2024,103 +1889,62 @@ \def\XINT_infloat_sp_c #1.#2% {% \if #29\xint_dothis {\XINT_infloat_sp_d\XINT_infloat_Wb }\fi - \xint_orthat {\XINT_infloat_sp_d\xint_c_ }#1.#2% + \xint_orthat {\XINT_infloat_sp_d .}#1.#2% }% \def\XINT_infloat_sp_d #1#2.#3.#4.%#5.% {% \expandafter\XINT_infloat_sp_e - \romannumeral0\expandafter\XINT_split_fromleft_loop - \the\numexpr #4+\xint_c_i.{}#3\W\W\W\W\W\W\W\W\Z #1#2.% + \romannumeral0\XINT_split_fromleft + (\xint_c_i+#4).#3\xint_bye2345678\xint_bye..#1#2.% }% -\def\XINT_infloat_sp_e #1.#2.% +\def\XINT_infloat_sp_e #1.#2.#3#4.#5.% {% - \expandafter\XINT_infloat_sp_f - \romannumeral0\XINT_rord_main {}#1% - \xint_relax - \xint_bye\xint_bye\xint_bye\xint_bye - \xint_bye\xint_bye\xint_bye\xint_bye - \xint_relax ;% -}% -\def\XINT_infloat_sp_f #1% -{% - \ifnum #1<\xint_c_v - \expandafter\XINT_infloat_sp_ga\else\expandafter\XINT_infloat_sp_h\fi -}% -\def\XINT_infloat_sp_ga #1;#2#3.#4.% -{% - \expandafter\XINT_infloat_sp_done\the\numexpr #3+#4\expandafter.% - \romannumeral0\XINT_rord_main {}#1% - \xint_relax - \xint_bye\xint_bye\xint_bye\xint_bye - \xint_bye\xint_bye\xint_bye\xint_bye - \xint_relax ;% -}% -\def\XINT_infloat_sp_h #1;#2% -{% - \expandafter\XINT_infloat_sp_i - \romannumeral0\expandafter#2% - \romannumeral0\XINT_addm_A 0{}1000\W\X\Y\Z #1000\W\X\Y\Z;% -}% -\def\XINT_infloat_sp_i #1#2;#3.#4.% -{% - \expandafter\XINT_infloat_sp_done\the\numexpr #1+#3+#4.#2;% + \expandafter\XINT_infloat_done + \the\numexpr#4+#5\expandafter#3\romannumeral0\XINT_dsrr + #1\xint_bye\xint_Bye3456789\xint_bye/\xint_c_x\relax;% }% \def\XINT_infloat_Q #1.#2#3% {% \expandafter\XINT_infloat_Sa - \romannumeral0\xintiiquo{\XINT_dsx_addzerosnofuss {#1}{#2}}{#3}\Z {#1}% + \romannumeral0\xintiiquo{\XINT_dsx_addzeros {#1}#2;}{#3}\Z {#1}% }% \def\XINT_infloat_Sa #1% {% \if #19\xint_dothis {\XINT_infloat_Sb\XINT_infloat_Wb }\fi - \xint_orthat {\XINT_infloat_Sb\xint_c_ }#1% + \xint_orthat {\XINT_infloat_Sb .}#1% }% \def\XINT_infloat_Sb #1#2\Z #3#4% {% \expandafter\XINT_infloat_T - \the\numexpr #4+\xint_c_i\expandafter.% - \romannumeral`&&@\XINT_lenrord_loop 0.{}#2\Z\W\W\W\W\W\W\W\Z #1{#3}% + \the\numexpr\xint_c_ix\XINT_length_loop + #2\xint_relax\xint_relax\xint_relax\xint_relax + \xint_relax\xint_relax\xint_relax\xint_relax\xint_relax + \xint_c_i\xint_c_ii\xint_c_iii\xint_c_iv + \xint_c_v\xint_c_vi\xint_c_vii\xint_c_viii\xint_c_ix\xint_bye-#4.% + {#2}#1{#3}% }% -\def\XINT_infloat_T #1.#2.#3% +\def\XINT_infloat_T #1.% {% - \ifnum #2>#1 \xint_dothis{\XINT_infloat_U\XINT_infloat_Xb}\fi - \xint_orthat{\XINT_infloat_U\XINT_infloat_Xa #3}% -}% -\def\XINT_infloat_U #1#2% -{% - \ifnum #2<\xint_c_v - \expandafter\XINT_infloat_Va - \else - \expandafter\XINT_infloat_Vb - \fi #1% + \if2#1\expandafter\XINT_infloat_Ub\else\expandafter\XINT_infloat_Ua\fi }% -\def\XINT_infloat_Va #1#2\Z #3% +\def\XINT_infloat_Ua #1#2#3#4% {% - \expandafter#1% - \romannumeral0\expandafter\xint_c_ - \romannumeral0\XINT_rord_main {}#2% - \xint_relax - \xint_bye\xint_bye\xint_bye\xint_bye - \xint_bye\xint_bye\xint_bye\xint_bye - \xint_relax \Z + \expandafter\XINT_infloat_done + \the\numexpr\xint_c_i+#4-#3\romannumeral0\expandafter#2% + \romannumeral0\XINT_dsrr + #1\xint_bye\xint_Bye3456789\xint_bye/\xint_c_x\relax;% }% -\def\XINT_infloat_Vb #1#2\Z #3% +\def\XINT_infloat_Ub #1#2#3#4% {% - \expandafter #1% - \romannumeral0\expandafter #3% - \romannumeral0\XINT_addm_A 0{}1000\W\X\Y\Z #2000\W\X\Y\Z \Z + \expandafter\XINT_infloat_done + \the\numexpr\xint_c_ii+#4-#3\romannumeral0\expandafter#2% + \romannumeral0\expandafter\XINT_dsrr + \romannumeral0\XINT_dsr + #1\xint_bye\xint_Bye3456789\xint_bye+\xint_c_v)/\xint_c_x-\xint_c_i\relax + \xint_bye\xint_Bye3456789\xint_bye/\xint_c_x\relax;% }% \def\XINT_infloat_Wb #1#2% - {\if #11\xint_dothis{\xint_c_i1}\fi\xint_orthat{\xint_c_#1#2}}% -\def\XINT_infloat_Xa #1#2\Z #3#4% -{% - \expandafter\XINT_infloat_Y\the\numexpr #1+\xint_c_i+#4-#3.{#2}% -}% -\def\XINT_infloat_Xb #1#2\Z #3#4% -{% - \expandafter\XINT_infloat_Y\the\numexpr #1+\xint_c_ii+#4-#3.{#2}% -}% -\def\XINT_infloat_Y #1.#2{ #2[#1]}% + {\if #11\xint_dothis{+\xint_c_i.1}\fi\xint_orthat{.#1#2}}% \def\xintPFloat {\romannumeral0\xintpfloat }% \def\xintpfloat #1{\XINT_pfloat_chkopt #1\xint_relax }% \def\XINT_pfloat_chkopt #1% @@ -2370,7 +2194,7 @@ \def\XINT_flpow_aa #1[#2]#3% {% \expandafter\XINT_flpow_ab\the\numexpr #2-#3\expandafter.% - \romannumeral0\XINT_dsx_addzerosnofuss {#3}{}.#1.% + \romannumeral\XINT_rep #3\endcsname0.#1.% }% \def\XINT_flpow_ab #1.#2.#3.{\XINT_flpow_a #3#2[#1]}% \def\XINT_flpow_a #1% @@ -2393,8 +2217,8 @@ \def\XINT_flpow_truncate #1.#2.#3.% {% \expandafter\XINT_flpow_truncate_a - \romannumeral0\XINT_split_fromleft_loop #3.{}#2\W\W\W\W\W\W\W\W\Z - #1.#3.% + \romannumeral0\XINT_split_fromleft + #3.#2\xint_bye2345678\xint_bye..#1.#3.% }% \def\XINT_flpow_truncate_a #1.#2.#3.{#3+\xintLength{#2}.#1.}% \def\XINT_flpow_loopI #1.% @@ -2552,7 +2376,7 @@ \def\XINT_flpower_aa #1[#2]#3% {% \expandafter\XINT_flpower_ab\the\numexpr #2-#3\expandafter.% - \romannumeral0\XINT_dsx_addzerosnofuss {#3}{}.#1.% + \romannumeral\XINT_rep #3\endcsname0.#1.% }% \def\XINT_flpower_ab #1.#2.#3.{\XINT_flpower_a #3#2[#1]}% \def\XINT_flpower_a #1% @@ -2572,7 +2396,9 @@ \if1\XINT_isOne {#1}\xint_dothis\XINT_flpower_ItoIII\fi \if1\xintiiOdd {#1}\xint_dothis{\expandafter\XINT_flpower_loopI_odd}\fi \xint_orthat{\expandafter\XINT_flpower_loopI_even}% - \romannumeral0\xinthalf{#1}.% + \romannumeral0\XINT_half + #1\xint_bye\xint_Bye345678\xint_bye + *\xint_c_v+\xint_c_v)/\xint_c_x-\xint_c_i\relax.% }% \def\XINT_flpower_ItoIII #1.#2.#3.#4.#5% {% @@ -2598,7 +2424,8 @@ \if1\XINT_isOne{#1}\xint_dothis\XINT_flpower_IItoIII\fi \if1\xintiiOdd{#1}\xint_dothis{\expandafter\XINT_flpower_loopII_odd}\fi \xint_orthat{\expandafter\XINT_flpower_loopII_even}% - \romannumeral0\xinthalf{#1}.% + \romannumeral0\XINT_half#1\xint_bye\xint_Bye345678\xint_bye + *\xint_c_v+\xint_c_v)/\xint_c_x-\xint_c_i\relax.% }% \def\XINT_flpower_loopII_even #1.#2.#3.#4.% {% @@ -3125,13 +2952,14 @@ {% \expandafter\XINT_flsqrt_c \romannumeral0\xintiisub - {\XINT_dsx_addzerosnofuss {#1}{#2}}% - {\xintiiDivRound{\XINT_dsx_addzerosnofuss {#1}{#3}}{\XINT_dbl_pos#2\Z}}.% + {\XINT_dsx_addzeros {#1}#2;}% + {\xintiiDivRound{\XINT_dsx_addzeros {#1}#3;}% + {\XINT_dbl#2\xint_bye2345678\xint_bye*\xint_c_ii\relax}}.% }% \def\XINT_flsqrt_c #1.#2.% {% \expandafter\XINT_flsqrt_d - \romannumeral0\XINT_split_fromleft_loop #2.{}#1\W\W\W\W\W\W\W\W\Z + \romannumeral0\XINT_split_fromleft#2.#1\xint_bye2345678\xint_bye..% }% \def\XINT_flsqrt_d #1.#2#3.% {% |