2

私は C++ で任意精度の算術ライブラリを実装していますが、ガンマ関数を実装するときにかなり行き詰まっています。

同値gamma(n) = gamma(n - 1) * nとをそれぞれ使用することで、すべての実数値の範囲内gamma(n) = gamma(n + 1) / nの有理数を取得できます。r(1; 2]x

しかし、評価の仕方がわかりませんgamma(r)。ランチョス近似 ( https://en.wikipedia.org/wiki/Lanczos_approximation ) の場合、たまたま非整数値の階乗を計算する (?!) 事前計算値 p が必要であり、動的に計算することはできません。現在の知識...任意精度ライブラリを実装する場合、pの値を事前に計算しても意味がありません。

gamma(r)妥当な時間内に任意の精度で計算するアルゴリズムはありますか? ご協力いただきありがとうございます。

4

2 に答える 2