IEEE_754 logic

Peter Dalgaard BSA p.dalgaard@biostat.ku.dk
15 Oct 1999 17:03:54 +0200


Thomas Hoffmann <hoffmann@ehmgs2.et.tu-dresden.de> writes:

> Can anybody of the architects of R enlighten me about the reasoning behind the selection of the IEEE 754 
> mode for the building of R, please?
> 
> Special points of interest are:
> 
> 1. The selection seems to be based on the availability of isnan() and finite(). Is this a common way 
> to test for IEEE 754?
> 
> 2. The C9x draft introduces isfinite() instead of finite() (and as I see, some systems, e.g. the 
> macintosh, use this naming already). This is a deviation from the old ieee754 C mapping. I do not 
> know, where we are in this transformation process now (most compilers seem to use finite(), still).
> 
> 3. The C9x draft introduces the is*() functionality under the name of "classification MACROS". If an 
> implementation implements this standard, autoconf misses isnan() and isfinite().
> 

Thanks for your comments. If you have suggestions for a safer way of
detecting the functionality in a platform-dependent way, we'd be happy
to know about it. However, one has to be careful; e.g., Solaris has
only finite() and no isfinite(), linux has both. There seems to be
almost no consistency in how different systems signal the precence of
IEEE compatibility. 

The heuristics in autoconf are more or less lifted  off of other
packages like Octave (right, Kurt?) and are by no means failsafe. 

I don't think it is a big deal to insert a check for finite() *or*
isfinite(), if that helps with some of your problems.

-- 
   O__  ---- Peter Dalgaard             Blegdamsvej 3  
  c/ /'_ --- Dept. of Biostatistics     2200 Cph. N   
 (*) \(*) -- University of Copenhagen   Denmark      Ph: (+45) 35327918
~~~~~~~~~~ - (p.dalgaard@biostat.ku.dk)             FAX: (+45) 35327907
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
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
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._