#fallingfactorial(m_,n_) := If(m>=0 or m>=n or m==n, gamma(m+1)/gamma(m-n+1), If(m<0, if(n==0.5,i,(-1)^n)*gamma(n-m)/gamma(-m) ));
#fallingfactorial(m_,n_) := If(m>=0 or m>=n or m==n, m!/(m-n)!, (-1)^n*(n-m-1)!/(-m-1)! );

fallingfactorial(m_,n_) := if(n==1,m, If(m<= -1 or m-n<= -1,(-1)^n*Gamma(n-m)/Gamma(-m), m!/(m-n)! ));
#fallingfactorial(m_,0) :=1;
#fallingfactorial(m_,1) :=m;
#fallingfactorial(1,n_) :=if(n==1,1, 0);