⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.91
Server IP:
157.245.101.34
Server:
Linux skvinfotech-website 5.4.0-131-generic #147-Ubuntu SMP Fri Oct 14 17:07:22 UTC 2022 x86_64
Server Software:
Apache/2.4.41 (Ubuntu)
PHP Version:
7.4.33
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
usr
/
share
/
swig4.0
/
csharp
/
View File Name :
std_complex.i
/* ----------------------------------------------------------------------------- * std_complex.i * * Typemaps for handling std::complex<float> and std::complex<double> as a .NET * System.Numerics.Complex type. Requires .NET 4 minimum. * ----------------------------------------------------------------------------- */ %{ #include <complex> %} %fragment("SwigSystemNumericsComplex", "header") { extern "C" { // Identical to the layout of System.Numerics.Complex, but does assume that it is // LayoutKind.Sequential on the managed side struct SwigSystemNumericsComplex { double real; double imag; }; } SWIGINTERN SwigSystemNumericsComplex SwigCreateSystemNumericsComplex(double real, double imag) { SwigSystemNumericsComplex cpx; cpx.real = real; cpx.imag = imag; return cpx; } } namespace std { %naturalvar complex; template<typename T> class complex { public: complex(T re = T(), T im = T()); }; } %define SWIG_COMPLEX_TYPEMAPS(T) %typemap(ctype, fragment="SwigSystemNumericsComplex") std::complex<T>, const std::complex<T> & "SwigSystemNumericsComplex" %typemap(imtype) std::complex<T>, const std::complex<T> & "System.Numerics.Complex" %typemap(cstype) std::complex<T>, const std::complex<T> & "System.Numerics.Complex" %typemap(in) std::complex<T> %{$1 = std::complex< double >($input.real, $input.imag);%} %typemap(in) const std::complex<T> &($*1_ltype temp) %{temp = std::complex< T >((T)$input.real, (T)$input.imag); $1 = &temp;%} %typemap(out, null="SwigCreateSystemNumericsComplex(0.0, 0.0)") std::complex<T> %{$result = SwigCreateSystemNumericsComplex($1.real(), $1.imag());%} %typemap(out, null="SwigCreateSystemNumericsComplex(0.0, 0.0)") const std::complex<T> & %{$result = SwigCreateSystemNumericsComplex($1->real(), $1->imag());%} %typemap(cstype) std::complex<T>, const std::complex<T> & "System.Numerics.Complex" %typemap(csin) std::complex<T>, const std::complex<T> & "$csinput" %typemap(csout, excode=SWIGEXCODE) std::complex<T>, const std::complex<T> & { System.Numerics.Complex ret = $imcall;$excode return ret; } %typemap(csvarin, excode=SWIGEXCODE2) const std::complex<T> & %{ set { $imcall;$excode } %} %typemap(csvarout, excode=SWIGEXCODE2) const std::complex<T> & %{ get { System.Numerics.Complex ret = $imcall;$excode return ret; } %} %template() std::complex<T>; %enddef // By default, typemaps for both std::complex<double> and std::complex<float> // are defined, but one of them can be disabled by predefining the // corresponding symbol before including this file. #ifndef SWIG_NO_STD_COMPLEX_DOUBLE SWIG_COMPLEX_TYPEMAPS(double) #endif #ifndef SWIG_NO_STD_COMPLEX_FLOAT SWIG_COMPLEX_TYPEMAPS(float) #endif