1 /*
2 * Copyright (c) 1997-1999, 2003 Massachusetts Institute of Technology
3 *
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.
8 *
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.
13 *
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
17 *
18 */
19
20 /* This file was automatically generated --- DO NOT EDIT */
21 /* Generated on Mon Mar 24 02:08:13 EST 2003 */
22
23 #include "fftw-int.h"
24 #include "fftw.h"
25
26 /* Generated by: /homee/stevenj/cvs/fftw/gensrc/genfft -magic-alignment-check -magic-twiddle-load-all -magic-variables 4 -magic-loopi -hc2hc-forward 32 */
27
28 /*
29 * This function contains 764 FP additions, 340 FP multiplications,
30 * (or, 618 additions, 194 multiplications, 146 fused multiply/add),
31 * 91 stack variables, and 256 memory accesses
32 */
33 static const fftw_real K145142338 =
34 FFTW_KONST(+0.145142338627231183818096187908697637345738139);
35 static const fftw_real K478470167 =
36 FFTW_KONST(+0.478470167866104432467898943490134984741424603);
37 static const fftw_real K235698368 =
38 FFTW_KONST(+0.235698368412998824278193812952627188828730159);
39 static const fftw_real K440960632 =
40 FFTW_KONST(+0.440960632174177514856378431830194174754221310);
41 static const fftw_real K317196642 =
42 FFTW_KONST(+0.317196642081822749107585806612746685337843547);
43 static const fftw_real K386505226 =
44 FFTW_KONST(+0.386505226681368480405453304879234900485520646);
45 static const fftw_real K497592363 =
46 FFTW_KONST(+0.497592363336098443122418476554739960787737434);
47 static const fftw_real K049008570 =
48 FFTW_KONST(+0.049008570164780300997097781944320922930568337);
49 static const fftw_real K277785116 =
50 FFTW_KONST(+0.277785116509801112371415406974266437187468595);
51 static const fftw_real K415734806 =
52 FFTW_KONST(+0.415734806151272618539394188808952878369280406);
53 static const fftw_real K097545161 =
54 FFTW_KONST(+0.097545161008064133924142434238511120463845809);
55 static const fftw_real K490392640 =
56 FFTW_KONST(+0.490392640201615224563091118067119518486966865);
57 static const fftw_real K765366864 =
58 FFTW_KONST(+0.765366864730179543456919968060797733522689125);
59 static const fftw_real K1_847759065 =
60 FFTW_KONST(+1.847759065022573512256366378793576573644833252);
61 static const fftw_real K1_414213562 =
62 FFTW_KONST(+1.414213562373095048801688724209698078569671875);
63 static const fftw_real K2_000000000 =
64 FFTW_KONST(+2.000000000000000000000000000000000000000000000);
65 static const fftw_real K195090322 =
66 FFTW_KONST(+0.195090322016128267848284868477022240927691618);
67 static const fftw_real K980785280 =
68 FFTW_KONST(+0.980785280403230449126182236134239036973933731);
69 static const fftw_real K555570233 =
70 FFTW_KONST(+0.555570233019602224742830813948532874374937191);
71 static const fftw_real K831469612 =
72 FFTW_KONST(+0.831469612302545237078788377617905756738560812);
73 static const fftw_real K382683432 =
74 FFTW_KONST(+0.382683432365089771728459984030398866761344562);
75 static const fftw_real K923879532 =
76 FFTW_KONST(+0.923879532511286756128183189396788286822416626);
77 static const fftw_real K707106781 =
78 FFTW_KONST(+0.707106781186547524400844362104849039284835938);
79
80 /*
81 * Generator Id's :
82 * $Id: exprdag.ml,v 1.43 2003/03/16 23:43:46 stevenj Exp $
83 * $Id: fft.ml,v 1.44 2003/03/16 23:43:46 stevenj Exp $
84 * $Id: to_c.ml,v 1.26 2003/03/16 23:43:46 stevenj Exp $
85 */
86
fftw_hc2hc_forward_32(fftw_real * A,const fftw_complex * W,int iostride,int m,int dist)87 void fftw_hc2hc_forward_32(fftw_real *A, const fftw_complex *W,
88 int iostride, int m, int dist)
89 {
90 int i;
91 fftw_real *X;
92 fftw_real *Y;
93 X = A;
94 Y = A + (32 * iostride);
95 {
96 fftw_real tmp685;
97 fftw_real tmp813;
98 fftw_real tmp709;
99 fftw_real tmp761;
100 fftw_real tmp692;
101 fftw_real tmp826;
102 fftw_real tmp712;
103 fftw_real tmp760;
104 fftw_real tmp801;
105 fftw_real tmp821;
106 fftw_real tmp749;
107 fftw_real tmp777;
108 fftw_real tmp804;
109 fftw_real tmp822;
110 fftw_real tmp754;
111 fftw_real tmp778;
112 fftw_real tmp700;
113 fftw_real tmp814;
114 fftw_real tmp716;
115 fftw_real tmp758;
116 fftw_real tmp707;
117 fftw_real tmp815;
118 fftw_real tmp719;
119 fftw_real tmp757;
120 fftw_real tmp794;
121 fftw_real tmp818;
122 fftw_real tmp732;
123 fftw_real tmp774;
124 fftw_real tmp797;
125 fftw_real tmp819;
126 fftw_real tmp737;
127 fftw_real tmp775;
128 ASSERT_ALIGNED_DOUBLE;
129 {
130 fftw_real tmp679;
131 fftw_real tmp680;
132 fftw_real tmp681;
133 fftw_real tmp682;
134 fftw_real tmp683;
135 fftw_real tmp684;
136 ASSERT_ALIGNED_DOUBLE;
137 tmp679 = X[0];
138 tmp680 = X[16 * iostride];
139 tmp681 = tmp679 + tmp680;
140 tmp682 = X[8 * iostride];
141 tmp683 = X[24 * iostride];
142 tmp684 = tmp682 + tmp683;
143 tmp685 = tmp681 + tmp684;
144 tmp813 = tmp681 - tmp684;
145 tmp709 = tmp679 - tmp680;
146 tmp761 = tmp682 - tmp683;
147 }
148 {
149 fftw_real tmp688;
150 fftw_real tmp710;
151 fftw_real tmp691;
152 fftw_real tmp711;
153 ASSERT_ALIGNED_DOUBLE;
154 {
155 fftw_real tmp686;
156 fftw_real tmp687;
157 fftw_real tmp689;
158 fftw_real tmp690;
159 ASSERT_ALIGNED_DOUBLE;
160 tmp686 = X[4 * iostride];
161 tmp687 = X[20 * iostride];
162 tmp688 = tmp686 + tmp687;
163 tmp710 = tmp686 - tmp687;
164 tmp689 = X[28 * iostride];
165 tmp690 = X[12 * iostride];
166 tmp691 = tmp689 + tmp690;
167 tmp711 = tmp689 - tmp690;
168 }
169 tmp692 = tmp688 + tmp691;
170 tmp826 = tmp691 - tmp688;
171 tmp712 = K707106781 * (tmp710 + tmp711);
172 tmp760 = K707106781 * (tmp711 - tmp710);
173 }
174 {
175 fftw_real tmp741;
176 fftw_real tmp799;
177 fftw_real tmp753;
178 fftw_real tmp800;
179 fftw_real tmp744;
180 fftw_real tmp802;
181 fftw_real tmp747;
182 fftw_real tmp803;
183 fftw_real tmp748;
184 fftw_real tmp750;
185 ASSERT_ALIGNED_DOUBLE;
186 {
187 fftw_real tmp739;
188 fftw_real tmp740;
189 fftw_real tmp751;
190 fftw_real tmp752;
191 ASSERT_ALIGNED_DOUBLE;
192 tmp739 = X[31 * iostride];
193 tmp740 = X[15 * iostride];
194 tmp741 = tmp739 - tmp740;
195 tmp799 = tmp739 + tmp740;
196 tmp751 = X[7 * iostride];
197 tmp752 = X[23 * iostride];
198 tmp753 = tmp751 - tmp752;
199 tmp800 = tmp751 + tmp752;
200 }
201 {
202 fftw_real tmp742;
203 fftw_real tmp743;
204 fftw_real tmp745;
205 fftw_real tmp746;
206 ASSERT_ALIGNED_DOUBLE;
207 tmp742 = X[3 * iostride];
208 tmp743 = X[19 * iostride];
209 tmp744 = tmp742 - tmp743;
210 tmp802 = tmp742 + tmp743;
211 tmp745 = X[27 * iostride];
212 tmp746 = X[11 * iostride];
213 tmp747 = tmp745 - tmp746;
214 tmp803 = tmp745 + tmp746;
215 }
216 tmp801 = tmp799 + tmp800;
217 tmp821 = tmp799 - tmp800;
218 tmp748 = K707106781 * (tmp744 + tmp747);
219 tmp749 = tmp741 + tmp748;
220 tmp777 = tmp741 - tmp748;
221 tmp804 = tmp802 + tmp803;
222 tmp822 = tmp803 - tmp802;
223 tmp750 = K707106781 * (tmp747 - tmp744);
224 tmp754 = tmp750 - tmp753;
225 tmp778 = tmp753 + tmp750;
226 }
227 {
228 fftw_real tmp696;
229 fftw_real tmp714;
230 fftw_real tmp699;
231 fftw_real tmp715;
232 ASSERT_ALIGNED_DOUBLE;
233 {
234 fftw_real tmp694;
235 fftw_real tmp695;
236 fftw_real tmp697;
237 fftw_real tmp698;
238 ASSERT_ALIGNED_DOUBLE;
239 tmp694 = X[2 * iostride];
240 tmp695 = X[18 * iostride];
241 tmp696 = tmp694 + tmp695;
242 tmp714 = tmp694 - tmp695;
243 tmp697 = X[10 * iostride];
244 tmp698 = X[26 * iostride];
245 tmp699 = tmp697 + tmp698;
246 tmp715 = tmp697 - tmp698;
247 }
248 tmp700 = tmp696 + tmp699;
249 tmp814 = tmp696 - tmp699;
250 tmp716 = (K923879532 * tmp714) - (K382683432 * tmp715);
251 tmp758 = (K382683432 * tmp714) + (K923879532 * tmp715);
252 }
253 {
254 fftw_real tmp703;
255 fftw_real tmp717;
256 fftw_real tmp706;
257 fftw_real tmp718;
258 ASSERT_ALIGNED_DOUBLE;
259 {
260 fftw_real tmp701;
261 fftw_real tmp702;
262 fftw_real tmp704;
263 fftw_real tmp705;
264 ASSERT_ALIGNED_DOUBLE;
265 tmp701 = X[30 * iostride];
266 tmp702 = X[14 * iostride];
267 tmp703 = tmp701 + tmp702;
268 tmp717 = tmp701 - tmp702;
269 tmp704 = X[6 * iostride];
270 tmp705 = X[22 * iostride];
271 tmp706 = tmp704 + tmp705;
272 tmp718 = tmp704 - tmp705;
273 }
274 tmp707 = tmp703 + tmp706;
275 tmp815 = tmp703 - tmp706;
276 tmp719 = (K923879532 * tmp717) + (K382683432 * tmp718);
277 tmp757 = (K382683432 * tmp717) - (K923879532 * tmp718);
278 }
279 {
280 fftw_real tmp724;
281 fftw_real tmp792;
282 fftw_real tmp736;
283 fftw_real tmp793;
284 fftw_real tmp727;
285 fftw_real tmp795;
286 fftw_real tmp730;
287 fftw_real tmp796;
288 fftw_real tmp731;
289 fftw_real tmp733;
290 ASSERT_ALIGNED_DOUBLE;
291 {
292 fftw_real tmp722;
293 fftw_real tmp723;
294 fftw_real tmp734;
295 fftw_real tmp735;
296 ASSERT_ALIGNED_DOUBLE;
297 tmp722 = X[iostride];
298 tmp723 = X[17 * iostride];
299 tmp724 = tmp722 - tmp723;
300 tmp792 = tmp722 + tmp723;
301 tmp734 = X[9 * iostride];
302 tmp735 = X[25 * iostride];
303 tmp736 = tmp734 - tmp735;
304 tmp793 = tmp734 + tmp735;
305 }
306 {
307 fftw_real tmp725;
308 fftw_real tmp726;
309 fftw_real tmp728;
310 fftw_real tmp729;
311 ASSERT_ALIGNED_DOUBLE;
312 tmp725 = X[5 * iostride];
313 tmp726 = X[21 * iostride];
314 tmp727 = tmp725 - tmp726;
315 tmp795 = tmp725 + tmp726;
316 tmp728 = X[29 * iostride];
317 tmp729 = X[13 * iostride];
318 tmp730 = tmp728 - tmp729;
319 tmp796 = tmp728 + tmp729;
320 }
321 tmp794 = tmp792 + tmp793;
322 tmp818 = tmp792 - tmp793;
323 tmp731 = K707106781 * (tmp727 + tmp730);
324 tmp732 = tmp724 + tmp731;
325 tmp774 = tmp724 - tmp731;
326 tmp797 = tmp795 + tmp796;
327 tmp819 = tmp796 - tmp795;
328 tmp733 = K707106781 * (tmp730 - tmp727);
329 tmp737 = tmp733 - tmp736;
330 tmp775 = tmp736 + tmp733;
331 }
332 {
333 fftw_real tmp693;
334 fftw_real tmp708;
335 fftw_real tmp809;
336 fftw_real tmp810;
337 fftw_real tmp811;
338 fftw_real tmp812;
339 ASSERT_ALIGNED_DOUBLE;
340 tmp693 = tmp685 + tmp692;
341 tmp708 = tmp700 + tmp707;
342 tmp809 = tmp693 + tmp708;
343 tmp810 = tmp794 + tmp797;
344 tmp811 = tmp801 + tmp804;
345 tmp812 = tmp810 + tmp811;
346 X[8 * iostride] = tmp693 - tmp708;
347 Y[-8 * iostride] = tmp811 - tmp810;
348 X[16 * iostride] = tmp809 - tmp812;
349 X[0] = tmp809 + tmp812;
350 }
351 {
352 fftw_real tmp791;
353 fftw_real tmp807;
354 fftw_real tmp806;
355 fftw_real tmp808;
356 fftw_real tmp798;
357 fftw_real tmp805;
358 ASSERT_ALIGNED_DOUBLE;
359 tmp791 = tmp685 - tmp692;
360 tmp807 = tmp707 - tmp700;
361 tmp798 = tmp794 - tmp797;
362 tmp805 = tmp801 - tmp804;
363 tmp806 = K707106781 * (tmp798 + tmp805);
364 tmp808 = K707106781 * (tmp805 - tmp798);
365 X[12 * iostride] = tmp791 - tmp806;
366 X[4 * iostride] = tmp791 + tmp806;
367 Y[-4 * iostride] = tmp807 + tmp808;
368 Y[-12 * iostride] = tmp808 - tmp807;
369 }
370 {
371 fftw_real tmp817;
372 fftw_real tmp833;
373 fftw_real tmp827;
374 fftw_real tmp829;
375 fftw_real tmp824;
376 fftw_real tmp828;
377 fftw_real tmp832;
378 fftw_real tmp834;
379 fftw_real tmp816;
380 fftw_real tmp825;
381 ASSERT_ALIGNED_DOUBLE;
382 tmp816 = K707106781 * (tmp814 + tmp815);
383 tmp817 = tmp813 + tmp816;
384 tmp833 = tmp813 - tmp816;
385 tmp825 = K707106781 * (tmp815 - tmp814);
386 tmp827 = tmp825 - tmp826;
387 tmp829 = tmp826 + tmp825;
388 {
389 fftw_real tmp820;
390 fftw_real tmp823;
391 fftw_real tmp830;
392 fftw_real tmp831;
393 ASSERT_ALIGNED_DOUBLE;
394 tmp820 = (K923879532 * tmp818) + (K382683432 * tmp819);
395 tmp823 = (K923879532 * tmp821) - (K382683432 * tmp822);
396 tmp824 = tmp820 + tmp823;
397 tmp828 = tmp823 - tmp820;
398 tmp830 = (K923879532 * tmp819) - (K382683432 * tmp818);
399 tmp831 = (K382683432 * tmp821) + (K923879532 * tmp822);
400 tmp832 = tmp830 + tmp831;
401 tmp834 = tmp831 - tmp830;
402 }
403 X[14 * iostride] = tmp817 - tmp824;
404 X[2 * iostride] = tmp817 + tmp824;
405 Y[-6 * iostride] = tmp827 + tmp828;
406 Y[-10 * iostride] = tmp828 - tmp827;
407 Y[-2 * iostride] = tmp829 + tmp832;
408 Y[-14 * iostride] = tmp832 - tmp829;
409 X[10 * iostride] = tmp833 - tmp834;
410 X[6 * iostride] = tmp833 + tmp834;
411 }
412 {
413 fftw_real tmp773;
414 fftw_real tmp789;
415 fftw_real tmp788;
416 fftw_real tmp790;
417 fftw_real tmp780;
418 fftw_real tmp784;
419 fftw_real tmp783;
420 fftw_real tmp785;
421 ASSERT_ALIGNED_DOUBLE;
422 {
423 fftw_real tmp771;
424 fftw_real tmp772;
425 fftw_real tmp786;
426 fftw_real tmp787;
427 ASSERT_ALIGNED_DOUBLE;
428 tmp771 = tmp709 - tmp712;
429 tmp772 = tmp758 + tmp757;
430 tmp773 = tmp771 + tmp772;
431 tmp789 = tmp771 - tmp772;
432 tmp786 = (K831469612 * tmp775) - (K555570233 * tmp774);
433 tmp787 = (K555570233 * tmp777) + (K831469612 * tmp778);
434 tmp788 = tmp786 + tmp787;
435 tmp790 = tmp787 - tmp786;
436 }
437 {
438 fftw_real tmp776;
439 fftw_real tmp779;
440 fftw_real tmp781;
441 fftw_real tmp782;
442 ASSERT_ALIGNED_DOUBLE;
443 tmp776 = (K831469612 * tmp774) + (K555570233 * tmp775);
444 tmp779 = (K831469612 * tmp777) - (K555570233 * tmp778);
445 tmp780 = tmp776 + tmp779;
446 tmp784 = tmp779 - tmp776;
447 tmp781 = tmp719 - tmp716;
448 tmp782 = tmp761 + tmp760;
449 tmp783 = tmp781 - tmp782;
450 tmp785 = tmp782 + tmp781;
451 }
452 X[13 * iostride] = tmp773 - tmp780;
453 X[3 * iostride] = tmp773 + tmp780;
454 Y[-5 * iostride] = tmp783 + tmp784;
455 Y[-11 * iostride] = tmp784 - tmp783;
456 Y[-3 * iostride] = tmp785 + tmp788;
457 Y[-13 * iostride] = tmp788 - tmp785;
458 X[11 * iostride] = tmp789 - tmp790;
459 X[5 * iostride] = tmp789 + tmp790;
460 }
461 {
462 fftw_real tmp721;
463 fftw_real tmp769;
464 fftw_real tmp768;
465 fftw_real tmp770;
466 fftw_real tmp756;
467 fftw_real tmp764;
468 fftw_real tmp763;
469 fftw_real tmp765;
470 ASSERT_ALIGNED_DOUBLE;
471 {
472 fftw_real tmp713;
473 fftw_real tmp720;
474 fftw_real tmp766;
475 fftw_real tmp767;
476 ASSERT_ALIGNED_DOUBLE;
477 tmp713 = tmp709 + tmp712;
478 tmp720 = tmp716 + tmp719;
479 tmp721 = tmp713 + tmp720;
480 tmp769 = tmp713 - tmp720;
481 tmp766 = (K980785280 * tmp737) - (K195090322 * tmp732);
482 tmp767 = (K195090322 * tmp749) + (K980785280 * tmp754);
483 tmp768 = tmp766 + tmp767;
484 tmp770 = tmp767 - tmp766;
485 }
486 {
487 fftw_real tmp738;
488 fftw_real tmp755;
489 fftw_real tmp759;
490 fftw_real tmp762;
491 ASSERT_ALIGNED_DOUBLE;
492 tmp738 = (K980785280 * tmp732) + (K195090322 * tmp737);
493 tmp755 = (K980785280 * tmp749) - (K195090322 * tmp754);
494 tmp756 = tmp738 + tmp755;
495 tmp764 = tmp755 - tmp738;
496 tmp759 = tmp757 - tmp758;
497 tmp762 = tmp760 - tmp761;
498 tmp763 = tmp759 - tmp762;
499 tmp765 = tmp762 + tmp759;
500 }
501 X[15 * iostride] = tmp721 - tmp756;
502 X[iostride] = tmp721 + tmp756;
503 Y[-7 * iostride] = tmp763 + tmp764;
504 Y[-9 * iostride] = tmp764 - tmp763;
505 Y[-iostride] = tmp765 + tmp768;
506 Y[-15 * iostride] = tmp768 - tmp765;
507 X[9 * iostride] = tmp769 - tmp770;
508 X[7 * iostride] = tmp769 + tmp770;
509 }
510 }
511 X = X + dist;
512 Y = Y - dist;
513 for (i = 2; i < m; i = i + 2, X = X + dist, Y = Y - dist, W = W + 31) {
514 fftw_real tmp201;
515 fftw_real tmp533;
516 fftw_real tmp653;
517 fftw_real tmp667;
518 fftw_real tmp623;
519 fftw_real tmp637;
520 fftw_real tmp373;
521 fftw_real tmp485;
522 fftw_real tmp343;
523 fftw_real tmp561;
524 fftw_real tmp458;
525 fftw_real tmp508;
526 fftw_real tmp568;
527 fftw_real tmp604;
528 fftw_real tmp441;
529 fftw_real tmp505;
530 fftw_real tmp224;
531 fftw_real tmp636;
532 fftw_real tmp383;
533 fftw_real tmp487;
534 fftw_real tmp536;
535 fftw_real tmp618;
536 fftw_real tmp378;
537 fftw_real tmp486;
538 fftw_real tmp366;
539 fftw_real tmp569;
540 fftw_real tmp564;
541 fftw_real tmp605;
542 fftw_real tmp452;
543 fftw_real tmp509;
544 fftw_real tmp461;
545 fftw_real tmp506;
546 fftw_real tmp248;
547 fftw_real tmp541;
548 fftw_real tmp395;
549 fftw_real tmp491;
550 fftw_real tmp540;
551 fftw_real tmp594;
552 fftw_real tmp390;
553 fftw_real tmp490;
554 fftw_real tmp296;
555 fftw_real tmp555;
556 fftw_real tmp431;
557 fftw_real tmp498;
558 fftw_real tmp552;
559 fftw_real tmp599;
560 fftw_real tmp414;
561 fftw_real tmp501;
562 fftw_real tmp271;
563 fftw_real tmp543;
564 fftw_real tmp406;
565 fftw_real tmp494;
566 fftw_real tmp546;
567 fftw_real tmp595;
568 fftw_real tmp401;
569 fftw_real tmp493;
570 fftw_real tmp319;
571 fftw_real tmp553;
572 fftw_real tmp558;
573 fftw_real tmp600;
574 fftw_real tmp425;
575 fftw_real tmp499;
576 fftw_real tmp434;
577 fftw_real tmp502;
578 ASSERT_ALIGNED_DOUBLE;
579 {
580 fftw_real tmp183;
581 fftw_real tmp621;
582 fftw_real tmp188;
583 fftw_real tmp620;
584 fftw_real tmp194;
585 fftw_real tmp370;
586 fftw_real tmp199;
587 fftw_real tmp371;
588 ASSERT_ALIGNED_DOUBLE;
589 tmp183 = X[0];
590 tmp621 = Y[-31 * iostride];
591 {
592 fftw_real tmp185;
593 fftw_real tmp187;
594 fftw_real tmp184;
595 fftw_real tmp186;
596 ASSERT_ALIGNED_DOUBLE;
597 tmp185 = X[16 * iostride];
598 tmp187 = Y[-15 * iostride];
599 tmp184 = c_re(W[15]);
600 tmp186 = c_im(W[15]);
601 tmp188 = (tmp184 * tmp185) - (tmp186 * tmp187);
602 tmp620 = (tmp186 * tmp185) + (tmp184 * tmp187);
603 }
604 {
605 fftw_real tmp191;
606 fftw_real tmp193;
607 fftw_real tmp190;
608 fftw_real tmp192;
609 ASSERT_ALIGNED_DOUBLE;
610 tmp191 = X[8 * iostride];
611 tmp193 = Y[-23 * iostride];
612 tmp190 = c_re(W[7]);
613 tmp192 = c_im(W[7]);
614 tmp194 = (tmp190 * tmp191) - (tmp192 * tmp193);
615 tmp370 = (tmp192 * tmp191) + (tmp190 * tmp193);
616 }
617 {
618 fftw_real tmp196;
619 fftw_real tmp198;
620 fftw_real tmp195;
621 fftw_real tmp197;
622 ASSERT_ALIGNED_DOUBLE;
623 tmp196 = X[24 * iostride];
624 tmp198 = Y[-7 * iostride];
625 tmp195 = c_re(W[23]);
626 tmp197 = c_im(W[23]);
627 tmp199 = (tmp195 * tmp196) - (tmp197 * tmp198);
628 tmp371 = (tmp197 * tmp196) + (tmp195 * tmp198);
629 }
630 {
631 fftw_real tmp189;
632 fftw_real tmp200;
633 fftw_real tmp651;
634 fftw_real tmp652;
635 ASSERT_ALIGNED_DOUBLE;
636 tmp189 = tmp183 + tmp188;
637 tmp200 = tmp194 + tmp199;
638 tmp201 = tmp189 + tmp200;
639 tmp533 = tmp189 - tmp200;
640 tmp651 = tmp621 - tmp620;
641 tmp652 = tmp194 - tmp199;
642 tmp653 = tmp651 - tmp652;
643 tmp667 = tmp652 + tmp651;
644 }
645 {
646 fftw_real tmp619;
647 fftw_real tmp622;
648 fftw_real tmp369;
649 fftw_real tmp372;
650 ASSERT_ALIGNED_DOUBLE;
651 tmp619 = tmp370 + tmp371;
652 tmp622 = tmp620 + tmp621;
653 tmp623 = tmp619 + tmp622;
654 tmp637 = tmp622 - tmp619;
655 tmp369 = tmp183 - tmp188;
656 tmp372 = tmp370 - tmp371;
657 tmp373 = tmp369 - tmp372;
658 tmp485 = tmp369 + tmp372;
659 }
660 }
661 {
662 fftw_real tmp325;
663 fftw_real tmp454;
664 fftw_real tmp341;
665 fftw_real tmp439;
666 fftw_real tmp330;
667 fftw_real tmp455;
668 fftw_real tmp336;
669 fftw_real tmp438;
670 ASSERT_ALIGNED_DOUBLE;
671 {
672 fftw_real tmp322;
673 fftw_real tmp324;
674 fftw_real tmp321;
675 fftw_real tmp323;
676 ASSERT_ALIGNED_DOUBLE;
677 tmp322 = X[31 * iostride];
678 tmp324 = Y[0];
679 tmp321 = c_re(W[30]);
680 tmp323 = c_im(W[30]);
681 tmp325 = (tmp321 * tmp322) - (tmp323 * tmp324);
682 tmp454 = (tmp323 * tmp322) + (tmp321 * tmp324);
683 }
684 {
685 fftw_real tmp338;
686 fftw_real tmp340;
687 fftw_real tmp337;
688 fftw_real tmp339;
689 ASSERT_ALIGNED_DOUBLE;
690 tmp338 = X[23 * iostride];
691 tmp340 = Y[-8 * iostride];
692 tmp337 = c_re(W[22]);
693 tmp339 = c_im(W[22]);
694 tmp341 = (tmp337 * tmp338) - (tmp339 * tmp340);
695 tmp439 = (tmp339 * tmp338) + (tmp337 * tmp340);
696 }
697 {
698 fftw_real tmp327;
699 fftw_real tmp329;
700 fftw_real tmp326;
701 fftw_real tmp328;
702 ASSERT_ALIGNED_DOUBLE;
703 tmp327 = X[15 * iostride];
704 tmp329 = Y[-16 * iostride];
705 tmp326 = c_re(W[14]);
706 tmp328 = c_im(W[14]);
707 tmp330 = (tmp326 * tmp327) - (tmp328 * tmp329);
708 tmp455 = (tmp328 * tmp327) + (tmp326 * tmp329);
709 }
710 {
711 fftw_real tmp333;
712 fftw_real tmp335;
713 fftw_real tmp332;
714 fftw_real tmp334;
715 ASSERT_ALIGNED_DOUBLE;
716 tmp333 = X[7 * iostride];
717 tmp335 = Y[-24 * iostride];
718 tmp332 = c_re(W[6]);
719 tmp334 = c_im(W[6]);
720 tmp336 = (tmp332 * tmp333) - (tmp334 * tmp335);
721 tmp438 = (tmp334 * tmp333) + (tmp332 * tmp335);
722 }
723 {
724 fftw_real tmp331;
725 fftw_real tmp342;
726 fftw_real tmp456;
727 fftw_real tmp457;
728 ASSERT_ALIGNED_DOUBLE;
729 tmp331 = tmp325 + tmp330;
730 tmp342 = tmp336 + tmp341;
731 tmp343 = tmp331 + tmp342;
732 tmp561 = tmp331 - tmp342;
733 tmp456 = tmp454 - tmp455;
734 tmp457 = tmp336 - tmp341;
735 tmp458 = tmp456 + tmp457;
736 tmp508 = tmp456 - tmp457;
737 }
738 {
739 fftw_real tmp566;
740 fftw_real tmp567;
741 fftw_real tmp437;
742 fftw_real tmp440;
743 ASSERT_ALIGNED_DOUBLE;
744 tmp566 = tmp454 + tmp455;
745 tmp567 = tmp438 + tmp439;
746 tmp568 = tmp566 - tmp567;
747 tmp604 = tmp566 + tmp567;
748 tmp437 = tmp325 - tmp330;
749 tmp440 = tmp438 - tmp439;
750 tmp441 = tmp437 - tmp440;
751 tmp505 = tmp437 + tmp440;
752 }
753 }
754 {
755 fftw_real tmp206;
756 fftw_real tmp374;
757 fftw_real tmp222;
758 fftw_real tmp381;
759 fftw_real tmp211;
760 fftw_real tmp375;
761 fftw_real tmp217;
762 fftw_real tmp380;
763 ASSERT_ALIGNED_DOUBLE;
764 {
765 fftw_real tmp203;
766 fftw_real tmp205;
767 fftw_real tmp202;
768 fftw_real tmp204;
769 ASSERT_ALIGNED_DOUBLE;
770 tmp203 = X[4 * iostride];
771 tmp205 = Y[-27 * iostride];
772 tmp202 = c_re(W[3]);
773 tmp204 = c_im(W[3]);
774 tmp206 = (tmp202 * tmp203) - (tmp204 * tmp205);
775 tmp374 = (tmp204 * tmp203) + (tmp202 * tmp205);
776 }
777 {
778 fftw_real tmp219;
779 fftw_real tmp221;
780 fftw_real tmp218;
781 fftw_real tmp220;
782 ASSERT_ALIGNED_DOUBLE;
783 tmp219 = X[12 * iostride];
784 tmp221 = Y[-19 * iostride];
785 tmp218 = c_re(W[11]);
786 tmp220 = c_im(W[11]);
787 tmp222 = (tmp218 * tmp219) - (tmp220 * tmp221);
788 tmp381 = (tmp220 * tmp219) + (tmp218 * tmp221);
789 }
790 {
791 fftw_real tmp208;
792 fftw_real tmp210;
793 fftw_real tmp207;
794 fftw_real tmp209;
795 ASSERT_ALIGNED_DOUBLE;
796 tmp208 = X[20 * iostride];
797 tmp210 = Y[-11 * iostride];
798 tmp207 = c_re(W[19]);
799 tmp209 = c_im(W[19]);
800 tmp211 = (tmp207 * tmp208) - (tmp209 * tmp210);
801 tmp375 = (tmp209 * tmp208) + (tmp207 * tmp210);
802 }
803 {
804 fftw_real tmp214;
805 fftw_real tmp216;
806 fftw_real tmp213;
807 fftw_real tmp215;
808 ASSERT_ALIGNED_DOUBLE;
809 tmp214 = X[28 * iostride];
810 tmp216 = Y[-3 * iostride];
811 tmp213 = c_re(W[27]);
812 tmp215 = c_im(W[27]);
813 tmp217 = (tmp213 * tmp214) - (tmp215 * tmp216);
814 tmp380 = (tmp215 * tmp214) + (tmp213 * tmp216);
815 }
816 {
817 fftw_real tmp212;
818 fftw_real tmp223;
819 fftw_real tmp379;
820 fftw_real tmp382;
821 ASSERT_ALIGNED_DOUBLE;
822 tmp212 = tmp206 + tmp211;
823 tmp223 = tmp217 + tmp222;
824 tmp224 = tmp212 + tmp223;
825 tmp636 = tmp223 - tmp212;
826 tmp379 = tmp217 - tmp222;
827 tmp382 = tmp380 - tmp381;
828 tmp383 = tmp379 + tmp382;
829 tmp487 = tmp379 - tmp382;
830 }
831 {
832 fftw_real tmp534;
833 fftw_real tmp535;
834 fftw_real tmp376;
835 fftw_real tmp377;
836 ASSERT_ALIGNED_DOUBLE;
837 tmp534 = tmp374 + tmp375;
838 tmp535 = tmp380 + tmp381;
839 tmp536 = tmp534 - tmp535;
840 tmp618 = tmp534 + tmp535;
841 tmp376 = tmp374 - tmp375;
842 tmp377 = tmp206 - tmp211;
843 tmp378 = tmp376 - tmp377;
844 tmp486 = tmp377 + tmp376;
845 }
846 }
847 {
848 fftw_real tmp348;
849 fftw_real tmp442;
850 fftw_real tmp353;
851 fftw_real tmp443;
852 fftw_real tmp444;
853 fftw_real tmp445;
854 fftw_real tmp359;
855 fftw_real tmp448;
856 fftw_real tmp364;
857 fftw_real tmp449;
858 fftw_real tmp447;
859 fftw_real tmp450;
860 ASSERT_ALIGNED_DOUBLE;
861 {
862 fftw_real tmp345;
863 fftw_real tmp347;
864 fftw_real tmp344;
865 fftw_real tmp346;
866 ASSERT_ALIGNED_DOUBLE;
867 tmp345 = X[3 * iostride];
868 tmp347 = Y[-28 * iostride];
869 tmp344 = c_re(W[2]);
870 tmp346 = c_im(W[2]);
871 tmp348 = (tmp344 * tmp345) - (tmp346 * tmp347);
872 tmp442 = (tmp346 * tmp345) + (tmp344 * tmp347);
873 }
874 {
875 fftw_real tmp350;
876 fftw_real tmp352;
877 fftw_real tmp349;
878 fftw_real tmp351;
879 ASSERT_ALIGNED_DOUBLE;
880 tmp350 = X[19 * iostride];
881 tmp352 = Y[-12 * iostride];
882 tmp349 = c_re(W[18]);
883 tmp351 = c_im(W[18]);
884 tmp353 = (tmp349 * tmp350) - (tmp351 * tmp352);
885 tmp443 = (tmp351 * tmp350) + (tmp349 * tmp352);
886 }
887 tmp444 = tmp442 - tmp443;
888 tmp445 = tmp348 - tmp353;
889 {
890 fftw_real tmp356;
891 fftw_real tmp358;
892 fftw_real tmp355;
893 fftw_real tmp357;
894 ASSERT_ALIGNED_DOUBLE;
895 tmp356 = X[27 * iostride];
896 tmp358 = Y[-4 * iostride];
897 tmp355 = c_re(W[26]);
898 tmp357 = c_im(W[26]);
899 tmp359 = (tmp355 * tmp356) - (tmp357 * tmp358);
900 tmp448 = (tmp357 * tmp356) + (tmp355 * tmp358);
901 }
902 {
903 fftw_real tmp361;
904 fftw_real tmp363;
905 fftw_real tmp360;
906 fftw_real tmp362;
907 ASSERT_ALIGNED_DOUBLE;
908 tmp361 = X[11 * iostride];
909 tmp363 = Y[-20 * iostride];
910 tmp360 = c_re(W[10]);
911 tmp362 = c_im(W[10]);
912 tmp364 = (tmp360 * tmp361) - (tmp362 * tmp363);
913 tmp449 = (tmp362 * tmp361) + (tmp360 * tmp363);
914 }
915 tmp447 = tmp359 - tmp364;
916 tmp450 = tmp448 - tmp449;
917 {
918 fftw_real tmp354;
919 fftw_real tmp365;
920 fftw_real tmp562;
921 fftw_real tmp563;
922 ASSERT_ALIGNED_DOUBLE;
923 tmp354 = tmp348 + tmp353;
924 tmp365 = tmp359 + tmp364;
925 tmp366 = tmp354 + tmp365;
926 tmp569 = tmp365 - tmp354;
927 tmp562 = tmp442 + tmp443;
928 tmp563 = tmp448 + tmp449;
929 tmp564 = tmp562 - tmp563;
930 tmp605 = tmp562 + tmp563;
931 }
932 {
933 fftw_real tmp446;
934 fftw_real tmp451;
935 fftw_real tmp459;
936 fftw_real tmp460;
937 ASSERT_ALIGNED_DOUBLE;
938 tmp446 = tmp444 - tmp445;
939 tmp451 = tmp447 + tmp450;
940 tmp452 = K707106781 * (tmp446 - tmp451);
941 tmp509 = K707106781 * (tmp446 + tmp451);
942 tmp459 = tmp447 - tmp450;
943 tmp460 = tmp445 + tmp444;
944 tmp461 = K707106781 * (tmp459 - tmp460);
945 tmp506 = K707106781 * (tmp460 + tmp459);
946 }
947 }
948 {
949 fftw_real tmp230;
950 fftw_real tmp386;
951 fftw_real tmp246;
952 fftw_real tmp393;
953 fftw_real tmp235;
954 fftw_real tmp387;
955 fftw_real tmp241;
956 fftw_real tmp392;
957 ASSERT_ALIGNED_DOUBLE;
958 {
959 fftw_real tmp227;
960 fftw_real tmp229;
961 fftw_real tmp226;
962 fftw_real tmp228;
963 ASSERT_ALIGNED_DOUBLE;
964 tmp227 = X[2 * iostride];
965 tmp229 = Y[-29 * iostride];
966 tmp226 = c_re(W[1]);
967 tmp228 = c_im(W[1]);
968 tmp230 = (tmp226 * tmp227) - (tmp228 * tmp229);
969 tmp386 = (tmp228 * tmp227) + (tmp226 * tmp229);
970 }
971 {
972 fftw_real tmp243;
973 fftw_real tmp245;
974 fftw_real tmp242;
975 fftw_real tmp244;
976 ASSERT_ALIGNED_DOUBLE;
977 tmp243 = X[26 * iostride];
978 tmp245 = Y[-5 * iostride];
979 tmp242 = c_re(W[25]);
980 tmp244 = c_im(W[25]);
981 tmp246 = (tmp242 * tmp243) - (tmp244 * tmp245);
982 tmp393 = (tmp244 * tmp243) + (tmp242 * tmp245);
983 }
984 {
985 fftw_real tmp232;
986 fftw_real tmp234;
987 fftw_real tmp231;
988 fftw_real tmp233;
989 ASSERT_ALIGNED_DOUBLE;
990 tmp232 = X[18 * iostride];
991 tmp234 = Y[-13 * iostride];
992 tmp231 = c_re(W[17]);
993 tmp233 = c_im(W[17]);
994 tmp235 = (tmp231 * tmp232) - (tmp233 * tmp234);
995 tmp387 = (tmp233 * tmp232) + (tmp231 * tmp234);
996 }
997 {
998 fftw_real tmp238;
999 fftw_real tmp240;
1000 fftw_real tmp237;
1001 fftw_real tmp239;
1002 ASSERT_ALIGNED_DOUBLE;
1003 tmp238 = X[10 * iostride];
1004 tmp240 = Y[-21 * iostride];
1005 tmp237 = c_re(W[9]);
1006 tmp239 = c_im(W[9]);
1007 tmp241 = (tmp237 * tmp238) - (tmp239 * tmp240);
1008 tmp392 = (tmp239 * tmp238) + (tmp237 * tmp240);
1009 }
1010 {
1011 fftw_real tmp236;
1012 fftw_real tmp247;
1013 fftw_real tmp391;
1014 fftw_real tmp394;
1015 ASSERT_ALIGNED_DOUBLE;
1016 tmp236 = tmp230 + tmp235;
1017 tmp247 = tmp241 + tmp246;
1018 tmp248 = tmp236 + tmp247;
1019 tmp541 = tmp236 - tmp247;
1020 tmp391 = tmp230 - tmp235;
1021 tmp394 = tmp392 - tmp393;
1022 tmp395 = tmp391 - tmp394;
1023 tmp491 = tmp391 + tmp394;
1024 }
1025 {
1026 fftw_real tmp538;
1027 fftw_real tmp539;
1028 fftw_real tmp388;
1029 fftw_real tmp389;
1030 ASSERT_ALIGNED_DOUBLE;
1031 tmp538 = tmp386 + tmp387;
1032 tmp539 = tmp392 + tmp393;
1033 tmp540 = tmp538 - tmp539;
1034 tmp594 = tmp538 + tmp539;
1035 tmp388 = tmp386 - tmp387;
1036 tmp389 = tmp241 - tmp246;
1037 tmp390 = tmp388 + tmp389;
1038 tmp490 = tmp388 - tmp389;
1039 }
1040 }
1041 {
1042 fftw_real tmp278;
1043 fftw_real tmp410;
1044 fftw_real tmp294;
1045 fftw_real tmp429;
1046 fftw_real tmp283;
1047 fftw_real tmp411;
1048 fftw_real tmp289;
1049 fftw_real tmp428;
1050 ASSERT_ALIGNED_DOUBLE;
1051 {
1052 fftw_real tmp275;
1053 fftw_real tmp277;
1054 fftw_real tmp274;
1055 fftw_real tmp276;
1056 ASSERT_ALIGNED_DOUBLE;
1057 tmp275 = X[iostride];
1058 tmp277 = Y[-30 * iostride];
1059 tmp274 = c_re(W[0]);
1060 tmp276 = c_im(W[0]);
1061 tmp278 = (tmp274 * tmp275) - (tmp276 * tmp277);
1062 tmp410 = (tmp276 * tmp275) + (tmp274 * tmp277);
1063 }
1064 {
1065 fftw_real tmp291;
1066 fftw_real tmp293;
1067 fftw_real tmp290;
1068 fftw_real tmp292;
1069 ASSERT_ALIGNED_DOUBLE;
1070 tmp291 = X[25 * iostride];
1071 tmp293 = Y[-6 * iostride];
1072 tmp290 = c_re(W[24]);
1073 tmp292 = c_im(W[24]);
1074 tmp294 = (tmp290 * tmp291) - (tmp292 * tmp293);
1075 tmp429 = (tmp292 * tmp291) + (tmp290 * tmp293);
1076 }
1077 {
1078 fftw_real tmp280;
1079 fftw_real tmp282;
1080 fftw_real tmp279;
1081 fftw_real tmp281;
1082 ASSERT_ALIGNED_DOUBLE;
1083 tmp280 = X[17 * iostride];
1084 tmp282 = Y[-14 * iostride];
1085 tmp279 = c_re(W[16]);
1086 tmp281 = c_im(W[16]);
1087 tmp283 = (tmp279 * tmp280) - (tmp281 * tmp282);
1088 tmp411 = (tmp281 * tmp280) + (tmp279 * tmp282);
1089 }
1090 {
1091 fftw_real tmp286;
1092 fftw_real tmp288;
1093 fftw_real tmp285;
1094 fftw_real tmp287;
1095 ASSERT_ALIGNED_DOUBLE;
1096 tmp286 = X[9 * iostride];
1097 tmp288 = Y[-22 * iostride];
1098 tmp285 = c_re(W[8]);
1099 tmp287 = c_im(W[8]);
1100 tmp289 = (tmp285 * tmp286) - (tmp287 * tmp288);
1101 tmp428 = (tmp287 * tmp286) + (tmp285 * tmp288);
1102 }
1103 {
1104 fftw_real tmp284;
1105 fftw_real tmp295;
1106 fftw_real tmp427;
1107 fftw_real tmp430;
1108 ASSERT_ALIGNED_DOUBLE;
1109 tmp284 = tmp278 + tmp283;
1110 tmp295 = tmp289 + tmp294;
1111 tmp296 = tmp284 + tmp295;
1112 tmp555 = tmp284 - tmp295;
1113 tmp427 = tmp278 - tmp283;
1114 tmp430 = tmp428 - tmp429;
1115 tmp431 = tmp427 - tmp430;
1116 tmp498 = tmp427 + tmp430;
1117 }
1118 {
1119 fftw_real tmp550;
1120 fftw_real tmp551;
1121 fftw_real tmp412;
1122 fftw_real tmp413;
1123 ASSERT_ALIGNED_DOUBLE;
1124 tmp550 = tmp410 + tmp411;
1125 tmp551 = tmp428 + tmp429;
1126 tmp552 = tmp550 - tmp551;
1127 tmp599 = tmp550 + tmp551;
1128 tmp412 = tmp410 - tmp411;
1129 tmp413 = tmp289 - tmp294;
1130 tmp414 = tmp412 + tmp413;
1131 tmp501 = tmp412 - tmp413;
1132 }
1133 }
1134 {
1135 fftw_real tmp253;
1136 fftw_real tmp397;
1137 fftw_real tmp269;
1138 fftw_real tmp404;
1139 fftw_real tmp258;
1140 fftw_real tmp398;
1141 fftw_real tmp264;
1142 fftw_real tmp403;
1143 ASSERT_ALIGNED_DOUBLE;
1144 {
1145 fftw_real tmp250;
1146 fftw_real tmp252;
1147 fftw_real tmp249;
1148 fftw_real tmp251;
1149 ASSERT_ALIGNED_DOUBLE;
1150 tmp250 = X[30 * iostride];
1151 tmp252 = Y[-iostride];
1152 tmp249 = c_re(W[29]);
1153 tmp251 = c_im(W[29]);
1154 tmp253 = (tmp249 * tmp250) - (tmp251 * tmp252);
1155 tmp397 = (tmp251 * tmp250) + (tmp249 * tmp252);
1156 }
1157 {
1158 fftw_real tmp266;
1159 fftw_real tmp268;
1160 fftw_real tmp265;
1161 fftw_real tmp267;
1162 ASSERT_ALIGNED_DOUBLE;
1163 tmp266 = X[22 * iostride];
1164 tmp268 = Y[-9 * iostride];
1165 tmp265 = c_re(W[21]);
1166 tmp267 = c_im(W[21]);
1167 tmp269 = (tmp265 * tmp266) - (tmp267 * tmp268);
1168 tmp404 = (tmp267 * tmp266) + (tmp265 * tmp268);
1169 }
1170 {
1171 fftw_real tmp255;
1172 fftw_real tmp257;
1173 fftw_real tmp254;
1174 fftw_real tmp256;
1175 ASSERT_ALIGNED_DOUBLE;
1176 tmp255 = X[14 * iostride];
1177 tmp257 = Y[-17 * iostride];
1178 tmp254 = c_re(W[13]);
1179 tmp256 = c_im(W[13]);
1180 tmp258 = (tmp254 * tmp255) - (tmp256 * tmp257);
1181 tmp398 = (tmp256 * tmp255) + (tmp254 * tmp257);
1182 }
1183 {
1184 fftw_real tmp261;
1185 fftw_real tmp263;
1186 fftw_real tmp260;
1187 fftw_real tmp262;
1188 ASSERT_ALIGNED_DOUBLE;
1189 tmp261 = X[6 * iostride];
1190 tmp263 = Y[-25 * iostride];
1191 tmp260 = c_re(W[5]);
1192 tmp262 = c_im(W[5]);
1193 tmp264 = (tmp260 * tmp261) - (tmp262 * tmp263);
1194 tmp403 = (tmp262 * tmp261) + (tmp260 * tmp263);
1195 }
1196 {
1197 fftw_real tmp259;
1198 fftw_real tmp270;
1199 fftw_real tmp402;
1200 fftw_real tmp405;
1201 ASSERT_ALIGNED_DOUBLE;
1202 tmp259 = tmp253 + tmp258;
1203 tmp270 = tmp264 + tmp269;
1204 tmp271 = tmp259 + tmp270;
1205 tmp543 = tmp259 - tmp270;
1206 tmp402 = tmp253 - tmp258;
1207 tmp405 = tmp403 - tmp404;
1208 tmp406 = tmp402 - tmp405;
1209 tmp494 = tmp402 + tmp405;
1210 }
1211 {
1212 fftw_real tmp544;
1213 fftw_real tmp545;
1214 fftw_real tmp399;
1215 fftw_real tmp400;
1216 ASSERT_ALIGNED_DOUBLE;
1217 tmp544 = tmp397 + tmp398;
1218 tmp545 = tmp403 + tmp404;
1219 tmp546 = tmp544 - tmp545;
1220 tmp595 = tmp544 + tmp545;
1221 tmp399 = tmp397 - tmp398;
1222 tmp400 = tmp264 - tmp269;
1223 tmp401 = tmp399 + tmp400;
1224 tmp493 = tmp399 - tmp400;
1225 }
1226 }
1227 {
1228 fftw_real tmp301;
1229 fftw_real tmp421;
1230 fftw_real tmp306;
1231 fftw_real tmp422;
1232 fftw_real tmp420;
1233 fftw_real tmp423;
1234 fftw_real tmp312;
1235 fftw_real tmp416;
1236 fftw_real tmp317;
1237 fftw_real tmp417;
1238 fftw_real tmp415;
1239 fftw_real tmp418;
1240 ASSERT_ALIGNED_DOUBLE;
1241 {
1242 fftw_real tmp298;
1243 fftw_real tmp300;
1244 fftw_real tmp297;
1245 fftw_real tmp299;
1246 ASSERT_ALIGNED_DOUBLE;
1247 tmp298 = X[5 * iostride];
1248 tmp300 = Y[-26 * iostride];
1249 tmp297 = c_re(W[4]);
1250 tmp299 = c_im(W[4]);
1251 tmp301 = (tmp297 * tmp298) - (tmp299 * tmp300);
1252 tmp421 = (tmp299 * tmp298) + (tmp297 * tmp300);
1253 }
1254 {
1255 fftw_real tmp303;
1256 fftw_real tmp305;
1257 fftw_real tmp302;
1258 fftw_real tmp304;
1259 ASSERT_ALIGNED_DOUBLE;
1260 tmp303 = X[21 * iostride];
1261 tmp305 = Y[-10 * iostride];
1262 tmp302 = c_re(W[20]);
1263 tmp304 = c_im(W[20]);
1264 tmp306 = (tmp302 * tmp303) - (tmp304 * tmp305);
1265 tmp422 = (tmp304 * tmp303) + (tmp302 * tmp305);
1266 }
1267 tmp420 = tmp301 - tmp306;
1268 tmp423 = tmp421 - tmp422;
1269 {
1270 fftw_real tmp309;
1271 fftw_real tmp311;
1272 fftw_real tmp308;
1273 fftw_real tmp310;
1274 ASSERT_ALIGNED_DOUBLE;
1275 tmp309 = X[29 * iostride];
1276 tmp311 = Y[-2 * iostride];
1277 tmp308 = c_re(W[28]);
1278 tmp310 = c_im(W[28]);
1279 tmp312 = (tmp308 * tmp309) - (tmp310 * tmp311);
1280 tmp416 = (tmp310 * tmp309) + (tmp308 * tmp311);
1281 }
1282 {
1283 fftw_real tmp314;
1284 fftw_real tmp316;
1285 fftw_real tmp313;
1286 fftw_real tmp315;
1287 ASSERT_ALIGNED_DOUBLE;
1288 tmp314 = X[13 * iostride];
1289 tmp316 = Y[-18 * iostride];
1290 tmp313 = c_re(W[12]);
1291 tmp315 = c_im(W[12]);
1292 tmp317 = (tmp313 * tmp314) - (tmp315 * tmp316);
1293 tmp417 = (tmp315 * tmp314) + (tmp313 * tmp316);
1294 }
1295 tmp415 = tmp312 - tmp317;
1296 tmp418 = tmp416 - tmp417;
1297 {
1298 fftw_real tmp307;
1299 fftw_real tmp318;
1300 fftw_real tmp556;
1301 fftw_real tmp557;
1302 ASSERT_ALIGNED_DOUBLE;
1303 tmp307 = tmp301 + tmp306;
1304 tmp318 = tmp312 + tmp317;
1305 tmp319 = tmp307 + tmp318;
1306 tmp553 = tmp318 - tmp307;
1307 tmp556 = tmp421 + tmp422;
1308 tmp557 = tmp416 + tmp417;
1309 tmp558 = tmp556 - tmp557;
1310 tmp600 = tmp556 + tmp557;
1311 }
1312 {
1313 fftw_real tmp419;
1314 fftw_real tmp424;
1315 fftw_real tmp432;
1316 fftw_real tmp433;
1317 ASSERT_ALIGNED_DOUBLE;
1318 tmp419 = tmp415 - tmp418;
1319 tmp424 = tmp420 + tmp423;
1320 tmp425 = K707106781 * (tmp419 - tmp424);
1321 tmp499 = K707106781 * (tmp424 + tmp419);
1322 tmp432 = tmp423 - tmp420;
1323 tmp433 = tmp415 + tmp418;
1324 tmp434 = K707106781 * (tmp432 - tmp433);
1325 tmp502 = K707106781 * (tmp432 + tmp433);
1326 }
1327 }
1328 {
1329 fftw_real tmp273;
1330 fftw_real tmp613;
1331 fftw_real tmp625;
1332 fftw_real tmp627;
1333 fftw_real tmp368;
1334 fftw_real tmp628;
1335 fftw_real tmp616;
1336 fftw_real tmp626;
1337 ASSERT_ALIGNED_DOUBLE;
1338 {
1339 fftw_real tmp225;
1340 fftw_real tmp272;
1341 fftw_real tmp617;
1342 fftw_real tmp624;
1343 ASSERT_ALIGNED_DOUBLE;
1344 tmp225 = tmp201 + tmp224;
1345 tmp272 = tmp248 + tmp271;
1346 tmp273 = tmp225 + tmp272;
1347 tmp613 = tmp225 - tmp272;
1348 tmp617 = tmp594 + tmp595;
1349 tmp624 = tmp618 + tmp623;
1350 tmp625 = tmp617 + tmp624;
1351 tmp627 = tmp624 - tmp617;
1352 }
1353 {
1354 fftw_real tmp320;
1355 fftw_real tmp367;
1356 fftw_real tmp614;
1357 fftw_real tmp615;
1358 ASSERT_ALIGNED_DOUBLE;
1359 tmp320 = tmp296 + tmp319;
1360 tmp367 = tmp343 + tmp366;
1361 tmp368 = tmp320 + tmp367;
1362 tmp628 = tmp367 - tmp320;
1363 tmp614 = tmp599 + tmp600;
1364 tmp615 = tmp604 + tmp605;
1365 tmp616 = tmp614 - tmp615;
1366 tmp626 = tmp614 + tmp615;
1367 }
1368 Y[-16 * iostride] = tmp273 - tmp368;
1369 X[0] = tmp273 + tmp368;
1370 Y[-24 * iostride] = tmp613 - tmp616;
1371 X[8 * iostride] = tmp613 + tmp616;
1372 X[16 * iostride] = -(tmp625 - tmp626);
1373 Y[0] = tmp626 + tmp625;
1374 X[24 * iostride] = -(tmp627 - tmp628);
1375 Y[-8 * iostride] = tmp628 + tmp627;
1376 }
1377 {
1378 fftw_real tmp597;
1379 fftw_real tmp609;
1380 fftw_real tmp631;
1381 fftw_real tmp633;
1382 fftw_real tmp602;
1383 fftw_real tmp610;
1384 fftw_real tmp607;
1385 fftw_real tmp611;
1386 ASSERT_ALIGNED_DOUBLE;
1387 {
1388 fftw_real tmp593;
1389 fftw_real tmp596;
1390 fftw_real tmp629;
1391 fftw_real tmp630;
1392 ASSERT_ALIGNED_DOUBLE;
1393 tmp593 = tmp201 - tmp224;
1394 tmp596 = tmp594 - tmp595;
1395 tmp597 = tmp593 + tmp596;
1396 tmp609 = tmp593 - tmp596;
1397 tmp629 = tmp271 - tmp248;
1398 tmp630 = tmp623 - tmp618;
1399 tmp631 = tmp629 + tmp630;
1400 tmp633 = tmp630 - tmp629;
1401 }
1402 {
1403 fftw_real tmp598;
1404 fftw_real tmp601;
1405 fftw_real tmp603;
1406 fftw_real tmp606;
1407 ASSERT_ALIGNED_DOUBLE;
1408 tmp598 = tmp296 - tmp319;
1409 tmp601 = tmp599 - tmp600;
1410 tmp602 = tmp598 + tmp601;
1411 tmp610 = tmp601 - tmp598;
1412 tmp603 = tmp343 - tmp366;
1413 tmp606 = tmp604 - tmp605;
1414 tmp607 = tmp603 - tmp606;
1415 tmp611 = tmp603 + tmp606;
1416 }
1417 {
1418 fftw_real tmp608;
1419 fftw_real tmp634;
1420 fftw_real tmp612;
1421 fftw_real tmp632;
1422 ASSERT_ALIGNED_DOUBLE;
1423 tmp608 = K707106781 * (tmp602 + tmp607);
1424 Y[-20 * iostride] = tmp597 - tmp608;
1425 X[4 * iostride] = tmp597 + tmp608;
1426 tmp634 = K707106781 * (tmp607 - tmp602);
1427 X[28 * iostride] = -(tmp633 - tmp634);
1428 Y[-12 * iostride] = tmp634 + tmp633;
1429 tmp612 = K707106781 * (tmp610 - tmp611);
1430 Y[-28 * iostride] = tmp609 - tmp612;
1431 X[12 * iostride] = tmp609 + tmp612;
1432 tmp632 = K707106781 * (tmp610 + tmp611);
1433 X[20 * iostride] = -(tmp631 - tmp632);
1434 Y[-4 * iostride] = tmp632 + tmp631;
1435 }
1436 }
1437 {
1438 fftw_real tmp537;
1439 fftw_real tmp577;
1440 fftw_real tmp548;
1441 fftw_real tmp635;
1442 fftw_real tmp580;
1443 fftw_real tmp643;
1444 fftw_real tmp560;
1445 fftw_real tmp574;
1446 fftw_real tmp638;
1447 fftw_real tmp644;
1448 fftw_real tmp584;
1449 fftw_real tmp590;
1450 fftw_real tmp571;
1451 fftw_real tmp575;
1452 fftw_real tmp587;
1453 fftw_real tmp591;
1454 ASSERT_ALIGNED_DOUBLE;
1455 {
1456 fftw_real tmp542;
1457 fftw_real tmp547;
1458 fftw_real tmp582;
1459 fftw_real tmp583;
1460 ASSERT_ALIGNED_DOUBLE;
1461 tmp537 = tmp533 - tmp536;
1462 tmp577 = tmp533 + tmp536;
1463 tmp542 = tmp540 - tmp541;
1464 tmp547 = tmp543 + tmp546;
1465 tmp548 = K707106781 * (tmp542 - tmp547);
1466 tmp635 = K707106781 * (tmp542 + tmp547);
1467 {
1468 fftw_real tmp578;
1469 fftw_real tmp579;
1470 fftw_real tmp554;
1471 fftw_real tmp559;
1472 ASSERT_ALIGNED_DOUBLE;
1473 tmp578 = tmp541 + tmp540;
1474 tmp579 = tmp543 - tmp546;
1475 tmp580 = K707106781 * (tmp578 + tmp579);
1476 tmp643 = K707106781 * (tmp579 - tmp578);
1477 tmp554 = tmp552 - tmp553;
1478 tmp559 = tmp555 - tmp558;
1479 tmp560 =
1480 (K923879532 * tmp554) + (K382683432 * tmp559);
1481 tmp574 =
1482 (K382683432 * tmp554) - (K923879532 * tmp559);
1483 }
1484 tmp638 = tmp636 + tmp637;
1485 tmp644 = tmp637 - tmp636;
1486 tmp582 = tmp552 + tmp553;
1487 tmp583 = tmp555 + tmp558;
1488 tmp584 = (K382683432 * tmp582) + (K923879532 * tmp583);
1489 tmp590 = (K923879532 * tmp582) - (K382683432 * tmp583);
1490 {
1491 fftw_real tmp565;
1492 fftw_real tmp570;
1493 fftw_real tmp585;
1494 fftw_real tmp586;
1495 ASSERT_ALIGNED_DOUBLE;
1496 tmp565 = tmp561 - tmp564;
1497 tmp570 = tmp568 - tmp569;
1498 tmp571 =
1499 (K382683432 * tmp565) - (K923879532 * tmp570);
1500 tmp575 =
1501 (K382683432 * tmp570) + (K923879532 * tmp565);
1502 tmp585 = tmp561 + tmp564;
1503 tmp586 = tmp568 + tmp569;
1504 tmp587 =
1505 (K923879532 * tmp585) - (K382683432 * tmp586);
1506 tmp591 =
1507 (K923879532 * tmp586) + (K382683432 * tmp585);
1508 }
1509 }
1510 {
1511 fftw_real tmp549;
1512 fftw_real tmp572;
1513 fftw_real tmp573;
1514 fftw_real tmp576;
1515 ASSERT_ALIGNED_DOUBLE;
1516 tmp549 = tmp537 + tmp548;
1517 tmp572 = tmp560 + tmp571;
1518 Y[-22 * iostride] = tmp549 - tmp572;
1519 X[6 * iostride] = tmp549 + tmp572;
1520 tmp573 = tmp537 - tmp548;
1521 tmp576 = tmp574 - tmp575;
1522 Y[-30 * iostride] = tmp573 - tmp576;
1523 X[14 * iostride] = tmp573 + tmp576;
1524 }
1525 {
1526 fftw_real tmp645;
1527 fftw_real tmp646;
1528 fftw_real tmp647;
1529 fftw_real tmp648;
1530 ASSERT_ALIGNED_DOUBLE;
1531 tmp645 = tmp643 + tmp644;
1532 tmp646 = tmp574 + tmp575;
1533 X[22 * iostride] = -(tmp645 - tmp646);
1534 Y[-6 * iostride] = tmp646 + tmp645;
1535 tmp647 = tmp644 - tmp643;
1536 tmp648 = tmp571 - tmp560;
1537 X[30 * iostride] = -(tmp647 - tmp648);
1538 Y[-14 * iostride] = tmp648 + tmp647;
1539 }
1540 {
1541 fftw_real tmp581;
1542 fftw_real tmp588;
1543 fftw_real tmp589;
1544 fftw_real tmp592;
1545 ASSERT_ALIGNED_DOUBLE;
1546 tmp581 = tmp577 + tmp580;
1547 tmp588 = tmp584 + tmp587;
1548 Y[-18 * iostride] = tmp581 - tmp588;
1549 X[2 * iostride] = tmp581 + tmp588;
1550 tmp589 = tmp577 - tmp580;
1551 tmp592 = tmp590 - tmp591;
1552 Y[-26 * iostride] = tmp589 - tmp592;
1553 X[10 * iostride] = tmp589 + tmp592;
1554 }
1555 {
1556 fftw_real tmp639;
1557 fftw_real tmp640;
1558 fftw_real tmp641;
1559 fftw_real tmp642;
1560 ASSERT_ALIGNED_DOUBLE;
1561 tmp639 = tmp635 + tmp638;
1562 tmp640 = tmp590 + tmp591;
1563 X[18 * iostride] = -(tmp639 - tmp640);
1564 Y[-2 * iostride] = tmp640 + tmp639;
1565 tmp641 = tmp638 - tmp635;
1566 tmp642 = tmp587 - tmp584;
1567 X[26 * iostride] = -(tmp641 - tmp642);
1568 Y[-10 * iostride] = tmp642 + tmp641;
1569 }
1570 }
1571 {
1572 fftw_real tmp489;
1573 fftw_real tmp517;
1574 fftw_real tmp520;
1575 fftw_real tmp659;
1576 fftw_real tmp654;
1577 fftw_real tmp660;
1578 fftw_real tmp496;
1579 fftw_real tmp649;
1580 fftw_real tmp504;
1581 fftw_real tmp514;
1582 fftw_real tmp524;
1583 fftw_real tmp530;
1584 fftw_real tmp511;
1585 fftw_real tmp515;
1586 fftw_real tmp527;
1587 fftw_real tmp531;
1588 ASSERT_ALIGNED_DOUBLE;
1589 {
1590 fftw_real tmp488;
1591 fftw_real tmp518;
1592 fftw_real tmp519;
1593 fftw_real tmp650;
1594 fftw_real tmp492;
1595 fftw_real tmp495;
1596 ASSERT_ALIGNED_DOUBLE;
1597 tmp488 = K707106781 * (tmp486 + tmp487);
1598 tmp489 = tmp485 - tmp488;
1599 tmp517 = tmp485 + tmp488;
1600 tmp518 = (K382683432 * tmp490) + (K923879532 * tmp491);
1601 tmp519 = (K923879532 * tmp494) - (K382683432 * tmp493);
1602 tmp520 = tmp518 + tmp519;
1603 tmp659 = tmp519 - tmp518;
1604 tmp650 = K707106781 * (tmp378 + tmp383);
1605 tmp654 = tmp650 + tmp653;
1606 tmp660 = tmp653 - tmp650;
1607 tmp492 = (K923879532 * tmp490) - (K382683432 * tmp491);
1608 tmp495 = (K923879532 * tmp493) + (K382683432 * tmp494);
1609 tmp496 = tmp492 - tmp495;
1610 tmp649 = tmp492 + tmp495;
1611 }
1612 {
1613 fftw_real tmp500;
1614 fftw_real tmp503;
1615 fftw_real tmp522;
1616 fftw_real tmp523;
1617 ASSERT_ALIGNED_DOUBLE;
1618 tmp500 = tmp498 - tmp499;
1619 tmp503 = tmp501 - tmp502;
1620 tmp504 = (K555570233 * tmp500) + (K831469612 * tmp503);
1621 tmp514 = (K555570233 * tmp503) - (K831469612 * tmp500);
1622 tmp522 = tmp498 + tmp499;
1623 tmp523 = tmp501 + tmp502;
1624 tmp524 = (K980785280 * tmp522) + (K195090322 * tmp523);
1625 tmp530 = (K980785280 * tmp523) - (K195090322 * tmp522);
1626 }
1627 {
1628 fftw_real tmp507;
1629 fftw_real tmp510;
1630 fftw_real tmp525;
1631 fftw_real tmp526;
1632 ASSERT_ALIGNED_DOUBLE;
1633 tmp507 = tmp505 - tmp506;
1634 tmp510 = tmp508 - tmp509;
1635 tmp511 = (K555570233 * tmp507) - (K831469612 * tmp510);
1636 tmp515 = (K831469612 * tmp507) + (K555570233 * tmp510);
1637 tmp525 = tmp505 + tmp506;
1638 tmp526 = tmp508 + tmp509;
1639 tmp527 = (K980785280 * tmp525) - (K195090322 * tmp526);
1640 tmp531 = (K195090322 * tmp525) + (K980785280 * tmp526);
1641 }
1642 {
1643 fftw_real tmp497;
1644 fftw_real tmp512;
1645 fftw_real tmp513;
1646 fftw_real tmp516;
1647 ASSERT_ALIGNED_DOUBLE;
1648 tmp497 = tmp489 + tmp496;
1649 tmp512 = tmp504 + tmp511;
1650 Y[-21 * iostride] = tmp497 - tmp512;
1651 X[5 * iostride] = tmp497 + tmp512;
1652 tmp513 = tmp489 - tmp496;
1653 tmp516 = tmp514 - tmp515;
1654 Y[-29 * iostride] = tmp513 - tmp516;
1655 X[13 * iostride] = tmp513 + tmp516;
1656 }
1657 {
1658 fftw_real tmp661;
1659 fftw_real tmp662;
1660 fftw_real tmp663;
1661 fftw_real tmp664;
1662 ASSERT_ALIGNED_DOUBLE;
1663 tmp661 = tmp659 + tmp660;
1664 tmp662 = tmp514 + tmp515;
1665 X[21 * iostride] = -(tmp661 - tmp662);
1666 Y[-5 * iostride] = tmp662 + tmp661;
1667 tmp663 = tmp660 - tmp659;
1668 tmp664 = tmp511 - tmp504;
1669 X[29 * iostride] = -(tmp663 - tmp664);
1670 Y[-13 * iostride] = tmp664 + tmp663;
1671 }
1672 {
1673 fftw_real tmp521;
1674 fftw_real tmp528;
1675 fftw_real tmp529;
1676 fftw_real tmp532;
1677 ASSERT_ALIGNED_DOUBLE;
1678 tmp521 = tmp517 + tmp520;
1679 tmp528 = tmp524 + tmp527;
1680 Y[-17 * iostride] = tmp521 - tmp528;
1681 X[iostride] = tmp521 + tmp528;
1682 tmp529 = tmp517 - tmp520;
1683 tmp532 = tmp530 - tmp531;
1684 Y[-25 * iostride] = tmp529 - tmp532;
1685 X[9 * iostride] = tmp529 + tmp532;
1686 }
1687 {
1688 fftw_real tmp655;
1689 fftw_real tmp656;
1690 fftw_real tmp657;
1691 fftw_real tmp658;
1692 ASSERT_ALIGNED_DOUBLE;
1693 tmp655 = tmp649 + tmp654;
1694 tmp656 = tmp530 + tmp531;
1695 X[17 * iostride] = -(tmp655 - tmp656);
1696 Y[-iostride] = tmp656 + tmp655;
1697 tmp657 = tmp654 - tmp649;
1698 tmp658 = tmp527 - tmp524;
1699 X[25 * iostride] = -(tmp657 - tmp658);
1700 Y[-9 * iostride] = tmp658 + tmp657;
1701 }
1702 }
1703 {
1704 fftw_real tmp385;
1705 fftw_real tmp469;
1706 fftw_real tmp472;
1707 fftw_real tmp673;
1708 fftw_real tmp668;
1709 fftw_real tmp674;
1710 fftw_real tmp408;
1711 fftw_real tmp665;
1712 fftw_real tmp436;
1713 fftw_real tmp466;
1714 fftw_real tmp476;
1715 fftw_real tmp482;
1716 fftw_real tmp463;
1717 fftw_real tmp467;
1718 fftw_real tmp479;
1719 fftw_real tmp483;
1720 ASSERT_ALIGNED_DOUBLE;
1721 {
1722 fftw_real tmp384;
1723 fftw_real tmp470;
1724 fftw_real tmp471;
1725 fftw_real tmp666;
1726 fftw_real tmp396;
1727 fftw_real tmp407;
1728 ASSERT_ALIGNED_DOUBLE;
1729 tmp384 = K707106781 * (tmp378 - tmp383);
1730 tmp385 = tmp373 - tmp384;
1731 tmp469 = tmp373 + tmp384;
1732 tmp470 = (K923879532 * tmp390) + (K382683432 * tmp395);
1733 tmp471 = (K382683432 * tmp406) - (K923879532 * tmp401);
1734 tmp472 = tmp470 + tmp471;
1735 tmp673 = tmp471 - tmp470;
1736 tmp666 = K707106781 * (tmp487 - tmp486);
1737 tmp668 = tmp666 + tmp667;
1738 tmp674 = tmp667 - tmp666;
1739 tmp396 = (K382683432 * tmp390) - (K923879532 * tmp395);
1740 tmp407 = (K382683432 * tmp401) + (K923879532 * tmp406);
1741 tmp408 = tmp396 - tmp407;
1742 tmp665 = tmp396 + tmp407;
1743 }
1744 {
1745 fftw_real tmp426;
1746 fftw_real tmp435;
1747 fftw_real tmp474;
1748 fftw_real tmp475;
1749 ASSERT_ALIGNED_DOUBLE;
1750 tmp426 = tmp414 - tmp425;
1751 tmp435 = tmp431 - tmp434;
1752 tmp436 = (K980785280 * tmp426) + (K195090322 * tmp435);
1753 tmp466 = (K195090322 * tmp426) - (K980785280 * tmp435);
1754 tmp474 = tmp414 + tmp425;
1755 tmp475 = tmp431 + tmp434;
1756 tmp476 = (K555570233 * tmp474) + (K831469612 * tmp475);
1757 tmp482 = (K831469612 * tmp474) - (K555570233 * tmp475);
1758 }
1759 {
1760 fftw_real tmp453;
1761 fftw_real tmp462;
1762 fftw_real tmp477;
1763 fftw_real tmp478;
1764 ASSERT_ALIGNED_DOUBLE;
1765 tmp453 = tmp441 - tmp452;
1766 tmp462 = tmp458 - tmp461;
1767 tmp463 = (K195090322 * tmp453) - (K980785280 * tmp462);
1768 tmp467 = (K195090322 * tmp462) + (K980785280 * tmp453);
1769 tmp477 = tmp441 + tmp452;
1770 tmp478 = tmp458 + tmp461;
1771 tmp479 = (K831469612 * tmp477) - (K555570233 * tmp478);
1772 tmp483 = (K831469612 * tmp478) + (K555570233 * tmp477);
1773 }
1774 {
1775 fftw_real tmp409;
1776 fftw_real tmp464;
1777 fftw_real tmp465;
1778 fftw_real tmp468;
1779 ASSERT_ALIGNED_DOUBLE;
1780 tmp409 = tmp385 + tmp408;
1781 tmp464 = tmp436 + tmp463;
1782 Y[-23 * iostride] = tmp409 - tmp464;
1783 X[7 * iostride] = tmp409 + tmp464;
1784 tmp465 = tmp385 - tmp408;
1785 tmp468 = tmp466 - tmp467;
1786 Y[-31 * iostride] = tmp465 - tmp468;
1787 X[15 * iostride] = tmp465 + tmp468;
1788 }
1789 {
1790 fftw_real tmp675;
1791 fftw_real tmp676;
1792 fftw_real tmp677;
1793 fftw_real tmp678;
1794 ASSERT_ALIGNED_DOUBLE;
1795 tmp675 = tmp673 + tmp674;
1796 tmp676 = tmp466 + tmp467;
1797 X[23 * iostride] = -(tmp675 - tmp676);
1798 Y[-7 * iostride] = tmp676 + tmp675;
1799 tmp677 = tmp674 - tmp673;
1800 tmp678 = tmp463 - tmp436;
1801 X[31 * iostride] = -(tmp677 - tmp678);
1802 Y[-15 * iostride] = tmp678 + tmp677;
1803 }
1804 {
1805 fftw_real tmp473;
1806 fftw_real tmp480;
1807 fftw_real tmp481;
1808 fftw_real tmp484;
1809 ASSERT_ALIGNED_DOUBLE;
1810 tmp473 = tmp469 + tmp472;
1811 tmp480 = tmp476 + tmp479;
1812 Y[-19 * iostride] = tmp473 - tmp480;
1813 X[3 * iostride] = tmp473 + tmp480;
1814 tmp481 = tmp469 - tmp472;
1815 tmp484 = tmp482 - tmp483;
1816 Y[-27 * iostride] = tmp481 - tmp484;
1817 X[11 * iostride] = tmp481 + tmp484;
1818 }
1819 {
1820 fftw_real tmp669;
1821 fftw_real tmp670;
1822 fftw_real tmp671;
1823 fftw_real tmp672;
1824 ASSERT_ALIGNED_DOUBLE;
1825 tmp669 = tmp665 + tmp668;
1826 tmp670 = tmp482 + tmp483;
1827 X[19 * iostride] = -(tmp669 - tmp670);
1828 Y[-3 * iostride] = tmp670 + tmp669;
1829 tmp671 = tmp668 - tmp665;
1830 tmp672 = tmp479 - tmp476;
1831 X[27 * iostride] = -(tmp671 - tmp672);
1832 Y[-11 * iostride] = tmp672 + tmp671;
1833 }
1834 }
1835 }
1836 if (i == m) {
1837 fftw_real tmp5;
1838 fftw_real tmp105;
1839 fftw_real tmp158;
1840 fftw_real tmp171;
1841 fftw_real tmp12;
1842 fftw_real tmp170;
1843 fftw_real tmp108;
1844 fftw_real tmp155;
1845 fftw_real tmp74;
1846 fftw_real tmp97;
1847 fftw_real tmp130;
1848 fftw_real tmp146;
1849 fftw_real tmp82;
1850 fftw_real tmp98;
1851 fftw_real tmp127;
1852 fftw_real tmp145;
1853 fftw_real tmp24;
1854 fftw_real tmp90;
1855 fftw_real tmp115;
1856 fftw_real tmp138;
1857 fftw_real tmp35;
1858 fftw_real tmp91;
1859 fftw_real tmp112;
1860 fftw_real tmp139;
1861 fftw_real tmp51;
1862 fftw_real tmp94;
1863 fftw_real tmp123;
1864 fftw_real tmp143;
1865 fftw_real tmp59;
1866 fftw_real tmp95;
1867 fftw_real tmp120;
1868 fftw_real tmp142;
1869 ASSERT_ALIGNED_DOUBLE;
1870 {
1871 fftw_real tmp1;
1872 fftw_real tmp157;
1873 fftw_real tmp4;
1874 fftw_real tmp156;
1875 fftw_real tmp2;
1876 fftw_real tmp3;
1877 ASSERT_ALIGNED_DOUBLE;
1878 tmp1 = X[0];
1879 tmp157 = X[16 * iostride];
1880 tmp2 = X[8 * iostride];
1881 tmp3 = X[24 * iostride];
1882 tmp4 = K707106781 * (tmp2 - tmp3);
1883 tmp156 = K707106781 * (tmp2 + tmp3);
1884 tmp5 = tmp1 + tmp4;
1885 tmp105 = tmp1 - tmp4;
1886 tmp158 = tmp156 + tmp157;
1887 tmp171 = tmp157 - tmp156;
1888 }
1889 {
1890 fftw_real tmp8;
1891 fftw_real tmp106;
1892 fftw_real tmp11;
1893 fftw_real tmp107;
1894 ASSERT_ALIGNED_DOUBLE;
1895 {
1896 fftw_real tmp6;
1897 fftw_real tmp7;
1898 fftw_real tmp9;
1899 fftw_real tmp10;
1900 ASSERT_ALIGNED_DOUBLE;
1901 tmp6 = X[4 * iostride];
1902 tmp7 = X[20 * iostride];
1903 tmp8 = (K923879532 * tmp6) - (K382683432 * tmp7);
1904 tmp106 = (K382683432 * tmp6) + (K923879532 * tmp7);
1905 tmp9 = X[12 * iostride];
1906 tmp10 = X[28 * iostride];
1907 tmp11 = (K382683432 * tmp9) - (K923879532 * tmp10);
1908 tmp107 = (K923879532 * tmp9) + (K382683432 * tmp10);
1909 }
1910 tmp12 = tmp8 + tmp11;
1911 tmp170 = tmp11 - tmp8;
1912 tmp108 = tmp106 - tmp107;
1913 tmp155 = tmp106 + tmp107;
1914 }
1915 {
1916 fftw_real tmp65;
1917 fftw_real tmp80;
1918 fftw_real tmp63;
1919 fftw_real tmp78;
1920 fftw_real tmp69;
1921 fftw_real tmp75;
1922 fftw_real tmp72;
1923 fftw_real tmp76;
1924 ASSERT_ALIGNED_DOUBLE;
1925 {
1926 fftw_real tmp64;
1927 fftw_real tmp79;
1928 fftw_real tmp61;
1929 fftw_real tmp62;
1930 ASSERT_ALIGNED_DOUBLE;
1931 tmp64 = X[31 * iostride];
1932 tmp65 = K2_000000000 * tmp64;
1933 tmp79 = X[15 * iostride];
1934 tmp80 = K2_000000000 * tmp79;
1935 tmp61 = X[7 * iostride];
1936 tmp62 = X[23 * iostride];
1937 tmp63 = K1_414213562 * (tmp61 - tmp62);
1938 tmp78 = K1_414213562 * (tmp61 + tmp62);
1939 {
1940 fftw_real tmp67;
1941 fftw_real tmp68;
1942 fftw_real tmp70;
1943 fftw_real tmp71;
1944 ASSERT_ALIGNED_DOUBLE;
1945 tmp67 = X[3 * iostride];
1946 tmp68 = X[19 * iostride];
1947 tmp69 =
1948 (K1_847759065 * tmp67) - (K765366864 * tmp68);
1949 tmp75 =
1950 (K765366864 * tmp67) + (K1_847759065 * tmp68);
1951 tmp70 = X[11 * iostride];
1952 tmp71 = X[27 * iostride];
1953 tmp72 =
1954 (K765366864 * tmp70) - (K1_847759065 * tmp71);
1955 tmp76 =
1956 (K1_847759065 * tmp70) + (K765366864 * tmp71);
1957 }
1958 }
1959 {
1960 fftw_real tmp66;
1961 fftw_real tmp73;
1962 fftw_real tmp128;
1963 fftw_real tmp129;
1964 ASSERT_ALIGNED_DOUBLE;
1965 tmp66 = tmp63 - tmp65;
1966 tmp73 = tmp69 + tmp72;
1967 tmp74 = tmp66 + tmp73;
1968 tmp97 = tmp66 - tmp73;
1969 tmp128 = tmp72 - tmp69;
1970 tmp129 = tmp80 - tmp78;
1971 tmp130 = tmp128 - tmp129;
1972 tmp146 = tmp128 + tmp129;
1973 }
1974 {
1975 fftw_real tmp77;
1976 fftw_real tmp81;
1977 fftw_real tmp125;
1978 fftw_real tmp126;
1979 ASSERT_ALIGNED_DOUBLE;
1980 tmp77 = tmp75 + tmp76;
1981 tmp81 = tmp78 + tmp80;
1982 tmp82 = tmp77 + tmp81;
1983 tmp98 = tmp81 - tmp77;
1984 tmp125 = tmp63 + tmp65;
1985 tmp126 = tmp75 - tmp76;
1986 tmp127 = tmp125 + tmp126;
1987 tmp145 = tmp126 - tmp125;
1988 }
1989 }
1990 {
1991 fftw_real tmp15;
1992 fftw_real tmp22;
1993 fftw_real tmp18;
1994 fftw_real tmp20;
1995 ASSERT_ALIGNED_DOUBLE;
1996 {
1997 fftw_real tmp14;
1998 fftw_real tmp21;
1999 fftw_real tmp16;
2000 fftw_real tmp17;
2001 ASSERT_ALIGNED_DOUBLE;
2002 tmp14 = X[2 * iostride];
2003 tmp15 = K2_000000000 * tmp14;
2004 tmp21 = X[18 * iostride];
2005 tmp22 = K2_000000000 * tmp21;
2006 tmp16 = X[10 * iostride];
2007 tmp17 = X[26 * iostride];
2008 tmp18 = K1_414213562 * (tmp16 - tmp17);
2009 tmp20 = K1_414213562 * (tmp16 + tmp17);
2010 }
2011 {
2012 fftw_real tmp19;
2013 fftw_real tmp23;
2014 fftw_real tmp113;
2015 fftw_real tmp114;
2016 ASSERT_ALIGNED_DOUBLE;
2017 tmp19 = tmp15 + tmp18;
2018 tmp23 = tmp20 + tmp22;
2019 tmp24 = (K490392640 * tmp19) - (K097545161 * tmp23);
2020 tmp90 = (K097545161 * tmp19) + (K490392640 * tmp23);
2021 tmp113 = tmp22 - tmp20;
2022 tmp114 = tmp15 - tmp18;
2023 tmp115 = (K415734806 * tmp113) - (K277785116 * tmp114);
2024 tmp138 = (K415734806 * tmp114) + (K277785116 * tmp113);
2025 }
2026 }
2027 {
2028 fftw_real tmp29;
2029 fftw_real tmp33;
2030 fftw_real tmp27;
2031 fftw_real tmp31;
2032 ASSERT_ALIGNED_DOUBLE;
2033 {
2034 fftw_real tmp28;
2035 fftw_real tmp32;
2036 fftw_real tmp25;
2037 fftw_real tmp26;
2038 ASSERT_ALIGNED_DOUBLE;
2039 tmp28 = X[30 * iostride];
2040 tmp29 = K2_000000000 * tmp28;
2041 tmp32 = X[14 * iostride];
2042 tmp33 = K2_000000000 * tmp32;
2043 tmp25 = X[6 * iostride];
2044 tmp26 = X[22 * iostride];
2045 tmp27 = K1_414213562 * (tmp25 - tmp26);
2046 tmp31 = K1_414213562 * (tmp25 + tmp26);
2047 }
2048 {
2049 fftw_real tmp30;
2050 fftw_real tmp34;
2051 fftw_real tmp110;
2052 fftw_real tmp111;
2053 ASSERT_ALIGNED_DOUBLE;
2054 tmp30 = tmp27 - tmp29;
2055 tmp34 = tmp31 + tmp33;
2056 tmp35 = (K490392640 * tmp30) + (K097545161 * tmp34);
2057 tmp91 = (K097545161 * tmp30) - (K490392640 * tmp34);
2058 tmp110 = tmp33 - tmp31;
2059 tmp111 = tmp27 + tmp29;
2060 tmp112 = (K415734806 * tmp110) - (K277785116 * tmp111);
2061 tmp139 = (K415734806 * tmp111) + (K277785116 * tmp110);
2062 }
2063 }
2064 {
2065 fftw_real tmp39;
2066 fftw_real tmp57;
2067 fftw_real tmp42;
2068 fftw_real tmp55;
2069 fftw_real tmp46;
2070 fftw_real tmp52;
2071 fftw_real tmp49;
2072 fftw_real tmp53;
2073 ASSERT_ALIGNED_DOUBLE;
2074 {
2075 fftw_real tmp38;
2076 fftw_real tmp56;
2077 fftw_real tmp40;
2078 fftw_real tmp41;
2079 ASSERT_ALIGNED_DOUBLE;
2080 tmp38 = X[iostride];
2081 tmp39 = K2_000000000 * tmp38;
2082 tmp56 = X[17 * iostride];
2083 tmp57 = K2_000000000 * tmp56;
2084 tmp40 = X[9 * iostride];
2085 tmp41 = X[25 * iostride];
2086 tmp42 = K1_414213562 * (tmp40 - tmp41);
2087 tmp55 = K1_414213562 * (tmp40 + tmp41);
2088 {
2089 fftw_real tmp44;
2090 fftw_real tmp45;
2091 fftw_real tmp47;
2092 fftw_real tmp48;
2093 ASSERT_ALIGNED_DOUBLE;
2094 tmp44 = X[5 * iostride];
2095 tmp45 = X[21 * iostride];
2096 tmp46 =
2097 (K1_847759065 * tmp44) - (K765366864 * tmp45);
2098 tmp52 =
2099 (K765366864 * tmp44) + (K1_847759065 * tmp45);
2100 tmp47 = X[13 * iostride];
2101 tmp48 = X[29 * iostride];
2102 tmp49 =
2103 (K765366864 * tmp47) - (K1_847759065 * tmp48);
2104 tmp53 =
2105 (K1_847759065 * tmp47) + (K765366864 * tmp48);
2106 }
2107 }
2108 {
2109 fftw_real tmp43;
2110 fftw_real tmp50;
2111 fftw_real tmp121;
2112 fftw_real tmp122;
2113 ASSERT_ALIGNED_DOUBLE;
2114 tmp43 = tmp39 + tmp42;
2115 tmp50 = tmp46 + tmp49;
2116 tmp51 = tmp43 + tmp50;
2117 tmp94 = tmp43 - tmp50;
2118 tmp121 = tmp49 - tmp46;
2119 tmp122 = tmp57 - tmp55;
2120 tmp123 = tmp121 - tmp122;
2121 tmp143 = tmp121 + tmp122;
2122 }
2123 {
2124 fftw_real tmp54;
2125 fftw_real tmp58;
2126 fftw_real tmp118;
2127 fftw_real tmp119;
2128 ASSERT_ALIGNED_DOUBLE;
2129 tmp54 = tmp52 + tmp53;
2130 tmp58 = tmp55 + tmp57;
2131 tmp59 = tmp54 + tmp58;
2132 tmp95 = tmp58 - tmp54;
2133 tmp118 = tmp39 - tmp42;
2134 tmp119 = tmp52 - tmp53;
2135 tmp120 = tmp118 - tmp119;
2136 tmp142 = tmp118 + tmp119;
2137 }
2138 }
2139 {
2140 fftw_real tmp37;
2141 fftw_real tmp85;
2142 fftw_real tmp160;
2143 fftw_real tmp162;
2144 fftw_real tmp84;
2145 fftw_real tmp153;
2146 fftw_real tmp88;
2147 fftw_real tmp161;
2148 ASSERT_ALIGNED_DOUBLE;
2149 {
2150 fftw_real tmp13;
2151 fftw_real tmp36;
2152 fftw_real tmp154;
2153 fftw_real tmp159;
2154 ASSERT_ALIGNED_DOUBLE;
2155 tmp13 = tmp5 + tmp12;
2156 tmp36 = tmp24 + tmp35;
2157 tmp37 = tmp13 - tmp36;
2158 tmp85 = tmp13 + tmp36;
2159 tmp154 = tmp91 - tmp90;
2160 tmp159 = tmp155 + tmp158;
2161 tmp160 = tmp154 - tmp159;
2162 tmp162 = tmp154 + tmp159;
2163 }
2164 {
2165 fftw_real tmp60;
2166 fftw_real tmp83;
2167 fftw_real tmp86;
2168 fftw_real tmp87;
2169 ASSERT_ALIGNED_DOUBLE;
2170 tmp60 = (K049008570 * tmp51) + (K497592363 * tmp59);
2171 tmp83 = (K049008570 * tmp74) - (K497592363 * tmp82);
2172 tmp84 = tmp60 + tmp83;
2173 tmp153 = tmp83 - tmp60;
2174 tmp86 = (K497592363 * tmp51) - (K049008570 * tmp59);
2175 tmp87 = (K497592363 * tmp74) + (K049008570 * tmp82);
2176 tmp88 = tmp86 + tmp87;
2177 tmp161 = tmp87 - tmp86;
2178 }
2179 X[8 * iostride] = tmp37 - tmp84;
2180 X[7 * iostride] = tmp37 + tmp84;
2181 X[15 * iostride] = tmp85 - tmp88;
2182 X[0] = tmp85 + tmp88;
2183 Y[-15 * iostride] = tmp153 - tmp160;
2184 Y[0] = tmp153 + tmp160;
2185 Y[-8 * iostride] = tmp161 - tmp162;
2186 Y[-7 * iostride] = tmp161 + tmp162;
2187 }
2188 {
2189 fftw_real tmp93;
2190 fftw_real tmp101;
2191 fftw_real tmp166;
2192 fftw_real tmp168;
2193 fftw_real tmp100;
2194 fftw_real tmp163;
2195 fftw_real tmp104;
2196 fftw_real tmp167;
2197 ASSERT_ALIGNED_DOUBLE;
2198 {
2199 fftw_real tmp89;
2200 fftw_real tmp92;
2201 fftw_real tmp164;
2202 fftw_real tmp165;
2203 ASSERT_ALIGNED_DOUBLE;
2204 tmp89 = tmp5 - tmp12;
2205 tmp92 = tmp90 + tmp91;
2206 tmp93 = tmp89 + tmp92;
2207 tmp101 = tmp89 - tmp92;
2208 tmp164 = tmp35 - tmp24;
2209 tmp165 = tmp158 - tmp155;
2210 tmp166 = tmp164 - tmp165;
2211 tmp168 = tmp164 + tmp165;
2212 }
2213 {
2214 fftw_real tmp96;
2215 fftw_real tmp99;
2216 fftw_real tmp102;
2217 fftw_real tmp103;
2218 ASSERT_ALIGNED_DOUBLE;
2219 tmp96 = (K386505226 * tmp94) + (K317196642 * tmp95);
2220 tmp99 = (K386505226 * tmp97) - (K317196642 * tmp98);
2221 tmp100 = tmp96 + tmp99;
2222 tmp163 = tmp99 - tmp96;
2223 tmp102 = (K317196642 * tmp97) + (K386505226 * tmp98);
2224 tmp103 = (K386505226 * tmp95) - (K317196642 * tmp94);
2225 tmp104 = tmp102 - tmp103;
2226 tmp167 = tmp103 + tmp102;
2227 }
2228 X[12 * iostride] = tmp93 - tmp100;
2229 X[3 * iostride] = tmp93 + tmp100;
2230 X[11 * iostride] = tmp101 - tmp104;
2231 X[4 * iostride] = tmp101 + tmp104;
2232 Y[-11 * iostride] = tmp163 - tmp166;
2233 Y[-4 * iostride] = tmp163 + tmp166;
2234 Y[-12 * iostride] = tmp167 - tmp168;
2235 Y[-3 * iostride] = tmp167 + tmp168;
2236 }
2237 {
2238 fftw_real tmp117;
2239 fftw_real tmp133;
2240 fftw_real tmp174;
2241 fftw_real tmp176;
2242 fftw_real tmp132;
2243 fftw_real tmp175;
2244 fftw_real tmp136;
2245 fftw_real tmp169;
2246 ASSERT_ALIGNED_DOUBLE;
2247 {
2248 fftw_real tmp109;
2249 fftw_real tmp116;
2250 fftw_real tmp172;
2251 fftw_real tmp173;
2252 ASSERT_ALIGNED_DOUBLE;
2253 tmp109 = tmp105 - tmp108;
2254 tmp116 = tmp112 - tmp115;
2255 tmp117 = tmp109 + tmp116;
2256 tmp133 = tmp109 - tmp116;
2257 tmp172 = tmp170 - tmp171;
2258 tmp173 = tmp138 + tmp139;
2259 tmp174 = tmp172 - tmp173;
2260 tmp176 = tmp173 + tmp172;
2261 }
2262 {
2263 fftw_real tmp124;
2264 fftw_real tmp131;
2265 fftw_real tmp134;
2266 fftw_real tmp135;
2267 ASSERT_ALIGNED_DOUBLE;
2268 tmp124 = (K440960632 * tmp120) + (K235698368 * tmp123);
2269 tmp131 = (K440960632 * tmp127) + (K235698368 * tmp130);
2270 tmp132 = tmp124 - tmp131;
2271 tmp175 = tmp124 + tmp131;
2272 tmp134 = (K440960632 * tmp130) - (K235698368 * tmp127);
2273 tmp135 = (K440960632 * tmp123) - (K235698368 * tmp120);
2274 tmp136 = tmp134 - tmp135;
2275 tmp169 = tmp135 + tmp134;
2276 }
2277 X[13 * iostride] = tmp117 - tmp132;
2278 X[2 * iostride] = tmp117 + tmp132;
2279 X[10 * iostride] = tmp133 - tmp136;
2280 X[5 * iostride] = tmp133 + tmp136;
2281 Y[-13 * iostride] = tmp169 - tmp174;
2282 Y[-2 * iostride] = tmp169 + tmp174;
2283 Y[-5 * iostride] = -(tmp175 + tmp176);
2284 Y[-10 * iostride] = tmp176 - tmp175;
2285 }
2286 {
2287 fftw_real tmp141;
2288 fftw_real tmp149;
2289 fftw_real tmp180;
2290 fftw_real tmp182;
2291 fftw_real tmp148;
2292 fftw_real tmp177;
2293 fftw_real tmp152;
2294 fftw_real tmp181;
2295 ASSERT_ALIGNED_DOUBLE;
2296 {
2297 fftw_real tmp137;
2298 fftw_real tmp140;
2299 fftw_real tmp178;
2300 fftw_real tmp179;
2301 ASSERT_ALIGNED_DOUBLE;
2302 tmp137 = tmp105 + tmp108;
2303 tmp140 = tmp138 - tmp139;
2304 tmp141 = tmp137 + tmp140;
2305 tmp149 = tmp137 - tmp140;
2306 tmp178 = tmp115 + tmp112;
2307 tmp179 = tmp170 + tmp171;
2308 tmp180 = tmp178 - tmp179;
2309 tmp182 = tmp178 + tmp179;
2310 }
2311 {
2312 fftw_real tmp144;
2313 fftw_real tmp147;
2314 fftw_real tmp150;
2315 fftw_real tmp151;
2316 ASSERT_ALIGNED_DOUBLE;
2317 tmp144 = (K478470167 * tmp142) + (K145142338 * tmp143);
2318 tmp147 = (K478470167 * tmp145) - (K145142338 * tmp146);
2319 tmp148 = tmp144 + tmp147;
2320 tmp177 = tmp147 - tmp144;
2321 tmp150 = (K145142338 * tmp145) + (K478470167 * tmp146);
2322 tmp151 = (K478470167 * tmp143) - (K145142338 * tmp142);
2323 tmp152 = tmp150 - tmp151;
2324 tmp181 = tmp151 + tmp150;
2325 }
2326 X[14 * iostride] = tmp141 - tmp148;
2327 X[iostride] = tmp141 + tmp148;
2328 X[9 * iostride] = tmp149 - tmp152;
2329 X[6 * iostride] = tmp149 + tmp152;
2330 Y[-9 * iostride] = tmp177 - tmp180;
2331 Y[-6 * iostride] = tmp177 + tmp180;
2332 Y[-14 * iostride] = tmp181 - tmp182;
2333 Y[-iostride] = tmp181 + tmp182;
2334 }
2335 }
2336 }
2337
2338 static const int twiddle_order[] =
2339 { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2340 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31 };
2341 fftw_codelet_desc fftw_hc2hc_forward_32_desc = {
2342 "fftw_hc2hc_forward_32",
2343 (void (*)()) fftw_hc2hc_forward_32,
2344 32,
2345 FFTW_FORWARD,
2346 FFTW_HC2HC,
2347 707,
2348 31,
2349 twiddle_order,
2350 };
2351