[Rd] DispatchOrEval missing in do_isfinite and do_isinfinite (PR#7951)
lars@predict.com
lars at predict.com
Thu Jun 16 23:22:05 CEST 2005
Full_Name: Lars Hansen
Version: 2.1.0
OS: SunOS 5.8
Submission from: (NULL) (207.66.36.189)
Hi,
S4 method displacth does not work for the two generic functions 'is.finite' and
'is.infinite'. It turns out that the C functions 'do_isfinite' and
'do_isinfinite' in src/main/coerce.c are missing a call to 'DispatchOrEval' (see
do_isnan). Added in the call fixed the problem. My functions no look like this:
Form coerce.c:
SEXP do_isfinite(SEXP call, SEXP op, SEXP args, SEXP rho)
{
SEXP ans, x, names, dims;
int i, n;
if (DispatchOrEval(call, op, "is.finite", args, rho, &ans, 1, 1))
return(ans);
checkArity(op, args);
...
SEXP do_isinfinite(SEXP call, SEXP op, SEXP args, SEXP rho)
{
SEXP ans, x, names, dims;
double xr, xi;
int i, n;
if (DispatchOrEval(call, op, "is.infinite", args, rho, &ans, 1, 1))
return(ans);
checkArity(op, args);
...
Thanks you,
Lars
More information about the R-devel
mailing list