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

📄 ftw_64.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:07:48 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 -twiddle 64 *//* * This function contains 1038 FP additions, 500 FP multiplications, * (or, 808 additions, 270 multiplications, 230 fused multiply/add), * 162 stack variables, and 256 memory accesses */static const fftw_real K290284677 =FFTW_KONST(+0.290284677254462367636192375817395274691476278);static const fftw_real K956940335 =FFTW_KONST(+0.956940335732208864935797886980269969482849206);static const fftw_real K881921264 =FFTW_KONST(+0.881921264348355029712756863660388349508442621);static const fftw_real K471396736 =FFTW_KONST(+0.471396736825997648556387625905254377657460319);static const fftw_real K555570233 =FFTW_KONST(+0.555570233019602224742830813948532874374937191);static const fftw_real K831469612 =FFTW_KONST(+0.831469612302545237078788377617905756738560812);static const fftw_real K773010453 =FFTW_KONST(+0.773010453362736960810906609758469800971041293);static const fftw_real K634393284 =FFTW_KONST(+0.634393284163645498215171613225493370675687095);static const fftw_real K098017140 =FFTW_KONST(+0.098017140329560601994195563888641845861136673);static const fftw_real K995184726 =FFTW_KONST(+0.995184726672196886244836953109479921575474869);static const fftw_real K980785280 =FFTW_KONST(+0.980785280403230449126182236134239036973933731);static const fftw_real K195090322 =FFTW_KONST(+0.195090322016128267848284868477022240927691618);static const fftw_real K707106781 =FFTW_KONST(+0.707106781186547524400844362104849039284835938);static const fftw_real K923879532 =FFTW_KONST(+0.923879532511286756128183189396788286822416626);static const fftw_real K382683432 =FFTW_KONST(+0.382683432365089771728459984030398866761344562);/* * 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_twiddle_64(fftw_complex *A, const fftw_complex *W, int iostride,		     int m, int dist){     int i;     fftw_complex *inout;     inout = A;     for (i = m; i > 0; i = i - 1, inout = inout + dist, W = W + 63) {	  fftw_real tmp19;	  fftw_real tmp791;	  fftw_real tmp1109;	  fftw_real tmp1139;	  fftw_real tmp1047;	  fftw_real tmp1077;	  fftw_real tmp383;	  fftw_real tmp655;	  fftw_real tmp66;	  fftw_real tmp800;	  fftw_real tmp908;	  fftw_real tmp956;	  fftw_real tmp406;	  fftw_real tmp608;	  fftw_real tmp662;	  fftw_real tmp744;	  fftw_real tmp42;	  fftw_real tmp1076;	  fftw_real tmp794;	  fftw_real tmp1042;	  fftw_real tmp394;	  fftw_real tmp1106;	  fftw_real tmp658;	  fftw_real tmp1138;	  fftw_real tmp329;	  fftw_real tmp983;	  fftw_real tmp863;	  fftw_real tmp927;	  fftw_real tmp990;	  fftw_real tmp1026;	  fftw_real tmp880;	  fftw_real tmp930;	  fftw_real tmp535;	  fftw_real tmp703;	  fftw_real tmp576;	  fftw_real tmp714;	  fftw_real tmp579;	  fftw_real tmp704;	  fftw_real tmp546;	  fftw_real tmp715;	  fftw_real tmp376;	  fftw_real tmp991;	  fftw_real tmp868;	  fftw_real tmp882;	  fftw_real tmp986;	  fftw_real tmp1027;	  fftw_real tmp873;	  fftw_real tmp881;	  fftw_real tmp558;	  fftw_real tmp582;	  fftw_real tmp708;	  fftw_real tmp718;	  fftw_real tmp569;	  fftw_real tmp581;	  fftw_real tmp711;	  fftw_real tmp717;	  fftw_real tmp89;	  fftw_real tmp805;	  fftw_real tmp909;	  fftw_real tmp957;	  fftw_real tmp417;	  fftw_real tmp609;	  fftw_real tmp665;	  fftw_real tmp745;	  fftw_real tmp161;	  fftw_real tmp184;	  fftw_real tmp965;	  fftw_real tmp823;	  fftw_real tmp915;	  fftw_real tmp966;	  fftw_real tmp967;	  fftw_real tmp968;	  fftw_real tmp828;	  fftw_real tmp916;	  fftw_real tmp451;	  fftw_real tmp678;	  fftw_real tmp468;	  fftw_real tmp675;	  fftw_real tmp471;	  fftw_real tmp679;	  fftw_real tmp462;	  fftw_real tmp676;	  fftw_real tmp114;	  fftw_real tmp137;	  fftw_real tmp963;	  fftw_real tmp812;	  fftw_real tmp912;	  fftw_real tmp960;	  fftw_real tmp961;	  fftw_real tmp962;	  fftw_real tmp817;	  fftw_real tmp913;	  fftw_real tmp424;	  fftw_real tmp668;	  fftw_real tmp441;	  fftw_real tmp671;	  fftw_real tmp444;	  fftw_real tmp669;	  fftw_real tmp435;	  fftw_real tmp672;	  fftw_real tmp234;	  fftw_real tmp977;	  fftw_real tmp836;	  fftw_real tmp923;	  fftw_real tmp974;	  fftw_real tmp1021;	  fftw_real tmp853;	  fftw_real tmp920;	  fftw_real tmp480;	  fftw_real tmp684;	  fftw_real tmp521;	  fftw_real tmp695;	  fftw_real tmp524;	  fftw_real tmp685;	  fftw_real tmp491;	  fftw_real tmp696;	  fftw_real tmp281;	  fftw_real tmp975;	  fftw_real tmp841;	  fftw_real tmp855;	  fftw_real tmp980;	  fftw_real tmp1022;	  fftw_real tmp846;	  fftw_real tmp854;	  fftw_real tmp503;	  fftw_real tmp527;	  fftw_real tmp689;	  fftw_real tmp699;	  fftw_real tmp514;	  fftw_real tmp526;	  fftw_real tmp692;	  fftw_real tmp698;	  ASSERT_ALIGNED_DOUBLE;	  {	       fftw_real tmp1;	       fftw_real tmp1045;	       fftw_real tmp6;	       fftw_real tmp1044;	       fftw_real tmp12;	       fftw_real tmp380;	       fftw_real tmp17;	       fftw_real tmp381;	       ASSERT_ALIGNED_DOUBLE;	       tmp1 = c_re(inout[0]);	       tmp1045 = c_im(inout[0]);	       {		    fftw_real tmp3;		    fftw_real tmp5;		    fftw_real tmp2;		    fftw_real tmp4;		    ASSERT_ALIGNED_DOUBLE;		    tmp3 = c_re(inout[32 * iostride]);		    tmp5 = c_im(inout[32 * iostride]);		    tmp2 = c_re(W[31]);		    tmp4 = c_im(W[31]);		    tmp6 = (tmp2 * tmp3) - (tmp4 * tmp5);		    tmp1044 = (tmp4 * tmp3) + (tmp2 * tmp5);	       }	       {		    fftw_real tmp9;		    fftw_real tmp11;		    fftw_real tmp8;		    fftw_real tmp10;		    ASSERT_ALIGNED_DOUBLE;		    tmp9 = c_re(inout[16 * iostride]);		    tmp11 = c_im(inout[16 * iostride]);		    tmp8 = c_re(W[15]);		    tmp10 = c_im(W[15]);		    tmp12 = (tmp8 * tmp9) - (tmp10 * tmp11);		    tmp380 = (tmp10 * tmp9) + (tmp8 * tmp11);	       }	       {		    fftw_real tmp14;		    fftw_real tmp16;		    fftw_real tmp13;		    fftw_real tmp15;		    ASSERT_ALIGNED_DOUBLE;		    tmp14 = c_re(inout[48 * iostride]);		    tmp16 = c_im(inout[48 * iostride]);		    tmp13 = c_re(W[47]);		    tmp15 = c_im(W[47]);		    tmp17 = (tmp13 * tmp14) - (tmp15 * tmp16);		    tmp381 = (tmp15 * tmp14) + (tmp13 * tmp16);	       }	       {		    fftw_real tmp7;		    fftw_real tmp18;		    fftw_real tmp1107;		    fftw_real tmp1108;		    ASSERT_ALIGNED_DOUBLE;		    tmp7 = tmp1 + tmp6;		    tmp18 = tmp12 + tmp17;		    tmp19 = tmp7 + tmp18;		    tmp791 = tmp7 - tmp18;		    tmp1107 = tmp1045 - tmp1044;		    tmp1108 = tmp12 - tmp17;		    tmp1109 = tmp1107 - tmp1108;		    tmp1139 = tmp1108 + tmp1107;	       }	       {		    fftw_real tmp1043;		    fftw_real tmp1046;		    fftw_real tmp379;		    fftw_real tmp382;		    ASSERT_ALIGNED_DOUBLE;		    tmp1043 = tmp380 + tmp381;		    tmp1046 = tmp1044 + tmp1045;		    tmp1047 = tmp1043 + tmp1046;		    tmp1077 = tmp1046 - tmp1043;		    tmp379 = tmp1 - tmp6;		    tmp382 = tmp380 - tmp381;		    tmp383 = tmp379 - tmp382;		    tmp655 = tmp379 + tmp382;	       }	  }	  {	       fftw_real tmp54;	       fftw_real tmp401;	       fftw_real tmp398;	       fftw_real tmp796;	       fftw_real tmp65;	       fftw_real tmp399;	       fftw_real tmp404;	       fftw_real tmp797;	       fftw_real tmp798;	       fftw_real tmp799;	       ASSERT_ALIGNED_DOUBLE;	       {		    fftw_real tmp48;		    fftw_real tmp396;		    fftw_real tmp53;		    fftw_real tmp397;		    ASSERT_ALIGNED_DOUBLE;		    {			 fftw_real tmp45;			 fftw_real tmp47;			 fftw_real tmp44;			 fftw_real tmp46;			 ASSERT_ALIGNED_DOUBLE;			 tmp45 = c_re(inout[4 * iostride]);			 tmp47 = c_im(inout[4 * iostride]);			 tmp44 = c_re(W[3]);			 tmp46 = c_im(W[3]);			 tmp48 = (tmp44 * tmp45) - (tmp46 * tmp47);			 tmp396 = (tmp46 * tmp45) + (tmp44 * tmp47);		    }		    {			 fftw_real tmp50;			 fftw_real tmp52;			 fftw_real tmp49;			 fftw_real tmp51;			 ASSERT_ALIGNED_DOUBLE;			 tmp50 = c_re(inout[36 * iostride]);			 tmp52 = c_im(inout[36 * iostride]);			 tmp49 = c_re(W[35]);			 tmp51 = c_im(W[35]);			 tmp53 = (tmp49 * tmp50) - (tmp51 * tmp52);			 tmp397 = (tmp51 * tmp50) + (tmp49 * tmp52);		    }		    tmp54 = tmp48 + tmp53;		    tmp401 = tmp48 - tmp53;		    tmp398 = tmp396 - tmp397;		    tmp796 = tmp396 + tmp397;	       }	       {		    fftw_real tmp59;		    fftw_real tmp402;		    fftw_real tmp64;		    fftw_real tmp403;		    ASSERT_ALIGNED_DOUBLE;		    {			 fftw_real tmp56;			 fftw_real tmp58;			 fftw_real tmp55;			 fftw_real tmp57;			 ASSERT_ALIGNED_DOUBLE;			 tmp56 = c_re(inout[20 * iostride]);			 tmp58 = c_im(inout[20 * iostride]);			 tmp55 = c_re(W[19]);			 tmp57 = c_im(W[19]);			 tmp59 = (tmp55 * tmp56) - (tmp57 * tmp58);			 tmp402 = (tmp57 * tmp56) + (tmp55 * tmp58);		    }		    {			 fftw_real tmp61;			 fftw_real tmp63;			 fftw_real tmp60;			 fftw_real tmp62;			 ASSERT_ALIGNED_DOUBLE;			 tmp61 = c_re(inout[52 * iostride]);			 tmp63 = c_im(inout[52 * iostride]);			 tmp60 = c_re(W[51]);			 tmp62 = c_im(W[51]);			 tmp64 = (tmp60 * tmp61) - (tmp62 * tmp63);			 tmp403 = (tmp62 * tmp61) + (tmp60 * tmp63);		    }		    tmp65 = tmp59 + tmp64;		    tmp399 = tmp59 - tmp64;		    tmp404 = tmp402 - tmp403;		    tmp797 = tmp402 + tmp403;	       }	       tmp66 = tmp54 + tmp65;	       tmp798 = tmp796 - tmp797;	       tmp799 = tmp54 - tmp65;	       tmp800 = tmp798 - tmp799;	       tmp908 = tmp799 + tmp798;	       tmp956 = tmp796 + tmp797;	       {		    fftw_real tmp400;		    fftw_real tmp405;		    fftw_real tmp660;		    fftw_real tmp661;		    ASSERT_ALIGNED_DOUBLE;		    tmp400 = tmp398 + tmp399;		    tmp405 = tmp401 - tmp404;		    tmp406 = (K382683432 * tmp400) - (K923879532 * tmp405);		    tmp608 = (K923879532 * tmp400) + (K382683432 * tmp405);		    tmp660 = tmp398 - tmp399;		    tmp661 = tmp401 + tmp404;		    tmp662 = (K923879532 * tmp660) - (K382683432 * tmp661);		    tmp744 = (K382683432 * tmp660) + (K923879532 * tmp661);	       }	  }	  {	       fftw_real tmp24;	       fftw_real tmp384;	       fftw_real tmp29;	       fftw_real tmp385;	       fftw_real tmp386;	       fftw_real tmp387;	       fftw_real tmp35;	       fftw_real tmp390;	       fftw_real tmp40;	       fftw_real tmp391;	       fftw_real tmp389;	       fftw_real tmp392;	       ASSERT_ALIGNED_DOUBLE;	       {		    fftw_real tmp21;		    fftw_real tmp23;		    fftw_real tmp20;		    fftw_real tmp22;		    ASSERT_ALIGNED_DOUBLE;		    tmp21 = c_re(inout[8 * iostride]);		    tmp23 = c_im(inout[8 * iostride]);		    tmp20 = c_re(W[7]);		    tmp22 = c_im(W[7]);		    tmp24 = (tmp20 * tmp21) - (tmp22 * tmp23);		    tmp384 = (tmp22 * tmp21) + (tmp20 * tmp23);	       }	       {		    fftw_real tmp26;		    fftw_real tmp28;		    fftw_real tmp25;		    fftw_real tmp27;		    ASSERT_ALIGNED_DOUBLE;		    tmp26 = c_re(inout[40 * iostride]);		    tmp28 = c_im(inout[40 * iostride]);		    tmp25 = c_re(W[39]);		    tmp27 = c_im(W[39]);		    tmp29 = (tmp25 * tmp26) - (tmp27 * tmp28);		    tmp385 = (tmp27 * tmp26) + (tmp25 * tmp28);	       }	       tmp386 = tmp384 - tmp385;	       tmp387 = tmp24 - tmp29;	       {		    fftw_real tmp32;		    fftw_real tmp34;		    fftw_real tmp31;		    fftw_real tmp33;		    ASSERT_ALIGNED_DOUBLE;		    tmp32 = c_re(inout[56 * iostride]);		    tmp34 = c_im(inout[56 * iostride]);		    tmp31 = c_re(W[55]);		    tmp33 = c_im(W[55]);		    tmp35 = (tmp31 * tmp32) - (tmp33 * tmp34);		    tmp390 = (tmp33 * tmp32) + (tmp31 * tmp34);	       }	       {		    fftw_real tmp37;		    fftw_real tmp39;		    fftw_real tmp36;		    fftw_real tmp38;		    ASSERT_ALIGNED_DOUBLE;		    tmp37 = c_re(inout[24 * iostride]);		    tmp39 = c_im(inout[24 * iostride]);		    tmp36 = c_re(W[23]);

⌨️ 快捷键说明

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