2 * Copyright (c) 1997-1999 Massachusetts Institute of Technology
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 /* This file was automatically generated --- DO NOT EDIT */
21 /* Generated on Tue May 18 13:54:52 EDT 1999 */
26 /* Generated by: ./genfft -magic-alignment-check -magic-twiddle-load-all -magic-variables 4 -magic-loopi -notwiddleinv 14 */
29 * This function contains 148 FP additions, 72 FP multiplications,
30 * (or, 148 additions, 72 multiplications, 0 fused multiply/add),
31 * 36 stack variables, and 56 memory accesses
33 static const fftw_real K222520933
= FFTW_KONST(+0.222520933956314404288902564496794759466355569);
34 static const fftw_real K900968867
= FFTW_KONST(+0.900968867902419126236102319507445051165919162);
35 static const fftw_real K623489801
= FFTW_KONST(+0.623489801858733530525004884004239810632274731);
36 static const fftw_real K433883739
= FFTW_KONST(+0.433883739117558120475768332848358754609990728);
37 static const fftw_real K781831482
= FFTW_KONST(+0.781831482468029808708444526674057750232334519);
38 static const fftw_real K974927912
= FFTW_KONST(+0.974927912181823607018131682993931217232785801);
47 void fftwi_no_twiddle_14(const fftw_complex
*input
, fftw_complex
*output
, int istride
, int ostride
)
77 ASSERT_ALIGNED_DOUBLE();
83 ASSERT_ALIGNED_DOUBLE();
84 tmp1
= c_re(input
[0]);
85 tmp2
= c_re(input
[7 * istride
]);
88 tmp66
= c_im(input
[0]);
89 tmp67
= c_im(input
[7 * istride
]);
90 tmp68
= tmp66
- tmp67
;
91 tmp92
= tmp66
+ tmp67
;
98 ASSERT_ALIGNED_DOUBLE();
104 ASSERT_ALIGNED_DOUBLE();
105 tmp4
= c_re(input
[2 * istride
]);
106 tmp5
= c_re(input
[9 * istride
]);
109 tmp7
= c_re(input
[12 * istride
]);
110 tmp8
= c_re(input
[5 * istride
]);
116 tmp28
= tmp26
+ tmp27
;
117 tmp97
= tmp26
- tmp27
;
124 ASSERT_ALIGNED_DOUBLE();
130 ASSERT_ALIGNED_DOUBLE();
131 tmp36
= c_im(input
[12 * istride
]);
132 tmp37
= c_im(input
[5 * istride
]);
133 tmp38
= tmp36
- tmp37
;
134 tmp78
= tmp36
+ tmp37
;
135 tmp39
= c_im(input
[2 * istride
]);
136 tmp40
= c_im(input
[9 * istride
]);
137 tmp41
= tmp39
- tmp40
;
138 tmp79
= tmp39
+ tmp40
;
140 tmp42
= tmp38
- tmp41
;
141 tmp71
= tmp41
+ tmp38
;
142 tmp80
= tmp78
- tmp79
;
143 tmp93
= tmp79
+ tmp78
;
150 ASSERT_ALIGNED_DOUBLE();
156 ASSERT_ALIGNED_DOUBLE();
157 tmp11
= c_re(input
[4 * istride
]);
158 tmp12
= c_re(input
[11 * istride
]);
159 tmp13
= tmp11
- tmp12
;
160 tmp29
= tmp11
+ tmp12
;
161 tmp14
= c_re(input
[10 * istride
]);
162 tmp15
= c_re(input
[3 * istride
]);
163 tmp16
= tmp14
- tmp15
;
164 tmp30
= tmp14
+ tmp15
;
166 tmp17
= tmp13
+ tmp16
;
167 tmp64
= tmp13
- tmp16
;
168 tmp31
= tmp29
+ tmp30
;
169 tmp99
= tmp30
- tmp29
;
176 ASSERT_ALIGNED_DOUBLE();
182 ASSERT_ALIGNED_DOUBLE();
183 tmp50
= c_im(input
[10 * istride
]);
184 tmp51
= c_im(input
[3 * istride
]);
185 tmp52
= tmp50
- tmp51
;
186 tmp85
= tmp50
+ tmp51
;
187 tmp53
= c_im(input
[4 * istride
]);
188 tmp54
= c_im(input
[11 * istride
]);
189 tmp55
= tmp53
- tmp54
;
190 tmp84
= tmp53
+ tmp54
;
192 tmp56
= tmp52
- tmp55
;
193 tmp69
= tmp55
+ tmp52
;
194 tmp86
= tmp84
- tmp85
;
195 tmp95
= tmp84
+ tmp85
;
202 ASSERT_ALIGNED_DOUBLE();
208 ASSERT_ALIGNED_DOUBLE();
209 tmp18
= c_re(input
[6 * istride
]);
210 tmp19
= c_re(input
[13 * istride
]);
211 tmp20
= tmp18
- tmp19
;
212 tmp32
= tmp18
+ tmp19
;
213 tmp21
= c_re(input
[8 * istride
]);
214 tmp22
= c_re(input
[istride
]);
215 tmp23
= tmp21
- tmp22
;
216 tmp33
= tmp21
+ tmp22
;
218 tmp24
= tmp20
+ tmp23
;
219 tmp63
= tmp20
- tmp23
;
220 tmp34
= tmp32
+ tmp33
;
221 tmp98
= tmp33
- tmp32
;
228 ASSERT_ALIGNED_DOUBLE();
234 ASSERT_ALIGNED_DOUBLE();
235 tmp43
= c_im(input
[8 * istride
]);
236 tmp44
= c_im(input
[istride
]);
237 tmp45
= tmp43
- tmp44
;
238 tmp82
= tmp43
+ tmp44
;
239 tmp46
= c_im(input
[6 * istride
]);
240 tmp47
= c_im(input
[13 * istride
]);
241 tmp48
= tmp46
- tmp47
;
242 tmp81
= tmp46
+ tmp47
;
244 tmp49
= tmp45
- tmp48
;
245 tmp70
= tmp48
+ tmp45
;
246 tmp83
= tmp81
- tmp82
;
247 tmp94
= tmp81
+ tmp82
;
254 ASSERT_ALIGNED_DOUBLE();
255 c_re(output
[7 * ostride
]) = tmp3
+ tmp10
+ tmp17
+ tmp24
;
256 tmp57
= (K974927912
* tmp42
) - (K781831482
* tmp49
) - (K433883739
* tmp56
);
257 tmp35
= tmp3
+ (K623489801
* tmp24
) - (K900968867
* tmp17
) - (K222520933
* tmp10
);
258 c_re(output
[5 * ostride
]) = tmp35
- tmp57
;
259 c_re(output
[9 * ostride
]) = tmp35
+ tmp57
;
265 ASSERT_ALIGNED_DOUBLE();
266 tmp59
= (K781831482
* tmp42
) + (K974927912
* tmp56
) + (K433883739
* tmp49
);
267 tmp58
= tmp3
+ (K623489801
* tmp10
) - (K900968867
* tmp24
) - (K222520933
* tmp17
);
268 c_re(output
[13 * ostride
]) = tmp58
- tmp59
;
269 c_re(output
[ostride
]) = tmp58
+ tmp59
;
270 tmp61
= (K433883739
* tmp42
) + (K974927912
* tmp49
) - (K781831482
* tmp56
);
271 tmp60
= tmp3
+ (K623489801
* tmp17
) - (K222520933
* tmp24
) - (K900968867
* tmp10
);
272 c_re(output
[11 * ostride
]) = tmp60
- tmp61
;
273 c_re(output
[3 * ostride
]) = tmp60
+ tmp61
;
275 c_re(output
[0]) = tmp25
+ tmp28
+ tmp31
+ tmp34
;
276 tmp87
= (K781831482
* tmp80
) - (K433883739
* tmp83
) - (K974927912
* tmp86
);
277 tmp77
= tmp25
+ (K623489801
* tmp28
) - (K900968867
* tmp34
) - (K222520933
* tmp31
);
278 c_re(output
[6 * ostride
]) = tmp77
- tmp87
;
279 c_re(output
[8 * ostride
]) = tmp77
+ tmp87
;
285 ASSERT_ALIGNED_DOUBLE();
286 tmp89
= (K433883739
* tmp80
) + (K781831482
* tmp86
) - (K974927912
* tmp83
);
287 tmp88
= tmp25
+ (K623489801
* tmp31
) - (K222520933
* tmp34
) - (K900968867
* tmp28
);
288 c_re(output
[4 * ostride
]) = tmp88
- tmp89
;
289 c_re(output
[10 * ostride
]) = tmp88
+ tmp89
;
290 tmp91
= (K974927912
* tmp80
) + (K433883739
* tmp86
) + (K781831482
* tmp83
);
291 tmp90
= tmp25
+ (K623489801
* tmp34
) - (K900968867
* tmp31
) - (K222520933
* tmp28
);
292 c_re(output
[12 * ostride
]) = tmp90
- tmp91
;
293 c_re(output
[2 * ostride
]) = tmp90
+ tmp91
;
301 ASSERT_ALIGNED_DOUBLE();
302 c_im(output
[7 * ostride
]) = tmp68
+ tmp71
+ tmp69
+ tmp70
;
303 tmp76
= (K974927912
* tmp62
) - (K781831482
* tmp63
) - (K433883739
* tmp64
);
304 tmp75
= tmp68
+ (K623489801
* tmp70
) - (K900968867
* tmp69
) - (K222520933
* tmp71
);
305 c_im(output
[5 * ostride
]) = tmp75
- tmp76
;
306 c_im(output
[9 * ostride
]) = tmp76
+ tmp75
;
312 ASSERT_ALIGNED_DOUBLE();
313 tmp73
= (K781831482
* tmp62
) + (K974927912
* tmp64
) + (K433883739
* tmp63
);
314 tmp74
= tmp68
+ (K623489801
* tmp71
) - (K900968867
* tmp70
) - (K222520933
* tmp69
);
315 c_im(output
[ostride
]) = tmp73
+ tmp74
;
316 c_im(output
[13 * ostride
]) = tmp74
- tmp73
;
317 tmp65
= (K433883739
* tmp62
) + (K974927912
* tmp63
) - (K781831482
* tmp64
);
318 tmp72
= tmp68
+ (K623489801
* tmp69
) - (K222520933
* tmp70
) - (K900968867
* tmp71
);
319 c_im(output
[3 * ostride
]) = tmp65
+ tmp72
;
320 c_im(output
[11 * ostride
]) = tmp72
- tmp65
;
322 c_im(output
[0]) = tmp92
+ tmp93
+ tmp95
+ tmp94
;
323 tmp103
= (K974927912
* tmp97
) + (K433883739
* tmp99
) + (K781831482
* tmp98
);
324 tmp104
= tmp92
+ (K623489801
* tmp94
) - (K900968867
* tmp95
) - (K222520933
* tmp93
);
325 c_im(output
[2 * ostride
]) = tmp103
+ tmp104
;
326 c_im(output
[12 * ostride
]) = tmp104
- tmp103
;
332 ASSERT_ALIGNED_DOUBLE();
333 tmp100
= (K781831482
* tmp97
) - (K433883739
* tmp98
) - (K974927912
* tmp99
);
334 tmp96
= tmp92
+ (K623489801
* tmp93
) - (K900968867
* tmp94
) - (K222520933
* tmp95
);
335 c_im(output
[6 * ostride
]) = tmp96
- tmp100
;
336 c_im(output
[8 * ostride
]) = tmp100
+ tmp96
;
337 tmp102
= (K433883739
* tmp97
) + (K781831482
* tmp99
) - (K974927912
* tmp98
);
338 tmp101
= tmp92
+ (K623489801
* tmp95
) - (K222520933
* tmp94
) - (K900968867
* tmp93
);
339 c_im(output
[4 * ostride
]) = tmp101
- tmp102
;
340 c_im(output
[10 * ostride
]) = tmp102
+ tmp101
;
345 fftw_codelet_desc fftwi_no_twiddle_14_desc
=
347 "fftwi_no_twiddle_14",
348 (void (*)()) fftwi_no_twiddle_14
,