Team Fortress 2 Source Code as on 22/4/2020
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
// -*- C++ -*- #ifndef SWIG_STD_COMPLEX_I_ #define SWIG_STD_COMPLEX_I_
#ifdef SWIG
%{ #include <complex> %}
namespace std { template <class T> class complex; %define specialize_std_complex(T) %typemap(in) complex<T> { if (PyComplex_Check($input)) { $1 = std::complex<T>(PyComplex_RealAsDouble($input), PyComplex_ImagAsDouble($input)); } else if (PyFloat_Check($input)) { $1 = std::complex<T>(PyFloat_AsDouble($input), 0); } else if (PyInt_Check($input)) { $1 = std::complex<T>(PyInt_AsLong($input), 0); } else { PyErr_SetString(PyExc_TypeError,"Expected a complex"); SWIG_fail; } } %typemap(in) const complex<T>& (std::complex<T> temp) { if (PyComplex_Check($input)) { temp = std::complex<T>(PyComplex_RealAsDouble($input), PyComplex_ImagAsDouble($input)); $1 = &temp; } else if (PyFloat_Check($input)) { temp = std::complex<T>(PyFloat_AsDouble($input), 0); $1 = &temp; } else if (PyInt_Check($input)) { temp = std::complex<T>(PyInt_AsLong($input), 0); $1 = &temp; } else { PyErr_SetString(PyExc_TypeError,"Expected a complex"); SWIG_fail; } } %typemap(out) complex<T> { $result = PyComplex_FromDoubles($1.real(), $1.imag()); } %typemap(out) const complex<T> & { $result = PyComplex_FromDoubles($1->real(), $1->imag()); }
%enddef specialize_std_complex(double); specialize_std_complex(float); } #endif // SWIG
#endif //SWIG_STD_COMPLEX_I_
|