From tlumley@u.washington.edu  Mon Jun 18 19:45:52 2001
From: tlumley@u.washington.edu (Thomas Lumley)
Date: Mon, 18 Jun 2001 11:45:52 -0700 (PDT)
Subject: [Rd] approxfun(*, ties=) returning "random" result (PR#986)
In-Reply-To: <200106181035.MAA09201@pubhealth.ku.dk>
Message-ID: <Pine.A41.4.33.0106181143310.108784-100000@homer10.u.washington.edu>

On Mon, 18 Jun 2001 maechler@stat.math.ethz.ch wrote:

>   Platforms  : SunOS and Linux, both using gcc 2.95.[23]
>   R versions : 1.2.3 and "R-devel"
>
> I came accross this when trying to debug a somewhat sub-optimal behavior of
> ecdf() from package stepfun.
> What happens is that  approxfun(*, ties = <function>)
> does not always return the same result for identical arguments.
> I tried "min", "max", and "mean" all of which are mentioned on the help page.
> From looking at both R and C code, I wonder if the bug is not even deep
> inside where .C(......) is handled, or somewhere else ``deep down''...


No, the problem is that `n', the length of the x and y vectors, is not
recomputed when the ties are removed.  Thus in your example two 9-element
vectors are passed down to a C routine that is told they are 16 elements
long. Bad.

I'll commit the obvious fix after make check.

	-thomas


-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-devel-request@stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._


[Rd] approxfun(*, ties=) returning "random" result (PR#986)
Thomas Lumley