| 162 | } |
| 163 | |
| 164 | NOINLINE static void fill_first_half(size_t n, double * restrict res) |
| 165 | { |
| 166 | size_t half = n>>1; |
| 167 | if ((n&3)==0) |
| 168 | for (size_t i=0; i<half; i+=2) |
| 169 | { |
| 170 | res[i+half] = -res[i+1]; |
| 171 | res[i+half+1] = res[i ]; |
| 172 | } |
| 173 | else |
| 174 | for (size_t i=2, j=2*half-2; i<half; i+=2, j-=2) |
| 175 | { |
| 176 | res[j ] = -res[i ]; |
| 177 | res[j+1] = res[i+1]; |
| 178 | } |
| 179 | } |
| 180 | |
| 181 | NOINLINE static void fill_second_half(size_t n, double * restrict res) |
| 182 | { |
no outgoing calls
no test coverage detected