| 555 | A_EQ_B_MUL_C (CH(i,k,u2),WA(u2-1,i),db) \ |
| 556 | } |
| 557 | NOINLINE static void pass5b (size_t ido, size_t l1, const cmplx * restrict cc, |
| 558 | cmplx * restrict ch, const cmplx * restrict wa) |
| 559 | { |
| 560 | const size_t cdim=5; |
| 561 | const double tw1r= 0.3090169943749474241, |
| 562 | tw1i= 0.95105651629515357212, |
| 563 | tw2r= -0.8090169943749474241, |
| 564 | tw2i= 0.58778525229247312917; |
| 565 | |
| 566 | if (ido==1) |
| 567 | for (size_t k=0; k<l1; ++k) |
| 568 | { |
| 569 | PREP5(0) |
| 570 | PARTSTEP5a(1,4,tw1r,tw2r,+tw1i,+tw2i) |
| 571 | PARTSTEP5a(2,3,tw2r,tw1r,+tw2i,-tw1i) |
| 572 | } |
| 573 | else |
| 574 | for (size_t k=0; k<l1; ++k) |
| 575 | { |
| 576 | { |
| 577 | PREP5(0) |
| 578 | PARTSTEP5a(1,4,tw1r,tw2r,+tw1i,+tw2i) |
| 579 | PARTSTEP5a(2,3,tw2r,tw1r,+tw2i,-tw1i) |
| 580 | } |
| 581 | for (size_t i=1; i<ido; ++i) |
| 582 | { |
| 583 | PREP5(i) |
| 584 | PARTSTEP5b(1,4,tw1r,tw2r,+tw1i,+tw2i) |
| 585 | PARTSTEP5b(2,3,tw2r,tw1r,+tw2i,-tw1i) |
| 586 | } |
| 587 | } |
| 588 | } |
| 589 | #define PARTSTEP5f(u1,u2,twar,twbr,twai,twbi) \ |
| 590 | { \ |
| 591 | cmplx ca,cb,da,db; \ |