[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