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 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
|
#include <complex>
#include "_faddeeva.h"
using namespace std;
EXTERN_C_START
npy_cdouble faddeeva_w(npy_cdouble zp)
{
complex<double> z(zp.real, zp.imag);
std::complex<double> w = Faddeeva::w(z);
return npy_cpack(real(w), imag(w));
}
npy_cdouble faddeeva_erf(npy_cdouble zp)
{
complex<double> z(zp.real, zp.imag);
complex<double> w = Faddeeva::erf(z);
return npy_cpack(real(w), imag(w));
}
npy_cdouble faddeeva_erfc(npy_cdouble zp)
{
complex<double> z(zp.real, zp.imag);
complex<double> w = Faddeeva::erfc(z);
return npy_cpack(real(w), imag(w));
}
double faddeeva_erfcx(double x)
{
return Faddeeva::erfcx(x);
}
npy_cdouble faddeeva_erfcx_complex(npy_cdouble zp)
{
complex<double> z(zp.real, zp.imag);
complex<double> w = Faddeeva::erfcx(z);
return npy_cpack(real(w), imag(w));
}
double faddeeva_erfi(double x)
{
return Faddeeva::erfi(x);
}
npy_cdouble faddeeva_erfi_complex(npy_cdouble zp)
{
complex<double> z(zp.real, zp.imag);
complex<double> w = Faddeeva::erfi(z);
return npy_cpack(real(w), imag(w));
}
double faddeeva_dawsn(double x)
{
return Faddeeva::Dawson(x);
}
npy_cdouble faddeeva_dawsn_complex(npy_cdouble zp)
{
complex<double> z(zp.real, zp.imag);
complex<double> w = Faddeeva::Dawson(z);
return npy_cpack(real(w), imag(w));
}
EXTERN_C_END
|