home *** CD-ROM | disk | FTP | other *** search
- stbnpb(n,p,m,p1)
-
- /*binomial probability distribution subroutine.*/
-
- int n,m;
- float p,*p1;
-
- {
-
- float n1,q1,t,xnp1,xk;
- int k;
- extern double pow();
-
- if (m >= n)
- {
- *p1 = 1.;
- return;
- }
-
- if (m < 0)
- {
- *p1 = 0.;
- return;
- }
-
- if (m == 0)
- {
- n1 = n;
- *p1 = pow(p,n1);
- return;
- }
-
- n1 = n;
- t = pow(p,n1);
- q1 = (1.0 - p)/p;
- *p1 = t;
- xnp1 = n + 1;
- xk = 0.0;
- for (k = 1; k <= m; k++)
- {
- xk += 1.0;
- t = t*q1*(xnp1 - xk)/xk;
- *p1 = *p1 + t;
- }
-
- }