/* pdtr.c
*
* Poisson distribution
*
*
*
* SYNOPSIS:
*
* int k;
* double m, y, pdtr();
*
* y = pdtr( k, m );
*
*
*
* DESCRIPTION:
*
* Returns the sum of the first k terms of the Poisson
* distribution:
*
* k j
* -- -m m
* > e --
* -- j!
* j=0
*
* The terms are not summed directly; instead the incomplete
* gamma integral is employed, according to the relation
*
* y = pdtr( k, m ) = igamc( k+1, m ).
*
* The arguments must both be positive.
*
*
*
* ACCURACY:
*
* See igamc().
*
*/
/* pdtrc()
*
* Complemented poisson distribution
*
*
*
* SYNOPSIS:
*
* int k;
* double m, y, pdtrc();
*
* y = pdtrc( k, m );
*
*
*
* DESCRIPTION:
*
* Returns the sum of the terms k+1 to infinity of the Poisson
* distribution:
*
* inf. j
* -- -m m
* > e --
* -- j!
* j=k+1
*
* The terms are not summed directly; instead the incomplete
* gamma integral is employed, according to the formula
*
* y = pdtrc( k, m ) = igam( k+1, m ).
*
* The arguments must both be positive.
*
*
*
* ACCURACY:
*
* See igam.c.
*
*/
/* pdtri()
*
* Inverse Poisson distribution
*
*
*
* SYNOPSIS:
*
* int k;
* double m, y, pdtr();
*
* m = pdtri( k, y );
*
*
*
*
* DESCRIPTION:
*
* Finds the Poisson variable x such that the integral
* from 0 to x of the Poisson density is equal to the
* given probability y.
*
* This is accomplished using the inverse gamma integral
* function and the relation
*
* m = igami( k+1, y ).
*
*
*
*
* ACCURACY:
*
* See igami.c.
*
* ERROR MESSAGES:
*
* message condition value returned
* pdtri domain y < 0 or y >= 1 0.0
* k < 0
*
*/
/*
Cephes Math Library Release 2.3: March, 1995
Copyright 1984, 1987, 1995 by Stephen L. Moshier
*/
#include "mconf.h"
#include "cephes.h"
double pdtrc(int k,double m )
{
double v;
if( (k < 0) || (m <= 0.0) ) {
char s[]="pdtrc";
mtherr(s, DOMAIN );
return( 0.0 );
}
v = k+1;
return( igam( v, m ) );
}
double pdtr(int k,double m )
{
double v;
if( (k < 0) || (m <= 0.0) )
{
char s[]="pdtr";
mtherr(s, DOMAIN );
return( 0.0 );
}
v = k+1;
return( igamc( v, m ) );
}
double pdtri(int k,double y )
{
double v;
if( (k < 0) || (y < 0.0) || (y >= 1.0) )
{
char s[]="pdtri";
mtherr(s, DOMAIN );
return( 0.0 );
}
v = k+1;
v = igami( v, y );
return( v );
}
syntax highlighted by Code2HTML, v. 0.9.1