Accord.Math.Gamma.LowerIncomplete C# (CSharp) Méthode

LowerIncomplete() public static méthode

Lower incomplete regularized gamma function P (a.k.a. the incomplete Gamma function).
This function is equivalent to P(x) = γ(s, x) / Γ(s).
public static LowerIncomplete ( double a, double x ) : double
a double
x double
Résultat double
        public static double LowerIncomplete(double a, double x)
        {
            if (a <= 0)
                return 1.0;

            if (x <= 0)
                return 0.0;

            if (x > 1.0 && x > a)
                return 1.0 - UpperIncomplete(a, x);

            double ax = a * Math.Log(x) - x - Log(a);

            if (ax < -Constants.LogMax)
                return 0.0;

            ax = Math.Exp(ax);

            double r = a;
            double c = 1.0;
            double ans = 1.0;

            do
            {
                r += 1.0;
                c *= x / r;
                ans += c;
            } while (c / ans > Constants.DoubleEpsilon);

            return ans * ax / a;
        }