The R Project SVN R

Rev

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

Rev 68947 Rev 77685
Line 27... Line 27...
27
    
27
    
28
#ifdef IEEE_754
28
#ifdef IEEE_754
29
    if (ISNAN(p) || ISNAN(df1) || ISNAN(df2) || ISNAN(ncp))
29
    if (ISNAN(p) || ISNAN(df1) || ISNAN(df2) || ISNAN(ncp))
30
	return p + df1 + df2 + ncp;
30
	return p + df1 + df2 + ncp;
31
#endif
31
#endif
32
    if (df1 <= 0. || df2 <= 0. || ncp < 0) ML_ERR_return_NAN;
32
    if (df1 <= 0. || df2 <= 0. || ncp < 0) ML_WARN_return_NAN;
33
    if (!R_FINITE(ncp)) ML_ERR_return_NAN;
33
    if (!R_FINITE(ncp)) ML_WARN_return_NAN;
34
    if (!R_FINITE(df1) && !R_FINITE(df2)) ML_ERR_return_NAN;
34
    if (!R_FINITE(df1) && !R_FINITE(df2)) ML_WARN_return_NAN;
35
    R_Q_P01_boundaries(p, 0, ML_POSINF);
35
    R_Q_P01_boundaries(p, 0, ML_POSINF);
36
 
36
 
37
    if (df2 > 1e8) /* avoid problems with +Inf and loss of accuracy */
37
    if (df2 > 1e8) /* avoid problems with +Inf and loss of accuracy */
38
	return qnchisq(p, df1, ncp, lower_tail, log_p)/df1;
38
	return qnchisq(p, df1, ncp, lower_tail, log_p)/df1;
39
 
39