Subversion Repositories shark

Rev

Rev 2 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

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