%% %% This is file `xintcfrac.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% xint.dtx (with options: `xintcfrac') %% %% IMPORTANT NOTICE: %% %% For the copyright see the source file. %% %% Any modified versions of this file must be renamed %% with new filenames distinct from xintcfrac.sty. %% %% For distribution of the original source see the terms %% for copying and modification in the file xint.dtx. %% %% This generated file may be distributed as long as the %% original source files, as listed above, are part of the %% same distribution. (The sources need not necessarily be %% in the same archive or directory.) %% --------------------------------------------------------------- %% The xint bundle 1.2j 2016/12/22 %% Copyright (C) 2013-2016 by Jean-Francois Burnol %% xintcfrac: Expandable continued fractions with xint package %% --------------------------------------------------------------- \begingroup\catcode61\catcode48\catcode32=10\relax% \catcode13=5 % ^^M \endlinechar=13 % \catcode123=1 % { \catcode125=2 % } \catcode64=11 % @ \catcode35=6 % # \catcode44=12 % , \catcode45=12 % - \catcode46=12 % . \catcode58=12 % : \let\z\endgroup \expandafter\let\expandafter\x\csname ver@xintcfrac.sty\endcsname \expandafter\let\expandafter\w\csname ver@xintfrac.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{xintcfrac}{\numexpr not available, aborting input}% \aftergroup\endinput \else \ifx\x\relax % plain-TeX, first loading of xintcfrac.sty \ifx\w\relax % but xintfrac.sty not yet loaded. \def\z{\endgroup\input xintfrac.sty\relax}% \fi \else \def\empty {}% \ifx\x\empty % LaTeX, first loading, % variable is initialized, but \ProvidesPackage not yet seen \ifx\w\relax % xintfrac.sty not yet loaded. \def\z{\endgroup\RequirePackage{xintfrac}}% \fi \else \aftergroup\endinput % xintcfrac already loaded. \fi \fi \fi \z% \XINTsetupcatcodes% defined in xintkernel.sty \XINT_providespackage \ProvidesPackage{xintcfrac}% [2016/12/22 1.2j Expandable continued fractions with xint package (JFB)]% \def\xintCFrac {\romannumeral0\xintcfrac }% \def\xintcfrac #1% {% \XINT_cfrac_opt_a #1\xint_relax }% \def\XINT_cfrac_opt_a #1% {% \ifx[#1\XINT_cfrac_opt_b\fi \XINT_cfrac_noopt #1% }% \def\XINT_cfrac_noopt #1\xint_relax {% \expandafter\XINT_cfrac_A\romannumeral0\xintrawwithzeros {#1}\Z \relax\relax }% \def\XINT_cfrac_opt_b\fi\XINT_cfrac_noopt [\xint_relax #1]% {% \fi\csname XINT_cfrac_opt#1\endcsname }% \def\XINT_cfrac_optl #1% {% \expandafter\XINT_cfrac_A\romannumeral0\xintrawwithzeros {#1}\Z \relax\hfill }% \def\XINT_cfrac_optc #1% {% \expandafter\XINT_cfrac_A\romannumeral0\xintrawwithzeros {#1}\Z \relax\relax }% \def\XINT_cfrac_optr #1% {% \expandafter\XINT_cfrac_A\romannumeral0\xintrawwithzeros {#1}\Z \hfill\relax }% \def\XINT_cfrac_A #1/#2\Z {% \expandafter\XINT_cfrac_B\romannumeral0\xintiidivision {#1}{#2}{#2}% }% \def\XINT_cfrac_B #1#2% {% \XINT_cfrac_C #2\Z {#1}% }% \def\XINT_cfrac_C #1% {% \xint_gob_til_zero #1\XINT_cfrac_integer 0\XINT_cfrac_D #1% }% \def\XINT_cfrac_integer 0\XINT_cfrac_D 0#1\Z #2#3#4#5{ #2}% \def\XINT_cfrac_D #1\Z #2#3{\XINT_cfrac_loop_a {#1}{#3}{#1}{{#2}}}% \def\XINT_cfrac_loop_a {% \expandafter\XINT_cfrac_loop_d\romannumeral0\XINT_div_prepare }% \def\XINT_cfrac_loop_d #1#2% {% \XINT_cfrac_loop_e #2.{#1}% }% \def\XINT_cfrac_loop_e #1% {% \xint_gob_til_zero #1\xint_cfrac_loop_exit0\XINT_cfrac_loop_f #1% }% \def\XINT_cfrac_loop_f #1.#2#3#4% {% \XINT_cfrac_loop_a {#1}{#3}{#1}{{#2}#4}% }% \def\xint_cfrac_loop_exit0\XINT_cfrac_loop_f #1.#2#3#4#5#6% {\XINT_cfrac_T #5#6{#2}#4\Z }% \def\XINT_cfrac_T #1#2#3#4% {% \xint_gob_til_Z #4\XINT_cfrac_end\Z\XINT_cfrac_T #1#2{#4+\cfrac{#11#2}{#3}}% }% \def\XINT_cfrac_end\Z\XINT_cfrac_T #1#2#3% {% \XINT_cfrac_end_b #3% }% \def\XINT_cfrac_end_b \Z+\cfrac#1#2{ #2}% \def\xintGCFrac {\romannumeral0\xintgcfrac }% \def\xintgcfrac #1{\XINT_gcfrac_opt_a #1\xint_relax }% \def\XINT_gcfrac_opt_a #1% {% \ifx[#1\XINT_gcfrac_opt_b\fi \XINT_gcfrac_noopt #1% }% \def\XINT_gcfrac_noopt #1\xint_relax {% \XINT_gcfrac #1+\xint_relax/\relax\relax }% \def\XINT_gcfrac_opt_b\fi\XINT_gcfrac_noopt [\xint_relax #1]% {% \fi\csname XINT_gcfrac_opt#1\endcsname }% \def\XINT_gcfrac_optl #1% {% \XINT_gcfrac #1+\xint_relax/\relax\hfill }% \def\XINT_gcfrac_optc #1% {% \XINT_gcfrac #1+\xint_relax/\relax\relax }% \def\XINT_gcfrac_optr #1% {% \XINT_gcfrac #1+\xint_relax/\hfill\relax }% \def\XINT_gcfrac {% \expandafter\XINT_gcfrac_enter\romannumeral`&&@% }% \def\XINT_gcfrac_enter {\XINT_gcfrac_loop {}}% \def\XINT_gcfrac_loop #1#2+#3/% {% \xint_gob_til_xint_relax #3\XINT_gcfrac_endloop\xint_relax \XINT_gcfrac_loop {{#3}{#2}#1}% }% \def\XINT_gcfrac_endloop\xint_relax\XINT_gcfrac_loop #1#2#3% {% \XINT_gcfrac_T #2#3#1\xint_relax\xint_relax }% \def\XINT_gcfrac_T #1#2#3#4{\XINT_gcfrac_U #1#2{\xintFrac{#4}}}% \def\XINT_gcfrac_U #1#2#3#4#5% {% \xint_gob_til_xint_relax #5\XINT_gcfrac_end\xint_relax\XINT_gcfrac_U #1#2{\xintFrac{#5}% \ifcase\xintSgn{#4} +\or+\else-\fi \cfrac{#1\xintFrac{\xintAbs{#4}}#2}{#3}}% }% \def\XINT_gcfrac_end\xint_relax\XINT_gcfrac_U #1#2#3% {% \XINT_gcfrac_end_b #3% }% \def\XINT_gcfrac_end_b #1\cfrac#2#3{ #3}% \def\xintGGCFrac {\romannumeral0\xintggcfrac }% \def\xintggcfrac #1{\XINT_ggcfrac_opt_a #1\xint_relax }% \def\XINT_ggcfrac_opt_a #1% {% \ifx[#1\XINT_ggcfrac_opt_b\fi \XINT_ggcfrac_noopt #1% }% \def\XINT_ggcfrac_noopt #1\xint_relax {% \XINT_ggcfrac #1+\xint_relax/\relax\relax }% \def\XINT_ggcfrac_opt_b\fi\XINT_ggcfrac_noopt [\xint_relax #1]% {% \fi\csname XINT_ggcfrac_opt#1\endcsname }% \def\XINT_ggcfrac_optl #1% {% \XINT_ggcfrac #1+\xint_relax/\relax\hfill }% \def\XINT_ggcfrac_optc #1% {% \XINT_ggcfrac #1+\xint_relax/\relax\relax }% \def\XINT_ggcfrac_optr #1% {% \XINT_ggcfrac #1+\xint_relax/\hfill\relax }% \def\XINT_ggcfrac {% \expandafter\XINT_ggcfrac_enter\romannumeral`&&@% }% \def\XINT_ggcfrac_enter {\XINT_ggcfrac_loop {}}% \def\XINT_ggcfrac_loop #1#2+#3/% {% \xint_gob_til_xint_relax #3\XINT_ggcfrac_endloop\xint_relax \XINT_ggcfrac_loop {{#3}{#2}#1}% }% \def\XINT_ggcfrac_endloop\xint_relax\XINT_ggcfrac_loop #1#2#3% {% \XINT_ggcfrac_T #2#3#1\xint_relax\xint_relax }% \def\XINT_ggcfrac_T #1#2#3#4{\XINT_ggcfrac_U #1#2{#4}}% \def\XINT_ggcfrac_U #1#2#3#4#5% {% \xint_gob_til_xint_relax #5\XINT_ggcfrac_end\xint_relax\XINT_ggcfrac_U #1#2{#5+\cfrac{#1#4#2}{#3}}% }% \def\XINT_ggcfrac_end\xint_relax\XINT_ggcfrac_U #1#2#3% {% \XINT_ggcfrac_end_b #3% }% \def\XINT_ggcfrac_end_b #1\cfrac#2#3{ #3}% \def\xintGCtoGCx {\romannumeral0\xintgctogcx }% \def\xintgctogcx #1#2#3% {% \expandafter\XINT_gctgcx_start\expandafter {\romannumeral`&&@#3}{#1}{#2}% }% \def\XINT_gctgcx_start #1#2#3{\XINT_gctgcx_loop_a {}{#2}{#3}#1+\xint_relax/}% \def\XINT_gctgcx_loop_a #1#2#3#4+#5/% {% \xint_gob_til_xint_relax #5\XINT_gctgcx_end\xint_relax \XINT_gctgcx_loop_b {#1{#4}}{#2{#5}#3}{#2}{#3}% }% \def\XINT_gctgcx_loop_b #1#2% {% \XINT_gctgcx_loop_a {#1#2}% }% \def\XINT_gctgcx_end\xint_relax\XINT_gctgcx_loop_b #1#2#3#4{ #1}% \def\xintFtoCs {\romannumeral0\xintftocs }% \def\xintftocs #1% {% \expandafter\XINT_ftc_A\romannumeral0\xintrawwithzeros {#1}\Z }% \def\XINT_ftc_A #1/#2\Z {% \expandafter\XINT_ftc_B\romannumeral0\xintiidivision {#1}{#2}{#2}% }% \def\XINT_ftc_B #1#2% {% \XINT_ftc_C #2.{#1}% }% \def\XINT_ftc_C #1% {% \xint_gob_til_zero #1\XINT_ftc_integer 0\XINT_ftc_D #1% }% \def\XINT_ftc_integer 0\XINT_ftc_D 0#1.#2#3{ #2}% \def\XINT_ftc_D #1.#2#3{\XINT_ftc_loop_a {#1}{#3}{#1}{#2, }}% 1.09m adds a space \def\XINT_ftc_loop_a {% \expandafter\XINT_ftc_loop_d\romannumeral0\XINT_div_prepare }% \def\XINT_ftc_loop_d #1#2% {% \XINT_ftc_loop_e #2.{#1}% }% \def\XINT_ftc_loop_e #1% {% \xint_gob_til_zero #1\xint_ftc_loop_exit0\XINT_ftc_loop_f #1% }% \def\XINT_ftc_loop_f #1.#2#3#4% {% \XINT_ftc_loop_a {#1}{#3}{#1}{#4#2, }% 1.09m has an added space here }% \def\xint_ftc_loop_exit0\XINT_ftc_loop_f #1.#2#3#4{ #4#2}% \def\xintFtoCx {\romannumeral0\xintftocx }% \def\xintftocx #1#2% {% \expandafter\XINT_ftcx_A\romannumeral0\xintrawwithzeros {#2}\Z {#1}% }% \def\XINT_ftcx_A #1/#2\Z {% \expandafter\XINT_ftcx_B\romannumeral0\xintiidivision {#1}{#2}{#2}% }% \def\XINT_ftcx_B #1#2% {% \XINT_ftcx_C #2.{#1}% }% \def\XINT_ftcx_C #1% {% \xint_gob_til_zero #1\XINT_ftcx_integer 0\XINT_ftcx_D #1% }% \def\XINT_ftcx_integer 0\XINT_ftcx_D 0#1.#2#3#4{ #2}% \def\XINT_ftcx_D #1.#2#3#4{\XINT_ftcx_loop_a {#1}{#3}{#1}{{#2}#4}{#4}}% \def\XINT_ftcx_loop_a {% \expandafter\XINT_ftcx_loop_d\romannumeral0\XINT_div_prepare }% \def\XINT_ftcx_loop_d #1#2% {% \XINT_ftcx_loop_e #2.{#1}% }% \def\XINT_ftcx_loop_e #1% {% \xint_gob_til_zero #1\xint_ftcx_loop_exit0\XINT_ftcx_loop_f #1% }% \def\XINT_ftcx_loop_f #1.#2#3#4#5% {% \XINT_ftcx_loop_a {#1}{#3}{#1}{#4{#2}#5}{#5}% }% \def\xint_ftcx_loop_exit0\XINT_ftcx_loop_f #1.#2#3#4#5{ #4{#2}}% \def\xintFtoC {\romannumeral0\xintftoc }% \def\xintftoc {\xintftocx {}}% \def\xintFtoGC {\romannumeral0\xintftogc }% \def\xintftogc {\xintftocx {+1/}}% \def\xintFGtoC {\romannumeral0\xintfgtoc}% \def\xintfgtoc#1% {% \expandafter\XINT_fgtc_a\romannumeral0\xintrawwithzeros {#1}\Z }% \def\XINT_fgtc_a #1/#2\Z #3% {% \expandafter\XINT_fgtc_b\romannumeral0\xintrawwithzeros {#3}\Z #1/#2\Z { }% }% \def\XINT_fgtc_b #1/#2\Z {% \expandafter\XINT_fgtc_c\romannumeral0\xintiidivision {#1}{#2}{#2}% }% \def\XINT_fgtc_c #1#2#3#4/#5\Z {% \expandafter\XINT_fgtc_d\romannumeral0\xintiidivision {#4}{#5}{#5}{#1}{#2}{#3}% }% \def\XINT_fgtc_d #1#2#3#4%#5#6#7% {% \xintifEq {#1}{#4}{\XINT_fgtc_da {#1}{#2}{#3}{#4}}% {\xint_thirdofthree}% }% \def\XINT_fgtc_da #1#2#3#4#5#6#7% {% \XINT_fgtc_e {#2}{#5}{#3}{#6}{#7{#1}}% }% \def\XINT_fgtc_e #1% {% \xintifZero {#1}{\expandafter\xint_firstofone\xint_gobble_iii}% {\XINT_fgtc_f {#1}}% }% \def\XINT_fgtc_f #1#2% {% \xintifZero {#2}{\xint_thirdofthree}{\XINT_fgtc_g {#1}{#2}}% }% \def\XINT_fgtc_g #1#2#3% {% \expandafter\XINT_fgtc_h\romannumeral0\XINT_div_prepare {#1}{#3}{#1}{#2}% }% \def\XINT_fgtc_h #1#2#3#4#5% {% \expandafter\XINT_fgtc_d\romannumeral0\XINT_div_prepare {#4}{#5}{#4}{#1}{#2}{#3}% }% \def\xintFtoCC {\romannumeral0\xintftocc }% \def\xintftocc #1% {% \expandafter\XINT_ftcc_A\expandafter {\romannumeral0\xintrawwithzeros {#1}}% }% \def\XINT_ftcc_A #1% {% \expandafter\XINT_ftcc_B \romannumeral0\xintrawwithzeros {\xintAdd {1/2[0]}{#1[0]}}\Z {#1[0]}% }% \def\XINT_ftcc_B #1/#2\Z {% \expandafter\XINT_ftcc_C\expandafter {\romannumeral0\xintiiquo {#1}{#2}}% }% \def\XINT_ftcc_C #1#2% {% \expandafter\XINT_ftcc_D\romannumeral0\xintsub {#2}{#1}\Z {#1}% }% \def\XINT_ftcc_D #1% {% \xint_UDzerominusfork #1-\XINT_ftcc_integer 0#1\XINT_ftcc_En 0-{\XINT_ftcc_Ep #1}% \krof }% \def\XINT_ftcc_Ep #1\Z #2% {% \expandafter\XINT_ftcc_loop_a\expandafter {\romannumeral0\xintdiv {1[0]}{#1}}{#2+1/}% }% \def\XINT_ftcc_En #1\Z #2% {% \expandafter\XINT_ftcc_loop_a\expandafter {\romannumeral0\xintdiv {1[0]}{#1}}{#2+-1/}% }% \def\XINT_ftcc_integer #1\Z #2{ #2}% \def\XINT_ftcc_loop_a #1% {% \expandafter\XINT_ftcc_loop_b \romannumeral0\xintrawwithzeros {\xintAdd {1/2[0]}{#1}}\Z {#1}% }% \def\XINT_ftcc_loop_b #1/#2\Z {% \expandafter\XINT_ftcc_loop_c\expandafter {\romannumeral0\xintiiquo {#1}{#2}}% }% \def\XINT_ftcc_loop_c #1#2% {% \expandafter\XINT_ftcc_loop_d \romannumeral0\xintsub {#2}{#1[0]}\Z {#1}% }% \def\XINT_ftcc_loop_d #1% {% \xint_UDzerominusfork #1-\XINT_ftcc_end 0#1\XINT_ftcc_loop_N 0-{\XINT_ftcc_loop_P #1}% \krof }% \def\XINT_ftcc_end #1\Z #2#3{ #3#2}% \def\XINT_ftcc_loop_P #1\Z #2#3% {% \expandafter\XINT_ftcc_loop_a\expandafter {\romannumeral0\xintdiv {1[0]}{#1}}{#3#2+1/}% }% \def\XINT_ftcc_loop_N #1\Z #2#3% {% \expandafter\XINT_ftcc_loop_a\expandafter {\romannumeral0\xintdiv {1[0]}{#1}}{#3#2+-1/}% }% \def\xintCstoF {\romannumeral0\xintcstof }% \def\xintcstof #1% {% \expandafter\XINT_ctf_prep \romannumeral0\xintcsvtolist{#1}\xint_relax }% \def\xintCtoF {\romannumeral0\xintctof }% \def\xintctof #1% {% \expandafter\XINT_ctf_prep \romannumeral`&&@#1\xint_relax }% \def\XINT_ctf_prep {% \XINT_ctf_loop_a 1001% }% \def\XINT_ctf_loop_a #1#2#3#4#5% {% \xint_gob_til_xint_relax #5\XINT_ctf_end\xint_relax \expandafter\XINT_ctf_loop_b \romannumeral0\xintrawwithzeros {#5}.{#1}{#2}{#3}{#4}% }% \def\XINT_ctf_loop_b #1/#2.#3#4#5#6% {% \expandafter\XINT_ctf_loop_c\expandafter {\romannumeral0\XINT_mul_fork #2\Z #4\Z }% {\romannumeral0\XINT_mul_fork #2\Z #3\Z }% {\romannumeral0\xintiiadd {\XINT_mul_fork #2\Z #6\Z}{\XINT_mul_fork #1\Z #4\Z}}% {\romannumeral0\xintiiadd {\XINT_mul_fork #2\Z #5\Z}{\XINT_mul_fork #1\Z #3\Z}}% }% \def\XINT_ctf_loop_c #1#2% {% \expandafter\XINT_ctf_loop_d\expandafter {\expandafter{#2}{#1}}% }% \def\XINT_ctf_loop_d #1#2% {% \expandafter\XINT_ctf_loop_e\expandafter {\expandafter{#2}#1}% }% \def\XINT_ctf_loop_e #1#2% {% \expandafter\XINT_ctf_loop_a\expandafter{#2}#1% }% \def\XINT_ctf_end #1.#2#3#4#5{\xintrawwithzeros {#2/#3}}% 1.09b removes [0] \def\xintiCstoF {\romannumeral0\xinticstof }% \def\xinticstof #1% {% \expandafter\XINT_icstf_prep \romannumeral`&&@#1,\xint_relax,% }% \def\XINT_icstf_prep {% \XINT_icstf_loop_a 1001% }% \def\XINT_icstf_loop_a #1#2#3#4#5,% {% \xint_gob_til_xint_relax #5\XINT_icstf_end\xint_relax \expandafter \XINT_icstf_loop_b \romannumeral`&&@#5.{#1}{#2}{#3}{#4}% }% \def\XINT_icstf_loop_b #1.#2#3#4#5% {% \expandafter\XINT_icstf_loop_c\expandafter {\romannumeral0\xintiiadd {#5}{\XINT_mul_fork #1\Z #3\Z}}% {\romannumeral0\xintiiadd {#4}{\XINT_mul_fork #1\Z #2\Z}}% {#2}{#3}% }% \def\XINT_icstf_loop_c #1#2% {% \expandafter\XINT_icstf_loop_a\expandafter {#2}{#1}% }% \def\XINT_icstf_end#1.#2#3#4#5{\xintrawwithzeros {#2/#3}}% 1.09b removes [0] \def\xintGCtoF {\romannumeral0\xintgctof }% \def\xintgctof #1% {% \expandafter\XINT_gctf_prep \romannumeral`&&@#1+\xint_relax/% }% \def\XINT_gctf_prep {% \XINT_gctf_loop_a 1001% }% \def\XINT_gctf_loop_a #1#2#3#4#5+% {% \expandafter\XINT_gctf_loop_b \romannumeral0\xintrawwithzeros {#5}.{#1}{#2}{#3}{#4}% }% \def\XINT_gctf_loop_b #1/#2.#3#4#5#6% {% \expandafter\XINT_gctf_loop_c\expandafter {\romannumeral0\XINT_mul_fork #2\Z #4\Z }% {\romannumeral0\XINT_mul_fork #2\Z #3\Z }% {\romannumeral0\xintiiadd {\XINT_mul_fork #2\Z #6\Z}{\XINT_mul_fork #1\Z #4\Z}}% {\romannumeral0\xintiiadd {\XINT_mul_fork #2\Z #5\Z}{\XINT_mul_fork #1\Z #3\Z}}% }% \def\XINT_gctf_loop_c #1#2% {% \expandafter\XINT_gctf_loop_d\expandafter {\expandafter{#2}{#1}}% }% \def\XINT_gctf_loop_d #1#2% {% \expandafter\XINT_gctf_loop_e\expandafter {\expandafter{#2}#1}% }% \def\XINT_gctf_loop_e #1#2% {% \expandafter\XINT_gctf_loop_f\expandafter {\expandafter{#2}#1}% }% \def\XINT_gctf_loop_f #1#2/% {% \xint_gob_til_xint_relax #2\XINT_gctf_end\xint_relax \expandafter\XINT_gctf_loop_g \romannumeral0\xintrawwithzeros {#2}.#1% }% \def\XINT_gctf_loop_g #1/#2.#3#4#5#6% {% \expandafter\XINT_gctf_loop_h\expandafter {\romannumeral0\XINT_mul_fork #1\Z #6\Z }% {\romannumeral0\XINT_mul_fork #1\Z #5\Z }% {\romannumeral0\XINT_mul_fork #2\Z #4\Z }% {\romannumeral0\XINT_mul_fork #2\Z #3\Z }% }% \def\XINT_gctf_loop_h #1#2% {% \expandafter\XINT_gctf_loop_i\expandafter {\expandafter{#2}{#1}}% }% \def\XINT_gctf_loop_i #1#2% {% \expandafter\XINT_gctf_loop_j\expandafter {\expandafter{#2}#1}% }% \def\XINT_gctf_loop_j #1#2% {% \expandafter\XINT_gctf_loop_a\expandafter {#2}#1% }% \def\XINT_gctf_end #1.#2#3#4#5{\xintrawwithzeros {#2/#3}}% 1.09b removes [0] \def\xintiGCtoF {\romannumeral0\xintigctof }% \def\xintigctof #1% {% \expandafter\XINT_igctf_prep \romannumeral`&&@#1+\xint_relax/% }% \def\XINT_igctf_prep {% \XINT_igctf_loop_a 1001% }% \def\XINT_igctf_loop_a #1#2#3#4#5+% {% \expandafter\XINT_igctf_loop_b \romannumeral`&&@#5.{#1}{#2}{#3}{#4}% }% \def\XINT_igctf_loop_b #1.#2#3#4#5% {% \expandafter\XINT_igctf_loop_c\expandafter {\romannumeral0\xintiiadd {#5}{\XINT_mul_fork #1\Z #3\Z}}% {\romannumeral0\xintiiadd {#4}{\XINT_mul_fork #1\Z #2\Z}}% {#2}{#3}% }% \def\XINT_igctf_loop_c #1#2% {% \expandafter\XINT_igctf_loop_f\expandafter {\expandafter{#2}{#1}}% }% \def\XINT_igctf_loop_f #1#2#3#4/% {% \xint_gob_til_xint_relax #4\XINT_igctf_end\xint_relax \expandafter\XINT_igctf_loop_g \romannumeral`&&@#4.{#2}{#3}#1% }% \def\XINT_igctf_loop_g #1.#2#3% {% \expandafter\XINT_igctf_loop_h\expandafter {\romannumeral0\XINT_mul_fork #1\Z #3\Z }% {\romannumeral0\XINT_mul_fork #1\Z #2\Z }% }% \def\XINT_igctf_loop_h #1#2% {% \expandafter\XINT_igctf_loop_i\expandafter {#2}{#1}% }% \def\XINT_igctf_loop_i #1#2#3#4% {% \XINT_igctf_loop_a {#3}{#4}{#1}{#2}% }% \def\XINT_igctf_end #1.#2#3#4#5{\xintrawwithzeros {#4/#5}}% 1.09b removes [0] \def\xintCstoCv {\romannumeral0\xintcstocv }% \def\xintcstocv #1% {% \expandafter\XINT_ctcv_prep\romannumeral0\xintcsvtolist{#1}\xint_relax }% \def\xintCtoCv {\romannumeral0\xintctocv }% \def\xintctocv #1% {% \expandafter\XINT_ctcv_prep\romannumeral`&&@#1\xint_relax }% \def\XINT_ctcv_prep {% \XINT_ctcv_loop_a {}1001% }% \def\XINT_ctcv_loop_a #1#2#3#4#5#6% {% \xint_gob_til_xint_relax #6\XINT_ctcv_end\xint_relax \expandafter\XINT_ctcv_loop_b \romannumeral0\xintrawwithzeros {#6}.{#2}{#3}{#4}{#5}{#1}% }% \def\XINT_ctcv_loop_b #1/#2.#3#4#5#6% {% \expandafter\XINT_ctcv_loop_c\expandafter {\romannumeral0\XINT_mul_fork #2\Z #4\Z }% {\romannumeral0\XINT_mul_fork #2\Z #3\Z }% {\romannumeral0\xintiiadd {\XINT_mul_fork #2\Z #6\Z}{\XINT_mul_fork #1\Z #4\Z}}% {\romannumeral0\xintiiadd {\XINT_mul_fork #2\Z #5\Z}{\XINT_mul_fork #1\Z #3\Z}}% }% \def\XINT_ctcv_loop_c #1#2% {% \expandafter\XINT_ctcv_loop_d\expandafter {\expandafter{#2}{#1}}% }% \def\XINT_ctcv_loop_d #1#2% {% \expandafter\XINT_ctcv_loop_e\expandafter {\expandafter{#2}#1}% }% \def\XINT_ctcv_loop_e #1#2% {% \expandafter\XINT_ctcv_loop_f\expandafter{#2}#1% }% \def\XINT_ctcv_loop_f #1#2#3#4#5% {% \expandafter\XINT_ctcv_loop_g\expandafter {\romannumeral0\xintrawwithzeros {#1/#2}}{#5}{#1}{#2}{#3}{#4}% }% \def\XINT_ctcv_loop_g #1#2{\XINT_ctcv_loop_a {#2{#1}}}% 1.09b removes [0] \def\XINT_ctcv_end #1.#2#3#4#5#6{ #6}% \def\xintiCstoCv {\romannumeral0\xinticstocv }% \def\xinticstocv #1% {% \expandafter\XINT_icstcv_prep \romannumeral`&&@#1,\xint_relax,% }% \def\XINT_icstcv_prep {% \XINT_icstcv_loop_a {}1001% }% \def\XINT_icstcv_loop_a #1#2#3#4#5#6,% {% \xint_gob_til_xint_relax #6\XINT_icstcv_end\xint_relax \expandafter \XINT_icstcv_loop_b \romannumeral`&&@#6.{#2}{#3}{#4}{#5}{#1}% }% \def\XINT_icstcv_loop_b #1.#2#3#4#5% {% \expandafter\XINT_icstcv_loop_c\expandafter {\romannumeral0\xintiiadd {#5}{\XINT_mul_fork #1\Z #3\Z}}% {\romannumeral0\xintiiadd {#4}{\XINT_mul_fork #1\Z #2\Z}}% {{#2}{#3}}% }% \def\XINT_icstcv_loop_c #1#2% {% \expandafter\XINT_icstcv_loop_d\expandafter {#2}{#1}% }% \def\XINT_icstcv_loop_d #1#2% {% \expandafter\XINT_icstcv_loop_e\expandafter {\romannumeral0\xintrawwithzeros {#1/#2}}{{#1}{#2}}% }% \def\XINT_icstcv_loop_e #1#2#3#4{\XINT_icstcv_loop_a {#4{#1}}#2#3}% \def\XINT_icstcv_end #1.#2#3#4#5#6{ #6}% 1.09b removes [0] \def\xintGCtoCv {\romannumeral0\xintgctocv }% \def\xintgctocv #1% {% \expandafter\XINT_gctcv_prep \romannumeral`&&@#1+\xint_relax/% }% \def\XINT_gctcv_prep {% \XINT_gctcv_loop_a {}1001% }% \def\XINT_gctcv_loop_a #1#2#3#4#5#6+% {% \expandafter\XINT_gctcv_loop_b \romannumeral0\xintrawwithzeros {#6}.{#2}{#3}{#4}{#5}{#1}% }% \def\XINT_gctcv_loop_b #1/#2.#3#4#5#6% {% \expandafter\XINT_gctcv_loop_c\expandafter {\romannumeral0\XINT_mul_fork #2\Z #4\Z }% {\romannumeral0\XINT_mul_fork #2\Z #3\Z }% {\romannumeral0\xintiiadd {\XINT_mul_fork #2\Z #6\Z}{\XINT_mul_fork #1\Z #4\Z}}% {\romannumeral0\xintiiadd {\XINT_mul_fork #2\Z #5\Z}{\XINT_mul_fork #1\Z #3\Z}}% }% \def\XINT_gctcv_loop_c #1#2% {% \expandafter\XINT_gctcv_loop_d\expandafter {\expandafter{#2}{#1}}% }% \def\XINT_gctcv_loop_d #1#2% {% \expandafter\XINT_gctcv_loop_e\expandafter {\expandafter{#2}{#1}}% }% \def\XINT_gctcv_loop_e #1#2% {% \expandafter\XINT_gctcv_loop_f\expandafter {#2}#1% }% \def\XINT_gctcv_loop_f #1#2% {% \expandafter\XINT_gctcv_loop_g\expandafter {\romannumeral0\xintrawwithzeros {#1/#2}}{{#1}{#2}}% }% \def\XINT_gctcv_loop_g #1#2#3#4% {% \XINT_gctcv_loop_h {#4{#1}}{#2#3}% 1.09b removes [0] }% \def\XINT_gctcv_loop_h #1#2#3/% {% \xint_gob_til_xint_relax #3\XINT_gctcv_end\xint_relax \expandafter\XINT_gctcv_loop_i \romannumeral0\xintrawwithzeros {#3}.#2{#1}% }% \def\XINT_gctcv_loop_i #1/#2.#3#4#5#6% {% \expandafter\XINT_gctcv_loop_j\expandafter {\romannumeral0\XINT_mul_fork #1\Z #6\Z }% {\romannumeral0\XINT_mul_fork #1\Z #5\Z }% {\romannumeral0\XINT_mul_fork #2\Z #4\Z }% {\romannumeral0\XINT_mul_fork #2\Z #3\Z }% }% \def\XINT_gctcv_loop_j #1#2% {% \expandafter\XINT_gctcv_loop_k\expandafter {\expandafter{#2}{#1}}% }% \def\XINT_gctcv_loop_k #1#2% {% \expandafter\XINT_gctcv_loop_l\expandafter {\expandafter{#2}#1}% }% \def\XINT_gctcv_loop_l #1#2% {% \expandafter\XINT_gctcv_loop_m\expandafter {\expandafter{#2}#1}% }% \def\XINT_gctcv_loop_m #1#2{\XINT_gctcv_loop_a {#2}#1}% \def\XINT_gctcv_end #1.#2#3#4#5#6{ #6}% \def\xintiGCtoCv {\romannumeral0\xintigctocv }% \def\xintigctocv #1% {% \expandafter\XINT_igctcv_prep \romannumeral`&&@#1+\xint_relax/% }% \def\XINT_igctcv_prep {% \XINT_igctcv_loop_a {}1001% }% \def\XINT_igctcv_loop_a #1#2#3#4#5#6+% {% \expandafter\XINT_igctcv_loop_b \romannumeral`&&@#6.{#2}{#3}{#4}{#5}{#1}% }% \def\XINT_igctcv_loop_b #1.#2#3#4#5% {% \expandafter\XINT_igctcv_loop_c\expandafter {\romannumeral0\xintiiadd {#5}{\XINT_mul_fork #1\Z #3\Z}}% {\romannumeral0\xintiiadd {#4}{\XINT_mul_fork #1\Z #2\Z}}% {{#2}{#3}}% }% \def\XINT_igctcv_loop_c #1#2% {% \expandafter\XINT_igctcv_loop_f\expandafter {\expandafter{#2}{#1}}% }% \def\XINT_igctcv_loop_f #1#2#3#4/% {% \xint_gob_til_xint_relax #4\XINT_igctcv_end_a\xint_relax \expandafter\XINT_igctcv_loop_g \romannumeral`&&@#4.#1#2{#3}% }% \def\XINT_igctcv_loop_g #1.#2#3#4#5% {% \expandafter\XINT_igctcv_loop_h\expandafter {\romannumeral0\XINT_mul_fork #1\Z #5\Z }% {\romannumeral0\XINT_mul_fork #1\Z #4\Z }% {{#2}{#3}}% }% \def\XINT_igctcv_loop_h #1#2% {% \expandafter\XINT_igctcv_loop_i\expandafter {\expandafter{#2}{#1}}% }% \def\XINT_igctcv_loop_i #1#2{\XINT_igctcv_loop_k #2{#2#1}}% \def\XINT_igctcv_loop_k #1#2% {% \expandafter\XINT_igctcv_loop_l\expandafter {\romannumeral0\xintrawwithzeros {#1/#2}}% }% \def\XINT_igctcv_loop_l #1#2#3{\XINT_igctcv_loop_a {#3{#1}}#2}%1.09i removes [0] \def\XINT_igctcv_end_a #1.#2#3#4#5% {% \expandafter\XINT_igctcv_end_b\expandafter {\romannumeral0\xintrawwithzeros {#2/#3}}% }% \def\XINT_igctcv_end_b #1#2{ #2{#1}}% 1.09b removes [0] \def\xintFtoCv {\romannumeral0\xintftocv }% \def\xintftocv #1% {% \xinticstocv {\xintFtoCs {#1}}% }% \def\xintFtoCCv {\romannumeral0\xintftoccv }% \def\xintftoccv #1% {% \xintigctocv {\xintFtoCC {#1}}% }% \def\xintCntoF {\romannumeral0\xintcntof }% \def\xintcntof #1% {% \expandafter\XINT_cntf\expandafter {\the\numexpr #1}% }% \def\XINT_cntf #1#2% {% \ifnum #1>\xint_c_ \xint_afterfi {\expandafter\XINT_cntf_loop\expandafter {\the\numexpr #1-1\expandafter}\expandafter {\romannumeral`&&@#2{#1}}{#2}}% \else \xint_afterfi {\ifnum #1=\xint_c_ \xint_afterfi {\expandafter\space \romannumeral`&&@#2{0}}% \else \xint_afterfi { }% 1.09m now returns nothing. \fi}% \fi }% \def\XINT_cntf_loop #1#2#3% {% \ifnum #1>\xint_c_ \else \XINT_cntf_exit \fi \expandafter\XINT_cntf_loop\expandafter {\the\numexpr #1-1\expandafter }\expandafter {\romannumeral0\xintadd {\xintDiv {1[0]}{#2}}{#3{#1}}}% {#3}% }% \def\XINT_cntf_exit \fi \expandafter\XINT_cntf_loop\expandafter #1\expandafter #2#3% {% \fi\xint_gobble_ii #2% }% \def\xintGCntoF {\romannumeral0\xintgcntof }% \def\xintgcntof #1% {% \expandafter\XINT_gcntf\expandafter {\the\numexpr #1}% }% \def\XINT_gcntf #1#2#3% {% \ifnum #1>\xint_c_ \xint_afterfi {\expandafter\XINT_gcntf_loop\expandafter {\the\numexpr #1-1\expandafter}\expandafter {\romannumeral`&&@#2{#1}}{#2}{#3}}% \else \xint_afterfi {\ifnum #1=\xint_c_ \xint_afterfi {\expandafter\space\romannumeral`&&@#2{0}}% \else \xint_afterfi { }% 1.09m now returns nothing rather than 0/1[0] \fi}% \fi }% \def\XINT_gcntf_loop #1#2#3#4% {% \ifnum #1>\xint_c_ \else \XINT_gcntf_exit \fi \expandafter\XINT_gcntf_loop\expandafter {\the\numexpr #1-1\expandafter }\expandafter {\romannumeral0\xintadd {\xintDiv {#4{#1}}{#2}}{#3{#1}}}% {#3}{#4}% }% \def\XINT_gcntf_exit \fi \expandafter\XINT_gcntf_loop\expandafter #1\expandafter #2#3#4% {% \fi\xint_gobble_ii #2% }% \def\xintCntoCs {\romannumeral0\xintcntocs }% \def\xintcntocs #1% {% \expandafter\XINT_cntcs\expandafter {\the\numexpr #1}% }% \def\XINT_cntcs #1#2% {% \ifnum #1<0 \xint_afterfi { }% 1.09i: a 0/1[0] was here, now the macro returns nothing \else \xint_afterfi {\expandafter\XINT_cntcs_loop\expandafter {\the\numexpr #1-\xint_c_i\expandafter}\expandafter {\romannumeral`&&@#2{#1}}{#2}}% produced coeff not braced \fi }% \def\XINT_cntcs_loop #1#2#3% {% \ifnum #1>-\xint_c_i \else \XINT_cntcs_exit \fi \expandafter\XINT_cntcs_loop\expandafter {\the\numexpr #1-\xint_c_i\expandafter}\expandafter {\romannumeral`&&@#3{#1}, #2}{#3}% space added, 1.09m }% \def\XINT_cntcs_exit \fi \expandafter\XINT_cntcs_loop\expandafter #1\expandafter #2#3% {% \fi\XINT_cntcs_exit_b #2% }% \def\XINT_cntcs_exit_b #1,{}% romannumeral stopping space already there \def\xintCntoGC {\romannumeral0\xintcntogc }% \def\xintcntogc #1% {% \expandafter\XINT_cntgc\expandafter {\the\numexpr #1}% }% \def\XINT_cntgc #1#2% {% \ifnum #1<0 \xint_afterfi { }% 1.09i there was as strange 0/1[0] here, removed \else \xint_afterfi {\expandafter\XINT_cntgc_loop\expandafter {\the\numexpr #1-\xint_c_i\expandafter}\expandafter {\expandafter{\romannumeral`&&@#2{#1}}}{#2}}% \fi }% \def\XINT_cntgc_loop #1#2#3% {% \ifnum #1>-\xint_c_i \else \XINT_cntgc_exit \fi \expandafter\XINT_cntgc_loop\expandafter {\the\numexpr #1-\xint_c_i\expandafter }\expandafter {\expandafter{\romannumeral`&&@#3{#1}}+1/#2}{#3}% }% \def\XINT_cntgc_exit \fi \expandafter\XINT_cntgc_loop\expandafter #1\expandafter #2#3% {% \fi\XINT_cntgc_exit_b #2% }% \def\XINT_cntgc_exit_b #1+1/{ }% \def\xintGCntoGC {\romannumeral0\xintgcntogc }% \def\xintgcntogc #1% {% \expandafter\XINT_gcntgc\expandafter {\the\numexpr #1}% }% \def\XINT_gcntgc #1#2#3% {% \ifnum #1<0 \xint_afterfi { }% 1.09i now returns nothing \else \xint_afterfi {\expandafter\XINT_gcntgc_loop\expandafter {\the\numexpr #1-\xint_c_i\expandafter}\expandafter {\expandafter{\romannumeral`&&@#2{#1}}}{#2}{#3}}% \fi }% \def\XINT_gcntgc_loop #1#2#3#4% {% \ifnum #1>-\xint_c_i \else \XINT_gcntgc_exit \fi \expandafter\XINT_gcntgc_loop_b\expandafter {\expandafter{\romannumeral`&&@#4{#1}}/#2}{#3{#1}}{#1}{#3}{#4}% }% \def\XINT_gcntgc_loop_b #1#2#3% {% \expandafter\XINT_gcntgc_loop\expandafter {\the\numexpr #3-\xint_c_i \expandafter}\expandafter {\expandafter{\romannumeral`&&@#2}+#1}% }% \def\XINT_gcntgc_exit \fi \expandafter\XINT_gcntgc_loop_b\expandafter #1#2#3#4#5% {% \fi\XINT_gcntgc_exit_b #1% }% \def\XINT_gcntgc_exit_b #1/{ }% \def\xintCstoGC {\romannumeral0\xintcstogc }% \def\xintcstogc #1% {% \expandafter\XINT_cstc_prep \romannumeral`&&@#1,\xint_relax,% }% \def\XINT_cstc_prep #1,{\XINT_cstc_loop_a {{#1}}}% \def\XINT_cstc_loop_a #1#2,% {% \xint_gob_til_xint_relax #2\XINT_cstc_end\xint_relax \XINT_cstc_loop_b {#1}{#2}% }% \def\XINT_cstc_loop_b #1#2{\XINT_cstc_loop_a {#1+1/{#2}}}% \def\XINT_cstc_end\xint_relax\XINT_cstc_loop_b #1#2{ #1}% \def\xintGCtoGC {\romannumeral0\xintgctogc }% \def\xintgctogc #1% {% \expandafter\XINT_gctgc_start \romannumeral`&&@#1+\xint_relax/% }% \def\XINT_gctgc_start {\XINT_gctgc_loop_a {}}% \def\XINT_gctgc_loop_a #1#2+#3/% {% \xint_gob_til_xint_relax #3\XINT_gctgc_end\xint_relax \expandafter\XINT_gctgc_loop_b\expandafter {\romannumeral`&&@#2}{#3}{#1}% }% \def\XINT_gctgc_loop_b #1#2% {% \expandafter\XINT_gctgc_loop_c\expandafter {\romannumeral`&&@#2}{#1}% }% \def\XINT_gctgc_loop_c #1#2#3% {% \XINT_gctgc_loop_a {#3{#2}+{#1}/}% }% \def\XINT_gctgc_end\xint_relax\expandafter\XINT_gctgc_loop_b {% \expandafter\XINT_gctgc_end_b }% \def\XINT_gctgc_end_b #1#2#3{ #3{#1}}% \XINT_restorecatcodes_endinput% \endinput %% %% End of file `xintcfrac.sty'.