Example #1
0
        // function
        public double value(int k)
        {
            if (k > n_)
            {
                return(0.0);
            }

            // p==1.0
            if (logP_.IsEqual(0.0))
            {
                return(k == n_ ? 1.0 : 0.0);
            }
            // p==0.0
            if (logOneMinusP_.IsEqual(0.0))
            {
                return(k == 0 ? 1.0 : 0.0);
            }
            return(Math.Exp(Utils.binomialCoefficientLn(n_, k) + k * logP_ + (n_ - k) * logOneMinusP_));
        }
Example #2
0
 public static double binomialCoefficient(int n, int k)
 {
     return(Math.Floor(0.5 + Math.Exp(Utils.binomialCoefficientLn(n, k))));
 }