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