2
* Copyright (c) 1997-1999 Massachusetts Institute of Technology
4
* This program is free software; you can redistribute it and/or modify
5
* it under the terms of the GNU General Public License as published by
6
* the Free Software Foundation; either version 2 of the License, or
7
* (at your option) any later version.
9
* This program is distributed in the hope that it will be useful,
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
* GNU General Public License for more details.
14
* You should have received a copy of the GNU General Public License
15
* along with this program; if not, write to the Free Software
16
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20
/* This file was automatically generated --- DO NOT EDIT */
21
/* Generated on Sun Nov 7 20:44:52 EST 1999 */
26
/* Generated by: ./genfft -magic-alignment-check -magic-twiddle-load-all -magic-variables 4 -magic-loopi -hc2hc-forward 32 */
29
* This function contains 764 FP additions, 340 FP multiplications,
30
* (or, 618 additions, 194 multiplications, 146 fused multiply/add),
31
* 91 stack variables, and 256 memory accesses
33
static const fftw_real K145142338 = FFTW_KONST(+0.145142338627231183818096187908697637345738139);
34
static const fftw_real K478470167 = FFTW_KONST(+0.478470167866104432467898943490134984741424603);
35
static const fftw_real K235698368 = FFTW_KONST(+0.235698368412998824278193812952627188828730159);
36
static const fftw_real K440960632 = FFTW_KONST(+0.440960632174177514856378431830194174754221310);
37
static const fftw_real K317196642 = FFTW_KONST(+0.317196642081822749107585806612746685337843547);
38
static const fftw_real K386505226 = FFTW_KONST(+0.386505226681368480405453304879234900485520646);
39
static const fftw_real K497592363 = FFTW_KONST(+0.497592363336098443122418476554739960787737434);
40
static const fftw_real K049008570 = FFTW_KONST(+0.049008570164780300997097781944320922930568337);
41
static const fftw_real K277785116 = FFTW_KONST(+0.277785116509801112371415406974266437187468595);
42
static const fftw_real K415734806 = FFTW_KONST(+0.415734806151272618539394188808952878369280406);
43
static const fftw_real K097545161 = FFTW_KONST(+0.097545161008064133924142434238511120463845809);
44
static const fftw_real K490392640 = FFTW_KONST(+0.490392640201615224563091118067119518486966865);
45
static const fftw_real K765366864 = FFTW_KONST(+0.765366864730179543456919968060797733522689125);
46
static const fftw_real K1_847759065 = FFTW_KONST(+1.847759065022573512256366378793576573644833252);
47
static const fftw_real K1_414213562 = FFTW_KONST(+1.414213562373095048801688724209698078569671875);
48
static const fftw_real K2_000000000 = FFTW_KONST(+2.000000000000000000000000000000000000000000000);
49
static const fftw_real K195090322 = FFTW_KONST(+0.195090322016128267848284868477022240927691618);
50
static const fftw_real K980785280 = FFTW_KONST(+0.980785280403230449126182236134239036973933731);
51
static const fftw_real K555570233 = FFTW_KONST(+0.555570233019602224742830813948532874374937191);
52
static const fftw_real K831469612 = FFTW_KONST(+0.831469612302545237078788377617905756738560812);
53
static const fftw_real K382683432 = FFTW_KONST(+0.382683432365089771728459984030398866761344562);
54
static const fftw_real K923879532 = FFTW_KONST(+0.923879532511286756128183189396788286822416626);
55
static const fftw_real K707106781 = FFTW_KONST(+0.707106781186547524400844362104849039284835938);
59
* $Id: exprdag.ml,v 1.41 1999/05/26 15:44:14 fftw Exp $
60
* $Id: fft.ml,v 1.43 1999/05/17 19:44:18 fftw Exp $
61
* $Id: to_c.ml,v 1.25 1999/10/26 21:41:32 stevenj Exp $
64
void fftw_hc2hc_forward_32(fftw_real *A, const fftw_complex *W, int iostride, int m, int dist)
70
Y = A + (32 * iostride);
104
ASSERT_ALIGNED_DOUBLE;
112
ASSERT_ALIGNED_DOUBLE;
114
tmp680 = X[16 * iostride];
115
tmp681 = tmp679 + tmp680;
116
tmp682 = X[8 * iostride];
117
tmp683 = X[24 * iostride];
118
tmp684 = tmp682 + tmp683;
119
tmp685 = tmp681 + tmp684;
120
tmp813 = tmp681 - tmp684;
121
tmp709 = tmp679 - tmp680;
122
tmp761 = tmp682 - tmp683;
129
ASSERT_ALIGNED_DOUBLE;
135
ASSERT_ALIGNED_DOUBLE;
136
tmp686 = X[4 * iostride];
137
tmp687 = X[20 * iostride];
138
tmp688 = tmp686 + tmp687;
139
tmp710 = tmp686 - tmp687;
140
tmp689 = X[28 * iostride];
141
tmp690 = X[12 * iostride];
142
tmp691 = tmp689 + tmp690;
143
tmp711 = tmp689 - tmp690;
145
tmp692 = tmp688 + tmp691;
146
tmp826 = tmp691 - tmp688;
147
tmp712 = K707106781 * (tmp710 + tmp711);
148
tmp760 = K707106781 * (tmp711 - tmp710);
161
ASSERT_ALIGNED_DOUBLE;
167
ASSERT_ALIGNED_DOUBLE;
168
tmp739 = X[31 * iostride];
169
tmp740 = X[15 * iostride];
170
tmp741 = tmp739 - tmp740;
171
tmp799 = tmp739 + tmp740;
172
tmp751 = X[7 * iostride];
173
tmp752 = X[23 * iostride];
174
tmp753 = tmp751 - tmp752;
175
tmp800 = tmp751 + tmp752;
182
ASSERT_ALIGNED_DOUBLE;
183
tmp742 = X[3 * iostride];
184
tmp743 = X[19 * iostride];
185
tmp744 = tmp742 - tmp743;
186
tmp802 = tmp742 + tmp743;
187
tmp745 = X[27 * iostride];
188
tmp746 = X[11 * iostride];
189
tmp747 = tmp745 - tmp746;
190
tmp803 = tmp745 + tmp746;
192
tmp801 = tmp799 + tmp800;
193
tmp821 = tmp799 - tmp800;
194
tmp748 = K707106781 * (tmp744 + tmp747);
195
tmp749 = tmp741 + tmp748;
196
tmp777 = tmp741 - tmp748;
197
tmp804 = tmp802 + tmp803;
198
tmp822 = tmp803 - tmp802;
199
tmp750 = K707106781 * (tmp747 - tmp744);
200
tmp754 = tmp750 - tmp753;
201
tmp778 = tmp753 + tmp750;
208
ASSERT_ALIGNED_DOUBLE;
214
ASSERT_ALIGNED_DOUBLE;
215
tmp694 = X[2 * iostride];
216
tmp695 = X[18 * iostride];
217
tmp696 = tmp694 + tmp695;
218
tmp714 = tmp694 - tmp695;
219
tmp697 = X[10 * iostride];
220
tmp698 = X[26 * iostride];
221
tmp699 = tmp697 + tmp698;
222
tmp715 = tmp697 - tmp698;
224
tmp700 = tmp696 + tmp699;
225
tmp814 = tmp696 - tmp699;
226
tmp716 = (K923879532 * tmp714) - (K382683432 * tmp715);
227
tmp758 = (K382683432 * tmp714) + (K923879532 * tmp715);
234
ASSERT_ALIGNED_DOUBLE;
240
ASSERT_ALIGNED_DOUBLE;
241
tmp701 = X[30 * iostride];
242
tmp702 = X[14 * iostride];
243
tmp703 = tmp701 + tmp702;
244
tmp717 = tmp701 - tmp702;
245
tmp704 = X[6 * iostride];
246
tmp705 = X[22 * iostride];
247
tmp706 = tmp704 + tmp705;
248
tmp718 = tmp704 - tmp705;
250
tmp707 = tmp703 + tmp706;
251
tmp815 = tmp703 - tmp706;
252
tmp719 = (K923879532 * tmp717) + (K382683432 * tmp718);
253
tmp757 = (K382683432 * tmp717) - (K923879532 * tmp718);
266
ASSERT_ALIGNED_DOUBLE;
272
ASSERT_ALIGNED_DOUBLE;
273
tmp722 = X[iostride];
274
tmp723 = X[17 * iostride];
275
tmp724 = tmp722 - tmp723;
276
tmp792 = tmp722 + tmp723;
277
tmp734 = X[9 * iostride];
278
tmp735 = X[25 * iostride];
279
tmp736 = tmp734 - tmp735;
280
tmp793 = tmp734 + tmp735;
287
ASSERT_ALIGNED_DOUBLE;
288
tmp725 = X[5 * iostride];
289
tmp726 = X[21 * iostride];
290
tmp727 = tmp725 - tmp726;
291
tmp795 = tmp725 + tmp726;
292
tmp728 = X[29 * iostride];
293
tmp729 = X[13 * iostride];
294
tmp730 = tmp728 - tmp729;
295
tmp796 = tmp728 + tmp729;
297
tmp794 = tmp792 + tmp793;
298
tmp818 = tmp792 - tmp793;
299
tmp731 = K707106781 * (tmp727 + tmp730);
300
tmp732 = tmp724 + tmp731;
301
tmp774 = tmp724 - tmp731;
302
tmp797 = tmp795 + tmp796;
303
tmp819 = tmp796 - tmp795;
304
tmp733 = K707106781 * (tmp730 - tmp727);
305
tmp737 = tmp733 - tmp736;
306
tmp775 = tmp736 + tmp733;
315
ASSERT_ALIGNED_DOUBLE;
316
tmp693 = tmp685 + tmp692;
317
tmp708 = tmp700 + tmp707;
318
tmp809 = tmp693 + tmp708;
319
tmp810 = tmp794 + tmp797;
320
tmp811 = tmp801 + tmp804;
321
tmp812 = tmp810 + tmp811;
322
X[8 * iostride] = tmp693 - tmp708;
323
Y[-8 * iostride] = tmp811 - tmp810;
324
X[16 * iostride] = tmp809 - tmp812;
325
X[0] = tmp809 + tmp812;
334
ASSERT_ALIGNED_DOUBLE;
335
tmp791 = tmp685 - tmp692;
336
tmp807 = tmp707 - tmp700;
337
tmp798 = tmp794 - tmp797;
338
tmp805 = tmp801 - tmp804;
339
tmp806 = K707106781 * (tmp798 + tmp805);
340
tmp808 = K707106781 * (tmp805 - tmp798);
341
X[12 * iostride] = tmp791 - tmp806;
342
X[4 * iostride] = tmp791 + tmp806;
343
Y[-4 * iostride] = tmp807 + tmp808;
344
Y[-12 * iostride] = tmp808 - tmp807;
357
ASSERT_ALIGNED_DOUBLE;
358
tmp816 = K707106781 * (tmp814 + tmp815);
359
tmp817 = tmp813 + tmp816;
360
tmp833 = tmp813 - tmp816;
361
tmp825 = K707106781 * (tmp815 - tmp814);
362
tmp827 = tmp825 - tmp826;
363
tmp829 = tmp826 + tmp825;
369
ASSERT_ALIGNED_DOUBLE;
370
tmp820 = (K923879532 * tmp818) + (K382683432 * tmp819);
371
tmp823 = (K923879532 * tmp821) - (K382683432 * tmp822);
372
tmp824 = tmp820 + tmp823;
373
tmp828 = tmp823 - tmp820;
374
tmp830 = (K923879532 * tmp819) - (K382683432 * tmp818);
375
tmp831 = (K382683432 * tmp821) + (K923879532 * tmp822);
376
tmp832 = tmp830 + tmp831;
377
tmp834 = tmp831 - tmp830;
379
X[14 * iostride] = tmp817 - tmp824;
380
X[2 * iostride] = tmp817 + tmp824;
381
Y[-6 * iostride] = tmp827 + tmp828;
382
Y[-10 * iostride] = tmp828 - tmp827;
383
Y[-2 * iostride] = tmp829 + tmp832;
384
Y[-14 * iostride] = tmp832 - tmp829;
385
X[10 * iostride] = tmp833 - tmp834;
386
X[6 * iostride] = tmp833 + tmp834;
397
ASSERT_ALIGNED_DOUBLE;
403
ASSERT_ALIGNED_DOUBLE;
404
tmp771 = tmp709 - tmp712;
405
tmp772 = tmp758 + tmp757;
406
tmp773 = tmp771 + tmp772;
407
tmp789 = tmp771 - tmp772;
408
tmp786 = (K831469612 * tmp775) - (K555570233 * tmp774);
409
tmp787 = (K555570233 * tmp777) + (K831469612 * tmp778);
410
tmp788 = tmp786 + tmp787;
411
tmp790 = tmp787 - tmp786;
418
ASSERT_ALIGNED_DOUBLE;
419
tmp776 = (K831469612 * tmp774) + (K555570233 * tmp775);
420
tmp779 = (K831469612 * tmp777) - (K555570233 * tmp778);
421
tmp780 = tmp776 + tmp779;
422
tmp784 = tmp779 - tmp776;
423
tmp781 = tmp719 - tmp716;
424
tmp782 = tmp761 + tmp760;
425
tmp783 = tmp781 - tmp782;
426
tmp785 = tmp782 + tmp781;
428
X[13 * iostride] = tmp773 - tmp780;
429
X[3 * iostride] = tmp773 + tmp780;
430
Y[-5 * iostride] = tmp783 + tmp784;
431
Y[-11 * iostride] = tmp784 - tmp783;
432
Y[-3 * iostride] = tmp785 + tmp788;
433
Y[-13 * iostride] = tmp788 - tmp785;
434
X[11 * iostride] = tmp789 - tmp790;
435
X[5 * iostride] = tmp789 + tmp790;
446
ASSERT_ALIGNED_DOUBLE;
452
ASSERT_ALIGNED_DOUBLE;
453
tmp713 = tmp709 + tmp712;
454
tmp720 = tmp716 + tmp719;
455
tmp721 = tmp713 + tmp720;
456
tmp769 = tmp713 - tmp720;
457
tmp766 = (K980785280 * tmp737) - (K195090322 * tmp732);
458
tmp767 = (K195090322 * tmp749) + (K980785280 * tmp754);
459
tmp768 = tmp766 + tmp767;
460
tmp770 = tmp767 - tmp766;
467
ASSERT_ALIGNED_DOUBLE;
468
tmp738 = (K980785280 * tmp732) + (K195090322 * tmp737);
469
tmp755 = (K980785280 * tmp749) - (K195090322 * tmp754);
470
tmp756 = tmp738 + tmp755;
471
tmp764 = tmp755 - tmp738;
472
tmp759 = tmp757 - tmp758;
473
tmp762 = tmp760 - tmp761;
474
tmp763 = tmp759 - tmp762;
475
tmp765 = tmp762 + tmp759;
477
X[15 * iostride] = tmp721 - tmp756;
478
X[iostride] = tmp721 + tmp756;
479
Y[-7 * iostride] = tmp763 + tmp764;
480
Y[-9 * iostride] = tmp764 - tmp763;
481
Y[-iostride] = tmp765 + tmp768;
482
Y[-15 * iostride] = tmp768 - tmp765;
483
X[9 * iostride] = tmp769 - tmp770;
484
X[7 * iostride] = tmp769 + tmp770;
489
for (i = 2; i < m; i = i + 2, X = X + dist, Y = Y - dist, W = W + 31) {
554
ASSERT_ALIGNED_DOUBLE;
564
ASSERT_ALIGNED_DOUBLE;
566
tmp621 = Y[-31 * iostride];
572
ASSERT_ALIGNED_DOUBLE;
573
tmp185 = X[16 * iostride];
574
tmp187 = Y[-15 * iostride];
575
tmp184 = c_re(W[15]);
576
tmp186 = c_im(W[15]);
577
tmp188 = (tmp184 * tmp185) - (tmp186 * tmp187);
578
tmp620 = (tmp186 * tmp185) + (tmp184 * tmp187);
585
ASSERT_ALIGNED_DOUBLE;
586
tmp191 = X[8 * iostride];
587
tmp193 = Y[-23 * iostride];
590
tmp194 = (tmp190 * tmp191) - (tmp192 * tmp193);
591
tmp370 = (tmp192 * tmp191) + (tmp190 * tmp193);
598
ASSERT_ALIGNED_DOUBLE;
599
tmp196 = X[24 * iostride];
600
tmp198 = Y[-7 * iostride];
601
tmp195 = c_re(W[23]);
602
tmp197 = c_im(W[23]);
603
tmp199 = (tmp195 * tmp196) - (tmp197 * tmp198);
604
tmp371 = (tmp197 * tmp196) + (tmp195 * tmp198);
611
ASSERT_ALIGNED_DOUBLE;
612
tmp189 = tmp183 + tmp188;
613
tmp200 = tmp194 + tmp199;
614
tmp201 = tmp189 + tmp200;
615
tmp533 = tmp189 - tmp200;
616
tmp651 = tmp621 - tmp620;
617
tmp652 = tmp194 - tmp199;
618
tmp653 = tmp651 - tmp652;
619
tmp667 = tmp652 + tmp651;
626
ASSERT_ALIGNED_DOUBLE;
627
tmp619 = tmp370 + tmp371;
628
tmp622 = tmp620 + tmp621;
629
tmp623 = tmp619 + tmp622;
630
tmp637 = tmp622 - tmp619;
631
tmp369 = tmp183 - tmp188;
632
tmp372 = tmp370 - tmp371;
633
tmp373 = tmp369 - tmp372;
634
tmp485 = tmp369 + tmp372;
646
ASSERT_ALIGNED_DOUBLE;
652
ASSERT_ALIGNED_DOUBLE;
653
tmp322 = X[31 * iostride];
655
tmp321 = c_re(W[30]);
656
tmp323 = c_im(W[30]);
657
tmp325 = (tmp321 * tmp322) - (tmp323 * tmp324);
658
tmp454 = (tmp323 * tmp322) + (tmp321 * tmp324);
665
ASSERT_ALIGNED_DOUBLE;
666
tmp338 = X[23 * iostride];
667
tmp340 = Y[-8 * iostride];
668
tmp337 = c_re(W[22]);
669
tmp339 = c_im(W[22]);
670
tmp341 = (tmp337 * tmp338) - (tmp339 * tmp340);
671
tmp439 = (tmp339 * tmp338) + (tmp337 * tmp340);
678
ASSERT_ALIGNED_DOUBLE;
679
tmp327 = X[15 * iostride];
680
tmp329 = Y[-16 * iostride];
681
tmp326 = c_re(W[14]);
682
tmp328 = c_im(W[14]);
683
tmp330 = (tmp326 * tmp327) - (tmp328 * tmp329);
684
tmp455 = (tmp328 * tmp327) + (tmp326 * tmp329);
691
ASSERT_ALIGNED_DOUBLE;
692
tmp333 = X[7 * iostride];
693
tmp335 = Y[-24 * iostride];
696
tmp336 = (tmp332 * tmp333) - (tmp334 * tmp335);
697
tmp438 = (tmp334 * tmp333) + (tmp332 * tmp335);
704
ASSERT_ALIGNED_DOUBLE;
705
tmp331 = tmp325 + tmp330;
706
tmp342 = tmp336 + tmp341;
707
tmp343 = tmp331 + tmp342;
708
tmp561 = tmp331 - tmp342;
709
tmp456 = tmp454 - tmp455;
710
tmp457 = tmp336 - tmp341;
711
tmp458 = tmp456 + tmp457;
712
tmp508 = tmp456 - tmp457;
719
ASSERT_ALIGNED_DOUBLE;
720
tmp566 = tmp454 + tmp455;
721
tmp567 = tmp438 + tmp439;
722
tmp568 = tmp566 - tmp567;
723
tmp604 = tmp566 + tmp567;
724
tmp437 = tmp325 - tmp330;
725
tmp440 = tmp438 - tmp439;
726
tmp441 = tmp437 - tmp440;
727
tmp505 = tmp437 + tmp440;
739
ASSERT_ALIGNED_DOUBLE;
745
ASSERT_ALIGNED_DOUBLE;
746
tmp203 = X[4 * iostride];
747
tmp205 = Y[-27 * iostride];
750
tmp206 = (tmp202 * tmp203) - (tmp204 * tmp205);
751
tmp374 = (tmp204 * tmp203) + (tmp202 * tmp205);
758
ASSERT_ALIGNED_DOUBLE;
759
tmp219 = X[12 * iostride];
760
tmp221 = Y[-19 * iostride];
761
tmp218 = c_re(W[11]);
762
tmp220 = c_im(W[11]);
763
tmp222 = (tmp218 * tmp219) - (tmp220 * tmp221);
764
tmp381 = (tmp220 * tmp219) + (tmp218 * tmp221);
771
ASSERT_ALIGNED_DOUBLE;
772
tmp208 = X[20 * iostride];
773
tmp210 = Y[-11 * iostride];
774
tmp207 = c_re(W[19]);
775
tmp209 = c_im(W[19]);
776
tmp211 = (tmp207 * tmp208) - (tmp209 * tmp210);
777
tmp375 = (tmp209 * tmp208) + (tmp207 * tmp210);
784
ASSERT_ALIGNED_DOUBLE;
785
tmp214 = X[28 * iostride];
786
tmp216 = Y[-3 * iostride];
787
tmp213 = c_re(W[27]);
788
tmp215 = c_im(W[27]);
789
tmp217 = (tmp213 * tmp214) - (tmp215 * tmp216);
790
tmp380 = (tmp215 * tmp214) + (tmp213 * tmp216);
797
ASSERT_ALIGNED_DOUBLE;
798
tmp212 = tmp206 + tmp211;
799
tmp223 = tmp217 + tmp222;
800
tmp224 = tmp212 + tmp223;
801
tmp636 = tmp223 - tmp212;
802
tmp379 = tmp217 - tmp222;
803
tmp382 = tmp380 - tmp381;
804
tmp383 = tmp379 + tmp382;
805
tmp487 = tmp379 - tmp382;
812
ASSERT_ALIGNED_DOUBLE;
813
tmp534 = tmp374 + tmp375;
814
tmp535 = tmp380 + tmp381;
815
tmp536 = tmp534 - tmp535;
816
tmp618 = tmp534 + tmp535;
817
tmp376 = tmp374 - tmp375;
818
tmp377 = tmp206 - tmp211;
819
tmp378 = tmp376 - tmp377;
820
tmp486 = tmp377 + tmp376;
836
ASSERT_ALIGNED_DOUBLE;
842
ASSERT_ALIGNED_DOUBLE;
843
tmp345 = X[3 * iostride];
844
tmp347 = Y[-28 * iostride];
847
tmp348 = (tmp344 * tmp345) - (tmp346 * tmp347);
848
tmp442 = (tmp346 * tmp345) + (tmp344 * tmp347);
855
ASSERT_ALIGNED_DOUBLE;
856
tmp350 = X[19 * iostride];
857
tmp352 = Y[-12 * iostride];
858
tmp349 = c_re(W[18]);
859
tmp351 = c_im(W[18]);
860
tmp353 = (tmp349 * tmp350) - (tmp351 * tmp352);
861
tmp443 = (tmp351 * tmp350) + (tmp349 * tmp352);
863
tmp444 = tmp442 - tmp443;
864
tmp445 = tmp348 - tmp353;
870
ASSERT_ALIGNED_DOUBLE;
871
tmp356 = X[27 * iostride];
872
tmp358 = Y[-4 * iostride];
873
tmp355 = c_re(W[26]);
874
tmp357 = c_im(W[26]);
875
tmp359 = (tmp355 * tmp356) - (tmp357 * tmp358);
876
tmp448 = (tmp357 * tmp356) + (tmp355 * tmp358);
883
ASSERT_ALIGNED_DOUBLE;
884
tmp361 = X[11 * iostride];
885
tmp363 = Y[-20 * iostride];
886
tmp360 = c_re(W[10]);
887
tmp362 = c_im(W[10]);
888
tmp364 = (tmp360 * tmp361) - (tmp362 * tmp363);
889
tmp449 = (tmp362 * tmp361) + (tmp360 * tmp363);
891
tmp447 = tmp359 - tmp364;
892
tmp450 = tmp448 - tmp449;
898
ASSERT_ALIGNED_DOUBLE;
899
tmp354 = tmp348 + tmp353;
900
tmp365 = tmp359 + tmp364;
901
tmp366 = tmp354 + tmp365;
902
tmp569 = tmp365 - tmp354;
903
tmp562 = tmp442 + tmp443;
904
tmp563 = tmp448 + tmp449;
905
tmp564 = tmp562 - tmp563;
906
tmp605 = tmp562 + tmp563;
913
ASSERT_ALIGNED_DOUBLE;
914
tmp446 = tmp444 - tmp445;
915
tmp451 = tmp447 + tmp450;
916
tmp452 = K707106781 * (tmp446 - tmp451);
917
tmp509 = K707106781 * (tmp446 + tmp451);
918
tmp459 = tmp447 - tmp450;
919
tmp460 = tmp445 + tmp444;
920
tmp461 = K707106781 * (tmp459 - tmp460);
921
tmp506 = K707106781 * (tmp460 + tmp459);
933
ASSERT_ALIGNED_DOUBLE;
939
ASSERT_ALIGNED_DOUBLE;
940
tmp227 = X[2 * iostride];
941
tmp229 = Y[-29 * iostride];
944
tmp230 = (tmp226 * tmp227) - (tmp228 * tmp229);
945
tmp386 = (tmp228 * tmp227) + (tmp226 * tmp229);
952
ASSERT_ALIGNED_DOUBLE;
953
tmp243 = X[26 * iostride];
954
tmp245 = Y[-5 * iostride];
955
tmp242 = c_re(W[25]);
956
tmp244 = c_im(W[25]);
957
tmp246 = (tmp242 * tmp243) - (tmp244 * tmp245);
958
tmp393 = (tmp244 * tmp243) + (tmp242 * tmp245);
965
ASSERT_ALIGNED_DOUBLE;
966
tmp232 = X[18 * iostride];
967
tmp234 = Y[-13 * iostride];
968
tmp231 = c_re(W[17]);
969
tmp233 = c_im(W[17]);
970
tmp235 = (tmp231 * tmp232) - (tmp233 * tmp234);
971
tmp387 = (tmp233 * tmp232) + (tmp231 * tmp234);
978
ASSERT_ALIGNED_DOUBLE;
979
tmp238 = X[10 * iostride];
980
tmp240 = Y[-21 * iostride];
983
tmp241 = (tmp237 * tmp238) - (tmp239 * tmp240);
984
tmp392 = (tmp239 * tmp238) + (tmp237 * tmp240);
991
ASSERT_ALIGNED_DOUBLE;
992
tmp236 = tmp230 + tmp235;
993
tmp247 = tmp241 + tmp246;
994
tmp248 = tmp236 + tmp247;
995
tmp541 = tmp236 - tmp247;
996
tmp391 = tmp230 - tmp235;
997
tmp394 = tmp392 - tmp393;
998
tmp395 = tmp391 - tmp394;
999
tmp491 = tmp391 + tmp394;
1006
ASSERT_ALIGNED_DOUBLE;
1007
tmp538 = tmp386 + tmp387;
1008
tmp539 = tmp392 + tmp393;
1009
tmp540 = tmp538 - tmp539;
1010
tmp594 = tmp538 + tmp539;
1011
tmp388 = tmp386 - tmp387;
1012
tmp389 = tmp241 - tmp246;
1013
tmp390 = tmp388 + tmp389;
1014
tmp490 = tmp388 - tmp389;
1026
ASSERT_ALIGNED_DOUBLE;
1032
ASSERT_ALIGNED_DOUBLE;
1033
tmp275 = X[iostride];
1034
tmp277 = Y[-30 * iostride];
1035
tmp274 = c_re(W[0]);
1036
tmp276 = c_im(W[0]);
1037
tmp278 = (tmp274 * tmp275) - (tmp276 * tmp277);
1038
tmp410 = (tmp276 * tmp275) + (tmp274 * tmp277);
1045
ASSERT_ALIGNED_DOUBLE;
1046
tmp291 = X[25 * iostride];
1047
tmp293 = Y[-6 * iostride];
1048
tmp290 = c_re(W[24]);
1049
tmp292 = c_im(W[24]);
1050
tmp294 = (tmp290 * tmp291) - (tmp292 * tmp293);
1051
tmp429 = (tmp292 * tmp291) + (tmp290 * tmp293);
1058
ASSERT_ALIGNED_DOUBLE;
1059
tmp280 = X[17 * iostride];
1060
tmp282 = Y[-14 * iostride];
1061
tmp279 = c_re(W[16]);
1062
tmp281 = c_im(W[16]);
1063
tmp283 = (tmp279 * tmp280) - (tmp281 * tmp282);
1064
tmp411 = (tmp281 * tmp280) + (tmp279 * tmp282);
1071
ASSERT_ALIGNED_DOUBLE;
1072
tmp286 = X[9 * iostride];
1073
tmp288 = Y[-22 * iostride];
1074
tmp285 = c_re(W[8]);
1075
tmp287 = c_im(W[8]);
1076
tmp289 = (tmp285 * tmp286) - (tmp287 * tmp288);
1077
tmp428 = (tmp287 * tmp286) + (tmp285 * tmp288);
1084
ASSERT_ALIGNED_DOUBLE;
1085
tmp284 = tmp278 + tmp283;
1086
tmp295 = tmp289 + tmp294;
1087
tmp296 = tmp284 + tmp295;
1088
tmp555 = tmp284 - tmp295;
1089
tmp427 = tmp278 - tmp283;
1090
tmp430 = tmp428 - tmp429;
1091
tmp431 = tmp427 - tmp430;
1092
tmp498 = tmp427 + tmp430;
1099
ASSERT_ALIGNED_DOUBLE;
1100
tmp550 = tmp410 + tmp411;
1101
tmp551 = tmp428 + tmp429;
1102
tmp552 = tmp550 - tmp551;
1103
tmp599 = tmp550 + tmp551;
1104
tmp412 = tmp410 - tmp411;
1105
tmp413 = tmp289 - tmp294;
1106
tmp414 = tmp412 + tmp413;
1107
tmp501 = tmp412 - tmp413;
1119
ASSERT_ALIGNED_DOUBLE;
1125
ASSERT_ALIGNED_DOUBLE;
1126
tmp250 = X[30 * iostride];
1127
tmp252 = Y[-iostride];
1128
tmp249 = c_re(W[29]);
1129
tmp251 = c_im(W[29]);
1130
tmp253 = (tmp249 * tmp250) - (tmp251 * tmp252);
1131
tmp397 = (tmp251 * tmp250) + (tmp249 * tmp252);
1138
ASSERT_ALIGNED_DOUBLE;
1139
tmp266 = X[22 * iostride];
1140
tmp268 = Y[-9 * iostride];
1141
tmp265 = c_re(W[21]);
1142
tmp267 = c_im(W[21]);
1143
tmp269 = (tmp265 * tmp266) - (tmp267 * tmp268);
1144
tmp404 = (tmp267 * tmp266) + (tmp265 * tmp268);
1151
ASSERT_ALIGNED_DOUBLE;
1152
tmp255 = X[14 * iostride];
1153
tmp257 = Y[-17 * iostride];
1154
tmp254 = c_re(W[13]);
1155
tmp256 = c_im(W[13]);
1156
tmp258 = (tmp254 * tmp255) - (tmp256 * tmp257);
1157
tmp398 = (tmp256 * tmp255) + (tmp254 * tmp257);
1164
ASSERT_ALIGNED_DOUBLE;
1165
tmp261 = X[6 * iostride];
1166
tmp263 = Y[-25 * iostride];
1167
tmp260 = c_re(W[5]);
1168
tmp262 = c_im(W[5]);
1169
tmp264 = (tmp260 * tmp261) - (tmp262 * tmp263);
1170
tmp403 = (tmp262 * tmp261) + (tmp260 * tmp263);
1177
ASSERT_ALIGNED_DOUBLE;
1178
tmp259 = tmp253 + tmp258;
1179
tmp270 = tmp264 + tmp269;
1180
tmp271 = tmp259 + tmp270;
1181
tmp543 = tmp259 - tmp270;
1182
tmp402 = tmp253 - tmp258;
1183
tmp405 = tmp403 - tmp404;
1184
tmp406 = tmp402 - tmp405;
1185
tmp494 = tmp402 + tmp405;
1192
ASSERT_ALIGNED_DOUBLE;
1193
tmp544 = tmp397 + tmp398;
1194
tmp545 = tmp403 + tmp404;
1195
tmp546 = tmp544 - tmp545;
1196
tmp595 = tmp544 + tmp545;
1197
tmp399 = tmp397 - tmp398;
1198
tmp400 = tmp264 - tmp269;
1199
tmp401 = tmp399 + tmp400;
1200
tmp493 = tmp399 - tmp400;
1216
ASSERT_ALIGNED_DOUBLE;
1222
ASSERT_ALIGNED_DOUBLE;
1223
tmp298 = X[5 * iostride];
1224
tmp300 = Y[-26 * iostride];
1225
tmp297 = c_re(W[4]);
1226
tmp299 = c_im(W[4]);
1227
tmp301 = (tmp297 * tmp298) - (tmp299 * tmp300);
1228
tmp421 = (tmp299 * tmp298) + (tmp297 * tmp300);
1235
ASSERT_ALIGNED_DOUBLE;
1236
tmp303 = X[21 * iostride];
1237
tmp305 = Y[-10 * iostride];
1238
tmp302 = c_re(W[20]);
1239
tmp304 = c_im(W[20]);
1240
tmp306 = (tmp302 * tmp303) - (tmp304 * tmp305);
1241
tmp422 = (tmp304 * tmp303) + (tmp302 * tmp305);
1243
tmp420 = tmp301 - tmp306;
1244
tmp423 = tmp421 - tmp422;
1250
ASSERT_ALIGNED_DOUBLE;
1251
tmp309 = X[29 * iostride];
1252
tmp311 = Y[-2 * iostride];
1253
tmp308 = c_re(W[28]);
1254
tmp310 = c_im(W[28]);
1255
tmp312 = (tmp308 * tmp309) - (tmp310 * tmp311);
1256
tmp416 = (tmp310 * tmp309) + (tmp308 * tmp311);
1263
ASSERT_ALIGNED_DOUBLE;
1264
tmp314 = X[13 * iostride];
1265
tmp316 = Y[-18 * iostride];
1266
tmp313 = c_re(W[12]);
1267
tmp315 = c_im(W[12]);
1268
tmp317 = (tmp313 * tmp314) - (tmp315 * tmp316);
1269
tmp417 = (tmp315 * tmp314) + (tmp313 * tmp316);
1271
tmp415 = tmp312 - tmp317;
1272
tmp418 = tmp416 - tmp417;
1278
ASSERT_ALIGNED_DOUBLE;
1279
tmp307 = tmp301 + tmp306;
1280
tmp318 = tmp312 + tmp317;
1281
tmp319 = tmp307 + tmp318;
1282
tmp553 = tmp318 - tmp307;
1283
tmp556 = tmp421 + tmp422;
1284
tmp557 = tmp416 + tmp417;
1285
tmp558 = tmp556 - tmp557;
1286
tmp600 = tmp556 + tmp557;
1293
ASSERT_ALIGNED_DOUBLE;
1294
tmp419 = tmp415 - tmp418;
1295
tmp424 = tmp420 + tmp423;
1296
tmp425 = K707106781 * (tmp419 - tmp424);
1297
tmp499 = K707106781 * (tmp424 + tmp419);
1298
tmp432 = tmp423 - tmp420;
1299
tmp433 = tmp415 + tmp418;
1300
tmp434 = K707106781 * (tmp432 - tmp433);
1301
tmp502 = K707106781 * (tmp432 + tmp433);
1313
ASSERT_ALIGNED_DOUBLE;
1319
ASSERT_ALIGNED_DOUBLE;
1320
tmp225 = tmp201 + tmp224;
1321
tmp272 = tmp248 + tmp271;
1322
tmp273 = tmp225 + tmp272;
1323
tmp613 = tmp225 - tmp272;
1324
tmp617 = tmp594 + tmp595;
1325
tmp624 = tmp618 + tmp623;
1326
tmp625 = tmp617 + tmp624;
1327
tmp627 = tmp624 - tmp617;
1334
ASSERT_ALIGNED_DOUBLE;
1335
tmp320 = tmp296 + tmp319;
1336
tmp367 = tmp343 + tmp366;
1337
tmp368 = tmp320 + tmp367;
1338
tmp628 = tmp367 - tmp320;
1339
tmp614 = tmp599 + tmp600;
1340
tmp615 = tmp604 + tmp605;
1341
tmp616 = tmp614 - tmp615;
1342
tmp626 = tmp614 + tmp615;
1344
Y[-16 * iostride] = tmp273 - tmp368;
1345
X[0] = tmp273 + tmp368;
1346
Y[-24 * iostride] = tmp613 - tmp616;
1347
X[8 * iostride] = tmp613 + tmp616;
1348
X[16 * iostride] = -(tmp625 - tmp626);
1349
Y[0] = tmp626 + tmp625;
1350
X[24 * iostride] = -(tmp627 - tmp628);
1351
Y[-8 * iostride] = tmp628 + tmp627;
1362
ASSERT_ALIGNED_DOUBLE;
1368
ASSERT_ALIGNED_DOUBLE;
1369
tmp593 = tmp201 - tmp224;
1370
tmp596 = tmp594 - tmp595;
1371
tmp597 = tmp593 + tmp596;
1372
tmp609 = tmp593 - tmp596;
1373
tmp629 = tmp271 - tmp248;
1374
tmp630 = tmp623 - tmp618;
1375
tmp631 = tmp629 + tmp630;
1376
tmp633 = tmp630 - tmp629;
1383
ASSERT_ALIGNED_DOUBLE;
1384
tmp598 = tmp296 - tmp319;
1385
tmp601 = tmp599 - tmp600;
1386
tmp602 = tmp598 + tmp601;
1387
tmp610 = tmp601 - tmp598;
1388
tmp603 = tmp343 - tmp366;
1389
tmp606 = tmp604 - tmp605;
1390
tmp607 = tmp603 - tmp606;
1391
tmp611 = tmp603 + tmp606;
1398
ASSERT_ALIGNED_DOUBLE;
1399
tmp608 = K707106781 * (tmp602 + tmp607);
1400
Y[-20 * iostride] = tmp597 - tmp608;
1401
X[4 * iostride] = tmp597 + tmp608;
1402
tmp634 = K707106781 * (tmp607 - tmp602);
1403
X[28 * iostride] = -(tmp633 - tmp634);
1404
Y[-12 * iostride] = tmp634 + tmp633;
1405
tmp612 = K707106781 * (tmp610 - tmp611);
1406
Y[-28 * iostride] = tmp609 - tmp612;
1407
X[12 * iostride] = tmp609 + tmp612;
1408
tmp632 = K707106781 * (tmp610 + tmp611);
1409
X[20 * iostride] = -(tmp631 - tmp632);
1410
Y[-4 * iostride] = tmp632 + tmp631;
1430
ASSERT_ALIGNED_DOUBLE;
1436
ASSERT_ALIGNED_DOUBLE;
1437
tmp537 = tmp533 - tmp536;
1438
tmp577 = tmp533 + tmp536;
1439
tmp542 = tmp540 - tmp541;
1440
tmp547 = tmp543 + tmp546;
1441
tmp548 = K707106781 * (tmp542 - tmp547);
1442
tmp635 = K707106781 * (tmp542 + tmp547);
1448
ASSERT_ALIGNED_DOUBLE;
1449
tmp578 = tmp541 + tmp540;
1450
tmp579 = tmp543 - tmp546;
1451
tmp580 = K707106781 * (tmp578 + tmp579);
1452
tmp643 = K707106781 * (tmp579 - tmp578);
1453
tmp554 = tmp552 - tmp553;
1454
tmp559 = tmp555 - tmp558;
1455
tmp560 = (K923879532 * tmp554) + (K382683432 * tmp559);
1456
tmp574 = (K382683432 * tmp554) - (K923879532 * tmp559);
1458
tmp638 = tmp636 + tmp637;
1459
tmp644 = tmp637 - tmp636;
1460
tmp582 = tmp552 + tmp553;
1461
tmp583 = tmp555 + tmp558;
1462
tmp584 = (K382683432 * tmp582) + (K923879532 * tmp583);
1463
tmp590 = (K923879532 * tmp582) - (K382683432 * tmp583);
1469
ASSERT_ALIGNED_DOUBLE;
1470
tmp565 = tmp561 - tmp564;
1471
tmp570 = tmp568 - tmp569;
1472
tmp571 = (K382683432 * tmp565) - (K923879532 * tmp570);
1473
tmp575 = (K382683432 * tmp570) + (K923879532 * tmp565);
1474
tmp585 = tmp561 + tmp564;
1475
tmp586 = tmp568 + tmp569;
1476
tmp587 = (K923879532 * tmp585) - (K382683432 * tmp586);
1477
tmp591 = (K923879532 * tmp586) + (K382683432 * tmp585);
1485
ASSERT_ALIGNED_DOUBLE;
1486
tmp549 = tmp537 + tmp548;
1487
tmp572 = tmp560 + tmp571;
1488
Y[-22 * iostride] = tmp549 - tmp572;
1489
X[6 * iostride] = tmp549 + tmp572;
1490
tmp573 = tmp537 - tmp548;
1491
tmp576 = tmp574 - tmp575;
1492
Y[-30 * iostride] = tmp573 - tmp576;
1493
X[14 * iostride] = tmp573 + tmp576;
1500
ASSERT_ALIGNED_DOUBLE;
1501
tmp645 = tmp643 + tmp644;
1502
tmp646 = tmp574 + tmp575;
1503
X[22 * iostride] = -(tmp645 - tmp646);
1504
Y[-6 * iostride] = tmp646 + tmp645;
1505
tmp647 = tmp644 - tmp643;
1506
tmp648 = tmp571 - tmp560;
1507
X[30 * iostride] = -(tmp647 - tmp648);
1508
Y[-14 * iostride] = tmp648 + tmp647;
1515
ASSERT_ALIGNED_DOUBLE;
1516
tmp581 = tmp577 + tmp580;
1517
tmp588 = tmp584 + tmp587;
1518
Y[-18 * iostride] = tmp581 - tmp588;
1519
X[2 * iostride] = tmp581 + tmp588;
1520
tmp589 = tmp577 - tmp580;
1521
tmp592 = tmp590 - tmp591;
1522
Y[-26 * iostride] = tmp589 - tmp592;
1523
X[10 * iostride] = tmp589 + tmp592;
1530
ASSERT_ALIGNED_DOUBLE;
1531
tmp639 = tmp635 + tmp638;
1532
tmp640 = tmp590 + tmp591;
1533
X[18 * iostride] = -(tmp639 - tmp640);
1534
Y[-2 * iostride] = tmp640 + tmp639;
1535
tmp641 = tmp638 - tmp635;
1536
tmp642 = tmp587 - tmp584;
1537
X[26 * iostride] = -(tmp641 - tmp642);
1538
Y[-10 * iostride] = tmp642 + tmp641;
1558
ASSERT_ALIGNED_DOUBLE;
1566
ASSERT_ALIGNED_DOUBLE;
1567
tmp488 = K707106781 * (tmp486 + tmp487);
1568
tmp489 = tmp485 - tmp488;
1569
tmp517 = tmp485 + tmp488;
1570
tmp518 = (K382683432 * tmp490) + (K923879532 * tmp491);
1571
tmp519 = (K923879532 * tmp494) - (K382683432 * tmp493);
1572
tmp520 = tmp518 + tmp519;
1573
tmp659 = tmp519 - tmp518;
1574
tmp650 = K707106781 * (tmp378 + tmp383);
1575
tmp654 = tmp650 + tmp653;
1576
tmp660 = tmp653 - tmp650;
1577
tmp492 = (K923879532 * tmp490) - (K382683432 * tmp491);
1578
tmp495 = (K923879532 * tmp493) + (K382683432 * tmp494);
1579
tmp496 = tmp492 - tmp495;
1580
tmp649 = tmp492 + tmp495;
1587
ASSERT_ALIGNED_DOUBLE;
1588
tmp500 = tmp498 - tmp499;
1589
tmp503 = tmp501 - tmp502;
1590
tmp504 = (K555570233 * tmp500) + (K831469612 * tmp503);
1591
tmp514 = (K555570233 * tmp503) - (K831469612 * tmp500);
1592
tmp522 = tmp498 + tmp499;
1593
tmp523 = tmp501 + tmp502;
1594
tmp524 = (K980785280 * tmp522) + (K195090322 * tmp523);
1595
tmp530 = (K980785280 * tmp523) - (K195090322 * tmp522);
1602
ASSERT_ALIGNED_DOUBLE;
1603
tmp507 = tmp505 - tmp506;
1604
tmp510 = tmp508 - tmp509;
1605
tmp511 = (K555570233 * tmp507) - (K831469612 * tmp510);
1606
tmp515 = (K831469612 * tmp507) + (K555570233 * tmp510);
1607
tmp525 = tmp505 + tmp506;
1608
tmp526 = tmp508 + tmp509;
1609
tmp527 = (K980785280 * tmp525) - (K195090322 * tmp526);
1610
tmp531 = (K195090322 * tmp525) + (K980785280 * tmp526);
1617
ASSERT_ALIGNED_DOUBLE;
1618
tmp497 = tmp489 + tmp496;
1619
tmp512 = tmp504 + tmp511;
1620
Y[-21 * iostride] = tmp497 - tmp512;
1621
X[5 * iostride] = tmp497 + tmp512;
1622
tmp513 = tmp489 - tmp496;
1623
tmp516 = tmp514 - tmp515;
1624
Y[-29 * iostride] = tmp513 - tmp516;
1625
X[13 * iostride] = tmp513 + tmp516;
1632
ASSERT_ALIGNED_DOUBLE;
1633
tmp661 = tmp659 + tmp660;
1634
tmp662 = tmp514 + tmp515;
1635
X[21 * iostride] = -(tmp661 - tmp662);
1636
Y[-5 * iostride] = tmp662 + tmp661;
1637
tmp663 = tmp660 - tmp659;
1638
tmp664 = tmp511 - tmp504;
1639
X[29 * iostride] = -(tmp663 - tmp664);
1640
Y[-13 * iostride] = tmp664 + tmp663;
1647
ASSERT_ALIGNED_DOUBLE;
1648
tmp521 = tmp517 + tmp520;
1649
tmp528 = tmp524 + tmp527;
1650
Y[-17 * iostride] = tmp521 - tmp528;
1651
X[iostride] = tmp521 + tmp528;
1652
tmp529 = tmp517 - tmp520;
1653
tmp532 = tmp530 - tmp531;
1654
Y[-25 * iostride] = tmp529 - tmp532;
1655
X[9 * iostride] = tmp529 + tmp532;
1662
ASSERT_ALIGNED_DOUBLE;
1663
tmp655 = tmp649 + tmp654;
1664
tmp656 = tmp530 + tmp531;
1665
X[17 * iostride] = -(tmp655 - tmp656);
1666
Y[-iostride] = tmp656 + tmp655;
1667
tmp657 = tmp654 - tmp649;
1668
tmp658 = tmp527 - tmp524;
1669
X[25 * iostride] = -(tmp657 - tmp658);
1670
Y[-9 * iostride] = tmp658 + tmp657;
1690
ASSERT_ALIGNED_DOUBLE;
1698
ASSERT_ALIGNED_DOUBLE;
1699
tmp384 = K707106781 * (tmp378 - tmp383);
1700
tmp385 = tmp373 - tmp384;
1701
tmp469 = tmp373 + tmp384;
1702
tmp470 = (K923879532 * tmp390) + (K382683432 * tmp395);
1703
tmp471 = (K382683432 * tmp406) - (K923879532 * tmp401);
1704
tmp472 = tmp470 + tmp471;
1705
tmp673 = tmp471 - tmp470;
1706
tmp666 = K707106781 * (tmp487 - tmp486);
1707
tmp668 = tmp666 + tmp667;
1708
tmp674 = tmp667 - tmp666;
1709
tmp396 = (K382683432 * tmp390) - (K923879532 * tmp395);
1710
tmp407 = (K382683432 * tmp401) + (K923879532 * tmp406);
1711
tmp408 = tmp396 - tmp407;
1712
tmp665 = tmp396 + tmp407;
1719
ASSERT_ALIGNED_DOUBLE;
1720
tmp426 = tmp414 - tmp425;
1721
tmp435 = tmp431 - tmp434;
1722
tmp436 = (K980785280 * tmp426) + (K195090322 * tmp435);
1723
tmp466 = (K195090322 * tmp426) - (K980785280 * tmp435);
1724
tmp474 = tmp414 + tmp425;
1725
tmp475 = tmp431 + tmp434;
1726
tmp476 = (K555570233 * tmp474) + (K831469612 * tmp475);
1727
tmp482 = (K831469612 * tmp474) - (K555570233 * tmp475);
1734
ASSERT_ALIGNED_DOUBLE;
1735
tmp453 = tmp441 - tmp452;
1736
tmp462 = tmp458 - tmp461;
1737
tmp463 = (K195090322 * tmp453) - (K980785280 * tmp462);
1738
tmp467 = (K195090322 * tmp462) + (K980785280 * tmp453);
1739
tmp477 = tmp441 + tmp452;
1740
tmp478 = tmp458 + tmp461;
1741
tmp479 = (K831469612 * tmp477) - (K555570233 * tmp478);
1742
tmp483 = (K831469612 * tmp478) + (K555570233 * tmp477);
1749
ASSERT_ALIGNED_DOUBLE;
1750
tmp409 = tmp385 + tmp408;
1751
tmp464 = tmp436 + tmp463;
1752
Y[-23 * iostride] = tmp409 - tmp464;
1753
X[7 * iostride] = tmp409 + tmp464;
1754
tmp465 = tmp385 - tmp408;
1755
tmp468 = tmp466 - tmp467;
1756
Y[-31 * iostride] = tmp465 - tmp468;
1757
X[15 * iostride] = tmp465 + tmp468;
1764
ASSERT_ALIGNED_DOUBLE;
1765
tmp675 = tmp673 + tmp674;
1766
tmp676 = tmp466 + tmp467;
1767
X[23 * iostride] = -(tmp675 - tmp676);
1768
Y[-7 * iostride] = tmp676 + tmp675;
1769
tmp677 = tmp674 - tmp673;
1770
tmp678 = tmp463 - tmp436;
1771
X[31 * iostride] = -(tmp677 - tmp678);
1772
Y[-15 * iostride] = tmp678 + tmp677;
1779
ASSERT_ALIGNED_DOUBLE;
1780
tmp473 = tmp469 + tmp472;
1781
tmp480 = tmp476 + tmp479;
1782
Y[-19 * iostride] = tmp473 - tmp480;
1783
X[3 * iostride] = tmp473 + tmp480;
1784
tmp481 = tmp469 - tmp472;
1785
tmp484 = tmp482 - tmp483;
1786
Y[-27 * iostride] = tmp481 - tmp484;
1787
X[11 * iostride] = tmp481 + tmp484;
1794
ASSERT_ALIGNED_DOUBLE;
1795
tmp669 = tmp665 + tmp668;
1796
tmp670 = tmp482 + tmp483;
1797
X[19 * iostride] = -(tmp669 - tmp670);
1798
Y[-3 * iostride] = tmp670 + tmp669;
1799
tmp671 = tmp668 - tmp665;
1800
tmp672 = tmp479 - tmp476;
1801
X[27 * iostride] = -(tmp671 - tmp672);
1802
Y[-11 * iostride] = tmp672 + tmp671;
1839
ASSERT_ALIGNED_DOUBLE;
1847
ASSERT_ALIGNED_DOUBLE;
1849
tmp157 = X[16 * iostride];
1850
tmp2 = X[8 * iostride];
1851
tmp3 = X[24 * iostride];
1852
tmp4 = K707106781 * (tmp2 - tmp3);
1853
tmp156 = K707106781 * (tmp2 + tmp3);
1855
tmp105 = tmp1 - tmp4;
1856
tmp158 = tmp156 + tmp157;
1857
tmp171 = tmp157 - tmp156;
1864
ASSERT_ALIGNED_DOUBLE;
1870
ASSERT_ALIGNED_DOUBLE;
1871
tmp6 = X[4 * iostride];
1872
tmp7 = X[20 * iostride];
1873
tmp8 = (K923879532 * tmp6) - (K382683432 * tmp7);
1874
tmp106 = (K382683432 * tmp6) + (K923879532 * tmp7);
1875
tmp9 = X[12 * iostride];
1876
tmp10 = X[28 * iostride];
1877
tmp11 = (K382683432 * tmp9) - (K923879532 * tmp10);
1878
tmp107 = (K923879532 * tmp9) + (K382683432 * tmp10);
1880
tmp12 = tmp8 + tmp11;
1881
tmp170 = tmp11 - tmp8;
1882
tmp108 = tmp106 - tmp107;
1883
tmp155 = tmp106 + tmp107;
1894
ASSERT_ALIGNED_DOUBLE;
1900
ASSERT_ALIGNED_DOUBLE;
1901
tmp64 = X[31 * iostride];
1902
tmp65 = K2_000000000 * tmp64;
1903
tmp79 = X[15 * iostride];
1904
tmp80 = K2_000000000 * tmp79;
1905
tmp61 = X[7 * iostride];
1906
tmp62 = X[23 * iostride];
1907
tmp63 = K1_414213562 * (tmp61 - tmp62);
1908
tmp78 = K1_414213562 * (tmp61 + tmp62);
1914
ASSERT_ALIGNED_DOUBLE;
1915
tmp67 = X[3 * iostride];
1916
tmp68 = X[19 * iostride];
1917
tmp69 = (K1_847759065 * tmp67) - (K765366864 * tmp68);
1918
tmp75 = (K765366864 * tmp67) + (K1_847759065 * tmp68);
1919
tmp70 = X[11 * iostride];
1920
tmp71 = X[27 * iostride];
1921
tmp72 = (K765366864 * tmp70) - (K1_847759065 * tmp71);
1922
tmp76 = (K1_847759065 * tmp70) + (K765366864 * tmp71);
1930
ASSERT_ALIGNED_DOUBLE;
1931
tmp66 = tmp63 - tmp65;
1932
tmp73 = tmp69 + tmp72;
1933
tmp74 = tmp66 + tmp73;
1934
tmp97 = tmp66 - tmp73;
1935
tmp128 = tmp72 - tmp69;
1936
tmp129 = tmp80 - tmp78;
1937
tmp130 = tmp128 - tmp129;
1938
tmp146 = tmp128 + tmp129;
1945
ASSERT_ALIGNED_DOUBLE;
1946
tmp77 = tmp75 + tmp76;
1947
tmp81 = tmp78 + tmp80;
1948
tmp82 = tmp77 + tmp81;
1949
tmp98 = tmp81 - tmp77;
1950
tmp125 = tmp63 + tmp65;
1951
tmp126 = tmp75 - tmp76;
1952
tmp127 = tmp125 + tmp126;
1953
tmp145 = tmp126 - tmp125;
1961
ASSERT_ALIGNED_DOUBLE;
1967
ASSERT_ALIGNED_DOUBLE;
1968
tmp14 = X[2 * iostride];
1969
tmp15 = K2_000000000 * tmp14;
1970
tmp21 = X[18 * iostride];
1971
tmp22 = K2_000000000 * tmp21;
1972
tmp16 = X[10 * iostride];
1973
tmp17 = X[26 * iostride];
1974
tmp18 = K1_414213562 * (tmp16 - tmp17);
1975
tmp20 = K1_414213562 * (tmp16 + tmp17);
1982
ASSERT_ALIGNED_DOUBLE;
1983
tmp19 = tmp15 + tmp18;
1984
tmp23 = tmp20 + tmp22;
1985
tmp24 = (K490392640 * tmp19) - (K097545161 * tmp23);
1986
tmp90 = (K097545161 * tmp19) + (K490392640 * tmp23);
1987
tmp113 = tmp22 - tmp20;
1988
tmp114 = tmp15 - tmp18;
1989
tmp115 = (K415734806 * tmp113) - (K277785116 * tmp114);
1990
tmp138 = (K415734806 * tmp114) + (K277785116 * tmp113);
1998
ASSERT_ALIGNED_DOUBLE;
2004
ASSERT_ALIGNED_DOUBLE;
2005
tmp28 = X[30 * iostride];
2006
tmp29 = K2_000000000 * tmp28;
2007
tmp32 = X[14 * iostride];
2008
tmp33 = K2_000000000 * tmp32;
2009
tmp25 = X[6 * iostride];
2010
tmp26 = X[22 * iostride];
2011
tmp27 = K1_414213562 * (tmp25 - tmp26);
2012
tmp31 = K1_414213562 * (tmp25 + tmp26);
2019
ASSERT_ALIGNED_DOUBLE;
2020
tmp30 = tmp27 - tmp29;
2021
tmp34 = tmp31 + tmp33;
2022
tmp35 = (K490392640 * tmp30) + (K097545161 * tmp34);
2023
tmp91 = (K097545161 * tmp30) - (K490392640 * tmp34);
2024
tmp110 = tmp33 - tmp31;
2025
tmp111 = tmp27 + tmp29;
2026
tmp112 = (K415734806 * tmp110) - (K277785116 * tmp111);
2027
tmp139 = (K415734806 * tmp111) + (K277785116 * tmp110);
2039
ASSERT_ALIGNED_DOUBLE;
2045
ASSERT_ALIGNED_DOUBLE;
2046
tmp38 = X[iostride];
2047
tmp39 = K2_000000000 * tmp38;
2048
tmp56 = X[17 * iostride];
2049
tmp57 = K2_000000000 * tmp56;
2050
tmp40 = X[9 * iostride];
2051
tmp41 = X[25 * iostride];
2052
tmp42 = K1_414213562 * (tmp40 - tmp41);
2053
tmp55 = K1_414213562 * (tmp40 + tmp41);
2059
ASSERT_ALIGNED_DOUBLE;
2060
tmp44 = X[5 * iostride];
2061
tmp45 = X[21 * iostride];
2062
tmp46 = (K1_847759065 * tmp44) - (K765366864 * tmp45);
2063
tmp52 = (K765366864 * tmp44) + (K1_847759065 * tmp45);
2064
tmp47 = X[13 * iostride];
2065
tmp48 = X[29 * iostride];
2066
tmp49 = (K765366864 * tmp47) - (K1_847759065 * tmp48);
2067
tmp53 = (K1_847759065 * tmp47) + (K765366864 * tmp48);
2075
ASSERT_ALIGNED_DOUBLE;
2076
tmp43 = tmp39 + tmp42;
2077
tmp50 = tmp46 + tmp49;
2078
tmp51 = tmp43 + tmp50;
2079
tmp94 = tmp43 - tmp50;
2080
tmp121 = tmp49 - tmp46;
2081
tmp122 = tmp57 - tmp55;
2082
tmp123 = tmp121 - tmp122;
2083
tmp143 = tmp121 + tmp122;
2090
ASSERT_ALIGNED_DOUBLE;
2091
tmp54 = tmp52 + tmp53;
2092
tmp58 = tmp55 + tmp57;
2093
tmp59 = tmp54 + tmp58;
2094
tmp95 = tmp58 - tmp54;
2095
tmp118 = tmp39 - tmp42;
2096
tmp119 = tmp52 - tmp53;
2097
tmp120 = tmp118 - tmp119;
2098
tmp142 = tmp118 + tmp119;
2110
ASSERT_ALIGNED_DOUBLE;
2116
ASSERT_ALIGNED_DOUBLE;
2117
tmp13 = tmp5 + tmp12;
2118
tmp36 = tmp24 + tmp35;
2119
tmp37 = tmp13 - tmp36;
2120
tmp85 = tmp13 + tmp36;
2121
tmp154 = tmp91 - tmp90;
2122
tmp159 = tmp155 + tmp158;
2123
tmp160 = tmp154 - tmp159;
2124
tmp162 = tmp154 + tmp159;
2131
ASSERT_ALIGNED_DOUBLE;
2132
tmp60 = (K049008570 * tmp51) + (K497592363 * tmp59);
2133
tmp83 = (K049008570 * tmp74) - (K497592363 * tmp82);
2134
tmp84 = tmp60 + tmp83;
2135
tmp153 = tmp83 - tmp60;
2136
tmp86 = (K497592363 * tmp51) - (K049008570 * tmp59);
2137
tmp87 = (K497592363 * tmp74) + (K049008570 * tmp82);
2138
tmp88 = tmp86 + tmp87;
2139
tmp161 = tmp87 - tmp86;
2141
X[8 * iostride] = tmp37 - tmp84;
2142
X[7 * iostride] = tmp37 + tmp84;
2143
X[15 * iostride] = tmp85 - tmp88;
2144
X[0] = tmp85 + tmp88;
2145
Y[-15 * iostride] = tmp153 - tmp160;
2146
Y[0] = tmp153 + tmp160;
2147
Y[-8 * iostride] = tmp161 - tmp162;
2148
Y[-7 * iostride] = tmp161 + tmp162;
2159
ASSERT_ALIGNED_DOUBLE;
2165
ASSERT_ALIGNED_DOUBLE;
2166
tmp89 = tmp5 - tmp12;
2167
tmp92 = tmp90 + tmp91;
2168
tmp93 = tmp89 + tmp92;
2169
tmp101 = tmp89 - tmp92;
2170
tmp164 = tmp35 - tmp24;
2171
tmp165 = tmp158 - tmp155;
2172
tmp166 = tmp164 - tmp165;
2173
tmp168 = tmp164 + tmp165;
2180
ASSERT_ALIGNED_DOUBLE;
2181
tmp96 = (K386505226 * tmp94) + (K317196642 * tmp95);
2182
tmp99 = (K386505226 * tmp97) - (K317196642 * tmp98);
2183
tmp100 = tmp96 + tmp99;
2184
tmp163 = tmp99 - tmp96;
2185
tmp102 = (K317196642 * tmp97) + (K386505226 * tmp98);
2186
tmp103 = (K386505226 * tmp95) - (K317196642 * tmp94);
2187
tmp104 = tmp102 - tmp103;
2188
tmp167 = tmp103 + tmp102;
2190
X[12 * iostride] = tmp93 - tmp100;
2191
X[3 * iostride] = tmp93 + tmp100;
2192
X[11 * iostride] = tmp101 - tmp104;
2193
X[4 * iostride] = tmp101 + tmp104;
2194
Y[-11 * iostride] = tmp163 - tmp166;
2195
Y[-4 * iostride] = tmp163 + tmp166;
2196
Y[-12 * iostride] = tmp167 - tmp168;
2197
Y[-3 * iostride] = tmp167 + tmp168;
2208
ASSERT_ALIGNED_DOUBLE;
2214
ASSERT_ALIGNED_DOUBLE;
2215
tmp109 = tmp105 - tmp108;
2216
tmp116 = tmp112 - tmp115;
2217
tmp117 = tmp109 + tmp116;
2218
tmp133 = tmp109 - tmp116;
2219
tmp172 = tmp170 - tmp171;
2220
tmp173 = tmp138 + tmp139;
2221
tmp174 = tmp172 - tmp173;
2222
tmp176 = tmp173 + tmp172;
2229
ASSERT_ALIGNED_DOUBLE;
2230
tmp124 = (K440960632 * tmp120) + (K235698368 * tmp123);
2231
tmp131 = (K440960632 * tmp127) + (K235698368 * tmp130);
2232
tmp132 = tmp124 - tmp131;
2233
tmp175 = tmp124 + tmp131;
2234
tmp134 = (K440960632 * tmp130) - (K235698368 * tmp127);
2235
tmp135 = (K440960632 * tmp123) - (K235698368 * tmp120);
2236
tmp136 = tmp134 - tmp135;
2237
tmp169 = tmp135 + tmp134;
2239
X[13 * iostride] = tmp117 - tmp132;
2240
X[2 * iostride] = tmp117 + tmp132;
2241
X[10 * iostride] = tmp133 - tmp136;
2242
X[5 * iostride] = tmp133 + tmp136;
2243
Y[-13 * iostride] = tmp169 - tmp174;
2244
Y[-2 * iostride] = tmp169 + tmp174;
2245
Y[-5 * iostride] = -(tmp175 + tmp176);
2246
Y[-10 * iostride] = tmp176 - tmp175;
2257
ASSERT_ALIGNED_DOUBLE;
2263
ASSERT_ALIGNED_DOUBLE;
2264
tmp137 = tmp105 + tmp108;
2265
tmp140 = tmp138 - tmp139;
2266
tmp141 = tmp137 + tmp140;
2267
tmp149 = tmp137 - tmp140;
2268
tmp178 = tmp115 + tmp112;
2269
tmp179 = tmp170 + tmp171;
2270
tmp180 = tmp178 - tmp179;
2271
tmp182 = tmp178 + tmp179;
2278
ASSERT_ALIGNED_DOUBLE;
2279
tmp144 = (K478470167 * tmp142) + (K145142338 * tmp143);
2280
tmp147 = (K478470167 * tmp145) - (K145142338 * tmp146);
2281
tmp148 = tmp144 + tmp147;
2282
tmp177 = tmp147 - tmp144;
2283
tmp150 = (K145142338 * tmp145) + (K478470167 * tmp146);
2284
tmp151 = (K478470167 * tmp143) - (K145142338 * tmp142);
2285
tmp152 = tmp150 - tmp151;
2286
tmp181 = tmp151 + tmp150;
2288
X[14 * iostride] = tmp141 - tmp148;
2289
X[iostride] = tmp141 + tmp148;
2290
X[9 * iostride] = tmp149 - tmp152;
2291
X[6 * iostride] = tmp149 + tmp152;
2292
Y[-9 * iostride] = tmp177 - tmp180;
2293
Y[-6 * iostride] = tmp177 + tmp180;
2294
Y[-14 * iostride] = tmp181 - tmp182;
2295
Y[-iostride] = tmp181 + tmp182;
2300
static const int twiddle_order[] =
2301
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31};
2302
fftw_codelet_desc fftw_hc2hc_forward_32_desc =
2304
"fftw_hc2hc_forward_32",
2305
(void (*)()) fftw_hc2hc_forward_32,