1 /*
2 * $Id: prob.c 223 2006-08-17 06:19:38Z rgb $
3 *
4 * See copyright in copyright.h and the accompanying file COPYING
5 *
6 */
7 
8 /*
9  *========================================================================
10  * timing and utility sources.  tv_start and tv_stop are globals.
11  *========================================================================
12  */
13 
14 #include <dieharder/libdieharder.h>
15 
binomial(unsigned int n,unsigned int k,double p)16 double binomial(unsigned int n, unsigned int k, double p)
17 {
18 
19  double pnk;
20 
21  if(verbose > 10){
22    printf("binomial(): Making binomial p(%d,%d,%f)\n",n,k,p);
23  }
24 
25  pnk = gsl_sf_fact(n)*pow(p,(double)k)*pow((1.0-p),(double)(n-k))/
26              (gsl_sf_fact(k)*gsl_sf_fact(n-k));
27 
28  if(verbose > 10){
29    printf("binomial(): Made binomial p(%d,%d,%f) = %f\n",n,k,p,pnk);
30  }
31 
32  return(pnk);
33 
34 }
35 
36