저는 C++에서 임의의 정밀도 산술 라이브러리를 구현하고 있습니다. 감마 함수를 구현할 때 꽤 당황 스럽습니다. 균등 한 gamma(n) = gamma(n - 1) * n
및 gamma(n) = gamma(n + 1)/n
사용함으로써임의 정밀도 감마 함수
각각 I는 모두 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의 소스를 조사 할 것입니다. –