summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/xint/xintseries.sty
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2013-06-27 16:31:25 +0000
committerKarl Berry <karl@freefriends.org>2013-06-27 16:31:25 +0000
commit82c37dcf73b52a88faef522a2f1a294351deea1a (patch)
tree4c0f4b7b3c5fb16b1b5e0b413fc1a800bc9eef35 /Master/texmf-dist/tex/generic/xint/xintseries.sty
parenteeeb860e63fdf6d8e9c0c18825a887aec80eed7e (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.sty186
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
%%