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:28 EDT 1999 */
26 /* Generated by: ./genfft -magic-alignment-check -magic-twiddle-load-all -magic-variables 4 -magic-loopi -notwiddle 13 */
29 * This function contains 176 FP additions, 68 FP multiplications,
30 * (or, 138 additions, 30 multiplications, 38 fused multiply/add),
31 * 50 stack variables, and 52 memory accesses
33 static const fftw_real K1_732050807
= FFTW_KONST(+1.732050807568877293527446341505872366942805254);
34 static const fftw_real K256247671
= FFTW_KONST(+0.256247671582936600958684654061725059144125175);
35 static const fftw_real K156891391
= FFTW_KONST(+0.156891391051584611046832726756003269660212636);
36 static const fftw_real K300238635
= FFTW_KONST(+0.300238635966332641462884626667381504676006424);
37 static const fftw_real K011599105
= FFTW_KONST(+0.011599105605768290721655456654083252189827041);
38 static const fftw_real K174138601
= FFTW_KONST(+0.174138601152135905005660794929264742616964676);
39 static const fftw_real K575140729
= FFTW_KONST(+0.575140729474003121368385547455453388461001608);
40 static const fftw_real K2_000000000
= FFTW_KONST(+2.000000000000000000000000000000000000000000000);
41 static const fftw_real K083333333
= FFTW_KONST(+0.083333333333333333333333333333333333333333333);
42 static const fftw_real K075902986
= FFTW_KONST(+0.075902986037193865983102897245103540356428373);
43 static const fftw_real K251768516
= FFTW_KONST(+0.251768516431883313623436926934233488546674281);
44 static const fftw_real K258260390
= FFTW_KONST(+0.258260390311744861420450644284508567852516811);
45 static const fftw_real K132983124
= FFTW_KONST(+0.132983124607418643793760531921092974399165133);
46 static const fftw_real K265966249
= FFTW_KONST(+0.265966249214837287587521063842185948798330267);
47 static const fftw_real K387390585
= FFTW_KONST(+0.387390585467617292130675966426762851778775217);
48 static const fftw_real K503537032
= FFTW_KONST(+0.503537032863766627246873853868466977093348562);
49 static const fftw_real K113854479
= FFTW_KONST(+0.113854479055790798974654345867655310534642560);
50 static const fftw_real K300462606
= FFTW_KONST(+0.300462606288665774426601772289207995520941381);
51 static const fftw_real K866025403
= FFTW_KONST(+0.866025403784438646763723170752936183471402627);
52 static const fftw_real K500000000
= FFTW_KONST(+0.500000000000000000000000000000000000000000000);
61 void fftw_no_twiddle_13(const fftw_complex
*input
, fftw_complex
*output
, int istride
, int ostride
)
89 ASSERT_ALIGNED_DOUBLE();
90 tmp1
= c_re(input
[0]);
91 tmp88
= c_im(input
[0]);
111 ASSERT_ALIGNED_DOUBLE();
112 tmp13
= c_re(input
[8 * istride
]);
113 tmp14
= c_re(input
[5 * istride
]);
114 tmp15
= tmp13
+ tmp14
;
115 tmp25
= tmp13
- tmp14
;
121 ASSERT_ALIGNED_DOUBLE();
122 tmp16
= c_re(input
[6 * istride
]);
123 tmp17
= c_re(input
[11 * istride
]);
124 tmp18
= tmp16
+ tmp17
;
125 tmp26
= tmp16
- tmp17
;
126 tmp19
= c_re(input
[2 * istride
]);
127 tmp20
= c_re(input
[7 * istride
]);
128 tmp21
= tmp19
+ tmp20
;
129 tmp27
= tmp19
- tmp20
;
131 tmp22
= tmp18
+ tmp21
;
132 tmp28
= tmp26
+ tmp27
;
138 ASSERT_ALIGNED_DOUBLE();
139 tmp2
= c_re(input
[istride
]);
140 tmp3
= c_re(input
[3 * istride
]);
141 tmp4
= c_re(input
[9 * istride
]);
144 tmp37
= tmp2
- (K500000000
* tmp5
);
152 ASSERT_ALIGNED_DOUBLE();
153 tmp7
= c_re(input
[12 * istride
]);
154 tmp8
= c_re(input
[4 * istride
]);
155 tmp9
= c_re(input
[10 * istride
]);
157 tmp11
= tmp7
+ tmp10
;
158 tmp38
= tmp7
- (K500000000
* tmp10
);
161 tmp29
= tmp25
- tmp28
;
167 ASSERT_ALIGNED_DOUBLE();
168 tmp32
= tmp25
+ (K500000000
* tmp28
);
169 tmp35
= K866025403
* (tmp33
+ tmp34
);
170 tmp36
= tmp32
- tmp35
;
171 tmp43
= tmp35
+ tmp32
;
172 tmp119
= tmp33
- tmp34
;
173 tmp120
= tmp27
- tmp26
;
174 tmp121
= tmp119
+ tmp120
;
175 tmp128
= tmp120
- tmp119
;
177 tmp30
= tmp6
- tmp11
;
178 tmp12
= tmp6
+ tmp11
;
179 tmp23
= tmp15
+ tmp22
;
180 tmp24
= tmp12
+ tmp23
;
181 tmp131
= K300462606
* (tmp12
- tmp23
);
187 ASSERT_ALIGNED_DOUBLE();
188 tmp122
= tmp37
+ tmp38
;
189 tmp123
= tmp15
- (K500000000
* tmp22
);
190 tmp124
= tmp122
+ tmp123
;
191 tmp129
= tmp122
- tmp123
;
192 tmp39
= tmp37
- tmp38
;
193 tmp40
= K866025403
* (tmp18
- tmp21
);
194 tmp41
= tmp39
+ tmp40
;
195 tmp44
= tmp39
- tmp40
;
217 ASSERT_ALIGNED_DOUBLE();
218 tmp59
= c_im(input
[8 * istride
]);
219 tmp60
= c_im(input
[5 * istride
]);
220 tmp61
= tmp59
+ tmp60
;
221 tmp135
= tmp59
- tmp60
;
227 ASSERT_ALIGNED_DOUBLE();
228 tmp62
= c_im(input
[6 * istride
]);
229 tmp63
= c_im(input
[11 * istride
]);
230 tmp64
= tmp62
+ tmp63
;
231 tmp71
= tmp62
- tmp63
;
232 tmp65
= c_im(input
[2 * istride
]);
233 tmp66
= c_im(input
[7 * istride
]);
234 tmp67
= tmp65
+ tmp66
;
235 tmp72
= tmp65
- tmp66
;
237 tmp68
= tmp64
+ tmp67
;
238 tmp136
= tmp71
+ tmp72
;
244 ASSERT_ALIGNED_DOUBLE();
245 tmp48
= c_im(input
[istride
]);
246 tmp49
= c_im(input
[3 * istride
]);
247 tmp50
= c_im(input
[9 * istride
]);
248 tmp51
= tmp49
+ tmp50
;
249 tmp52
= tmp48
- (K500000000
* tmp51
);
250 tmp79
= tmp48
+ tmp51
;
251 tmp75
= tmp49
- tmp50
;
258 ASSERT_ALIGNED_DOUBLE();
259 tmp53
= c_im(input
[12 * istride
]);
260 tmp54
= c_im(input
[4 * istride
]);
261 tmp55
= c_im(input
[10 * istride
]);
262 tmp56
= tmp54
+ tmp55
;
263 tmp57
= tmp53
- (K500000000
* tmp56
);
264 tmp80
= tmp53
+ tmp56
;
265 tmp74
= tmp54
- tmp55
;
267 tmp134
= tmp79
- tmp80
;
273 ASSERT_ALIGNED_DOUBLE();
274 tmp81
= tmp79
+ tmp80
;
275 tmp82
= tmp61
+ tmp68
;
276 tmp83
= K300462606
* (tmp81
- tmp82
);
277 tmp89
= tmp81
+ tmp82
;
278 tmp58
= tmp52
+ tmp57
;
279 tmp69
= tmp61
- (K500000000
* tmp68
);
280 tmp70
= tmp58
- tmp69
;
281 tmp85
= tmp58
+ tmp69
;
283 tmp137
= tmp135
- tmp136
;
284 tmp139
= K866025403
* (tmp75
+ tmp74
);
285 tmp140
= tmp135
+ (K500000000
* tmp136
);
286 tmp141
= tmp139
- tmp140
;
287 tmp146
= tmp139
+ tmp140
;
293 ASSERT_ALIGNED_DOUBLE();
294 tmp73
= tmp71
- tmp72
;
295 tmp76
= tmp74
- tmp75
;
296 tmp77
= tmp73
- tmp76
;
297 tmp86
= tmp76
+ tmp73
;
298 tmp142
= tmp52
- tmp57
;
299 tmp143
= K866025403
* (tmp67
- tmp64
);
300 tmp144
= tmp142
- tmp143
;
301 tmp147
= tmp142
+ tmp143
;
304 c_re(output
[0]) = tmp1
+ tmp24
;
322 ASSERT_ALIGNED_DOUBLE();
323 tmp161
= (K113854479
* tmp121
) - (K503537032
* tmp124
);
324 tmp162
= (K387390585
* tmp128
) - (K265966249
* tmp129
);
325 tmp163
= tmp161
- tmp162
;
326 tmp173
= tmp162
+ tmp161
;
333 ASSERT_ALIGNED_DOUBLE();
334 tmp130
= (K132983124
* tmp128
) + (K258260390
* tmp129
);
335 tmp151
= tmp131
- tmp130
;
336 tmp125
= (K251768516
* tmp121
) + (K075902986
* tmp124
);
337 tmp126
= tmp1
- (K083333333
* tmp24
);
338 tmp152
= tmp126
- tmp125
;
339 tmp127
= (K2_000000000
* tmp125
) + tmp126
;
340 tmp169
= tmp152
- tmp151
;
341 tmp153
= tmp151
+ tmp152
;
342 tmp132
= (K2_000000000
* tmp130
) + tmp131
;
349 ASSERT_ALIGNED_DOUBLE();
350 tmp138
= (K575140729
* tmp134
) + (K174138601
* tmp137
);
351 tmp145
= (K011599105
* tmp141
) + (K300238635
* tmp144
);
352 tmp148
= (K156891391
* tmp146
) - (K256247671
* tmp147
);
353 tmp149
= tmp145
+ tmp148
;
354 tmp160
= K1_732050807
* (tmp148
- tmp145
);
355 tmp172
= tmp149
- tmp138
;
356 tmp154
= (K174138601
* tmp134
) - (K575140729
* tmp137
);
357 tmp155
= (K300238635
* tmp141
) - (K011599105
* tmp144
);
358 tmp156
= (K256247671
* tmp146
) + (K156891391
* tmp147
);
359 tmp157
= tmp155
+ tmp156
;
360 tmp158
= tmp154
- tmp157
;
361 tmp170
= K1_732050807
* (tmp156
- tmp155
);
368 ASSERT_ALIGNED_DOUBLE();
369 tmp133
= tmp127
- tmp132
;
370 tmp150
= tmp138
+ (K2_000000000
* tmp149
);
371 c_re(output
[8 * ostride
]) = tmp133
- tmp150
;
372 c_re(output
[5 * ostride
]) = tmp133
+ tmp150
;
378 ASSERT_ALIGNED_DOUBLE();
379 tmp167
= tmp132
+ tmp127
;
380 tmp168
= tmp154
+ (K2_000000000
* tmp157
);
381 c_re(output
[12 * ostride
]) = tmp167
- tmp168
;
382 c_re(output
[ostride
]) = tmp167
+ tmp168
;
383 tmp159
= tmp153
- tmp158
;
384 tmp164
= tmp160
- tmp163
;
385 c_re(output
[4 * ostride
]) = tmp159
- tmp164
;
386 c_re(output
[10 * ostride
]) = tmp164
+ tmp159
;
388 tmp165
= tmp153
+ tmp158
;
389 tmp166
= tmp163
+ tmp160
;
390 c_re(output
[3 * ostride
]) = tmp165
- tmp166
;
391 c_re(output
[9 * ostride
]) = tmp166
+ tmp165
;
397 ASSERT_ALIGNED_DOUBLE();
398 tmp175
= tmp169
+ tmp170
;
399 tmp176
= tmp173
+ tmp172
;
400 c_re(output
[2 * ostride
]) = tmp175
- tmp176
;
401 c_re(output
[7 * ostride
]) = tmp176
+ tmp175
;
402 tmp171
= tmp169
- tmp170
;
403 tmp174
= tmp172
- tmp173
;
404 c_re(output
[6 * ostride
]) = tmp171
- tmp174
;
405 c_re(output
[11 * ostride
]) = tmp174
+ tmp171
;
409 c_im(output
[0]) = tmp88
+ tmp89
;
427 ASSERT_ALIGNED_DOUBLE();
428 tmp100
= (K387390585
* tmp77
) + (K265966249
* tmp70
);
429 tmp101
= (K113854479
* tmp86
) + (K503537032
* tmp85
);
430 tmp102
= tmp100
+ tmp101
;
431 tmp115
= tmp100
- tmp101
;
438 ASSERT_ALIGNED_DOUBLE();
439 tmp78
= (K258260390
* tmp70
) - (K132983124
* tmp77
);
440 tmp105
= tmp83
- tmp78
;
441 tmp87
= (K075902986
* tmp85
) - (K251768516
* tmp86
);
442 tmp90
= tmp88
- (K083333333
* tmp89
);
443 tmp104
= tmp90
- tmp87
;
444 tmp84
= (K2_000000000
* tmp78
) + tmp83
;
445 tmp112
= tmp105
+ tmp104
;
446 tmp106
= tmp104
- tmp105
;
447 tmp91
= (K2_000000000
* tmp87
) + tmp90
;
454 ASSERT_ALIGNED_DOUBLE();
455 tmp31
= (K575140729
* tmp29
) - (K174138601
* tmp30
);
456 tmp42
= (K300238635
* tmp36
) + (K011599105
* tmp41
);
457 tmp45
= (K256247671
* tmp43
) + (K156891391
* tmp44
);
458 tmp46
= tmp42
- tmp45
;
459 tmp107
= K1_732050807
* (tmp45
+ tmp42
);
460 tmp111
= tmp31
- tmp46
;
461 tmp94
= (K575140729
* tmp30
) + (K174138601
* tmp29
);
462 tmp95
= (K156891391
* tmp43
) - (K256247671
* tmp44
);
463 tmp96
= (K300238635
* tmp41
) - (K011599105
* tmp36
);
464 tmp97
= tmp95
+ tmp96
;
465 tmp99
= tmp97
- tmp94
;
466 tmp114
= K1_732050807
* (tmp96
- tmp95
);
473 ASSERT_ALIGNED_DOUBLE();
474 tmp47
= tmp31
+ (K2_000000000
* tmp46
);
475 tmp92
= tmp84
+ tmp91
;
476 c_im(output
[ostride
]) = tmp47
+ tmp92
;
477 c_im(output
[12 * ostride
]) = tmp92
- tmp47
;
483 ASSERT_ALIGNED_DOUBLE();
484 tmp93
= tmp91
- tmp84
;
485 tmp98
= tmp94
+ (K2_000000000
* tmp97
);
486 c_im(output
[5 * ostride
]) = tmp93
- tmp98
;
487 c_im(output
[8 * ostride
]) = tmp98
+ tmp93
;
488 tmp103
= tmp99
+ tmp102
;
489 tmp108
= tmp106
- tmp107
;
490 c_im(output
[2 * ostride
]) = tmp103
+ tmp108
;
491 c_im(output
[7 * ostride
]) = tmp108
- tmp103
;
493 tmp109
= tmp107
+ tmp106
;
494 tmp110
= tmp102
- tmp99
;
495 c_im(output
[6 * ostride
]) = tmp109
- tmp110
;
496 c_im(output
[11 * ostride
]) = tmp110
+ tmp109
;
502 ASSERT_ALIGNED_DOUBLE();
503 tmp117
= tmp112
- tmp111
;
504 tmp118
= tmp114
- tmp115
;
505 c_im(output
[4 * ostride
]) = tmp117
- tmp118
;
506 c_im(output
[10 * ostride
]) = tmp118
+ tmp117
;
507 tmp113
= tmp111
+ tmp112
;
508 tmp116
= tmp114
+ tmp115
;
509 c_im(output
[3 * ostride
]) = tmp113
- tmp116
;
510 c_im(output
[9 * ostride
]) = tmp116
+ tmp113
;
516 fftw_codelet_desc fftw_no_twiddle_13_desc
=
518 "fftw_no_twiddle_13",
519 (void (*)()) fftw_no_twiddle_13
,