| 310 | #define MULPMSIGNCEQ(a,b) { double xtmp=a.r; a.r=b.r*a.r-sign*b.i*a.i; a.i=b.r*a.i+sign*b.i*xtmp; } |
| 311 | |
| 312 | NOINLINE static void pass2b (size_t ido, size_t l1, const cmplx * restrict cc, |
| 313 | cmplx * restrict ch, const cmplx * restrict wa) |
| 314 | { |
| 315 | const size_t cdim=2; |
| 316 | |
| 317 | if (ido==1) |
| 318 | for (size_t k=0; k<l1; ++k) |
| 319 | PMC (CH(0,k,0),CH(0,k,1),CC(0,0,k),CC(0,1,k)) |
| 320 | else |
| 321 | for (size_t k=0; k<l1; ++k) |
| 322 | { |
| 323 | PMC (CH(0,k,0),CH(0,k,1),CC(0,0,k),CC(0,1,k)) |
| 324 | for (size_t i=1; i<ido; ++i) |
| 325 | { |
| 326 | cmplx t; |
| 327 | PMC (CH(i,k,0),t,CC(i,0,k),CC(i,1,k)) |
| 328 | A_EQ_B_MUL_C (CH(i,k,1),WA(0,i),t) |
| 329 | } |
| 330 | } |
| 331 | } |
| 332 | |
| 333 | NOINLINE static void pass2f (size_t ido, size_t l1, const cmplx * restrict cc, |
| 334 | cmplx * restrict ch, const cmplx * restrict wa) |