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_vOGHCfj0jOtwMn5I3BZJGvbL4f9jQb1b2DrO16m0nrNuXsgvgvFbjTzrBMQVXyOAkGoT9c3U9kT8gWwZEbLtO727R7uCSDWA=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_svyPOjAjQNrExs2qbgmieMiyUsY2nkR9mEnYAE1AY-zWnpMhHHuFRB51l_Ku6VvKEX4h5eGxE_vQwBLhBS9IYObYnFu34fzw=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_vNgbazjeRttjMjgMMh2SkaqG7qn--AkwEelgh-9MfBdyHOOhBWrtqxDoCJeIFdyIWTOnMjKfR2UTt7m-eYjcHf_nwGS8mPQg=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_sTXS3H9G5UrRjdG4OmREejH6WLTfUKdiuSDvbHZfwvOUnxLFVJxm05kYSJhFmM2gNBLzDWXUEkfYvC6mG9vSmcnMkpdnPljA=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_uLRpBZO4xQVmjL5XT6hpxFEjHtHQ18Dk7MkNqffiUu0xJArDBrrg3Kv0p_wtvnWkPwd9v1gHVVDud4tjZ0o8KGQCtNxndlDg=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_sPerFfrnOa1BYVoEEpMhB2xpt4yg5t83WYuLShSziJi7feRsCbKUecehbRi351lLp4ec1EtxHgl0xbMbgC9FnXEli2pzVO0g=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_sOGKTBsc9y3QBYBnpzuKprrvYz7xZSwPySSXYg1y2Db8IwAdaL2xAgJjQi4LJFbIiAFWTcRSZweuT1yMspd5UU1f0RX2Lm=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_t8iiR1jzhMjXcpjMT2LGGVJkMZSgxNFLC1MlBIiPee9UDVMx4riuBKxKB2wnpMJUODU6MWFT07FyWEG5Oa1KYArec13l9GCQ=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_uVJdTZgvd9eeabDGamee7jWQV1l6uKnN3-_u23p1EP6JK-2m2ft0qJHIyWgssADTSftD-2XHUQnyrWrnxU6dhas2cEy3np1w=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_uRYblDnPVPzTO5mZieb-UBAnOSKrQD65J2LEoHeff-EN2JgkZHNjmSveacBHBqRGwOWn2UDNENh4w1kC29CObuEqTi1v4h5w=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_uSmxguy3d4-XaG969-IiSjrhuTXo-cA7QJ3JA_4utwyUdwSmeY29IougHtri9cNl0BU8Mu_k3QqLomlWkdYZoT4dRG4l08Lw=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_u8R36jaEB02or-PWPvS039wloqyTXfPsMU8iCO8-e1XcpoSRO6Fn1iVbepi3sHJ0lD-Qtj9fNtGCttReOeHj8fWhRfU8cb=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_uLbIzH8rIPPiax5MW0Bxbm26WRJtXvorr0lDzKY3ner_Z23UoivTMfhq1WTT5_caOLvx8VlZIpwuVugACxQ_H0KshACoJk=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_spOvJzgSIY7pTr5RPTOh7utGFjNP1YVqu3GfZ5TB_gvM9_hu535tkIvcSGl9Whs_Vt_-Ctz4aE6HjcGLsAm4m8AoT03r9z=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_u6834SIxaPHa2TefnR4avZELn95nzyrC9dNxibYh35e2cOZMUd6N8rgrYTvzLH7s7Y2mzcv4KbZKLgcrivLZ1cEh1ycl63=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_uXCQ7XxHYMWYd9IepzR8ZxoEVGELShQx2X6bH3oJRwoP70MWUCewcyVzVs-b4NGQPwTsTIg1eBTANxTLOHFoxT2HdhKD2V5g=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_sGL12NSI4-yomfRGmfajqI49ZItIO9IJjHvHZHoQfgi1qO6ZYWDddRuXjlVBPoOmBAeYn-IEJi1WGjXS_RqAIJTzMZK3qz=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_s-9g_2t-g-8Ds3X8mJo3eso0DIB-6-3C5d6Azvef8hqoTY1YN667FcOcRVrfcaBdid_-mDZqx5AN-L-lIQh3YEk_E7N5P8=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_tTnPZHvSH8oj4n2dszNumoWc_aqQ26RV1Bb9GR3q7j85DtHsUuUmJuDQ3YAogK2EQB2-CFa_T_c8zvvGVv9GApKLpZa1HbNA=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_sWCAwxuFiSfIxU6Lj3ifY2LNlqCXSZs-x5oz-ap3Qln8lDS2cYaJnEbS42bZUWLmSCZIsJsHYOw1nI586AgKmi0CS7CsZUyQ=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_sexsShIhSIgpEV2FtgqntyD6MjDUSWutTEeqxvbIG_GJtbbLLVLXz_LY74Sse8X83fVByiNth-AxGgDdIuCe93irnd3GyY=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_sw_6GdA9nclSgqOXT9bKSVrM02CEftiO2meHsNyVaXze1kH_nxbqfQOWOxKwbha7KW32hFhR0pLNG6wPPh2w_Lh3vwgLBxOw=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_v2LNkvh28RB7FIyTdmhvmUraw4aWqskVkN_RbrpZVk0XOawA8N40CpSVkmGYaAKaPmBn2PRwGKXhy3jutTO2BMWI_s7UHS=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_sMAdCwrrbF0KmoDO2eSzj1T8ObGuO8PvaMgf3XGsIIc6JenU-mrS4Snaib66uehQHZcZ5jbsw_e5hwtnQRne_URkzIftgylw=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_votmow0JO9Fy00YqYAvdZucHkrmEUCGApGAKiG_B5qf9vHpr-ZLQ8bU7VtHfTeoywZ9W73dlLWA7qAqjk7jk9CMWwjwnBYig=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_uX92lW76OaDWe7WHAbAaWSTdleQrIj_I3wkWl0BbGeWi1Y0q-iylVOtllzP1FCGpV-D4CCAhH5uQNNKL7632L9YBNSAHX_SA=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_s8R_5uJuOTNjkDdE72mHa_z2zdBSu29gQFjZhgdqCx7NQW5Jxfq4SVWiF5TaA8_AtmbXHPjgLTMDlGcrBacQUIP05Y4MIaaQ=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_sNTlO_q-CvKJUnOinWTnVDdPAj8fCiqYrk1QWDXE5dqvPZkecFpI5D8rzcpmbmiy9GyMqJqLYz7La3grJUHqAPwP6PRDQ3=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_ulBz4NGGsOzFOI9c-VWM48C-ECiFzj4zdcCjAEmwSOoc069KnLq2HFvqJ2JeDpULLjnLhrVKPnBvX3rM8yToUpEMN3pKWd=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_vnqbJM2M_WBxsMtrwkGL1uOy7_jy78gzmIg-86clbnSiTgGDCAQw7ZhS065z_AbKurxwlkVaXGmNS1CwTAJXiL2xTDgoeAww=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_uZNczbFBXgwJTGGMIv3cpr-YKfYDvDXy60uG3LTJaVuF8EhoxXmmAoT_qWfDsbrEQ0KaO6spljPV8Qd1ChWA3TyyqVpKTNxw=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_tHSPgyliGzR3ak3Sr2d6pkrdJfzBU5s5-NhpzxEsHeSIxgI3Sw59qQ0quBvBfzbdNvAlYXBKFAW0FamnGmDQmWg35aAUAaTw=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_sCY5NX1i1hPAceLJ76E4KzONrqght_Nrk48GSVIWARsYPI00is-Gft9aiGUrww6CAhvDuZPeUZFHoSNIkinmzphGAytqIXeA=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_vOwbYgHUg6t6G05XCIZuewfoe-RY6GN9r1MwfVH-_rqUemGK42WuTGLfZXnMG9ot7oZXFegrN0MCkB4l2qc8vvnUCxjhiXWA=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_ufn5kElFlhlJwllGq6OZYvG7T4VPHUgeNyHm9igyPbggyAE_rywRbiGFO1CfVhbxknEZbABUUJCuuv9L7i1Xjx5D4E-ybN=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_tykhnibHwokXSjC21R_iwoS7xMCltmqzJ3tGBML6VBFcDcJdia_rDPzUegjZ0sTjr8EMzDvWRRk4CuSWt4qPwv0erM3KY6Hw=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_vQyI6sOdjf9_cRS9knQETkp_PE9zQf56MaHST-3f3-39xaoDAX8kBcvIRL_4G4O0W3l03_qwGQ6Dgjc_C_5-uZxLOLK5Mm=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_unTc6fhbjJSu0aeYjFs9j5r-gD64vSby5b_elwLPCrdWmpRz56nGBq7bR12wIeo1ZcyMpX7RrqrWpqDDYceDBS77qN7lmP=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.