Ich bin eine beliebige arithmetische Bibliothek mit beliebiger Genauigkeit in C++ implementieren und ich bin ziemlich stecken bei der Implementierung der Gamma-Funktion.Arbitrary Gamma-Funktion
Durch die Äquivalenzen mit gamma(n) = gamma(n - 1) * n
und gamma(n) = gamma(n + 1)/n
bzw. kann ich eine rationale Zahl r
im Bereich (1; 2]
für alle reellen Werte x
erhalten.
Allerdings kann ich gamma(r)
nicht bewerten. Für die Lanczos-Approximation (https://en.wikipedia.org/wiki/Lanczos_approximation) benötige ich vorberechnete Werte p, die zufällig eine Fakultät eines nicht ganzzahligen Wertes (?!) Berechnen und nicht dynamisch mit meinem derzeitigen Wissen berechnet werden können ... Vorberechnung von Werten für p würde nicht Sinnvoll bei der Implementierung einer beliebigen Präzisionsbibliothek.
Gibt es Algorithmen, die gamma(r)
in einer angemessenen Zeit mit beliebiger Genauigkeit berechnen? Danke für Ihre Hilfe.
Ich nehme an, Sie haben http://functions.wolfram.com/GammaBetaErf/Gamma/introductions/Gamma/05/ studiert und nicht gefunden, was Sie brauchen. –
Sieht so aus, als ob es mehr mit Mathe als mit Programmierung zu tun hat ... Vielleicht ist es besser, dort eine Frage zu stellen. –
Ich würde auch in die Quelle von MPFR schauen, um zu sehen, was sie verwenden. –