[Numpy-discussion] How to include numpy headers in C across versions 1.1, 1.2, and 1.3
Charles R Harris
charlesr.harris@gmail....
Mon May 11 19:11:30 CDT 2009
On Mon, May 11, 2009 at 4:49 PM, Peter Wang <pwang@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.
>
> What is the best way to ensure that I can reliably include this
> function across versions 1.1, 1.2, and 1.3? (Checking
> NPY_FEATURE_VERSION won't work, since it did not change from 1.2 to
> 1.3, although the location of the function definition did.)
>
> 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!
>
Oops, looks like we broke the ABI ;) For numpy itself we should fix things
by including npy_math in ufuncobject.h. Looks like a fixup release might be
in offing here. Otherwise there might be a workaround that would work.
<looks> In 1.1.x it looks like isnan is defined in ufuncobject iff it is
compiled on windows. Try
#include ufuncobject.h
#ifdef _MSC_VER
#ifndef isnan
#define isnan(x) ((x) != (x))
#endif
#endif
Chuck
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.scipy.org/pipermail/numpy-discussion/attachments/20090511/92585fce/attachment.html
More information about the Numpy-discussion
mailing list