-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathstd_complex.i
43 lines (33 loc) · 836 Bytes
/
std_complex.i
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
namespace std {
%typemap(csclassmodifiers) complex "public partial class";
}
%{
#include <complex>
%}
namespace std {
template<class T>
class complex {
public:
complex(T r, T i);
complex(const complex<T> & other);
T imag();
T real();
%rename(Add) operator+=;
%rename(Substract) operator-=;
%rename(Multiply) operator*=;
%rename(Divide) operator/=;
%extend {
complex<T>& Multiply(T r){
return self->operator*= ( r );
}
}
complex<T>& operator+= (const complex<T>& rhs);
complex<T>& operator-= (const complex<T>& rhs);
complex<T>& operator*= (const complex<T>& rhs);
complex<T>& operator/= (const complex<T>& rhs);
};
}
%template(Complex) std::complex<double>;
%{
typedef std::complex<double> Complex ;
%}