| 1094 | #define CH(a,b,c) ch[(a)+ido*((b)+cdim*(c))] |
| 1095 | |
| 1096 | NOINLINE static void radf2 (size_t ido, size_t l1, const double * restrict cc, |
| 1097 | double * restrict ch, const double * restrict wa) |
| 1098 | { |
| 1099 | const size_t cdim=2; |
| 1100 | |
| 1101 | for (size_t k=0; k<l1; k++) |
| 1102 | PM (CH(0,0,k),CH(ido-1,1,k),CC(0,k,0),CC(0,k,1)) |
| 1103 | if ((ido&1)==0) |
| 1104 | for (size_t k=0; k<l1; k++) |
| 1105 | { |
| 1106 | CH( 0,1,k) = -CC(ido-1,k,1); |
| 1107 | CH(ido-1,0,k) = CC(ido-1,k,0); |
| 1108 | } |
| 1109 | if (ido<=2) return; |
| 1110 | for (size_t k=0; k<l1; k++) |
| 1111 | for (size_t i=2; i<ido; i+=2) |
| 1112 | { |
| 1113 | size_t ic=ido-i; |
| 1114 | double tr2, ti2; |
| 1115 | MULPM (tr2,ti2,WA(0,i-2),WA(0,i-1),CC(i-1,k,1),CC(i,k,1)) |
| 1116 | PM (CH(i-1,0,k),CH(ic-1,1,k),CC(i-1,k,0),tr2) |
| 1117 | PM (CH(i ,0,k),CH(ic ,1,k),ti2,CC(i ,k,0)) |
| 1118 | } |
| 1119 | } |
| 1120 | |
| 1121 | NOINLINE static void radf3(size_t ido, size_t l1, const double * restrict cc, |
| 1122 | double * restrict ch, const double * restrict wa) |