diff options
author | Karl Berry <karl@freefriends.org> | 2013-06-27 16:31:25 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2013-06-27 16:31:25 +0000 |
commit | 82c37dcf73b52a88faef522a2f1a294351deea1a (patch) | |
tree | 4c0f4b7b3c5fb16b1b5e0b413fc1a800bc9eef35 /Master/texmf-dist/tex/generic/xint/xintseries.sty | |
parent | eeeb860e63fdf6d8e9c0c18825a887aec80eed7e (diff) |
xint (16jun13)
git-svn-id: svn://tug.org/texlive/trunk@30978 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/generic/xint/xintseries.sty')
-rw-r--r-- | Master/texmf-dist/tex/generic/xint/xintseries.sty | 186 |
1 files changed, 133 insertions, 53 deletions
diff --git a/Master/texmf-dist/tex/generic/xint/xintseries.sty b/Master/texmf-dist/tex/generic/xint/xintseries.sty index f1b6d882e85..2a63f12eb29 100644 --- a/Master/texmf-dist/tex/generic/xint/xintseries.sty +++ b/Master/texmf-dist/tex/generic/xint/xintseries.sty @@ -22,7 +22,7 @@ %% in the same archive or directory.) %% %%---------------------------------------------------------------- -%% The xint bundle (version 1.07a of May 26, 2013) +%% The xint bundle (version 1.08b of June 14, 2013) %% xintseries: Expandable partial sums with xint package %% Copyright (C) 2013 by Jean-Francois Burnol %%---------------------------------------------------------------- @@ -116,6 +116,7 @@ {% \catcode93=\the\catcode93 % ] \catcode91=\the\catcode91 % [ + \catcode94=\the\catcode94 % ^ \catcode96=\the\catcode96 % ` \catcode47=\the\catcode47 % / \catcode41=\the\catcode41 % ) @@ -138,7 +139,7 @@ \catcode61=\the\catcode61\relax % = \noexpand\endinput }% - \XINT_setcatcodes + \XINT_setcatcodes % defined in xint.sty \catcode91=12 % [ \catcode93=12 % ] }% @@ -164,17 +165,14 @@ \fi \expandafter\x\csname ver@xintseries.sty\endcsname \ProvidesPackage{xintseries}% - [2013/05/26 v1.07a Expandable partial sums with xint package (jfB)]% + [2013/06/14 v1.08b Expandable partial sums with xint package (jfB)]% \def\xintSeries {\romannumeral0\xintseries }% \def\xintseries #1#2% {% - \expandafter\XINT_series_i\expandafter {\the\numexpr #2}{#1}% + \expandafter\XINT_series\expandafter + {\the\numexpr #1\expandafter}\expandafter{\the\numexpr #2}% }% -\def\XINT_series_i #1#2% -{% - \expandafter\XINT_series_ii\expandafter {\the\numexpr #2}{#1}% -}% -\def\XINT_series_ii #1#2#3% +\def\XINT_series #1#2#3% {% \ifnum #2<#1 \xint_afterfi { 0/1[0]}% @@ -197,13 +195,10 @@ \def\xintiSeries {\romannumeral0\xintiseries }% \def\xintiseries #1#2% {% - \expandafter\XINT_iseries_i\expandafter {\the\numexpr #2}{#1}% -}% -\def\XINT_iseries_i #1#2% -{% - \expandafter\XINT_iseries_ii\expandafter {\the\numexpr #2}{#1}% + \expandafter\XINT_iseries\expandafter + {\the\numexpr #1\expandafter}\expandafter{\the\numexpr #2}% }% -\def\XINT_iseries_ii #1#2#3% +\def\XINT_iseries #1#2#3% {% \ifnum #2<#1 \xint_afterfi { 0}% @@ -226,13 +221,10 @@ \def\xintPowerSeries {\romannumeral0\xintpowerseries }% \def\xintpowerseries #1#2% {% - \expandafter\XINT_powseries_i\expandafter {\the\numexpr #2}{#1}% + \expandafter\XINT_powseries\expandafter + {\the\numexpr #1\expandafter}\expandafter{\the\numexpr #2}% }% -\def\XINT_powseries_i #1#2% -{% - \expandafter\XINT_powseries_ii\expandafter {\the\numexpr #2}{#1}% -}% -\def\XINT_powseries_ii #1#2#3#4% +\def\XINT_powseries #1#2#3#4% {% \ifnum #2<#1 \xint_afterfi { 0/1[0]}% @@ -264,13 +256,10 @@ \def\xintPowerSeriesX {\romannumeral0\xintpowerseriesx }% \def\xintpowerseriesx #1#2% {% - \expandafter\XINT_powseriesx_i\expandafter {\the\numexpr #2}{#1}% -}% -\def\XINT_powseriesx_i #1#2% -{% - \expandafter\XINT_powseriesx_ii\expandafter {\the\numexpr #2}{#1}% + \expandafter\XINT_powseriesx\expandafter + {\the\numexpr #1\expandafter}\expandafter{\the\numexpr #2}% }% -\def\XINT_powseriesx_ii #1#2#3#4% +\def\XINT_powseriesx #1#2#3#4% {% \ifnum #2<#1 \xint_afterfi { 0/1[0]}% @@ -288,13 +277,10 @@ \def\xintRationalSeries {\romannumeral0\xintratseries }% \def\xintratseries #1#2% {% - \expandafter\XINT_ratseries_i\expandafter {\the\numexpr #2}{#1}% + \expandafter\XINT_ratseries\expandafter + {\the\numexpr #1\expandafter}\expandafter{\the\numexpr #2}% }% -\def\XINT_ratseries_i #1#2% -{% - \expandafter\XINT_ratseries_ii\expandafter {\the\numexpr #2}{#1}% -}% -\def\XINT_ratseries_ii #1#2#3#4% +\def\XINT_ratseries #1#2#3#4% {% \ifnum #2<#1 \xint_afterfi { 0/1[0]}% @@ -325,13 +311,10 @@ \def\xintRationalSeriesX {\romannumeral0\xintratseriesx }% \def\xintratseriesx #1#2% {% - \expandafter\XINT_ratseriesx_i\expandafter {\the\numexpr #2}{#1}% -}% -\def\XINT_ratseriesx_i #1#2% -{% - \expandafter\XINT_ratseriesx_ii\expandafter {\the\numexpr #2}{#1}% + \expandafter\XINT_ratseriesx\expandafter + {\the\numexpr #1\expandafter}\expandafter{\the\numexpr #2}% }% -\def\XINT_ratseriesx_ii #1#2#3#4#5% +\def\XINT_ratseriesx #1#2#3#4#5% {% \ifnum #2<#1 \xint_afterfi { 0/1[0]}% @@ -349,13 +332,10 @@ \def\xintFxPtPowerSeries {\romannumeral0\xintfxptpowerseries }% \def\xintfxptpowerseries #1#2% {% - \expandafter\XINT_fppowseries_i\expandafter {\the\numexpr #2}{#1}% + \expandafter\XINT_fppowseries\expandafter + {\the\numexpr #1\expandafter}\expandafter{\the\numexpr #2}% }% -\def\XINT_fppowseries_i #1#2% -{% - \expandafter\XINT_fppowseries_ii\expandafter {\the\numexpr #2}{#1}% -}% -\def\XINT_fppowseries_ii #1#2#3#4#5% +\def\XINT_fppowseries #1#2#3#4#5% {% \ifnum #2<#1 \xint_afterfi { 0}% @@ -371,7 +351,7 @@ {% \ifnum #4>#2 \else\XINT_fppowseries_dont_i \fi \expandafter\XINT_fppowseries_loop_i\expandafter - {\the\numexpr #2+1\expandafter}\expandafter + {\the\numexpr #2+\xint_c_i\expandafter}\expandafter {\romannumeral0\xintitrunc {#6}{\xintMul {#5{#2}}{#1}}}% {#1}{#3}{#4}{#5}{#6}% }% @@ -388,7 +368,7 @@ \def\XINT_fppowseries_loop_ii #1#2#3#4#5#6#7% {% \expandafter\XINT_fppowseries_loop_i\expandafter - {\the\numexpr #2+1\expandafter}\expandafter + {\the\numexpr #2+\xint_c_i\expandafter}\expandafter {\romannumeral0\xintiadd {#4}{\xintiTrunc {#7}{\xintMul {#6{#2}}{#1}}}}% {#1}{#3}{#5}{#6}{#7}% }% @@ -402,13 +382,10 @@ \def\xintFxPtPowerSeriesX {\romannumeral0\xintfxptpowerseriesx }% \def\xintfxptpowerseriesx #1#2% {% - \expandafter\XINT_fppowseriesx_i\expandafter {\the\numexpr #2}{#1}% + \expandafter\XINT_fppowseriesx\expandafter + {\the\numexpr #1\expandafter}\expandafter{\the\numexpr #2}% }% -\def\XINT_fppowseriesx_i #1#2% -{% - \expandafter\XINT_fppowseriesx_ii\expandafter {\the\numexpr #2}{#1}% -}% -\def\XINT_fppowseriesx_ii #1#2#3#4#5% +\def\XINT_fppowseriesx #1#2#3#4#5% {% \ifnum #2<#1 \xint_afterfi { 0}% @@ -425,6 +402,109 @@ {\romannumeral0\xinttrunc {#5}{\xintPow {#1}{#2}}}% {#2}{#1}{#3}{#4}{#5}% }% +\def\xintFloatPowerSeries {\romannumeral0\xintfloatpowerseries }% +\def\xintfloatpowerseries #1{\XINT_flpowseries_chkopt #1\Z }% +\def\XINT_flpowseries_chkopt #1% +{% + \ifx [#1\expandafter\XINT_flpowseries_opt + \else\expandafter\XINT_flpowseries_noopt + \fi + #1% +}% +\def\XINT_flpowseries_noopt #1\Z #2% +{% + \expandafter\XINT_flpowseries\expandafter + {\the\numexpr #1\expandafter}\expandafter + {\the\numexpr #2}\XINT_digits +}% +\def\XINT_flpowseries_opt [\Z #1]#2#3% +{% + \expandafter\XINT_flpowseries\expandafter + {\the\numexpr #2\expandafter}\expandafter + {\the\numexpr #3\expandafter}{\the\numexpr #1}% +}% +\def\XINT_flpowseries #1#2#3#4#5% +{% + \ifnum #2<#1 + \xint_afterfi { 0.e0}% + \else + \xint_afterfi + {\expandafter\XINT_flpowseries_loop_pre\expandafter + {\romannumeral-`0\XINTinfloatpow [#3]{#5}{#1}}% + {#1}{#5}{#2}{#4}{#3}% + }% + \fi +}% +\def\XINT_flpowseries_loop_pre #1#2#3#4#5#6% +{% + \ifnum #4>#2 \else\XINT_flpowseries_dont_i \fi + \expandafter\XINT_flpowseries_loop_i\expandafter + {\the\numexpr #2+\xint_c_i\expandafter}\expandafter + {\romannumeral-`0\XINTinfloatmul [#6]{#5{#2}}{#1}}% + {#1}{#3}{#4}{#5}{#6}% +}% +\def\XINT_flpowseries_dont_i \fi\expandafter\XINT_flpowseries_loop_i + {\fi \expandafter\XINT_flpowseries_dont_ii }% +\def\XINT_flpowseries_dont_ii #1#2#3#4#5#6#7{\xintfloat [#7]{#2}}% +\def\XINT_flpowseries_loop_i #1#2#3#4#5#6#7% +{% + \ifnum #5>#1 \else \XINT_flpowseries_exit_i \fi + \expandafter\XINT_flpowseries_loop_ii\expandafter + {\romannumeral-`0\XINTinfloatmul [#7]{#3}{#4}}% + {#1}{#4}{#2}{#5}{#6}{#7}% +}% +\def\XINT_flpowseries_loop_ii #1#2#3#4#5#6#7% +{% + \expandafter\XINT_flpowseries_loop_i\expandafter + {\the\numexpr #2+\xint_c_i\expandafter}\expandafter + {\romannumeral-`0\XINTinfloatadd [#7]{#4}% + {\XINTinfloatmul [#7]{#6{#2}}{#1}}}% + {#1}{#3}{#5}{#6}{#7}% +}% +\def\XINT_flpowseries_exit_i\fi\expandafter\XINT_flpowseries_loop_ii + {\fi \expandafter\XINT_flpowseries_exit_ii }% +\def\XINT_flpowseries_exit_ii #1#2#3#4#5#6#7% +{% + \xintfloatadd [#7]{#4}{\XINTinfloatmul [#7]{#6{#2}}{#1}}% +}% +\def\xintFloatPowerSeriesX {\romannumeral0\xintfloatpowerseriesx }% +\def\xintfloatpowerseriesx #1{\XINT_flpowseriesx_chkopt #1\Z }% +\def\XINT_flpowseriesx_chkopt #1% +{% + \ifx [#1\expandafter\XINT_flpowseriesx_opt + \else\expandafter\XINT_flpowseriesx_noopt + \fi + #1% +}% +\def\XINT_flpowseriesx_noopt #1\Z #2% +{% + \expandafter\XINT_flpowseriesx\expandafter + {\the\numexpr #1\expandafter}\expandafter + {\the\numexpr #2}\XINT_digits +}% +\def\XINT_flpowseriesx_opt [\Z #1]#2#3% +{% + \expandafter\XINT_flpowseriesx\expandafter + {\the\numexpr #2\expandafter}\expandafter + {\the\numexpr #3\expandafter}{\the\numexpr #1}% +}% +\def\XINT_flpowseriesx #1#2#3#4#5% +{% + \ifnum #2<#1 + \xint_afterfi { 0.e0}% + \else + \xint_afterfi + {\expandafter \XINT_flpowseriesx_pre \expandafter + {\romannumeral-`0#5}{#1}{#2}{#4}{#3}% + }% + \fi +}% +\def\XINT_flpowseriesx_pre #1#2#3#4#5% +{% + \expandafter\XINT_flpowseries_loop_pre\expandafter + {\romannumeral-`0\XINTinfloatpow [#5]{#1}{#2}}% + {#2}{#1}{#3}{#4}{#5}% +}% \XINT_series_restorecatcodes_endinput% \endinput %% |