approximation for $\Gamma (\alpha) / \Gamma (\beta) $ where $\alpha$ and $\beta$ are arbitrary numbers in $R^{+}$ I am working on implementation of a machine learning method that in part of the algorithm I need to calculate the value of $\Gamma (\alpha) / \Gamma (\beta) $. $\alpha$ and $\beta$ are quite large numbers (i.e. bigger than 200) and it causes the python $gamma$ function to overflow. However, as the difference of $\alpha$ and $\beta$ is relatively small (e.g. $|\alpha-\beta|<5$), the final result is not such a big number and can be used for later purposes. So, I am trying to calculate (or approximate) the value of $\Gamma (\alpha) / \Gamma (\beta) $ without going through the calculation of $\Gamma (\alpha)$ and $\Gamma (\beta)$ directly. If $\alpha$ and $\beta$ were integers, the result would be simple equal to $\alpha . \alpha+2. \alpha+3... \beta-1$, But I can not imagine how this formula will be changed if we let $\alpha$ and $\beta$ to be real numbers.

I think that a good solution would be Stirling approximation that is to say $$\log(\Gamma(x))=x (\log (x)-1)+\frac{1}{2} \left(-\log \left({x}\right)+\log (2 \pi
   )\right)+\frac{1}{12 x}+O\left(\frac{1}{x^3}\right)$$ Now, consider $$y=\frac{\Gamma(\alpha)}{\Gamma(\beta)}\implies \log(y)=\log(\Gamma(\alpha))-\log(\Gamma(\beta))$$ Apply the formula (even with more terms) and use later $y=e^{\log(y)}$.
You are then able to control overflows and underflows if required.
By the way, why not to use in Python function lgamma(x) ?
