⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fhf_32.c

📁 FFTW, a collection of fast C routines to compute the Discrete Fourier Transform in one or more dime
💻 C
📖 第 1 页 / 共 5 页
字号:
/* * 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:08:13 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-forward 32 *//* * This function contains 764 FP additions, 340 FP multiplications, * (or, 618 additions, 194 multiplications, 146 fused multiply/add), * 91 stack variables, and 256 memory accesses */static const fftw_real K145142338 =FFTW_KONST(+0.145142338627231183818096187908697637345738139);static const fftw_real K478470167 =FFTW_KONST(+0.478470167866104432467898943490134984741424603);static const fftw_real K235698368 =FFTW_KONST(+0.235698368412998824278193812952627188828730159);static const fftw_real K440960632 =FFTW_KONST(+0.440960632174177514856378431830194174754221310);static const fftw_real K317196642 =FFTW_KONST(+0.317196642081822749107585806612746685337843547);static const fftw_real K386505226 =FFTW_KONST(+0.386505226681368480405453304879234900485520646);static const fftw_real K497592363 =FFTW_KONST(+0.497592363336098443122418476554739960787737434);static const fftw_real K049008570 =FFTW_KONST(+0.049008570164780300997097781944320922930568337);static const fftw_real K277785116 =FFTW_KONST(+0.277785116509801112371415406974266437187468595);static const fftw_real K415734806 =FFTW_KONST(+0.415734806151272618539394188808952878369280406);static const fftw_real K097545161 =FFTW_KONST(+0.097545161008064133924142434238511120463845809);static const fftw_real K490392640 =FFTW_KONST(+0.490392640201615224563091118067119518486966865);static const fftw_real K765366864 =FFTW_KONST(+0.765366864730179543456919968060797733522689125);static const fftw_real K1_847759065 =FFTW_KONST(+1.847759065022573512256366378793576573644833252);static const fftw_real K1_414213562 =FFTW_KONST(+1.414213562373095048801688724209698078569671875);static const fftw_real K2_000000000 =FFTW_KONST(+2.000000000000000000000000000000000000000000000);static const fftw_real K195090322 =FFTW_KONST(+0.195090322016128267848284868477022240927691618);static const fftw_real K980785280 =FFTW_KONST(+0.980785280403230449126182236134239036973933731);static const fftw_real K555570233 =FFTW_KONST(+0.555570233019602224742830813948532874374937191);static const fftw_real K831469612 =FFTW_KONST(+0.831469612302545237078788377617905756738560812);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);/* * 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_forward_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 tmp685;	  fftw_real tmp813;	  fftw_real tmp709;	  fftw_real tmp761;	  fftw_real tmp692;	  fftw_real tmp826;	  fftw_real tmp712;	  fftw_real tmp760;	  fftw_real tmp801;	  fftw_real tmp821;	  fftw_real tmp749;	  fftw_real tmp777;	  fftw_real tmp804;	  fftw_real tmp822;	  fftw_real tmp754;	  fftw_real tmp778;	  fftw_real tmp700;	  fftw_real tmp814;	  fftw_real tmp716;	  fftw_real tmp758;	  fftw_real tmp707;	  fftw_real tmp815;	  fftw_real tmp719;	  fftw_real tmp757;	  fftw_real tmp794;	  fftw_real tmp818;	  fftw_real tmp732;	  fftw_real tmp774;	  fftw_real tmp797;	  fftw_real tmp819;	  fftw_real tmp737;	  fftw_real tmp775;	  ASSERT_ALIGNED_DOUBLE;	  {	       fftw_real tmp679;	       fftw_real tmp680;	       fftw_real tmp681;	       fftw_real tmp682;	       fftw_real tmp683;	       fftw_real tmp684;	       ASSERT_ALIGNED_DOUBLE;	       tmp679 = X[0];	       tmp680 = X[16 * iostride];	       tmp681 = tmp679 + tmp680;	       tmp682 = X[8 * iostride];	       tmp683 = X[24 * iostride];	       tmp684 = tmp682 + tmp683;	       tmp685 = tmp681 + tmp684;	       tmp813 = tmp681 - tmp684;	       tmp709 = tmp679 - tmp680;	       tmp761 = tmp682 - tmp683;	  }	  {	       fftw_real tmp688;	       fftw_real tmp710;	       fftw_real tmp691;	       fftw_real tmp711;	       ASSERT_ALIGNED_DOUBLE;	       {		    fftw_real tmp686;		    fftw_real tmp687;		    fftw_real tmp689;		    fftw_real tmp690;		    ASSERT_ALIGNED_DOUBLE;		    tmp686 = X[4 * iostride];		    tmp687 = X[20 * iostride];		    tmp688 = tmp686 + tmp687;		    tmp710 = tmp686 - tmp687;		    tmp689 = X[28 * iostride];		    tmp690 = X[12 * iostride];		    tmp691 = tmp689 + tmp690;		    tmp711 = tmp689 - tmp690;	       }	       tmp692 = tmp688 + tmp691;	       tmp826 = tmp691 - tmp688;	       tmp712 = K707106781 * (tmp710 + tmp711);	       tmp760 = K707106781 * (tmp711 - tmp710);	  }	  {	       fftw_real tmp741;	       fftw_real tmp799;	       fftw_real tmp753;	       fftw_real tmp800;	       fftw_real tmp744;	       fftw_real tmp802;	       fftw_real tmp747;	       fftw_real tmp803;	       fftw_real tmp748;	       fftw_real tmp750;	       ASSERT_ALIGNED_DOUBLE;	       {		    fftw_real tmp739;		    fftw_real tmp740;		    fftw_real tmp751;		    fftw_real tmp752;		    ASSERT_ALIGNED_DOUBLE;		    tmp739 = X[31 * iostride];		    tmp740 = X[15 * iostride];		    tmp741 = tmp739 - tmp740;		    tmp799 = tmp739 + tmp740;		    tmp751 = X[7 * iostride];		    tmp752 = X[23 * iostride];		    tmp753 = tmp751 - tmp752;		    tmp800 = tmp751 + tmp752;	       }	       {		    fftw_real tmp742;		    fftw_real tmp743;		    fftw_real tmp745;		    fftw_real tmp746;		    ASSERT_ALIGNED_DOUBLE;		    tmp742 = X[3 * iostride];		    tmp743 = X[19 * iostride];		    tmp744 = tmp742 - tmp743;		    tmp802 = tmp742 + tmp743;		    tmp745 = X[27 * iostride];		    tmp746 = X[11 * iostride];		    tmp747 = tmp745 - tmp746;		    tmp803 = tmp745 + tmp746;	       }	       tmp801 = tmp799 + tmp800;	       tmp821 = tmp799 - tmp800;	       tmp748 = K707106781 * (tmp744 + tmp747);	       tmp749 = tmp741 + tmp748;	       tmp777 = tmp741 - tmp748;	       tmp804 = tmp802 + tmp803;	       tmp822 = tmp803 - tmp802;	       tmp750 = K707106781 * (tmp747 - tmp744);	       tmp754 = tmp750 - tmp753;	       tmp778 = tmp753 + tmp750;	  }	  {	       fftw_real tmp696;	       fftw_real tmp714;	       fftw_real tmp699;	       fftw_real tmp715;	       ASSERT_ALIGNED_DOUBLE;	       {		    fftw_real tmp694;		    fftw_real tmp695;		    fftw_real tmp697;		    fftw_real tmp698;		    ASSERT_ALIGNED_DOUBLE;		    tmp694 = X[2 * iostride];		    tmp695 = X[18 * iostride];		    tmp696 = tmp694 + tmp695;		    tmp714 = tmp694 - tmp695;		    tmp697 = X[10 * iostride];		    tmp698 = X[26 * iostride];		    tmp699 = tmp697 + tmp698;		    tmp715 = tmp697 - tmp698;	       }	       tmp700 = tmp696 + tmp699;	       tmp814 = tmp696 - tmp699;	       tmp716 = (K923879532 * tmp714) - (K382683432 * tmp715);	       tmp758 = (K382683432 * tmp714) + (K923879532 * tmp715);	  }	  {	       fftw_real tmp703;	       fftw_real tmp717;	       fftw_real tmp706;	       fftw_real tmp718;	       ASSERT_ALIGNED_DOUBLE;	       {		    fftw_real tmp701;		    fftw_real tmp702;		    fftw_real tmp704;		    fftw_real tmp705;		    ASSERT_ALIGNED_DOUBLE;		    tmp701 = X[30 * iostride];		    tmp702 = X[14 * iostride];		    tmp703 = tmp701 + tmp702;		    tmp717 = tmp701 - tmp702;		    tmp704 = X[6 * iostride];		    tmp705 = X[22 * iostride];		    tmp706 = tmp704 + tmp705;		    tmp718 = tmp704 - tmp705;	       }	       tmp707 = tmp703 + tmp706;	       tmp815 = tmp703 - tmp706;	       tmp719 = (K923879532 * tmp717) + (K382683432 * tmp718);	       tmp757 = (K382683432 * tmp717) - (K923879532 * tmp718);	  }	  {	       fftw_real tmp724;	       fftw_real tmp792;	       fftw_real tmp736;	       fftw_real tmp793;	       fftw_real tmp727;	       fftw_real tmp795;	       fftw_real tmp730;	       fftw_real tmp796;	       fftw_real tmp731;	       fftw_real tmp733;	       ASSERT_ALIGNED_DOUBLE;	       {		    fftw_real tmp722;		    fftw_real tmp723;		    fftw_real tmp734;		    fftw_real tmp735;		    ASSERT_ALIGNED_DOUBLE;		    tmp722 = X[iostride];		    tmp723 = X[17 * iostride];		    tmp724 = tmp722 - tmp723;		    tmp792 = tmp722 + tmp723;		    tmp734 = X[9 * iostride];		    tmp735 = X[25 * iostride];		    tmp736 = tmp734 - tmp735;		    tmp793 = tmp734 + tmp735;	       }	       {		    fftw_real tmp725;		    fftw_real tmp726;		    fftw_real tmp728;		    fftw_real tmp729;		    ASSERT_ALIGNED_DOUBLE;		    tmp725 = X[5 * iostride];		    tmp726 = X[21 * iostride];		    tmp727 = tmp725 - tmp726;		    tmp795 = tmp725 + tmp726;		    tmp728 = X[29 * iostride];		    tmp729 = X[13 * iostride];		    tmp730 = tmp728 - tmp729;		    tmp796 = tmp728 + tmp729;	       }	       tmp794 = tmp792 + tmp793;	       tmp818 = tmp792 - tmp793;	       tmp731 = K707106781 * (tmp727 + tmp730);	       tmp732 = tmp724 + tmp731;	       tmp774 = tmp724 - tmp731;	       tmp797 = tmp795 + tmp796;	       tmp819 = tmp796 - tmp795;	       tmp733 = K707106781 * (tmp730 - tmp727);	       tmp737 = tmp733 - tmp736;	       tmp775 = tmp736 + tmp733;	  }	  {	       fftw_real tmp693;	       fftw_real tmp708;	       fftw_real tmp809;	       fftw_real tmp810;	       fftw_real tmp811;	       fftw_real tmp812;	       ASSERT_ALIGNED_DOUBLE;	       tmp693 = tmp685 + tmp692;	       tmp708 = tmp700 + tmp707;	       tmp809 = tmp693 + tmp708;	       tmp810 = tmp794 + tmp797;	       tmp811 = tmp801 + tmp804;	       tmp812 = tmp810 + tmp811;	       X[8 * iostride] = tmp693 - tmp708;	       Y[-8 * iostride] = tmp811 - tmp810;	       X[16 * iostride] = tmp809 - tmp812;	       X[0] = tmp809 + tmp812;	  }	  {	       fftw_real tmp791;	       fftw_real tmp807;	       fftw_real tmp806;	       fftw_real tmp808;	       fftw_real tmp798;	       fftw_real tmp805;	       ASSERT_ALIGNED_DOUBLE;	       tmp791 = tmp685 - tmp692;	       tmp807 = tmp707 - tmp700;	       tmp798 = tmp794 - tmp797;	       tmp805 = tmp801 - tmp804;	       tmp806 = K707106781 * (tmp798 + tmp805);	       tmp808 = K707106781 * (tmp805 - tmp798);	       X[12 * iostride] = tmp791 - tmp806;	       X[4 * iostride] = tmp791 + tmp806;	       Y[-4 * iostride] = tmp807 + tmp808;	       Y[-12 * iostride] = tmp808 - tmp807;	  }	  {	       fftw_real tmp817;	       fftw_real tmp833;	       fftw_real tmp827;	       fftw_real tmp829;	       fftw_real tmp824;	       fftw_real tmp828;	       fftw_real tmp832;	       fftw_real tmp834;	       fftw_real tmp816;	       fftw_real tmp825;	       ASSERT_ALIGNED_DOUBLE;	       tmp816 = K707106781 * (tmp814 + tmp815);	       tmp817 = tmp813 + tmp816;	       tmp833 = tmp813 - tmp816;	       tmp825 = K707106781 * (tmp815 - tmp814);	       tmp827 = tmp825 - tmp826;	       tmp829 = tmp826 + tmp825;	       {		    fftw_real tmp820;		    fftw_real tmp823;		    fftw_real tmp830;		    fftw_real tmp831;		    ASSERT_ALIGNED_DOUBLE;		    tmp820 = (K923879532 * tmp818) + (K382683432 * tmp819);		    tmp823 = (K923879532 * tmp821) - (K382683432 * tmp822);		    tmp824 = tmp820 + tmp823;		    tmp828 = tmp823 - tmp820;		    tmp830 = (K923879532 * tmp819) - (K382683432 * tmp818);		    tmp831 = (K382683432 * tmp821) + (K923879532 * tmp822);		    tmp832 = tmp830 + tmp831;		    tmp834 = tmp831 - tmp830;	       }	       X[14 * iostride] = tmp817 - tmp824;	       X[2 * iostride] = tmp817 + tmp824;	       Y[-6 * iostride] = tmp827 + tmp828;	       Y[-10 * iostride] = tmp828 - tmp827;	       Y[-2 * iostride] = tmp829 + tmp832;	       Y[-14 * iostride] = tmp832 - tmp829;	       X[10 * iostride] = tmp833 - tmp834;	       X[6 * iostride] = tmp833 + tmp834;	  }	  {	       fftw_real tmp773;	       fftw_real tmp789;	       fftw_real tmp788;	       fftw_real tmp790;	       fftw_real tmp780;	       fftw_real tmp784;	       fftw_real tmp783;	       fftw_real tmp785;	       ASSERT_ALIGNED_DOUBLE;	       {		    fftw_real tmp771;		    fftw_real tmp772;		    fftw_real tmp786;		    fftw_real tmp787;		    ASSERT_ALIGNED_DOUBLE;		    tmp771 = tmp709 - tmp712;		    tmp772 = tmp758 + tmp757;		    tmp773 = tmp771 + tmp772;		    tmp789 = tmp771 - tmp772;		    tmp786 = (K831469612 * tmp775) - (K555570233 * tmp774);		    tmp787 = (K555570233 * tmp777) + (K831469612 * tmp778);		    tmp788 = tmp786 + tmp787;		    tmp790 = tmp787 - tmp786;	       }	       {		    fftw_real tmp776;		    fftw_real tmp779;		    fftw_real tmp781;		    fftw_real tmp782;		    ASSERT_ALIGNED_DOUBLE;		    tmp776 = (K831469612 * tmp774) + (K555570233 * tmp775);		    tmp779 = (K831469612 * tmp777) - (K555570233 * tmp778);		    tmp780 = tmp776 + tmp779;		    tmp784 = tmp779 - tmp776;		    tmp781 = tmp719 - tmp716;		    tmp782 = tmp761 + tmp760;		    tmp783 = tmp781 - tmp782;		    tmp785 = tmp782 + tmp781;	       }	       X[13 * iostride] = tmp773 - tmp780;	       X[3 * iostride] = tmp773 + tmp780;	       Y[-5 * iostride] = tmp783 + tmp784;	       Y[-11 * iostride] = tmp784 - tmp783;	       Y[-3 * iostride] = tmp785 + tmp788;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -