[Numpy-discussion] Recent work for branch cuts / C99 complex maths: problems on mingw

Pauli Virtanen pav@iki...
Tue Jul 29 06:21:08 CDT 2008

Tue, 29 Jul 2008 15:17:01 +0900, David Cournapeau wrote:

> Charles R Harris wrote:
>> On Mon, Jul 28, 2008 at 10:29 PM, David Cournapeau
>> <david@ar.media.kyoto-u.ac.jp <mailto:david@ar.media.kyoto-u.ac.jp>>
>> wrote:
>>     Hi,
>>        I was away during the discussion on the updated complex
>>        functions
>>     using C99, and I've noticed it breaks some tests on windows (with
>>     mingw;
>>     I have not tried with Visual Studio, but it is likely to make
>>     things even worse given C support from MS compilers):
>>     http://scipy.org/scipy/numpy/ticket/865
>>     Were those changes backported to 1.1.x ? If so, I would consider
>>     this as
>>     a release blocker,
>> The only changes to the computations were in acosh and asinh, which I
>> think should work fine. The tests check branch cuts and corner cases
>> among other things and are only in the trunk, so we aren't any worse
>> off than we were, we just have more failing tests to track down.
> Ok. I though there was more than just tests, but also C code
> modification. If not, it is certainly much less of a problem.

I'm not sure whether it makes sense to keep the C99 tests in SVN, even if 
marked as skipped, before the C code is fixed. Right now, it seems that 
we are far from C99 compliance with regard to corner-case value inf-nan 
behavior. (The branch cuts are mostly OK, though, and I suspect that what 
is currently non-C99 could be fixed by making nc_sqrt to handle negative 
zeros properly.)

Also, it appears that signaling and quiet NaNs (#IND, #QNAN) are printed 
differently on mingw32, so that the comparisons should be reworked to 
treat all nans the same, or the functions should be consistent in which 
flavor they return. I'm not sure whether IEEE 754 or C99 says something 
about what kind of NaNs functions should return. But I guess in practice 
this is not so important, I doubt anyone uses these for anything.

Pauli Virtanen

More information about the Numpy-discussion mailing list