swig/Lib/python/ccomplex.i
2004-03-21 23:26:18 +00:00

43 lines
982 B
OpenEdge ABL

#ifndef __python_ccomplex_i__
#define __python_ccomplex_i__
%include complex_common.i
/*
* C complex wrap
* ISO C99: 7.3 Complex arithmetic <complex.h>
*/
%{
#include <complex.h>
%}
/*
*** swig workaround ***
the %{}% around these typedefs must be removed once
swig parser supports 'float complex'...
*/
%{
typedef float complex float_complex;
typedef double complex double_complex;
%}
/* C complex constructor */
#define CCplxConst(r, i) ((r) + I*(i))
%swig_cplxflt_convn(float_complex, CCplxConst, creal, cimag);
%swig_cplxdbl_convn(double_complex, CCplxConst, creal, cimag);
/* declaring the typemaps */
%typemap_primitive(SWIG_TYPECHECK_CPLXFLT, float_complex);
%typemap_primitive(SWIG_TYPECHECK_CPLXDBL, double_complex);
/* empty complex. hack in the meantime */
%apply double_complex { complex };
%apply const double_complex& { const complex& };
%apply double_complex& { complex& };
%apply double_complex* { complex* };
#endif //__python_ccomplex_i__