27std::complex<double>
complexErf(std::complex<double> z,
long *overflow) {
32 wofz(&xi, &yi, &u, &v, overflow);
33 return std::complex<double>(u, v);
42std::complex<double>
cexpi(
double p) {
43 std::complex<double> a;
44 a = cos(p) + std::complex<double>(0, 1) * sin(p);
55std::complex<double>
cipowr(std::complex<double> a,
int n) {
57 std::complex<double> p(1, 0);
60 for (i = 0; i < n; i++)
81 double *r0,
double *i0,
83 double r2,
double i2) {
86 tempr = r1 * r2 - i1 * i2;
87 *i0 = r1 * i2 + i1 * r2;
105 double *r0,
double *i0,
106 double r1,
double i1,
107 double r2,
double i2,
111 if ((denom = sqr(r2) + sqr(i2)) < threshold)
114 tempr = (r1 * r2 - i1 * i2) / denom;
115 *i0 = (r1 * i2 + i1 * r2) / denom;
std::complex< double > complexErf(std::complex< double > z, long *overflow)
Computes the complex error function of a given complex number.
std::complex< double > cipowr(std::complex< double > a, int n)
Raises a complex number to an integer power.
void complex_divide(double *r0, double *i0, double r1, double i1, double r2, double i2, double threshold)
Divides two complex numbers.
void complex_multiply(double *r0, double *i0, double r1, double i1, double r2, double i2)
Multiplies two complex numbers.
std::complex< double > cexpi(double p)
Computes the complex exponential of an imaginary number.
int wofz(doublereal *xi, doublereal *yi, doublereal *u, doublereal *v, logical *flag__)
Computes the complex error function for a given complex number .