%% %% 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 (version 1.09g of November 22, 2013) %% xintfrac: Expandable operations on fractions %% Copyright (C) 2013 by Jean-Francois Burnol %%---------------------------------------------------------------- %% \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 % : \def\space { }% \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. \y{xintfrac}{Package xint is required}% \y{xintfrac}{Will try \string\input\space xint.sty}% \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. \y{xintfrac}{Package xint is required}% \y{xintfrac}{Will try \string\RequirePackage{xint}}% \def\z{\endgroup\RequirePackage{xint}}% \fi \else \y{xintfrac}{I was already loaded, aborting input}% \aftergroup\endinput \fi \fi \fi \z% \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 % : \ifdefined\PackageInfo \def\y#1#2{\PackageInfo{#1}{#2}}% \else \def\y#1#2{\immediate\write-1{Package #1 Info: #2.}}% \fi \def\empty {}% \expandafter\let\expandafter\w\csname ver@xint.sty\endcsname \ifx\w\relax % Plain TeX, user gave a file name at the prompt \y{xintfrac}{Loading of package xint failed, aborting input}% \aftergroup\endinput \fi \ifx\w\empty % LaTeX, user gave a file name at the prompt \y{xintfrac}{Loading of package xint failed, aborting input}% \aftergroup\endinput \fi \endgroup% \XINTsetupcatcodes% \XINT_providespackage \ProvidesPackage{xintfrac}% [2013/11/22 v1.09g Expandable operations on fractions (jfB)]% \chardef\xint_c_vi 6 \chardef\xint_c_vii 7 \chardef\xint_c_xviii 18 \mathchardef\xint_c_x^iv 10000 \def\xintLen {\romannumeral0\xintlen }% \def\xintlen #1% {% \expandafter\XINT_flen\romannumeral0\XINT_infrac {#1}% }% \def\XINT_flen #1#2#3% {% \expandafter\space \the\numexpr -1+\XINT_Abs {#1}+\XINT_Len {#2}+\XINT_Len {#3}\relax }% \def\XINT_lenrord_loop #1#2#3#4#5#6#7#8#9% {% faire \romannumeral-`0\XINT_lenrord_loop 0{}#1\Z\W\W\W\W\W\W\W\Z \xint_gob_til_W #9\XINT_lenrord_W\W \expandafter\XINT_lenrord_loop\expandafter {\the\numexpr #1+7}{#9#8#7#6#5#4#3#2}% }% \def\XINT_lenrord_W\W\expandafter\XINT_lenrord_loop\expandafter #1#2#3\Z {% \expandafter\XINT_lenrord_X\expandafter {#1}#2\Z }% \def\XINT_lenrord_X #1#2\Z {% \XINT_lenrord_Y #2\R\R\R\R\R\R\T {#1}% }% \def\XINT_lenrord_Y #1#2#3#4#5#6#7#8\T {% \xint_gob_til_W #7\XINT_lenrord_Z \xint_c_viii #6\XINT_lenrord_Z \xint_c_vii #5\XINT_lenrord_Z \xint_c_vi #4\XINT_lenrord_Z \xint_c_v #3\XINT_lenrord_Z \xint_c_iv #2\XINT_lenrord_Z \xint_c_iii \W\XINT_lenrord_Z \xint_c_ii \Z }% \def\XINT_lenrord_Z #1#2\Z #3% retourne: {longueur}renverse\Z {% \expandafter{\the\numexpr #3-#1\relax}% }% \def\XINT_outfrac #1#2#3% {% \ifcase\XINT_Sgn{#3} \expandafter \XINT_outfrac_divisionbyzero \or \expandafter \XINT_outfrac_P \else \expandafter \XINT_outfrac_N \fi {#2}{#3}[#1]% }% \def\XINT_outfrac_divisionbyzero #1#2{\xintError:DivisionByZero\space #1/0}% \def\XINT_outfrac_P #1#2% {% \ifcase\XINT_Sgn{#1} \expandafter\XINT_outfrac_Zero \fi \space #1/#2% }% \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_ \romannumeral-`0#1[\W]\Z\T }% \def\XINT_infrac_ #1[#2#3]#4\Z {% \xint_UDwfork #2\dummy \XINT_infrac_A \W\dummy \XINT_infrac_B \krof #1[#2#3]#4% }% \def\XINT_infrac_A #1[\W]\T {% \XINT_frac #1/\W\Z }% \def\XINT_infrac_B #1% {% \xint_gob_til_zero #1\XINT_infrac_Zero0\XINT_infrac_BB #1% }% \def\XINT_infrac_BB #1[\W]\T {\XINT_infrac_BC #1/\W\Z }% \def\XINT_infrac_BC #1/#2#3\Z {% \xint_UDwfork #2\dummy \XINT_infrac_BCa \W\dummy {\expandafter\XINT_infrac_BCb \romannumeral-`0#2}% \krof #3\Z #1\Z }% \def\XINT_infrac_BCa \Z #1[#2]#3\Z { {#2}{#1}{1}}% \def\XINT_infrac_BCb #1[#2]/\W\Z #3\Z { {#2}{#3}{#1}}% \def\XINT_infrac_Zero #1\T { {0}{0}{1}}% \def\XINT_frac #1/#2#3\Z {% \xint_UDwfork #2\dummy \XINT_frac_A \W\dummy {\expandafter\XINT_frac_U \romannumeral-`0#2}% \krof #3e\W\Z #1e\W\Z }% \def\XINT_frac_U #1e#2#3\Z {% \xint_UDwfork #2\dummy \XINT_frac_Ua \W\dummy {\XINT_frac_Ub #2}% \krof #3\Z #1\Z }% \def\XINT_frac_Ua \Z #1/\W\Z {\XINT_frac_B #1.\W\Z {0}}% \def\XINT_frac_Ub #1/\W e\W\Z #2\Z {\XINT_frac_B #2.\W\Z {#1}}% \def\XINT_frac_B #1.#2#3\Z {% \xint_UDwfork #2\dummy \XINT_frac_Ba \W\dummy {\XINT_frac_Bb #2}% \krof #3\Z #1\Z }% \def\XINT_frac_Ba \Z #1\Z {\XINT_frac_T {0}{#1}}% \def\XINT_frac_Bb #1.\W\Z #2\Z {% \expandafter \XINT_frac_T \expandafter {\romannumeral0\xintlength {#1}}{#2#1}% }% \def\XINT_frac_A e\W\Z {\XINT_frac_T {0}{1}{0}}% \def\XINT_frac_T #1#2#3#4e#5#6\Z {% \xint_UDwfork #5\dummy \XINT_frac_Ta \W\dummy {\XINT_frac_Tb #5}% \krof #6\Z #4\Z {#1}{#2}{#3}% }% \def\XINT_frac_Ta \Z #1\Z {\XINT_frac_C #1.\W\Z {0}}% \def\XINT_frac_Tb #1e\W\Z #2\Z {\XINT_frac_C #2.\W\Z {#1}}% \def\XINT_frac_C #1.#2#3\Z {% \xint_UDwfork #2\dummy \XINT_frac_Ca \W\dummy {\XINT_frac_Cb #2}% \krof #3\Z #1\Z }% \def\XINT_frac_Ca \Z #1\Z {\XINT_frac_D {0}{#1}}% \def\XINT_frac_Cb #1.\W\Z #2\Z {% \expandafter\XINT_frac_D\expandafter {\romannumeral0\xintlength {#1}}{#2#1}% }% \def\XINT_frac_D #1#2#3#4#5#6% {% \expandafter \XINT_frac_E \expandafter {\the\numexpr -#1+#3+#4-#6\expandafter}\expandafter {\romannumeral0\XINT_num_loop #2% \xint_relax\xint_relax\xint_relax\xint_relax \xint_relax\xint_relax\xint_relax\xint_relax\Z }% {\romannumeral0\XINT_num_loop #5% \xint_relax\xint_relax\xint_relax\xint_relax \xint_relax\xint_relax\xint_relax\xint_relax\Z }% }% \def\XINT_frac_E #1#2#3% {% \expandafter \XINT_frac_F #3\Z {#2}{#1}% }% \def\XINT_frac_F #1% {% \xint_UDzerominusfork #1-\dummy \XINT_frac_Gdivisionbyzero 0#1\dummy \XINT_frac_Gneg 0-\dummy {\XINT_frac_Gpos #1}% \krof }% \def\XINT_frac_Gdivisionbyzero #1\Z #2#3% {% \xintError:DivisionByZero\space {0}{#2}{0}% }% \def\XINT_frac_Gneg #1\Z #2#3% {% \expandafter\XINT_frac_H \expandafter{\romannumeral0\XINT_opp #2}{#3}{#1}% }% \def\XINT_frac_H #1#2{ {#2}{#1}}% \def\XINT_frac_Gpos #1\Z #2#3{ {#3}{#2}{#1}}% \def\XINT_factortens #1% {% \expandafter\XINT_cuz_cnt_loop\expandafter {\expandafter}\romannumeral0\XINT_rord_main {}#1% \xint_relax \xint_bye\xint_bye\xint_bye\xint_bye \xint_bye\xint_bye\xint_bye\xint_bye \xint_relax \R\R\R\R\R\R\R\R\Z }% \def\XINT_cuz_cnt #1% {% \XINT_cuz_cnt_loop {}#1\R\R\R\R\R\R\R\R\Z }% \def\XINT_cuz_cnt_loop #1#2#3#4#5#6#7#8#9% {% \xint_gob_til_R #9\XINT_cuz_cnt_toofara \R \expandafter\XINT_cuz_cnt_checka\expandafter {\the\numexpr #1+8\relax}{#2#3#4#5#6#7#8#9}% }% \def\XINT_cuz_cnt_toofara\R \expandafter\XINT_cuz_cnt_checka\expandafter #1#2% {% \XINT_cuz_cnt_toofarb {#1}#2% }% \def\XINT_cuz_cnt_toofarb #1#2\Z {\XINT_cuz_cnt_toofarc #2\Z {#1}}% \def\XINT_cuz_cnt_toofarc #1#2#3#4#5#6#7#8% {% \xint_gob_til_R #2\XINT_cuz_cnt_toofard 7% #3\XINT_cuz_cnt_toofard 6% #4\XINT_cuz_cnt_toofard 5% #5\XINT_cuz_cnt_toofard 4% #6\XINT_cuz_cnt_toofard 3% #7\XINT_cuz_cnt_toofard 2% #8\XINT_cuz_cnt_toofard 1% \Z #1#2#3#4#5#6#7#8% }% \def\XINT_cuz_cnt_toofard #1#2\Z #3\R #4\Z #5% {% \expandafter\XINT_cuz_cnt_toofare \the\numexpr #3\relax \R\R\R\R\R\R\R\R\Z {\the\numexpr #5-#1\relax}\R\Z }% \def\XINT_cuz_cnt_toofare #1#2#3#4#5#6#7#8% {% \xint_gob_til_R #2\XINT_cuz_cnt_stopc 1% #3\XINT_cuz_cnt_stopc 2% #4\XINT_cuz_cnt_stopc 3% #5\XINT_cuz_cnt_stopc 4% #6\XINT_cuz_cnt_stopc 5% #7\XINT_cuz_cnt_stopc 6% #8\XINT_cuz_cnt_stopc 7% \Z #1#2#3#4#5#6#7#8% }% \def\XINT_cuz_cnt_checka #1#2% {% \expandafter\XINT_cuz_cnt_checkb\the\numexpr #2\relax \Z {#1}% }% \def\XINT_cuz_cnt_checkb #1% {% \xint_gob_til_zero #1\expandafter\XINT_cuz_cnt_loop\xint_gob_til_Z 0\XINT_cuz_cnt_stopa #1% }% \def\XINT_cuz_cnt_stopa #1\Z {% \XINT_cuz_cnt_stopb #1\R\R\R\R\R\R\R\R\Z % }% \def\XINT_cuz_cnt_stopb #1#2#3#4#5#6#7#8#9% {% \xint_gob_til_R #2\XINT_cuz_cnt_stopc 1% #3\XINT_cuz_cnt_stopc 2% #4\XINT_cuz_cnt_stopc 3% #5\XINT_cuz_cnt_stopc 4% #6\XINT_cuz_cnt_stopc 5% #7\XINT_cuz_cnt_stopc 6% #8\XINT_cuz_cnt_stopc 7% #9\XINT_cuz_cnt_stopc 8% \Z #1#2#3#4#5#6#7#8#9% }% \def\XINT_cuz_cnt_stopc #1#2\Z #3\R #4\Z #5% {% \expandafter\XINT_cuz_cnt_stopd\expandafter {\the\numexpr #5-#1}#3% }% \def\XINT_cuz_cnt_stopd #1#2\R #3\Z {% \expandafter\space\expandafter {\romannumeral0\XINT_rord_main {}#2% \xint_relax \xint_bye\xint_bye\xint_bye\xint_bye \xint_bye\xint_bye\xint_bye\xint_bye \xint_relax }{#1}% }% \def\xintRaw {\romannumeral0\xintraw }% \def\xintraw {% \expandafter\XINT_raw\romannumeral0\XINT_infrac }% \def\XINT_raw #1#2#3{ #2/#3[#1]}% \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\xintRawWithZeros {\romannumeral0\xintrawwithzeros }% \def\xintrawwithzeros {% \expandafter\XINT_rawz\romannumeral0\XINT_infrac }% \def\XINT_rawz #1% {% \ifcase\XINT_Sgn {#1} \expandafter\XINT_rawz_Ba \or \expandafter\XINT_rawz_A \else \expandafter\XINT_rawz_Ba \fi {#1}% }% \def\XINT_rawz_A #1#2#3{\xint_dsh {#2}{-#1}/#3}% \def\XINT_rawz_Ba #1#2#3{\expandafter\XINT_rawz_Bb \expandafter{\romannumeral0\xint_dsh {#3}{#1}}{#2}}% \def\XINT_rawz_Bb #1#2{ #2/#1}% \def\xintFloor {\romannumeral0\xintfloor }% \def\xintfloor #1{\expandafter\XINT_floor \romannumeral0\xintrawwithzeros {#1}.}% \def\XINT_floor #1/#2.{\xintiiquo {#1}{#2}}% \def\xintCeil {\romannumeral0\xintceil }% \def\xintceil #1{\xintiiopp {\xintFloor {\xintOpp{#1}}}}% \def\xintNumerator {\romannumeral0\xintnumerator }% \def\xintnumerator {% \expandafter\XINT_numer\romannumeral0\XINT_infrac }% \def\XINT_numer #1% {% \ifcase\XINT_Sgn {#1} \expandafter\XINT_numer_B \or \expandafter\XINT_numer_A \else \expandafter\XINT_numer_B \fi {#1}% }% \def\XINT_numer_A #1#2#3{\xint_dsh {#2}{-#1}}% \def\XINT_numer_B #1#2#3{ #2}% \def\xintDenominator {\romannumeral0\xintdenominator }% \def\xintdenominator {% \expandafter\XINT_denom\romannumeral0\XINT_infrac }% \def\XINT_denom #1% {% \ifcase\XINT_Sgn {#1} \expandafter\XINT_denom_B \or \expandafter\XINT_denom_A \else \expandafter\XINT_denom_B \fi {#1}% }% \def\XINT_denom_A #1#2#3{ #3}% \def\XINT_denom_B #1#2#3{\xint_dsh {#3}{#1}}% \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 #1#2#3#4#5% {% \ifcase\XINT_isOne {#5} \or \xint_afterfi {\expandafter\xint_firstoftwo_andstop\xint_gobble_ii }% \fi \space \frac {#4}{#5}% }% \def\XINT_fracfrac_D #1#2#3% {% \ifcase\XINT_isOne {#3} \or \XINT_fracfrac_E \fi \space \frac {#2}{#3}#1% }% \def\XINT_fracfrac_E \fi #1#2#3#4{\fi \space #3\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\dummy \XINT_sgnfrac_N -\dummy {\XINT_sgnfrac_P #1}% \krof }% \def\XINT_sgnfrac_P #1\Z #2% {% \XINT_fracfrac_A {#2}{#1}% }% \def\XINT_sgnfrac_N {% \expandafter\xint_minus_andstop\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% {% \ifcase\XINT_isOne {#5} \xint_afterfi { {#4\over #5}}% \or \xint_afterfi { #4}% \fi }% \def\XINT_fwover_D #1#2#3% {% \ifcase\XINT_isOne {#3} \xint_afterfi { {#2\over #3}}% \or \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\dummy \XINT_sgnfwover_N -\dummy {\XINT_sgnfwover_P #1}% \krof }% \def\XINT_sgnfwover_P #1\Z #2% {% \XINT_fwover_A {#2}{#1}% }% \def\XINT_sgnfwover_N {% \expandafter\xint_minus_andstop\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-\dummy \XINT_rez_zero 0#1\dummy \XINT_rez_neg 0-\dummy {\XINT_rez_B #1}% \krof }% \def\XINT_rez_zero #1\Z #2#3{ 0/1[0]}% \def\XINT_rez_neg {\expandafter\xint_minus_andstop\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#4#5% {% \expandafter\XINT_rez_E\expandafter {\the\numexpr #3+#4-#2}{#1}{#5}% }% \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\expandafter{\the\numexpr #1+#4}{#2}{#3}% }% \def\xintfE {\romannumeral0\xintfe }% \def\xintfe #1% {% \expandafter\XINT_fe \romannumeral0\XINT_infrac {#1}% }% \def\XINT_fe #1#2#3#4% {% \expandafter\XINT_e_end\expandafter{\the\numexpr #1+\xintNum{#4}}{#2}{#3}% }% \def\XINT_e_end #1#2#3{ #2/#3[#1]}% \let\XINTinFloatfE\xintfE \def\xintIrr {\romannumeral0\xintirr }% \def\xintirr #1% {% \expandafter\XINT_irr_start\romannumeral0\xintrawwithzeros {#1}\Z }% \def\XINT_irr_start #1#2/#3\Z {% \ifcase\XINT_isOne {#3} \xint_afterfi {\xint_UDsignfork #1\dummy \XINT_irr_negative -\dummy {\XINT_irr_nonneg #1}% \krof}% \or \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 \xint_minus_andstop}% \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\dummy \XINT_irr_indeterminate #30\dummy \XINT_irr_divisionbyzero #10\dummy \XINT_irr_zero 00\dummy \XINT_irr_loop_a \krof {#3#4}{#1#2}{#3#4}{#1#2}% }% \def\XINT_irr_indeterminate #1#2#3#4#5{\xintError:NaN\space 0/0}% \def\XINT_irr_divisionbyzero #1#2#3#4#5{\xintError:DivisionByZero #5#2/0}% \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\xintNum {\romannumeral0\xintnum }% \def\xintnum #1{\expandafter\XINT_intcheck\romannumeral0\xintirr {#1}\Z }% \def\XINT_intcheck #1/#2\Z {% \ifcase\XINT_isOne {#2} \xintError:NotAnInteger \fi\space #1% }% \def\xintifInt {\romannumeral0\xintifint }% \def\xintifint #1{\expandafter\XINT_ifint\romannumeral0\xintirr {#1}\Z }% \def\XINT_ifint #1/#2\Z {% \if\XINT_isOne {#2}1% \xint_afterfi{\expandafter\space\xint_firstoftwo}% \else \xint_afterfi{\expandafter\space\xint_secondoftwo}% \fi }% \def\xintJrr {\romannumeral0\xintjrr }% \def\xintjrr #1% {% \expandafter\XINT_jrr_start\romannumeral0\xintrawwithzeros {#1}\Z }% \def\XINT_jrr_start #1#2/#3\Z {% \ifcase\XINT_isOne {#3} \xint_afterfi {\xint_UDsignfork #1\dummy \XINT_jrr_negative -\dummy {\XINT_jrr_nonneg #1}% \krof}% \or \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 \xint_minus_andstop }% \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\dummy \XINT_jrr_indeterminate #30\dummy \XINT_jrr_divisionbyzero #10\dummy \XINT_jrr_zero 00\dummy \XINT_jrr_loop_a \krof {#3#4}{#1#2}1001% }% \def\XINT_jrr_indeterminate #1#2#3#4#5#6#7{\xintError:NaN\space 0/0}% \def\XINT_jrr_divisionbyzero #1#2#3#4#5#6#7{\xintError:DivisionByZero #7#2/0}% \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{#4}{#1}}{#6}}% {\romannumeral0\xintiiadd{\XINT_Mul{#5}{#1}}{#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\xintTrunc {\romannumeral0\xinttrunc }% \def\xintiTrunc {\romannumeral0\xintitrunc }% \def\xinttrunc #1% {% \expandafter\XINT_trunc\expandafter {\the\numexpr #1}% }% \def\XINT_trunc #1#2% {% \expandafter\XINT_trunc_G \romannumeral0\expandafter\XINT_trunc_A \romannumeral0\XINT_infrac {#2}{#1}{#1}% }% \def\xintitrunc #1% {% \expandafter\XINT_itrunc\expandafter {\the\numexpr #1}% }% \def\XINT_itrunc #1#2% {% \expandafter\XINT_itrunc_G \romannumeral0\expandafter\XINT_trunc_A \romannumeral0\XINT_infrac {#2}{#1}{#1}% }% \def\XINT_trunc_A #1#2#3#4% {% \expandafter\XINT_trunc_checkifzero \expandafter{\the\numexpr #1+#4}#2\Z {#3}% }% \def\XINT_trunc_checkifzero #1#2#3\Z {% \xint_gob_til_zero #2\XINT_trunc_iszero0\XINT_trunc_B {#1}{#2#3}% }% \def\XINT_trunc_iszero #1#2#3#4#5{ 0\Z 0}% \def\XINT_trunc_B #1% {% \ifcase\XINT_Sgn {#1} \expandafter\XINT_trunc_D \or \expandafter\XINT_trunc_D \else \expandafter\XINT_trunc_C \fi {#1}% }% \def\XINT_trunc_C #1#2#3% {% \expandafter \XINT_trunc_E \romannumeral0\xint_dsh {#3}{#1}\Z #2\Z }% \def\XINT_trunc_D #1#2% {% \expandafter \XINT_trunc_DE \expandafter {\romannumeral0\xint_dsh {#2}{-#1}}% }% \def\XINT_trunc_DE #1#2{\XINT_trunc_E #2\Z #1\Z }% \def\XINT_trunc_E #1#2\Z #3#4\Z {% \xint_UDsignsfork #1#3\dummy \XINT_trunc_minusminus #1-\dummy {\XINT_trunc_minusplus #3}% #3-\dummy {\XINT_trunc_plusminus #1}% --\dummy {\XINT_trunc_plusplus #3#1}% \krof {#4}{#2}% }% \def\XINT_trunc_minusminus #1#2{\xintiiquo {#1}{#2}\Z \space}% \def\XINT_trunc_minusplus #1#2#3{\xintiiquo {#1#2}{#3}\Z \xint_minus_andstop}% \def\XINT_trunc_plusminus #1#2#3{\xintiiquo {#2}{#1#3}\Z \xint_minus_andstop}% \def\XINT_trunc_plusplus #1#2#3#4{\xintiiquo {#1#3}{#2#4}\Z \space}% \def\XINT_itrunc_G #1#2\Z #3#4% {% \xint_gob_til_zero #1\XINT_trunc_zero 0\xint_firstoftwo {#3#1#2}0% }% \def\XINT_trunc_G #1\Z #2#3% {% \xint_gob_til_zero #2\XINT_trunc_zero 0% \expandafter\XINT_trunc_H\expandafter {\the\numexpr\romannumeral0\xintlength {#1}-#3}{#3}{#1}#2% }% \def\XINT_trunc_zero 0#10{ 0}% \def\XINT_trunc_H #1#2% {% \ifnum #1 > 0 \xint_afterfi {\XINT_trunc_Ha {#2}}% \else \xint_afterfi {\XINT_trunc_Hb {-#1}}% -0,--1,--2, .... \fi }% \def\XINT_trunc_Ha {% \expandafter\XINT_trunc_Haa\romannumeral0\xintdecsplit }% \def\XINT_trunc_Haa #1#2#3% {% #3#1.#2% }% \def\XINT_trunc_Hb #1#2#3% {% \expandafter #3\expandafter0\expandafter.% \romannumeral0\XINT_dsx_zeroloop {#1}{}\Z {}#2% #1=-0 possible! }% \def\xintRound {\romannumeral0\xintround }% \def\xintiRound {\romannumeral0\xintiround }% \def\xintround #1% {% \expandafter\XINT_round\expandafter {\the\numexpr #1}% }% \def\XINT_round {% \expandafter\XINT_trunc_G\romannumeral0\XINT_round_A }% \def\xintiround #1% {% \expandafter\XINT_iround\expandafter {\the\numexpr #1}% }% \def\XINT_iround {% \expandafter\XINT_itrunc_G\romannumeral0\XINT_round_A }% \def\XINT_round_A #1#2% {% \expandafter\XINT_round_B \romannumeral0\expandafter\XINT_trunc_A \romannumeral0\XINT_infrac {#2}{\the\numexpr #1+1\relax}{#1}% }% \def\XINT_round_B #1\Z {% \expandafter\XINT_round_C \romannumeral0\XINT_rord_main {}#1% \xint_relax \xint_bye\xint_bye\xint_bye\xint_bye \xint_bye\xint_bye\xint_bye\xint_bye \xint_relax \Z }% \def\XINT_round_C #1% {% \ifnum #1<5 \expandafter\XINT_round_Daa \else \expandafter\XINT_round_Dba \fi }% \def\XINT_round_Daa #1% {% \xint_gob_til_Z #1\XINT_round_Daz\Z \XINT_round_Da #1% }% \def\XINT_round_Daz\Z \XINT_round_Da \Z { 0\Z }% \def\XINT_round_Da #1\Z {% \XINT_rord_main {}#1% \xint_relax \xint_bye\xint_bye\xint_bye\xint_bye \xint_bye\xint_bye\xint_bye\xint_bye \xint_relax \Z }% \def\XINT_round_Dba #1% {% \xint_gob_til_Z #1\XINT_round_Dbz\Z \XINT_round_Db #1% }% \def\XINT_round_Dbz\Z \XINT_round_Db \Z { 1\Z }% \def\XINT_round_Db #1\Z {% \XINT_addm_A 0{}1000\W\X\Y\Z #1000\W\X\Y\Z \Z }% \def\xintRound:csv #1{\expandafter\XINT_round:_a\romannumeral-`0#1,,^}% \def\XINT_round:_a {\XINT_round:_b {}}% \def\XINT_round:_b #1#2,% {\expandafter\XINT_round:_c\romannumeral-`0#2,{#1}}% \def\XINT_round:_c #1{\if #1,\expandafter\XINT_round:_f \else\expandafter\XINT_round:_d\fi #1}% \def\XINT_round:_d #1,% {\expandafter\XINT_round:_e\romannumeral0\xintiround 0{#1},}% \def\XINT_round:_e #1,#2{\XINT_round:_b {#2,#1}}% \def\XINT_round:_f ,#1#2^{\xint_gobble_i #1}% \mathchardef\XINTdigits 16 \def\xintDigits #1#2% {\afterassignment \xint_gobble_i \mathchardef\XINTdigits=}% \def\xinttheDigits {\number\XINTdigits }% \def\xintFloat {\romannumeral0\xintfloat }% \def\xintfloat #1{\XINT_float_chkopt #1\Z }% \def\XINT_float_chkopt #1% {% \ifx [#1\expandafter\XINT_float_opt \else\expandafter\XINT_float_noopt \fi #1% }% \def\XINT_float_noopt #1\Z {% \expandafter\XINT_float_a\expandafter\XINTdigits \romannumeral0\XINT_infrac {#1}\XINT_float_Q }% \def\XINT_float_opt [\Z #1]#2% {% \expandafter\XINT_float_a\expandafter {\the\numexpr #1\expandafter}% \romannumeral0\XINT_infrac {#2}\XINT_float_Q }% \def\XINT_float_a #1#2#3% #1=P, #2=n, #3=A, #4=B {% \XINT_float_fork #3\Z {#1}{#2}% #1 = precision, #2=n }% \def\XINT_float_fork #1% {% \xint_UDzerominusfork #1-\dummy \XINT_float_zero 0#1\dummy \XINT_float_J 0-\dummy {\XINT_float_K #1}% \krof }% \def\XINT_float_zero #1\Z #2#3#4#5{ 0.e0}% \def\XINT_float_J {\expandafter\xint_minus_andstop\romannumeral0\XINT_float_K }% \def\XINT_float_K #1\Z #2% #1=A, #2=P, #3=n, #4=B {% \expandafter\XINT_float_L\expandafter {\the\numexpr\xintLength{#1}\expandafter}\expandafter {\the\numexpr #2+\xint_c_ii}{#1}{#2}% }% \def\XINT_float_L #1#2% {% \ifnum #1>#2 \expandafter\XINT_float_Ma \else \expandafter\XINT_float_Mc \fi {#1}{#2}% }% \def\XINT_float_Ma #1#2#3% {% \expandafter\XINT_float_Mb\expandafter {\the\numexpr #1-#2\expandafter\expandafter\expandafter}% \expandafter\expandafter\expandafter {\expandafter\xint_firstoftwo \romannumeral0\XINT_split_fromleft_loop {#2}{}#3\W\W\W\W\W\W\W\W\Z }{#2}% }% \def\XINT_float_Mb #1#2#3#4#5#6% #2=A', #3=P+2, #4=P, #5=n, #6=B {% \expandafter\XINT_float_N\expandafter {\the\numexpr\xintLength{#6}\expandafter}\expandafter {\the\numexpr #3\expandafter}\expandafter {\the\numexpr #1+#5}% {#6}{#3}{#2}{#4}% }% long de B, P+2, n', B, |A'|=P+2, A', P \def\XINT_float_Mc #1#2#3#4#5#6% {% \expandafter\XINT_float_N\expandafter {\romannumeral0\xintlength{#6}}{#2}{#5}{#6}{#1}{#3}{#4}% }% long de B, P+2, n, B, |A|, A, P \def\XINT_float_N #1#2% {% \ifnum #1>#2 \expandafter\XINT_float_O \else \expandafter\XINT_float_P \fi {#1}{#2}% }% \def\XINT_float_O #1#2#3#4% {% \expandafter\XINT_float_P\expandafter {\the\numexpr #2\expandafter}\expandafter {\the\numexpr #2\expandafter}\expandafter {\the\numexpr #3-#1+#2\expandafter\expandafter\expandafter}% \expandafter\expandafter\expandafter {\expandafter\xint_firstoftwo \romannumeral0\XINT_split_fromleft_loop {#2}{}#4\W\W\W\W\W\W\W\W\Z }% }% |B|,P+2,n,B,|A|,A,P \def\XINT_float_P #1#2#3#4#5#6#7#8% {% \expandafter #8\expandafter {\the\numexpr #1-#5+#2-\xint_c_i}% {#6}{#4}{#7}{#3}% }% |B|-|A|+P+1,A,B,P,n \def\XINT_float_Q #1% {% \ifnum #1<\xint_c_ \expandafter\XINT_float_Ri \else \expandafter\XINT_float_Rii \fi {#1}% }% \def\XINT_float_Ri #1#2#3% {% \expandafter\XINT_float_Sa \romannumeral0\xintiiquo {#2}% {\XINT_dsx_addzerosnofuss {-#1}{#3}}\Z {#1}% }% \def\XINT_float_Rii #1#2#3% {% \expandafter\XINT_float_Sa \romannumeral0\xintiiquo {\XINT_dsx_addzerosnofuss {#1}{#2}}{#3}\Z {#1}% }% \def\XINT_float_Sa #1% {% \if #19% \xint_afterfi {\XINT_float_Sb\XINT_float_Wb }% \else \xint_afterfi {\XINT_float_Sb\XINT_float_Wa }% \fi #1% }% \def\XINT_float_Sb #1#2\Z #3#4% {% \expandafter\XINT_float_T\expandafter {\the\numexpr #4+\xint_c_i\expandafter}% \romannumeral-`0\XINT_lenrord_loop 0{}#2\Z\W\W\W\W\W\W\W\Z #1{#3}{#4}% }% \def\XINT_float_T #1#2#3% {% \ifnum #2>#1 \xint_afterfi{\XINT_float_U\XINT_float_Xb}% \else \xint_afterfi{\XINT_float_U\XINT_float_Xa #3}% \fi }% \def\XINT_float_U #1#2% {% \ifnum #2<\xint_c_v \expandafter\XINT_float_Va \else \expandafter\XINT_float_Vb \fi #1% }% \def\XINT_float_Va #1#2\Z #3% {% \expandafter#1% \romannumeral0\expandafter\XINT_float_Wa \romannumeral0\XINT_rord_main {}#2% \xint_relax \xint_bye\xint_bye\xint_bye\xint_bye \xint_bye\xint_bye\xint_bye\xint_bye \xint_relax \Z }% \def\XINT_float_Vb #1#2\Z #3% {% \expandafter #1% \romannumeral0\expandafter #3% \romannumeral0\XINT_addm_A 0{}1000\W\X\Y\Z #2000\W\X\Y\Z \Z }% \def\XINT_float_Wa #1{ #1.}% \def\XINT_float_Wb #1#2% {\if #11\xint_afterfi{ 10.}\else\xint_afterfi{ #1.#2}\fi }% \def\XINT_float_Xa #1\Z #2#3#4% {% \expandafter\XINT_float_Y\expandafter {\the\numexpr #3+#4-#2}{#1}% }% \def\XINT_float_Xb #1\Z #2#3#4% {% \expandafter\XINT_float_Y\expandafter {\the\numexpr #3+#4+\xint_c_i-#2}{#1}% }% \def\XINT_float_Y #1#2{ #2e#1}% \def\xintFloat:csv #1{\expandafter\XINT_float:_a\romannumeral-`0#1,,^}% \def\XINT_float:_a {\XINT_float:_b {}}% \def\XINT_float:_b #1#2,% {\expandafter\XINT_float:_c\romannumeral-`0#2,{#1}}% \def\XINT_float:_c #1{\if #1,\expandafter\XINT_float:_f \else\expandafter\XINT_float:_d\fi #1}% \def\XINT_float:_d #1,% {\expandafter\XINT_float:_e\romannumeral0\xintfloat {#1},}% \def\XINT_float:_e #1,#2{\XINT_float:_b {#2,#1}}% \def\XINT_float:_f ,#1#2^{\xint_gobble_i #1}% \def\XINTinFloat {\romannumeral0\XINT_inFloat }% \def\XINT_inFloat [#1]#2% {% \expandafter\XINT_infloat_a\expandafter {\the\numexpr #1\expandafter}% \romannumeral0\XINT_infrac {#2}\XINT_infloat_Q }% \def\XINT_infloat_a #1#2#3% #1=P, #2=n, #3=A, #4=B {% \XINT_infloat_fork #3\Z {#1}{#2}% #1 = precision, #2=n }% \def\XINT_infloat_fork #1% {% \xint_UDzerominusfork #1-\dummy \XINT_infloat_zero 0#1\dummy \XINT_infloat_J 0-\dummy {\XINT_float_K #1}% \krof }% \def\XINT_infloat_zero #1\Z #2#3#4#5{ 0[0]}% \def\XINT_infloat_J {\expandafter-\romannumeral0\XINT_float_K }% \def\XINT_infloat_Q #1% {% \ifnum #1<\xint_c_ \expandafter\XINT_infloat_Ri \else \expandafter\XINT_infloat_Rii \fi {#1}% }% \def\XINT_infloat_Ri #1#2#3% {% \expandafter\XINT_infloat_S\expandafter {\romannumeral0\xintiiquo {#2}% {\XINT_dsx_addzerosnofuss {-#1}{#3}}}{#1}% }% \def\XINT_infloat_Rii #1#2#3% {% \expandafter\XINT_infloat_S\expandafter {\romannumeral0\xintiiquo {\XINT_dsx_addzerosnofuss {#1}{#2}}{#3}}{#1}% }% \def\XINT_infloat_S #1#2#3% {% \expandafter\XINT_infloat_T\expandafter {\the\numexpr #3+\xint_c_i\expandafter}% \romannumeral-`0\XINT_lenrord_loop 0{}#1\Z\W\W\W\W\W\W\W\Z {#2}% }% \def\XINT_infloat_T #1#2#3% {% \ifnum #2>#1 \xint_afterfi{\XINT_infloat_U\XINT_infloat_Wb}% \else \xint_afterfi{\XINT_infloat_U\XINT_infloat_Wa #3}% \fi }% \def\XINT_infloat_U #1#2% {% \ifnum #2<\xint_c_v \expandafter\XINT_infloat_Va \else \expandafter\XINT_infloat_Vb \fi #1% }% \def\XINT_infloat_Va #1#2\Z {% \expandafter#1% \romannumeral0\XINT_rord_main {}#2% \xint_relax \xint_bye\xint_bye\xint_bye\xint_bye \xint_bye\xint_bye\xint_bye\xint_bye \xint_relax \Z }% \def\XINT_infloat_Vb #1#2\Z {% \expandafter #1% \romannumeral0\XINT_addm_A 0{}1000\W\X\Y\Z #2000\W\X\Y\Z \Z }% \def\XINT_infloat_Wa #1\Z #2#3% {% \expandafter\XINT_infloat_X\expandafter {\the\numexpr #3+\xint_c_i-#2}{#1}% }% \def\XINT_infloat_Wb #1\Z #2#3% {% \expandafter\XINT_infloat_X\expandafter {\the\numexpr #3+\xint_c_ii-#2}{#1}% }% \def\XINT_infloat_X #1#2{ #2[#1]}% \def\xintAdd {\romannumeral0\xintadd }% \def\xintadd #1% {% \expandafter\xint_fadd\expandafter {\romannumeral0\XINT_infrac {#1}}% }% \def\xint_fadd #1#2{\expandafter\XINT_fadd_A\romannumeral0\XINT_infrac{#2}#1}% \def\XINT_fadd_A #1#2#3#4% {% \ifnum #4 > #1 \xint_afterfi {\XINT_fadd_B {#1}}% \else \xint_afterfi {\XINT_fadd_B {#4}}% \fi {#1}{#4}{#2}{#3}% }% \def\XINT_fadd_B #1#2#3#4#5#6#7% {% \expandafter\XINT_fadd_C\expandafter {\romannumeral0\xintiimul {#7}{#5}}% {\romannumeral0\xintiiadd {\romannumeral0\xintiimul {\xintDSH {\the\numexpr -#3+#1\relax}{#6}}{#5}}% {\romannumeral0\xintiimul {#7}{\xintDSH {\the\numexpr -#2+#1\relax}{#4}}}% }% {#1}% }% \def\XINT_fadd_C #1#2#3% {% \expandafter\XINT_fadd_D\expandafter {#2}{#3}{#1}% }% \def\XINT_fadd_D #1#2{\XINT_outfrac {#2}{#1}}% \def\xintSub {\romannumeral0\xintsub }% \def\xintsub #1% {% \expandafter\xint_fsub\expandafter {\romannumeral0\XINT_infrac {#1}}% }% \def\xint_fsub #1#2% {\expandafter\XINT_fsub_A\romannumeral0\XINT_infrac {#2}#1}% \def\XINT_fsub_A #1#2#3#4% {% \ifnum #4 > #1 \xint_afterfi {\XINT_fsub_B {#1}}% \else \xint_afterfi {\XINT_fsub_B {#4}}% \fi {#1}{#4}{#2}{#3}% }% \def\XINT_fsub_B #1#2#3#4#5#6#7% {% \expandafter\XINT_fsub_C\expandafter {\romannumeral0\xintiimul {#7}{#5}}% {\romannumeral0\xintiisub {\romannumeral0\xintiimul {\xintDSH {\the\numexpr -#3+#1\relax}{#6}}{#5}}% {\romannumeral0\xintiimul {#7}{\xintDSH {\the\numexpr -#2+#1\relax}{#4}}}% }% {#1}% }% \def\XINT_fsub_C #1#2#3% {% \expandafter\XINT_fsub_D\expandafter {#2}{#3}{#1}% }% \def\XINT_fsub_D #1#2{\XINT_outfrac {#2}{#1}}% \def\xintSum {\romannumeral0\xintsum }% \def\xintsum #1{\xintsumexpr #1\relax }% \def\xintSumExpr {\romannumeral0\xintsumexpr }% \def\xintsumexpr {\expandafter\XINT_fsumexpr\romannumeral-`0}% \def\XINT_fsumexpr {\XINT_fsum_loop_a {0/1[0]}}% \def\XINT_fsum_loop_a #1#2% {% \expandafter\XINT_fsum_loop_b \romannumeral-`0#2\Z {#1}% }% \def\XINT_fsum_loop_b #1% {% \xint_gob_til_relax #1\XINT_fsum_finished\relax \XINT_fsum_loop_c #1% }% \def\XINT_fsum_loop_c #1\Z #2% {% \expandafter\XINT_fsum_loop_a\expandafter{\romannumeral0\xintadd {#2}{#1}}% }% \def\XINT_fsum_finished #1\Z #2{ #2}% \def\xintSum:csv #1{\expandafter\XINT_sum:_a\romannumeral-`0#1,,^}% \def\XINT_sum:_a {\XINT_sum:_b {0/1[0]}}% \def\XINT_sum:_b #1#2,{\expandafter\XINT_sum:_c\romannumeral-`0#2,{#1}}% \def\XINT_sum:_c #1{\if #1,\expandafter\XINT_sum:_e \else\expandafter\XINT_sum:_d\fi #1}% \def\XINT_sum:_d #1,#2{\expandafter\XINT_sum:_b\expandafter {\romannumeral0\xintadd {#2}{#1}}}% \def\XINT_sum:_e ,#1#2^{#1}% allows empty list \def\xintMul {\romannumeral0\xintmul }% \def\xintmul #1% {% \expandafter\xint_fmul\expandafter {\romannumeral0\XINT_infrac {#1}}% }% \def\xint_fmul #1#2% {\expandafter\XINT_fmul_A\romannumeral0\XINT_infrac {#2}#1}% \def\XINT_fmul_A #1#2#3#4#5#6% {% \expandafter\XINT_fmul_B \expandafter{\the\numexpr #1+#4\expandafter}% \expandafter{\romannumeral0\xintiimul {#6}{#3}}% {\romannumeral0\xintiimul {#5}{#2}}% }% \def\XINT_fmul_B #1#2#3% {% \expandafter \XINT_fmul_C \expandafter{#3}{#1}{#2}% }% \def\XINT_fmul_C #1#2{\XINT_outfrac {#2}{#1}}% \def\xintSqr {\romannumeral0\xintsqr }% \def\xintsqr #1% {% \expandafter\xint_fsqr\expandafter{\romannumeral0\XINT_infrac {#1}}% }% \def\xint_fsqr #1{\XINT_fmul_A #1#1}% \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-\dummy \XINT_fpow_zero 0#1\dummy \XINT_fpow_neg 0-\dummy {\XINT_fpow_pos #1}% \krof {#2}% }% \def\XINT_fpow_zero #1#2#3#4% {% \space 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\expandafter{\the\numexpr \xintNum{#1}}% }% \def\xintPrd {\romannumeral0\xintprd }% \def\xintprd #1{\xintprdexpr #1\relax }% \def\xintPrdExpr {\romannumeral0\xintprdexpr }% \def\xintprdexpr {\expandafter\XINT_fprdexpr \romannumeral-`0}% \def\XINT_fprdexpr {\XINT_fprod_loop_a {1/1[0]}}% \def\XINT_fprod_loop_a #1#2% {% \expandafter\XINT_fprod_loop_b \romannumeral-`0#2\Z {#1}% }% \def\XINT_fprod_loop_b #1% {% \xint_gob_til_relax #1\XINT_fprod_finished\relax \XINT_fprod_loop_c #1% }% \def\XINT_fprod_loop_c #1\Z #2% {% \expandafter\XINT_fprod_loop_a\expandafter{\romannumeral0\xintmul {#1}{#2}}% }% \def\XINT_fprod_finished #1\Z #2{ #2}% \def\xintPrd:csv #1{\expandafter\XINT_prd:_a\romannumeral-`0#1,,^}% \def\XINT_prd:_a {\XINT_prd:_b {1/1[0]}}% \def\XINT_prd:_b #1#2,{\expandafter\XINT_prd:_c\romannumeral-`0#2,{#1}}% \def\XINT_prd:_c #1{\if #1,\expandafter\XINT_prd:_e \else\expandafter\XINT_prd:_d\fi #1}% \def\XINT_prd:_d #1,#2{\expandafter\XINT_prd:_b\expandafter {\romannumeral0\xintmul {#2}{#1}}}% \def\XINT_prd:_e ,#1#2^{#1}% allows empty list \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\xintIsOne {\romannumeral0\xintisone }% \def\xintisone #1{\expandafter\XINT_fracisone \romannumeral0\xintrawwithzeros{#1}\Z }% \def\XINT_fracisone #1/#2\Z{\xintsgnfork{\XINT_Cmp {#1}{#2}}{0}{1}{0}}% \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% {% \xintSgnFork {\xintiiSgn{\the\numexpr #2+\xintLength{#3}-\xintLength{#1}\relax}}% { 0}{\XINT_fgeq_E #2\Z {#3}{#1}}{ 1}% }% \def\XINT_fgeq_E #1% {% \xint_UDsignfork #1\dummy \XINT_fgeq_Fd -\dummy {\XINT_fgeq_Fn #1}% \krof }% \def\XINT_fgeq_Fd #1\Z #2#3% {% \expandafter\XINT_fgeq_Fe\expandafter {\romannumeral0\XINT_dsx_addzerosnofuss {#1}{#3}}{#2}% }% \def\XINT_fgeq_Fe #1#2{\XINT_geq_pre {#2}{#1}}% \def\XINT_fgeq_Fn #1\Z #2#3% {% \expandafter\XINT_geq_pre\expandafter {\romannumeral0\XINT_dsx_addzerosnofuss {#1}{#2}}{#3}% }% \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\dummy \XINT_fmax_minusminus -#5\dummy \XINT_fmax_firstneg #1-\dummy \XINT_fmax_secondneg --\dummy \XINT_fmax_nonneg_a \krof #1#5{#2/#3[#4]}{#6/#7[#8]}% }% \def\XINT_fmax_minusminus --% {\expandafter\xint_minus_andstop\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% {% \ifcase\romannumeral0\XINT_fgeq_A #1#2 \xint_afterfi{ #1}% \or \xint_afterfi{ #2}% \fi }% \def\xintMaxof {\romannumeral0\xintmaxof }% \def\xintmaxof #1{\expandafter\XINT_maxof_a\romannumeral-`0#1\relax }% \def\XINT_maxof_a #1{\expandafter\XINT_maxof_b\romannumeral0\xintraw{#1}\Z }% \def\XINT_maxof_b #1\Z #2% {\expandafter\XINT_maxof_c\romannumeral-`0#2\Z {#1}\Z}% \def\XINT_maxof_c #1% {\xint_gob_til_relax #1\XINT_maxof_e\relax\XINT_maxof_d #1}% \def\XINT_maxof_d #1\Z {\expandafter\XINT_maxof_b\romannumeral0\xintmax {#1}}% \def\XINT_maxof_e #1\Z #2\Z { #2}% \def\xintMaxof:csv #1{\expandafter\XINT_maxof:_b\romannumeral-`0#1,,}% \def\XINT_maxof:_b #1,#2,{\expandafter\XINT_maxof:_c\romannumeral-`0#2,{#1},}% \def\XINT_maxof:_c #1{\if #1,\expandafter\XINT_maxof:_e \else\expandafter\XINT_maxof:_d\fi #1}% \def\XINT_maxof:_d #1,{\expandafter\XINT_maxof:_b\romannumeral0\xintmax {#1}}% \def\XINT_maxof:_e ,#1,{#1}% \def\xintFloatMaxof {\romannumeral0\xintflmaxof }% \def\xintflmaxof #1{\expandafter\XINT_flmaxof_a\romannumeral-`0#1\relax }% \def\XINT_flmaxof_a #1{\expandafter\XINT_flmaxof_b \romannumeral0\XINT_inFloat [\XINTdigits]{#1}\Z }% \def\XINT_flmaxof_b #1\Z #2% {\expandafter\XINT_flmaxof_c\romannumeral-`0#2\Z {#1}\Z}% \def\XINT_flmaxof_c #1% {\xint_gob_til_relax #1\XINT_flmaxof_e\relax\XINT_flmaxof_d #1}% \def\XINT_flmaxof_d #1\Z {\expandafter\XINT_flmaxof_b\romannumeral0\xintmax {\XINTinFloat [\XINTdigits]{#1}}}% \def\XINT_flmaxof_e #1\Z #2\Z { #2}% \def\xintFloatMaxof:csv #1{\expandafter\XINT_flmaxof:_a\romannumeral-`0#1,,}% \def\XINT_flmaxof:_a #1,{\expandafter\XINT_flmaxof:_b \romannumeral0\XINT_inFloat [\XINTdigits]{#1},}% \def\XINT_flmaxof:_b #1,#2,% {\expandafter\XINT_flmaxof:_c\romannumeral-`0#2,{#1},}% \def\XINT_flmaxof:_c #1{\if #1,\expandafter\XINT_flmaxof:_e \else\expandafter\XINT_flmaxof:_d\fi #1}% \def\XINT_flmaxof:_d #1,% {\expandafter\XINT_flmaxof:_b\romannumeral0\xintmax {\XINTinFloat [\XINTdigits]{#1}}}% \def\XINT_flmaxof:_e ,#1,{#1}% \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\dummy \XINT_fmin_minusminus -#5\dummy \XINT_fmin_firstneg #1-\dummy \XINT_fmin_secondneg --\dummy \XINT_fmin_nonneg_a \krof #1#5{#2/#3[#4]}{#6/#7[#8]}% }% \def\XINT_fmin_minusminus --% {\expandafter\xint_minus_andstop\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% {% \ifcase\romannumeral0\XINT_fgeq_A #1#2 \xint_afterfi{ #2}% \or \xint_afterfi{ #1}% \fi }% \def\xintMinof {\romannumeral0\xintminof }% \def\xintminof #1{\expandafter\XINT_minof_a\romannumeral-`0#1\relax }% \def\XINT_minof_a #1{\expandafter\XINT_minof_b\romannumeral0\xintraw{#1}\Z }% \def\XINT_minof_b #1\Z #2% {\expandafter\XINT_minof_c\romannumeral-`0#2\Z {#1}\Z}% \def\XINT_minof_c #1% {\xint_gob_til_relax #1\XINT_minof_e\relax\XINT_minof_d #1}% \def\XINT_minof_d #1\Z {\expandafter\XINT_minof_b\romannumeral0\xintmin {#1}}% \def\XINT_minof_e #1\Z #2\Z { #2}% \def\xintMinof:csv #1{\expandafter\XINT_minof:_b\romannumeral-`0#1,,}% \def\XINT_minof:_b #1,#2,{\expandafter\XINT_minof:_c\romannumeral-`0#2,{#1},}% \def\XINT_minof:_c #1{\if #1,\expandafter\XINT_minof:_e \else\expandafter\XINT_minof:_d\fi #1}% \def\XINT_minof:_d #1,{\expandafter\XINT_minof:_b\romannumeral0\xintmin {#1}}% \def\XINT_minof:_e ,#1,{#1}% \def\xintFloatMinof {\romannumeral0\xintflminof }% \def\xintflminof #1{\expandafter\XINT_flminof_a\romannumeral-`0#1\relax }% \def\XINT_flminof_a #1{\expandafter\XINT_flminof_b \romannumeral0\XINT_inFloat [\XINTdigits]{#1}\Z }% \def\XINT_flminof_b #1\Z #2% {\expandafter\XINT_flminof_c\romannumeral-`0#2\Z {#1}\Z}% \def\XINT_flminof_c #1% {\xint_gob_til_relax #1\XINT_flminof_e\relax\XINT_flminof_d #1}% \def\XINT_flminof_d #1\Z {\expandafter\XINT_flminof_b\romannumeral0\xintmin {\XINTinFloat [\XINTdigits]{#1}}}% \def\XINT_flminof_e #1\Z #2\Z { #2}% \def\xintFloatMinof:csv #1{\expandafter\XINT_flminof:_a\romannumeral-`0#1,,}% \def\XINT_flminof:_a #1,{\expandafter\XINT_flminof:_b \romannumeral0\XINT_inFloat [\XINTdigits]{#1},}% \def\XINT_flminof:_b #1,#2,% {\expandafter\XINT_flminof:_c\romannumeral-`0#2,{#1},}% \def\XINT_flminof:_c #1{\if #1,\expandafter\XINT_flminof:_e \else\expandafter\XINT_flminof:_d\fi #1}% \def\XINT_flminof:_d #1,% {\expandafter\XINT_flminof:_b\romannumeral0\xintmin {\XINTinFloat [\XINTdigits]{#1}}}% \def\XINT_flminof:_e ,#1,{#1}% \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\dummy \XINT_fcmp_minusminus -#5\dummy \XINT_fcmp_firstneg #1-\dummy \XINT_fcmp_secondneg --\dummy \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\dummy \XINT_fcmp_zerozero 0#2\dummy \XINT_fcmp_firstzero #10\dummy \XINT_fcmp_secondzero 00\dummy \XINT_fcmp_pos \krof #1#2% }% \def\XINT_fcmp_zerozero #1#2#3#4{ 0}% 1.08b had some [ and ] here!!! \def\XINT_fcmp_firstzero #1#2#3#4{ -1}% incredibly I never saw that until \def\XINT_fcmp_secondzero #1#2#3#4{ 1}% preparing 1.09a. \def\XINT_fcmp_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% {% \xintSgnFork {\xintiiSgn{\the\numexpr #2+\xintLength{#3}-\xintLength{#1}\relax}}% { -1}{\XINT_fcmp_E #2\Z {#3}{#1}}{ 1}% }% \def\XINT_fcmp_E #1% {% \xint_UDsignfork #1\dummy \XINT_fcmp_Fd -\dummy {\XINT_fcmp_Fn #1}% \krof }% \def\XINT_fcmp_Fd #1\Z #2#3% {% \expandafter\XINT_fcmp_Fe\expandafter {\romannumeral0\XINT_dsx_addzerosnofuss {#1}{#3}}{#2}% }% \def\XINT_fcmp_Fe #1#2{\XINT_cmp_pre {#2}{#1}}% \def\XINT_fcmp_Fn #1\Z #2#3% {% \expandafter\XINT_cmp_pre\expandafter {\romannumeral0\XINT_dsx_addzerosnofuss {#1}{#2}}{#3}% }% \def\xintAbs {\romannumeral0\xintabs }% \def\xintabs #1% {% \expandafter\xint_fabs\romannumeral0\XINT_infrac {#1}% }% \def\xint_fabs #1#2% {% \expandafter\XINT_outfrac\expandafter {\the\numexpr #1\expandafter}\expandafter {\romannumeral0\XINT_abs #2}% }% \def\xintOpp {\romannumeral0\xintopp }% \def\xintopp #1% {% \expandafter\xint_fopp\romannumeral0\XINT_infrac {#1}% }% \def\xint_fopp #1#2% {% \expandafter\XINT_outfrac\expandafter {\the\numexpr #1\expandafter}\expandafter {\romannumeral0\XINT_opp #2}% }% \def\xintSgn {\romannumeral0\xintsgn }% \def\xintsgn #1% {% \expandafter\xint_fsgn\romannumeral0\XINT_infrac {#1}% }% \def\xint_fsgn #1#2#3{\xintiisgn {#2}}% \def\xintFloatAdd {\romannumeral0\xintfloatadd }% \def\xintfloatadd #1{\XINT_fladd_chkopt \xintfloat #1\Z }% \def\XINTinFloatAdd {\romannumeral0\XINTinfloatadd }% \def\XINTinfloatadd #1{\XINT_fladd_chkopt \XINT_inFloat #1\Z }% \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\Z #3% {% #1[\XINTdigits]{\XINT_FL_Add {\XINTdigits+2}{#2}{#3}}% }% \def\XINT_fladd_opt #1[\Z #2]#3#4% {% #1[#2]{\XINT_FL_Add {#2+2}{#3}{#4}}% }% \def\XINT_FL_Add #1#2% {% \expandafter\XINT_FL_Add_a\expandafter{\the\numexpr #1\expandafter}% \expandafter{\romannumeral0\XINT_inFloat [#1]{#2}}% }% \def\XINT_FL_Add_a #1#2#3% {% \expandafter\XINT_FL_Add_b\romannumeral0\XINT_inFloat [#1]{#3}#2{#1}% }% \def\XINT_FL_Add_b #1% {% \xint_gob_til_zero #1\XINT_FL_Add_zero 0\XINT_FL_Add_c #1% }% \def\XINT_FL_Add_c #1[#2]#3% {% \xint_gob_til_zero #3\XINT_FL_Add_zerobis 0\XINT_FL_Add_d #1[#2]#3% }% \def\XINT_FL_Add_d #1[#2]#3[#4]#5% {% \xintSgnFork {\ifnum \numexpr #2-#4-#5>1 \expandafter 1% \else\ifnum \numexpr #4-#2-#5>1 \xint_afterfi {\expandafter-\expandafter1}% \else \expandafter\expandafter\expandafter0% \fi \fi}% {#3[#4]}{\xintAdd {#1[#2]}{#3[#4]}}{#1[#2]}% }% \def\XINT_FL_Add_zero 0\XINT_FL_Add_c 0[0]#1[#2]#3{#1[#2]}% \def\XINT_FL_Add_zerobis 0\XINT_FL_Add_d #1[#2]0[0]#3{#1[#2]}% \def\xintFloatSub {\romannumeral0\xintfloatsub }% \def\xintfloatsub #1{\XINT_flsub_chkopt \xintfloat #1\Z }% \def\XINTinFloatSub {\romannumeral0\XINTinfloatsub }% \def\XINTinfloatsub #1{\XINT_flsub_chkopt \XINT_inFloat #1\Z }% \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\Z #3% {% #1[\XINTdigits]{\XINT_FL_Add {\XINTdigits+2}{#2}{\xintOpp{#3}}}% }% \def\XINT_flsub_opt #1[\Z #2]#3#4% {% #1[#2]{\XINT_FL_Add {#2+2}{#3}{\xintOpp{#4}}}% }% \def\xintFloatMul {\romannumeral0\xintfloatmul}% \def\xintfloatmul #1{\XINT_flmul_chkopt \xintfloat #1\Z }% \def\XINTinFloatMul {\romannumeral0\XINTinfloatmul }% \def\XINTinfloatmul #1{\XINT_flmul_chkopt \XINT_inFloat #1\Z }% \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\Z #3% {% #1[\XINTdigits]{\XINT_FL_Mul {\XINTdigits+2}{#2}{#3}}% }% \def\XINT_flmul_opt #1[\Z #2]#3#4% {% #1[#2]{\XINT_FL_Mul {#2+2}{#3}{#4}}% }% \def\XINT_FL_Mul #1#2% {% \expandafter\XINT_FL_Mul_a\expandafter{\the\numexpr #1\expandafter}% \expandafter{\romannumeral0\XINT_inFloat [#1]{#2}}% }% \def\XINT_FL_Mul_a #1#2#3% {% \expandafter\XINT_FL_Mul_b\romannumeral0\XINT_inFloat [#1]{#3}#2% }% \def\XINT_FL_Mul_b #1[#2]#3[#4]{\xintE{\xintiiMul {#1}{#3}}{#2+#4}}% \def\xintFloatDiv {\romannumeral0\xintfloatdiv}% \def\xintfloatdiv #1{\XINT_fldiv_chkopt \xintfloat #1\Z }% \def\XINTinFloatDiv {\romannumeral0\XINTinfloatdiv }% \def\XINTinfloatdiv #1{\XINT_fldiv_chkopt \XINT_inFloat #1\Z }% \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\Z #3% {% #1[\XINTdigits]{\XINT_FL_Div {\XINTdigits+2}{#2}{#3}}% }% \def\XINT_fldiv_opt #1[\Z #2]#3#4% {% #1[#2]{\XINT_FL_Div {#2+2}{#3}{#4}}% }% \def\XINT_FL_Div #1#2% {% \expandafter\XINT_FL_Div_a\expandafter{\the\numexpr #1\expandafter}% \expandafter{\romannumeral0\XINT_inFloat [#1]{#2}}% }% \def\XINT_FL_Div_a #1#2#3% {% \expandafter\XINT_FL_Div_b\romannumeral0\XINT_inFloat [#1]{#3}#2% }% \def\XINT_FL_Div_b #1[#2]#3[#4]{\xintE{#3/#1}{#4-#2}}% \def\xintFloatSum {\romannumeral0\xintfloatsum }% \def\xintfloatsum #1{\expandafter\XINT_floatsum_a\romannumeral-`0#1\relax }% \def\XINT_floatsum_a #1{\expandafter\XINT_floatsum_b \romannumeral0\xintraw{#1}\Z }% normalizes if only 1 \def\XINT_floatsum_b #1\Z #2% but a bit wasteful {\expandafter\XINT_floatsum_c\romannumeral-`0#2\Z {#1}\Z}% \def\XINT_floatsum_c #1% {\xint_gob_til_relax #1\XINT_floatsum_e\relax\XINT_floatsum_d #1}% \def\XINT_floatsum_d #1\Z {\expandafter\XINT_floatsum_b\romannumeral0\XINTinfloatadd {#1}}% \def\XINT_floatsum_e #1\Z #2\Z { #2}% \def\xintFloatSum:csv #1{\expandafter\XINT_floatsum:_a\romannumeral-`0#1,,^}% \def\XINT_floatsum:_a {\XINT_floatsum:_b {0/1[0]}}% \def\XINT_floatsum:_b #1#2,% {\expandafter\XINT_floatsum:_c\romannumeral-`0#2,{#1}}% \def\XINT_floatsum:_c #1{\if #1,\expandafter\XINT_floatsum:_e \else\expandafter\XINT_floatsum:_d\fi #1}% \def\XINT_floatsum:_d #1,#2{\expandafter\XINT_floatsum:_b\expandafter {\romannumeral0\XINTinfloatadd {#2}{#1}}}% \def\XINT_floatsum:_e ,#1#2^{#1}% allows empty list \def\xintFloatPrd {\romannumeral0\xintfloatprd }% \def\xintfloatprd #1{\expandafter\XINT_floatprd_a\romannumeral-`0#1\relax }% \def\XINT_floatprd_a #1{\expandafter\XINT_floatprd_b \romannumeral0\xintraw{#1}\Z }% \def\XINT_floatprd_b #1\Z #2% {\expandafter\XINT_floatprd_c\romannumeral-`0#2\Z {#1}\Z}% \def\XINT_floatprd_c #1% {\xint_gob_til_relax #1\XINT_floatprd_e\relax\XINT_floatprd_d #1}% \def\XINT_floatprd_d #1\Z {\expandafter\XINT_floatprd_b\romannumeral0\XINTinfloatmul {#1}}% \def\XINT_floatprd_e #1\Z #2\Z { #2}% \def\xintFloatPrd:csv #1{\expandafter\XINT_floatprd:_a\romannumeral-`0#1,,^}% \def\XINT_floatprd:_a {\XINT_floatprd:_b {1/1[0]}}% \def\XINT_floatprd:_b #1#2,% {\expandafter\XINT_floatprd:_c\romannumeral-`0#2,{#1}}% \def\XINT_floatprd:_c #1{\if #1,\expandafter\XINT_floatprd:_e \else\expandafter\XINT_floatprd:_d\fi #1}% \def\XINT_floatprd:_d #1,#2{\expandafter\XINT_floatprd:_b\expandafter {\romannumeral0\XINTinfloatmul {#2}{#1}}}% \def\XINT_floatprd:_e ,#1#2^{#1}% allows empty list \def\xintFloatPow {\romannumeral0\xintfloatpow}% \def\xintfloatpow #1{\XINT_flpow_chkopt \xintfloat #1\Z }% \def\XINTinFloatPow {\romannumeral0\XINTinfloatpow }% \def\XINTinfloatpow #1{\XINT_flpow_chkopt \XINT_inFloat #1\Z }% \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\Z #3% {% \expandafter\XINT_flpow_checkB_start\expandafter {\the\numexpr #3\expandafter}\expandafter {\the\numexpr \XINTdigits}{#2}{#1[\XINTdigits]}% }% \def\XINT_flpow_opt #1[\Z #2]#3#4% {% \expandafter\XINT_flpow_checkB_start\expandafter {\the\numexpr #4\expandafter}\expandafter {\the\numexpr #2}{#3}{#1[#2]}% }% \def\XINT_flpow_checkB_start #1{\XINT_flpow_checkB_a #1\Z }% \def\XINT_flpow_checkB_a #1% {% \xint_UDzerominusfork #1-\dummy \XINT_flpow_BisZero 0#1\dummy {\XINT_flpow_checkB_b 1}% 0-\dummy {\XINT_flpow_checkB_b 0#1}% \krof }% \def\XINT_flpow_BisZero \Z #1#2#3{#3{1/1[0]}}% \def\XINT_flpow_checkB_b #1#2\Z #3% {% \expandafter\XINT_flpow_checkB_c \expandafter {\romannumeral0\xintlength{#2}}{#3}{#2}#1% }% \def\XINT_flpow_checkB_c #1#2% {% \expandafter\XINT_flpow_checkB_d \expandafter {\the\numexpr \expandafter\xintLength\expandafter {\the\numexpr #1*20/3}+#1+#2+1}% }% \def\XINT_flpow_checkB_d #1#2#3#4% {% \expandafter \XINT_flpow_a \romannumeral0\XINT_inFloat [#1]{#4}{#1}{#2}#3% }% \def\XINT_flpow_a #1% {% \xint_UDzerominusfork #1-\dummy \XINT_flpow_zero 0#1\dummy {\XINT_flpow_b 1}% 0-\dummy {\XINT_flpow_b 0#1}% \krof }% \def\XINT_flpow_zero [#1]#2#3#4#5% {% \if #41 \xint_afterfi {\xintError:DivisionByZero\space 1.e2147483647}% \else \xint_afterfi { 0.e0}\fi }% \def\XINT_flpow_b #1#2[#3]#4#5% {% \XINT_flpow_c {#4}{#5}{#2[#3]}{#1*\ifodd #5 1\else 0\fi}% }% \def\XINT_flpow_c #1#2#3#4% {% \XINT_flpow_loop {#1}{#2}{#3}{{#1}}\XINT_flpow_prd \xint_relax \xint_bye\xint_bye\xint_bye\xint_bye \xint_bye\xint_bye\xint_bye\xint_bye \xint_relax {#4}% }% \def\XINT_flpow_loop #1#2#3% {% \ifnum #2 = 1 \expandafter\XINT_flpow_loop_end \else \xint_afterfi{\expandafter\XINT_flpow_loop_a \expandafter{\the\numexpr 2*(#2/2)-#2\expandafter }% b mod 2 \expandafter{\the\numexpr #2-#2/2\expandafter }% [b/2] \expandafter{\romannumeral0\XINTinfloatmul [#1]{#3}{#3}}}% \fi {#1}{{#3}}% }% \def\XINT_flpow_loop_a #1#2#3#4% {% \ifnum #1 = 1 \expandafter\XINT_flpow_loop \else \expandafter\XINT_flpow_loop_throwaway \fi {#4}{#2}{#3}% }% \def\XINT_flpow_loop_throwaway #1#2#3#4% {% \XINT_flpow_loop {#1}{#2}{#3}% }% \def\XINT_flpow_loop_end #1{\romannumeral0\XINT_rord_main {}\relax }% \def\XINT_flpow_prd #1#2% {% \XINT_flpow_prd_getnext {#2}{#1}% }% \def\XINT_flpow_prd_getnext #1#2#3% {% \XINT_flpow_prd_checkiffinished #3\Z {#1}{#2}% }% \def\XINT_flpow_prd_checkiffinished #1% {% \xint_gob_til_relax #1\XINT_flpow_prd_end\relax \XINT_flpow_prd_compute #1% }% \def\XINT_flpow_prd_compute #1\Z #2#3% {% \expandafter\XINT_flpow_prd_getnext\expandafter {\romannumeral0\XINTinfloatmul [#3]{#1}{#2}}{#3}% }% \def\XINT_flpow_prd_end\relax\XINT_flpow_prd_compute \relax\Z #1#2#3% {% \expandafter\XINT_flpow_conclude \the\numexpr #3\relax #1% }% \def\XINT_flpow_conclude #1#2[#3]#4% {% \expandafter\XINT_flpow_conclude_really\expandafter {\the\numexpr\if #41 -\fi#3\expandafter}% \xint_UDzerofork #4\dummy {{#2}}% 0\dummy {{1/#2}}% \krof #1% }% \def\XINT_flpow_conclude_really #1#2#3#4% {% \xint_UDzerofork #3\dummy {#4{#2[#1]}}% 0\dummy {#4{-#2[#1]}}% \krof }% \def\xintFloatPower {\romannumeral0\xintfloatpower}% \def\xintfloatpower #1{\XINT_flpower_chkopt \xintfloat #1\Z }% \def\XINTinFloatPower {\romannumeral0\XINTinfloatpower}% \def\XINTinfloatpower #1{\XINT_flpower_chkopt \XINT_inFloat #1\Z }% \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\Z #3% {% \expandafter\XINT_flpower_checkB_start\expandafter {\the\numexpr \XINTdigits\expandafter}\expandafter {\romannumeral0\xintnum{#3}}{#2}{#1[\XINTdigits]}% }% \def\XINT_flpower_opt #1[\Z #2]#3#4% {% \expandafter\XINT_flpower_checkB_start\expandafter {\the\numexpr #2\expandafter}\expandafter {\romannumeral0\xintnum{#4}}{#3}{#1[#2]}% }% \def\XINT_flpower_checkB_start #1#2{\XINT_flpower_checkB_a #2\Z {#1}}% \def\XINT_flpower_checkB_a #1% {% \xint_UDzerominusfork #1-\dummy \XINT_flpower_BisZero 0#1\dummy {\XINT_flpower_checkB_b 1}% 0-\dummy {\XINT_flpower_checkB_b 0#1}% \krof }% \def\XINT_flpower_BisZero \Z #1#2#3{#3{1/1[0]}}% \def\XINT_flpower_checkB_b #1#2\Z #3% {% \expandafter\XINT_flpower_checkB_c \expandafter {\romannumeral0\xintlength{#2}}{#3}{#2}#1% }% \def\XINT_flpower_checkB_c #1#2% {% \expandafter\XINT_flpower_checkB_d \expandafter {\the\numexpr \expandafter\xintLength\expandafter {\the\numexpr #1*20/3}+#1+#2+1}% }% \def\XINT_flpower_checkB_d #1#2#3#4% {% \expandafter \XINT_flpower_a \romannumeral0\XINT_inFloat [#1]{#4}{#1}{#2}#3% }% \def\XINT_flpower_a #1% {% \xint_UDzerominusfork #1-\dummy \XINT_flpower_zero 0#1\dummy {\XINT_flpower_b 1}% 0-\dummy {\XINT_flpower_b 0#1}% \krof }% \def\XINT_flpower_zero [#1]#2#3#4#5% {% \if #41 \xint_afterfi {\xintError:DivisionByZero\space 1.e2147483647}% \else \xint_afterfi { 0.e0}\fi }% \def\XINT_flpower_b #1#2[#3]#4#5% {% \XINT_flpower_c {#4}{#5}{#2[#3]}{#1*\xintiiOdd {#5}}% }% \def\XINT_flpower_c #1#2#3#4% {% \XINT_flpower_loop {#1}{#2}{#3}{{#1}}\XINT_flpow_prd \xint_relax \xint_bye\xint_bye\xint_bye\xint_bye \xint_bye\xint_bye\xint_bye\xint_bye \xint_relax {#4}% }% \def\XINT_flpower_loop #1#2#3% {% \ifcase\XINT_isOne {#2} \xint_afterfi{\expandafter\XINT_flpower_loop_x\expandafter {\romannumeral0\XINTinfloatmul [#1]{#3}{#3}}% {\romannumeral0\xintdivision {#2}{2}}}% \or \expandafter\XINT_flpow_loop_end \fi {#1}{{#3}}% }% \def\XINT_flpower_loop_x #1#2{\expandafter\XINT_flpower_loop_a #2{#1}}% \def\XINT_flpower_loop_a #1#2#3#4% {% \ifnum #2 = 1 \expandafter\XINT_flpower_loop \else \expandafter\XINT_flpower_loop_throwaway \fi {#4}{#1}{#3}% }% \def\XINT_flpower_loop_throwaway #1#2#3#4% {% \XINT_flpower_loop {#1}{#2}{#3}% }% \def\xintFloatSqrt {\romannumeral0\xintfloatsqrt }% \def\xintfloatsqrt #1{\XINT_flsqrt_chkopt \xintfloat #1\Z }% \def\XINTinFloatSqrt {\romannumeral0\XINTinfloatsqrt }% \def\XINTinfloatsqrt #1{\XINT_flsqrt_chkopt \XINT_inFloat #1\Z }% \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\Z {% #1[\XINTdigits]{\XINT_FL_sqrt \XINTdigits {#2}}% }% \def\XINT_flsqrt_opt #1[\Z #2]#3% {% #1[#2]{\XINT_FL_sqrt {#2}{#3}}% }% \def\XINT_FL_sqrt #1% {% \ifnum\numexpr #1<\xint_c_xviii \xint_afterfi {\XINT_FL_sqrt_a\xint_c_xviii}% \else \xint_afterfi {\XINT_FL_sqrt_a {#1+\xint_c_i}}% \fi }% \def\XINT_FL_sqrt_a #1#2% {% \expandafter\XINT_FL_sqrt_checkifzeroorneg \romannumeral0\XINT_inFloat [#1]{#2}% }% \def\XINT_FL_sqrt_checkifzeroorneg #1% {% \xint_UDzerominusfork #1-\dummy \XINT_FL_sqrt_iszero 0#1\dummy \XINT_FL_sqrt_isneg 0-\dummy {\XINT_FL_sqrt_b #1}% \krof }% \def\XINT_FL_sqrt_iszero #1[#2]{0[0]}% \def\XINT_FL_sqrt_isneg #1[#2]{\xintError:RootOfNegative 0[0]}% \def\XINT_FL_sqrt_b #1[#2]% {% \ifodd #2 \xint_afterfi{\XINT_FL_sqrt_c 01}% \else \xint_afterfi{\XINT_FL_sqrt_c {}0}% \fi {#1}{#2}% }% \def\XINT_FL_sqrt_c #1#2#3#4% {% \expandafter\XINT_flsqrt\expandafter {\the\numexpr #4-#2}{#3#1}% }% \def\XINT_flsqrt #1#2% {% \expandafter\XINT_sqrt_a \expandafter{\romannumeral0\xintlength {#2}}\XINT_flsqrt_big_d {#2}{#1}% }% \def\XINT_flsqrt_big_d #1\or #2\fi #3% {% \fi \ifodd #3 \xint_afterfi{\expandafter\XINT_flsqrt_big_eB}% \else \xint_afterfi{\expandafter\XINT_flsqrt_big_eA}% \fi \expandafter {\the\numexpr (#3-\xint_c_i)/\xint_c_ii }{#1}% }% \def\XINT_flsqrt_big_eA #1#2#3% {% \XINT_flsqrt_big_eA_a #3\Z {#2}{#1}{#3}% }% \def\XINT_flsqrt_big_eA_a #1#2#3#4#5#6#7#8#9\Z {% \XINT_flsqrt_big_eA_b {#1#2#3#4#5#6#7#8}% }% \def\XINT_flsqrt_big_eA_b #1#2% {% \expandafter\XINT_flsqrt_big_f \romannumeral0\XINT_flsqrt_small_e {#2001}{#1}% }% \def\XINT_flsqrt_big_eB #1#2#3% {% \XINT_flsqrt_big_eB_a #3\Z {#2}{#1}{#3}% }% \def\XINT_flsqrt_big_eB_a #1#2#3#4#5#6#7#8#9% {% \XINT_flsqrt_big_eB_b {#1#2#3#4#5#6#7#8#9}% }% \def\XINT_flsqrt_big_eB_b #1#2\Z #3% {% \expandafter\XINT_flsqrt_big_f \romannumeral0\XINT_flsqrt_small_e {#30001}{#1}% }% \def\XINT_flsqrt_small_e #1#2% {% \expandafter\XINT_flsqrt_small_f\expandafter {\the\numexpr #1*#1-#2-\xint_c_i}{#1}% }% \def\XINT_flsqrt_small_f #1#2% {% \expandafter\XINT_flsqrt_small_g\expandafter {\the\numexpr (#1+#2)/(2*#2)-\xint_c_i }{#1}{#2}% }% \def\XINT_flsqrt_small_g #1% {% \ifnum #1>\xint_c_ \expandafter\XINT_flsqrt_small_h \else \expandafter\XINT_flsqrt_small_end \fi {#1}% }% \def\XINT_flsqrt_small_h #1#2#3% {% \expandafter\XINT_flsqrt_small_f\expandafter {\the\numexpr #2-\xint_c_ii*#1*#3+#1*#1\expandafter}\expandafter {\the\numexpr #3-#1}% }% \def\XINT_flsqrt_small_end #1#2#3% {% \expandafter\space\expandafter {\the\numexpr \xint_c_i+#3*\xint_c_x^iv- (#2*\xint_c_x^iv+#3)/(\xint_c_ii*#3)}% }% \def\XINT_flsqrt_big_f #1% {% \expandafter\XINT_flsqrt_big_fa\expandafter {\romannumeral0\xintiisqr {#1}}{#1}% }% \def\XINT_flsqrt_big_fa #1#2#3#4% {% \expandafter\XINT_flsqrt_big_fb\expandafter {\romannumeral0\XINT_dsx_addzerosnofuss {\numexpr #3-\xint_c_viii\relax}{#2}}% {\romannumeral0\xintiisub {\XINT_dsx_addzerosnofuss {\numexpr \xint_c_ii*(#3-\xint_c_viii)\relax}{#1}}{#4}}% {#3}% }% \def\XINT_flsqrt_big_fb #1#2% {% \expandafter\XINT_flsqrt_big_g\expandafter {#2}{#1}% }% \def\XINT_flsqrt_big_g #1#2% {% \expandafter\XINT_flsqrt_big_j \romannumeral0\xintiidivision {#1}{\romannumeral0\XINT_dbl_pos #2\R\R\R\R\R\R\R\Z \W\W\W\W\W\W\W }{#2}% }% \def\XINT_flsqrt_big_j #1% {% \ifcase\XINT_Sgn {#1} \expandafter \XINT_flsqrt_big_end_a \or \expandafter \XINT_flsqrt_big_k \fi {#1}% }% \def\XINT_flsqrt_big_k #1#2#3% {% \expandafter\XINT_flsqrt_big_l\expandafter {\romannumeral0\XINT_sub_pre {#3}{#1}}% {\romannumeral0\xintiiadd {#2}{\romannumeral0\XINT_sqr {#1}}}% }% \def\XINT_flsqrt_big_l #1#2% {% \expandafter\XINT_flsqrt_big_g\expandafter {#2}{#1}% }% \def\XINT_flsqrt_big_end_a #1#2#3#4#5% {% \expandafter\XINT_flsqrt_big_end_b\expandafter {\the\numexpr -#4+#5/\xint_c_ii\expandafter}\expandafter {\romannumeral0\xintiisub {\XINT_dsx_addzerosnofuss {#4}{#3}}% {\xintHalf{\xintiiQuo{\XINT_dsx_addzerosnofuss {#4}{#2}}{#3}}}}% }% \def\XINT_flsqrt_big_end_b #1#2{#2[#1]}% \XINT_restorecatcodes_endinput% \endinput %% %% End of file `xintfrac.sty'.