Example #1
0
        /// <summary>
        /// Returns a probability based on those given in 3.8
        /// </summary>
        /// <param name="u"></param>
        /// <param name="eta"></param>
        /// <returns></returns>
        private double probability(int u, double eta)
        {
            int    l;
            double sum, p;

            if (u == 0)
            {
                p = Math.Exp(-eta);
            }
            else
            {
                sum = 0.0;
                for (l = 1; l <= u; l++)
                {
                    sum += Math.Exp(-eta - u * Math.Log(2) + l * Math.Log(eta) - Cephes.lgam(l + 1) + Cephes.lgam(u) - Cephes.lgam(l) - Cephes.lgam(u - l + 1));
                }
                p = sum;
            }
            return(p);
        }