CSMSL.Chemistry.IsotopicDistribution.FactorLn C# (CSharp) Method

FactorLn() private static method

private static FactorLn ( int n ) : double
n int
return double
        private static double FactorLn(int n)
        {
            if (n < 0)
                throw new ArgumentException("n must be zero or greater");

            if (n <= 1)
                return 0;

            if (n > 50000)
                return n*Math.Log(n) - n + 0.5*Math.Log(6.28318530717959*n) + 0.08333333333333/n - 0.00333333333333/(n*n*n);

            while (_factorLnTop <= n)
            {
                int j = _factorLnTop++;
                factorLnArray[j + 1] = factorLnArray[j] + Math.Log(_factorLnTop);
            }
            return factorLnArray[n];
        }