The R Project SVN R

Rev

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

Rev 69855 Rev 77685
Line 41... Line 41...
41
 
41
 
42
#ifdef IEEE_754
42
#ifdef IEEE_754
43
    if (ISNAN(x) || ISNAN(m) || ISNAN(n))
43
    if (ISNAN(x) || ISNAN(m) || ISNAN(n))
44
	return x + m + n;
44
	return x + m + n;
45
#endif
45
#endif
46
    if (m <= 0 || n <= 0) ML_ERR_return_NAN;
46
    if (m <= 0 || n <= 0) ML_WARN_return_NAN;
47
    if (x < 0.)  return(R_D__0);
47
    if (x < 0.)  return(R_D__0);
48
    if (x == 0.) return(m > 2 ? R_D__0 : (m == 2 ? R_D__1 : ML_POSINF));
48
    if (x == 0.) return(m > 2 ? R_D__0 : (m == 2 ? R_D__1 : ML_POSINF));
49
    if (!R_FINITE(m) && !R_FINITE(n)) { /* both +Inf */
49
    if (!R_FINITE(m) && !R_FINITE(n)) { /* both +Inf */
50
	if(x == 1.) return ML_POSINF; else return R_D__0;
50
	if(x == 1.) return ML_POSINF; else return R_D__0;
51
    }
51
    }