[Rd] extending the derivs table/fools rushing in

Ben Bolker bolker at zoology.ufl.edu
Thu Aug 14 19:07:52 CEST 2008


 http://www.zoology.ufl.edu/bolker/deriv_patch2.txt

 has this change added as well.
 However, I'm not as confident that this is the right thing
to do?  Should curly brackets even be appearing in mathematical
expressions?

  Ben

Gabor Grothendieck wrote:
> While you are at it could you add { to the
> table so that this works:
> 
>> # this is ok
>> f <- function(x) x*x
>> D(body(f), "x")
> x + x
> 
>> # but not g which is same as f
>> # except it has { ... } surrounding its body
>> g <- function(x) { x*x }
>> D(body(g), "x")
> Error in D(body(g), "x") : Function '`{`' is not in the derivatives table
> 
> 
> 2008/8/14 Ben Bolker <bolker at zoology.ufl.edu>:
>>  I added "plogis" to the derivative table in the
>> development version of R; the patch against yesterday's
>> R-devel src/deriv/main.c is available at
>> http://www.zoology.ufl.edu/bolker/deriv_patch.txt .
>>
>>  I pretty much followed the framework of the other symbols;
>> here was my incantation
>>
>> -       } else if (CAR(expr) == PlogisSymbol) {
>> -           ans = simplify(TimesSymbol,
>> -                          PP_S(TimesSymbol,
>> -                               PP_S2(ExpSymbol,
>> -                                  PP_S2(MinusSymbol,CADR(expr))),
>> -                               PP_S(PowerSymbol,
>> -                                    PP_S(PlusSymbol,
>> -                                         Constant(1.),
>> -                                         PP_S2(ExpSymbol,
>> -                                            PP_S2(MinusSymbol,CADR(expr)))),
>> -                                    Constant(-2.))),
>> -                          PP(D(CADR(expr),var)));
>> -           UNPROTECT(8);
>>
>> It seems to work:
>>
>>> D(quote(plogis(a)),"a")
>> exp(-a) * (1 + exp(-a))^-2
>>> D(quote(plogis(a+b*x)),"x")
>> exp(-(a + b * x)) * (1 + exp(-(a + b * x)))^-2 * b
>>
>>  Any thoughts?  I'm sure there's a cleverer way to do this ...
>>
>>  Ben Bolker
>>
>>  PS I get a minor build error at the end of the compilation
>> (on Ubuntu 8.10):
>>
>> make[2]: *** No rule to make target `VR.ts', needed by
>> `stamp-recommended'.  Stop.
>> make[2]: Leaving directory
>> `/usr/local/src/R/R-devel/src/library/Recommended'
>> make[1]: *** [recommended-packages] Error 2
>> make[1]: Leaving directory
>> `/usr/local/src/R/R-devel/src/library/Recommended'
>> make: *** [stamp-recommended] Error 2
>>
>>  ... don't know if that is important or not.
>>
>>
>>
>> ______________________________________________
>> R-devel at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-devel
>>
>>


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 252 bytes
Desc: OpenPGP digital signature
URL: <https://stat.ethz.ch/pipermail/r-devel/attachments/20080814/cd02413b/attachment.bin>


More information about the R-devel mailing list