📄 fhb_32.c
字号:
/* * Copyright (c) 1997-1999, 2003 Massachusetts Institute of Technology * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * *//* This file was automatically generated --- DO NOT EDIT *//* Generated on Mon Mar 24 02:09:07 EST 2003 */#include "fftw-int.h"#include "fftw.h"/* Generated by: /homee/stevenj/cvs/fftw/gensrc/genfft -magic-alignment-check -magic-twiddle-load-all -magic-variables 4 -magic-loopi -hc2hc-backward 32 *//* * This function contains 764 FP additions, 346 FP multiplications, * (or, 618 additions, 200 multiplications, 146 fused multiply/add), * 93 stack variables, and 256 memory accesses */static const fftw_real K1_662939224 =FFTW_KONST(+1.662939224605090474157576755235811513477121624);static const fftw_real K1_111140466 =FFTW_KONST(+1.111140466039204449485661627897065748749874382);static const fftw_real K390180644 =FFTW_KONST(+0.390180644032256535696569736954044481855383236);static const fftw_real K1_961570560 =FFTW_KONST(+1.961570560806460898252364472268478073947867462);static const fftw_real K1_913880671 =FFTW_KONST(+1.913880671464417729871595773960539938965698411);static const fftw_real K580569354 =FFTW_KONST(+0.580569354508924735272384751634790549382952557);static const fftw_real K942793473 =FFTW_KONST(+0.942793473651995297112775251810508755314920638);static const fftw_real K1_763842528 =FFTW_KONST(+1.763842528696710059425513727320776699016885241);static const fftw_real K1_546020906 =FFTW_KONST(+1.546020906725473921621813219516939601942082586);static const fftw_real K1_268786568 =FFTW_KONST(+1.268786568327290996430343226450986741351374190);static const fftw_real K196034280 =FFTW_KONST(+0.196034280659121203988391127777283691722273346);static const fftw_real K1_990369453 =FFTW_KONST(+1.990369453344393772489673906218959843150949737);static const fftw_real K382683432 =FFTW_KONST(+0.382683432365089771728459984030398866761344562);static const fftw_real K923879532 =FFTW_KONST(+0.923879532511286756128183189396788286822416626);static const fftw_real K707106781 =FFTW_KONST(+0.707106781186547524400844362104849039284835938);static const fftw_real K765366864 =FFTW_KONST(+0.765366864730179543456919968060797733522689125);static const fftw_real K1_847759065 =FFTW_KONST(+1.847759065022573512256366378793576573644833252);static const fftw_real K555570233 =FFTW_KONST(+0.555570233019602224742830813948532874374937191);static const fftw_real K831469612 =FFTW_KONST(+0.831469612302545237078788377617905756738560812);static const fftw_real K195090322 =FFTW_KONST(+0.195090322016128267848284868477022240927691618);static const fftw_real K980785280 =FFTW_KONST(+0.980785280403230449126182236134239036973933731);static const fftw_real K1_414213562 =FFTW_KONST(+1.414213562373095048801688724209698078569671875);static const fftw_real K2_000000000 =FFTW_KONST(+2.000000000000000000000000000000000000000000000);/* * Generator Id's : * $Id: exprdag.ml,v 1.43 2003/03/16 23:43:46 stevenj Exp $ * $Id: fft.ml,v 1.44 2003/03/16 23:43:46 stevenj Exp $ * $Id: to_c.ml,v 1.26 2003/03/16 23:43:46 stevenj Exp $ */void fftw_hc2hc_backward_32(fftw_real *A, const fftw_complex *W, int iostride, int m, int dist){ int i; fftw_real *X; fftw_real *Y; X = A; Y = A + (32 * iostride); { fftw_real tmp679; fftw_real tmp804; fftw_real tmp769; fftw_real tmp707; fftw_real tmp702; fftw_real tmp728; fftw_real tmp726; fftw_real tmp750; fftw_real tmp815; fftw_real tmp819; fftw_real tmp782; fftw_real tmp793; fftw_real tmp676; fftw_real tmp704; fftw_real tmp773; fftw_real tmp803; fftw_real tmp687; fftw_real tmp709; fftw_real tmp716; fftw_real tmp753; fftw_real tmp762; fftw_real tmp806; fftw_real tmp765; fftw_real tmp807; fftw_real tmp695; fftw_real tmp719; fftw_real tmp735; fftw_real tmp749; fftw_real tmp812; fftw_real tmp818; fftw_real tmp789; fftw_real tmp792; ASSERT_ALIGNED_DOUBLE; { fftw_real tmp677; fftw_real tmp678; fftw_real tmp767; fftw_real tmp705; fftw_real tmp706; fftw_real tmp768; ASSERT_ALIGNED_DOUBLE; tmp677 = X[4 * iostride]; tmp678 = X[12 * iostride]; tmp767 = tmp677 - tmp678; tmp705 = Y[-4 * iostride]; tmp706 = Y[-12 * iostride]; tmp768 = tmp705 + tmp706; tmp679 = K2_000000000 * (tmp677 + tmp678); tmp804 = K1_414213562 * (tmp767 + tmp768); tmp769 = K1_414213562 * (tmp767 - tmp768); tmp707 = K2_000000000 * (tmp705 - tmp706); } { fftw_real tmp698; fftw_real tmp776; fftw_real tmp725; fftw_real tmp780; fftw_real tmp701; fftw_real tmp779; fftw_real tmp722; fftw_real tmp777; ASSERT_ALIGNED_DOUBLE; { fftw_real tmp696; fftw_real tmp697; fftw_real tmp723; fftw_real tmp724; ASSERT_ALIGNED_DOUBLE; tmp696 = X[3 * iostride]; tmp697 = X[13 * iostride]; tmp698 = tmp696 + tmp697; tmp776 = tmp696 - tmp697; tmp723 = Y[-3 * iostride]; tmp724 = Y[-13 * iostride]; tmp725 = tmp723 - tmp724; tmp780 = tmp723 + tmp724; } { fftw_real tmp699; fftw_real tmp700; fftw_real tmp720; fftw_real tmp721; ASSERT_ALIGNED_DOUBLE; tmp699 = X[5 * iostride]; tmp700 = X[11 * iostride]; tmp701 = tmp699 + tmp700; tmp779 = tmp700 - tmp699; tmp720 = Y[-5 * iostride]; tmp721 = Y[-11 * iostride]; tmp722 = tmp720 - tmp721; tmp777 = tmp720 + tmp721; } tmp702 = tmp698 + tmp701; tmp728 = tmp701 - tmp698; tmp726 = tmp722 + tmp725; tmp750 = tmp725 - tmp722; { fftw_real tmp813; fftw_real tmp814; fftw_real tmp778; fftw_real tmp781; ASSERT_ALIGNED_DOUBLE; tmp813 = tmp776 + tmp777; tmp814 = tmp780 - tmp779; tmp815 = (K980785280 * tmp813) - (K195090322 * tmp814); tmp819 = (K195090322 * tmp813) + (K980785280 * tmp814); tmp778 = tmp776 - tmp777; tmp781 = tmp779 + tmp780; tmp782 = (K831469612 * tmp778) - (K555570233 * tmp781); tmp793 = (K555570233 * tmp778) + (K831469612 * tmp781); } } { fftw_real tmp675; fftw_real tmp772; fftw_real tmp673; fftw_real tmp770; ASSERT_ALIGNED_DOUBLE; { fftw_real tmp674; fftw_real tmp771; fftw_real tmp671; fftw_real tmp672; ASSERT_ALIGNED_DOUBLE; tmp674 = X[8 * iostride]; tmp675 = K2_000000000 * tmp674; tmp771 = Y[-8 * iostride]; tmp772 = K2_000000000 * tmp771; tmp671 = X[0]; tmp672 = X[16 * iostride]; tmp673 = tmp671 + tmp672; tmp770 = tmp671 - tmp672; } tmp676 = tmp673 + tmp675; tmp704 = tmp673 - tmp675; tmp773 = tmp770 - tmp772; tmp803 = tmp770 + tmp772; } { fftw_real tmp683; fftw_real tmp760; fftw_real tmp715; fftw_real tmp764; fftw_real tmp686; fftw_real tmp763; fftw_real tmp712; fftw_real tmp761; ASSERT_ALIGNED_DOUBLE; { fftw_real tmp681; fftw_real tmp682; fftw_real tmp713; fftw_real tmp714; ASSERT_ALIGNED_DOUBLE; tmp681 = X[2 * iostride]; tmp682 = X[14 * iostride]; tmp683 = tmp681 + tmp682; tmp760 = tmp681 - tmp682; tmp713 = Y[-2 * iostride]; tmp714 = Y[-14 * iostride]; tmp715 = tmp713 - tmp714; tmp764 = tmp713 + tmp714; } { fftw_real tmp684; fftw_real tmp685; fftw_real tmp710; fftw_real tmp711; ASSERT_ALIGNED_DOUBLE; tmp684 = X[6 * iostride]; tmp685 = X[10 * iostride]; tmp686 = tmp684 + tmp685; tmp763 = tmp685 - tmp684; tmp710 = Y[-6 * iostride]; tmp711 = Y[-10 * iostride]; tmp712 = tmp710 - tmp711; tmp761 = tmp710 + tmp711; } tmp687 = K2_000000000 * (tmp683 + tmp686); tmp709 = tmp683 - tmp686; tmp716 = tmp712 + tmp715; tmp753 = K2_000000000 * (tmp715 - tmp712); tmp762 = tmp760 - tmp761; tmp806 = tmp760 + tmp761; tmp765 = tmp763 + tmp764; tmp807 = tmp764 - tmp763; } { fftw_real tmp691; fftw_real tmp783; fftw_real tmp734; fftw_real tmp787; fftw_real tmp694; fftw_real tmp786; fftw_real tmp731; fftw_real tmp784; ASSERT_ALIGNED_DOUBLE; { fftw_real tmp689; fftw_real tmp690; fftw_real tmp732; fftw_real tmp733; ASSERT_ALIGNED_DOUBLE; tmp689 = X[iostride]; tmp690 = X[15 * iostride]; tmp691 = tmp689 + tmp690; tmp783 = tmp689 - tmp690; tmp732 = Y[-iostride]; tmp733 = Y[-15 * iostride]; tmp734 = tmp732 - tmp733; tmp787 = tmp732 + tmp733; } { fftw_real tmp692; fftw_real tmp693; fftw_real tmp729; fftw_real tmp730; ASSERT_ALIGNED_DOUBLE; tmp692 = X[7 * iostride]; tmp693 = X[9 * iostride]; tmp694 = tmp692 + tmp693; tmp786 = tmp693 - tmp692; tmp729 = Y[-7 * iostride]; tmp730 = Y[-9 * iostride]; tmp731 = tmp729 - tmp730; tmp784 = tmp729 + tmp730; } tmp695 = tmp691 + tmp694; tmp719 = tmp691 - tmp694; tmp735 = tmp731 + tmp734; tmp749 = tmp734 - tmp731; { fftw_real tmp810; fftw_real tmp811; fftw_real tmp785; fftw_real tmp788; ASSERT_ALIGNED_DOUBLE; tmp810 = tmp783 + tmp784; tmp811 = tmp787 - tmp786; tmp812 = (K555570233 * tmp810) + (K831469612 * tmp811); tmp818 = (K831469612 * tmp810) - (K555570233 * tmp811); tmp785 = tmp783 - tmp784; tmp788 = tmp786 + tmp787; tmp789 = (K980785280 * tmp785) - (K195090322 * tmp788); tmp792 = (K195090322 * tmp785) + (K980785280 * tmp788); } } { fftw_real tmp703; fftw_real tmp751; fftw_real tmp688; fftw_real tmp748; fftw_real tmp680; ASSERT_ALIGNED_DOUBLE; tmp703 = K2_000000000 * (tmp695 + tmp702); tmp751 = K2_000000000 * (tmp749 - tmp750); tmp680 = tmp676 + tmp679; tmp688 = tmp680 + tmp687; tmp748 = tmp680 - tmp687; X[16 * iostride] = tmp688 - tmp703; X[0] = tmp688 + tmp703; X[24 * iostride] = tmp748 + tmp751; X[8 * iostride] = tmp748 - tmp751; } { fftw_real tmp754; fftw_real tmp758; fftw_real tmp757; fftw_real tmp759; fftw_real tmp752; fftw_real tmp755; fftw_real tmp756; ASSERT_ALIGNED_DOUBLE; tmp752 = tmp676 - tmp679; tmp754 = tmp752 - tmp753; tmp758 = tmp752 + tmp753; tmp755 = tmp695 - tmp702; tmp756 = tmp750 + tmp749; tmp757 = K1_414213562 * (tmp755 - tmp756); tmp759 = K1_414213562 * (tmp755 + tmp756); X[20 * iostride] = tmp754 - tmp757; X[4 * iostride] = tmp754 + tmp757; X[12 * iostride] = tmp758 - tmp759; X[28 * iostride] = tmp758 + tmp759; } { fftw_real tmp718; fftw_real tmp738; fftw_real tmp737; fftw_real tmp739; ASSERT_ALIGNED_DOUBLE; { fftw_real tmp708; fftw_real tmp717; fftw_real tmp727; fftw_real tmp736; ASSERT_ALIGNED_DOUBLE; tmp708 = tmp704 - tmp707; tmp717 = K1_414213562 * (tmp709 - tmp716); tmp718 = tmp708 + tmp717; tmp738 = tmp708 - tmp717; tmp727 = tmp719 - tmp726; tmp736 = tmp728 + tmp735; tmp737 = (K1_847759065 * tmp727) - (K765366864 * tmp736); tmp739 = (K765366864 * tmp727) + (K1_847759065 * tmp736); } X[18 * iostride] = tmp718 - tmp737; X[2 * iostride] = tmp718 + tmp737; X[10 * iostride] = tmp738 - tmp739; X[26 * iostride] = tmp738 + tmp739; } { fftw_real tmp742; fftw_real tmp746; fftw_real tmp745; fftw_real tmp747; ASSERT_ALIGNED_DOUBLE; { fftw_real tmp740; fftw_real tmp741; fftw_real tmp743; fftw_real tmp744; ASSERT_ALIGNED_DOUBLE; tmp740 = tmp704 + tmp707; tmp741 = K1_414213562 * (tmp709 + tmp716); tmp742 = tmp740 - tmp741; tmp746 = tmp740 + tmp741; tmp743 = tmp719 + tmp726; tmp744 = tmp735 - tmp728; tmp745 = (K765366864 * tmp743) - (K1_847759065 * tmp744); tmp747 = (K1_847759065 * tmp743) + (K765366864 * tmp744); } X[22 * iostride] = tmp742 - tmp745; X[6 * iostride] = tmp742 + tmp745; X[14 * iostride] = tmp746 - tmp747; X[30 * iostride] = tmp746 + tmp747; } { fftw_real tmp790; fftw_real tmp794; fftw_real tmp775; fftw_real tmp791; fftw_real tmp766; fftw_real tmp774; ASSERT_ALIGNED_DOUBLE; tmp790 = K2_000000000 * (tmp782 + tmp789); tmp794 = K2_000000000 * (tmp792 - tmp793); tmp766 = (K1_847759065 * tmp762) - (K765366864 * tmp765); tmp774 = tmp769 + tmp773; tmp775 = tmp766 + tmp774; tmp791 = tmp774 - tmp766; X[17 * iostride] = tmp775 - tmp790; X[iostride] = tmp790 + tmp775; X[9 * iostride] = tmp791 - tmp794; X[25 * iostride] = tmp794 + tmp791; } { fftw_real tmp797; fftw_real tmp801; fftw_real tmp800; fftw_real tmp802; ASSERT_ALIGNED_DOUBLE; { fftw_real tmp795; fftw_real tmp796; fftw_real tmp798; fftw_real tmp799; ASSERT_ALIGNED_DOUBLE; tmp795 = tmp773 - tmp769; tmp796 = (K765366864 * tmp762) + (K1_847759065 * tmp765);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -