Re: [R] Cannot call R's ISNAN() from a C code in >1.7 versions.

About this list Date view Thread view Subject view Author view Attachment view

From: Paul Y. Peng (
Date: Tue 25 May 2004 - 04:46:49 EST

Message-id: <>

Prof Brian Ripley wrote:
> First, there are no versions 1.7, 1.8 and 1.9.

Sorry for my misuse of the version numbers.

> Was your version of R compiled against MSVC++ 6.0? The binary on CRAN was
> not, and binaries for different versions of R were compiled with different
> versions of MinGW. The entry point isnan is part of the statically linked
> runtime on modern MinGW.

I used the binary on CRAN.

> MSVC++ 6.0 does supply _isnan (as it really should as it is part of the
> C99 ISO standard), and you need to link against it appropriately. Hint:
> it may have an extra underline, since it seems it is known to C as _isnan.
> You may need to add
> #undef ISNAN
> #define ISNAN(x) _isnan(x)

Many thanks for this suggestion. It works, as always. The extra
underline is required.

> We don't support adding extensions to R using a different compiler to the
> one used to build R. Changes already made for future releases of R will
> make this less likely to work in R 2.0.x.

I wish that the R API entry points documented in "Writing R Extensions"
be supported in the future versions of R, because it will make programs
built with R more portable than directly using compiler-specific
functions, such as testing and generating the IEEE 754 special values.
The existing entry points have saved me trouble to chase these values
whenever I moved to an environment with a different compiler.

Thank you Brian for your help.

______________________________________________ mailing list
PLEASE do read the posting guide!

About this list Date view Thread view Subject view Author view Attachment view

This archive was generated by hypermail 2.1.3 : Mon 31 May 2004 - 23:05:12 EST