**Subject: **0.65 HPUX/AIX update

**From: **Kurt Hornik (*Kurt.Hornik@ci.tuwien.ac.at*)

**Date: **Fri 23 Jul 1999 - 23:18:03 EST

**Next message:**Thomas Vogels: "Re: 0.65 HPUX/AIX update"**Previous message:**ripley@stats.ox.ac.uk: "Re: reluctant to read win95 directory (PR#231)"**Next in thread:**Thomas Vogels: "Re: 0.65 HPUX/AIX update"

Message-ID: <14232.27531.722976.358200@fangorn.ci.tuwien.ac.at>

The current situation is as follows.

AIX:

* I still need f77 for linking. Using ld with the suggested flags gives

a binary with `exec format error'. The problem seems to be with an

unreferenced __start.

* The floating point (finite|isnan) stuff is strange, but under control,

I think. Plain cc works, gcc has a problem and seems to need having

prototypes turned off for IEEE fp. (More below.)

* Apart from that, make check goes all the way through at least for me

under both cc/f77/make and gcc/f77/make.

HPUX:

* make check fails in arith-true.R. The problem is that

is.infinite(.Machine$double.base ^ .Machine$double.max.exp)

gives FALSE.

Interestingly

*> .Machine$double.base
*

[1] 2

*> .Machine$double.max.exp
*

[1] 1024

*> 2 ^ 1024
*

[1] 1.797693e+308

*> 2 ^ 1025
*

[1] 1.797693e+308

*> 2 ^ 2024
*

[1] 1.797693e+308

****

Here are some observations re IEEE fp. I have the following small test

program:

#include <math.h>

#include <stdio.h>

main () {

printf("1/0: %lf 0/0: %lf\n", 1./0., 0./0.);

printf("finite(1/0): %d\n", finite(1./0.));

printf("isnan(0/0): %d\n", isnan(0./0.));

printf("log(0.): %lf\n", log(0.));

return(0);

}

Under Linux, this gives:

1/0: Inf 0/0: NaN

finite(1/0): 0

isnan(0/0): -1

log(0.): -Inf

Under HPUX:

1/0: ++.000000 0/0: ?.000000

finite(1/0): 0

isnan(0/0): 1

log(0.): -179769313486231571000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.000000

This is also why log(0) is broken on HPUX. See also the above why make

check fails. However, the finite and isnan test is o.k.

Under AIX with cc:

1/0: INF 0/0: NaNQ

finite(1/0): 0

isnan(0/0): 1

log(0.): -INF

Under AIX with gcc:

1/0: INF 0/0: NaNQ

finite(1/0): 1

isnan(0/0): 1

log(0.): -INF

So there is a problem in the finite() test with gcc. It somehow is

related to the use of ANSI C prototypes, and disappears if we define

_NO_PROTO. I am in the process of adding this as a short term fix, but

we should think a bit more about that.

-k

-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-

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

_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._

**Next message:**Thomas Vogels: "Re: 0.65 HPUX/AIX update"**Previous message:**ripley@stats.ox.ac.uk: "Re: reluctant to read win95 directory (PR#231)"**Next in thread:**Thomas Vogels: "Re: 0.65 HPUX/AIX update"

*
This archive was generated by hypermail 2b25
: Tue 04 Jan 2000 - 14:16:06 EST
*