>>>>> "Robin" == Robin Hankin <[EMAIL PROTECTED]>
>>>>>     on Thu, 7 Sep 2006 12:18:51 +0100 writes:

    Robin> Thank you for this.   Minimal self-contained code included below.
    Robin> It is slightly modified from the original because brob objects have 
two
    Robin> slots, both of which are needed by c().

    Robin> [
    Robin> A "brob" obect is represents a real number with two slots: "x"  
holds  
    Robin> its natural
    Robin> logarithm; slot "positive" is Boolean, indicating whether the number 
 
    Robin> is positive.
    Robin> I want this because I need to manipulate numbers up to ~1e20000.
    Robin> The hard bit is addition:  log(exp(x) + exp(y)) == x + 
log1p(exp(y-x))
    Robin> ]

I know and I really like your idea.
However....

    Robin> It seemed to make sense to coerce non-brob arguments to brobs,
    Robin> then make cPair() use cPairOfBrobs() [with coerced arguments] in
    Robin> three of the cases, and c() for the fourth with signature c("ANY",  
    Robin> "ANY").

    Robin> Now below, JC states that  "cWithMethods() _replaces_ the ordinary c 
    Robin> (), it's not
    Robin> just a method for it".  Does this imply that one cannot  set up an R 
 
    Robin> package
    Robin> so that the following code:

    Robin> x <- as.brob(1:10)
    Robin> x1 <- c(1,x)
    Robin> x2 <- c(x,1)

    Robin> works as expected?  

No. There's no way {which does not break much other R code} currently.
More than two days ago, 
I had told you (and the R-devel readers) that you should look at
   help(cbind2)  {and said why}.
If you *really* look at it, and then 
think about or better study the code underlying
the      methods:::bind_activation(TRUE)
kludge,
you will shudder (and run :-) and probably understand that a
similar kludge for c() is not appropriate.

    Robin> Or is there some workaround that would enable me to do this?

well, yes: As John Chambers has tried to say, you have to teach
your users to use  cWithPairs() or c2() or myC() or c.() or any
reasonable name,  but not c().

Martin

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to