pdtr.cpp

来自「非常著名的曲线拟合程序」· C++ 代码 · 共 172 行

CPP
172
字号
/*							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, 1995Copyright 1984, 1987, 1995 by Stephen L. Moshier*/#include "mconf.h"double pdtrc( int k, double m ){double v;if( (k < 0) || (m <= 0.0) )	{	mtherr( "pdtrc", 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) )	{	mtherr( "pdtr", 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) )	{	mtherr( "pdtri", DOMAIN );	return( 0.0 );	}v = k+1;v = igami( v, y );return( v );}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?