lars@predict.com
2005-Jun-16 21:22 UTC
[Rd] DispatchOrEval missing in do_isfinite and do_isinfinite (PR#7951)
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
Reasonably Related Threads
- (PR#7951) DispatchOrEval missing in do_isfinite and do_isinfinite
- (PR#7951) DispatchOrEval missing in do_isfinite and
- Unexpected result after auto-attaching of the Matrix package
- Missing PROTECT in mkPRIMSXP ?
- (PR#1605)When dev.list() is NULL, dev.control() causes core dump
