%module ccomplextest %include %{ #include #if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199001L #define HAS_C99_COMPLEX_FOR_TESTING 1 #else /* c99 complex not supported - super hack tests to just test plain floating point numbers */ /* some pre c99 compilers (gcc-4.x) don't define _Complex but do define complex */ #define _Complex #if !defined(complex) # define complex #endif #define conj #define conjf #define creal #define cimag #if defined(I) # undef I # define I 1 #endif #define HAS_C99_COMPLEX_FOR_TESTING 0 #endif %} %inline { int has_c99_complex(void) { return HAS_C99_COMPLEX_FOR_TESTING; } complex double Conj(complex double a) { return conj(a); } complex float Conjf(complex float a) { return conjf(a); } double complex Conj1(double complex a) { return conj(a); } float complex Conjf1(float complex a) { return conjf(a); } _Complex double Conj2(_Complex double a) { return conj(a); } _Complex float Conjf2(_Complex float a) { return conjf(a); } double _Complex Conj3(double _Complex a) { return conj(a); } float _Complex Conjf3(float _Complex a) { return conjf(a); } }