Prof Brian Ripley wrote:
> 
> On Thu, 9 Oct 2003 [EMAIL PROTECTED] wrote:
> 
> > The Complex group generic for S4 methods is not working:
> >
> >  > setClass('foo', representation(z='complex'))
> > [1] "foo"
> >  > setMethod('Complex', 'foo', function(z) callGeneric([EMAIL PROTECTED]))
> > [1] "Complex"
> >  > Arg(new('foo', z=1+0i))
> > Error in Arg(new("foo", z = 1 + (0+0i))) :
> >          non-numeric argument to function
> >  >
> 
> > The fix is to add
> >
> >      if (DispatchGroup("Complex", call, op, args, env, &x))
> >       return x;
> >
> > near the beginning of do_cmathfuns in complex.c.

For arguments that might have methods, DispatchGroup first tries to
dispatch an S4 method, then if none is found goes on to look for an S3
method.

The choice would seem to be:  (1) allow both S4 and S3 group methods for
Complex (& revise current documentation); or (2) special-case the code
in DispatchGroup to skip S3 methods when argument `group' matches
"Complex".

Preferences?

John

> 
> I don't think that's right: that would set up an S3 group generic
> Complex, and there is no such thing.  That's not how S4 group generics are
> implemented, according to ?Complex.
> 
> --
> Brian D. Ripley,                  [EMAIL PROTECTED]
> Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
> University of Oxford,             Tel:  +44 1865 272861 (self)
> 1 South Parks Road,                     +44 1865 272866 (PA)
> Oxford OX1 3TG, UK                Fax:  +44 1865 272595
> 
> ______________________________________________
> [EMAIL PROTECTED] mailing list
> https://www.stat.math.ethz.ch/mailman/listinfo/r-devel

______________________________________________
[EMAIL PROTECTED] mailing list
https://www.stat.math.ethz.ch/mailman/listinfo/r-devel

Reply via email to