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