gamma-function(x) using Lanczos approximation formula - Java java.lang

Java examples for java.lang:Math Function

Description

gamma-function(x) using Lanczos approximation formula

Demo Code


//package com.java2s;

import static java.lang.Math.*;

public class Main {
    private static final double sqrt2Pi = sqrt(2 * PI);

    /**/* ww w .j a v a2  s .c  o m*/
     * gamma-function(x) using Lanczos approximation formula
     * @url http://en.wikipedia.org/wiki/Gamma_function
     */
    public static double gamma(double x) {
        return exp(logGamma(x));
    }

    private static double logGamma(double x) {
        double tmp = (x - 0.5) * log(x + 4.5) - (x + 4.5);
        double ser = 1.0 + 76.18009173 / (x + 0) - 86.50532033 / (x + 1)
                + 24.01409822 / (x + 2) - 1.231739516 / (x + 3)
                + 0.00120858003 / (x + 4) - 0.00000536382 / (x + 5);
        return tmp + log(ser * sqrt2Pi);
    }
}

Related Tutorials