0.65 HPUX/AIX update
Kurt Hornik
Kurt.Hornik@ci.tuwien.ac.at
Fri, 23 Jul 1999 15:18:03 +0200 (CEST)
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
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._