axis() produces junk on DEC alpha (PR#274)

ripley@stats.ox.ac.uk ripley@stats.ox.ac.uk
Mon, 13 Sep 1999 08:34:45 +0200 (MET DST)


On Mon, 13 Sep 1999 albrecht.gebhardt@uni-klu.ac.at wrote:

> Full_Name: Albrecht Gebhardt
> Version: 0.65.0
> OS: Digital Unix 4.0E
> Submission from: (NULL) (212.17.104.62)
> 
> 
> Plottimg on the Alpha stopped working with 0.65.0.
> 
> The tickmarks have a length of -Inf and go across the whole 
> plot.

I've seen the problem on Solaris when make decided to re-configure
and so parts of R got compiled with different compiler options (as under
re-configuration different environmental variables were set). But for me
the problem seems to be getting NaN.

> A first solution is the following patch:
> 
> --- src/main/plot.c.alpha-patch Mon Sep 13 01:37:11 1999
> +++ src/main/plot.c     Mon Sep 13 01:58:16 1999
> @@ -832,7 +832,7 @@
>         }
>         dd->gp.col = fg;
>         GLine(REAL(at)[0], y, REAL(at)[n - 1], y, USER, dd);
> -       if (R_FINITE(dd->gp.tck)) {
> +       if (R_FINITE(dd->gp.tck) && !(ISNAN(dd->gp.tck))) {
>             /* The S way of doing ticks */
>             double y0, y1;
>             if (dd->gp.tck > 0.5) {

....

I'm puzzled.  Are you saying -Inf passes R_FINITE and passes ISNAN? (Wow!,
if so,) In any case, let us try and fix the macros (which crop up in many
places) not two instances.

There are too many options in Arith.h to guess: can you please tell us
what path is being taken (HAVE_FINITE, IEEE_754, FINITE_BROKEN, ...).

I believe this can all be tested from interpreted R code. I believe you
should get  (is.na(c(2.0, Inf, -Inf, NaN, NA)) etc)
           2.0 Inf -Inf NaN NA
is.na       F   F    F   T   T
is.finite   T   F    F   F   F
is.infinite F   T    T   F   F
is.nan      F   F    F   T   F

(Martin: I can't see this is checked in the tests explicitly. Should we add
it?)  Note though that is.na tests ISNAN and is.nan tests R_IsNaN, but
is.finite does test R_FINITE.

-- 
Brian D. Ripley,                  ripley@stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272860 (secr)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595


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