| 725 | } |
| 726 | |
| 727 | NOINLINE static void pass11 (size_t ido, size_t l1, const cmplx * restrict cc, |
| 728 | cmplx * restrict ch, const cmplx * restrict wa, const int sign) |
| 729 | { |
| 730 | const size_t cdim=11; |
| 731 | const double tw1r = 0.8412535328311811688618, |
| 732 | tw1i = sign * 0.5406408174555975821076, |
| 733 | tw2r = 0.4154150130018864255293, |
| 734 | tw2i = sign * 0.9096319953545183714117, |
| 735 | tw3r = -0.1423148382732851404438, |
| 736 | tw3i = sign * 0.9898214418809327323761, |
| 737 | tw4r = -0.6548607339452850640569, |
| 738 | tw4i = sign * 0.755749574354258283774, |
| 739 | tw5r = -0.9594929736144973898904, |
| 740 | tw5i = sign * 0.2817325568414296977114; |
| 741 | |
| 742 | if (ido==1) |
| 743 | for (size_t k=0; k<l1; ++k) |
| 744 | { |
| 745 | PREP11(0) |
| 746 | PARTSTEP11a(1,10,tw1r,tw2r,tw3r,tw4r,tw5r,+tw1i,+tw2i,+tw3i,+tw4i,+tw5i) |
| 747 | PARTSTEP11a(2, 9,tw2r,tw4r,tw5r,tw3r,tw1r,+tw2i,+tw4i,-tw5i,-tw3i,-tw1i) |
| 748 | PARTSTEP11a(3, 8,tw3r,tw5r,tw2r,tw1r,tw4r,+tw3i,-tw5i,-tw2i,+tw1i,+tw4i) |
| 749 | PARTSTEP11a(4, 7,tw4r,tw3r,tw1r,tw5r,tw2r,+tw4i,-tw3i,+tw1i,+tw5i,-tw2i) |
| 750 | PARTSTEP11a(5, 6,tw5r,tw1r,tw4r,tw2r,tw3r,+tw5i,-tw1i,+tw4i,-tw2i,+tw3i) |
| 751 | } |
| 752 | else |
| 753 | for (size_t k=0; k<l1; ++k) |
| 754 | { |
| 755 | { |
| 756 | PREP11(0) |
| 757 | PARTSTEP11a(1,10,tw1r,tw2r,tw3r,tw4r,tw5r,+tw1i,+tw2i,+tw3i,+tw4i,+tw5i) |
| 758 | PARTSTEP11a(2, 9,tw2r,tw4r,tw5r,tw3r,tw1r,+tw2i,+tw4i,-tw5i,-tw3i,-tw1i) |
| 759 | PARTSTEP11a(3, 8,tw3r,tw5r,tw2r,tw1r,tw4r,+tw3i,-tw5i,-tw2i,+tw1i,+tw4i) |
| 760 | PARTSTEP11a(4, 7,tw4r,tw3r,tw1r,tw5r,tw2r,+tw4i,-tw3i,+tw1i,+tw5i,-tw2i) |
| 761 | PARTSTEP11a(5, 6,tw5r,tw1r,tw4r,tw2r,tw3r,+tw5i,-tw1i,+tw4i,-tw2i,+tw3i) |
| 762 | } |
| 763 | for (size_t i=1; i<ido; ++i) |
| 764 | { |
| 765 | PREP11(i) |
| 766 | PARTSTEP11(1,10,tw1r,tw2r,tw3r,tw4r,tw5r,+tw1i,+tw2i,+tw3i,+tw4i,+tw5i) |
| 767 | PARTSTEP11(2, 9,tw2r,tw4r,tw5r,tw3r,tw1r,+tw2i,+tw4i,-tw5i,-tw3i,-tw1i) |
| 768 | PARTSTEP11(3, 8,tw3r,tw5r,tw2r,tw1r,tw4r,+tw3i,-tw5i,-tw2i,+tw1i,+tw4i) |
| 769 | PARTSTEP11(4, 7,tw4r,tw3r,tw1r,tw5r,tw2r,+tw4i,-tw3i,+tw1i,+tw5i,-tw2i) |
| 770 | PARTSTEP11(5, 6,tw5r,tw1r,tw4r,tw2r,tw3r,+tw5i,-tw1i,+tw4i,-tw2i,+tw3i) |
| 771 | } |
| 772 | } |
| 773 | } |
| 774 | |
| 775 | #define CX(a,b,c) cc[(a)+ido*((b)+l1*(c))] |
| 776 | #define CX2(a,b) cc[(a)+idl1*(b)] |