# hist(1) results in a segmentation fault (at least on my machine) (PR#86)

**Martin Maechler
**
Martin Maechler <maechler@stat.math.ethz.ch>

*Wed, 23 Dec 1998 12:59:03 +0100*

I've fixed hist.default();
the case for hist(0) and hist(-1) also needed consideration.
Here is the patch I've committed:
cvs diff -bw -r1.2.2.1 src/library/base/R/hist.R
diff -b -w -r1.2.2.1 -r1.2.2.4
16,18c16,18
< use.br <- !missing(breaks) && length(breaks) > 1
< breaks <-
< if(use.br) sort(breaks)
---
>* use.br <- !missing(breaks) && (nB <- length(breaks)) > 1
*>* if(use.br)
*>* breaks <- sort(breaks)
*20,22c20,22
< rx <- range(x)
< pretty (rx + c(0, diff(rx)/1000),
< n = if(missing(breaks)) 1 + log2(n)
---
>* dx <- diff(rx <- range(x))
*>* nnb <-
*>* if(missing(breaks)) 1 + log2(n)
*27d26
< })
28a28
>* breaks <- pretty (rx + c(-1,1)/1000 * dx, n = nnb)
*29a30,35
>* if(nB == 1) {## search anew for breaks; dx is (always ?) 0.
*>* breaks <-
*>* if(abs(breaks) > 1e-20) sort(breaks * c(.8, 1.2)) else c(-.2,.2)
*>* nB <- length(breaks)
*>* }
*>* }
*
As you may see, I've also changed
from a potentially asymmetric rx + c(0, dx/1000)
to a symmetric interval rx + c(-1,1)/1000 * dx
Hope this okay even so it changes current behavior in some cases.
-------------
Merry Christmas to all!
I'm gone for the next few days..
Martin
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
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
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._