%% %% This is file `xintfrac.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% xint.dtx (with options: `xintfrac') %% %% IMPORTANT NOTICE: %% %% For the copyright see the source file. %% %% Any modified versions of this file must be renamed %% with new filenames distinct from xintfrac.sty. %% %% For distribution of the original source see the terms %% for copying and modification in the file xint.dtx. %% %% This generated file may be distributed as long as the %% original source files, as listed above, are part of the %% same distribution. (The sources need not necessarily be %% in the same archive or directory.) %% --------------------------------------------------------------- %% The xint bundle 1.4b 2020/02/25 %% Copyright (C) 2013-2020 by Jean-Francois Burnol %% xintfrac: Expandable operations on fractions %% --------------------------------------------------------------- \begingroup\catcode61\catcode48\catcode32=10\relax% \catcode13=5 % ^^M \endlinechar=13 % \catcode123=1 % { \catcode125=2 % } \catcode64=11 % @ \catcode35=6 % # \catcode44=12 % , \catcode45=12 % - \catcode46=12 % . \catcode58=12 % : \let\z\endgroup \expandafter\let\expandafter\x\csname ver@xintfrac.sty\endcsname \expandafter\let\expandafter\w\csname ver@xint.sty\endcsname \expandafter \ifx\csname PackageInfo\endcsname\relax \def\y#1#2{\immediate\write-1{Package #1 Info: #2.}}% \else \def\y#1#2{\PackageInfo{#1}{#2}}% \fi \expandafter \ifx\csname numexpr\endcsname\relax \y{xintfrac}{\numexpr not available, aborting input}% \aftergroup\endinput \else \ifx\x\relax % plain-TeX, first loading of xintfrac.sty \ifx\w\relax % but xint.sty not yet loaded. \def\z{\endgroup\input xint.sty\relax}% \fi \else \def\empty {}% \ifx\x\empty % LaTeX, first loading, % variable is initialized, but \ProvidesPackage not yet seen \ifx\w\relax % xint.sty not yet loaded. \def\z{\endgroup\RequirePackage{xint}}% \fi \else \aftergroup\endinput % xintfrac already loaded. \fi \fi \fi \z% \XINTsetupcatcodes% defined in xintkernel.sty \XINT_providespackage \ProvidesPackage{xintfrac}% [2020/02/25 v1.4b Expandable operations on fractions (JFB)]% \def\XINT_cntSgnFork #1% {% \ifcase #1\expandafter\xint_secondofthree \or\expandafter\xint_thirdofthree \else\expandafter\xint_firstofthree \fi }% \def\xintLen {\romannumeral0\xintlen }% \def\xintlen #1% {% \expandafter\XINT_flen\romannumeral0\XINT_infrac {#1}% }% \def\XINT_flen#1{\def\XINT_flen ##1##2##3% {% \expandafter#1% \the\numexpr \XINT_abs##1+% \XINT_len_fork ##2##3\xint:\xint:\xint:\xint:\xint:\xint:\xint:\xint:\xint: \xint_c_viii\xint_c_vii\xint_c_vi\xint_c_v \xint_c_iv\xint_c_iii\xint_c_ii\xint_c_i\xint_c_\xint_bye-\xint_c_i \relax }}\XINT_flen{ }% \def\XINT_outfrac #1#2#3% {% \ifcase\XINT_cntSgn #3\xint: \expandafter \XINT_outfrac_divisionbyzero \or \expandafter \XINT_outfrac_P \else \expandafter \XINT_outfrac_N \fi {#2}{#3}[#1]% }% \def\XINT_outfrac_divisionbyzero #1#2% {% \XINT_signalcondition{DivisionByZero}{Division of #1 by #2}{}{0/1[0]}% }% \def\XINT_outfrac_P#1{% \def\XINT_outfrac_P ##1##2% {\if0\XINT_Sgn ##1\xint:\expandafter\XINT_outfrac_Zero\fi#1##1/##2}% }\XINT_outfrac_P{ }% \def\XINT_outfrac_Zero #1[#2]{ 0/1[0]}% \def\XINT_outfrac_N #1#2% {% \expandafter\XINT_outfrac_N_a\expandafter {\romannumeral0\XINT_opp #2}{\romannumeral0\XINT_opp #1}% }% \def\XINT_outfrac_N_a #1#2% {% \expandafter\XINT_outfrac_P\expandafter {#2}{#1}% }% \def\XINT_inFrac {\romannumeral0\XINT_infrac }% \def\XINT_infrac #1% {% \expandafter\XINT_infrac_fork\romannumeral`&&@#1\xint:/\XINT_W[\XINT_W\XINT_T }% \def\XINT_infrac_fork #1[#2% {% \xint_UDXINTWfork #2\XINT_frac_gen % input has no brackets [N] \XINT_W\XINT_infrac_res_a % there is some [N], must be strict A[N] or A/B[N] input \krof #1[#2% }% \def\XINT_infrac_res_a #1% {% \xint_gob_til_zero #1\XINT_infrac_res_zero 0\XINT_infrac_res_b #1% }% \def\XINT_infrac_res_zero 0\XINT_infrac_res_b #1\XINT_T {{0}{0}{1}}% \def\XINT_infrac_res_b #1/#2% {% \xint_UDXINTWfork #2\XINT_infrac_res_ca % it was A[N] input \XINT_W\XINT_infrac_res_cb % it was A/B[N] input \krof #1/#2% }% \def\XINT_infrac_res_ca #1[#2]\xint:/\XINT_W[\XINT_W\XINT_T {\expandafter{\the\numexpr #2}{#1}{1}}% \def\XINT_infrac_res_cb #1/#2[% {\expandafter\XINT_infrac_res_cc\romannumeral`&&@#2~#1[}% \def\XINT_infrac_res_cc #1~#2[#3]\xint:/\XINT_W[\XINT_W\XINT_T {\expandafter{\the\numexpr #3}{#2}{#1}}% \def\XINT_frac_gen #1/#2% {% \xint_UDXINTWfork #2\XINT_frac_gen_A % there was no / \XINT_W\XINT_frac_gen_B % there was a / \krof #1/#2% }% \def\XINT_frac_gen_A #1\xint:/\XINT_W [\XINT_W {\XINT_frac_gen_C 0~1!#1ee.\XINT_W }% \def\XINT_frac_gen_B #1/#2\xint:/\XINT_W[%\XINT_W {% \expandafter\XINT_frac_gen_Ba \romannumeral`&&@#2ee.\XINT_W\XINT_Z #1ee.%\XINT_W }% \def\XINT_frac_gen_Ba #1.#2% {% \xint_UDXINTWfork #2\XINT_frac_gen_Bb \XINT_W\XINT_frac_gen_Bc \krof #1.#2% }% \def\XINT_frac_gen_Bb #1e#2e#3\XINT_Z {\expandafter\XINT_frac_gen_C\the\numexpr #2+\xint_c_~#1!}% \def\XINT_frac_gen_Bc #1.#2e% {% \expandafter\XINT_frac_gen_Bd\romannumeral`&&@#2.#1e% }% \def\XINT_frac_gen_Bd #1.#2e#3e#4\XINT_Z {% \expandafter\XINT_frac_gen_C\the\numexpr #3-% \numexpr\XINT_length_loop #1\xint:\xint:\xint:\xint:\xint:\xint:\xint:\xint:\xint: \xint_c_viii\xint_c_vii\xint_c_vi\xint_c_v \xint_c_iv\xint_c_iii\xint_c_ii\xint_c_i\xint_c_\xint_bye ~#2#1!% }% \def\XINT_frac_gen_C #1!#2.#3% {% \xint_UDXINTWfork #3\XINT_frac_gen_Ca \XINT_W\XINT_frac_gen_Cb \krof #1!#2.#3% }% \def\XINT_frac_gen_Ca #1~#2!#3e#4e#5\XINT_T {% \expandafter\XINT_frac_gen_F\the\numexpr #4-#1\expandafter ~\romannumeral0\expandafter\XINT_num_cleanup\the\numexpr\XINT_num_loop #2\xint:\xint:\xint:\xint:\xint:\xint:\xint:\xint:\xint:\Z~#3~% }% \def\XINT_frac_gen_Cb #1.#2e% {% \expandafter\XINT_frac_gen_Cc\romannumeral`&&@#2.#1e% }% \def\XINT_frac_gen_Cc #1.#2~#3!#4e#5e#6\XINT_T {% \expandafter\XINT_frac_gen_F\the\numexpr #5-#2-% \numexpr\XINT_length_loop #1\xint:\xint:\xint:\xint:\xint:\xint:\xint:\xint:\xint: \xint_c_viii\xint_c_vii\xint_c_vi\xint_c_v \xint_c_iv\xint_c_iii\xint_c_ii\xint_c_i\xint_c_\xint_bye \relax\expandafter~% \romannumeral0\expandafter\XINT_num_cleanup\the\numexpr\XINT_num_loop #3\xint:\xint:\xint:\xint:\xint:\xint:\xint:\xint:\xint:\Z ~#4#1~% }% \def\XINT_frac_gen_F #1~#2% {% \xint_UDzerominusfork #2-\XINT_frac_gen_Gdivbyzero 0#2{\XINT_frac_gen_G -{}}% 0-{\XINT_frac_gen_G {}#2}% \krof #1~% }% \def\XINT_frac_gen_Gdivbyzero #1~~#2~% {% \expandafter\XINT_frac_gen_Gdivbyzero_a \romannumeral0\expandafter\XINT_num_cleanup\the\numexpr\XINT_num_loop #2\xint:\xint:\xint:\xint:\xint:\xint:\xint:\xint:\xint:\Z~#1~% }% \def\XINT_frac_gen_Gdivbyzero_a #1~#2~% {% \XINT_signalcondition{DivisionByZero}{Division of #1 by zero}{}{{#2}{#1}{0}}% }% \def\XINT_frac_gen_G #1#2#3~#4~#5~% {% \expandafter\XINT_frac_gen_Ga \romannumeral0\expandafter\XINT_num_cleanup\the\numexpr\XINT_num_loop #1#5\xint:\xint:\xint:\xint:\xint:\xint:\xint:\xint:\xint:\Z~#3~{#2#4}% }% \def\XINT_frac_gen_Ga #1#2~#3~% {% \xint_gob_til_zero #1\XINT_frac_gen_zero 0% {#3}{#1#2}% }% \def\XINT_frac_gen_zero 0#1#2#3{{0}{0}{1}}% \def\XINT_factortens #1{\expandafter\XINT_factortens_z \romannumeral0\XINT_factortens_a#1% \XINT_factortens_b123456789.}% \def\XINT_factortens_z.\XINT_factortens_y{ }% \def\XINT_factortens_a #1#2#3#4#5#6#7#8#9% {\expandafter\XINT_factortens_x \the\numexpr 1#1#2#3#4#5#6#7#8#9\XINT_factortens_a}% \def\XINT_factortens_b#1\XINT_factortens_a#2#3.% {.\XINT_factortens_cc 000000000-#2.}% \def\XINT_factortens_x1#1.#2{#2#1}% \def\XINT_factortens_y{.\XINT_factortens_y}% \def\XINT_factortens_cc #1#2#3#4#5#6#7#8#9% {\if#90\xint_dothis {\expandafter\XINT_factortens_d\the\numexpr #8#7#6#5#4#3#2#1\relax \xint_c_i 2345678.}\fi \xint_orthat{\XINT_factortens_yy{#1#2#3#4#5#6#7#8#9}}}% \def\XINT_factortens_yy #1#2.{.\XINT_factortens_y#1.0.}% \def\XINT_factortens_c #1#2#3#4#5#6#7#8#9% {\if#90\xint_dothis {\expandafter\XINT_factortens_d\the\numexpr #8#7#6#5#4#3#2#1\relax \xint_c_i 2345678.}\fi \xint_orthat{.\XINT_factortens_y #1#2#3#4#5#6#7#8#9.}}% \def\XINT_factortens_d #1#2#3#4#5#6#7#8#9% {\if#10\expandafter\XINT_factortens_e\fi \XINT_factortens_f #9#9#8#7#6#5#4#3#2#1.}% \def\XINT_factortens_f #1#2\xint_c_i#3.#4.#5.% {\expandafter\XINT_factortens_g\the\numexpr#1+#5.#3.}% \def\XINT_factortens_g #1.#2.{.\XINT_factortens_y#2.#1.}% \def\XINT_factortens_e #1..#2.% {\expandafter.\expandafter\XINT_factortens_c \the\numexpr\xint_c_ix+#2.}% \def\xintEq {\romannumeral0\xinteq }% \def\xinteq #1#2{\xintifeq{#1}{#2}{1}{0}}% \def\xintNotEq#1#2{\romannumeral0\xintifeq {#1}{#2}{0}{1}}% \def\xintGt {\romannumeral0\xintgt }% \def\xintgt #1#2{\xintifgt{#1}{#2}{1}{0}}% \def\xintLt {\romannumeral0\xintlt }% \def\xintlt #1#2{\xintiflt{#1}{#2}{1}{0}}% \def\xintGtorEq #1#2{\romannumeral0\xintiflt {#1}{#2}{0}{1}}% \def\xintLtorEq #1#2{\romannumeral0\xintifgt {#1}{#2}{0}{1}}% \def\xintIsZero {\romannumeral0\xintiszero }% \def\xintiszero #1{\if0\xintSgn{#1}\xint_afterfi{ 1}\else\xint_afterfi{ 0}\fi}% \def\xintIsNotZero{\romannumeral0\xintisnotzero }% \def\xintisnotzero #1{\if0\xintSgn{#1}\xint_afterfi{ 0}\else\xint_afterfi{ 1}\fi}% \def\xintOdd {\romannumeral0\xintodd }% \def\xintodd #1% {% \ifodd\xintLDg{\xintNum{#1}} %<- intentional space \xint_afterfi{ 1}% \else \xint_afterfi{ 0}% \fi }% \def\xintEven {\romannumeral0\xinteven }% \def\xinteven #1% {% \ifodd\xintLDg{\xintNum{#1}} %<- intentional space \xint_afterfi{ 0}% \else \xint_afterfi{ 1}% \fi }% \def\xintifSgn{\romannumeral0\xintifsgn }% \def\xintifsgn #1% {% \ifcase \xintSgn{#1} \expandafter\xint_stop_atsecondofthree \or\expandafter\xint_stop_atthirdofthree \else\expandafter\xint_stop_atfirstofthree \fi }% \def\xintifCmp{\romannumeral0\xintifcmp }% \def\xintifcmp #1#2% {% \ifcase\xintCmp {#1}{#2} \expandafter\xint_stop_atsecondofthree \or\expandafter\xint_stop_atthirdofthree \else\expandafter\xint_stop_atfirstofthree \fi }% \def\xintifEq {\romannumeral0\xintifeq }% \def\xintifeq #1#2% {% \if0\xintCmp{#1}{#2}% \expandafter\xint_stop_atfirstoftwo \else\expandafter\xint_stop_atsecondoftwo \fi }% \def\xintifGt {\romannumeral0\xintifgt }% \def\xintifgt #1#2% {% \if1\xintCmp{#1}{#2}% \expandafter\xint_stop_atfirstoftwo \else\expandafter\xint_stop_atsecondoftwo \fi }% \def\xintifLt {\romannumeral0\xintiflt }% \def\xintiflt #1#2% {% \ifnum\xintCmp{#1}{#2}<\xint_c_ \expandafter\xint_stop_atfirstoftwo \else \expandafter\xint_stop_atsecondoftwo \fi }% \def\xintifZero {\romannumeral0\xintifzero }% \def\xintifzero #1% {% \if0\xintSgn{#1}% \expandafter\xint_stop_atfirstoftwo \else \expandafter\xint_stop_atsecondoftwo \fi }% \def\xintifNotZero{\romannumeral0\xintifnotzero }% \def\xintifnotzero #1% {% \if0\xintSgn{#1}% \expandafter\xint_stop_atsecondoftwo \else \expandafter\xint_stop_atfirstoftwo \fi }% \def\xintifOne {\romannumeral0\xintifone }% \def\xintifone #1% {% \if1\xintIsOne{#1}% \expandafter\xint_stop_atfirstoftwo \else \expandafter\xint_stop_atsecondoftwo \fi }% \def\xintifOdd {\romannumeral0\xintifodd }% \def\xintifodd #1% {% \if\xintOdd{#1}1% \expandafter\xint_stop_atfirstoftwo \else \expandafter\xint_stop_atsecondoftwo \fi }% \def\xintRaw {\romannumeral0\xintraw }% \def\xintraw {% \expandafter\XINT_raw\romannumeral0\XINT_infrac }% \def\XINT_raw #1#2#3{ #2/#3[#1]}% \def\xintiLogTen {\the\numexpr\xintilogten}% \def\xintilogten {% \expandafter\XINT_ilogten\romannumeral0\xintraw }% \def\XINT_ilogten #1% {% \xint_UDzerominusfork 0#1\XINT_ilogten_p #1-\XINT_ilogten_z 0-{\XINT_ilogten_p#1}% \krof }% \def\XINT_ilogten_z #1[#2]{-"7FFF8000\relax}% \def\XINT_ilogten_p #1/#2[#3]% {% #3+\expandafter\XINT_ilogten_a \the\numexpr\xintLength{#1}\expandafter.\the\numexpr\xintLength{#2}.#1.#2.% }% \def\XINT_ilogten_a #1.#2.% {% #1-#2\ifnum#1>#2 \expandafter\XINT_ilogten_aa \else \expandafter\XINT_ilogten_ab \fi #1.#2.% }% \def\XINT_ilogten_aa #1.#2.#3.#4.% {% \xintiiifLt{#3}{\XINT_dsx_addzerosnofuss{#1-#2}#4;}{-1}{}\relax }% \def\XINT_ilogten_ab #1.#2.#3.#4.% {% \xintiiifLt{\XINT_dsx_addzerosnofuss{#2-#1}#3;}{#4}{-1}{}\relax }% \def\xintPRaw {\romannumeral0\xintpraw }% \def\xintpraw {% \expandafter\XINT_praw\romannumeral0\XINT_infrac }% \def\XINT_praw #1% {% \ifnum #1=\xint_c_ \expandafter\XINT_praw_a\fi \XINT_praw_A {#1}% }% \def\XINT_praw_A #1#2#3% {% \if\XINT_isOne{#3}1\expandafter\xint_firstoftwo \else\expandafter\xint_secondoftwo \fi { #2[#1]}{ #2/#3[#1]}% }% \def\XINT_praw_a\XINT_praw_A #1#2#3% {% \if\XINT_isOne{#3}1\expandafter\xint_firstoftwo \else\expandafter\xint_secondoftwo \fi { #2}{ #2/#3}% }% \def\xintSPRaw {\romannumeral0\xintspraw }% \def\xintspraw #1{\expandafter\XINT_spraw\romannumeral`&&@#1[\W]}% \def\XINT_spraw #1[#2#3]{\xint_gob_til_W #2\XINT_spraw_a\W\XINT_spraw_p #1[#2#3]}% \def\XINT_spraw_a\W\XINT_spraw_p #1[\W]{ #1}% \def\XINT_spraw_p #1[\W]{\xintpraw {#1}}% \edef\xintFracToSci #1% {\unexpanded{\expandafter\XINT_FracToSci\romannumeral`&&@}#1\string e% \unexpanded{\Z/\W[\R]}}% \def\XINT_FracToSci #1/#2#3[#4% {% \xint_gob_til_W #2\XINT_FracToSci_no\W \xint_gob_til_R #4\XINT_FracToSci_yesno\R \XINT_FracToSci_yesyes #1/#2#3[#4% }% \def\XINT_FracToSci_no #1\XINT_FracToSci_yesyes #2[#3% {% \xint_gob_til_R #3\XINT_FracToSci_nono\R \XINT_FracToSci_noyes #2[#3% }% \edef\XINT_tmpa{##1\string e##2}% \def\XINT_tmpb{\def\XINT_FracToSci_nono\R\XINT_FracToSci_noyes}% \expandafter \XINT_tmpb\XINT_tmpa {% #1\xint_gob_til_Z #2\XINT_FracToSci_nonono\Z \XINT_FracToSci_nonoyes #2% }% \edef\XINT_tmpa{##1\string e}% \def\XINT_tmpb{\def\XINT_FracToSci_nonoyes}% \expandafter \XINT_tmpb\XINT_tmpa\Z/\W[\R]{\xintFracToSciE#1}% \def\XINT_FracToSci_nonono\Z\XINT_FracToSci_nonoyes\Z/\W[\R]{}% \edef\XINT_tmpa{##1##2[##3]\string e}% \def\XINT_tmpb{\def\XINT_FracToSci_noyes}% \expandafter \XINT_tmpb\XINT_tmpa\Z/\W[\R]% {% #1\xint_gob_til_zero#1\expandafter\iffalse\xint_gobble_ii0\iftrue #2\ifnum #3=\xint_c_\else\xintFracToSciE#3\fi\fi }% \edef\XINT_tmpa{##1##2/##3\string e}% \def\XINT_tmpb{\def\XINT_FracToSci_yesno\R\XINT_FracToSci_yesyes}% \expandafter \XINT_tmpb\XINT_tmpa\Z/\W[\R]% {% #1\xint_gob_til_zero#1\expandafter\iffalse\xint_gobble_ii0\iftrue #2\if\XINT_isOne{#3}1\else/#3\fi\fi }% \edef\XINT_tmpa{##1##2/##3[##4]\string e}% \def\XINT_tmpb{\def\XINT_FracToSci_yesyes}% \expandafter \XINT_tmpb\XINT_tmpa\Z/\W[\R]% {% #1\xint_gob_til_zero#1\expandafter\iffalse\xint_gobble_ii0\iftrue #2\ifnum #4=\xint_c_\else\xintFracToSciE#4\fi \if\XINT_isOne{#3}1\else/#3\fi\fi }% \def\xintFracToSciE{e}% \def\xintRawWithZeros {\romannumeral0\xintrawwithzeros }% \def\xintrawwithzeros {% \expandafter\XINT_rawz_fork\romannumeral0\XINT_infrac }% \def\XINT_rawz_fork #1% {% \ifnum#1<\xint_c_ \expandafter\XINT_rawz_Ba \else \expandafter\XINT_rawz_A \fi #1.% }% \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\xintDecToString{\romannumeral0\xintdectostring}% \def\xintdectostring#1{\expandafter\XINT_dectostr\romannumeral0\xintraw{#1}}% \def\XINT_dectostr #1/#2[#3]{\xintiiifZero {#1}% \XINT_dectostr_z {\if1\XINT_isOne{#2}\expandafter\XINT_dectostr_a \else\expandafter\XINT_dectostr_b \fi}% #1/#2[#3]% }% \def\XINT_dectostr_z#1[#2]{ 0}% \def\XINT_dectostr_a#1/#2[#3]{% \ifnum#3<\xint_c_\xint_dothis{\xinttrunc{-#3}{#1[#3]}}\fi \xint_orthat{\xintiie{#1}{#3}}% }% \def\XINT_dectostr_b#1/#2[#3]{% just to handle this somehow \ifnum#3<\xint_c_\xint_dothis{\xinttrunc{-#3}{#1[#3]}/#2}\fi \xint_orthat{\xintiie{#1}{#3}/#2}% }% \def\xintFloor {\romannumeral0\xintfloor }% \def\xintfloor #1% devrais-je faire \xintREZ? {\expandafter\XINT_ifloor \romannumeral0\xintrawwithzeros {#1}./1[0]}% \def\xintiFloor {\romannumeral0\xintifloor }% \def\xintifloor #1% {\expandafter\XINT_ifloor \romannumeral0\xintrawwithzeros {#1}.}% \def\XINT_ifloor #1/#2.{\xintiiquo {#1}{#2}}% \def\xintCeil {\romannumeral0\xintceil }% \def\xintceil #1{\xintiiopp {\xintFloor {\xintOpp{#1}}}}% \def\xintiCeil {\romannumeral0\xinticeil }% \def\xinticeil #1{\xintiiopp {\xintiFloor {\xintOpp{#1}}}}% \def\xintNumerator {\romannumeral0\xintnumerator }% \def\xintnumerator {% \expandafter\XINT_numer\romannumeral0\XINT_infrac }% \def\XINT_numer #1% {% \ifcase\XINT_cntSgn #1\xint: \expandafter\XINT_numer_B \or \expandafter\XINT_numer_A \else \expandafter\XINT_numer_B \fi {#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_fork\romannumeral0\XINT_infrac }% \def\XINT_denom_fork #1% {% \ifnum#1<\xint_c_ \expandafter\XINT_denom_B \else \expandafter\XINT_denom_A \fi #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% {% \expandafter\XINT_fracfrac_A\romannumeral0\XINT_infrac {#1}% }% \def\XINT_fracfrac_A #1{\XINT_fracfrac_B #1\Z }% \catcode`^=7 \def\XINT_fracfrac_B #1#2\Z {% \xint_gob_til_zero #1\XINT_fracfrac_C 0\XINT_fracfrac_D {10^{#1#2}}% }% \def\XINT_fracfrac_C 0\XINT_fracfrac_D #1#2#3% {% \if1\XINT_isOne {#3}% \xint_afterfi {\expandafter\xint_stop_atfirstoftwo\xint_gobble_ii }% \fi \space \frac {#2}{#3}% }% \def\XINT_fracfrac_D #1#2#3% {% \if1\XINT_isOne {#3}\XINT_fracfrac_E\fi \space \frac {#2}{#3}#1% }% \def\XINT_fracfrac_E \fi\space\frac #1#2{\fi \space #1\cdot }% \def\xintSignedFrac {\romannumeral0\xintsignedfrac }% \def\xintsignedfrac #1% {% \expandafter\XINT_sgnfrac_a\romannumeral0\XINT_infrac {#1}% }% \def\XINT_sgnfrac_a #1#2% {% \XINT_sgnfrac_b #2\Z {#1}% }% \def\XINT_sgnfrac_b #1% {% \xint_UDsignfork #1\XINT_sgnfrac_N -{\XINT_sgnfrac_P #1}% \krof }% \def\XINT_sgnfrac_P #1\Z #2% {% \XINT_fracfrac_A {#2}{#1}% }% \def\XINT_sgnfrac_N {% \expandafter-\romannumeral0\XINT_sgnfrac_P }% \def\xintFwOver {\romannumeral0\xintfwover }% \def\xintfwover #1% {% \expandafter\XINT_fwover_A\romannumeral0\XINT_infrac {#1}% }% \def\XINT_fwover_A #1{\XINT_fwover_B #1\Z }% \def\XINT_fwover_B #1#2\Z {% \xint_gob_til_zero #1\XINT_fwover_C 0\XINT_fwover_D {10^{#1#2}}% }% \catcode`^=11 \def\XINT_fwover_C #1#2#3#4#5% {% \if0\XINT_isOne {#5}\xint_afterfi { {#4\over #5}}% \else\xint_afterfi { #4}% \fi }% \def\XINT_fwover_D #1#2#3% {% \if0\XINT_isOne {#3}\xint_afterfi { {#2\over #3}}% \else\xint_afterfi { #2\cdot }% \fi #1% }% \def\xintSignedFwOver {\romannumeral0\xintsignedfwover }% \def\xintsignedfwover #1% {% \expandafter\XINT_sgnfwover_a\romannumeral0\XINT_infrac {#1}% }% \def\XINT_sgnfwover_a #1#2% {% \XINT_sgnfwover_b #2\Z {#1}% }% \def\XINT_sgnfwover_b #1% {% \xint_UDsignfork #1\XINT_sgnfwover_N -{\XINT_sgnfwover_P #1}% \krof }% \def\XINT_sgnfwover_P #1\Z #2% {% \XINT_fwover_A {#2}{#1}% }% \def\XINT_sgnfwover_N {% \expandafter-\romannumeral0\XINT_sgnfwover_P }% \def\xintREZ {\romannumeral0\xintrez }% \def\xintrez {% \expandafter\XINT_rez_A\romannumeral0\XINT_infrac }% \def\XINT_rez_A #1#2% {% \XINT_rez_AB #2\Z {#1}% }% \def\XINT_rez_AB #1% {% \xint_UDzerominusfork #1-\XINT_rez_zero 0#1\XINT_rez_neg 0-{\XINT_rez_B #1}% \krof }% \def\XINT_rez_zero #1\Z #2#3{ 0/1[0]}% \def\XINT_rez_neg {\expandafter-\romannumeral0\XINT_rez_B }% \def\XINT_rez_B #1\Z {% \expandafter\XINT_rez_C\romannumeral0\XINT_factortens {#1}% }% \def\XINT_rez_C #1.#2.#3#4% {% \expandafter\XINT_rez_D\romannumeral0\XINT_factortens {#4}#3+#2.#1.% }% \def\XINT_rez_D #1.#2.#3.% {% \expandafter\XINT_rez_E\the\numexpr #3-#2.#1.% }% \def\XINT_rez_E #1.#2.#3.{ #3/#2[#1]}% \def\xintE {\romannumeral0\xinte }% \def\xinte #1% {% \expandafter\XINT_e \romannumeral0\XINT_infrac {#1}% }% \def\XINT_e #1#2#3#4% {% \expandafter\XINT_e_end\the\numexpr #1+#4.{#2}{#3}% }% \def\XINT_e_end #1.#2#3{ #2/#3[#1]}% \def\xintIrr {\romannumeral0\xintirr }% \def\xintPIrr{\romannumeral0\xintpirr }% \def\xintirr #1% {% \expandafter\XINT_irr_start\romannumeral0\xintrawwithzeros {#1}\Z }% \def\xintpirr #1% {% \expandafter\XINT_pirr_start\romannumeral0\xintraw{#1}% }% \def\XINT_irr_start #1#2/#3\Z {% \if0\XINT_isOne {#3}% \xint_afterfi {\xint_UDsignfork #1\XINT_irr_negative -{\XINT_irr_nonneg #1}% \krof}% \else \xint_afterfi{\XINT_irr_denomisone #1}% \fi #2\Z {#3}% }% \def\XINT_pirr_start #1#2/#3[% {% \if0\XINT_isOne {#3}% \xint_afterfi {\xint_UDsignfork #1\XINT_irr_negative -{\XINT_irr_nonneg #1}% \krof}% \else \xint_afterfi{\XINT_irr_denomisone #1}% \fi #2\Z {#3}[% }% \def\XINT_irr_denomisone #1\Z #2{ #1/1}% changed in 1.08 \def\XINT_irr_negative #1\Z #2{\XINT_irr_D #1\Z #2\Z -}% \def\XINT_irr_nonneg #1\Z #2{\XINT_irr_D #1\Z #2\Z \space}% \def\XINT_irr_D #1#2\Z #3#4\Z {% \xint_UDzerosfork #3#1\XINT_irr_indeterminate #30\XINT_irr_divisionbyzero #10\XINT_irr_zero 00\XINT_irr_loop_a \krof {#3#4}{#1#2}{#3#4}{#1#2}% }% \def\XINT_irr_indeterminate #1#2#3#4#5% {% \XINT_signalcondition{DivisionUndefined}{indeterminate: 0/0}{}{0/1}% }% \def\XINT_irr_divisionbyzero #1#2#3#4#5% {% \XINT_signalcondition{DivisionByZero}{vanishing denominator: #5#2/0}{}{0/1}% }% \def\XINT_irr_zero #1#2#3#4#5{ 0/1}% changed in 1.08 \def\XINT_irr_loop_a #1#2% {% \expandafter\XINT_irr_loop_d \romannumeral0\XINT_div_prepare {#1}{#2}{#1}% }% \def\XINT_irr_loop_d #1#2% {% \XINT_irr_loop_e #2\Z }% \def\XINT_irr_loop_e #1#2\Z {% \xint_gob_til_zero #1\XINT_irr_loop_exit0\XINT_irr_loop_a {#1#2}% }% \def\XINT_irr_loop_exit0\XINT_irr_loop_a #1#2#3#4% {% \expandafter\XINT_irr_loop_exitb\expandafter {\romannumeral0\xintiiquo {#3}{#2}}% {\romannumeral0\xintiiquo {#4}{#2}}% }% \def\XINT_irr_loop_exitb #1#2% {% \expandafter\XINT_irr_finish\expandafter {#2}{#1}% }% \def\XINT_irr_finish #1#2#3{#3#1/#2}% changed in 1.08 \def\xintifInt {\romannumeral0\xintifint }% \def\xintifint #1{\expandafter\XINT_ifint\romannumeral0\xintrawwithzeros {#1}.}% \def\XINT_ifint #1/#2.% {% \if 0\xintiiRem {#1}{#2}% \expandafter\xint_stop_atfirstoftwo \else \expandafter\xint_stop_atsecondoftwo \fi }% \def\xintIsInt {\romannumeral0\xintisint }% \def\xintisint #1% {\expandafter\XINT_ifint\romannumeral0\xintrawwithzeros {#1}.10}% \def\xintJrr {\romannumeral0\xintjrr }% \def\xintjrr #1% {% \expandafter\XINT_jrr_start\romannumeral0\xintrawwithzeros {#1}\Z }% \def\XINT_jrr_start #1#2/#3\Z {% \if0\XINT_isOne {#3}\xint_afterfi {\xint_UDsignfork #1\XINT_jrr_negative -{\XINT_jrr_nonneg #1}% \krof}% \else \xint_afterfi{\XINT_jrr_denomisone #1}% \fi #2\Z {#3}% }% \def\XINT_jrr_denomisone #1\Z #2{ #1/1}% changed in 1.08 \def\XINT_jrr_negative #1\Z #2{\XINT_jrr_D #1\Z #2\Z -}% \def\XINT_jrr_nonneg #1\Z #2{\XINT_jrr_D #1\Z #2\Z \space}% \def\XINT_jrr_D #1#2\Z #3#4\Z {% \xint_UDzerosfork #3#1\XINT_jrr_indeterminate #30\XINT_jrr_divisionbyzero #10\XINT_jrr_zero 00\XINT_jrr_loop_a \krof {#3#4}{#1#2}1001% }% \def\XINT_jrr_indeterminate #1#2#3#4#5#6#7% {% \XINT_signalcondition{DivisionUndefined}{indeterminate: 0/0}{}{0/1}% }% \def\XINT_jrr_divisionbyzero #1#2#3#4#5#6#7% {% \XINT_signalcondition{DivisionByZero}{Vanishing denominator: #7#2/0}{}{0/1}% }% \def\XINT_jrr_zero #1#2#3#4#5#6#7{ 0/1}% changed in 1.08 \def\XINT_jrr_loop_a #1#2% {% \expandafter\XINT_jrr_loop_b \romannumeral0\XINT_div_prepare {#1}{#2}{#1}% }% \def\XINT_jrr_loop_b #1#2#3#4#5#6#7% {% \expandafter \XINT_jrr_loop_c \expandafter {\romannumeral0\xintiiadd{\XINT_mul_fork #4\xint:#1\xint:}{#6}}% {\romannumeral0\xintiiadd{\XINT_mul_fork #5\xint:#1\xint:}{#7}}% {#2}{#3}{#4}{#5}% }% \def\XINT_jrr_loop_c #1#2% {% \expandafter \XINT_jrr_loop_d \expandafter{#2}{#1}% }% \def\XINT_jrr_loop_d #1#2#3#4% {% \XINT_jrr_loop_e #3\Z {#4}{#2}{#1}% }% \def\XINT_jrr_loop_e #1#2\Z {% \xint_gob_til_zero #1\XINT_jrr_loop_exit0\XINT_jrr_loop_a {#1#2}% }% \def\XINT_jrr_loop_exit0\XINT_jrr_loop_a #1#2#3#4#5#6% {% \XINT_irr_finish {#3}{#4}% }% \def\xintTFrac {\romannumeral0\xinttfrac }% \def\xinttfrac #1{\expandafter\XINT_tfrac_fork\romannumeral0\xintrawwithzeros {#1}\Z }% \def\XINT_tfrac_fork #1% {% \xint_UDzerominusfork #1-\XINT_tfrac_zero 0#1{\xintiiopp\XINT_tfrac_P }% 0-{\XINT_tfrac_P #1}% \krof }% \def\XINT_tfrac_zero #1\Z { 0/1[0]}% \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{\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_a\romannumeral0\XINT_infrac{#3}#1.#2% }% \def\XINT_trunc_a #1#2#3#4.#5% {% \if0\XINT_Sgn#2\xint:\xint_dothis\XINT_trunc_zero\fi \if1\XINT_is_One#3XY\xint_dothis\XINT_trunc_sp_b\fi \xint_orthat\XINT_trunc_b #1+#4.{#2}{#3}#5#4.% }% \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% {% \xint_UDsignfork #1\XINT_trunc_C -\XINT_trunc_D \krof #1% }% \def\XINT_trunc_sp_B #1% {% \xint_UDsignfork #1\XINT_trunc_sp_C -\XINT_trunc_sp_D \krof #1% }% \def\XINT_trunc_C -#1.#2#3% {% \expandafter\XINT_trunc_CE \romannumeral0\XINT_dsx_addzeros{#1}#3;.{#2}% }% \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_UDsignfork #1{\XINT_trunc_sp_Cb -}% -{\XINT_trunc_sp_Cb \space#1}% \krof }% \def\XINT_trunc_sp_Cb #1#2.#3.% {% \expandafter\XINT_trunc_sp_Cc \romannumeral0\expandafter\XINT_split_fromright_a \the\numexpr#3-\numexpr\XINT_length_loop #2\xint:\xint:\xint:\xint:\xint:\xint:\xint:\xint:\xint: \xint_c_viii\xint_c_vii\xint_c_vi\xint_c_v \xint_c_iv\xint_c_iii\xint_c_ii\xint_c_i\xint_c_\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_sp_Cd #1.#2.#3% {% \XINT_trunc_sp_F #3#1.% }% \def\XINT_trunc_D #1.#2% {% \expandafter\XINT_trunc_E \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_F -}% -{\XINT_trunc_F \space#1}% \krof }% \def\XINT_trunc_sp_E #1% {% \xint_UDsignfork #1{\XINT_trunc_sp_F -}% -{\XINT_trunc_sp_F\space#1}% \krof }% \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#4.% {% \xint_gob_til_minus#3\XINT_trunc_Hc-% \expandafter\XINT_trunc_H \the\numexpr\romannumeral0\xintlength {#1}-#3#4.#3#4.{#1}#2% }% \def\XINT_trunc_Hc-\expandafter\XINT_trunc_H \the\numexpr\romannumeral0\xintlength #1.-#2.#3#4{#4#3e#2}% \def\XINT_trunc_H #1.#2.% {% \ifnum #1 > \xint_c_ \xint_dothis{\XINT_trunc_Ha {#2}}\fi \xint_orthat {\XINT_trunc_Hb {-#1}}% -0,--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.% \romannumeral\xintreplicate{#1}0#2% }% \def\xintTTrunc {\romannumeral0\xintttrunc }% \def\xintttrunc {\xintitrunc\xint_c_}% \let\xintnum \xintttrunc \def\xintRound {\romannumeral0\xintround }% \def\xintiRound {\romannumeral0\xintiround }% \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_a\romannumeral0\XINT_infrac{#4}#1.#3#2.% }% \def\XINT_round_a #1#2#3#4.% {% \if0\XINT_Sgn#2\xint:\xint_dothis\XINT_trunc_zero\fi \if1\XINT_is_One#3XY\xint_dothis\XINT_trunc_sp_b\fi \xint_orthat\XINT_trunc_b #1+#4.{#2}{#3}% }% \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_xtrunc_a \the\numexpr #1\expandafter.\romannumeral0\xintraw }% \def\XINT_xtrunc_a #1.% ?? faire autre chose {% \expandafter\XINT_xtrunc_b\the\numexpr\ifnum#1<\xint_c_i \xint_c_i-\fi #1.% }% \def\XINT_xtrunc_b #1.#2{\XINT_xtrunc_c #2{#1}}% \def\XINT_xtrunc_c #1% {% \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]% {% \XINT_xtrunc_prepare_a#4\R\R\R\R\R\R\R\R {10}0000001\W !{#4};{#5}{#2}{#1#3}% }% \def\XINT_xtrunc_prepare_a #1#2#3#4#5#6#7#8#9% {% \xint_gob_til_R #9\XINT_xtrunc_prepare_small\R \XINT_xtrunc_prepare_b #9% }% \def\XINT_xtrunc_prepare_small\R #1!#2;% {% \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_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% {% \expandafter\XINT_xtrunc_sp_e\expandafter {\the\numexpr #2-\xint_c_i\expandafter}\expandafter {\romannumeral0\xintiimul 5{#4}}{#3}% }% \def\XINT_xtrunc_BisFour\XINT_xtrunc_BisSmall #1#2#3#4% {% \expandafter\XINT_xtrunc_sp_e\expandafter {\the\numexpr #2-\xint_c_ii\expandafter}\expandafter {\romannumeral0\xintiimul {25}{#4}}{#3}% }% \def\XINT_xtrunc_BisFive\XINT_xtrunc_BisSmall #1#2#3#4% {% \expandafter\XINT_xtrunc_sp_e\expandafter {\the\numexpr #2-\xint_c_i\expandafter}\expandafter {\romannumeral0\xintdouble {#4}}{#3}% }% \def\XINT_xtrunc_BisEight\XINT_xtrunc_BisSmall #1#2#3#4% {% \expandafter\XINT_xtrunc_sp_e\expandafter {\the\numexpr #2-\xint_c_iii\expandafter}\expandafter {\romannumeral0\xintiimul {125}{#4}}{#3}% }% \def\XINT_xtrunc_BisSmall #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_small_a #1.#2!#3% {% \expandafter\XINT_div_small_b\the\numexpr #1\expandafter \xint:\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_prepare_b {\expandafter\XINT_xtrunc_prepare_c\romannumeral0\XINT_zeroes_forviii }% \def\XINT_xtrunc_prepare_c #1!% {% \XINT_xtrunc_prepare_d #1.00000000!{#1}% }% \def\XINT_xtrunc_prepare_d #1#2#3#4#5#6#7#8#9% {% \expandafter\XINT_xtrunc_prepare_e \xint_gob_til_dot #1#2#3#4#5#6#7#8#9!% }% \def\XINT_xtrunc_prepare_e #1!#2!#3#4% {% \XINT_xtrunc_prepare_f #4#3\X {#1}{#3}% }% \def\XINT_xtrunc_prepare_f #1#2#3#4#5#6#7#8#9\X {% \expandafter\XINT_xtrunc_prepare_g\expandafter \XINT_div_prepare_g \the\numexpr #1#2#3#4#5#6#7#8+\xint_c_i\expandafter \xint:\the\numexpr (#1#2#3#4#5#6#7#8+\xint_c_i)/\xint_c_ii\expandafter \xint:\the\numexpr #1#2#3#4#5#6#7#8\expandafter \xint:\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_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_xtrunc_prepare_g #1;{\XINT_xtrunc_e {#1}}% \def\XINT_xtrunc_e #1#2% {% \ifnum #2<\xint_c_ \expandafter\XINT_xtrunc_I \else \expandafter\XINT_xtrunc_II \fi #2\xint:{#1}% }% \def\XINT_xtrunc_I -#1\xint:#2#3#4% {% \expandafter\XINT_xtrunc_I_a\romannumeral0#2{#4}{#2}{#1}{#3}% }% \def\XINT_xtrunc_I_a #1#2#3#4#5% {% \expandafter\XINT_xtrunc_I_b\the\numexpr #4-#5\xint:#4\xint:{#5}{#2}{#3}{#1}% }% \def\XINT_xtrunc_I_b #1% {% \xint_UDsignfork #1\XINT_xtrunc_IA_c -\XINT_xtrunc_IB_c \krof #1% }% \def\XINT_xtrunc_IA_c -#1\xint:#2\xint:#3#4#5#6% {% \expandafter\XINT_xtrunc_IA_d \the\numexpr#2-\xintLength{#6}\xint:{#6}% \expandafter\XINT_xtrunc_IA_xd \the\numexpr (#1+\xint_c_ii^v)/\xint_c_ii^vi-\xint_c_i\xint:#1\xint:{#5}{#4}% }% \def\XINT_xtrunc_IA_d #1% {% \xint_UDsignfork #1\XINT_xtrunc_IAA_e -\XINT_xtrunc_IAB_e \krof #1% }% \def\XINT_xtrunc_IAA_e -#1\xint:#2% {% \romannumeral0\XINT_split_fromleft #1.#2\xint_gobble_i\xint_bye2345678\xint_bye..% }% \def\XINT_xtrunc_IAB_e #1\xint:#2% {% 0.\romannumeral\XINT_rep#1\endcsname0#2% }% \def\XINT_xtrunc_IA_xd #1\xint:#2\xint:% {% \expandafter\XINT_xtrunc_IA_xe\the\numexpr #2-\xint_c_ii^vi*#1\xint:#1\xint:% }% \def\XINT_xtrunc_IA_xe #1\xint:#2\xint:#3#4% {% \XINT_xtrunc_loop {#2}{#4}{#3}{#1}% }% \def\XINT_xtrunc_IB_c #1\xint:#2\xint:#3#4#5#6% {% \expandafter\XINT_xtrunc_IB_d \romannumeral0\XINT_split_xfork #1.#6\xint_bye2345678\xint_bye..{#3}% }% \def\XINT_xtrunc_IB_d #1.#2.#3% {% \expandafter\XINT_xtrunc_IA_d\the\numexpr#3-\xintLength {#1}\xint:{#1}% }% \def\XINT_xtrunc_II #1\xint:% {% \expandafter\XINT_xtrunc_II_a\romannumeral\xintreplicate{#1}0\xint:% }% \def\XINT_xtrunc_II_a #1\xint:#2#3#4% {% \expandafter\XINT_xtrunc_II_b \the\numexpr (#3+\xint_c_ii^v)/\xint_c_ii^vi-\xint_c_i\expandafter\xint:% \the\numexpr #3\expandafter\xint:\romannumeral0#2{#4#1}{#2}% }% \def\XINT_xtrunc_II_b #1\xint:#2\xint:% {% \expandafter\XINT_xtrunc_II_c\the\numexpr #2-\xint_c_ii^vi*#1\xint:#1\xint:% }% \def\XINT_xtrunc_II_c #1\xint:#2\xint:#3#4#5% {% #3.\XINT_xtrunc_loop {#2}{#4}{#5}{#1}% }% \def\XINT_xtrunc_loop #1% {% \ifnum #1=\xint_c_ \expandafter\XINT_xtrunc_transition\fi \expandafter\XINT_xtrunc_loop_a\the\numexpr #1-\xint_c_i\xint:% }% \def\XINT_xtrunc_loop_a #1\xint:#2#3% {% \expandafter\XINT_xtrunc_loop_b\romannumeral0#3% {#20000000000000000000000000000000000000000000000000000000000000000}% {#1}{#3}% }% \def\XINT_xtrunc_loop_b #1#2#3% {% \romannumeral\xintreplicate{\xint_c_ii^vi-\xintLength{#1}}0#1% \XINT_xtrunc_loop {#3}{#2}% }% \def\XINT_xtrunc_transition \expandafter\XINT_xtrunc_loop_a\the\numexpr #1\xint:#2#3#4% {% \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_finish #1#2% {% \expandafter\XINT_xtrunc_finish_a\romannumeral0#2{#1}% }% \def\XINT_xtrunc_finish_a #1#2#3% {% \romannumeral\xintreplicate{#3-\xintLength{#1}}0#1% }% \def\XINT_xtrunc_sp_e #1% {% \ifnum #1<\xint_c_ \expandafter\XINT_xtrunc_sp_I \else \expandafter\XINT_xtrunc_sp_II \fi #1\xint:% }% \def\XINT_xtrunc_sp_I -#1\xint:#2#3% {% \expandafter\XINT_xtrunc_sp_I_a\the\numexpr #1-#3\xint:#1\xint:{#3}{#2}% }% \def\XINT_xtrunc_sp_I_a #1% {% \xint_UDsignfork #1\XINT_xtrunc_sp_IA_b -\XINT_xtrunc_sp_IB_b \krof #1% }% \def\XINT_xtrunc_sp_IA_b -#1\xint:#2\xint:#3#4% {% \expandafter\XINT_xtrunc_sp_IA_c \the\numexpr#2-\xintLength{#4}\xint:{#4}\romannumeral\XINT_rep#1\endcsname0% }% \def\XINT_xtrunc_sp_IA_c #1% {% \xint_UDsignfork #1\XINT_xtrunc_sp_IAA -\XINT_xtrunc_sp_IAB \krof #1% }% \def\XINT_xtrunc_sp_IAA -#1\xint:#2% {% \romannumeral0\XINT_split_fromleft #1.#2\xint_gobble_i\xint_bye2345678\xint_bye..% }% \def\XINT_xtrunc_sp_IAB #1\xint:#2% {% 0.\romannumeral\XINT_rep#1\endcsname0#2% }% \def\XINT_xtrunc_sp_IB_b #1\xint:#2\xint:#3#4% {% \expandafter\XINT_xtrunc_sp_IB_c \romannumeral0\XINT_split_xfork #1.#4\xint_bye2345678\xint_bye..{#3}% }% \def\XINT_xtrunc_sp_IB_c #1.#2.#3% {% \expandafter\XINT_xtrunc_sp_IA_c\the\numexpr#3-\xintLength {#1}\xint:{#1}% }% \def\XINT_xtrunc_sp_II #1\xint:#2#3% {% #2\romannumeral\XINT_rep#1\endcsname0.\romannumeral\XINT_rep#3\endcsname0% }% \def\xintAdd {\romannumeral0\xintadd }% \def\xintadd #1{\expandafter\XINT_fadd\romannumeral0\xintraw {#1}}% \def\XINT_fadd #1{\xint_gob_til_zero #1\XINT_fadd_Azero 0\XINT_fadd_a #1}% \def\XINT_fadd_Azero #1]{\xintraw }% \def\XINT_fadd_a #1/#2[#3]#4% {\expandafter\XINT_fadd_b\romannumeral0\xintraw {#4}{#3}{#1}{#2}}% \def\XINT_fadd_b #1{\xint_gob_til_zero #1\XINT_fadd_Bzero 0\XINT_fadd_c #1}% \def\XINT_fadd_Bzero #1]#2#3#4{ #3/#4[#2]}% \def\XINT_fadd_c #1/#2[#3]#4% {% \expandafter\XINT_fadd_Aa\the\numexpr #4-#3.{#3}{#4}{#1}{#2}% }% \def\XINT_fadd_Aa #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% {% \expandafter\XINT_fadd_C\expandafter {\romannumeral0\XINT_dsx_addzeros {#1}#6;}% {#7}{#5}{#4}[#2]% }% \def\XINT_fadd_Bb -#1.#2#3#4#5#6#7% {% \expandafter\XINT_fadd_C\expandafter {\romannumeral0\XINT_dsx_addzeros {#1}#4;}% {#5}{#7}{#6}[#3]% }% \def\XINT_fadd_iszero #1[#2]{ 0/1[0]}% ou [#2] originel? \def\XINT_fadd_C #1#2#3% {% \expandafter\XINT_fadd_D_b \romannumeral0\XINT_div_prepare{#2}{#3}{#2}{#2}{#3}{#1}% }% \def\XINT_fadd_D_a #1#2% {% \expandafter\XINT_fadd_D_b \romannumeral0\XINT_div_prepare {#1}{#2}{#1}% }% \def\XINT_fadd_D_b #1#2{\XINT_fadd_D_c #2\Z}% \def\XINT_fadd_D_c #1#2\Z {% \xint_gob_til_zero #1\XINT_fadd_D_exit0\XINT_fadd_D_a {#1#2}% }% \def\XINT_fadd_D_exit0\XINT_fadd_D_a #1#2#3% {% \expandafter\XINT_fadd_E \romannumeral0\xintiiquo {#3}{#2}.{#2}% }% \def\XINT_fadd_E #1.#2#3% {% \expandafter\XINT_fadd_F \romannumeral0\xintiimul{#1}{#3}.{\xintiiQuo{#3}{#2}}{#1}% }% \def\XINT_fadd_F #1.#2#3#4#5% {% \expandafter\XINT_fadd_G \romannumeral0\xintiiadd{\xintiiMul{#2}{#4}}{\xintiiMul{#3}{#5}}/#1% }% \def\XINT_fadd_G #1{% \def\XINT_fadd_G ##1{\if0##1\expandafter\XINT_fadd_iszero\fi#1##1}% }\XINT_fadd_G{ }% \def\xintSub {\romannumeral0\xintsub }% \def\xintsub #1{\expandafter\XINT_fsub\romannumeral0\xintraw {#1}}% \def\XINT_fsub #1{\xint_gob_til_zero #1\XINT_fsub_Azero 0\XINT_fsub_a #1}% \def\XINT_fsub_Azero #1]{\xintopp }% \def\XINT_fsub_a #1/#2[#3]#4% {\expandafter\XINT_fsub_b\romannumeral0\xintraw {#4}{#3}{#1}{#2}}% \def\XINT_fsub_b #1{\xint_UDzerominusfork #1-\XINT_fadd_Bzero 0#1\XINT_fadd_c 0-{\XINT_fadd_c -#1}% \krof }% \def\xintSum {\romannumeral0\xintsum }% \def\xintsum #1{\expandafter\XINT_sum\romannumeral`&&@#1^}% \def\XINT_Sum{\romannumeral0\XINT_sum}% \def\XINT_sum#1% {% \xint_gob_til_^ #1\XINT_sum_empty ^% \expandafter\XINT_sum_loop\romannumeral0\xintraw{#1}\xint: }% \def\XINT_sum_empty ^#1\xint:{ 0/1[0]}% \def\XINT_sum_loop #1\xint:#2% {% \xint_gob_til_^ #2\XINT_sum_end ^% \expandafter\XINT_sum_loop \romannumeral0\xintadd{#1}{\romannumeral0\xintraw{#2}}\xint: }% \def\XINT_sum_end ^#1\xintadd #2#3\xint:{ #2}% \def\xintMul {\romannumeral0\xintmul }% \def\xintmul #1{\expandafter\XINT_fmul\romannumeral0\xintraw {#1}.}% \def\XINT_fmul #1{\xint_gob_til_zero #1\XINT_fmul_zero 0\XINT_fmul_a #1}% \def\XINT_fmul_a #1[#2].#3% {\expandafter\XINT_fmul_b\romannumeral0\xintraw {#3}#1[#2.]}% \def\XINT_fmul_b #1{\xint_gob_til_zero #1\XINT_fmul_zero 0\XINT_fmul_c #1}% \def\XINT_fmul_c #1/#2[#3]#4/#5[#6.]% {% \expandafter\XINT_fmul_d \expandafter{\the\numexpr #3+#6\expandafter}% \expandafter{\romannumeral0\xintiimul {#5}{#2}}% {\romannumeral0\xintiimul {#4}{#1}}% }% \def\XINT_fmul_d #1#2#3% {% \expandafter \XINT_fmul_e \expandafter{#3}{#1}{#2}% }% \def\XINT_fmul_e #1#2{\XINT_outfrac {#2}{#1}}% \def\XINT_fmul_zero #1.#2{ 0/1[0]}% \def\xintSqr {\romannumeral0\xintsqr }% \def\xintsqr #1{\expandafter\XINT_fsqr\romannumeral0\xintraw {#1}}% \def\XINT_fsqr #1{\xint_gob_til_zero #1\XINT_fsqr_zero 0\XINT_fsqr_a #1}% \def\XINT_fsqr_a #1/#2[#3]% {% \expandafter\XINT_fsqr_b \expandafter{\the\numexpr #3+#3\expandafter}% \expandafter{\romannumeral0\xintiisqr {#2}}% {\romannumeral0\xintiisqr {#1}}% }% \def\XINT_fsqr_b #1#2#3{\expandafter \XINT_fmul_e \expandafter{#3}{#1}{#2}}% \def\XINT_fsqr_zero #1]{ 0/1[0]}% \def\xintipow #1#2% {% \expandafter\xint_pow\the\numexpr \xintNum{#2}\expandafter .\romannumeral0\xintnum{#1}\xint: }% \def\xintPow {\romannumeral0\xintpow }% \def\xintpow #1% {% \expandafter\XINT_fpow\expandafter {\romannumeral0\XINT_infrac {#1}}% }% \def\XINT_fpow #1#2% {% \expandafter\XINT_fpow_fork\the\numexpr \xintNum{#2}\relax\Z #1% }% \def\XINT_fpow_fork #1#2\Z {% \xint_UDzerominusfork #1-\XINT_fpow_zero 0#1\XINT_fpow_neg 0-{\XINT_fpow_pos #1}% \krof {#2}% }% \def\XINT_fpow_zero #1#2#3#4{ 1/1[0]}% \def\XINT_fpow_pos #1#2#3#4#5% {% \expandafter\XINT_fpow_pos_A\expandafter {\the\numexpr #1#2*#3\expandafter}\expandafter {\romannumeral0\xintiipow {#5}{#1#2}}% {\romannumeral0\xintiipow {#4}{#1#2}}% }% \def\XINT_fpow_neg #1#2#3#4% {% \expandafter\XINT_fpow_pos_A\expandafter {\the\numexpr -#1*#2\expandafter}\expandafter {\romannumeral0\xintiipow {#3}{#1}}% {\romannumeral0\xintiipow {#4}{#1}}% }% \def\XINT_fpow_pos_A #1#2#3% {% \expandafter\XINT_fpow_pos_B\expandafter {#3}{#1}{#2}% }% \def\XINT_fpow_pos_B #1#2{\XINT_outfrac {#2}{#1}}% \def\xintFac {\romannumeral0\xintfac}% \def\xintfac #1{\expandafter\XINT_fac_fork\the\numexpr\xintNum{#1}.[0]}% \def\xintBinomial {\romannumeral0\xintbinomial}% \def\xintbinomial #1#2% {% \expandafter\XINT_binom_pre \the\numexpr\xintNum{#1}\expandafter.\the\numexpr\xintNum{#2}.[0]% }% \def\xintipfactorial #1#2% {% \expandafter\XINT_pfac_fork \the\numexpr\xintNum{#1}\expandafter.\the\numexpr\xintNum{#2}.% }% \def\xintPFactorial {\romannumeral0\xintpfactorial}% \def\xintpfactorial #1#2% {% \expandafter\XINT_pfac_fork \the\numexpr\xintNum{#1}\expandafter.\the\numexpr\xintNum{#2}.[0]% }% \def\xintPrd {\romannumeral0\xintprd }% \def\xintprd #1{\expandafter\XINT_prd\romannumeral`&&@#1^}% \def\XINT_Prd{\romannumeral0\XINT_prd}% \def\XINT_prd#1% {% \xint_gob_til_^ #1\XINT_prd_empty ^% \expandafter\XINT_prd_loop\romannumeral0\xintraw{#1}\xint: }% \def\XINT_prd_empty ^#1\xint:{ 1/1[0]}% \def\XINT_prd_loop #1\xint:#2% {% \xint_gob_til_^ #2\XINT_prd_end ^% \expandafter\XINT_prd_loop \romannumeral0\xintmul{#1}{\romannumeral0\xintraw{#2}}\xint: }% \def\XINT_prd_end ^#1\xintmul #2#3\xint:{ #2}% \def\xintDiv {\romannumeral0\xintdiv }% \def\xintdiv #1% {% \expandafter\XINT_fdiv\expandafter {\romannumeral0\XINT_infrac {#1}}% }% \def\XINT_fdiv #1#2% {\expandafter\XINT_fdiv_A\romannumeral0\XINT_infrac {#2}#1}% \def\XINT_fdiv_A #1#2#3#4#5#6% {% \expandafter\XINT_fdiv_B \expandafter{\the\numexpr #4-#1\expandafter}% \expandafter{\romannumeral0\xintiimul {#2}{#6}}% {\romannumeral0\xintiimul {#3}{#5}}% }% \def\XINT_fdiv_B #1#2#3% {% \expandafter\XINT_fdiv_C \expandafter{#3}{#1}{#2}% }% \def\XINT_fdiv_C #1#2{\XINT_outfrac {#2}{#1}}% \def\xintDivFloor {\romannumeral0\xintdivfloor }% \def\xintdivfloor #1#2{\xintifloor{\xintDiv {#1}{#2}}}% \def\xintDivTrunc {\romannumeral0\xintdivtrunc }% \def\xintdivtrunc #1#2{\xintttrunc {\xintDiv {#1}{#2}}}% \def\xintDivRound {\romannumeral0\xintdivround }% \def\xintdivround #1#2{\xintiround 0{\xintDiv {#1}{#2}}}% \def\xintModTrunc {\romannumeral0\xintmodtrunc }% \def\xintmodtrunc #1{\expandafter\XINT_modtrunc_a\romannumeral0\xintraw{#1}.}% \def\XINT_modtrunc_a #1#2.#3% {\expandafter\XINT_modtrunc_b\expandafter #1\romannumeral0\xintraw{#3}#2.}% \def\XINT_modtrunc_b #1#2% #1 de A, #2 de B. {% \if0#2\xint_dothis{\XINT_modtrunc_divbyzero #1#2}\fi \if0#1\xint_dothis\XINT_modtrunc_aiszero\fi \if-#2\xint_dothis{\XINT_modtrunc_bneg #1}\fi \xint_orthat{\XINT_modtrunc_bpos #1#2}% }% \def\XINT_modtrunc_divbyzero #1#2[#3]#4.% {% \XINT_signalcondition{DivisionByZero}{Division by #2[#3] of #1#4}{}{0/1[0]}% }% \def\XINT_modtrunc_aiszero #1.{ 0/1[0]}% \def\XINT_modtrunc_bneg #1% {% \xint_UDsignfork #1{\xintiiopp\XINT_modtrunc_pos {}}% -{\XINT_modtrunc_pos #1}% \krof }% \def\XINT_modtrunc_bpos #1% {% \xint_UDsignfork #1{\xintiiopp\XINT_modtrunc_pos {}}% -{\XINT_modtrunc_pos #1}% \krof }% \def\XINT_modtrunc_pos #1#2/#3[#4]#5/#6[#7].% {% \expandafter\XINT_modtrunc_pos_a \the\numexpr\ifnum#7>#4 #4\else #7\fi\expandafter.% \romannumeral0\expandafter\XINT_mod_D_b \romannumeral0\XINT_div_prepare{#3}{#6}{#3}{#3}{#6}% {#1#5}{#7-#4}{#2}{#4-#7}% }% \def\XINT_modtrunc_pos_a #1.#2#3#4{\xintiirem {#3}{#4}/#2[#1]}% \def\xintDivMod {\romannumeral0\xintdivmod }% \def\xintdivmod #1{\expandafter\XINT_divmod_a\romannumeral0\xintraw{#1}.}% \def\XINT_divmod_a #1#2.#3% {\expandafter\XINT_divmod_b\expandafter #1\romannumeral0\xintraw{#3}#2.}% \def\XINT_divmod_b #1#2% #1 de A, #2 de B. {% \if0#2\xint_dothis{\XINT_divmod_divbyzero #1#2}\fi \if0#1\xint_dothis\XINT_divmod_aiszero\fi \if-#2\xint_dothis{\XINT_divmod_bneg #1}\fi \xint_orthat{\XINT_divmod_bpos #1#2}% }% \def\XINT_divmod_divbyzero #1#2[#3]#4.% {% \XINT_signalcondition{DivisionByZero}{Division by #2[#3] of #1#4}{}% {{0}{0/1[0]}}% à revoir... }% \def\XINT_divmod_aiszero #1.{{0}{0/1[0]}}% \def\XINT_divmod_bneg #1% f // -g = (-f) // g, f % -g = - ((-f) % g) {% \expandafter\XINT_divmod_bneg_finish \romannumeral0\xint_UDsignfork #1{\XINT_divmod_bpos {}}% -{\XINT_divmod_bpos {-#1}}% \krof }% \def\XINT_divmod_bneg_finish#1#2% {% \expandafter\xint_exchangetwo_keepbraces\expandafter {\romannumeral0\xintiiopp#2}{#1}% }% \def\XINT_divmod_bpos #1#2/#3[#4]#5/#6[#7].% {% \expandafter\XINT_divmod_bpos_a \the\numexpr\ifnum#7>#4 #4\else #7\fi\expandafter.% \romannumeral0\expandafter\XINT_mod_D_b \romannumeral0\XINT_div_prepare{#3}{#6}{#3}{#3}{#6}% {#1#5}{#7-#4}{#2}{#4-#7}% }% \def\XINT_divmod_bpos_a #1.#2#3#4% {% \expandafter\XINT_divmod_bpos_finish \romannumeral0\xintiidivision{#3}{#4}{/#2[#1]}% }% \def\XINT_divmod_bpos_finish #1#2#3{{#1}{#2#3}}% \def\xintMod {\romannumeral0\xintmod }% \def\xintmod #1{\expandafter\XINT_mod_a\romannumeral0\xintraw{#1}.}% \def\XINT_mod_a #1#2.#3% {\expandafter\XINT_mod_b\expandafter #1\romannumeral0\xintraw{#3}#2.}% \def\XINT_mod_b #1#2% #1 de A, #2 de B. {% \if0#2\xint_dothis{\XINT_mod_divbyzero #1#2}\fi \if0#1\xint_dothis\XINT_mod_aiszero\fi \if-#2\xint_dothis{\XINT_mod_bneg #1}\fi \xint_orthat{\XINT_mod_bpos #1#2}% }% \let\XINT_mod_divbyzero\XINT_modtrunc_divbyzero \let\XINT_mod_aiszero \XINT_modtrunc_aiszero \def\XINT_mod_bneg #1% f % -g = - ((-f) % g), for g > 0 {% \xintiiopp\xint_UDsignfork #1{\XINT_mod_bpos {}}% -{\XINT_mod_bpos {-#1}}% \krof }% \def\XINT_mod_bpos #1#2/#3[#4]#5/#6[#7].% {% \expandafter\XINT_mod_bpos_a \the\numexpr\ifnum#7>#4 #4\else #7\fi\expandafter.% \romannumeral0\expandafter\XINT_mod_D_b \romannumeral0\XINT_div_prepare{#3}{#6}{#3}{#3}{#6}% {#1#5}{#7-#4}{#2}{#4-#7}% }% \def\XINT_mod_D_a #1#2% {% \expandafter\XINT_mod_D_b \romannumeral0\XINT_div_prepare {#1}{#2}{#1}% }% \def\XINT_mod_D_b #1#2{\XINT_mod_D_c #2\Z}% \def\XINT_mod_D_c #1#2\Z {% \xint_gob_til_zero #1\XINT_mod_D_exit0\XINT_mod_D_a {#1#2}% }% \def\XINT_mod_D_exit0\XINT_mod_D_a #1#2#3% {% \expandafter\XINT_mod_E \romannumeral0\xintiiquo {#3}{#2}.{#2}% }% \def\XINT_mod_E #1.#2#3% {% \expandafter\XINT_mod_F \romannumeral0\xintiimul{#1}{#3}.{\xintiiQuo{#3}{#2}}{#1}% }% \def\XINT_mod_F #1.#2#3#4#5#6#7% {% {#1}{\xintiiE{\xintiiMul{#4}{#3}}{#5}}% {\xintiiE{\xintiiMul{#6}{#2}}{#7}}% }% \def\XINT_mod_bpos_a #1.#2#3#4{\xintiirem {#3}{#4}/#2[#1]}% \def\xintIsOne {\romannumeral0\xintisone }% \def\xintisone #1{\expandafter\XINT_fracisone \romannumeral0\xintrawwithzeros{#1}\Z }% \def\XINT_fracisone #1/#2\Z {\if0\xintiiCmp {#1}{#2}\xint_afterfi{ 1}\else\xint_afterfi{ 0}\fi}% \def\xintGeq {\romannumeral0\xintgeq }% \def\xintgeq #1% {% \expandafter\XINT_fgeq\expandafter {\romannumeral0\xintabs {#1}}% }% \def\XINT_fgeq #1#2% {% \expandafter\XINT_fgeq_A \romannumeral0\xintabs {#2}#1% }% \def\XINT_fgeq_A #1% {% \xint_gob_til_zero #1\XINT_fgeq_Zii 0% \XINT_fgeq_B #1% }% \def\XINT_fgeq_Zii 0\XINT_fgeq_B #1[#2]#3[#4]{ 1}% \def\XINT_fgeq_B #1/#2[#3]#4#5/#6[#7]% {% \xint_gob_til_zero #4\XINT_fgeq_Zi 0% \expandafter\XINT_fgeq_C\expandafter {\the\numexpr #7-#3\expandafter}\expandafter {\romannumeral0\xintiimul {#4#5}{#2}}% {\romannumeral0\xintiimul {#6}{#1}}% }% \def\XINT_fgeq_Zi 0#1#2#3#4#5#6#7{ 0}% \def\XINT_fgeq_C #1#2#3% {% \expandafter\XINT_fgeq_D\expandafter {#3}{#1}{#2}% }% \def\XINT_fgeq_D #1#2#3% {% \expandafter\XINT_cntSgnFork\romannumeral`&&@\expandafter\XINT_cntSgn \the\numexpr #2+\xintLength{#3}-\xintLength{#1}\relax\xint: { 0}{\XINT_fgeq_E #2\Z {#3}{#1}}{ 1}% }% \def\XINT_fgeq_E #1% {% \xint_UDsignfork #1\XINT_fgeq_Fd -{\XINT_fgeq_Fn #1}% \krof }% \def\XINT_fgeq_Fd #1\Z #2#3% {% \expandafter\XINT_fgeq_Fe \romannumeral0\XINT_dsx_addzeros {#1}#3;\xint:#2\xint: }% \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_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% {% \expandafter\XINT_fmax\expandafter {\romannumeral0\xintraw {#1}}% }% \def\XINT_fmax #1#2% {% \expandafter\XINT_fmax_A\romannumeral0\xintraw {#2}#1% }% \def\XINT_fmax_A #1#2/#3[#4]#5#6/#7[#8]% {% \xint_UDsignsfork #1#5\XINT_fmax_minusminus -#5\XINT_fmax_firstneg #1-\XINT_fmax_secondneg --\XINT_fmax_nonneg_a \krof #1#5{#2/#3[#4]}{#6/#7[#8]}% }% \def\XINT_fmax_minusminus --% {\expandafter-\romannumeral0\XINT_fmin_nonneg_b }% \def\XINT_fmax_firstneg #1-#2#3{ #1#2}% \def\XINT_fmax_secondneg -#1#2#3{ #1#3}% \def\XINT_fmax_nonneg_a #1#2#3#4% {% \XINT_fmax_nonneg_b {#1#3}{#2#4}% }% \def\XINT_fmax_nonneg_b #1#2% {% \if0\romannumeral0\XINT_fgeq_A #1#2% \xint_afterfi{ #1}% \else \xint_afterfi{ #2}% \fi }% \def\xintMaxof {\romannumeral0\xintmaxof }% \def\xintmaxof #1{\expandafter\XINT_maxof\romannumeral`&&@#1^}% \def\XINT_Maxof{\romannumeral0\XINT_maxof}% \def\XINT_maxof#1% {% \xint_gob_til_^ #1\XINT_maxof_empty ^% \expandafter\XINT_maxof_loop\romannumeral0\xintraw{#1}\xint: }% \def\XINT_maxof_empty ^#1\xint:{ 0/1[0]}% \def\XINT_maxof_loop #1\xint:#2% {% \xint_gob_til_^ #2\XINT_maxof_e ^% \expandafter\XINT_maxof_loop \romannumeral0\xintmax{#1}{\romannumeral0\xintraw{#2}}\xint: }% \def\XINT_maxof_e ^#1\xintmax #2#3\xint:{ #2}% \def\xintMin {\romannumeral0\xintmin }% \def\xintmin #1% {% \expandafter\XINT_fmin\expandafter {\romannumeral0\xintraw {#1}}% }% \def\XINT_fmin #1#2% {% \expandafter\XINT_fmin_A\romannumeral0\xintraw {#2}#1% }% \def\XINT_fmin_A #1#2/#3[#4]#5#6/#7[#8]% {% \xint_UDsignsfork #1#5\XINT_fmin_minusminus -#5\XINT_fmin_firstneg #1-\XINT_fmin_secondneg --\XINT_fmin_nonneg_a \krof #1#5{#2/#3[#4]}{#6/#7[#8]}% }% \def\XINT_fmin_minusminus --% {\expandafter-\romannumeral0\XINT_fmax_nonneg_b }% \def\XINT_fmin_firstneg #1-#2#3{ -#3}% \def\XINT_fmin_secondneg -#1#2#3{ -#2}% \def\XINT_fmin_nonneg_a #1#2#3#4% {% \XINT_fmin_nonneg_b {#1#3}{#2#4}% }% \def\XINT_fmin_nonneg_b #1#2% {% \if0\romannumeral0\XINT_fgeq_A #1#2% \xint_afterfi{ #2}% \else \xint_afterfi{ #1}% \fi }% \def\xintMinof {\romannumeral0\xintminof }% \def\xintminof #1{\expandafter\XINT_minof\romannumeral`&&@#1^}% \def\XINT_Minof{\romannumeral0\XINT_minof}% \def\XINT_minof#1% {% \xint_gob_til_^ #1\XINT_minof_empty ^% \expandafter\XINT_minof_loop\romannumeral0\xintraw{#1}\xint: }% \def\XINT_minof_empty ^#1\xint:{ 0/1[0]}% \def\XINT_minof_loop #1\xint:#2% {% \xint_gob_til_^ #2\XINT_minof_e ^% \expandafter\XINT_minof_loop\romannumeral0\xintmin{#1}{\romannumeral0\xintraw{#2}}\xint: }% \def\XINT_minof_e ^#1\xintmin #2#3\xint:{ #2}% \def\xintCmp {\romannumeral0\xintcmp }% \def\xintcmp #1% {% \expandafter\XINT_fcmp\expandafter {\romannumeral0\xintraw {#1}}% }% \def\XINT_fcmp #1#2% {% \expandafter\XINT_fcmp_A\romannumeral0\xintraw {#2}#1% }% \def\XINT_fcmp_A #1#2/#3[#4]#5#6/#7[#8]% {% \xint_UDsignsfork #1#5\XINT_fcmp_minusminus -#5\XINT_fcmp_firstneg #1-\XINT_fcmp_secondneg --\XINT_fcmp_nonneg_a \krof #1#5{#2/#3[#4]}{#6/#7[#8]}% }% \def\XINT_fcmp_minusminus --#1#2{\XINT_fcmp_B #2#1}% \def\XINT_fcmp_firstneg #1-#2#3{ -1}% \def\XINT_fcmp_secondneg -#1#2#3{ 1}% \def\XINT_fcmp_nonneg_a #1#2% {% \xint_UDzerosfork #1#2\XINT_fcmp_zerozero 0#2\XINT_fcmp_firstzero #10\XINT_fcmp_secondzero 00\XINT_fcmp_pos \krof #1#2% }% \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% }% \def\XINT_fcmp_B #1/#2[#3]#4/#5[#6]% {% \expandafter\XINT_fcmp_C\expandafter {\the\numexpr #6-#3\expandafter}\expandafter {\romannumeral0\xintiimul {#4}{#2}}% {\romannumeral0\xintiimul {#5}{#1}}% }% \def\XINT_fcmp_C #1#2#3% {% \expandafter\XINT_fcmp_D\expandafter {#3}{#1}{#2}% }% \def\XINT_fcmp_D #1#2#3% {% \expandafter\XINT_cntSgnFork\romannumeral`&&@\expandafter\XINT_cntSgn \the\numexpr #2+\xintLength{#3}-\xintLength{#1}\relax\xint: { -1}{\XINT_fcmp_E #2\Z {#3}{#1}}{ 1}% }% \def\XINT_fcmp_E #1% {% \xint_UDsignfork #1\XINT_fcmp_Fd -{\XINT_fcmp_Fn #1}% \krof }% \def\XINT_fcmp_Fd #1\Z #2#3% {% \expandafter\XINT_fcmp_Fe \romannumeral0\XINT_dsx_addzeros {#1}#3;\xint:#2\xint: }% \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\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 }% \def\xintopp #1{\expandafter\XINT_opp\romannumeral0\xintraw {#1}}% \def\xintInv {\romannumeral0\xintinv }% \def\xintinv #1{\expandafter\XINT_inv\romannumeral0\xintraw {#1}}% \def\XINT_inv #1% {% \xint_UDzerominusfork #1-\XINT_inv_iszero 0#1\XINT_inv_a 0-{\XINT_inv_a {}}% \krof #1% }% \def\XINT_inv_iszero #1]% {\XINT_signalcondition{DivisionByZero}{Division of 1 by zero (#1])}{}{0/1[0]}}% \def\XINT_inv_a #1#2/#3[#4#5]% {% \xint_UDzerominusfork #4-\XINT_inv_expiszero 0#4\XINT_inv_b 0-{\XINT_inv_b -#4}% \krof #5.{#1#3/#2}% }% \def\XINT_inv_expiszero #1.#2{ #2[0]}% \def\XINT_inv_b #1.#2{ #2[#1]}% \def\xintSgn {\romannumeral0\xintsgn }% \def\xintsgn #1{\expandafter\XINT_sgn\romannumeral0\xintraw {#1}\xint:}% \def\xintGCD {\romannumeral0\xintgcd}% \def\xintgcd #1#2{\XINT_fgcdof{#1}{#2}^}% \def\xintLCM {\romannumeral0\xintlcm}% \def\xintlcm #1#2{\XINT_flcmof{#1}{#2}^}% \def\xintGCDof {\romannumeral0\xintgcdof}% \def\xintgcdof #1{\expandafter\XINT_fgcdof\romannumeral`&&@#1^}% \def\XINT_GCDof{\romannumeral0\XINT_fgcdof}% \def\XINT_fgcdof #1% {% \xint_gob_til_^ #1\XINT_fgcdof_empty ^% \expandafter\XINT_fgcdof_loop\romannumeral0\xintiiabs#1\xint: }% \def\XINT_fgcdof_empty ^#1\xint:{ 1/1[0]}% \def\XINT_fgcdof_loop #1\xint:#2% {% \expandafter\XINT_fgcdof_loop_a\romannumeral0\xintiiabs#2\xint:#1\xint: }% \def\XINT_fgcdof_loop_a#1#2\xint:#3\xint: {% \xint_gob_til_^ #1\XINT_fgcdof_end ^% \xint_gob_til_zero #1\XINT_fgcdof_skip 0% \expandafter\XINT_fgcdof_loop_b\romannumeral0\xintmod{#1#2}{#3}\xint:#3\xint: }% \def\XINT_fgcdof_end ^#1\xint:#2\xint:{ #2}% \def\XINT_fgcdof_skip 0% \expandafter\XINT_fgcdof_loop_b\romannumeral0\xintmod#1\xint: {% \XINT_fgcdof_loop }% \def\XINT_fgcdof_loop_b#1#2\xint:#3\xint: {% \xint_gob_til_zero #1\XINT_fgcdof_next 0% \expandafter\XINT_fgcdof_loop_b\romannumeral0\xintmod{#3}{#1#2}\xint:#1#2\xint: }% \def\XINT_fgcdof_next 0% \expandafter\XINT_fgcdof_loop_b\romannumeral0\xintmod#1#2\xint:#3\xint:#4% {% \expandafter\XINT_fgcdof_loop_a\romannumeral0\xintiiabs#4\xint:#1\xint: }% \def\xintLCMof {\romannumeral0\xintlcmof}% \def\xintlcmof #1{\expandafter\XINT_flcmof\romannumeral`&&@#1^}% \def\XINT_LCMof{\romannumeral0\XINT_flcmof}% \def\XINT_flcmof #1% {% \xint_gob_til_^ #1\XINT_flcmof_empty ^% \expandafter\XINT_flcmof_loop\romannumeral0\xintiiabs\xintRaw{#1}\xint: }% \def\XINT_flcmof_empty ^#1\xint:{ 0/1[0]}% \def\XINT_flcmof_loop #1% {% \xint_gob_til_zero #1\XINT_flcmof_zero 0% \expandafter\XINT_flcmof_d\romannumeral0\XINT_inv #1% }% \def\XINT_flcmof_zero #1^{ 0/1[0]}% \def\XINT_flcmof_d #1\xint:#2% {% \expandafter\XINT_flcmof_loop_a\romannumeral0\xintiiabs#2\xint:#1\xint: }% \def\XINT_flcmof_loop_a #1#2\xint:% {% \xint_gob_til_^ #1\XINT_flcmof_end ^% \xint_gob_til_zero #1\XINT_flcmof_zero 0% \expandafter\XINT_flcmof_loop_b\romannumeral0\expandafter\XINT_inv \romannumeral0\xintraw{#1#2}\xint: }% \def\XINT_flcmof_end ^#1\xint:#2\xint:{\XINT_inv #2}% \def\XINT_flcmof_loop_b #1#2\xint:#3\xint: {% \xint_gob_til_zero #1\XINT_flcmof_next 0% \expandafter\XINT_flcmof_loop_b\romannumeral0\xintmod{#3}{#1#2}\xint:#1#2\xint: }% \def\XINT_flcmof_next 0% \expandafter\XINT_flcmof_loop_b\romannumeral0\xintmod#1#2\xint:#3\xint:#4% {% \expandafter\XINT_flcmof_loop_a\romannumeral0\xintiiabs#4\xint:#1\xint: }% \mathchardef\XINTdigits 16 \def\xintDigits #1=% {\afterassignment \xint_gobble_i \mathchardef\XINTdigits=}% \def\xinttheDigits {\number\XINTdigits }% \def\xintSetDigits #1{\mathchardef\XINTdigits=\numexpr#1\relax}% \def\xintFloat {\romannumeral0\xintfloat }% \def\xintfloat #1{\XINT_float_chkopt #1\xint:}% \def\XINT_float_chkopt #1% {% \ifx [#1\expandafter\XINT_float_opt \else\expandafter\XINT_float_noopt \fi #1% }% \def\XINT_float_noopt #1\xint:% {% \expandafter\XINT_float_post \romannumeral0\XINTinfloat[\XINTdigits]{#1}\XINTdigits.% }% \def\XINT_float_opt [\xint:#1]% {% \expandafter\XINT_float_opt_a\the\numexpr #1.% }% \def\XINT_float_opt_a #1.#2% {% \expandafter\XINT_float_post \romannumeral0\XINTinfloat[#1]{#2}#1.% }% \def\XINT_float_post #1% {% \xint_UDzerominusfork #1-\XINT_float_zero 0#1\XINT_float_neg 0-\XINT_float_pos \krof #1% }%[ \def\XINT_float_zero #1]#2.{ 0.e0}% \def\XINT_float_neg-{\expandafter-\romannumeral0\XINT_float_pos}% \def\XINT_float_pos #1#2[#3]#4.% {% \expandafter\XINT_float_pos_done\the\numexpr#3+#4-\xint_c_i.#1.#2;% }% \def\XINT_float_pos_done #1.#2;{ #2e#1}% \def\XINTinFloat {\romannumeral0\XINTinfloat }% \def\XINTinfloat {\expandafter\XINT_infloat_clean\romannumeral0\XINT_infloat}% \def\XINT_infloat_clean #1% {\if #1!\xint_dothis\XINT_infloat_clean_a\fi\xint_orthat{ }#1}% \def\XINT_infloat_clean_a !#1.#2[#3]% {% \expandafter\XINT_infloat_done \the\numexpr #3-#1\expandafter.% \romannumeral0\XINT_dsx_addzeros {#1}#2;;% }% \def\XINT_infloat_done #1.#2;{ #2[#1]}% \def\XINTinFloatS {\romannumeral0\XINTinfloatS}% \def\XINTinfloatS {\expandafter\XINT_infloatS_clean\romannumeral0\XINT_infloat}% \def\XINT_infloatS_clean #1% {\if #1!\xint_dothis\XINT_infloatS_clean_a\fi\xint_orthat{ }#1}% \def\XINT_infloatS_clean_a !#1.{ }% \def\XINTFloatiLogTen {\the\numexpr\XINTfloatilogten}% \def\XINTfloatilogten [#1]#2% {\expandafter\XINT_floatilogten\romannumeral0\XINT_infloat[#1]{#2}#1.}% \def\XINT_floatilogten #1{% \if #10\xint_dothis\XINT_floatilogten_z\fi \if #1!\xint_dothis\XINT_floatilogten_a\fi \xint_orthat\XINT_floatilogten_b #1% }% \def\XINT_floatilogten_z 0[0]#1.{-"7FFF8000\relax}% \def\XINT_floatilogten_a !#1.#2[#3]#4.{#3-#1+#4-1\relax}% \def\XINT_floatilogten_b #1[#2]#3.{#2+#3-1\relax}% \def\XINT_infloat [#1]#2% {% \expandafter\XINT_infloat_a\the\numexpr #1\expandafter.% \romannumeral0\XINT_infrac {#2}% }% \def\XINT_infloat_a #1.#2#3#4% {% \if1\XINT_is_One#4XY% \expandafter\XINT_infloat_sp \else\expandafter\XINT_infloat_fork \fi #3.{#1}{#2}{#4}% }% \def\XINT_infloat_sp #1% {% \xint_UDzerominusfork #1-\XINT_infloat_spzero 0#1\XINT_infloat_spneg 0-\XINT_infloat_sppos \krof #1% }% \def\XINT_infloat_spzero 0.#1#2#3{ 0[0]}% \def\XINT_infloat_spneg-% {\expandafter\XINT_infloat_spnegend\romannumeral0\XINT_infloat_sppos}% \def\XINT_infloat_spnegend #1% {\if#1!\expandafter\XINT_infloat_spneg_needzeros\fi -#1}% \def\XINT_infloat_spneg_needzeros -!#1.{!#1.-}% \def\XINT_infloat_sppos #1.#2#3#4% {% \expandafter\XINT_infloat_sp_b\the\numexpr#2-\xintLength{#1}.#1.#2.#3.% }% \def\XINT_infloat_sp_b #1% {% \xint_UDzerominusfork #1-\XINT_infloat_sp_quick 0#1\XINT_infloat_sp_c 0-\XINT_infloat_sp_needzeros \krof #1% }% \def\XINT_infloat_sp_quick 0.#1.#2.#3.{ #1[#3]}% \def\XINT_infloat_sp_needzeros #1.#2.#3.#4.{!#1.#2[#4]}% \def\XINT_infloat_sp_c -#1.#2#3.#4.#5.% {% \expandafter\XINT_infloat_Y \the\numexpr #5+#1\expandafter.% \romannumeral0\expandafter\XINT_infloat_sp_round \romannumeral0\XINT_split_fromleft (\xint_c_i+#4).#2#3\xint_bye2345678\xint_bye..#2% }% \def\XINT_infloat_sp_round #1.#2.% {% \XINT_dsrr#1\xint_bye\xint_Bye3456789\xint_bye/\xint_c_x\relax.% }% \def\XINT_infloat_fork #1% {% \xint_UDsignfork #1\XINT_infloat_J -\XINT_infloat_K \krof #1% }% \def\XINT_infloat_J-{\expandafter-\romannumeral0\XINT_infloat_K }% \def\XINT_infloat_K #1.#2% {% \expandafter\XINT_infloat_L \the\numexpr\xintLength{#1}\expandafter.\the\numexpr #2+\xint_c_iv.{#1}{#2}% }% \def\XINT_infloat_L #1.#2.% {% \ifnum #1>#2 \expandafter\XINT_infloat_Ma \else \expandafter\XINT_infloat_Mb \fi #1.#2.% }% \def\XINT_infloat_Ma #1.#2.#3% {% \expandafter\XINT_infloat_MtoN\expandafter-\expandafter0\expandafter.% \romannumeral0\XINT_split_fromleft#2.#3\xint_bye2345678\xint_bye..% #2.#1.{#3}% }% \def\XINT_infloat_Mb #1.#2.#3% {% \expandafter\XINT_infloat_MtoN\the\numexpr#2-#1.% #3..#2.#1.{#3}% }% \def\XINT_infloat_MtoN #1.#2.#3.#4.#5.#6#7#8#9% {% \expandafter\XINT_infloat_N \the\numexpr\xintLength{#9}.#4.{#9}#1.#2.#7.#5.#8.{#6}{#9}% }% \def\XINT_infloat_N #1.#2.% {% \ifnum #1>#2 \expandafter\XINT_infloat_Oa \else \expandafter\XINT_infloat_Ob \fi #1.#2.% }% \def\XINT_infloat_Oa #1.#2.#3% {% \expandafter\XINT_infloat_P\expandafter-\expandafter0\expandafter.% \romannumeral0\XINT_split_fromleft#2.#3\xint_bye2345678\xint_bye..% #1.% }% \def\XINT_infloat_Ob #1.#2.#3% {% \expandafter\XINT_infloat_P\the\numexpr#2-#1.#3..#1.% }% \def\XINT_infloat_P #1#2.#3.#4.#5.#6#7.#8.#9.% {% \csname XINT_infloat_Q\if-#1\else\if-#6\else q\fi\fi\expandafter\endcsname \romannumeral0\xintiiquo {\romannumeral0\XINT_dsx_addzerosnofuss {#6#7-#1#2+#9+\xint_c_iii\if-#1\else\if-#6\else-\xint_c_ii\fi\fi}#8;}% {#3}.#9.#5.% }% \def\XINT_infloat_Qq #1.#2.% {% \expandafter\XINT_infloat_Rq \romannumeral0\XINT_split_fromleft#2.#1\xint_bye2345678\xint_bye..#2.% }% \def\XINT_infloat_Rq #1.#2#3.% {% \ifnum#2<\xint_c_v \expandafter\XINT_infloat_SEq \else\expandafter\XINT_infloat_SUp \fi {\if.#3.\xint_c_\else\xint_c_i\fi}#1.% }% \def\XINT_infloat_Q #1.#2.% {% \expandafter\XINT_infloat_R \romannumeral0\XINT_split_fromleft#2.#1\xint_bye2345678\xint_bye..#2.% }% \def\XINT_infloat_R #1.#2#3#4#5.% {% \if.#5.\expandafter\XINT_infloat_Sa\else\expandafter\XINT_infloat_Sb\fi #2#3#4#5.#1.% }% \def\XINT_infloat_Sa #1.% {% \ifnum#1>500 \xint_dothis\XINT_infloat_SUp\fi \ifnum#1<499 \xint_dothis\XINT_infloat_SEq\fi \xint_orthat\XINT_infloat_X\xint_c_ }% \def\XINT_infloat_Sb #1.% {% \ifnum#1>5009 \xint_dothis\XINT_infloat_SUp\fi \ifnum#1<4990 \xint_dothis\XINT_infloat_SEq\fi \xint_orthat\XINT_infloat_X\xint_c_i }% \def\XINT_infloat_SEq #1#2.#3.#4.#5.#6.#7#8% {% \expandafter\XINT_infloat_SY \the\numexpr #6+#5-#4-#3+#1.#2.% }% \def\XINT_infloat_SY #1.#2.{ #2[#1]}% \def\XINT_infloat_SUp #1#2#3.#4.#5.#6.#7.#8#9% {% \expandafter\XINT_infloat_Y \the\numexpr#7+#6-#5-#4+#1\expandafter.% \romannumeral0\xintinc{#2#3}.#2% }% \def\XINT_infloat_X #1#2#3.#4.#5.#6.#7.#8#9% {% \expandafter\XINT_infloat_Y \the\numexpr #7+#6-#5-#4+#1\expandafter.% \romannumeral`&&@\romannumeral0\xintiiiflt {\xintDSH{#6-#5-#4+#1}{\xintDouble{#8}}}% {\xintiiMul{\xintInc{\xintDouble{#2#3}}}{#9}}% \xint_firstofone \xintinc{#2#3}.#2% }% \def\XINT_infloat_Y #1{% \def\XINT_infloat_Y ##1.##2##3.##4% {% \if##49\if##21\expandafter\expandafter\expandafter\XINT_infloat_Z\fi\fi #1##2##3[##1]% }}\XINT_infloat_Y{ }% \def\XINT_infloat_Z #1#2#3[#4]% {% \expandafter\XINT_infloat_ZZ\the\numexpr#4+\xint_c_i.#3.% }% \def\XINT_infloat_ZZ #1.#2.{ 1#2[#1]}% \def\xintPFloat {\romannumeral0\xintpfloat }% \def\xintpfloat #1{\XINT_pfloat_chkopt #1\xint:}% \def\XINT_pfloat_chkopt #1% {% \ifx [#1\expandafter\XINT_pfloat_opt \else\expandafter\XINT_pfloat_noopt \fi #1% }% \def\XINT_pfloat_noopt #1\xint:% {% \expandafter\XINT_pfloat_a \romannumeral0\xintfloat [\XINTdigits]{#1};\XINTdigits.% }% \def\XINT_pfloat_opt [\xint:#1]% {% \expandafter\XINT_pfloat_opt_a \the\numexpr #1.% }% \def\XINT_pfloat_opt_a #1.#2% {% \expandafter\XINT_pfloat_a\romannumeral0\xintfloat [#1]{#2};#1.% }% \def\XINT_pfloat_a #1% {% \xint_UDzerominusfork #1-\XINT_pfloat_zero 0#1\XINT_pfloat_neg 0-\XINT_pfloat_pos \krof #1% }% \def\XINT_pfloat_zero #1;#2.{ 0.}% \def\XINT_pfloat_neg-{\expandafter-\romannumeral0\XINT_pfloat_pos }% \def\XINT_pfloat_pos #1.#2e#3;#4.% {% \ifnum #3>\xint_c_v \xint_dothis\XINT_pfloat_no\fi \ifnum #3<-\xint_c_v \xint_dothis\XINT_pfloat_no\fi \ifnum #3<\xint_c_ \xint_dothis\XINT_pfloat_N\fi \ifnum #3>\numexpr #4-\xint_c_i\relax \xint_dothis\XINT_pfloat_Ps\fi \xint_orthat\XINT_pfloat_P #1{#2}{#3}% }% \def\XINT_pfloat_no {% \expandafter\XINT_pfloat_no_e\expandafter{\xintPFloatE}% }% \def\XINT_pfloat_no_e #1#2#3#4{ #2.#3#1#4}% \def\xintPFloatE{e}% \def\XINT_pfloat_N #1#2#3% {% \csname XINT_pfloat_N_\romannumeral-#3\endcsname #1#2% }% \def\XINT_pfloat_N_i { 0.}% \def\XINT_pfloat_N_ii { 0.0}% \def\XINT_pfloat_N_iii{ 0.00}% \def\XINT_pfloat_N_iv { 0.000}% \def\XINT_pfloat_N_v { 0.0000}% \def\XINT_pfloat_P #1#2#3% {% \csname XINT_pfloat_P_\romannumeral#3\endcsname #1#2% }% \def\XINT_pfloat_P_ #1{ #1.}% \def\XINT_pfloat_P_i #1#2{ #1#2.}% \def\XINT_pfloat_P_ii #1#2#3{ #1#2#3.}% \def\XINT_pfloat_P_iii#1#2#3#4{ #1#2#3#4.}% \def\XINT_pfloat_P_iv #1#2#3#4#5{ #1#2#3#4#5.}% \def\XINT_pfloat_P_v #1#2#3#4#5#6{ #1#2#3#4#5#6.}% \def\XINT_pfloat_Ps #1#2#3% {% \csname XINT_pfloat_Ps\romannumeral#3\endcsname #1#200000;% }% \def\XINT_pfloat_Psi #1#2#3;{ #1#2.}% \def\XINT_pfloat_Psii #1#2#3#4;{ #1#2#3.}% \def\XINT_pfloat_Psiii#1#2#3#4#5;{ #1#2#3#4.}% \def\XINT_pfloat_Psiv #1#2#3#4#5#6;{ #1#2#3#4#5.}% \def\XINT_pfloat_Psv #1#2#3#4#5#6#7;{ #1#2#3#4#5#6.}% \def\XINTinFloatFracdigits {\romannumeral0\XINTinfloatfracdigits }% \def\XINTinfloatfracdigits #1% {% \expandafter\XINT_infloatfracdg_a\expandafter {\romannumeral0\xinttfrac{#1}}% }% \def\XINT_infloatfracdg_a {\XINTinfloat [\XINTdigits]}% \def\xintFloatAdd {\romannumeral0\xintfloatadd }% \def\xintfloatadd #1{\XINT_fladd_chkopt \xintfloat #1\xint:}% \def\XINTinFloatAdd {\romannumeral0\XINTinfloatadd }% \def\XINTinfloatadd #1{\XINT_fladd_chkopt \XINTinfloatS #1\xint:}% \def\XINT_fladd_chkopt #1#2% {% \ifx [#2\expandafter\XINT_fladd_opt \else\expandafter\XINT_fladd_noopt \fi #1#2% }% \def\XINT_fladd_noopt #1#2\xint:#3% {% #1[\XINTdigits]% {\expandafter\XINT_FL_add_a \romannumeral0\XINTinfloat[\XINTdigits]{#2}\XINTdigits.{#3}}% }% \def\XINT_fladd_opt #1[\xint:#2]%#3#4% {% \expandafter\XINT_fladd_opt_a\the\numexpr #2.#1% }% \def\XINT_fladd_opt_a #1.#2#3#4% {% #2[#1]{\expandafter\XINT_FL_add_a\romannumeral0\XINTinfloat[#1]{#3}#1.{#4}}% }% \def\XINT_FL_add_a #1% {% \xint_gob_til_zero #1\XINT_FL_add_zero 0\XINT_FL_add_b #1% }% \def\XINT_FL_add_zero #1.#2{#2}%[[ \def\XINT_FL_add_b #1]#2.#3% {% \expandafter\XINT_FL_add_c\romannumeral0\XINTinfloat[#2]{#3}#2.#1]% }% \def\XINT_FL_add_c #1% {% \xint_gob_til_zero #1\XINT_FL_add_zero 0\XINT_FL_add_d #1% }% \def\XINT_FL_add_d #1[#2]#3.#4[#5]% {% \ifnum\numexpr #2-#3-#5>\xint_c_\xint_dothis\xint_firstoftwo\fi \ifnum\numexpr #5-#3-#2>\xint_c_\xint_dothis\xint_secondoftwo\fi \xint_orthat\xintAdd {#1[#2]}{#4[#5]}% }% \def\xintFloatSub {\romannumeral0\xintfloatsub }% \def\xintfloatsub #1{\XINT_flsub_chkopt \xintfloat #1\xint:}% \def\XINTinFloatSub {\romannumeral0\XINTinfloatsub }% \def\XINTinfloatsub #1{\XINT_flsub_chkopt \XINTinfloatS #1\xint:}% \def\XINT_flsub_chkopt #1#2% {% \ifx [#2\expandafter\XINT_flsub_opt \else\expandafter\XINT_flsub_noopt \fi #1#2% }% \def\XINT_flsub_noopt #1#2\xint:#3% {% #1[\XINTdigits]% {\expandafter\XINT_FL_add_a \romannumeral0\XINTinfloat[\XINTdigits]{#2}\XINTdigits.{\xintOpp{#3}}}% }% \def\XINT_flsub_opt #1[\xint:#2]%#3#4% {% \expandafter\XINT_flsub_opt_a\the\numexpr #2.#1% }% \def\XINT_flsub_opt_a #1.#2#3#4% {% #2[#1]{\expandafter\XINT_FL_add_a\romannumeral0\XINTinfloat[#1]{#3}#1.{\xintOpp{#4}}}% }% \def\xintFloatMul {\romannumeral0\xintfloatmul }% \def\xintfloatmul #1{\XINT_flmul_chkopt \xintfloat #1\xint:}% \def\XINTinFloatMul {\romannumeral0\XINTinfloatmul }% \def\XINTinfloatmul #1{\XINT_flmul_chkopt \XINTinfloatS #1\xint:}% \def\XINT_flmul_chkopt #1#2% {% \ifx [#2\expandafter\XINT_flmul_opt \else\expandafter\XINT_flmul_noopt \fi #1#2% }% \def\XINT_flmul_noopt #1#2\xint:#3% {% #1[\XINTdigits]% {\expandafter\XINT_FL_mul_a \romannumeral0\XINTinfloatS[\XINTdigits]{#2}\XINTdigits.{#3}}% }% \def\XINT_flmul_opt #1[\xint:#2]%#3#4% {% \expandafter\XINT_flmul_opt_a\the\numexpr #2.#1% }% \def\XINT_flmul_opt_a #1.#2#3#4% {% #2[#1]{\expandafter\XINT_FL_mul_a\romannumeral0\XINTinfloatS[#1]{#3}#1.{#4}}% }% \def\XINT_FL_mul_a #1[#2]#3.#4% {% \expandafter\XINT_FL_mul_b\romannumeral0\XINTinfloatS[#3]{#4}#1[#2]% }% \def\XINT_FL_mul_b #1[#2]#3[#4]{\xintiiMul{#3}{#1}/1[#4+#2]}% \def\XINTinFloatInv#1{\XINTinFloatS[\XINTdigits]{\xintInv{#1}}}% \def\xintFloatDiv {\romannumeral0\xintfloatdiv }% \def\xintfloatdiv #1{\XINT_fldiv_chkopt \xintfloat #1\xint:}% \def\XINTinFloatDiv {\romannumeral0\XINTinfloatdiv }% \def\XINTinfloatdiv #1{\XINT_fldiv_chkopt \XINTinfloatS #1\xint:}% \def\XINT_fldiv_chkopt #1#2% {% \ifx [#2\expandafter\XINT_fldiv_opt \else\expandafter\XINT_fldiv_noopt \fi #1#2% }% \def\XINT_fldiv_noopt #1#2\xint:#3% {% #1[\XINTdigits]% {\expandafter\XINT_FL_div_a \romannumeral0\XINTinfloatS[\XINTdigits]{#3}\XINTdigits.{#2}}% }% \def\XINT_fldiv_opt #1[\xint:#2]%#3#4% {% \expandafter\XINT_fldiv_opt_a\the\numexpr #2.#1% }% \def\XINT_fldiv_opt_a #1.#2#3#4% {% #2[#1]{\expandafter\XINT_FL_div_a\romannumeral0\XINTinfloatS[#1]{#4}#1.{#3}}% }% \def\XINT_FL_div_a #1[#2]#3.#4% {% \expandafter\XINT_FL_div_b\romannumeral0\XINTinfloatS[#3]{#4}/#1e#2% }% \def\XINT_FL_div_b #1[#2]{#1e#2}% \def\xintFloatPow {\romannumeral0\xintfloatpow}% \def\xintfloatpow #1{\XINT_flpow_chkopt \xintfloat #1\xint:}% \def\XINTinFloatPow {\romannumeral0\XINTinfloatpow }% \def\XINTinfloatpow #1{\XINT_flpow_chkopt \XINTinfloatS #1\xint:}% \def\XINT_flpow_chkopt #1#2% {% \ifx [#2\expandafter\XINT_flpow_opt \else\expandafter\XINT_flpow_noopt \fi #1#2% }% \def\XINT_flpow_noopt #1#2\xint:#3% {% \expandafter\XINT_flpow_checkB_a \the\numexpr #3.\XINTdigits.{#2}{#1[\XINTdigits]}% }% \def\XINT_flpow_opt #1[\xint:#2]% {% \expandafter\XINT_flpow_opt_a\the\numexpr #2.#1% }% \def\XINT_flpow_opt_a #1.#2#3#4% {% \expandafter\XINT_flpow_checkB_a\the\numexpr #4.#1.{#3}{#2[#1]}% }% \def\XINT_flpow_checkB_a #1% {% \xint_UDzerominusfork #1-\XINT_flpow_BisZero 0#1{\XINT_flpow_checkB_b -}% 0-{\XINT_flpow_checkB_b {}#1}% \krof }% \def\XINT_flpow_BisZero .#1.#2#3{#3{1[0]}}% \def\XINT_flpow_checkB_b #1#2.#3.% {% \expandafter\XINT_flpow_checkB_c \the\numexpr\xintLength{#2}+\xint_c_iii.#3.#2.{#1}% }% \def\XINT_flpow_checkB_c #1.#2.% {% \expandafter\XINT_flpow_checkB_d\the\numexpr#1+#2.#1.#2.% }% \def\XINT_flpow_checkB_d #1.#2.#3.#4.#5#6% {% \expandafter \XINT_flpow_aa \romannumeral0\XINTinfloat [#3]{#6}{#2}{#1}{#4}{#5}% }% \def\XINT_flpow_aa #1[#2]#3% {% \expandafter\XINT_flpow_ab\the\numexpr #2-#3\expandafter.% \romannumeral\XINT_rep #3\endcsname0.#1.% }% \def\XINT_flpow_ab #1.#2.#3.{\XINT_flpow_a #3#2[#1]}% \def\XINT_flpow_a #1% {% \xint_UDzerominusfork #1-\XINT_flpow_zero 0#1{\XINT_flpow_b \iftrue}% 0-{\XINT_flpow_b \iffalse#1}% \krof }% \def\XINT_flpow_zero #1[#2]#3#4#5#6% {% #6{\if 1#51\xint_dothis {0[0]}\fi \xint_orthat {\XINT_signalcondition{DivisionByZero}{0 to the power #4}{}{0[0]}}% }% }% \def\XINT_flpow_b #1#2[#3]#4#5% {% \XINT_flpow_loopI #5.#3.#2.#4.{#1\ifodd #5 \xint_c_i\fi\fi}% }% \def\XINT_flpow_truncate #1.#2.#3.% {% \expandafter\XINT_flpow_truncate_a \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.% {% \ifnum #1=\xint_c_i\expandafter\XINT_flpow_ItoIII\fi \ifodd #1 \expandafter\XINT_flpow_loopI_odd \else \expandafter\XINT_flpow_loopI_even \fi #1.% }% \def\XINT_flpow_ItoIII\ifodd #1\fi #2.#3.#4.#5.#6% {% \expandafter\XINT_flpow_III\the\numexpr #6+\xint_c_.#3.#4.#5.% }% \def\XINT_flpow_loopI_even #1.#2.#3.%#4.% {% \expandafter\XINT_flpow_loopI \the\numexpr #1/\xint_c_ii\expandafter.% \the\numexpr\expandafter\XINT_flpow_truncate \the\numexpr\xint_c_ii*#2\expandafter.\romannumeral0\xintiisqr{#3}.% }% \def\XINT_flpow_loopI_odd #1.#2.#3.#4.% {% \expandafter\XINT_flpow_loopII \the\numexpr #1/\xint_c_ii-\xint_c_i\expandafter.% \the\numexpr\expandafter\XINT_flpow_truncate \the\numexpr\xint_c_ii*#2\expandafter.\romannumeral0\xintiisqr{#3}.#4.#2.#3.% }% \def\XINT_flpow_loopII #1.% {% \ifnum #1 = \xint_c_i\expandafter\XINT_flpow_IItoIII\fi \ifodd #1 \expandafter\XINT_flpow_loopII_odd \else \expandafter\XINT_flpow_loopII_even \fi #1.% }% \def\XINT_flpow_loopII_even #1.#2.#3.%#4.% {% \expandafter\XINT_flpow_loopII \the\numexpr #1/\xint_c_ii\expandafter.% \the\numexpr\expandafter\XINT_flpow_truncate \the\numexpr\xint_c_ii*#2\expandafter.\romannumeral0\xintiisqr{#3}.% }% \def\XINT_flpow_loopII_odd #1.#2.#3.#4.#5.#6.% {% \expandafter\XINT_flpow_loopII_odda \the\numexpr\expandafter\XINT_flpow_truncate \the\numexpr#2+#5\expandafter.\romannumeral0\xintiimul{#3}{#6}.#4.% #1.#2.#3.% }% \def\XINT_flpow_loopII_odda #1.#2.#3.#4.#5.#6.% {% \expandafter\XINT_flpow_loopII \the\numexpr #4/\xint_c_ii-\xint_c_i\expandafter.% \the\numexpr\expandafter\XINT_flpow_truncate \the\numexpr\xint_c_ii*#5\expandafter.\romannumeral0\xintiisqr{#6}.#3.% #1.#2.% }% \def\XINT_flpow_IItoIII\ifodd #1\fi #2.#3.#4.#5.#6.#7.#8% {% \expandafter\XINT_flpow_III\the\numexpr #8+\xint_c_\expandafter.% \the\numexpr\expandafter\XINT_flpow_truncate \the\numexpr#3+#6\expandafter.\romannumeral0\xintiimul{#4}{#7}.#5.% }% \def\XINT_flpow_III #1.#2.#3.#4.#5% {% \expandafter\XINT_flpow_IIIend \xint_UDsignfork #5{{1/#3[-#2]}}% -{{#3[#2]}}% \krof #1% }% \def\XINT_flpow_IIIend #1#2#3% {#3{\if#21\xint_afterfi{\expandafter-\romannumeral`&&@}\fi#1}}% \def\xintFloatPower {\romannumeral0\xintfloatpower}% \def\xintfloatpower #1{\XINT_flpower_chkopt \xintfloat #1\xint:}% \def\XINTinFloatPower {\romannumeral0\XINTinfloatpower }% \def\XINTinfloatpower #1{\XINT_flpower_chkopt \XINTinfloatS #1\xint:}% \def\XINTinFloatPowerH {\romannumeral0\XINTinfloatpowerh }% \def\XINTinfloatpowerh #1#2% {% \expandafter\XINT_flpowerh_a\romannumeral0\xintitrunc1{#2};% \XINTdigits.{#1}{\XINTinfloatS[\XINTdigits]}% }% \def\XINT_flpowerh_a #1;% {% \if0\xintLDg{#1}\expandafter\XINT_flpowerh_int \else\expandafter\XINT_flpowerh_b \fi #1.% }% \def\XINT_flpowerh_int #1% {% \if0#1\expandafter\XINT_flpower_BisZero \else\expandafter\XINT_flpowerh_i \fi #1% }% \def\XINT_flpowerh_i #10.{\expandafter\XINT_flpower_checkB_a#1.}% \def\XINT_flpowerh_b #1.% {% \expandafter\XINT_flpowerh_c\romannumeral0\xintdsrr{\xintDouble{#1}}.% }% \def\XINT_flpowerh_c #1.% {% \ifodd\xintLDg{#1} %<- intentional space \expandafter\XINT_flpowerh_d\else\expandafter\XINT_flpowerh_e \fi #1.% }% \def\XINT_flpowerh_d #1.\XINTdigits.#2#3% {% \XINT_flpower_checkB_a #1.\XINTdigits.{#2}\XINT_flpowerh_finish }% \def\XINT_flpowerh_finish #1% {\XINTinfloatS[\XINTdigits]{\XINTinFloatSqrt[\XINTdigits+\xint_c_iii]{#1}}}% \def\XINT_flpowerh_e #1.% {\expandafter\XINT_flpower_checkB_a\romannumeral0\xinthalf{#1}.}% \def\XINT_flpower_chkopt #1#2% {% \ifx [#2\expandafter\XINT_flpower_opt \else\expandafter\XINT_flpower_noopt \fi #1#2% }% \def\XINT_flpower_noopt #1#2\xint:#3% {% \expandafter\XINT_flpower_checkB_a \romannumeral0\xintnum{#3}.\XINTdigits.{#2}{#1[\XINTdigits]}% }% \def\XINT_flpower_opt #1[\xint:#2]% {% \expandafter\XINT_flpower_opt_a\the\numexpr #2.#1% }% \def\XINT_flpower_opt_a #1.#2#3#4% {% \expandafter\XINT_flpower_checkB_a \romannumeral0\xintnum{#4}.#1.{#3}{#2[#1]}% }% \def\XINT_flpower_checkB_a #1% {% \xint_UDzerominusfork #1-{\XINT_flpower_BisZero 0}% 0#1{\XINT_flpower_checkB_b -}% 0-{\XINT_flpower_checkB_b {}#1}% \krof }% \def\XINT_flpower_BisZero 0.#1.#2#3{#3{1[0]}}% \def\XINT_flpower_checkB_b #1#2.#3.% {% \expandafter\XINT_flpower_checkB_c \the\numexpr\xintLength{#2}+\xint_c_iii.#3.#2.{#1}% }% \def\XINT_flpower_checkB_c #1.#2.% {% \expandafter\XINT_flpower_checkB_d\the\numexpr#1+#2.#1.#2.% }% \def\XINT_flpower_checkB_d #1.#2.#3.#4.#5#6% {% \expandafter \XINT_flpower_aa \romannumeral0\XINTinfloat [#3]{#6}{#2}{#1}{#4}{#5}% }% \def\XINT_flpower_aa #1[#2]#3% {% \expandafter\XINT_flpower_ab\the\numexpr #2-#3\expandafter.% \romannumeral\XINT_rep #3\endcsname0.#1.% }% \def\XINT_flpower_ab #1.#2.#3.{\XINT_flpower_a #3#2[#1]}% \def\XINT_flpower_a #1% {% \xint_UDzerominusfork #1-\XINT_flpow_zero 0#1{\XINT_flpower_b \iftrue}% 0-{\XINT_flpower_b \iffalse#1}% \krof }% \def\XINT_flpower_b #1#2[#3]#4#5% {% \XINT_flpower_loopI #5.#3.#2.#4.{#1\xintiiOdd{#5}\fi}% }% \def\XINT_flpower_loopI #1.% {% \if1\XINT_isOne {#1}\xint_dothis\XINT_flpower_ItoIII\fi \ifodd\xintLDg{#1} %<- intentional space \xint_dothis{\expandafter\XINT_flpower_loopI_odd}\fi \xint_orthat{\expandafter\XINT_flpower_loopI_even}% \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% {% \expandafter\XINT_flpow_III\the\numexpr #5+\xint_c_.#2.#3.#4.% }% \def\XINT_flpower_loopI_even #1.#2.#3.#4.% {% \expandafter\XINT_flpower_toloopI \the\numexpr\expandafter\XINT_flpow_truncate \the\numexpr\xint_c_ii*#2\expandafter.\romannumeral0\xintiisqr{#3}.#4.#1.% }% \def\XINT_flpower_toloopI #1.#2.#3.#4.{\XINT_flpower_loopI #4.#1.#2.#3.}% \def\XINT_flpower_loopI_odd #1.#2.#3.#4.% {% \expandafter\XINT_flpower_toloopII \the\numexpr\expandafter\XINT_flpow_truncate \the\numexpr\xint_c_ii*#2\expandafter.\romannumeral0\xintiisqr{#3}.#4.% #1.#2.#3.% }% \def\XINT_flpower_toloopII #1.#2.#3.#4.{\XINT_flpower_loopII #4.#1.#2.#3.}% \def\XINT_flpower_loopII #1.% {% \if1\XINT_isOne{#1}\xint_dothis\XINT_flpower_IItoIII\fi \ifodd\xintLDg{#1} %<- intentional space \xint_dothis{\expandafter\XINT_flpower_loopII_odd}\fi \xint_orthat{\expandafter\XINT_flpower_loopII_even}% \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.% {% \expandafter\XINT_flpower_toloopII \the\numexpr\expandafter\XINT_flpow_truncate \the\numexpr\xint_c_ii*#2\expandafter.\romannumeral0\xintiisqr{#3}.#4.#1.% }% \def\XINT_flpower_loopII_odd #1.#2.#3.#4.#5.#6.% {% \expandafter\XINT_flpower_loopII_odda \the\numexpr\expandafter\XINT_flpow_truncate \the\numexpr#2+#5\expandafter.\romannumeral0\xintiimul{#3}{#6}.#4.% #1.#2.#3.% }% \def\XINT_flpower_loopII_odda #1.#2.#3.#4.#5.#6.% {% \expandafter\XINT_flpower_toloopII \the\numexpr\expandafter\XINT_flpow_truncate \the\numexpr\xint_c_ii*#5\expandafter.\romannumeral0\xintiisqr{#6}.#3.% #4.#1.#2.% }% \def\XINT_flpower_IItoIII #1.#2.#3.#4.#5.#6.#7% {% \expandafter\XINT_flpow_III\the\numexpr #7+\xint_c_\expandafter.% \the\numexpr\expandafter\XINT_flpow_truncate \the\numexpr#2+#5\expandafter.\romannumeral0\xintiimul{#3}{#6}.#4.% }% \def\xintFloatFac {\romannumeral0\xintfloatfac}% \def\xintfloatfac #1{\XINT_flfac_chkopt \xintfloat #1\xint:}% \def\XINTinFloatFac {\romannumeral0\XINTinfloatfac }% \def\XINTinfloatfac #1{\XINT_flfac_chkopt \XINTinfloatS #1\xint:}% \def\XINT_flfac_chkopt #1#2% {% \ifx [#2\expandafter\XINT_flfac_opt \else\expandafter\XINT_flfac_noopt \fi #1#2% }% \def\XINT_flfac_noopt #1#2\xint: {% \expandafter\XINT_FL_fac_fork_a \the\numexpr \xintNum{#2}.\xint_c_i \XINTdigits\XINT_FL_fac_out{#1[\XINTdigits]}% }% \def\XINT_flfac_opt #1[\xint:#2]% {% \expandafter\XINT_flfac_opt_a\the\numexpr #2.#1% }% \def\XINT_flfac_opt_a #1.#2#3% {% \expandafter\XINT_FL_fac_fork_a\the\numexpr \xintNum{#3}.\xint_c_i {#1}\XINT_FL_fac_out{#2[#1]}% }% \def\XINT_FL_fac_fork_a #1% {% \xint_UDzerominusfork #1-\XINT_FL_fac_iszero 0#1\XINT_FL_fac_isneg 0-{\XINT_FL_fac_fork_b #1}% \krof }% \def\XINT_FL_fac_iszero #1.#2#3#4#5{#5{1[0]}}% \def\XINT_FL_fac_isneg #1.#2#3#4#5% {% #5{\XINT_signalcondition{InvalidOperation} {Factorial of negative: (-#1)!}{}{0[0]}}% }% \def\XINT_FL_fac_fork_b #1.% {% \ifnum #1>\xint_c_x^viii_mone\xint_dothis\XINT_FL_fac_toobig\fi \ifnum #1>\xint_c_x^iv\xint_dothis\XINT_FL_fac_vbig \fi \ifnum #1>465 \xint_dothis\XINT_FL_fac_big\fi \ifnum #1>101 \xint_dothis\XINT_FL_fac_med\fi \xint_orthat\XINT_FL_fac_small #1.% }% \def\XINT_FL_fac_toobig #1.#2#3#4#5% {% #5{\XINT_signalcondition{InvalidOperation} {Factorial of too big: (#1)!}{}{0[0]}}% }% \def\XINT_FL_fac_vbig {\expandafter\XINT_FL_fac_vbigloop_a \the\numexpr \XINT_FL_fac_increaseP \xint_c_i }% \def\XINT_FL_fac_big {\expandafter\XINT_FL_fac_bigloop_a \the\numexpr \XINT_FL_fac_increaseP \xint_c_ii }% \def\XINT_FL_fac_med {\expandafter\XINT_FL_fac_medloop_a \the\numexpr \XINT_FL_fac_increaseP \xint_c_iii }% \def\XINT_FL_fac_small {\expandafter\XINT_FL_fac_smallloop_a \the\numexpr \XINT_FL_fac_increaseP \xint_c_iv }% \def\XINT_FL_fac_increaseP #1#2.#3#4% {% #2\expandafter.\the\numexpr\xint_c_viii*% ((\xint_c_iv+#4+\expandafter\XINT_FL_fac_countdigits \the\numexpr #2/(#1*#3)\relax 87654321\Z)/\xint_c_viii).% }% \def\XINT_FL_fac_countdigits #1#2#3#4#5#6#7#8{\XINT_FL_fac_countdone }% \def\XINT_FL_fac_countdone #1#2\Z {#1}% \def\XINT_FL_fac_out #1;![#2]#3% {#3{\romannumeral0\XINT_mul_out #1;!1\R!1\R!1\R!1\R!% 1\R!1\R!1\R!1\R!\W [#2]}}% \def\XINT_FL_fac_vbigloop_a #1.#2.% {% \XINT_FL_fac_bigloop_a \xint_c_x^iv.#2.% {\expandafter\XINT_FL_fac_vbigloop_loop\the\numexpr 100010001\expandafter.% \the\numexpr \xint_c_x^viii+#1.}% }% \def\XINT_FL_fac_vbigloop_loop #1.#2.% {% \ifnum #1>#2 \expandafter\XINT_FL_fac_loop_exit\fi \expandafter\XINT_FL_fac_vbigloop_loop \the\numexpr #1+\xint_c_i\expandafter.% \the\numexpr #2\expandafter.\the\numexpr\XINT_FL_fac_mul #1!% }% \def\XINT_FL_fac_bigloop_a #1.% {% \expandafter\XINT_FL_fac_bigloop_b \the\numexpr #1+\xint_c_i-\xint_c_ii*((#1-464)/\xint_c_ii).#1.% }% \def\XINT_FL_fac_bigloop_b #1.#2.#3.% {% \expandafter\XINT_FL_fac_medloop_a \the\numexpr #1-\xint_c_i.#3.{\XINT_FL_fac_bigloop_loop #1.#2.}% }% \def\XINT_FL_fac_bigloop_loop #1.#2.% {% \ifnum #1>#2 \expandafter\XINT_FL_fac_loop_exit\fi \expandafter\XINT_FL_fac_bigloop_loop \the\numexpr #1+\xint_c_ii\expandafter.% \the\numexpr #2\expandafter.\the\numexpr\XINT_FL_fac_bigloop_mul #1!% }% \def\XINT_FL_fac_bigloop_mul #1!% {% \expandafter\XINT_FL_fac_mul \the\numexpr \xint_c_x^viii+#1*(#1+\xint_c_i)!% }% \def\XINT_FL_fac_medloop_a #1.% {% \expandafter\XINT_FL_fac_medloop_b \the\numexpr #1+\xint_c_i-\xint_c_iii*((#1-100)/\xint_c_iii).#1.% }% \def\XINT_FL_fac_medloop_b #1.#2.#3.% {% \expandafter\XINT_FL_fac_smallloop_a \the\numexpr #1-\xint_c_i.#3.{\XINT_FL_fac_medloop_loop #1.#2.}% }% \def\XINT_FL_fac_medloop_loop #1.#2.% {% \ifnum #1>#2 \expandafter\XINT_FL_fac_loop_exit\fi \expandafter\XINT_FL_fac_medloop_loop \the\numexpr #1+\xint_c_iii\expandafter.% \the\numexpr #2\expandafter.\the\numexpr\XINT_FL_fac_medloop_mul #1!% }% \def\XINT_FL_fac_medloop_mul #1!% {% \expandafter\XINT_FL_fac_mul \the\numexpr \xint_c_x^viii+#1*(#1+\xint_c_i)*(#1+\xint_c_ii)!% }% \def\XINT_FL_fac_smallloop_a #1.% {% \csname XINT_FL_fac_smallloop_\the\numexpr #1-\xint_c_iv*(#1/\xint_c_iv)\relax \endcsname #1.% }% \expandafter\def\csname XINT_FL_fac_smallloop_1\endcsname #1.#2.% {% \XINT_FL_fac_addzeros #2.100000001!.{2.#1.}{#2}% }% \expandafter\def\csname XINT_FL_fac_smallloop_-2\endcsname #1.#2.% {% \XINT_FL_fac_addzeros #2.100000002!.{3.#1.}{#2}% }% \expandafter\def\csname XINT_FL_fac_smallloop_-1\endcsname #1.#2.% {% \XINT_FL_fac_addzeros #2.100000006!.{4.#1.}{#2}% }% \expandafter\def\csname XINT_FL_fac_smallloop_0\endcsname #1.#2.% {% \XINT_FL_fac_addzeros #2.100000024!.{5.#1.}{#2}% }% \def\XINT_FL_fac_addzeros #1.% {% \ifnum #1=\xint_c_viii \expandafter\XINT_FL_fac_addzeros_exit\fi \expandafter\XINT_FL_fac_addzeros \the\numexpr #1-\xint_c_viii.100000000!% }% \def\XINT_FL_fac_addzeros_exit #1.#2.#3#4{\XINT_FL_fac_smallloop_loop #3#21;![-#4]}% \def\XINT_FL_fac_smallloop_loop #1.#2.% {% \ifnum #1>#2 \expandafter\XINT_FL_fac_loop_exit\fi \expandafter\XINT_FL_fac_smallloop_loop \the\numexpr #1+\xint_c_iv\expandafter.% \the\numexpr #2\expandafter.\romannumeral0\XINT_FL_fac_smallloop_mul #1!% }% \def\XINT_FL_fac_smallloop_mul #1!% {% \expandafter\XINT_FL_fac_mul \the\numexpr \xint_c_x^viii+#1*(#1+\xint_c_i)*(#1+\xint_c_ii)*(#1+\xint_c_iii)!% }%[[ \def\XINT_FL_fac_loop_exit #1!#2]#3{#3#2]}% \def\XINT_FL_fac_mul 1#1!% {\expandafter\XINT_FL_fac_mul_a\the\numexpr\XINT_FL_fac_smallmul 10!{#1}}% \def\XINT_FL_fac_mul_a #1-#2% {% \if#21\xint_afterfi{\expandafter\space\xint_gob_til_exclam}\else \expandafter\space\fi #11;!% }% \def\XINT_FL_fac_minimulwc_a #1#2#3#4#5!#6#7#8#9% {% \XINT_FL_fac_minimulwc_b {#1#2#3#4}{#5}{#6#7#8#9}% }% \def\XINT_FL_fac_minimulwc_b #1#2#3#4!#5% {% \expandafter\XINT_FL_fac_minimulwc_c \the\numexpr \xint_c_x^ix+#5+#2*#4!{{#1}{#2}{#3}{#4}}% }% \def\XINT_FL_fac_minimulwc_c 1#1#2#3#4#5#6!#7% {% \expandafter\XINT_FL_fac_minimulwc_d {#1#2#3#4#5}#7{#6}% }% \def\XINT_FL_fac_minimulwc_d #1#2#3#4#5% {% \expandafter\XINT_FL_fac_minimulwc_e \the\numexpr \xint_c_x^ix+#1+#2*#5+#3*#4!{#2}{#4}% }% \def\XINT_FL_fac_minimulwc_e 1#1#2#3#4#5#6!#7#8#9% {% 1#6#9\expandafter!% \the\numexpr\expandafter\XINT_FL_fac_smallmul \the\numexpr \xint_c_x^viii+#1#2#3#4#5+#7*#8!% }% \def\XINT_FL_fac_smallmul 1#1!#21#3!% {% \xint_gob_til_sc #3\XINT_FL_fac_smallmul_end;% \XINT_FL_fac_minimulwc_a #2!#3!{#1}{#2}% }% \def\XINT_FL_fac_smallmul_end;\XINT_FL_fac_minimulwc_a #1!;!#2#3[#4]% {% \ifnum #2=\xint_c_ \expandafter\xint_firstoftwo\else \expandafter\xint_secondoftwo \fi {-2\relax[#4]}% {1#2\expandafter!\expandafter-\expandafter1\expandafter [\the\numexpr #4+\xint_c_viii]}% }% \def\xintFloatPFactorial {\romannumeral0\xintfloatpfactorial}% \def\xintfloatpfactorial #1{\XINT_flpfac_chkopt \xintfloat #1\xint:}% \def\XINTinFloatPFactorial {\romannumeral0\XINTinfloatpfactorial }% \def\XINTinfloatpfactorial #1{\XINT_flpfac_chkopt \XINTinfloat #1\xint:}% \def\XINT_flpfac_chkopt #1#2% {% \ifx [#2\expandafter\XINT_flpfac_opt \else\expandafter\XINT_flpfac_noopt \fi #1#2% }% \def\XINT_flpfac_noopt #1#2\xint:#3% {% \expandafter\XINT_FL_pfac_fork \the\numexpr \xintNum{#2}\expandafter.% \the\numexpr \xintNum{#3}.\xint_c_i{\XINTdigits}{#1[\XINTdigits]}% }% \def\XINT_flpfac_opt #1[\xint:#2]% {% \expandafter\XINT_flpfac_opt_b\the\numexpr #2.#1% }% \def\XINT_flpfac_opt_b #1.#2#3#4% {% \expandafter\XINT_FL_pfac_fork \the\numexpr \xintNum{#3}\expandafter.% \the\numexpr \xintNum{#4}.\xint_c_i{#1}{#2[#1]}% }% \def\XINT_FL_pfac_fork #1#2.#3#4.% {% \unless\ifnum #1#2<#3#4 \xint_dothis\XINT_FL_pfac_one\fi \if-#3\xint_dothis\XINT_FL_pfac_neg \fi \if-#1\xint_dothis\XINT_FL_pfac_zero\fi \ifnum #3#4>\xint_c_x^viii_mone\xint_dothis\XINT_FL_pfac_outofrange\fi \xint_orthat \XINT_FL_pfac_increaseP #1#2.#3#4.% }% \def\XINT_FL_pfac_outofrange #1.#2.#3#4#5% {% #5{\XINT_signalcondition{InvalidOperation} {pfactorial second arg too big: 99999999 < #2}{}{0[0]}}% }% \def\XINT_FL_pfac_one #1.#2.#3#4#5{#5{1[0]}}% \def\XINT_FL_pfac_zero #1.#2.#3#4#5{#5{0[0]}}% \def\XINT_FL_pfac_neg -#1.-#2.% {% \ifnum #1>\xint_c_x^viii\xint_dothis\XINT_FL_pfac_outofrange\fi \xint_orthat {% \ifodd\numexpr#2-#1\relax\xint_afterfi{\expandafter-\romannumeral`&&@}\fi \expandafter\XINT_FL_pfac_increaseP}% \the\numexpr #2-\xint_c_i\expandafter.\the\numexpr#1-\xint_c_i.% }% \def\XINT_FL_pfac_increaseP #1.#2.#3#4% {% \expandafter\XINT_FL_pfac_a \the\numexpr \xint_c_viii*((\xint_c_iv+#4+\expandafter \XINT_FL_fac_countdigits\the\numexpr (#2-#1-\xint_c_i)% /\ifnum #2>\xint_c_x^iv #3\else(#3*\xint_c_ii)\fi\relax 87654321\Z)/\xint_c_viii).#1.#2.% }% \def\XINT_FL_pfac_a #1.#2.#3.% {% \expandafter\XINT_FL_pfac_b\the\numexpr \xint_c_i+#2\expandafter.% \the\numexpr#3\expandafter.% \romannumeral0\XINT_FL_pfac_addzeroes #1.100000001!1;![-#1]% }% \def\XINT_FL_pfac_addzeroes #1.% {% \ifnum #1=\xint_c_viii \expandafter\XINT_FL_pfac_addzeroes_exit\fi \expandafter\XINT_FL_pfac_addzeroes\the\numexpr #1-\xint_c_viii.100000000!% }% \def\XINT_FL_pfac_addzeroes_exit #1.{ }% \def\XINT_FL_pfac_b #1.% {% \ifnum #1>9999 \xint_dothis\XINT_FL_pfac_vbigloop \fi \ifnum #1>463 \xint_dothis\XINT_FL_pfac_bigloop \fi \ifnum #1>98 \xint_dothis\XINT_FL_pfac_medloop \fi \xint_orthat\XINT_FL_pfac_smallloop #1.% }% \def\XINT_FL_pfac_smallloop #1.#2.% {% \ifcase\numexpr #2-#1\relax \expandafter\XINT_FL_pfac_end_ \or \expandafter\XINT_FL_pfac_end_i \or \expandafter\XINT_FL_pfac_end_ii \or \expandafter\XINT_FL_pfac_end_iii \else\expandafter\XINT_FL_pfac_smallloop_a \fi #1.#2.% }% \def\XINT_FL_pfac_smallloop_a #1.#2.% {% \expandafter\XINT_FL_pfac_smallloop_b \the\numexpr #1+\xint_c_iv\expandafter.% \the\numexpr #2\expandafter.% \romannumeral0\expandafter\XINT_FL_fac_mul \the\numexpr \xint_c_x^viii+#1*(#1+\xint_c_i)*(#1+\xint_c_ii)*(#1+\xint_c_iii)!% }% \def\XINT_FL_pfac_smallloop_b #1.% {% \ifnum #1>98 \expandafter\XINT_FL_pfac_medloop \else \expandafter\XINT_FL_pfac_smallloop \fi #1.% }% \def\XINT_FL_pfac_medloop #1.#2.% {% \ifcase\numexpr #2-#1\relax \expandafter\XINT_FL_pfac_end_ \or \expandafter\XINT_FL_pfac_end_i \or \expandafter\XINT_FL_pfac_end_ii \else\expandafter\XINT_FL_pfac_medloop_a \fi #1.#2.% }% \def\XINT_FL_pfac_medloop_a #1.#2.% {% \expandafter\XINT_FL_pfac_medloop_b \the\numexpr #1+\xint_c_iii\expandafter.% \the\numexpr #2\expandafter.% \romannumeral0\expandafter\XINT_FL_fac_mul \the\numexpr \xint_c_x^viii+#1*(#1+\xint_c_i)*(#1+\xint_c_ii)!% }% \def\XINT_FL_pfac_medloop_b #1.% {% \ifnum #1>463 \expandafter\XINT_FL_pfac_bigloop \else \expandafter\XINT_FL_pfac_medloop \fi #1.% }% \def\XINT_FL_pfac_bigloop #1.#2.% {% \ifcase\numexpr #2-#1\relax \expandafter\XINT_FL_pfac_end_ \or \expandafter\XINT_FL_pfac_end_i \else\expandafter\XINT_FL_pfac_bigloop_a \fi #1.#2.% }% \def\XINT_FL_pfac_bigloop_a #1.#2.% {% \expandafter\XINT_FL_pfac_bigloop_b \the\numexpr #1+\xint_c_ii\expandafter.% \the\numexpr #2\expandafter.% \romannumeral0\expandafter\XINT_FL_fac_mul \the\numexpr \xint_c_x^viii+#1*(#1+\xint_c_i)!% }% \def\XINT_FL_pfac_bigloop_b #1.% {% \ifnum #1>9999 \expandafter\XINT_FL_pfac_vbigloop \else \expandafter\XINT_FL_pfac_bigloop \fi #1.% }% \def\XINT_FL_pfac_vbigloop #1.#2.% {% \ifnum #2=#1 \expandafter\XINT_FL_pfac_end_ \else\expandafter\XINT_FL_pfac_vbigloop_a \fi #1.#2.% }% \def\XINT_FL_pfac_vbigloop_a #1.#2.% {% \expandafter\XINT_FL_pfac_vbigloop \the\numexpr #1+\xint_c_i\expandafter.% \the\numexpr #2\expandafter.% \romannumeral0\expandafter\XINT_FL_fac_mul \the\numexpr\xint_c_x^viii+#1!% }% \def\XINT_FL_pfac_end_iii #1.#2.% {% \expandafter\XINT_FL_fac_out \romannumeral0\expandafter\XINT_FL_fac_mul \the\numexpr \xint_c_x^viii+#1*(#1+\xint_c_i)*(#1+\xint_c_ii)*(#1+\xint_c_iii)!% }% \def\XINT_FL_pfac_end_ii #1.#2.% {% \expandafter\XINT_FL_fac_out \romannumeral0\expandafter\XINT_FL_fac_mul \the\numexpr \xint_c_x^viii+#1*(#1+\xint_c_i)*(#1+\xint_c_ii)!% }% \def\XINT_FL_pfac_end_i #1.#2.% {% \expandafter\XINT_FL_fac_out \romannumeral0\expandafter\XINT_FL_fac_mul \the\numexpr \xint_c_x^viii+#1*(#1+\xint_c_i)!% }% \def\XINT_FL_pfac_end_ #1.#2.% {% \expandafter\XINT_FL_fac_out \romannumeral0\expandafter\XINT_FL_fac_mul \the\numexpr \xint_c_x^viii+#1!% }% \def\xintFloatBinomial {\romannumeral0\xintfloatbinomial}% \def\xintfloatbinomial #1{\XINT_flbinom_chkopt \xintfloat #1\xint:}% \def\XINTinFloatBinomial {\romannumeral0\XINTinfloatbinomial }% \def\XINTinfloatbinomial #1{\XINT_flbinom_chkopt \XINTinfloat #1\xint:}% \def\XINT_flbinom_chkopt #1#2% {% \ifx [#2\expandafter\XINT_flbinom_opt \else\expandafter\XINT_flbinom_noopt \fi #1#2% }% \def\XINT_flbinom_noopt #1#2\xint:#3% {% \expandafter\XINT_FL_binom_a \the\numexpr\xintNum{#2}\expandafter.\the\numexpr\xintNum{#3}.\XINTdigits.#1% }% \def\XINT_flbinom_opt #1[\xint:#2]#3#4% {% \expandafter\XINT_FL_binom_a \the\numexpr\xintNum{#3}\expandafter.\the\numexpr\xintNum{#4}\expandafter.% \the\numexpr #2.#1% }% \def\XINT_FL_binom_a #1.#2.% {% \expandafter\XINT_FL_binom_fork \the\numexpr #1-#2.#2.#1.% }% \def\XINT_FL_binom_fork #1#2.#3#4.#5#6.% {% \if-#5\xint_dothis \XINT_FL_binom_neg\fi \if-#1\xint_dothis \XINT_FL_binom_zero\fi \if-#3\xint_dothis \XINT_FL_binom_zero\fi \if0#1\xint_dothis \XINT_FL_binom_one\fi \if0#3\xint_dothis \XINT_FL_binom_one\fi \ifnum #5#6>\xint_c_x^viii_mone \xint_dothis\XINT_FL_binom_toobig\fi \ifnum #1#2>#3#4 \xint_dothis\XINT_FL_binom_ab \fi \xint_orthat\XINT_FL_binom_aa #1#2.#3#4.#5#6.% }% \def\XINT_FL_binom_neg #1.#2.#3.#4.#5% {% #5[#4]{\XINT_signalcondition{InvalidOperation} {binomial with first arg negative: #3}{}{0[0]}}% }% \def\XINT_FL_binom_toobig #1.#2.#3.#4.#5% {% #5[#4]{\XINT_signalcondition{InvalidOperation} {binomial with first arg too big: 99999999 < #3}{}{0[0]}}% }% \def\XINT_FL_binom_one #1.#2.#3.#4.#5{#5[#4]{1[0]}}% \def\XINT_FL_binom_zero #1.#2.#3.#4.#5{#5[#4]{0[0]}}% \def\XINT_FL_binom_aa #1.#2.#3.#4.#5% {% #5[#4]{\xintDiv{\XINT_FL_pfac_increaseP #2.#3.\xint_c_iv{#4+\xint_c_i}{\XINTinfloat[#4+\xint_c_iii]}}% {\XINT_FL_fac_fork_b #1.\xint_c_iv{#4+\xint_c_i}\XINT_FL_fac_out{\XINTinfloat[#4+\xint_c_iii]}}}% }% \def\XINT_FL_binom_ab #1.#2.#3.#4.#5% {% #5[#4]{\xintDiv{\XINT_FL_pfac_increaseP #1.#3.\xint_c_iv{#4+\xint_c_i}{\XINTinfloat[#4+\xint_c_iii]}}% {\XINT_FL_fac_fork_b #2.\xint_c_iv{#4+\xint_c_i}\XINT_FL_fac_out{\XINTinfloat[#4+\xint_c_iii]}}}% }% \def\xintFloatSqrt {\romannumeral0\xintfloatsqrt }% \def\xintfloatsqrt #1{\XINT_flsqrt_chkopt \xintfloat #1\xint:}% \def\XINTinFloatSqrt {\romannumeral0\XINTinfloatsqrt }% \def\XINTinfloatsqrt #1{\XINT_flsqrt_chkopt \XINTinfloat #1\xint:}% \def\XINT_flsqrt_chkopt #1#2% {% \ifx [#2\expandafter\XINT_flsqrt_opt \else\expandafter\XINT_flsqrt_noopt \fi #1#2% }% \def\XINT_flsqrt_noopt #1#2\xint:% {% \expandafter\XINT_FL_sqrt_a \romannumeral0\XINTinfloat[\XINTdigits]{#2}\XINTdigits.#1% }% \def\XINT_flsqrt_opt #1[\xint:#2]%#3% {% \expandafter\XINT_flsqrt_opt_a\the\numexpr #2.#1% }% \def\XINT_flsqrt_opt_a #1.#2#3% {% \expandafter\XINT_FL_sqrt_a\romannumeral0\XINTinfloat[#1]{#3}#1.#2% }% \def\XINT_FL_sqrt_a #1% {% \xint_UDzerominusfork #1-\XINT_FL_sqrt_iszero 0#1\XINT_FL_sqrt_isneg 0-{\XINT_FL_sqrt_pos #1}% \krof }%[ \def\XINT_FL_sqrt_iszero #1]#2.#3{#3[#2]{0[0]}}% \def\XINT_FL_sqrt_isneg #1]#2.#3% {% #3[#2]{\XINT_signalcondition{InvalidOperation} {Square root of negative: -#1]}{}{0[0]}}% }% \def\XINT_FL_sqrt_pos #1[#2]#3.% {% \expandafter\XINT_flsqrt \the\numexpr #3\ifodd #2 \xint_dothis {+\xint_c_iii.(#2+\xint_c_i).0}\fi \xint_orthat {+\xint_c_ii.#2.{}}#100.#3.% }% \def\XINT_flsqrt #1.#2.% {% \expandafter\XINT_flsqrt_a \the\numexpr #2/\xint_c_ii-(#1-\xint_c_i)/\xint_c_ii.#1.% }% \def\XINT_flsqrt_a #1.#2.#3#4.#5.% {% \expandafter\XINT_flsqrt_b \the\numexpr (#2-\xint_c_i)/\xint_c_ii\expandafter.% \romannumeral0\XINT_sqrt_start #2.#4#3.#5.#2.#4#3.#5.#1.% }% \def\XINT_flsqrt_b #1.#2#3% {% \expandafter\XINT_flsqrt_c \romannumeral0\xintiisub {\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#2.#1\xint_bye2345678\xint_bye..% }% \def\XINT_flsqrt_d #1.#2#3.% {% \ifnum #2=\xint_c_v \expandafter\XINT_flsqrt_f\else\expandafter\XINT_flsqrt_finish\fi #2#3.#1.% }% \def\XINT_flsqrt_finish #1#2.#3.#4.#5.#6.#7.#8{#8[#6]{#3#1[#7]}}% \def\XINT_flsqrt_f 5#1.% {\expandafter\XINT_flsqrt_g\romannumeral0\xintinum{#1}\relax.}% \def\XINT_flsqrt_g #1#2#3.{\if\relax#2\xint_dothis{\XINT_flsqrt_h #1}\fi \xint_orthat{\XINT_flsqrt_finish 5.}}% \def\XINT_flsqrt_h #1{\ifnum #1<\xint_c_iii\xint_dothis{\XINT_flsqrt_again}\fi \xint_orthat{\XINT_flsqrt_finish 5.}}% \def\XINT_flsqrt_again #1.#2.% {% \expandafter\XINT_flsqrt_again_a\the\numexpr #2+\xint_c_viii.% }% \def\XINT_flsqrt_again_a #1.#2.#3.% {% \expandafter\XINT_flsqrt_b \the\numexpr (#1-\xint_c_i)/\xint_c_ii\expandafter.% \romannumeral0\XINT_sqrt_start #1.#200000000.#3.% #1.#200000000.#3.% }% \def\xintFloatE {\romannumeral0\xintfloate }% \def\xintfloate #1{\XINT_floate_chkopt #1\xint:}% \def\XINT_floate_chkopt #1% {% \ifx [#1\expandafter\XINT_floate_opt \else\expandafter\XINT_floate_noopt \fi #1% }% \def\XINT_floate_noopt #1\xint:% {% \expandafter\XINT_floate_post \romannumeral0\XINTinfloat[\XINTdigits]{#1}\XINTdigits.% }% \def\XINT_floate_opt [\xint:#1]% {% \expandafter\XINT_floate_opt_a\the\numexpr #1.% }% \def\XINT_floate_opt_a #1.#2% {% \expandafter\XINT_floate_post \romannumeral0\XINTinfloat[#1]{#2}#1.% }% \def\XINT_floate_post #1% {% \xint_UDzerominusfork #1-\XINT_floate_zero 0#1\XINT_floate_neg 0-\XINT_floate_pos \krof #1% }%[ \def\XINT_floate_zero #1]#2.#3{ 0.e0}% \def\XINT_floate_neg-{\expandafter-\romannumeral0\XINT_floate_pos}% \def\XINT_floate_pos #1#2[#3]#4.#5% {% \expandafter\XINT_float_pos_done\the\numexpr#3+#4+#5-\xint_c_i.#1.#2;% }% \def\XINTinFloatE {\romannumeral0\XINTinfloate }% \def\XINTinfloate {\expandafter\XINT_infloate\romannumeral0\XINTinfloat[\XINTdigits]}% \def\XINT_infloate #1[#2]#3% {\expandafter\XINT_infloate_end\the\numexpr #3+#2.{#1}}% \def\XINT_infloate_end #1.#2{ #2[#1]}% \def\XINTinFloatMod {\romannumeral0\XINTinfloatmod [\XINTdigits]}% \def\XINTinfloatmod [#1]#2#3% {% \XINTinfloat[#1]{\xintMod {\romannumeral0\XINTinfloat[#1]{#2}}% {\romannumeral0\XINTinfloat[#1]{#3}}}% }% \def\XINTinFloatDivFloor {\romannumeral0\XINTinfloatdivfloor [\XINTdigits]}% \def\XINTinfloatdivfloor [#1]#2#3% {% \xintdivfloor {\romannumeral0\XINTinfloat[#1]{#2}}% {\romannumeral0\XINTinfloat[#1]{#3}}% }% \def\XINTinFloatDivMod {\romannumeral0\XINTinfloatdivmod [\XINTdigits]}% \def\XINTinfloatdivmod [#1]#2#3% {% \expandafter\XINT_infloatdivmod \romannumeral0\xintdivmod {\romannumeral0\XINTinfloat[#1]{#2}}% {\romannumeral0\XINTinfloat[#1]{#3}}% {#1}% }% \def\XINT_infloatdivmod #1#2#3{\expanded{{#1}{\XINTinFloat[#3]{#2}}}}% \def\xintifFloatInt {\romannumeral0\xintiffloatint}% \def\xintiffloatint #1{\expandafter\XINT_iffloatint \romannumeral0\xintrez{\XINTinFloat[\XINTdigits]{#1}}}% \def\XINT_iffloatint #1#2/1[#3]% {% \if 0#1\xint_dothis\xint_stop_atfirstoftwo\fi \ifnum#3<\xint_c_\xint_dothis\xint_stop_atsecondoftwo\fi \xint_orthat\xint_stop_atfirstoftwo }% \def\xintFloatIsInt {\romannumeral0\xintfloatisint}% \def\xintfloatisint #1{\expandafter\XINT_iffloatint \romannumeral0\xintrez{\XINTinFloat[\XINTdigits]{#1}}10}% \def\XINTinFloatdigits {\XINTinFloat [\XINTdigits]}% \def\XINTinFloatSdigits {\XINTinFloatS [\XINTdigits]}% \def\XINTinFloatSqrtdigits {\XINTinFloatSqrt[\XINTdigits]}% \def\XINTinFloatFacdigits {\XINTinFloatFac [\XINTdigits]}% \def\XINTFloatiLogTendigits{\XINTFloatiLogTen[\XINTdigits]}% \def\XINTinRandomFloatS{\romannumeral0\XINTinrandomfloatS}% \def\XINTinRandomFloatSdigits{\XINTinRandomFloatS[\XINTdigits]}% \def\XINTinrandomfloatS[#1]% {% \expandafter\XINT_inrandomfloatS\the\numexpr\xint_c_-(#1)\xint: }% \def\XINT_inrandomfloatS-#1\xint: {% \expandafter\XINT_inrandomfloatS_a \romannumeral0\xintrandomdigits{#1}[-#1]% }% \def\XINT_inrandomfloatS_a#1% {% \if#10\xint_dothis{\XINT_inrandomfloatS_b}\fi \xint_orthat{ #1}% }%[ \def\XINT_inrandomfloatS_b#1% {% \if#1[\xint_dothis{\XINT_inrandomfloatS_zero}\fi% ] \if#10\xint_dothis{\XINT_inrandomfloatS_b}\fi \xint_orthat{ #1}% }%[ \def\XINT_inrandomfloatS_zero#1]{ 0[0]}% \def\XINTinRandomFloatSixteen% {% \romannumeral0\expandafter\XINT_inrandomfloatS_a \romannumeral`&&@\expandafter\XINT_eightrandomdigits \romannumeral`&&@\XINT_eightrandomdigits[-16]% }% \def\PoorManLogBaseTen{\romannumeral0\poormanlogbaseten}% \def\poormanlogbaseten #1% {\expandafter\PML@logbaseten\romannumeral0\XINTinfloat[9]{#1}}% \def\PML@logbaseten#1[#2]% {% \xintiiadd{\xintDSx{-9}{\the\numexpr#2+8\relax}}{\the\numexpr\PML@#1.}% [-9]% }% \def\PoorManPowerOfTen{\the\numexpr\poormanpoweroften}% \def\poormanpoweroften #1% {\expandafter\PML@powoften\romannumeral0\xintraw{#1}}% \def\PML@powoften#1% {% \xint_UDzerominusfork #1-\PML@powoften@zero 0#1\PML@powoften@neg 0-\PML@powoften@pos \krof #1% }% \def\PML@powoften@zero 0{1\relax}%/1[0] \def\PML@powoften@pos#1[#2]% {% \expandafter\PML@powoften@pos@a\romannumeral0\xintround{9}{#1[#2]}.% }% \def\PML@powoften@pos@a#1.#2.{\PML@Pa#2.\expandafter[\the\numexpr-8+#1]}% \def\PML@powoften@neg#1[#2]% {% \expandafter\PML@powoften@neg@a\romannumeral0\xintround{9}{#1[#2]}.% }% \def\PML@powoften@neg@a#1.#2.% {\ifnum#2=\xint_c_ \xint_afterfi{1\relax/1[#1]}\else \expandafter\expandafter\expandafter \PML@Pa\expandafter\xint_gobble_i\the\numexpr2000000000-#2.% \expandafter[\the\numexpr-9+#1\expandafter]\fi }% \def\PoorManPower#1#2% {% \PoorManPowerOfTen{\xintMul{#2}{\PoorManLogBaseTen{#1}}}% }% \def\xintLog#1{\xintMul{\PoorManLogBaseTen{#1}}{23025850923[-10]}}% \def\XINTinFloatLog#1{\XINTinFloatMul{\PoorManLogBaseTen{#1}}{23025850923[-10]}}% \def\xintExp#1{\PoorManPowerOfTen{\xintMul{#1}{434294481903[-12]}}}% \def\XINTinFloatExp#1{\PoorManPowerOfTen{\XINTinFloatMul{#1}{434294481903[-12]}}}% \let\XINTinFloatMaxof\XINT_Maxof \let\XINTinFloatMinof\XINT_Minof \let\XINTinFloatSum\XINT_Sum \let\XINTinFloatPrd\XINT_Prd \XINT_restorecatcodes_endinput% \endinput %% %% End of file `xintfrac.sty'.