#include #include #include struct cplx { float r, i; }; cplx cplx_add(cplx a, cplx b) { cplx c; c.r = a.r + b.r; c.i = a.i + b.i; return c; } cplx cplx_sub(cplx a, cplx b) { cplx c; c.r = a.r - b.r; c.i = a.i - b.i; return c; } cplx cplx_mul(cplx a, cplx b) { cplx c; c.r = a.r * b.r - a.i * b.i; c.i = a.i * b.r + a.r * b.i; return c; } float cplx_abs(cplx a) { return sqrt(a.r * a.r + a.i * a.i); } cplx cplx_sum(cplx p, const cplx * a, int n) { cplx s = {0.0, 0.0}; cplx c = {1.0, 0.0}; for(int i=0; i