The R Project SVN R

Rev

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

Rev 7016 Rev 7133
Line 174... Line 174...
174
}
174
}
175
 
175
 
176
int R_finite(double x)
176
int R_finite(double x)
177
{
177
{
178
# ifndef HAVE_FINITE
178
# ifndef HAVE_FINITE
179
    return (x != R_NaReal);
179
    return (x != R_NaReal && x != R_PosInf && x != R_NegInf);
180
# else
180
# else
181
    int finite(double);
181
    int finite(double);
182
    return finite(x);
182
    return finite(x);
183
# endif
183
# endif
184
}
184
}
Line 197... Line 197...
197
    R_PosInf = 1.0/R_Zero_Hack;
197
    R_PosInf = 1.0/R_Zero_Hack;
198
    R_NegInf = -1.0/R_Zero_Hack;
198
    R_NegInf = -1.0/R_Zero_Hack;
199
#else
199
#else
200
    R_NaN = -DBL_MAX;
200
    R_NaN = -DBL_MAX;
201
    R_NaReal = R_NaN;
201
    R_NaReal = R_NaN;
202
    R_PosInf = -DBL_MAX;
202
    R_PosInf = DBL_MAX;
203
    R_NegInf = DBL_MAX;
203
    R_NegInf = -DBL_MAX;
204
#ifdef Unix
204
#ifdef Unix
205
    signal(SIGFPE, handle_fperror);
205
    signal(SIGFPE, handle_fperror);
206
#endif
206
#endif
207
#endif
207
#endif
208
}
208
}