/* nbdtrf.c
*
* Negative binomial distribution
*
*
*
* SYNOPSIS :
*
* int k , n ;
* float p , y , nbdtrf ( ) ;
*
* y = nbdtrf ( k , n , p ) ;
*
*
*
* DESCRIPTION :
*
* Returns the sum of the terms 0 through k of the negative
* binomial distribution :
*
* k
* - - ( n + j - 1 ) n j
* > ( ) p ( 1 - p )
* - - ( j )
* j = 0
*
* In a sequence of Bernoulli trials , this is the probability
* that k or fewer failures precede the nth success .
*
* The terms are not computed individually ; instead the incomplete
* beta integral is employed , according to the formula
*
* y = nbdtr ( k , n , p ) = incbet ( n , k + 1 , p ) .
*
* The arguments must be positive , with p ranging from 0 to 1 .
*
*
*
* ACCURACY :
*
* Relative error :
* arithmetic domain # trials peak rms
* IEEE 0 , 100 5000 1 . 5 e - 4 1 . 9 e - 5
*
*/
/* nbdtrcf.c
*
* Complemented negative binomial distribution
*
*
*
* SYNOPSIS :
*
* int k , n ;
* float p , y , nbdtrcf ( ) ;
*
* y = nbdtrcf ( k , n , p ) ;
*
*
*
* DESCRIPTION :
*
* Returns the sum of the terms k + 1 to infinity of the negative
* binomial distribution :
*
* inf
* - - ( n + j - 1 ) n j
* > ( ) p ( 1 - p )
* - - ( j )
* j = k + 1
*
* The terms are not computed individually ; instead the incomplete
* beta integral is employed , according to the formula
*
* y = nbdtrc ( k , n , p ) = incbet ( k + 1 , n , 1 - p ) .
*
* The arguments must be positive , with p ranging from 0 to 1 .
*
*
*
* ACCURACY :
*
* Relative error :
* arithmetic domain # trials peak rms
* IEEE 0 , 100 5000 1 . 4 e - 4 2 . 0 e - 5
*
*/
/*
Cephes Math Library Release 2 . 2 : July , 1992
Copyright 1984 , 1987 by Stephen L . Moshier
Direct inquiries to 30 Frost Street , Cambridge , MA 02140
*/
#include "mconf.h"
#ifdef ANSIC
float incbetf(float , float , float );
#else
float incbetf();
#endif
#ifdef ANSIC
float nbdtrcf( int k, int n, float pp )
#else
float nbdtrcf( k, n, pp )
int k, n;
double pp;
#endif
{
float dk, dn, p;
p = pp;
if ( (p < 0 .0 ) || (p > 1 .0 ) )
goto domerr;
if ( k < 0 )
{
domerr:
mtherr( "nbdtrf" , DOMAIN );
return ( 0 .0 );
}
dk = k+1 ;
dn = n;
return ( incbetf( dk, dn, 1 .0 - p ) );
}
#ifdef ANSIC
float nbdtrf( int k, int n, float pp )
#else
float nbdtrf( k, n, pp )
int k, n;
double pp;
#endif
{
float dk, dn, p;
p = pp;
if ( (p < 0 .0 ) || (p > 1 .0 ) )
goto domerr;
if ( k < 0 )
{
domerr:
mtherr( "nbdtrf" , DOMAIN );
return ( 0 .0 );
}
dk = k+1 ;
dn = n;
return ( incbetf( dn, dk, p ) );
}
Messung V0.5 in Prozent C=99 H=88 G=93
¤ Dauer der Verarbeitung: 0.10 Sekunden
(vorverarbeitet am 2026-06-14)
¤
*© Formatika GbR, Deutschland