On 2009-07-01, Charles R Harris <[email protected]> wrote:
> On Wed, Jul 1, 2009 at 1:59 AM, David Cournapeau 
> <[email protected]> wrote:
>>    I would like to add an explicit configuration test to check that our
>> complex type is compatible with the C99 complex type (when available).
>> Is this ok?

Seems OK to me.

>>    As currently defined, complex c types (npy_cfloat, etc...) are not
>> defined in a way such as they are binary compatible with the C99 complex
>> type. Strictly speaking, packing the complex type is an ABI break, but
>> we already make the assumption in ufunc, so we would have wrong
>> results/crashes currently if it were not packed, so I believe the check

Is there a reason not to pack our complex number struct? I think 
if we bump the ABI version, changing this should be OK.

>> is harmless by itself. The rationale is that I would like to add support
>> for complex math in npy_math (cabs, cexp, etc...). As I would like to
>> use the C99 complex type (when available), this requires that numpy
>> complex type is ABI compatible with C99 type.

Useful goal: this would allow using npy_math functions as a 
compatibility fallback when the C99 ones are not available.

> What do you mean by "packing" ?

C99 defines a complex type such that the real and imag parts are 
packed as in an array:

        double complex t;
        real = ((double*)&t)[0];
        imag = ((double*)&t)[1];

Numpy defines this type as a struct, which may imply additional 
padding.

-- 
Pauli Virtanen

_______________________________________________
Numpy-discussion mailing list
[email protected]
http://mail.scipy.org/mailman/listinfo/numpy-discussion

Reply via email to