diff options
Diffstat (limited to 'Master/texmf-dist/tex/generic/xint/xintcfrac.sty')
-rw-r--r-- | Master/texmf-dist/tex/generic/xint/xintcfrac.sty | 1070 |
1 files changed, 1070 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/generic/xint/xintcfrac.sty b/Master/texmf-dist/tex/generic/xint/xintcfrac.sty new file mode 100644 index 00000000000..8600e32fff7 --- /dev/null +++ b/Master/texmf-dist/tex/generic/xint/xintcfrac.sty @@ -0,0 +1,1070 @@ +%% +%% 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 (version 1.04 of April 25, 2013) +%% xintcfrac: Expandable continued fractions with xint package +%% 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@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. + \y{xintcfrac}{Package xintfrac is required}% + \y{xintcfrac}{Will try \string\input\space xintfrac.sty}% + \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. + \y{xintcfrac}{Package xintfrac is required}% + \y{xintcfrac}{Will try \string\RequirePackage{xintfrac}}% + \def\z{\endgroup\RequirePackage{xintfrac}}% + \fi + \else + \y{xintcfrac}{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@xintfrac.sty\endcsname + \ifx\w\relax % Plain TeX, user gave a file name at the prompt + \y{xintcfrac}{Loading of package xintfrac failed, aborting input}% + \aftergroup\endinput + \fi + \ifx\w\empty % LaTeX, user gave a file name at the prompt + \y{xintcfrac}{Loading of package xintfrac failed, aborting input}% + \aftergroup\endinput + \fi +\endgroup% +\begingroup\catcode61\catcode48\catcode32=10\relax% + \catcode13=5 % ^^M + \endlinechar=13 % + \catcode123=1 % { + \catcode125=2 % } + \catcode64=11 % @ + \def\x + {% + \endgroup + \edef\XINT@cfrac@restorecatcodes@endinput + {% + \catcode93=\the\catcode93 % ] + \catcode91=\the\catcode91 % [ + \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 % # + \catcode64=\the\catcode64 % @ + \catcode125=\the\catcode125 % } + \catcode123=\the\catcode123 % { + \endlinechar=\the\endlinechar + \catcode13=\the\catcode13 % ^^M + \catcode32=\the\catcode32 % + \catcode61=\the\catcode61 % = + \noexpand\endinput + }% + \XINT@setcatcodes + \catcode91=12 % [ + \catcode93=12 % ] + }% +\x +\begingroup + \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@xintcfrac.sty\endcsname +\ProvidesPackage{xintcfrac}% + [2013/04/25 v1.04 Expandable continued fractions with xint package (jfB)]% +\def\xintCFrac {\romannumeral0\xintcfrac }% +\def\xintcfrac #1% +{% + \XINT@cfrac@opt@a #1\Z +}% +\def\XINT@cfrac@opt@a #1% +{% + \ifx#1[\XINT@cfrac@opt@b\fi \XINT@cfrac@noopt #1% +}% +\def\XINT@cfrac@noopt #1\Z +{% + \expandafter\XINT@cfrac@A\romannumeral0\xintraw {#1}\Z + \relax\relax +}% +\def\XINT@cfrac@opt@b\fi\XINT@cfrac@noopt [\Z #1]% +{% + \fi\csname XINT@cfrac@opt#1\endcsname +}% +\def\XINT@cfrac@optl #1% +{% + \expandafter\XINT@cfrac@A\romannumeral0\xintraw {#1}\Z + \relax\hfill +}% +\def\XINT@cfrac@optc #1% +{% + \expandafter\XINT@cfrac@A\romannumeral0\xintraw {#1}\Z + \relax\relax +}% +\def\XINT@cfrac@optr #1% +{% + \expandafter\XINT@cfrac@A\romannumeral0\xintraw {#1}\Z + \hfill\relax +}% +\def\XINT@cfrac@A #1/#2\Z +{% + \expandafter\XINT@cfrac@B\romannumeral0\xintdivision {#1}{#2}{#2}% +}% +\def\XINT@cfrac@B #1#2% +{% + \XINT@cfrac@C #2\Z {#1}% +}% +\def\XINT@cfrac@C #1% +{% + \xint@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@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@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 #3% +}% +\def\XINT@cfrac@@end \Z+\cfrac#1#2{ #2}% +\def\xintGCFrac {\romannumeral0\xintgcfrac }% +\def\xintgcfrac #1% +{% + \XINT@gcfrac@opt@a #1\Z +}% +\def\XINT@gcfrac@opt@a #1% +{% + \ifx#1[\XINT@gcfrac@opt@b\fi \XINT@gcfrac@noopt #1% +}% +\def\XINT@gcfrac@noopt #1\Z +{% + \XINT@gcfrac #1+\W/\relax\relax +}% +\def\XINT@gcfrac@opt@b\fi\XINT@gcfrac@noopt [\Z #1]% +{% + \fi\csname XINT@gcfrac@opt#1\endcsname +}% +\def\XINT@gcfrac@optl #1% +{% + \XINT@gcfrac #1+\W/\relax\hfill +}% +\def\XINT@gcfrac@optc #1% +{% + \XINT@gcfrac #1+\W/\relax\relax +}% +\def\XINT@gcfrac@optr #1% +{% + \XINT@gcfrac #1+\W/\hfill\relax +}% +\def\XINT@gcfrac +{% + \expandafter\expandafter\expandafter\XINT@gcfrac@enter +}% +\def\XINT@gcfrac@enter {\XINT@gcfrac@loop {}}% +\def\XINT@gcfrac@loop #1#2+#3/% +{% + \xint@w #3\XINT@gcfrac@endloop\W\XINT@gcfrac@loop {{#3}{#2}#1}% +}% +\def\XINT@gcfrac@endloop\W\XINT@gcfrac@loop #1#2#3% +{% + \XINT@gcfrac@T #2#3#1\Z\Z +}% +\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@z #5\XINT@gcfrac@end\Z\XINT@gcfrac@U + #1#2{\xintFrac{#5}% + \ifcase\xintSgn{#4} + +\or+\else-\fi + \cfrac{#1\xintFrac{\xintAbs{#4}}#2}{#3}}% +}% +\def\XINT@gcfrac@end\Z\XINT@gcfrac@U #1#2#3% +{% + \XINT@gcfrac@@end #3% +}% +\def\XINT@gcfrac@@end #1\cfrac#2#3{ #3}% +\def\xintFtoCs {\romannumeral0\xintftocs }% +\def\xintftocs #1% +{% + \expandafter\XINT@ftc@A\romannumeral0\xintraw {#1}\Z +}% +\def\XINT@ftc@A #1/#2\Z +{% + \expandafter\XINT@ftc@B\romannumeral0\xintdivision {#1}{#2}{#2}% +}% +\def\XINT@ftc@B #1#2% +{% + \XINT@ftc@C #2.{#1}% +}% +\def\XINT@ftc@C #1% +{% + \xint@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,}}% +\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@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,}% +}% +\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\xintraw {#2}\Z {#1}% +}% +\def\XINT@ftcx@A #1/#2\Z +{% + \expandafter\XINT@ftcx@B\romannumeral0\xintdivision {#1}{#2}{#2}% +}% +\def\XINT@ftcx@B #1#2% +{% + \XINT@ftcx@C #2.{#1}% +}% +\def\XINT@ftcx@C #1% +{% + \xint@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@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\xintFtoGC {\romannumeral0\xintftogc }% +\def\xintftogc {\xintftocx {+1/}}% +\def\xintFtoCC {\romannumeral0\xintftocc }% +\def\xintftocc #1% +{% + \expandafter\XINT@ftcc@A\expandafter {\romannumeral0\xintraw {#1}}% +}% +\def\XINT@ftcc@A #1% +{% + \expandafter\XINT@ftcc@B + \romannumeral0\xintraw {\xintAdd {1/2[0]}{#1[0]}}\Z {#1[0]}% +}% +\def\XINT@ftcc@B #1/#2\Z +{% + \expandafter\XINT@ftcc@C\expandafter {\romannumeral0\xintquo {#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-\dummy \XINT@ftcc@integer + 0#1\dummy \XINT@ftcc@En + 0-\dummy {\XINT@ftcc@Ep #1}% + \xint@UDkrof +}% +\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\xintraw {\xintAdd {1/2[0]}{#1}}\Z {#1}% +}% +\def\XINT@ftcc@loop@b #1/#2\Z +{% + \expandafter\XINT@ftcc@loop@c\expandafter + {\romannumeral0\xintquo {#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-\dummy \XINT@ftcc@end + 0#1\dummy \XINT@ftcc@loop@N + 0-\dummy {\XINT@ftcc@loop@P #1}% + \xint@UDkrof +}% +\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\xintFtoCv {\romannumeral0\xintftocv }% +\def\xintftocv #1% +{% + \xinticstocv {\xintFtoCs {#1}}% +}% +\def\xintFtoCCv {\romannumeral0\xintftoccv }% +\def\xintftoccv #1% +{% + \xintigctocv {\xintFtoCC {#1}}% +}% +\def\xintCstoF {\romannumeral0\xintcstof }% +\def\xintcstof #1% +{% + \expandafter\expandafter\expandafter + \XINT@cstf@prep #1,\W,% +}% +\def\XINT@cstf@prep +{% + \XINT@cstf@loop@a 1001% +}% +\def\XINT@cstf@loop@a #1#2#3#4#5,% +{% + \xint@w #5\XINT@cstf@end\W\expandafter\XINT@cstf@loop@b + \romannumeral0\xintraw {#5}.{#1}{#2}{#3}{#4}% +}% +\def\XINT@cstf@loop@b #1/#2.#3#4#5#6% +{% + \expandafter\XINT@cstf@loop@c\expandafter + {\romannumeral0\XINT@mul@fork #2\Z #4\Z }% + {\romannumeral0\XINT@mul@fork #2\Z #3\Z }% + {\romannumeral0\xintiadd {\XINT@Mul {#2}{#6}}{\XINT@Mul {#1}{#4}}}% + {\romannumeral0\xintiadd {\XINT@Mul {#2}{#5}}{\XINT@Mul {#1}{#3}}}% +}% +\def\XINT@cstf@loop@c #1#2% +{% + \expandafter\XINT@cstf@loop@d\expandafter {\expandafter{#2}{#1}}% +}% +\def\XINT@cstf@loop@d #1#2% +{% + \expandafter\XINT@cstf@loop@e\expandafter {\expandafter{#2}#1}% +}% +\def\XINT@cstf@loop@e #1#2% +{% + \expandafter\XINT@cstf@loop@a\expandafter{#2}#1% +}% +\def\XINT@cstf@end #1.#2#3#4#5{\xintraw {#2/#3}[0]}% +\def\xintiCstoF {\romannumeral0\xinticstof }% +\def\xinticstof #1% +{% + \expandafter\expandafter\expandafter + \XINT@icstf@prep #1,\W,% +}% +\def\XINT@icstf@prep +{% + \XINT@icstf@loop@a 1001% +}% +\def\XINT@icstf@loop@a #1#2#3#4#5,% +{% + \xint@w #5\XINT@icstf@end\W + \expandafter\expandafter\expandafter + \XINT@icstf@loop@b #5.{#1}{#2}{#3}{#4}% +}% +\def\XINT@icstf@loop@b #1.#2#3#4#5% +{% + \expandafter\XINT@icstf@loop@c\expandafter + {\romannumeral0\xintiadd {#5}{\XINT@Mul {#1}{#3}}}% + {\romannumeral0\xintiadd {#4}{\XINT@Mul {#1}{#2}}}% + {#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{\xintraw {#2/#3}[0]}% +\def\xintGCtoF {\romannumeral0\xintgctof }% +\def\xintgctof #1% +{% + \expandafter\expandafter\expandafter + \XINT@gctf@prep #1+\W/% +}% +\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\xintraw {#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\xintiadd {\XINT@Mul {#2}{#6}}{\XINT@Mul {#1}{#4}}}% + {\romannumeral0\xintiadd {\XINT@Mul {#2}{#5}}{\XINT@Mul {#1}{#3}}}% +}% +\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@w #2\XINT@gctf@end\W\expandafter\XINT@gctf@loop@g + \romannumeral0\xintraw {#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{\xintraw {#2/#3}[0]}% +\def\xintiGCtoF {\romannumeral0\xintigctof }% +\def\xintigctof #1% +{% + \expandafter\expandafter\expandafter + \XINT@igctf@prep #1+\W/% +}% +\def\XINT@igctf@prep +{% + \XINT@igctf@loop@a 1001% +}% +\def\XINT@igctf@loop@a #1#2#3#4#5+% +{% + \expandafter\expandafter\expandafter\XINT@igctf@loop@b + #5.{#1}{#2}{#3}{#4}% +}% +\def\XINT@igctf@loop@b #1.#2#3#4#5% +{% + \expandafter\XINT@igctf@loop@c\expandafter + {\romannumeral0\xintiadd {#5}{\XINT@Mul {#1}{#3}}}% + {\romannumeral0\xintiadd {#4}{\XINT@Mul {#1}{#2}}}% + {#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@w #4\XINT@igctf@end\W + \expandafter\expandafter\expandafter\XINT@igctf@loop@g + #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{\xintraw {#4/#5}[0]}% +\def\xintCstoCv {\romannumeral0\xintcstocv }% +\def\xintcstocv #1% +{% + \expandafter\expandafter\expandafter + \XINT@cstcv@prep #1,\W,% +}% +\def\XINT@cstcv@prep +{% + \XINT@cstcv@loop@a {}1001% +}% +\def\XINT@cstcv@loop@a #1#2#3#4#5#6,% +{% + \xint@w #6\XINT@cstcv@end\W + \expandafter\XINT@cstcv@loop@b + \romannumeral0\xintraw {#6}.{#2}{#3}{#4}{#5}{#1}% +}% +\def\XINT@cstcv@loop@b #1/#2.#3#4#5#6% +{% + \expandafter\XINT@cstcv@loop@c\expandafter + {\romannumeral0\XINT@mul@fork #2\Z #4\Z }% + {\romannumeral0\XINT@mul@fork #2\Z #3\Z }% + {\romannumeral0\xintiadd {\XINT@Mul {#2}{#6}}{\XINT@Mul {#1}{#4}}}% + {\romannumeral0\xintiadd {\XINT@Mul {#2}{#5}}{\XINT@Mul {#1}{#3}}}% +}% +\def\XINT@cstcv@loop@c #1#2% +{% + \expandafter\XINT@cstcv@loop@d\expandafter {\expandafter{#2}{#1}}% +}% +\def\XINT@cstcv@loop@d #1#2% +{% + \expandafter\XINT@cstcv@loop@e\expandafter {\expandafter{#2}#1}% +}% +\def\XINT@cstcv@loop@e #1#2% +{% + \expandafter\XINT@cstcv@loop@f\expandafter{#2}#1% +}% +\def\XINT@cstcv@loop@f #1#2#3#4#5% +{% + \expandafter\XINT@cstcv@loop@g\expandafter + {\romannumeral0\xintraw {#1/#2}}{#5}{#1}{#2}{#3}{#4}% +}% +\def\XINT@cstcv@loop@g #1#2{\XINT@cstcv@loop@a {#2{#1[0]}}}% +\def\XINT@cstcv@end #1.#2#3#4#5#6{ #6}% +\def\xintiCstoCv {\romannumeral0\xinticstocv }% +\def\xinticstocv #1% +{% + \expandafter\expandafter\expandafter + \XINT@icstcv@prep #1,\W,% +}% +\def\XINT@icstcv@prep +{% + \XINT@icstcv@loop@a {}1001% +}% +\def\XINT@icstcv@loop@a #1#2#3#4#5#6,% +{% + \xint@w #6\XINT@icstcv@end\W + \expandafter\expandafter\expandafter + \XINT@icstcv@loop@b #6.{#2}{#3}{#4}{#5}{#1}% +}% +\def\XINT@icstcv@loop@b #1.#2#3#4#5% +{% + \expandafter\XINT@icstcv@loop@c\expandafter + {\romannumeral0\xintiadd {#5}{\XINT@Mul {#1}{#3}}}% + {\romannumeral0\xintiadd {#4}{\XINT@Mul {#1}{#2}}}% + {{#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\xintraw {#1/#2}}{{#1}{#2}}% +}% +\def\XINT@icstcv@loop@e #1#2#3#4{\XINT@icstcv@loop@a {#4{#1[0]}}#2#3}% +\def\XINT@icstcv@end #1.#2#3#4#5#6{ #6}% +\def\xintGCtoCv {\romannumeral0\xintgctocv }% +\def\xintgctocv #1% +{% + \expandafter\expandafter\expandafter + \XINT@gctcv@prep #1+\W/% +}% +\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\xintraw {#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\xintiadd {\XINT@Mul {#2}{#6}}{\XINT@Mul {#1}{#4}}}% + {\romannumeral0\xintiadd {\XINT@Mul {#2}{#5}}{\XINT@Mul {#1}{#3}}}% +}% +\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\xintraw {#1/#2}}{{#1}{#2}}% +}% +\def\XINT@gctcv@loop@g #1#2#3#4% +{% + \XINT@gctcv@loop@h {#4{#1[0]}}{#2#3}% +}% +\def\XINT@gctcv@loop@h #1#2#3/% +{% + \xint@w #3\XINT@gctcv@end\W\expandafter\XINT@gctcv@loop@i + \romannumeral0\xintraw {#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\expandafter\expandafter + \XINT@igctcv@prep #1+\W/% +}% +\def\XINT@igctcv@prep +{% + \XINT@igctcv@loop@a {}1001% +}% +\def\XINT@igctcv@loop@a #1#2#3#4#5#6+% +{% + \expandafter\expandafter\expandafter\XINT@igctcv@loop@b + #6.{#2}{#3}{#4}{#5}{#1}% +}% +\def\XINT@igctcv@loop@b #1.#2#3#4#5% +{% + \expandafter\XINT@igctcv@loop@c\expandafter + {\romannumeral0\xintiadd {#5}{\XINT@Mul {#1}{#3}}}% + {\romannumeral0\xintiadd {#4}{\XINT@Mul {#1}{#2}}}% + {{#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@w #4\XINT@igctcv@end@a\W + \expandafter\expandafter\expandafter\XINT@igctcv@loop@g + #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\xintraw {#1/#2}}% +}% +\def\XINT@igctcv@loop@l #1#2#3{\XINT@igctcv@loop@a {#3{#1[0]}}#2}% +\def\XINT@igctcv@end@a #1.#2#3#4#5% +{% + \expandafter\XINT@igctcv@end@b\expandafter + {\romannumeral0\xintraw {#2/#3}}% +}% +\def\XINT@igctcv@end@b #1#2{ #2{#1[0]}}% +\def\xintCntoF {\romannumeral0\xintcntof }% +\def\xintcntof #1% +{% + \expandafter\expandafter\expandafter + \XINT@cntf + \expandafter\expandafter\expandafter + {#1}% +}% +\def\XINT@cntf #1#2% +{% + \ifnum #1>0 + \xint@afterfi {\expandafter\XINT@cntf@loop\expandafter + {\the\numexpr + #1-1\expandafter\expandafter\expandafter}% + \expandafter\expandafter\expandafter + {#2{#1}}{#2}}% + \else + \xint@afterfi + {\ifnum #1=0 + \xint@afterfi {\expandafter\expandafter\expandafter + \space #2{0}}% + \else \xint@afterfi { 0[0]}% + \fi}% + \fi +}% +\def\XINT@cntf@loop #1#2#3% +{% + \ifnum #1>0 \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@two #2% +}% +\def\xintGCntoF {\romannumeral0\xintgcntof }% +\def\xintgcntof #1% +{% + \expandafter\expandafter\expandafter + \XINT@gcntf + \expandafter\expandafter\expandafter + {#1}% +}% +\def\XINT@gcntf #1#2#3% +{% + \ifnum #1>0 + \xint@afterfi {\expandafter\XINT@gcntf@loop\expandafter + {\the\numexpr + #1-1\expandafter\expandafter\expandafter}% + \expandafter\expandafter\expandafter + {#2{#1}}{#2}{#3}}% + \else + \xint@afterfi + {\ifnum #1=0 + \xint@afterfi {\expandafter\expandafter\expandafter + \space #2{0}}% + \else \xint@afterfi { 0[0]}% + \fi}% + \fi +}% +\def\XINT@gcntf@loop #1#2#3#4% +{% + \ifnum #1>0 \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@two #2% +}% +\def\xintCntoCs {\romannumeral0\xintcntocs }% +\def\xintcntocs #1% +{% + \expandafter\expandafter\expandafter + \XINT@cntcs + \expandafter\expandafter\expandafter + {#1}% +}% +\def\XINT@cntcs #1#2% +{% + \ifnum #1<0 + \xint@afterfi { 0[0]}% + \else + \xint@afterfi {\expandafter\XINT@cntcs@loop\expandafter + {\the\numexpr + #1-1\expandafter\expandafter\expandafter}% + \expandafter\expandafter\expandafter + {\expandafter\expandafter\expandafter + {#2{#1}}}{#2}}% + \fi +}% +\def\XINT@cntcs@loop #1#2#3% +{% + \ifnum #1>-1 \else \XINT@cntcs@exit \fi + \expandafter\XINT@cntcs@loop\expandafter + {\the\numexpr #1-1\expandafter\expandafter\expandafter }% + \expandafter\expandafter\expandafter + {\expandafter\expandafter\expandafter{#3{#1}},#2}{#3}% +}% +\def\XINT@cntcs@exit \fi + \expandafter\XINT@cntcs@loop\expandafter + #1\expandafter\expandafter\expandafter #2#3% +{% + \fi\XINT@cntcs@@exit #2% +}% +\def\XINT@cntcs@@exit #1,{ }% +\def\xintCntoGC {\romannumeral0\xintcntogc }% +\def\xintcntogc #1% +{% + \expandafter\expandafter\expandafter + \XINT@cntgc + \expandafter\expandafter\expandafter + {#1}% +}% +\def\XINT@cntgc #1#2% +{% + \ifnum #1<0 + \xint@afterfi { 0[0]}% + \else + \xint@afterfi {\expandafter\XINT@cntgc@loop\expandafter + {\the\numexpr + #1-1\expandafter\expandafter\expandafter}% + \expandafter\expandafter\expandafter + {\expandafter\expandafter\expandafter + {#2{#1}}}{#2}}% + \fi +}% +\def\XINT@cntgc@loop #1#2#3% +{% + \ifnum #1>-1 \else \XINT@cntgc@exit \fi + \expandafter\XINT@cntgc@loop\expandafter + {\the\numexpr #1-1\expandafter\expandafter\expandafter }% + \expandafter\expandafter\expandafter + {\expandafter\expandafter\expandafter{#3{#1}}+1/#2}{#3}% +}% +\def\XINT@cntgc@exit \fi + \expandafter\XINT@cntgc@loop\expandafter + #1\expandafter\expandafter\expandafter #2#3% +{% + \fi\XINT@cntgc@@exit #2% +}% +\def\XINT@cntgc@@exit #1+1/{ }% +\def\xintGCntoGC {\romannumeral0\xintgcntogc }% +\def\xintgcntogc #1% +{% + \expandafter\expandafter\expandafter + \XINT@gcntgc + \expandafter\expandafter\expandafter + {#1}% +}% +\def\XINT@gcntgc #1#2#3% +{% + \ifnum #1<0 + \xint@afterfi { {0[0]}}% + \else + \xint@afterfi {\expandafter\XINT@gcntgc@loop\expandafter + {\the\numexpr + #1-1\expandafter\expandafter\expandafter}% + \expandafter\expandafter\expandafter + {\expandafter\expandafter\expandafter + {#2{#1}}}{#2}{#3}}% + \fi +}% +\def\XINT@gcntgc@loop #1#2#3#4% +{% + \ifnum #1>-1 \else \XINT@gcntgc@exit \fi + \expandafter\expandafter\expandafter + \XINT@gcntgc@loop@b + \expandafter\expandafter\expandafter + {\expandafter\expandafter\expandafter + {#4{#1}}/#2}{#3{#1}}{#1}{#3}{#4}% +}% +\def\XINT@gcntgc@loop@b #1#2#3% +{% + \expandafter\XINT@gcntgc@loop\expandafter + {\the\numexpr #3-1\expandafter\expandafter\expandafter}% + \expandafter\expandafter\expandafter + {\expandafter\expandafter\expandafter{#2}+#1}% +}% +\def\XINT@gcntgc@exit \fi + \expandafter\expandafter\expandafter + \XINT@gcntgc@loop@b + \expandafter\expandafter\expandafter #1#2#3#4#5% +{% + \fi\XINT@gcntgc@@exit #1% +}% +\def\XINT@gcntgc@@exit #1/{ }% +\def\xintCstoGC {\romannumeral0\xintcstogc }% +\def\xintcstogc #1% +{% + \expandafter\expandafter\expandafter + \XINT@cstc@prep #1,\W,% +}% +\def\XINT@cstc@prep #1,{\XINT@cstc@loop@a {{#1}}}% +\def\XINT@cstc@loop@a #1#2,% +{% + \xint@w #2\XINT@cstc@end\W\XINT@cstc@loop@b {#1}{#2}% +}% +\def\XINT@cstc@loop@b #1#2{\XINT@cstc@loop@a {#1+1/{#2}}}% +\def\XINT@cstc@end\W\XINT@cstc@loop@b #1#2{ #1}% +\def\xintGCtoGC {\romannumeral0\xintgctogc }% +\def\xintgctogc #1% +{% + \expandafter\expandafter\expandafter + \XINT@gctgc@start #1+\W/% +}% +\def\XINT@gctgc@start {\XINT@gctgc@loop@a {}}% +\def\XINT@gctgc@loop@a #1#2+#3/% +{% + \xint@w #3\XINT@gctgc@end\W + \expandafter\expandafter\expandafter + \XINT@gctgc@loop@b + \expandafter\expandafter\expandafter + {#2}{#3}{#1}% +}% +\def\XINT@gctgc@loop@b #1#2% +{% + \expandafter\expandafter\expandafter + \XINT@gctgc@loop@c + \expandafter\expandafter\expandafter + {#2}{#1}% +}% +\def\XINT@gctgc@loop@c #1#2#3% +{% + \XINT@gctgc@loop@a {#3{#2}+{#1}/}% +}% +\def\XINT@gctgc@end\W + \expandafter\expandafter\expandafter\XINT@gctgc@loop@b +{% + \expandafter\expandafter\expandafter\XINT@gctgc@@end +}% +\def\XINT@gctgc@@end #1#2#3{ #3{#1}}% +\XINT@cfrac@restorecatcodes@endinput% +\endinput +%% +%% End of file `xintcfrac.sty'. |