LegPP_:Tier;
LegPP[$n _= Natp[$n] | $n = 0,$x] :: 1/2^$n*Sum[(-1)^%#m*Comb[$n,\
		  %#m]*Comb[2*$n + -(2*%#m),$n]*$x^($n + -(2*%#m)),{%#m,\
		0,Floor[$n/2]}]
LegPP[$n _= Oddp[$n] | $n = 0,0] : 0
LegPP[$n _= Evenp[$n] | $n = 0,0] :: 1/2^$n*(-1)^($n/2)*Comb[$n,$n/2]

gamma_:Tier;
gamma[$n _= Natp[$n]] : (-1 + $n)!
gamma[1] : 1
gamma[2] : 1
gamma[1/2] : Pi^(1/2)
gamma[$n _= Natp[$n + -(1/2)]] : 2^(1/2 + -$n)*Pi^(1/2)*(-2 + 2$n)!!
gamma[$n _= Natp[1/2 + -$n]] : ((-2)^(1/2 + -$n)*Pi^(1/2))/(-2$n)!!
gamma[-1/2] : -2(Pi^(1/2))

poc_:Tier
poc[$a,$b] :: Prod[$a+%#i,{%#i,0,$b-1}]
poc[$a,0] : 1
poc[0,$b] : 0
poc[0,0] : 1

