ctypes and C99 complex numbers
"Martin v. Löwis"
martin at v.loewis.de
Thu Aug 16 13:21:12 EDT 2007
Thomas Heller schrieb:
> Eugen Wintersberger schrieb:
>> Hi there
>> I want to use ctypes in connection with C functions that use complex
>> datatypes defined in the C99 standard. Does someone know a simple way
>> how to implement this? Are there any plans to integrate the C99 complex
>> data types in the ctypes module?
>
> I have investigated the complex data types a bit and came to the conclusion
> that libffi (which ctypes is based upon) would have to be extended to
> support these complex types.
I think that depends on what kind of support you want to provide. For
passing _Complex values as parameters or receiving them as results,
it's certainly necessary to have libffi support.
OTOH, if you only want to support _Complex as the field type of a
struct or an array, you can do so without libffi support. To write
a field at address p with the values r and i, do
*(double complex*)p = r * i*I;
To fetch the real and imaginary part of a field at address p, do
creal(*(double complex*)p)
cimag(*(double complex*)p)
Likewise for float complex values (and long double complex, if you
want to support that).
Whether such a limited version would be of any use (e.g. to the OP),
I don't know.
Regards,
Martin
More information about the Python-list
mailing list