%% %% 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.04 of April 25, 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 % } \catcode64=11 % @ \def\x {% \endgroup \edef\XINT@frac@restorecatcodes@endinput {% \catcode94=\the\catcode94 % ^ \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 % ] \catcode94=7 % ^ }% \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@xintfrac.sty\endcsname \ProvidesPackage{xintfrac}% [2013/04/25 v1.04 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[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\xintRaw {\romannumeral0\xintraw }% \def\xintraw {% \expandafter\XINT@raw\romannumeral0\XINT@infrac }% \def\XINT@raw #1% {% \ifcase\XINT@Sgn {#1} \expandafter\XINT@raw@Ba \or \expandafter\XINT@raw@A \else \expandafter\XINT@raw@Ba \fi {#1}% }% \def\XINT@raw@A #1#2#3{\xint@dsh {#2}{-#1}/#3}% \def\XINT@raw@Ba #1#2#3{\expandafter\XINT@raw@Bb \expandafter{\romannumeral0\xint@dsh {#3}{#1}}{#2}}% \def\XINT@raw@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@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@two }% \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}% \xint@UDkrof }% \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@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}% \xint@UDkrof }% \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\xintSum {\romannumeral0\xintsum }% \def\xintsum #1{\xintsumexpr #1\relax }% \def\xintSumExpr {\romannumeral0\xintsumexpr }% \def\xintsumexpr {\expandafter\expandafter\expandafter\XINT@fsumexpr }% \def\XINT@fsumexpr {\XINT@fsum@loop@a {0[0]}}% \def\XINT@fsum@loop@a #1#2% {% \expandafter\expandafter\expandafter \XINT@fsum@loop@b #2\Z {#1}% }% \def\XINT@fsum@loop@b #1% {% \xint@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\xintPrd {\romannumeral0\xintprd }% \def\xintprd #1{\xintproductexpr #1\relax }% \def\xintProductExpr {\romannumeral0\xintproductexpr }% \def\xintproductexpr{\expandafter\expandafter\expandafter\XINT@fproductexpr }% \def\XINT@fproductexpr {\XINT@fprod@loop@a {1[0]}}% \def\XINT@fprod@loop@a #1#2% {% \expandafter\expandafter\expandafter \XINT@fprod@loop@b #2\Z {#1}% }% \def\XINT@fprod@loop@b #1% {% \xint@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\XINT@inFrac {\romannumeral0\XINT@infrac }% \def\XINT@infrac #1% {% \expandafter\expandafter\expandafter \XINT@infrac@ #1[\W]\Z\T }% \def\XINT@infrac@ #1[#2#3]#4\Z {% \xint@UDwfork #2\dummy \XINT@infrac@A \W\dummy \XINT@infrac@B \xint@UDkrof #1[#2#3]#4% }% \def\XINT@infrac@A #1[\W]\T {% \XINT@frac #1/\W\Z }% \def\XINT@infrac@B #1% {% \xint@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\expandafter\expandafter\XINT@infrac@BCb #2}% \xint@UDkrof #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\expandafter\expandafter\XINT@frac@B #2}% \xint@UDkrof #3.\W\Z #1.\W\Z }% \def\XINT@frac@B #1.#2#3\Z {% \xint@UDwfork #2\dummy \XINT@frac@Ba \W\dummy {\XINT@frac@Bb #2}% \xint@UDkrof #3\Z #1\Z }% \def\XINT@frac@Bb #1/\W.\W\Z #2\Z {% \expandafter \XINT@frac@C \expandafter {\romannumeral0\XINT@length {#1}}{#2#1}% }% \def\XINT@frac@Ba \Z #1/\W\Z {\XINT@frac@C {0}{#1}}% \def\XINT@frac@A .\W\Z {\XINT@frac@C {0}{1}}% \def\XINT@frac@C #1#2#3.#4#5\Z {% \xint@UDwfork #4\dummy \XINT@frac@Ca \W\dummy {\XINT@frac@Cb #4}% \xint@UDkrof #5\Z #3\Z {#1}{#2}% }% \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% {% \expandafter \XINT@frac@E \expandafter {\the\numexpr -#1+#3\expandafter}\expandafter {\romannumeral0\XINT@num@loop #2\R\R\R\R\R\R\R\R\Z }% {\romannumeral0\XINT@num@loop #4\R\R\R\R\R\R\R\R\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}% \xint@UDkrof }% \def\XINT@frac@Gdivisionbyzero #1\Z #2#3% {% \xintError:DivisionByZero \expandafter\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@UNDEF \xint@undef\xint@undef\xint@undef\xint@undef \xint@undef\xint@undef\xint@undef\xint@undef \xint@UNDEF \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@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 #1#2#3#4#5#6% {% \XINT@cuz@cnt@toofarb {#5}#6% }% \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@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@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@zero #1\expandafter\XINT@cuz@cnt@loop\xint@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@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\relax}#3% }% \def\XINT@cuz@cnt@stopd #1#2\R #3\Z {% \expandafter\space\expandafter {\romannumeral0\XINT@rord@main {}#2% \xint@UNDEF \xint@undef\xint@undef\xint@undef\xint@undef \xint@undef\xint@undef\xint@undef\xint@undef \xint@UNDEF }{#1}% }% \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}% \xint@UDkrof }% \def\XINT@rez@zero #1\Z #2#3{ 0/1[0]}% \def\XINT@rez@neg {\expandafter\space\expandafter-\romannumeral0\XINT@rez@B }% \def\XINT@rez@B #1\Z {% \expandafter\XINT@rez@C\romannumeral0\XINT@factortens {#1}% }% \def\XINT@rez@C #1#2#3#4% {% \expandafter\XINT@rez@D\romannumeral0\XINT@factortens {#4}{#3}{#2}{#1}% }% \def\XINT@rez@D #1#2#3#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\xintIrr {\romannumeral0\xintirr }% \def\xintirr {% \expandafter\XINT@irr@putsign \romannumeral0\expandafter\XINT@irr \romannumeral0\XINT@infrac }% \def\XINT@irr@putsign #1#2#3% {% \ifcase\XINT@isOne {#2} \xint@afterfi {#3#1/#2}% \or \xint@afterfi {#3#1}% \fi }% \def\XINT@irr #1% {% \ifcase\XINT@Sgn {#1} \expandafter\XINT@irr@B \or \expandafter\XINT@irr@A \else \expandafter\XINT@irr@B \fi {#1}% }% \def\XINT@irr@A #1#2% {% \expandafter \XINT@irr@C \romannumeral0\xint@dsh {#2}{-#1}\Z }% \def\XINT@irr@B #1#2#3% {% \expandafter \XINT@irr@BC \expandafter {\romannumeral0\xint@dsh {#3}{#1}}{#2}% }% \def\XINT@irr@BC #1#2{\XINT@irr@C #2\Z {#1}}% \def\XINT@irr@C #1#2\Z {% \xint@UDsignfork #1\dummy \XINT@irr@negative -\dummy {\XINT@irr@nonneg #1}% \xint@UDkrof #2\Z }% \def\XINT@irr@negative #1\Z #2{\XINT@irr@D #1\Z #2\Z \XINT@opp}% \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@nonzero@checkifone \xint@UDkrof {#3#4}{#1#2}{#3#4}{#1#2}% }% \def\XINT@irr@indeterminate #1#2#3#4{\expandafter\xintError:ZeroOverZero \space 00}% \def\XINT@irr@divisionbyzero #1#2#3#4{\expandafter\xintError:DivisionByZero \space {#2}0}% \def\XINT@irr@zero #1#2#3#4{ 01}% \def\XINT@irr@nonzero@checkifone #1% {% \ifcase\XINT@isOne {#1} \xint@afterfi {\XINT@irr@loop@a {#1}}% \or \expandafter \XINT@irr@denomisone \fi }% \def\XINT@irr@denomisone #1#2#3{ {#1}1}% \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@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\xintquo {#3}{#2}}% {\romannumeral0\xintquo {#4}{#2}}% }% \def\XINT@irr@loop@exitb #1#2% {% \expandafter\space\expandafter {#2}{#1}% }% \def\xintJrr {\romannumeral0\xintjrr }% \def\xintjrr {% \expandafter\XINT@irr@putsign \romannumeral0\expandafter\XINT@jrr \romannumeral0\XINT@infrac }% \def\XINT@jrr #1% {% \ifcase\XINT@Sgn {#1} \expandafter\XINT@jrr@B \or \expandafter\XINT@jrr@A \else \expandafter\XINT@jrr@B \fi {#1}% }% \def\XINT@jrr@A #1#2% {% \expandafter \XINT@jrr@C \romannumeral0\xint@dsh {#2}{-#1}\Z }% \def\XINT@jrr@B #1#2#3% {% \expandafter \XINT@jrr@BC \expandafter {\romannumeral0\xint@dsh {#3}{#1}}{#2}% }% \def\XINT@jrr@BC #1#2{\XINT@jrr@C #2\Z {#1}}% \def\XINT@jrr@C #1#2\Z {% \xint@UDsignfork #1\dummy \XINT@jrr@negative -\dummy {\XINT@jrr@nonneg #1}% \xint@UDkrof #2\Z }% \def\XINT@jrr@negative #1\Z #2{\XINT@jrr@D #1\Z #2\Z \XINT@opp}% \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@nonzero@checkifone \xint@UDkrof {#3#4}{#1#2}1001% }% \def\XINT@jrr@indeterminate #1#2#3#4#5#6{\expandafter\xintError:ZeroOverZero \space 00}% \def\XINT@jrr@divisionbyzero #1#2#3#4#5#6{\expandafter\xintError:DivisionByZero \space {#2}0}% \def\XINT@jrr@zero #1#2#3#4#5#6{ 01}% \def\XINT@jrr@nonzero@checkifone #1% {% \ifcase\XINT@isOne {#1} \xint@afterfi {\XINT@jrr@loop@a {#1}}% \or \expandafter \XINT@jrr@denomisone \fi }% \def\XINT@jrr@denomisone #1#2#3#4#5{ {#1}1}% \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@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% {% \space {#3}{#4}% }% \def\xintTrunc {\romannumeral0\xinttrunc }% \def\xintiTrunc {\romannumeral0\xintitrunc }% \def\xinttrunc #1% {% \expandafter\expandafter\expandafter \XINT@trunc \expandafter\expandafter\expandafter {#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\expandafter\expandafter \XINT@itrunc \expandafter\expandafter\expandafter {#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\relax}#2\Z {#3}% }% \def\XINT@trunc@checkifzero #1#2#3\Z {% \xint@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}% \xint@UDkrof {#4}{#2}% }% \def\XINT@trunc@minusminus #1#2{\xintquo {#1}{#2}\Z \space}% \def\XINT@trunc@minusplus #1#2#3{\xintquo {#1#2}{#3}\Z \xint@minus@andstop}% \def\XINT@trunc@plusminus #1#2#3{\xintquo {#2}{#1#3}\Z \xint@minus@andstop}% \def\XINT@trunc@plusplus #1#2#3#4{\xintquo {#1#3}{#2#4}\Z \space}% \def\XINT@itrunc@G #1#2\Z #3#4% {% \xint@zero #1\XINT@trunc@zero 0\xint@firstoftwo {#3#1#2}0% }% \def\XINT@trunc@G #1\Z #2#3% {% \xint@zero #2\XINT@trunc@zero 0% \expandafter\XINT@trunc@H\expandafter {\the\numexpr\romannumeral0\XINT@length {#1}-#3\relax}{#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}}% \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% }% \def\xintRound {\romannumeral0\xintround }% \def\xintiRound {\romannumeral0\xintiround }% \def\xintround #1% {% \expandafter\expandafter\expandafter \XINT@round \expandafter\expandafter\expandafter {#1}% }% \def\XINT@round {% \expandafter\XINT@trunc@G\romannumeral0\XINT@round@A }% \def\xintiround #1% {% \expandafter\expandafter\expandafter \XINT@iround \expandafter\expandafter\expandafter {#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@UNDEF \xint@undef\xint@undef\xint@undef\xint@undef \xint@undef\xint@undef\xint@undef\xint@undef \xint@UNDEF \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@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@UNDEF \xint@undef\xint@undef\xint@undef\xint@undef \xint@undef\xint@undef\xint@undef\xint@undef \xint@UNDEF \Z }% \def\XINT@round@Dba #1% {% \xint@z #1\XINT@round@Dbz\Z \XINT@round@Db #1% }% \def\XINT@round@Dbz\Z \XINT@round@Db \Z { 1\Z }% \def\XINT@round@Db #1\Z {% \XINT@addm@A 0{}1000\W\X\Y\Z #1000\W\X\Y\Z \Z }% \def\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\xint@fpow #1#2% {% \expandafter\expandafter\expandafter \XINT@fpow@fork #2\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}% \xint@UDkrof {#2}% }% \def\XINT@fpow@zero #1#2#3#4% {% \space 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\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\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\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\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\xintSgn {\romannumeral0\xintsgn }% \def\xintsgn #1% {% \expandafter\xint@fsgn\romannumeral0\XINT@infrac {#1}% }% \def\xint@fsgn #1#2#3{\xintisgn {#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\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}}% \XINT@frac@restorecatcodes@endinput% \endinput %% %% End of file `xintfrac.sty'.