%% %% 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.07a of May 26, 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 % : \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 \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% \begingroup\catcode61\catcode48\catcode32=10\relax% \catcode13=5 % ^^M \endlinechar=13 % \catcode123=1 % { \catcode125=2 % } \catcode95=11 % _ \def\x {% \endgroup \edef\XINT_frac_restorecatcodes_endinput {% \catcode94=\the\catcode94 % ^ \catcode93=\the\catcode93 % ] \catcode91=\the\catcode91 % [ \catcode96=\the\catcode96 % ` \catcode47=\the\catcode47 % / \catcode41=\the\catcode41 % ) \catcode40=\the\catcode40 % ( \catcode42=\the\catcode42 % * \catcode43=\the\catcode43 % + \catcode62=\the\catcode62 % > \catcode60=\the\catcode60 % < \catcode58=\the\catcode58 % : \catcode46=\the\catcode46 % . \catcode45=\the\catcode45 % - \catcode44=\the\catcode44 % , \catcode35=\the\catcode35 % # \catcode95=\the\catcode95 % _ \catcode125=\the\catcode125 % } \catcode123=\the\catcode123 % { \endlinechar=\the\endlinechar \catcode13=\the\catcode13 % ^^M \catcode32=\the\catcode32 % \catcode61=\the\catcode61\relax % = \noexpand\endinput }% \XINT_setcatcodes \catcode91=12 % [ \catcode93=12 % ] \catcode94=7 % ^ }% \x \begingroup \catcode64=11 % @ \catcode58=12 % : \expandafter\ifx\csname ProvidesPackage\endcsname\relax \def\x#1#2#3[#4]{\endgroup \immediate\write-1{Package: #3 #4}% \xdef#1{#4}% }% \else \def\x#1#2[#3]{\endgroup #2[{#3}]% \ifx#1\@undefined \xdef#1{#3}% \fi \ifx#1\relax \xdef#1{#3}% \fi }% \fi \expandafter\x\csname ver@xintfrac.sty\endcsname \ProvidesPackage{xintfrac}% [2013/05/26 v1.07a Expandable operations on fractions (jfB)]% \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_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\XINT_length {#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\XINT_length {#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_undef\xint_undef\xint_undef\xint_undef \xint_undef\xint_undef\xint_undef\xint_undef \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_undef\xint_undef\xint_undef\xint_undef \xint_undef\xint_undef\xint_undef\xint_undef \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\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\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__frac_A\romannumeral0\XINT_infrac {#1}% }% \def\XINT__frac_A #1{\XINT__frac_B #1\Z }% \def\XINT__frac_B #1#2\Z {% \xint_gob_til_zero #1\XINT__frac_C 0\XINT__frac_D {10^{#1#2}}% }% \def\XINT__frac_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__frac_D #1#2#3% {% \ifcase\XINT_isOne {#3} \or \XINT__frac_E \fi \space \frac {#2}{#3}#1% }% \def\XINT__frac_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__frac_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}}% }% \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}% \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}% \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\xintiquo {#3}{#2}}% {\romannumeral0\xintiquo {#4}{#2}}% }% \def\XINT_irr_loop_exitb #1#2% {% \expandafter\XINT_irr_finish\expandafter {#2}{#1}% }% \def\XINT_irr_finish #1#2#3% {% \ifcase\XINT_isOne {#2} \xint_afterfi {#3#1/#2}% \or \xint_afterfi {#3#1}% \fi }% \def\xintNum {\romannumeral0\xintnum }% \def\xintnum #1{\expandafter\XINT_intcheck\romannumeral0\xintirr {#1}/\W\Z }% \def\XINT_intcheck #1/#2#3\Z {% \xint_gob_til_w #2\xint_gobble_ii\W \xintError:NotAnInteger \space #1% }% \def\xintfFac {\romannumeral0\xintffac }% \def\xintffac #1% {% \expandafter\XINT_fac_fork\expandafter{\the\numexpr \xintNum{#1}}% }% \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}% \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}% \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\xintiadd{\XINT_Mul{#4}{#1}}{#6}}% {\romannumeral0\xintiadd{\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{\xintiquo {#1}{#2}\Z \space}% \def\XINT_trunc_minusplus #1#2#3{\xintiquo {#1#2}{#3}\Z \xint_minus_andstop}% \def\XINT_trunc_plusminus #1#2#3{\xintiquo {#2}{#1#3}\Z \xint_minus_andstop}% \def\XINT_trunc_plusplus #1#2#3#4{\xintiquo {#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\XINT_length {#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_undef\xint_undef\xint_undef\xint_undef \xint_undef\xint_undef\xint_undef\xint_undef \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_undef\xint_undef\xint_undef\xint_undef \xint_undef\xint_undef\xint_undef\xint_undef \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 }% \mathchardef\XINT_digits 16 \def\xintDigits #1#2% {\afterassignment \xint_gobble_i \mathchardef\XINT_digits=}% \def\xinttheDigits {\number\XINT_digits }% \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 {% \XINT_float_a \XINT_digits {#1}% }% \def\XINT_float_opt [\Z #1]% {% \expandafter\XINT_float_a\expandafter {\the\numexpr #1}% }% \def\XINT_float_a #1#2% {% \expandafter\XINT_float_b \romannumeral0\XINT_infrac {#2}{#1}% }% \def\XINT_float_b #1#2#3% {% \XINT_float_fork #2\Z {#3}{#1}% }% \def\XINT_float_fork #1% {% \xint_UDzerominusfork #1-\dummy \XINT_float_zero 0#1\dummy \XINT_float_N 0-\dummy {\XINT_float_P #1}% \krof }% \def\XINT_float_zero \Z #1#2#3{ 0.e0}% \def\XINT_float_N {\expandafter\xint_minus_andstop\romannumeral0\XINT_float_P }% \def\XINT_float_P #1\Z #2#3#4% {% \ifcase \romannumeral0\XINT_fgeq_A 011{#3}{#1}{#2} \expandafter\XINT_float_lessthanone_a \or\expandafter\XINT_float_atleastone_b \fi {#3}{#1}{#2}{#3+#4}{#1}{#2}% }% \def\XINT_float_atleastone_b {% \expandafter\XINT_float_atleastone_c\romannumeral0\XINT_trunc_B }% \def\XINT_float_atleastone_c #1\Z #2% {% \expandafter\XINT_float_c\expandafter {\romannumeral0\xintisub {\xintLength{#1}}{1}}% }% \def\XINT_float_lessthanone_a #1% {% \expandafter\XINT_float_lessthanone_b\expandafter {\the\numexpr -#1}% }% \def\XINT_float_lessthanone_b #1#2#3% {% \expandafter\XINT_float_lessthanone_c \romannumeral0\XINT_trunc_B {#1}{#3}{#2}% }% \def\XINT_float_lessthanone_c #1\Z #2% {% \expandafter\XINT_float_c\expandafter {\expandafter-\romannumeral0\xintilen {\xintiSub {#1}{1}}}% }% \def\XINT_float_c #1#2#3#4% {% \expandafter\XINT_float_d\expandafter {\the\numexpr #2-#1}{#3}{#4}e#1% }% \def\XINT_float_d {% \expandafter\XINT_float_round_B\romannumeral0\XINT_trunc_B }% \def\XINT_float_round_B #1#2\Z #3% {% \ifnum #1=9 \xint_afterfi {\romannumeral0\XINT_rord_main {}#1#2\XINT_float_round_S}% \else \xint_afterfi {\romannumeral0\XINT_rord_main {}#1#2\XINT_float_round_D}% \fi \xint_relax \xint_undef\xint_undef\xint_undef\xint_undef \xint_undef\xint_undef\xint_undef\xint_undef \xint_relax \Z }% \def\XINT_float_round_D #1% {% \ifnum #1<5 \expandafter\XINT_float_round_Da \else \expandafter\XINT_float_round_Db \fi }% \def\XINT_float_round_Da #1\Z {% \expandafter\XINT_float_round_f \romannumeral0\XINT_rord_main {}#1% \xint_relax \xint_undef\xint_undef\xint_undef\xint_undef \xint_undef\xint_undef\xint_undef\xint_undef \xint_relax }% \def\XINT_float_round_Db #1\Z {% \expandafter\XINT_float_round_f \romannumeral0\XINT_addm_A 0{}1000\W\X\Y\Z #1000\W\X\Y\Z }% \def\XINT_float_round_f #1{ #1.}% \def\XINT_float_round_S #1% {% \ifnum #1<5 \expandafter\XINT_float_round_Da \else \expandafter\XINT_float_round_Sb \fi }% \def\XINT_float_round_Sb #1\Z {% \expandafter\XINT_float_round_g \romannumeral0\XINT_addm_A 0{}1000\W\X\Y\Z #1000\W\X\Y\Z }% \def\XINT_float_round_g #1% {% \ifnum #1=1 \expandafter\XINT_float_round_h\fi \space #1.% }% \def\XINT_float_round_h\space 1.0{ 10.}% \def\XINT_inFloat [#1]% {% \expandafter\XINT_infloat\expandafter {\the\numexpr #1}% }% \def\XINT_infloat #1#2% {% \expandafter\XINT_infloat_a \romannumeral0\XINT_infrac {#2}{#1}% }% \def\XINT_infloat_a #1#2#3% {% \XINT_infloat_fork #2\Z {#3}{#1}% }% \def\XINT_infloat_fork #1% {% \xint_UDzerominusfork #1-\dummy \XINT_infloat_zero 0#1\dummy \XINT_infloat_N 0-\dummy {\XINT_infloat_P #1}% \krof }% \def\XINT_infloat_zero\Z #1#2#3{0[0]}% \def\XINT_infloat_N {\expandafter-\romannumeral-`0\XINT_infloat_P }% \def\XINT_infloat_P #1\Z #2#3#4% {% \ifcase \romannumeral0\XINT_fgeq_A 011{#3}{#1}{#2} \expandafter\XINT_infloat_lessthanone_a \or\expandafter\XINT_infloat_atleastone_b \fi {#3}{#1}{#2}{#3+#4}{#1}{#2}{#4}% }% \def\XINT_infloat_atleastone_b {% \expandafter\XINT_infloat_atleastone_c\romannumeral0\XINT_trunc_B }% \def\XINT_infloat_atleastone_c #1\Z #2% {% \expandafter\XINT_infloat_c\expandafter {\romannumeral0\xintisub {\xintLength{#1}}{1}}% }% \def\XINT_infloat_lessthanone_a #1% {% \expandafter\XINT_infloat_lessthanone_b\expandafter {\the\numexpr -#1}% }% \def\XINT_infloat_lessthanone_b #1#2#3% {% \expandafter\XINT_infloat_lessthanone_c \romannumeral0\XINT_trunc_B {#1}{#3}{#2}% }% \def\XINT_infloat_lessthanone_c #1\Z #2% {% \expandafter\XINT_infloat_c\expandafter {\expandafter-\romannumeral0\xintilen {\xintiSub {#1}{1}}}% }% \def\XINT_infloat_c #1#2#3#4% {% \expandafter\XINT_infloat_d\expandafter {\the\numexpr #2-#1}{#3}{#4}{#1}% }% \def\XINT_infloat_d {% \expandafter\XINT_infloat_round_B\romannumeral0\XINT_trunc_B }% \def\XINT_infloat_round_B #1\Z #2% {% \expandafter\XINT_infloat_round_D \romannumeral0\XINT_rord_main {}#1% \xint_relax \xint_undef\xint_undef\xint_undef\xint_undef \xint_undef\xint_undef\xint_undef\xint_undef \xint_relax \Z }% \def\XINT_infloat_round_D #1% {% \ifnum #1<5 \expandafter\XINT_infloat_round_Da \else \expandafter\XINT_infloat_round_Db \fi }% \def\XINT_infloat_round_Da #1\Z {% \expandafter\XINT_infloat_round_f \romannumeral0\XINT_rord_main {}#1% \xint_relax \xint_undef\xint_undef\xint_undef\xint_undef \xint_undef\xint_undef\xint_undef\xint_undef \xint_relax \Z }% \def\XINT_infloat_round_Db #1\Z {% \expandafter\XINT_infloat_round_f \romannumeral0\XINT_addm_A 0{}1000\W\X\Y\Z #1000\W\X\Y\Z \Z }% \def\XINT_infloat_round_f #1\Z #2#3% {% \expandafter\XINT_infloat_round_g\expandafter {\the\numexpr #2-#3+1}{#1}% }% \def\XINT_infloat_round_g #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\xintimul {#7}{#5}}% {\romannumeral0\xintiadd {\romannumeral0\xintimul {\xintDSH {\the\numexpr -#3+#1\relax}{#6}}{#5}}% {\romannumeral0\xintimul {#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\xintimul {#7}{#5}}% {\romannumeral0\xintisub {\romannumeral0\xintimul {\xintDSH {\the\numexpr -#3+#1\relax}{#6}}{#5}}% {\romannumeral0\xintimul {#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\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\xintimul {#6}{#3}}% {\romannumeral0\xintimul {#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\xintfPow {\romannumeral0\xintfpow }% \def\xintfpow #1% {% \expandafter\xint_ffpow\expandafter {\romannumeral0\XINT_infrac {#1}}% }% \def\xint_fpow #1#2% {% \expandafter\XINT_fpow_fork\the\numexpr #2\relax\Z #1% }% \def\xint_ffpow #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\xintipow {#5}{#1#2}}% {\romannumeral0\xintipow {#4}{#1#2}}% }% \def\XINT_fpow_neg #1#2#3#4% {% \expandafter\XINT_fpow_pos_A\expandafter {\the\numexpr -#1*#2\expandafter}\expandafter {\romannumeral0\xintipow {#3}{#1}}% {\romannumeral0\xintipow {#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\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\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\xintimul {#2}{#6}}% {\romannumeral0\xintimul {#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\xintCmp {\romannumeral0\xintcmp }% \def\xintcmp #1% {% \expandafter\xint_fcmp\expandafter {\romannumeral0\XINT_infrac {#1}}% }% \def\xint_fcmp #1#2{\expandafter\XINT_fcmp_A\romannumeral0\XINT_infrac {#2}#1}% \def\XINT_fcmp_A #1#2#3#4% {% \ifnum #4 > #1 \xint_afterfi {\XINT_fcmp_B {#1}}% \else \xint_afterfi {\XINT_fcmp_B {#4}}% \fi {#1}{#4}{#2}{#3}% }% \def\XINT_fcmp_B #1#2#3#4#5#6#7% {% \xinticmp {\romannumeral0\xintimul {\xintDSH {\the\numexpr -#3+#1\relax}{#6}}{#5}}% {\romannumeral0\xintimul {#7}{\xintDSH {\the\numexpr -#2+#1\relax}{#4}}}% }% \def\xintGeq {\romannumeral0\xintgeq }% \def\xintgeq #1% {% \expandafter\xint_fgeq\expandafter {\romannumeral0\XINT_infrac {#1}}% }% \def\xint_fgeq #1#2% {% \expandafter\XINT_fgeq_A \romannumeral0\XINT_infrac {#2}#1% }% \def\XINT_fgeq_A #1#2#3#4% {% \ifnum #4 > #1 \xint_afterfi {\XINT_fgeq_B {#1}}% \else \xint_afterfi {\XINT_fgeq_B {#4}}% \fi {#1}{#4}{#2}{#3}% }% \def\XINT_fgeq_B #1#2#3#4#5#6#7% {% \expandafter\XINT_fgeq_C\expandafter {\romannumeral0\xintimul {\xintDSH {\the\numexpr -#3+#1\relax}{#6}}{#5}}% {\romannumeral0\xintimul {#7}{\xintDSH {\the\numexpr -#2+#1\relax}{#4}}}% }% \def\XINT_fgeq_C #1#2% {% \expandafter\XINT_geq_fork #2\Z #1\Z }% \def\xintMax {\romannumeral0\xintmax }% \def\xintmax #1% {% \expandafter\xint_fmax\expandafter {\romannumeral0\XINT_infrac {#1}}% }% \def\xint_fmax #1#2{\expandafter\XINT_outfrac \romannumeral0\expandafter\XINT_fmax_A \romannumeral0\XINT_infrac {#2}#1}% \def\XINT_fmax_A #1#2#3#4#5#6% {% \ifnum #4 > #1 \xint_afterfi {\XINT_fmax_B {#1}}% \else \xint_afterfi {\XINT_fmax_B {#4}}% \fi {#1}{#4}{#2}{#3}{#5}{#6}{{#4}{#5}{#6}}{{#1}{#2}{#3}}% }% \def\XINT_fmax_B #1#2#3#4#5#6#7% {% \expandafter\XINT_fmax_C\expandafter {\romannumeral0\xintimul {\xintDSH {\the\numexpr -#3+#1\relax}{#6}}{#5}}% {\romannumeral0\xintimul {#7}{\xintDSH {\the\numexpr -#2+#1\relax}{#4}}}% }% \def\XINT_fmax_C #1#2% {% \expandafter\XINT_max_fork #2\Z #1\Z }% \def\xintMin {\romannumeral0\xintmin }% \def\xintmin #1% {% \expandafter\xint_fmin\expandafter {\romannumeral0\XINT_infrac {#1}}% }% \def\xint_fmin #1#2% {% \expandafter\XINT_outfrac \romannumeral0\expandafter\XINT_fmin_A \romannumeral0\XINT_infrac {#2}#1% }% \def\XINT_fmin_A #1#2#3#4#5#6% {% \ifnum #4 > #1 \xint_afterfi {\XINT_fmin_B {#1}}% \else \xint_afterfi {\XINT_fmin_B {#4}}% \fi {#1}{#4}{#2}{#3}{#5}{#6}{{#4}{#5}{#6}}{{#1}{#2}{#3}}% }% \def\XINT_fmin_B #1#2#3#4#5#6#7% {% \expandafter\XINT_fmin_C\expandafter {\romannumeral0\xintimul {\xintDSH {\the\numexpr -#3+#1\relax}{#6}}{#5}}% {\romannumeral0\xintimul {#7}{\xintDSH {\the\numexpr -#2+#1\relax}{#4}}}% }% \def\XINT_fmin_C #1#2% {% \expandafter\XINT_min_fork #2\Z #1\Z }% \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{\xintisgn {#2}}% \def\xintDivision {\romannumeral0\xintdivision }% \def\xintdivision #1% {% \expandafter\xint_xdivision\expandafter{\romannumeral0\xintnum {#1}}% }% \def\xint_xdivision #1#2% {% \expandafter\XINT_div_fork\romannumeral0\xintnum {#2}\Z #1\Z }% \def\xintQuo {\romannumeral0\xintquo }% \def\xintRem {\romannumeral0\xintrem }% \def\xintquo {\expandafter\xint_firstoftwo_andstop \romannumeral0\xintdivision }% \def\xintrem {\expandafter\xint_secondoftwo_andstop \romannumeral0\xintdivision }% \def\xintFDg {\romannumeral0\xintfdg }% \def\xintfdg #1% {% \expandafter\XINT_fdg\romannumeral0\xintnum {#1}\W\Z }% \def\xintLDg {\romannumeral0\xintldg }% \def\xintldg #1% {% \expandafter\XINT_ldg\expandafter{\romannumeral0\xintnum {#1}}% }% \def\xintMON {\romannumeral0\xintmon }% \def\xintmon #1% {% \ifodd\xintLDg {#1} \xint_afterfi{ -1}% \else \xint_afterfi{ 1}% \fi }% \def\xintMMON {\romannumeral0\xintmmon }% \def\xintmmon #1% {% \ifodd\xintLDg {#1} \xint_afterfi{ 1}% \else \xint_afterfi{ -1}% \fi }% \def\xintOdd {\romannumeral0\xintodd }% \def\xintodd #1% {% \ifodd\xintLDg{#1} \xint_afterfi{ 1}% \else \xint_afterfi{ 0}% \fi }% \def\xintFloatAdd {\romannumeral0\xintfloatadd }% \def\xintfloatadd #1{\XINT_fladd_chkopt \xintfloat #1\Z }% \def\XINTinFloatAdd {\romannumeral-`0\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[\XINT_digits]{\XINT_FL_Add {\XINT_digits+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{\romannumeral-`0\XINT_inFloat [#1]{#2}}% }% \def\XINT_FL_Add_a #1#2#3% {% \expandafter\XINT_FL_Add_b\romannumeral-`0\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 {\romannumeral-`0\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[\XINT_digits]{\XINT_FL_Add {\XINT_digits+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 {\romannumeral-`0\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[\XINT_digits]{\XINT_FL_Mul {\XINT_digits+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{\romannumeral-`0\XINT_inFloat [#1]{#2}}% }% \def\XINT_FL_Mul_a #1#2#3% {% \expandafter\XINT_FL_Mul_b\romannumeral-`0\XINT_inFloat [#1]{#3}#2% }% \def\XINT_FL_Mul_b #1[#2]#3[#4]{\xintE{\xintiMul {#1}{#3}}{#2+#4}}% \def\xintFloatDiv {\romannumeral0\xintfloatdiv}% \def\xintfloatdiv #1{\XINT_fldiv_chkopt \xintfloat #1\Z }% \def\XINTinFloatDiv {\romannumeral-`0\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[\XINT_digits]{\XINT_FL_Div {\XINT_digits+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{\romannumeral-`0\XINT_inFloat [#1]{#2}}% }% \def\XINT_FL_Div_a #1#2#3% {% \expandafter\XINT_FL_Div_b\romannumeral-`0\XINT_inFloat [#1]{#3}#2% }% \def\XINT_FL_Div_b #1[#2]#3[#4]{\xintE{#3/#1}{#4-#2}}% \def\xintFloatPow {\romannumeral0\xintfloatpow}% \def\xintfloatpow #1{\XINT_flpow_chkopt \xintfloat #1\Z }% \def\XINTinFloatPow {\romannumeral-`0\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 \XINT_digits}{#2}{#1[\XINT_digits]}% }% \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\XINT_length{#2}}{#3}{#2}#1% }% \def\XINT_flpow_checkB_c #1#2% {% \expandafter\XINT_flpow_checkB_d \expandafter {\the\numexpr \expandafter\XINT_Length\expandafter {\the\numexpr #1*20/3}+#1+#2+1}% }% \def\XINT_flpow_checkB_d #1#2#3#4% {% \expandafter \XINT_flpow_a \romannumeral-`0\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_undef\xint_undef\xint_undef\xint_undef \xint_undef\xint_undef\xint_undef\xint_undef \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{\romannumeral-`0\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 {\romannumeral-`0\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 {\romannumeral-`0\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 \XINT_digits\expandafter}\expandafter {\romannumeral0\xintnum{#3}}{#2}{#1[\XINT_digits]}% }% \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\XINT_length{#2}}{#3}{#2}#1% }% \def\XINT_flpower_checkB_c #1#2% {% \expandafter\XINT_flpower_checkB_d \expandafter {\the\numexpr \expandafter\XINT_Length\expandafter {\the\numexpr #1*20/3}+#1+#2+1}% }% \def\XINT_flpower_checkB_d #1#2#3#4% {% \expandafter \XINT_flpower_a \romannumeral-`0\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*\xintOdd {#5}}% }% \def\XINT_flpower_c #1#2#3#4% {% \XINT_flpower_loop {#1}{#2}{#3}{{#1}}\XINT_flpow_prd \xint_relax \xint_undef\xint_undef\xint_undef\xint_undef \xint_undef\xint_undef\xint_undef\xint_undef \xint_relax {#4}% }% \def\XINT_flpower_loop #1#2#3% {% \ifcase\XINT_isOne {#2} \xint_afterfi{\expandafter\XINT_flpower_loop_x\expandafter {\romannumeral-`0\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}% }% \XINT_frac_restorecatcodes_endinput% \endinput %% %% End of file `xintfrac.sty'.