Charles R Harris wrote:
>
>
> On Mon, May 11, 2009 at 4:49 PM, Peter Wang <pw...@enthought.com
> <mailto:pw...@enthought.com>> wrote:
>
>     Hey guys,
>
>     I've got a small C extension that uses isnan() and (in numpy 1.1) had
>     been importing it from ufuncobject.h.  I see that it has now moved
>     into npy_math.h in 1.3.
>

isnan is a C99 function (more exactly a macro), so we should not have
defined it in the first place in public header, strictly speaking. The
replacement in numpy 1.3 is npy_nan (and for every math function,
replaced with the npy_ prefix).

>     My best idea right now is to simply do a numpy version check in my
>     setup.py, and hard-code some macros at the top of my C extension to
>     #include the appropriate headers for each version.
>
>     Any help or suggestions would be appreciated!
>

You could just reproduce the logic used for numpy 1.3: check whether
isnan is declared in math.h, and if not, use a replacement (the
replacement are in npy_math.h - they are guaranteed to work on most
platforms where numpy runs). It avoids hardcoding versions, which is
often problematic if you need to support many platforms.

cheers,

David
_______________________________________________
Numpy-discussion mailing list
Numpy-discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion

Reply via email to