I've written a little module for symbolically evaluating hypergeometric infinite series. Technically, a series is hypergeometric if the ratio between successive terms is a rational function of the index
k; more intuitively, most "nice-looking" series (such as power series of most special functions) involving powers, factorials, gamma functions, binomial coefficients (etc.) are hypergeometric.
The
code currently uses SymPy, but should be possible to convert to Sage's symbolics (it mostly requires basic pattern matching, and evaluation of standard special functions). Perhaps "rewrite" is a better word than "convert" because the current code is a messy hack. It's buggy, and only handles special cases in places where a general approach could be used (such as for rational functions).
The basic idea behind the code is to perform the evaluation in two steps. Firstly, the given series is converted into canonical form. I've used the standard generalized hypergeometric series
pFq. This is not always an optimal representation, but usually does the job.
In the second step, parameter transformations and table lookups are used to reduce the
pFq series into elementary (or simpler) functions when possible. If this step fails, the
pFq function is returned, giving a closed-form solution that can be manipulated or evaluated numerically.
The second step is the most difficult, because the transformation algorithms that need to be used for hypergeometric functions are very complicated in general (and there are all kinds of special cases). So far I've only implemented some simple transformations. For the final lookup stage, it would be straightforward to also implement expansion into Bessel functions, incomplete gamma functions, etc.
Below is a sample of some working test cases, with numerical evaluation of both the evaluated result and the original series as verification. Some of the sums don't quite simplify fully, i.e. there is an unevaluated
pFq function left. The formulas were mostly generated with SymPy's
latex function, so they are not always as pretty as could be.
![\sum_{k=0}^{\infty} k!^{-1} = e [; \sum_{k=0}^{\infty} k!^{-1} = e ;]](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_ttrK8ALG8stOAlZ9IwNxZkWHFj1hnP8DcWIc4ePUPJg_qTW23W8D2CuLO3pTKMpwoH9uDd33AWy2q4YplJGLul_rSrF02GUg=s0-d)
>>> hypsum(1 / fac(k), k)
E
>>> _.evalf()
2.71828182845905
>>> mpmath.nsum(lambda k: 1 / mpmath.fac(k), [0,mpmath.inf])
2.71828182845905
![\sum_{k=0}^{\infty} \frac{k^{6}}{k!} = 203 e [; \sum_{k=0}^{\infty} \frac{k^{6}}{k!} = 203 e ;]](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_s3kQ4T2vYbh5VvwNrmO4IxXVMusm4RvSQYyDhQF8BSRnT8XNc5_jUuYRq2-zi1Mll6QWeUEEeKvWuRTmaMJVapNWfV6jIvZQ=s0-d)
>>> hypsum(k**6 / fac(k), k)
203*E
>>> _.evalf()
551.811211177186
>>> mpmath.nsum(lambda k: k**6 / mpmath.fac(k), [0,mpmath.inf])
551.811211177186
![\sum_{k=0}^{\infty} 4 \frac{d k z^{2 + k}}{k!} = 4 d z^{3} e^{z} [; \sum_{k=0}^{\infty} 4 \frac{d k z^{2 + k}}{k!} = 4 d z^{3} e^{z} ;]](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_uqp17mG8NyK9kYylHF0bYhnsO78xYZRD5js0pnsdtgBRHFt1dhgI64vC8puXyVNUCML0losUVctLeVs1R7SC8pOcFIxa_IPw=s0-d)
>>> hypsum(4 * d * k * z**(k+2) / fac(k), k)
4*d*z**3*exp(z)
>>> _.evalf(subs={d:'1/2',z:'1/4'})
0.0401257942714919
>>> mpmath.nsum(lambda k: 4 * 0.5 * k * 0.25**(k+2) / mpmath.fac(k), [0,mpmath.inf])
0.0401257942714919
![\sum_{k=0}^{\infty} \left({\left(2\right)}_{k}\right)^{-1} = -1 + e [; \sum_{k=0}^{\infty} \left({\left(2\right)}_{k}\right)^{-1} = -1 + e ;]](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_t9-dLQLbS5nMYUvGcx1ZQ7loWiUyqVVttFc5U5mlrZVfCGY-gUb6djJJbhyZn01_WbOZNQ_gV9lekzt-UTOhVVgfOyY4QtSw=s0-d)
>>> hypsum(1 / rf(2,k), k)
-1 + E
>>> _.evalf()
1.71828182845905
>>> mpmath.nsum(lambda k: 1 / mpmath.rf(2,k), [0,mpmath.inf])
1.71828182845905

>>> simplify(hypsum(k**3 * z**(k) / fac(k), k))
z*exp(z) + z**3*exp(z) + 3*z**2*exp(z)
>>> _.evalf(subs={d:'1/2',z:'1/4'})
0.581824016936633
>>> mpmath.nsum(lambda k: k**3 * 0.25**(k) / mpmath.fac(k), [0,mpmath.inf])
0.581824016936633
![\sum_{k=0}^{\infty} {{2 k}\choose{k}}^{-1} = \frac{4}{3} + \frac{2}{27} \pi \sqrt{3} [; \sum_{k=0}^{\infty} {{2 k}\choose{k}}^{-1} = \frac{4}{3} + \frac{2}{27} \pi \sqrt{3} ;]](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_s3As84StmuLuT2gI4x9sqVxZ3YgYWa1InO4mgUrH57oBzPhKCsQ1H25BgF6-d-twilJIJdY7_sOlDdIx915LCgV4dNYmB2-w=s0-d)
>>> simplify(hypsum(1 / binomial(2*k,k), k))
4/3 + 2*pi*3**(1/2)/27 >>> _.evalf()
1.73639985871872
>>> mpmath.nsum(lambda k: 1 / mpmath.binomial(2*k,k), [0,mpmath.inf])
1.73639985871872
![\sum_{k=0}^{\infty} {{3 k}\choose{k}}^{-1} = \frac{2}{3} \frac{\pi \sqrt{3} \,_{3}F_{2}\left(\frac{1}{2},1,1; \frac{1}{3},\frac{2}{3}; \frac{4}{27}\right)}{\operatorname{\Gamma}\left(\frac{1}{3}\right) \operatorname{\Gamma}\left(\frac{2}{3}\right)} [; \sum_{k=0}^{\infty} {{3 k}\choose{k}}^{-1} = \frac{2}{3} \frac{\pi \sqrt{3} \,_{3}F_{2}\left(\frac{1}{2},1,1; \frac{1}{3},\frac{2}{3}; \frac{4}{27}\right)}{\operatorname{\Gamma}\left(\frac{1}{3}\right) \operatorname{\Gamma}\left(\frac{2}{3}\right)} ;]](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_vT0Hi8qXq048bVxp1U4MPBLeruvb4uNuyipRY25ZwvjBnfTf5niUy1U7VF1S0o6Q88jnIrK0mgSgtzV6EUn4l6Fhf-BqQMnA=s0-d)
>>> hypsum(1 / binomial(3*k,k), k)
2*pi*3**(1/2)*3F2([1/2, 1, 1], [1/3, 2/3], 4/27)/(3*gamma(1/3)*gamma(2/3))
>>> _.evalf()
1.41432204432182
>>> mpmath.nsum(lambda k: 1 / mpmath.binomial(3*k,k), [0,mpmath.inf])
1.41432204432182
![\sum_{k=0}^{\infty} \frac{k^{4}}{{{2 k}\choose{k}}} = \frac{32}{3} + \frac{238}{243} \pi \sqrt{3} [; \sum_{k=0}^{\infty} \frac{k^{4}}{{{2 k}\choose{k}}} = \frac{32}{3} + \frac{238}{243} \pi \sqrt{3} ;]](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_trGHfHikfk7UuvLneabhQhe9DzGqhSzhHwk_2rrhzawRNpGrMqCcRq_IlknZG7WhLWJ1oMuOs-85Dlh0xxp3XWtewWCHPA=s0-d)
>>> hypsum(k**4 / binomial(2*k,k), k)
32/3 + 238*pi*3**(1/2)/243
>>> _.evalf()
15.9961018356512
>>> mpmath.nsum(lambda k: k**4 / mpmath.binomial(2*k,k), [0,mpmath.inf])
15.9961018356512
![\sum_{k=0}^{\infty} \frac{\left(1 + k\right)! \left(2 + k\right)!}{\left(3 + k\right)! \left(4 + k\right)!} = \frac{1}{72} \,_{3}F_{2}\left(1,2,3; 4,5; 1\right) [; \sum_{k=0}^{\infty} \frac{\left(1 + k\right)! \left(2 + k\right)!}{\left(3 + k\right)! \left(4 + k\right)!} = \frac{1}{72} \,_{3}F_{2}\left(1,2,3; 4,5; 1\right) ;]](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_uycP-51BgPpt_9ChonrFqYKBdVSJrPd2Gywm2ISbSbssEhRJh1v4_6W9xZ9HwgqxBn-DqgmNmRt7NWXswwxhsR9JZ2g1vZrA=s0-d)
>>> hypsum(fac(k+1)*fac(k+2)/fac(k+3)/fac(k+4), k)
3F2([1, 2, 3], [4, 5], 1)/72
>>> _.evalf()
0.0217325998184402
>>> mpmath.nsum(lambda k: mpmath.fac(k+1)*mpmath.fac(k+2)/mpmath.fac(k+3)/mpmath.fac(k+4), [0,mpmath.inf])
0.0217325998184402
![\sum_{k=0}^{\infty} \frac{1}{\left(3 + k\right)^{2} \left(8 + 6 k + k^{2}\right)} = \frac{1}{72} \,_{3}F_{2}\left(1,2,3; 4,5; 1\right) [; \sum_{k=0}^{\infty} \frac{1}{\left(3 + k\right)^{2} \left(8 + 6 k + k^{2}\right)} = \frac{1}{72} \,_{3}F_{2}\left(1,2,3; 4,5; 1\right) ;]](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_ujqUNXLbJM3g12ZsGUZpnNaQfty5CFtgWo6idTWUhHELJkoisMlGSENGGZlocglvA_tPx6tRFkGnxM9EkDcRPQvZ-c9h364A=s0-d)
>>> hypsum(1/((3+k)**2*(8+6*k+k**2)), k)
3F2([1, 2, 3], [4, 5], 1)/72
>>> _.evalf()
0.0217325998184402
>>> mpmath.nsum(lambda k: 1/((3+k)**2*(8+6*k+k**2)), [0,mpmath.inf])
0.0217325998184402
![\sum_{k=0}^{\infty} \frac{\left(1 + 2 k\right)!}{\left(1 + k\right) \left(2 + 2 k\right)!} = \frac{1}{12} \pi^{2} [; \sum_{k=0}^{\infty} \frac{\left(1 + 2 k\right)!}{\left(1 + k\right) \left(2 + 2 k\right)!} = \frac{1}{12} \pi^{2} ;]](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_vQCngS0CtSpgY6UBwAY8XAFX3QNZrDb4wUn-D7hDzxtlv2xUX1jU71SqEK6n315mhrVUa7Xopiuf6tVNcT3g8GsCwHUK7nkQ=s0-d)
>>> hypsum(fac(2*k+1)/(fac(2*k+2)*(k+1)), k)
pi**2/12
>>> _.evalf()
0.822467033424113
>>> mpmath.nsum(lambda k: mpmath.fac(2*k+1)/(mpmath.fac(2*k+2)*(k+1)), [0,mpmath.inf])
0.822467033424113
![\sum_{k=0}^{\infty} \frac{\left(1 + 2 k\right)!}{\left(2 + 3 k\right)!} = \frac{2}{27} \frac{\pi \sqrt{3} \,_{2}F_{2}\left(1,\frac{3}{2}; \frac{4}{3},\frac{5}{3}; \frac{4}{27}\right)}{\operatorname{\Gamma}\left(\frac{4}{3}\right) \operatorname{\Gamma}\left(\frac{5}{3}\right)} [; \sum_{k=0}^{\infty} \frac{\left(1 + 2 k\right)!}{\left(2 + 3 k\right)!} = \frac{2}{27} \frac{\pi \sqrt{3} \,_{2}F_{2}\left(1,\frac{3}{2}; \frac{4}{3},\frac{5}{3}; \frac{4}{27}\right)}{\operatorname{\Gamma}\left(\frac{4}{3}\right) \operatorname{\Gamma}\left(\frac{5}{3}\right)} ;]](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_vnCj2j21T28Wt5s1Xb7kzP0m6qgb9BFFuPesYo1n9MmXDg8VjeUatbKh0GPHdr4soPJ-4_iutO6vDatY-4fpoQ_igIAUEHVw=s0-d)
>>> hypsum(fac(2*k+1)/(fac(3*k+2)), k)
2*pi*3**(1/2)*2F2([1, 3/2], [4/3, 5/3], 4/27)/(27*gamma(4/3)*gamma(5/3))
>>> _.evalf()
0.553106730441975
>>> mpmath.nsum(lambda k: mpmath.fac(2*k+1)/(mpmath.fac(3*k+2)), [0,mpmath.inf])
0.553106730441975
![\sum_{k=0}^{\infty} \frac{4^{k} \left(\frac{3}{2} + k\right)! \left(\frac{5}{2} + k\right)!}{\left(6 + 2 k\right)!} = \frac{3}{256} \pi [; \sum_{k=0}^{\infty} \frac{4^{k} \left(\frac{3}{2} + k\right)! \left(\frac{5}{2} + k\right)!}{\left(6 + 2 k\right)!} = \frac{3}{256} \pi ;]](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_tnE6e9olwY7jM-SqbGwTkQz3NEiMTU-sZU50XlwAFwRxOL_pNZaf-AGOTA9goDLypriyDigbrK4ii64ruLgSwnEUW41X2b=s0-d)
>>> hypsum(4**k*fac(k+R32)*fac(k+R52)/(fac(2*k+6)), k)
3*pi/256
>>> _.evalf()
0.0368155389092554
>>> mpmath.nsum(lambda k: 4**k*mpmath.fac(k+1.5)*mpmath.fac(k+2.5)/(mpmath.fac(2*k+6)), [0,mpmath.inf], method='e')
0.0368155389092358
![\sum_{k=0}^{\infty} \frac{\left(-1\right)^{k} z^{1 + 2 k}}{\left(1 + 2 k\right) k!} = \frac{1}{2} \sqrt{\pi} \operatorname{erf}\left(z\right) [; \sum_{k=0}^{\infty} \frac{\left(-1\right)^{k} z^{1 + 2 k}}{\left(1 + 2 k\right) k!} = \frac{1}{2} \sqrt{\pi} \operatorname{erf}\left(z\right) ;]](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_sAfv9zyS_ZdcNVNw00UQ5OjqNbH4h1A3_iegkHHUVX9S5HO199qwcvoA0UqCyL24h48HWvrwJk01ROWrFDlazxN2W--3Wd=s0-d)
>>> hypsum((-1)**k * z**(2*k+1) / fac(k) / (2*k+1), k)
pi**(1/2)*erf(z)/2
>>> _.evalf(subs={d:'1/2',z:'1/4'})
0.244887887180256
>>> mpmath.nsum(lambda k: (-1)**k * 0.25**(2*k+1) / mpmath.fac(k) / (2*k+1), [0,mpmath.inf])
0.244887887180256
![\sum_{k=0}^{\infty} \frac{z^{1 + 2 k}}{1 + 2 k} = \operatorname{atanh}\left(z\right) [; \sum_{k=0}^{\infty} \frac{z^{1 + 2 k}}{1 + 2 k} = \operatorname{atanh}\left(z\right) ;]](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_stMOMyh9tXLecsptTxJu6cxOJHBAvTxLdo8fhXpqz1ulU2ZCuV5KZognd9s6EG-RWeqFp8bAmRaFRbiLyaickHws9U1FFk=s0-d)
>>> hypsum(z**(2*k+1) / (2*k+1), k)
atanh(z)
>>> _.evalf(subs={d:'1/2',z:'1/4'})
0.255412811882995
>>> mpmath.nsum(lambda k: 0.25**(2*k+1) / (2*k+1), [0,mpmath.inf])
0.255412811882995
![\sum_{k=0}^{\infty} \frac{z^{k}}{1 + 2 k} = \frac{\operatorname{atanh}\left(\sqrt{z}\right)}{\sqrt{z}} [; \sum_{k=0}^{\infty} \frac{z^{k}}{1 + 2 k} = \frac{\operatorname{atanh}\left(\sqrt{z}\right)}{\sqrt{z}} ;]](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_udQpV_4E0tkg3tQMVyO59-XerqTZxCRZWN1ObDgRVf6EZ0J1Zzk_f3JL39rWxxzr_mNNX3UYXEHJsxQMdqRZQLHTdxylfg=s0-d)
>>> hypsum(z**k / (2*k+1), k)
atanh(z**(1/2))/z**(1/2)
>>> _.evalf(subs={d:'1/2',z:'1/4'})
1.09861228866811
>>> mpmath.nsum(lambda k: 0.25**k / (2*k+1), [0,mpmath.inf])
1.09861228866811
![\sum_{k=0}^{\infty} \frac{\left(- z\right)^{k}}{1 + k} = \frac{\operatorname{log}\left(1 + z\right)}{z} [; \sum_{k=0}^{\infty} \frac{\left(- z\right)^{k}}{1 + k} = \frac{\operatorname{log}\left(1 + z\right)}{z} ;]](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_tAvax_ogsXLNYJ5VqI9jB3KuJ3PAr4Jz9CXvX8zWSsbN42g70BI2F0zFsYZmOOf6aw24k0xbqdW5rOKoUUNCa4oP9Fh6pdZQ=s0-d)
>>> hypsum((-z)**k / (k+1), k)
log(1 + z)/z
>>> _.evalf(subs={d:'1/2',z:'1/4'})
0.892574205256839
>>> mpmath.nsum(lambda k: (-0.25)**k / (k+1), [0,mpmath.inf])
0.892574205256839

>>> hypsum(fac(k-R12)/((1+2*k)*fac(k))*z**(2*k), k)
pi**(1/2)*asin(z)/z
>>> _.evalf(subs={d:'1/2',z:'1/4'})
1.79145636509746
>>> mpmath.nsum(lambda k: mpmath.fac(k-0.5)/((1+2*k)*mpmath.fac(k))*0.25**(2*k), [0,mpmath.inf])
1.79145636509746
![\sum_{k=0}^{\infty} \frac{z^{k}}{\left(2 + k\right)!} = - \frac{1 + z - e^{z}}{z^{2}} [; \sum_{k=0}^{\infty} \frac{z^{k}}{\left(2 + k\right)!} = - \frac{1 + z - e^{z}}{z^{2}} ;]](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_tacSzmPbz4jMdt_uVI9V30ytWBGXGQFI7RyNBY0DZBVkb1ctEIFXYy3xkWgMzCOVS90ffudRu-URBmPrqWLvr1gbiPHhOX=s0-d)
>>> hypsum(z**k / fac(k+2), k)
-(1 + z - exp(z))/z**2
>>> _.evalf(subs={d:'1/2',z:'1/4'})
0.544406667003864
>>> mpmath.nsum(lambda k: 0.25**k / mpmath.fac(k+2), [0,mpmath.inf])
0.544406667003864
![\sum_{k=0}^{\infty} \left(-5 + 3 z^{2}\right)^{3 - 4 k} = - \frac{\left(5 - 3 z^{2}\right)^{3}}{1 - \frac{1}{\left(5 - 3 z^{2}\right)^{4}}} [; \sum_{k=0}^{\infty} \left(-5 + 3 z^{2}\right)^{3 - 4 k} = - \frac{\left(5 - 3 z^{2}\right)^{3}}{1 - \frac{1}{\left(5 - 3 z^{2}\right)^{4}}} ;]](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_uQ1cHSqTH3EteiYQ3nkB2olSzKHx1plyAg-a5k2KSRg6yiYyA4dnY3HU7RW-G32VjKvMezoZFmpWu_TamNlZkA0H8MV23v=s0-d)
>>> hypsum((3*z**2-5)**(-4*k+3), k)
-(5 - 3*z**2)**3/(1 - 1/(5 - 3*z**2)**4)
>>> _.evalf(subs={d:'1/2',z:'1/4'})
-111.666432272586
>>> mpmath.nsum(lambda k: (3*0.25**2-5)**(-4*k+3), [0,mpmath.inf])
-111.666432272586
![\sum_{k=0}^{\infty} \frac{z^{1 + 2 k}}{\left(1 + 2 k\right)!} = \operatorname{sinh}\left(z\right) [; \sum_{k=0}^{\infty} \frac{z^{1 + 2 k}}{\left(1 + 2 k\right)!} = \operatorname{sinh}\left(z\right) ;]](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_vvUxN3Egt3qtAVYgBrsjFopsYRobG2vcT7rZujSkK0VpcazSxVM9_At7LRRT4nROcw3U8qRS3bHCqCwfDphdQD4d0TtRGukQ=s0-d)
>>> hypsum(z**(2*k+1) / fac(2*k+1), k)
sinh(z)
>>> _.evalf(subs={d:'1/2',z:'1/4'})
0.252612316808168
>>> mpmath.nsum(lambda k: 0.25**(2*k+1) / mpmath.fac(2*k+1), [0,mpmath.inf])
0.252612316808168
![\sum_{k=0}^{\infty} \frac{\left(-1\right)^{k} z^{1 + 2 k}}{\left(1 + 2 k\right)!} = \operatorname{sin}\left(z\right) [; \sum_{k=0}^{\infty} \frac{\left(-1\right)^{k} z^{1 + 2 k}}{\left(1 + 2 k\right)!} = \operatorname{sin}\left(z\right) ;]](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_vCcUEAEEXN8TaGE6QfER7Ax9zZxXDDNyaD4jgfZ3zfmAjWXC_hVaHhdVZvTWHXkVZnrXTxGj-QaZgKGU5Aqa5Xh0jExg1KhA=s0-d)
>>> hypsum((-1)**k * z**(2*k+1) / fac(2*k+1), k)
sin(z)
>>> _.evalf(subs={d:'1/2',z:'1/4'})
0.247403959254523
>>> mpmath.nsum(lambda k: (-1)**k * 0.25**(2*k+1) / mpmath.fac(2*k+1), [0,mpmath.inf])
0.247403959254523
![\sum_{k=0}^{\infty} \frac{\left(-1\right)^{k} d^{k} \left(1 - z\right)^{1 + 2 k}}{\left(2 k\right)!} = \left(1 - z\right) \operatorname{cos}\left(\sqrt{d} \left(1 - z\right)\right) [; \sum_{k=0}^{\infty} \frac{\left(-1\right)^{k} d^{k} \left(1 - z\right)^{1 + 2 k}}{\left(2 k\right)!} = \left(1 - z\right) \operatorname{cos}\left(\sqrt{d} \left(1 - z\right)\right) ;]](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_vUdzYgaEu_tpsNbna5przFFeO87OGy75l2Jk__SN_G2g0sEgFlGTrq6O8JcDqXFp4fVw7heWeFZgoqeweQHr7rYKSymr3Z=s0-d)
>>> hypsum((-1)**k * d**k * (1-z)**(2*k+1) / fac(2*k), k)
(1 - z)*cos(d**(1/2)*(1 - z))
>>> _.evalf(subs={d:'1/2',z:'1/4'})
0.646980115568008
>>> mpmath.nsum(lambda k: (-1)**k * 0.5**k * (1-0.25)**(2*k+1) / mpmath.fac(2*k), [0,mpmath.inf])
0.646980115568008
![\sum_{k=0}^{\infty} \frac{k z^{2 k}}{\left(1 + 2 k\right)!} = \frac{1}{2} \operatorname{cosh}\left(z\right) - \frac{\operatorname{sinh}\left(z\right)}{2 z} [; \sum_{k=0}^{\infty} \frac{k z^{2 k}}{\left(1 + 2 k\right)!} = \frac{1}{2} \operatorname{cosh}\left(z\right) - \frac{\operatorname{sinh}\left(z\right)}{2 z} ;]](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_v4wNDsz8cZOfr3TBAToLb7iizsL7TttGqqqmb1I0dGe2S5F32mEgwb4Ljv6gliLBqf-SlxfQdGC5NP0zQTSlyDz7AzQC0yTw=s0-d)
>>> hypsum(k * z**(2*k) / fac(2*k+1), k)
cosh(z)/2 - sinh(z)/(2*z)
>>> _.evalf(subs={d:'1/2',z:'1/4'})
0.0104819163234500
>>> mpmath.nsum(lambda k: k * 0.25**(2*k) / mpmath.fac(2*k+1), [0,mpmath.inf])
0.01048191632345
![\sum_{k=0}^{\infty} \frac{\operatorname{\Gamma}^{2}\left(- \frac{1}{2} + k\right)}{k!^{2}} = 16 [; \sum_{k=0}^{\infty} \frac{\operatorname{\Gamma}^{2}\left(- \frac{1}{2} + k\right)}{k!^{2}} = 16 ;]](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_saVJt6cNBchzguGdWroMerIR639xWjWtIaTlLxhshVRufz1b35WVKJhy0BMqHnkUTA0h5q7Sm_x9bRA7ve3t9VQhU7xYzx=s0-d)
>>> hypsum(gamma(k-R12)**2/(fac(k)**2), k)
16
>>> _.evalf()
16.0000000000000
>>> mpmath.nsum(lambda k: mpmath.gamma(k-0.5)**2/(mpmath.fac(k)**2), [0,mpmath.inf])
16.0
![\sum_{k=0}^{\infty} \left(1 + k\right)^{-2} = \frac{1}{6} \pi^{2} [; \sum_{k=0}^{\infty} \left(1 + k\right)^{-2} = \frac{1}{6} \pi^{2} ;]](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_vIKXrV3v7uutPrX0ionjxC5OAP_Ny2C-1YfP7iKYnThZ454-LNDL9c6VbbCTTePr5rdQicA4TZh9rYJYrtLDfnQYVW_kVrlw=s0-d)
>>> hypsum(1/(k+1)**2, k)
pi**2/6
>>> _.evalf()
1.64493406684823
>>> mpmath.nsum(lambda k: 1/(k+1)**2, [0,mpmath.inf])
1.64493406684823
![\sum_{k=0}^{\infty} \frac{k}{\left(1 + k\right)^{3}} = - \operatorname{\zeta}\left(3\right) + \frac{1}{6} \pi^{2} [; \sum_{k=0}^{\infty} \frac{k}{\left(1 + k\right)^{3}} = - \operatorname{\zeta}\left(3\right) + \frac{1}{6} \pi^{2} ;]](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_vFm4qz2ayoAiXEDNQg_kdaSjkgZdL8u-YZs5iCKOpKFkU1DGuR10WQgc40p50QjP-FXWr1g6vO7wNhZ_3ekHup2shAcu_PGw=s0-d)
>>> hypsum(k/(k+1)**3, k)
-zeta(3) + pi**2/6
>>> _.evalf()
0.442877163688632
>>> mpmath.nsum(lambda k: k/(k+1)**3, [0,mpmath.inf])
0.442877163688632
![\sum_{k=0}^{\infty} \frac{z^{k} \left(3 + k\right)}{\left(3 + 3 k\right) k!} = - \frac{2 - 2 e^{z} - z e^{z}}{3 z} [; \sum_{k=0}^{\infty} \frac{z^{k} \left(3 + k\right)}{\left(3 + 3 k\right) k!} = - \frac{2 - 2 e^{z} - z e^{z}}{3 z} ;]](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_siDCk1zV2mICbd4QqITyGNS8d4SrJNd0tog0-ARUfh_gie3Ki8XmyOU78XruB9D3LxG3x-9hEgJeoXv27JJMasoYvELn-xDg=s0-d)
>>> simplify(hypsum((3+k)/(3+3*k)*z**k/fac(k), k))
-(2 - 2*exp(z) - z*exp(z))/(3*z)
>>> _.evalf(subs={d:'1/2',z:'1/4'})
1.18540958339656
>>> mpmath.nsum(lambda k: (3+k)/(3+3*k)*0.25**k/mpmath.fac(k), [0,mpmath.inf])
1.18540958339656
![\sum_{k=0}^{\infty} \frac{k^{2} z^{1 + 2 k}}{\left(9 + 2 k\right)!} = \frac{1}{39916800} z^{3} \left(- \,_{1}F_{2}\left(2; 6,\frac{13}{2}; \frac{1}{4} z^{2}\right) + 2 \,_{1}F_{2}\left(3; 6,\frac{13}{2}; \frac{1}{4} z^{2}\right)\right) [; \sum_{k=0}^{\infty} \frac{k^{2} z^{1 + 2 k}}{\left(9 + 2 k\right)!} = \frac{1}{39916800} z^{3} \left(- \,_{1}F_{2}\left(2; 6,\frac{13}{2}; \frac{1}{4} z^{2}\right) + 2 \,_{1}F_{2}\left(3; 6,\frac{13}{2}; \frac{1}{4} z^{2}\right)\right) ;]](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_utCgIm0gNAnHIeL1Srt1HM8FijH_ATZwuFyxDTLe3MsahuDsPnvv4Fml_DYm2WterxRJ9KbWvsAvemQygbsc0eWv5qV4vdTg=s0-d)
>>> hypsum(k**2 * z**(2*k+1) / fac(2*k+9), k)
z**3*(-1F2([2], [6, 13/2], z**2/4) + 2*1F2([3], [6, 13/2], z**2/4))/39916800
>>> _.evalf(subs={d:'1/2',z:'1/4'})
3.92066920165299e-10
>>> mpmath.nsum(lambda k: k**2 * 0.25**(2*k+1) / mpmath.fac(2*k+9), [0,mpmath.inf])
3.92066920165299e-10
![\sum_{k=0}^{\infty} z^{k} \left(1 + k\right) \left(1 + 2 k\right) \left(2 + k\right) \left(3 + k\right) = \frac{6 + 42 z}{1 - 5 z + 10 z^{2} - 10 z^{3} + 5 z^{4} - z^{5}} [; \sum_{k=0}^{\infty} z^{k} \left(1 + k\right) \left(1 + 2 k\right) \left(2 + k\right) \left(3 + k\right) = \frac{6 + 42 z}{1 - 5 z + 10 z^{2} - 10 z^{3} + 5 z^{4} - z^{5}} ;]](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_s1L8vLSorNkuWeuascsxpqdscfuoyGipm-UDPhwnKPYlwvAkAMdgIjIe1W5jwaoUIIWcCYIlP6A7EpgvsnOvK5AUAcgc63=s0-d)
>>> simplify(hypsum((k+1)*(k+2)*(k+3)*(1+2*k)*z**k, k))
(6 + 42*z)/(1 - 5*z + 10*z**2 - 10*z**3 + 5*z**4 - z**5)
>>> _.evalf(subs={d:'1/2',z:'1/4'})
69.5308641975309
>>> mpmath.nsum(lambda k: (k+1)*(k+2)*(k+3)*(1+2*k)*0.25**k, [0,mpmath.inf])
69.5308641975309

>>> hypsum(k**3 * (-z)**k / (k+1), k)
-z*(2*(1 - z)/(1 + z)**3 - ((2 + 2*z)/(1 + z) - (2 + 2*z)*log(1 + z)/z)/(z*(1 + z)) - 2/(1 + z)**2)/2
>>> _.evalf(subs={d:'1/2',z:'1/4'})
-0.0285742052568390
>>> mpmath.nsum(lambda k: k**3 * (-0.25)**k / (k+1), [0,mpmath.inf])
-0.028574205256839
![\sum_{k=0}^{\infty} \frac{e^{k}}{k!} = e^{e} [; \sum_{k=0}^{\infty} \frac{e^{k}}{k!} = e^{e} ;]](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_vou8rpX3HQ8tuY2jfJXCMqt9tbhEFvM3rhosJdP2OIKP72SsxoVfPHyARYhFTvjFzRNu0vEAMfHZjCxT35BmMTB5zVM9Qp=s0-d)
>>> hypsum(E**k / fac(k), k)
exp(E)
>>> _.evalf()
15.1542622414793
>>> mpmath.nsum(lambda k: mpmath.e**k / mpmath.fac(k), [0,mpmath.inf])
15.1542622414793
![\sum_{k=0}^{\infty} \frac{\operatorname{cos}\left(k\right)}{k!} = \frac{1}{2} e^{e^{\mathbf{\imath}}} + \frac{1}{2} e^{e^{- \mathbf{\imath}}} [; \sum_{k=0}^{\infty} \frac{\operatorname{cos}\left(k\right)}{k!} = \frac{1}{2} e^{e^{\mathbf{\imath}}} + \frac{1}{2} e^{e^{- \mathbf{\imath}}} ;]](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_vvthtUx7fwAscz1It7Oag-FMlXaEb2LG-2r0CYkFxNrh5HXnR4NMna-2aBKo7WGZe1Uq2eq9gVvBFa6OMNPLyC-ZMTXCzPGA=s0-d)
>>> hypsum(cos(k) / fac(k), k)
exp(exp(I))/2 + exp(exp(-I))/2
>>> _.evalf()
1.14383564379164 + .0e-20*I
>>> mpmath.nsum(lambda k: mpmath.cos(k) / mpmath.fac(k), [0,mpmath.inf])
1.14383564379164
![\sum_{k=0}^{\infty} \frac{\operatorname{cos}\left(k\right)}{1 + 2 k} = \frac{1}{2} \operatorname{atanh}\left(e^{- \frac{1}{2} \mathbf{\imath}}\right) e^{\frac{1}{2} \mathbf{\imath}} + \frac{1}{2} \operatorname{atanh}\left(e^{\frac{1}{2} \mathbf{\imath}}\right) e^{- \frac{1}{2} \mathbf{\imath}} [; \sum_{k=0}^{\infty} \frac{\operatorname{cos}\left(k\right)}{1 + 2 k} = \frac{1}{2} \operatorname{atanh}\left(e^{- \frac{1}{2} \mathbf{\imath}}\right) e^{\frac{1}{2} \mathbf{\imath}} + \frac{1}{2} \operatorname{atanh}\left(e^{\frac{1}{2} \mathbf{\imath}}\right) e^{- \frac{1}{2} \mathbf{\imath}} ;]](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_v_LpAfV_JI_W-y2PXNRUXM5Oxae629CeywPwRrW7r8bGnOkSODq-G2SAfIi9C35ce_Jn32I2TpxoplWchbNzoJC8KOsk25MA=s0-d)
>>> hypsum(cos(k) / (2*k+1), k)
atanh(exp(-I/2))*exp(I/2)/2 + atanh(exp(I/2))*exp(-I/2)/2
>>> _.evalf()
0.975556628913311
>>> mpmath.nsum(lambda k: mpmath.cos(k) / (2*k+1), [0,mpmath.inf])
0.975556628913311
![\sum_{k=0}^{\infty} \frac{k \operatorname{cos}\left(k\right)}{k!} = \frac{1}{2} e^{\mathbf{\imath} + e^{\mathbf{\imath}}} + \frac{1}{2} e^{- \mathbf{\imath} + e^{- \mathbf{\imath}}} [; \sum_{k=0}^{\infty} \frac{k \operatorname{cos}\left(k\right)}{k!} = \frac{1}{2} e^{\mathbf{\imath} + e^{\mathbf{\imath}}} + \frac{1}{2} e^{- \mathbf{\imath} + e^{- \mathbf{\imath}}} ;]](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_veT5gxgtV4ig9-63U2-wBAKgutnku98kGmxFBNPpSJayiexqZOTsH2ezxzjmXwdSgTg2abGitDZY_RmR6QQzHqHIN9Jpz77Q=s0-d)
>>> simplify(hypsum(cos(k) * k / fac(k), k))
exp(I + exp(I))/2 + exp(-I + exp(-I))/2
>>> _.evalf()
-0.458967373729452 + .0e-20*I
>>> mpmath.nsum(lambda k: mpmath.cos(k) * k / mpmath.fac(k), [0,mpmath.inf])
-0.458967373729452
![\sum_{k=0}^{\infty} \frac{\left(-1\right)^{k}}{1 + 2 k} = \frac{1}{4} \pi [; \sum_{k=0}^{\infty} \frac{\left(-1\right)^{k}}{1 + 2 k} = \frac{1}{4} \pi ;]](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_t--3fKoDP3plJjW716Xs9FksyNfa5DTjqH7-9odnSYpgMVL_3BI6R-V8sOqs5B_W2cOX-AxMFBb-Nih2YpkEVfZuOc9w2CrQ=s0-d)
>>> hypsum((-1)**k / (2*k+1), k)
pi/4
>>> _.evalf()
0.785398163397448
>>> mpmath.nsum(lambda k: (-1)**k / (2*k+1), [0,mpmath.inf])
0.785398163397448
![\sum_{k=0}^{\infty} \frac{\left(-1\right)^{k}}{6 + 2 k} = - \frac{1}{4} + \frac{1}{2} \operatorname{log}\left(2\right) [; \sum_{k=0}^{\infty} \frac{\left(-1\right)^{k}}{6 + 2 k} = - \frac{1}{4} + \frac{1}{2} \operatorname{log}\left(2\right) ;]](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_vbW9oEuX5jI44RdDH9C5QFapqs5mgLswc1UT2YIZj6qOMJhblMqZFIhIAQWmaTB9RtwPgsXwAh0YosvKjok70sAlrW3rm-Ig=s0-d)
>>> hypsum((-1)**k / (2*k+6), k)
-1/4 + log(2)/2
>>> _.evalf()
0.0965735902799727
>>> mpmath.nsum(lambda k: (-1)**k / (2*k+6), [0,mpmath.inf])
0.0965735902799727
![\sum_{k=0}^{\infty} \frac{\left(-1\right)^{k}}{\left(1 + 2 k\right)^{2}} = C [; \sum_{k=0}^{\infty} \frac{\left(-1\right)^{k}}{\left(1 + 2 k\right)^{2}} = C ;]](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_vYoZr1bjNdozdTP58DZX9Iyh7s6svaS5BuqcEhjWZVARjdBvlqMsuwXcpx241fcL0LMgg72rsqzX2zqb5c0oHHmwLQF4iC=s0-d)
>>> hypsum((-1)**k / (2*k+1)**2, k)
Catalan
>>> _.evalf()
0.915965594177219
>>> mpmath.nsum(lambda k: (-1)**k / (2*k+1)**2, [0,mpmath.inf])
0.915965594177219
![\sum_{k=0}^{\infty} \frac{\left(-1\right)^{k}}{\left(2 + 2 k\right)^{2}} = \frac{1}{48} \pi^{2} [; \sum_{k=0}^{\infty} \frac{\left(-1\right)^{k}}{\left(2 + 2 k\right)^{2}} = \frac{1}{48} \pi^{2} ;]](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_sIVxJakbTlciDeebkyEZkr9zfHSc9UGTK8_i67P8gPP-f1nKG6qEHpSw5h7CEmsRw-Fr4KmNOwUZ05LlNm0pTWpHfbkTQTsw=s0-d)
>>> hypsum((-1)**k / (2*k+2)**2, k)
pi**2/48
>>> _.evalf()
0.205616758356028
>>> mpmath.nsum(lambda k: (-1)**k / (2*k+2)**2, [0,mpmath.inf])
0.205616758356028
![\sum_{k=0}^{\infty} \frac{\left(-1\right)^{k} \left(1 + k\right)}{\left(3 + 2 k\right)^{2}} = \frac{1}{9} \,_{3}F_{2}\left(\frac{3}{2},\frac{3}{2},2; \frac{5}{2},\frac{5}{2}; -1\right) [; \sum_{k=0}^{\infty} \frac{\left(-1\right)^{k} \left(1 + k\right)}{\left(3 + 2 k\right)^{2}} = \frac{1}{9} \,_{3}F_{2}\left(\frac{3}{2},\frac{3}{2},2; \frac{5}{2},\frac{5}{2}; -1\right) ;]](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_sPEbVPFl4M7etOLJ02CsSM9vIdY4p85Gh0Dv05o3XEvAOcrit_PQLdpM5hPBNuw6CPmSfNnoTRcwqFN6VSZyASupcMOkSG=s0-d)
>>> hypsum((-1)**k * (k+1) / (2*k+3)**2, k)
3F2([3/2, 3/2, 2], [5/2, 5/2], -1)/9
>>> _.evalf()
0.0652837153898853
>>> mpmath.nsum(lambda k: (-1)**k * (k+1) / (2*k+3)**2, [0,mpmath.inf])
0.0652837153898854
![\sum_{k=0}^{\infty} \frac{1}{4 + 2 k + k^{2}} = \frac{1}{6} \mathbf{\imath} \sqrt{3} \left(- \operatorname{\psi}\left(0,1 + \mathbf{\imath} \sqrt{3}\right) + \operatorname{\psi}\left(0,1 - \mathbf{\imath} \sqrt{3}\right)\right) [; \sum_{k=0}^{\infty} \frac{1}{4 + 2 k + k^{2}} = \frac{1}{6} \mathbf{\imath} \sqrt{3} \left(- \operatorname{\psi}\left(0,1 + \mathbf{\imath} \sqrt{3}\right) + \operatorname{\psi}\left(0,1 - \mathbf{\imath} \sqrt{3}\right)\right) ;]](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_s0EwJsbA7fVViH4iDH31oAF2646it4k_lBi6UYW4J_DK3dyRZ9k7wwMvPOmoWYI3nuC3KkNnb1VVBIGu4JzQebNOKN2l74=s0-d)
>>> hypsum(1/(k**2+2*k+4), k)
I*3**(1/2)*(-polygamma(0, 1 + I*3**(1/2)) + polygamma(0, 1 - I*3**(1/2)))/6
>>> _.evalf()
0.740267076581851
>>> mpmath.nsum(lambda k: 1/(k**2+2*k+4), [0,mpmath.inf])
0.740267076581851
This work was possible thanks to the support of
NSF grant DMS-0757627, which is gratefully acknowledged.