[Numpy-discussion] Test error with ATLAS, Windows 64 bit

Matthew Brett matthew.brett at gmail.com
Thu Apr 24 01:54:20 EDT 2014


Hi,

On Wed, Apr 23, 2014 at 2:27 PM, Julian Taylor
<jtaylor.debian at googlemail.com> wrote:
> On 23.04.2014 21:25, Matthew Brett wrote:
>> Hi,
>>
>> On Tue, Apr 15, 2014 at 12:34 AM, Julian Taylor
>> <jtaylor.debian at googlemail.com> wrote:
>>> On Tue, Apr 15, 2014 at 4:30 AM, Matthew Brett <matthew.brett at gmail.com> wrote:
>>>>
>>>> It looks as though mingw-w64 is at fault, and I was confused (still
>>>> am) because of the different behavior with double and a constant:
>>>>
>>>> #include <stdio.h>
>>>> #include <math.h>
>>>>
>>>> int main() {
>>>>     double z, i = -0.0;
>>>>     printf("With double %f=%f, with constant=%f\n",
>>>>    i, expm1(i), expm1(-0.));
>>>> }
>>>>
>>>> gives:
>>>>
>>>> With double -0.000000=0.000000, with constant=-0.000000
>>>>
>>>> That was ugly to track down.
>>>>
>>>> What is the right way to work round this (using the numpy version
>>>> instead of the system version I suppose)?
>>>>
>>>
>>> The right way is to file a bug at mingw and get it fixed at the source.
>>
>> http://sourceforge.net/p/mingw-w64/code/6594/
>
> great thanks for reporting it.
>
>>
>>> Additionally as this time npymath seems to be better (thats 3 bugs in
>>> npymath vs 1 in mingw on my scoreboard) one could use the mingw
>>> preprocessor define instead of HAVE_EXP1M to select this function from
>>> npymath.
>>
>> Sorry to be slow - could you unpack what you mean in this paragraph?
>> Is there a way to force use of the numpy version of the function using
>> environment variables or similar?
>>
>
> I mean something along the line of attached patch, maybe you can try it.
> If it works I can file a numpy PR.

Thanks for the patch - I see what you mean now.

I wonder if there should be some mechanism by which different
compilers can set these?  What was the issue with MSVC for example -
does it need something like this too?

Cheers,

Matthew



More information about the NumPy-Discussion mailing list