From ggrothendieck at gmail.com  Thu Aug 14 18:59:50 2008
From: ggrothendieck at gmail.com (Gabor Grothendieck)
Date: Thu, 14 Aug 2008 12:59:50 -0400
Subject: [Rd] extending the derivs table/fools rushing in
In-Reply-To: <48A461B1.4060709@zoology.ufl.edu>
References: <48A461B1.4060709@zoology.ufl.edu>
Message-ID: <971536df0808140959g29f6aefemdeabfef33ff58367@mail.gmail.com>

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
>
>



[Rd] extending the derivs table/fools rushing in
Gabor Grothendieck