1% Tests of the ZEILBERG package. 2 3% Authors: Gregor Stoelting, Wolfram Koepf (koepf@zib-berlin.de) 4 5load_package sum; 6% on time; 7 8% 1) Successful summations by the Gosper algorithm 9% R. W. Gosper, Jr.: 10% Decision procedure for indefinite hypergeometric summation, 11% Proc. Nat. Acad. Sci. USA 75 (1978), 40-42. 12 13gosper(k,k); 14gosper(k^2,k); 15gosper(k^3,k); 16gosper(k^4,k); 17gosper(k^5,k); 18% gosper(k^20,k); 19gosper((6*k+3)/(4*k^4+8*k^3+8*k^2+4*k+3),k); 20% gosper(2^k*(k^3-3*k^2-3*k-1)/(k^3*(k+1)^3),k); 21gosper(x*k,k); 22gosper(k*x^k,k); 23gosper(k*factorial(k),k); 24gosper(1/(k^2-1),k); 25gosper((1+2*k)/((1+k^2)*(k^2+2*k+2)),k); 26gosper((k^2+4*k+1)*factorial(k),k); 27gosper((4*k-3)*factorial(2*k-2)/factorial(k-1),k); 28gosper(gamma(k+n+2)*n/((k+n+1)*gamma(k+2)*gamma(n+1)),k); 29gosper((k+n)*factorial(k+n),k); 30gosper((3*(1+2*k))/((1+k^2)*(2+2*k+k^2)),k); 31% gosper((-25+15*k+18*k^2-2*k^3-k^4)/ 32% (-23+479*k+613*k^2+137*k^3+53*k^4+5*k^5+k^6),k); 33% gosper(3^k*(2*k^4+4*k^3-7*k^2-k-4)/(k*(k+1)*(k^2+1)*((k+1)^2+1)),k); 34gosper(3^k*(4*k^2-2*k-3)/((2*k+3)*(2*k+1)*(k+1)*k),k); 35% gosper(2^k*(2*k^3+3*k^2-20*k-15)/ 36% ((2*k+3)*(2*k+1)*(k+5)*(k+4)*(k+1)*k),k); 37% gosper(-2^k*((k+11)^2*(k+1)^2-2*(k+10)^2*k^2)/ 38% ((k+11)^2*(k+10)^2*(k+1)^2*k^2),k); 39% gosper(-2^k*((k+6)^2*(k+1)^2-2*(k+5)^2*k^2)/ 40% ((k+6)^2*(k+5)^2*(k+1)^2*k^2),k); 41% gosper(2^k*(k^4-14*k^2-24*k-9)/(k^2*(k+1)^2*(k+2)^2*(k+3)^2),k); 42% gosper(((k^2-k-n^2-n-2)*gamma(k+n+2)*gamma(n+1))/ 43% (2*(-1)^k*2^k*(k+n+1)*gamma(-(k-n-1))*gamma(k+2)),k); 44% gosper(1/(k+1)*binomial(2*k,k)/(n-k+1)*binomial(2*n-2*k,n-k),k); 45gosper(3^k*(4*k^2+2*a*k-4*k-2-a)/((2*k+2+a)*(2*k+a)*(k+1)*k),k); 46gosper(2^k*(k^2-2*k-1)/(k^2*(k+1)^2),k); 47gosper((3*k^2+3*k+1)/(k^3*(k+1)^3),k); 48gosper((6*k+3)/(4*k^4+8*k^3+8*k^2+4*k+3),k); 49gosper(-(k^2+3*k+3)/(k^4+2*k^3-3*k^2-4*k+2),k); 50gosper(k^2*4^k/((k+1)*(k+2)),k); 51gosper((2*k-1)^3,k); 52gosper(3*k^2+3*k+1,k); 53gosper((k^2+4*k+2)*2^k,k); 54% gosper(2^k*(k^3-3*k^2-3*k-1)/(k^3*(k+1)^3),k); 55gosper(k*n^k,k); 56% gosper(3^k*(2*k^3+k^2+3*k+6)/((k^2+2)*(k^2+2*k+3)),k); 57% gosper(4*(1-k)*(k^2-2*k-1)/(k^2*(k+1)^2*(k-2)^2*(k-3)^2),k); 58% gosper(2^k*(k^4-14*k^2-24*k-9)/(k^2*(k+1)^2*(k+2)^2*(k+3)^2),k); 59gosper((1+k)/(1-k)+2/k,k); 60gosper(1/(k*(k+1)),k); 61gosper(1/(k*(k+2)),k); 62gosper(1/(k*(k+10)),k); 63% gosper(1/(k*(k+30)),k); 64gosper(1/(k*(k+1)*(k+2)),k); 65gosper(1/(k*(k+1)*(k+2)*(k+3)*(k+4)*(k+5)*(k+6)*(k+7)*(k+8)*(k+9)* 66 (k+10)),k); 67gosper(Pochhammer(k-n,n),k); 68gosper((a+k-1)*Pochhammer(a,k),k); 69gosper((a-k-1)/Pochhammer(a-k,k),k); 70gosper(binomial(k,n),k); 71gosper(k*binomial(k,n),k); 72% gosper(k^10*binomial(k,n),k); 73gosper(1/binomial(k,n),k); 74gosper(k/binomial(k,n),k); 75% gosper(k^10/binomial(k,n),k); 76gosper(binomial(k-n,k),k); 77gosper((-1)^k*binomial(n,k),k); 78gosper((-1)^k/binomial(n,k),k); 79gosper((-1)^(k+1)*(4*k+1)*factorial(2*k)/ 80(factorial(k)*4^k*(2*k-1)*factorial(k+1)),k); 81% term:=3^k*(3*k^2+2*a*k-4*k-2-a)/((2*k+2+a)*(2*k+a)*(k+1)*k)$ 82% term:=sub(k=k+3,term)-term$ 83% gosper(term,k); 84% clear(term); 85 86% 2) Examples for the Wilf-Zeilberger method: 87% H. S. Wilf and D. Zeilberger: 88% Rational functions certify combinatorial identities. 89% J. Amer. Math. Soc. 3, 1990, 147-158. 90 91% Binomial theorem 92summand:=binomial(n,k)/2^n$ 93gosper(sub(n=n+1,summand)-summand,k); 94 95% Vandermonde 96summand:=binomial(n,k)^2/binomial(2*n,n)$ 97gosper(sub(n=n+1,summand)-summand,k); 98 99% Gauss 100% summand:=factorial(n+k)*factorial(b+k)*factorial(c-n-1)*factorial(c-b-1) 101% /(factorial(n-1)*factorial(c-n-b-1)*factorial(k+1)*factorial(c+k)* 102% factorial(b-1))$ 103% gosper(sub(n=n+1,summand)-summand,k); 104 105% Kummer 106% summand:=(-1)^(n+k)*factorial(2*n+c-1)*factorial(n)*factorial(n+c-1)/( 107% factorial(2*n+c-1-k)*factorial(2*n-k)*factorial(c+k-1)*factorial(k))$ 108% gosper(sub(n=n+1,summand)-summand,k); 109 110% Saalschuetz 111% summand:=factorial(a+k-1)*factorial(b+k-1)*factorial(n)* 112% factorial(n+c-a-b-k-1)*factorial(n+c-1)/(factorial(k)*factorial(n-k)* 113% factorial(k+c-1)*factorial(n+c-a-1)*factorial(n+c-b-1))$ 114% gosper(sub(n=n+1,summand)-summand,k); 115 116% Dixon 117% summand:=(-1)^k*binomial(n+b,n+k)*binomial(n+c,c+k)*binomial(b+c,b+k)* 118% factorial(n)*factorial(b)*factorial(c)/factorial(n+b+c)$ 119% gosper(sub(n=n+1,summand)-summand,k); 120 121% 3) Results from Gosper's original work 122% R. W. Gosper, Jr.: 123% Decision procedure for indefinite hypergeometric summation, 124% Proc. Nat. Acad. Sci. USA 75 (1978), 40-42. 125 126% ff(k)=product(a+b*j+c*j^2,j,1,k); 127% gg(k)=product(e+b*j+c*j^2,j,1,k); 128 129operator ff,gg; 130 131let {ff(~k+~m) => ff(k+m-1)*(c*(k+m)^2+b*(k+m)+a) 132 when (fixp(m) and m>0), 133ff(~k+~m) => ff(k+m+1)/(c*(k+m+1)^2+b*(k+m+1)+a) 134 when (fixp(m) and m<0)}; 135 136let {gg(~k+~m) => gg(k+m-1)*(c*(k+m)^2+b*(k+m)+e) 137 when (fixp(m) and m>0), 138gg(~k+~m) => gg(k+m+1)/(c*(k+m+1)^2+b*(k+m+1)+e) 139 when (fixp(m) and m<0)}; 140 141gosper(ff(k-1)/gg(k),k); 142% gosper(ff(k-1)/gg(k+1),k); 143% gosper(ff(k-1)/gg(k+2),k); 144 145% ff(k)=product(a+b*j+c*j^2+d*j^3,j,1,k); 146% gg(k)=product(e+b*j+c*j^2+d*j^3,j,1,k); 147 148let { 149ff(~k+~m) => ff(k+m-1)*(d*(k+m)^3+c*(k+m)^2+b*(k+m)+a) 150 when (fixp(m) and m>0), 151ff(~k+~m) => ff(k+m+1)/(d*(k+m+1)^3+c*(k+m+1)^2+b*(k+m+1)+a) 152when (fixp(m) and m<0)}; 153 154let { 155gg(~k+~m) => gg(k+m-1)*(d*(k+m)^3+c*(k+m)^2+b*(k+m)+e) 156 when (fixp(m) and m>0), 157gg(~k+~m) => gg(k+m+1)/(d*(k+m+1)^3+c*(k+m+1)^2+b*(k+m+1)+e) 158when (fixp(m) and m<0)}; 159 160gosper(ff(k-1)/gg(k),k); 161gosper(ff(k-1)/gg(k+1),k); 162% Decision: no closed form solution exists 163 164% ff(k)=product(a+b*j+c*j^2+d*j^3+e*j^4,j,1,k); 165% gg(k)=product(f+b*j+c*j^2+d*j^3+e*j^4,j,1,k); 166 167let { 168ff(~k+~m) => ff(k+m-1)*(e*(k+m)^4+d*(k+m)^3+c*(k+m)^2+b*(k+m)+a) 169when (fixp(m) and m>0), 170ff(~k+~m) => ff(k+m+1)/(e*(k+m+1)^4+d*(k+m+1)^3+c*(k+m+1)^2+b*(k+m+1)+a) 171when (fixp(m) and m<0)}; 172 173let { 174gg(~k+~m) => gg(k+m-1)*(e*(k+m)^4+d*(k+m)^3+c*(k+m)^2+b*(k+m)+f) 175when (fixp(m) and m>0), 176gg(~k+~m) => 177 gg(k+m+1)/(e*(k+m+1)^4+d*(k+m+1)^3+c*(k+m+1)^2+b*(k+m+1)+f) 178 when (fixp(m) and m<0)}; 179 180gosper(ff(k-1)/gg(k),k); 181 182% ff=product(j^3+b*j^2+c*j+(2*c-4*b+8),j,1,k); 183% gg=product(j^3+b*j^2+c*j,j,1,k) 184 185let { 186ff(~k+~m) => ff(k+m-1)*((k+m)^3+c*(k+m)^2+b*(k+m)+(2*c-4*b+8)) 187when (fixp(m) and m>0), 188ff(~k+~m) => ff(k+m+1)/((k+m+1)^2+c*(k+m+1)^2+b*(k+m+1)+(2*c-4*b+8)) 189when (fixp(m) and m<0)}; 190 191let { 192gg(~k+~m) => gg(k+m-1)*((k+m)^3+c*(k+m)^2+b*(k+m)+1) 193 when (fixp(m) and m>0), 194gg(~k+~m) => gg(k+m+1)/((k+m+1)^2+c*(k+m+1)^2+b*(k+m+1)+1) 195when (fixp(m) and m<0)}; 196 197gosper(ff(k-1)/gg(k),k); 198 199clear(ff,gg); 200 201% 4) Examples for which gosper decides that no hypergeometric term 202% antidifference exists 203 204gosper(factorial(k),k); 205gosper(factorial(2*k)/(factorial(k)*factorial(k+1)),k); 206% gosper(1/(factorial(k)*(k^4+k^2+1)),k); 207gosper(binomial(a,k),k); 208gosper(1/k,k); 209gosper((1+k)/(1-k),k); 210% gosper(3^k*(3*k^2+2*a*k-4*k-2-a)/((2*k+2+a)*(2*k+a)*(k+1)*k),k); 211gosper(factorial(k+n)*factorial(n)/ 212((-1)^k*factorial(n-k)*factorial(k)*2^k),k); 213gosper(1/(k*(k+1/2)),k); 214gosper(Pochhammer(a,k),k); 215gosper(binomial(n,k),k); 216 217% 5) Finding recurrence equations for definite sums 218% D. Zeilberger, 219% A fast algorithm for proving terminating hypergeometric identities, 220% Discrete Math. 80 (1990), 207-211. 221 222sumrecursion(binomial(n,k),k,n); 223sumrecursion(k*binomial(n,k),k,n); 224% sumrecursion( 225% (-1)^k*binomial(2*n,k)*binomial(2*k,k)*binomial(4*n-2*k,2*n-k),k,n); 226sumrecursion(binomial(n,k)^2,k,n); 227sumrecursion(binomial(n,k)^2/binomial(2*n,n),k,n); 228% sumrecursion((-1)^k*binomial(n,k)^2,k,n); 229% Gauss 230sumrecursion( 231factorial(n+k)*factorial(b+k)*factorial(c-n-1)*factorial(c-b-1),k,n); 232sumrecursion( 233Pochhammer(a,k)*Pochhammer(b,k)/(factorial(k)*Pochhammer(c,k)),k,a); 234% Kummer 235sumrecursion((-1)^(n+k)*factorial(2*n+c-1)*factorial(n)*factorial(n+c-1) 236/(factorial(2*n+c-1-k)*factorial(2*n-k)*factorial(c+k-1)* 237 factorial(k)),k,n); 238sumrecursion((-1)^k/( 239factorial(2*n+c-1-k)*factorial(2*n-k)*factorial(c+k-1)* 240 factorial(k)),k,n); 241% Saalschuetz 242% sumrecursion(factorial(a+k-1)*factorial(b+k-1)*factorial(n)* 243% factorial(n+c-a-b-k-1)*factorial(n+c-1)/ 244% (factorial(k)*factorial(n-k)*factorial(k+c-1)* 245% factorial(n+c-a-1)*factorial(n+c-b-1)),k,n); 246sumrecursion(factorial(a+k-1)*factorial(b+k-1)*factorial(n+c-a-b-k-1)/( 247factorial(k)*factorial(n-k)*factorial(k+c-1)),k,n); 248% Dixon 249% sumrecursion((-1)^k*binomial(n+b,n+k)*binomial(n+c,c+k)* 250% binomial(b+c,b+k)* 251% factorial(n)*factorial(b)*factorial(c)/factorial(n+b+c),k,n); 252sumrecursion((-1)^k*binomial(n+b,n+k)*binomial(n+c,c+k)* 253 binomial(b+c,b+k),k,n); 254sumrecursion((-1)^(k-n)*binomial(2*n,k)^3,k,n); 255sumrecursion( 256(-1)^(k-n)*binomial(2*n,k)^3/(binomial(3*n,n)*binomial(2*n,n)),k,n); 257% Clausen 258% summand:=factorial(a+k-1)*factorial(b+k-1)/ 259% (factorial(k)*factorial(-1/2+a+b+k))*factorial(a+n-k-1)* 260% factorial(b+n-k-1)/(factorial(n-k)*factorial(-1/2+a+b+n-k))$ 261% sumrecursion(summand,k,n); 262% Dougall 263% summand:= 264% pochhammer(d,k)*pochhammer(1+d/2,k)*pochhammer(d+b-a,k)* 265% pochhammer(d+c-a,k)* 266% pochhammer(1+a-b-c,k)*pochhammer(n+a,k)*pochhammer(-n,k)/ 267% (factorial(k)* 268% pochhammer(d/2,k)*pochhammer(1+a-b,k)*pochhammer(1+a-c,k)* 269% pochhammer(b+c+d-a,k)*pochhammer(1+d-a-n,k)*pochhammer(1+d+n,k))$ 270% sumrecursion(summand,k,n); 271% Apery 272sumrecursion(binomial(n,k)^2*binomial(n+k,k)^2,k,n); 273% sumrecursion(4*(-1)^k*binomial(m-1,k)*binomial(2*m-1,2*k)/ 274% binomial(4*m-1,4*k)*(4*m^2+16*k^2-16*k*m+16*k-6*m+3)/ 275% ((4*m-4*k-3)*(4*m-4*k-1)),k,m); 276sumrecursion((-1)^k*binomial(n,k)*binomial(k,n),k,n); 277sumrecursion((-1)^k*binomial(n,k)*binomial(2*k,n),k,n); 278sumrecursion((-1)^k*binomial(n,k)*binomial(k,j)^2,k,n); 279sumrecursion(binomial(n,k)*binomial(a,k),k,n); 280sumrecursion((3*k-2*n)*binomial(n,k)^2*binomial(2*k,k),k,n); 281sumrecursion(binomial(n-k,k),k,n); 282sumrecursion(binomial(n,k)*binomial(n+k,k),k,n); 283% sumrecursion(binomial(n+k,m+2*k)*binomial(2*k,k)*(-1)^k/(k+1),k,n); 284sumrecursion((-1)^k*binomial(n-k,k)*binomial(n-2*k,m-k),k,n); 285% sumrecursion((-1)^k*binomial(n-k,k)*binomial(n-2*k,m-k),k,m); 286sumrecursion(binomial(n+k,2*k)*2^(n-k),k,n); 287sumrecursion(binomial(n,k)*binomial(2*k,k)*(-1/4)^k,k,n); 288% sumrecursion(binomial(n,i)*binomial(2*n,n-i),i,n); 289sumrecursion((-1)^k*binomial(n,k)*binomial(2*k,k)*4^(n-k),k,n); 290sumrecursion((-1)^k*binomial(n,k)/binomial(k+a,k),k,n); 291% sumrecursion((-1)^k*binomial(n,k)/binomial(k+a,k),k,a); 292sumrecursion((-1)^(n-k)*binomial(2*n,k)^2,k,n); 293sumrecursion(factorial(a+k)*factorial(b+k)*factorial(n+c-a-b-k-1)/( 294factorial(k+1)*factorial(n-k)*factorial(k+c)),k,a); 295% sumrecursion(factorial(a+k)*factorial(b+k)*factorial(n+c-a-b-k-1)/( 296% factorial(k+1)*factorial(n-k)*factorial(k+c)),k,b); 297% sumrecursion(factorial(a+k)*factorial(b+k)*factorial(n+c-a-b-k-1)/( 298% factorial(k+1)*factorial(n-k)*factorial(k+c)),k,c); 299sumrecursion(binomial(2*n+1,2*p+2*k+1)*binomial(p+k,k),k,n); 300% sumrecursion(binomial(2*n+1,2*p+2*k+1)*binomial(p+k,k),k,p); 301sumrecursion(binomial(r,m)*binomial(s,t-m),m,r); 302% sumrecursion(binomial(r,m)*binomial(s,t-m),m,s); 303% sumrecursion(binomial(r,m)*binomial(s,t-m),m,t); 304sumrecursion(binomial(2*n+1,2*k)*binomial(m+k,2*n),k,n); 305% sumrecursion(binomial(2*n+1,2*k)*binomial(m+k,2*n),k,m); 306sumrecursion(binomial(n,k)*binomial(k,j)*x^j,k,n); 307% sumrecursion(binomial(n,k)*binomial(k,j)*x^j,k,j); 308% sumrecursion(binomial(n,k)*binomial(k,j)*x^k,k,n); 309sumrecursion(x*binomial(n+k,2*k)*((x^2-1)/4)^(n-k),k,n); 310sumrecursion(binomial(n+k-1,2*k-1)*(x-1)^(2*k)*x^(n-k)/k,k,n); 311sumrecursion( 3121/(k+1)*binomial(2*k,k)/(n-k+1)*binomial(2*n-2*k,n-k),k,n); 313sumrecursion(binomial(m,r)*binomial(n-r,n-r-q)*(t-1)^r,r,m); 314% sumrecursion(binomial(m,r)*binomial(n-r,n-r-q)*(t-1)^r,r,n); 315% sumrecursion(binomial(m,r)*binomial(n-r,n-r-q)*(t-1)^r,r,q); 316% sumrecursion(binomial(m,r)*binomial(n-r,n-r-q)*(t-1)^r,r,r); 317sumrecursion(Pochhammer(-n/2,k)*Pochhammer(-n/2+1/2,k)/ 318(factorial(k)*Pochhammer(b+1/2,k)),k,n); 319% Watson 320% sumrecursion(pochhammer(a,k)*pochhammer(b,k)*pochhammer(c,k)/( 321% factorial(k)*pochhammer(1/2*(a+b+1),k)*pochhammer(2*c,k)),k,c); 322% sumrecursion(pochhammer(-m,j)*pochhammer(m+2*k+2,j)*pochhammer(k+1/2,j)/ 323% (factorial(j)*pochhammer(k+3/2,j)*pochhammer(2*k+1,j)),j,k); 324sumrecursion((-1)^k*binomial(n,k)^3,k,n); 325% sumrecursion(pochhammer(-n,k)*pochhammer(n+2*a,k)*pochhammer(a,k)/( 326% factorial(k)*pochhammer(2*a/2,k)*pochhammer((2*a+1)/2,k))*(2/4)^k,k,n); 327% sumrecursion(pochhammer(-n,k)*pochhammer(n+4*a,k)*pochhammer(a,k)/( 328% factorial(k)*pochhammer(4*a/2,k)*pochhammer((4*a+1)/2,k))*(4/4)^k,k,n); 329% sumrecursion(binomial(n+k+1,n-k)*pochhammer(-n+k,j)*pochhammer(k+1/2,j)* 330% pochhammer(n+k+2,j)/(factorial(j)*pochhammer(k+3/2,j)* 331% pochhammer(2*k+1,j)),j,n); 332% sumrecursion(pochhammer(-m,j)*pochhammer(m+2*k+2,j)* 333% pochhammer(k+1/2,j)/( 334% factorial(j)*pochhammer(k+3/2,j)*pochhammer(2*k+1,j)),j,m); 335% sumrecursion(binomial(n+k+1,n-k)*pochhammer(-n+k,j)* 336% pochhammer(k+1/2,j)* 337% pochhammer(n+k+2,j)/(factorial(j)*pochhammer(k+3/2,j)* 338% pochhammer(2*k+1,j)), 339% j,k); 340% sumrecursion(pochhammer(a+b+c-n,j+l)*pochhammer(a+b-n/2,j+l)/ 341% (factorial(j)*factorial(l)*pochhammer(a-n/2+1,j)* 342% pochhammer(b-n/2+1,l)),j,a); 343% sumrecursion(pochhammer(a+b+c-n,j+l)*pochhammer(a+b-n/2,j+l)/ 344% (factorial(j)*factorial(l)*pochhammer(a-n/2+1,j)* 345% pochhammer(b-n/2+1,l)),j,b); 346sumrecursion(Pochhammer(a+b+c-n,j+l)*Pochhammer(a+b-n/2,j+l)/ 347(factorial(j)*factorial(l)*Pochhammer(a-n/2+1,j)* 348 Pochhammer(b-n/2+1,l)),j,c); 349% sumrecursion( 350% (-1)^(a+b+c)*gamma(a+b+c-d/2)*gamma(d/2-c)*gamma(a+c-d/2)* 351% gamma(b+c-d/2)/ 352% (gamma(a)*gamma(b)*gamma(d/2)*gamma(a+b+2*c-d)*(m^2)^(a+b+c-d))* 353% pochhammer(a+b+c-d,k)*pochhammer(a+c-d/2,k)/ 354% (pochhammer(a+b+2*c-d,k)*factorial(k)),k,a); 355% sumrecursion( 356% (-1)^(a+b+c)*gamma(a+b+c-d/2)*gamma(d/2-c)*gamma(a+c-d/2)* 357% gamma(b+c-d/2)/ 358% (gamma(a)*gamma(b)*gamma(d/2)*gamma(a+b+2*c-d)*(m^2)^(a+b+c-d))* 359% pochhammer(a+b+c-d,k)*pochhammer(a+c-d/2,k)/ 360% (pochhammer(a+b+2*c-d,k)*factorial(k)),k,b); 361% sumrecursion( 362% (-1)^(a+b+c)*gamma(a+b+c-d/2)*gamma(d/2-c)*gamma(a+c-d/2)* 363% gamma(b+c-d/2)/ 364% (gamma(a)*gamma(b)*gamma(d/2)*gamma(a+b+2*c-d)*(m^2)^(a+b+c-d))* 365% pochhammer(a+b+c-d,k)*pochhammer(a+c-d/2,k)/ 366% (pochhammer(a+b+2*c-d,k)*factorial(k)),k,c); 367% sumrecursion(pochhammer(-n,k)*pochhammer(n+3*a,k)*pochhammer(a,k)/( 368% factorial(k)*pochhammer(3*a/2,k)* 369% pochhammer((3*a+1)/2,k))*(3/4)^k,k,n); 370% summand:=k*(-1)^j*pochhammer(2*k+j+1,j)*pochhammer(2*k+2*j+2,n-k-j)/( 371% factorial(k+j)*factorial(j)*factorial(n-k-j))*exp(-(j+k)*t)$ 372% summand:=k*(-1)^j*pochhammer(2*k+j+1,j)*pochhammer(2*k+2*j+2,n-k-j)/( 373% (k+j)*factorial(j)*factorial(n-k-j))*exp(-(j+k)*t)$ 374% sumrecursion(summand,j,n); 375clear(summand); 376 377% 6) Finding recurrence equations for hypergeometric functions 378% Koornwinder, T. H.: 379% On Zeilberger's algorithm and 380% its q-analogue: a rigorous description. 381% J. of Comput. and Appl. Math. 48, 1993, 91-111. 382 383% Gauss 384hyperrecursion({a,b},{c},1,a); 385% Dougall 386% hyperrecursion({d,1+d/2,d+b-a,d+c-a,1+a-b-c,n+a,-n}, 387% {d/2,1+a-b,1+a-c,b+c+d-a,1+d-a-n,1+d+n},1,n); 388% Baxter 389% hyperrecursion({-n,-n-1,-n-2},{2,3},-1,n); 390% Krawtchouk polynomials 391% krawtchoukterm := 392% (-1)^n*p^n*binomial(NN,n)*hyperterm({-n,-x},{-NN},1/p,k)$ 393% sumrecursion(krawtchoukterm,k,n); 394% sumrecursion(krawtchoukterm,k,x); 395% sumrecursion(krawtchoukterm,k,NN); 396% clear(krawtchoukterm); 397% hyperrecursion({-n,b,c+4},{b+1,c},1,n); 398hyperrecursion({-n,b,c+1,d+1},{b+1,c,d},1,n); 399 400% 7) Extended versions of Gosper's and Zeilberger's algorithms 401% Koepf, W.: 402% Algorithms for the indefinite and definite summation. 403% Konrad-Zuse-Zentrum Berlin (ZIB), Preprint SC 94-33, 1994. 404 405% extended Gosper algorithm 406extended_gosper(k*factorial(k/7),k,7); 407extended_gosper(k*factorial(k/2),k,2); 408extended_gosper(k*factorial(k/2),k); 409extended_gosper(binomial(k/2,n),k); 410extended_gosper(binomial(n,k/2)-binomial(n,k/2-1),k); 411 412% extended Zeilberger algorithm 413% extended_sumrecursion(binomial(n,k)*binomial(k/2,n),k,n,1,2); 414sumrecursion(binomial(n,k)*binomial(k/2,n),k,n); 415extended_sumrecursion(binomial(n/2,k),k,n,2,1); 416sumrecursion(binomial(n/2,k),k,n); 417% sumrecursion(hyperterm({a,b,a+1/2-b,1+2*a/3,-n}, 418% {2*a+1-2*b,2*b,2/3*a,1+a+n/2},4,k)/ 419% (factorial(n)*2^(-n)/factorial(n/2))/ 420% hyperterm({a+1,1},{a-b+1,b+1/2},1,n/2),k,n); 421 422% Watson 423% sumrecursion(pochhammer(a,k)*pochhammer(b,k)*pochhammer(c,k)/( 424% factorial(k)*pochhammer(1/2*(a+b+1),k)*pochhammer(2*c,k))/ 425% (GAMMA(1/2)*GAMMA(1/2+c)*GAMMA(1/2+a/2+b/2)*GAMMA(1/2-a/2-b/2+c))* 426% GAMMA(1/2+a/2)*GAMMA(1/2+b/2)*GAMMA(1/2-a/2+c)*GAMMA(1/2-b/2+c),k,a); 427% hyperrecursion({a,b,c},{1/2*(a+b+1),2*c},1,a); 428% hyperrecursion({a,b,c},{1/2*(a+b+1),2*c},1,b); 429 430% 8) Closed form representations of hypergeometric sums 431 432% Vandermonde 433hypersum({-n,b},{c},1,n); 434% Saalschuetz 435hypersum({a,b,-n},{c,1+a+b-c-n},1,n); 436% Kummer 437hypersum({a,-n},{1+a+n},-1,n); 438% Dixon 439hypersum({a,b,-n},{1+a-b,1+a+n},1,n); 440% Dougall 441% hypersum({a,1+a/2,b,c,d,1+2*a-b-c-d+n,-n}, 442% {a/2,1+a-b,1+a-c,1+a-d,1+a-(1+2*a-b-c-d+n),1+a+n},1,n); 443% Clausen 444% hypersum({a,b,1/2-a-b-n,-n},{1/2+a+b,1-a-n,1-b-n},1,n); 445 446hypersum({a,1+a/2,c,d,-n},{a/2,1+a-c,1+a-d,1+a+n},1,n); 447hypersum({a,1+a/2,d,-n},{a/2,1+a-d,1+a+n},-1,n); 448 449% m-fold case: 450hypersum({-n,-n,-n},{1,1},1,n); 451% hypersum({-n,n+3*a,a},{3*a/2,(3*a+1)/2},3/4,n); 452 453% 9) Hypergeometric representations 454 455sumtohyper(binomial(n,k)^3,k); 456sumtohyper(binomial(n,k)/2^n-sub(n=n-1,binomial(n,k)/2^n),k); 457sumtohyper(binomial(k+j-1,k-j)*2*(-1)^(j+1)*factorial(2*j-1)/ 458factorial(j-1)/factorial(j+1)*x^j,j); 459% term:=1/(n-1+k)*(1/2-1/2*x)^k/n*binomial(k-n-1,-n-1)*k* 460% binomial(n-1+k,n-1); 461% sumtohyper(sub(n=n+1,term)-term,k); 462 463end; 464