我在C++中實現了一個任意的精度算術庫,並且在實現gamma函數時我幾乎陷入了困境。任意精度gamma函數
通過使用等價gamma(n) = gamma(n - 1) * n
和gamma(n) = gamma(n + 1)/n
,分別,我可以在對所有實數值x
範圍(1; 2]
獲得的有理數r
。我不知道如何評估gamma(r)
。對於Lanczos近似(https://en.wikipedia.org/wiki/Lanczos_approximation),我需要預先計算的值p,它恰巧計算出非整數值(?!)的階乘,並且不能用我當前的知識動態計算...預計算p的值不會在實現任意精度庫時非常有意義。
是否有算法在合理的時間內以任意精度計算gamma(r)
?謝謝你的幫助。
我認爲你已經學習http://functions.wolfram.com/GammaBetaErf/Gamma/introductions/Gamma/05/,但未能找到你需要的東西。 –
看起來它更像是數學而不是編程...也許,最好在那裏發表問題。 –
我也想看看MPFR的來源,看看他們使用什麼。 –