22 Cpx h, *v, *e, *p, *
r;
27 g = (
double *)calloc(n * n,
sizeof(
double));
28 v = (
Cpx *)calloc(m + n,
sizeof(
Cpx));
32 for (i = 0; i < n; ++i) {
36 a = h.re * e[i].
re - h.im * e[i].
im;
37 h.im = h.im * e[i].
re + h.re * e[i].
im;
41 for (i = 0; i < n; ++i) {
42 a = e[i].
re * h.re - e[i].
im * h.im;
43 e[i].
im = e[i].
re * h.im + e[i].
im * h.re;
47 for (i = 0, p = v, q =
g; i < n; ++i) {
48 for (j = 0; j < n; ++j)
51 for (i = 0, p = v; i < n; ++i) {
52 for (j = 0, h = e[i]; j < n; ++j, ++p) {
53 a = h.re * p->
re - h.im * p->
im;
54 p->
im = h.im * p->
re + h.re * p->
im;
59 for (i = m = 0, p = u; i < n; ++i, m += n) {
60 for (j = 0; j < n; ++j, ++p) {
62 for (k = 0, q =
g + m,
r = v + j; k < n; ++k,
r += n) {
64 p->
im += *q++ *
r->im;