The R Project SVN R

Rev

Rev 70234 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 70234 Rev 77685
Line 32... Line 32...
32
double pnbinom(double x, double size, double prob, int lower_tail, int log_p)
32
double pnbinom(double x, double size, double prob, int lower_tail, int log_p)
33
{
33
{
34
#ifdef IEEE_754
34
#ifdef IEEE_754
35
    if (ISNAN(x) || ISNAN(size) || ISNAN(prob))
35
    if (ISNAN(x) || ISNAN(size) || ISNAN(prob))
36
	return x + size + prob;
36
	return x + size + prob;
37
    if(!R_FINITE(size) || !R_FINITE(prob))	ML_ERR_return_NAN;
37
    if(!R_FINITE(size) || !R_FINITE(prob))	ML_WARN_return_NAN;
38
#endif
38
#endif
39
    if (size < 0 || prob <= 0 || prob > 1)	ML_ERR_return_NAN;
39
    if (size < 0 || prob <= 0 || prob > 1)	ML_WARN_return_NAN;
40
 
40
 
41
    /* limiting case: point mass at zero */
41
    /* limiting case: point mass at zero */
42
    if (size == 0)
42
    if (size == 0)
43
        return (x >= 0) ? R_DT_1 : R_DT_0;
43
        return (x >= 0) ? R_DT_1 : R_DT_0;
44
 
44
 
Line 51... Line 51...
51
double pnbinom_mu(double x, double size, double mu, int lower_tail, int log_p)
51
double pnbinom_mu(double x, double size, double mu, int lower_tail, int log_p)
52
{
52
{
53
#ifdef IEEE_754
53
#ifdef IEEE_754
54
    if (ISNAN(x) || ISNAN(size) || ISNAN(mu))
54
    if (ISNAN(x) || ISNAN(size) || ISNAN(mu))
55
	return x + size + mu;
55
	return x + size + mu;
56
    if(!R_FINITE(mu))	ML_ERR_return_NAN;
56
    if(!R_FINITE(mu))	ML_WARN_return_NAN;
57
#endif
57
#endif
58
    if (size < 0 || mu < 0)	ML_ERR_return_NAN;
58
    if (size < 0 || mu < 0)	ML_WARN_return_NAN;
59
 
59
 
60
    /* limiting case: point mass at zero */
60
    /* limiting case: point mass at zero */
61
    if (size == 0)
61
    if (size == 0)
62
        return (x >= 0) ? R_DT_1 : R_DT_0;
62
        return (x >= 0) ? R_DT_1 : R_DT_0;
63
 
63