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

📄 fhb_10.c

📁 FFTW, a collection of fast C routines to compute the Discrete Fourier Transform in one or more dime
💻 C
📖 第 1 页 / 共 2 页
字号:
/* * 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:59 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 10 *//* * This function contains 168 FP additions, 90 FP multiplications, * (or, 124 additions, 46 multiplications, 44 fused multiply/add), * 37 stack variables, and 80 memory accesses */static const fftw_real K250000000 =FFTW_KONST(+0.250000000000000000000000000000000000000000000);static const fftw_real K951056516 =FFTW_KONST(+0.951056516295153572116439333379382143405698634);static const fftw_real K587785252 =FFTW_KONST(+0.587785252292473129168705954639072768597652438);static const fftw_real K559016994 =FFTW_KONST(+0.559016994374947424102293417182819058860154590);static const fftw_real K500000000 =FFTW_KONST(+0.500000000000000000000000000000000000000000000);static const fftw_real K1_902113032 =FFTW_KONST(+1.902113032590307144232878666758764286811397268);static const fftw_real K1_175570504 =FFTW_KONST(+1.175570504584946258337411909278145537195304875);static const fftw_real K2_000000000 =FFTW_KONST(+2.000000000000000000000000000000000000000000000);static const fftw_real K1_118033988 =FFTW_KONST(+1.118033988749894848204586834365638117720309180);/* * 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_10(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 + (10 * iostride);     {	  fftw_real tmp155;	  fftw_real tmp163;	  fftw_real tmp175;	  fftw_real tmp183;	  fftw_real tmp172;	  fftw_real tmp182;	  fftw_real tmp162;	  fftw_real tmp180;	  fftw_real tmp166;	  fftw_real tmp167;	  fftw_real tmp170;	  fftw_real tmp171;	  ASSERT_ALIGNED_DOUBLE;	  {	       fftw_real tmp153;	       fftw_real tmp154;	       fftw_real tmp173;	       fftw_real tmp174;	       ASSERT_ALIGNED_DOUBLE;	       tmp153 = X[0];	       tmp154 = X[5 * iostride];	       tmp155 = tmp153 - tmp154;	       tmp163 = tmp153 + tmp154;	       tmp173 = Y[-4 * iostride];	       tmp174 = Y[-iostride];	       tmp175 = tmp173 - tmp174;	       tmp183 = tmp173 + tmp174;	  }	  tmp170 = Y[-2 * iostride];	  tmp171 = Y[-3 * iostride];	  tmp172 = tmp170 - tmp171;	  tmp182 = tmp170 + tmp171;	  {	       fftw_real tmp158;	       fftw_real tmp164;	       fftw_real tmp161;	       fftw_real tmp165;	       ASSERT_ALIGNED_DOUBLE;	       {		    fftw_real tmp156;		    fftw_real tmp157;		    fftw_real tmp159;		    fftw_real tmp160;		    ASSERT_ALIGNED_DOUBLE;		    tmp156 = X[2 * iostride];		    tmp157 = X[3 * iostride];		    tmp158 = tmp156 - tmp157;		    tmp164 = tmp156 + tmp157;		    tmp159 = X[4 * iostride];		    tmp160 = X[iostride];		    tmp161 = tmp159 - tmp160;		    tmp165 = tmp159 + tmp160;	       }	       tmp162 = tmp158 + tmp161;	       tmp180 = K1_118033988 * (tmp158 - tmp161);	       tmp166 = tmp164 + tmp165;	       tmp167 = K1_118033988 * (tmp164 - tmp165);	  }	  X[5 * iostride] = tmp155 + (K2_000000000 * tmp162);	  {	       fftw_real tmp184;	       fftw_real tmp186;	       fftw_real tmp181;	       fftw_real tmp185;	       fftw_real tmp179;	       ASSERT_ALIGNED_DOUBLE;	       tmp184 = (K1_175570504 * tmp182) - (K1_902113032 * tmp183);	       tmp186 = (K1_902113032 * tmp182) + (K1_175570504 * tmp183);	       tmp179 = tmp155 - (K500000000 * tmp162);	       tmp181 = tmp179 - tmp180;	       tmp185 = tmp179 + tmp180;	       X[7 * iostride] = tmp181 - tmp184;	       X[3 * iostride] = tmp181 + tmp184;	       X[iostride] = tmp185 - tmp186;	       X[9 * iostride] = tmp185 + tmp186;	  }	  X[0] = tmp163 + (K2_000000000 * tmp166);	  {	       fftw_real tmp176;	       fftw_real tmp178;	       fftw_real tmp169;	       fftw_real tmp177;	       fftw_real tmp168;	       ASSERT_ALIGNED_DOUBLE;	       tmp176 = (K1_902113032 * tmp172) + (K1_175570504 * tmp175);	       tmp178 = (K1_902113032 * tmp175) - (K1_175570504 * tmp172);	       tmp168 = tmp163 - (K500000000 * tmp166);	       tmp169 = tmp167 + tmp168;	       tmp177 = tmp168 - tmp167;	       X[4 * iostride] = tmp169 + tmp176;	       X[6 * iostride] = tmp169 - tmp176;	       X[8 * iostride] = tmp177 - tmp178;	       X[2 * iostride] = tmp177 + tmp178;	  }     }     X = X + dist;     Y = Y - dist;     for (i = 2; i < m; i = i + 2, X = X + dist, Y = Y - dist, W = W + 9) {	  fftw_real tmp35;	  fftw_real tmp102;	  fftw_real tmp77;	  fftw_real tmp119;	  fftw_real tmp72;	  fftw_real tmp73;	  fftw_real tmp50;	  fftw_real tmp53;	  fftw_real tmp123;	  fftw_real tmp122;	  fftw_real tmp109;	  fftw_real tmp131;	  fftw_real tmp61;	  fftw_real tmp68;	  fftw_real tmp80;	  fftw_real tmp82;	  fftw_real tmp134;	  fftw_real tmp133;	  fftw_real tmp118;	  fftw_real tmp126;	  ASSERT_ALIGNED_DOUBLE;	  {	       fftw_real tmp33;	       fftw_real tmp34;	       fftw_real tmp75;	       fftw_real tmp76;	       ASSERT_ALIGNED_DOUBLE;	       tmp33 = X[0];	       tmp34 = Y[-5 * iostride];	       tmp35 = tmp33 + tmp34;	       tmp102 = tmp33 - tmp34;	       tmp75 = Y[0];	       tmp76 = X[5 * iostride];	       tmp77 = tmp75 - tmp76;	       tmp119 = tmp75 + tmp76;	  }	  {	       fftw_real tmp38;	       fftw_real tmp103;	       fftw_real tmp48;	       fftw_real tmp107;	       fftw_real tmp41;	       fftw_real tmp104;	       fftw_real tmp45;	       fftw_real tmp106;	       ASSERT_ALIGNED_DOUBLE;	       {		    fftw_real tmp36;		    fftw_real tmp37;		    fftw_real tmp46;		    fftw_real tmp47;		    ASSERT_ALIGNED_DOUBLE;		    tmp36 = X[2 * iostride];		    tmp37 = Y[-7 * iostride];		    tmp38 = tmp36 + tmp37;		    tmp103 = tmp36 - tmp37;		    tmp46 = Y[-6 * iostride];		    tmp47 = X[iostride];		    tmp48 = tmp46 + tmp47;		    tmp107 = tmp46 - tmp47;	       }	       {		    fftw_real tmp39;		    fftw_real tmp40;		    fftw_real tmp43;		    fftw_real tmp44;		    ASSERT_ALIGNED_DOUBLE;		    tmp39 = Y[-8 * iostride];		    tmp40 = X[3 * iostride];		    tmp41 = tmp39 + tmp40;		    tmp104 = tmp39 - tmp40;		    tmp43 = X[4 * iostride];		    tmp44 = Y[-9 * iostride];		    tmp45 = tmp43 + tmp44;		    tmp106 = tmp43 - tmp44;	       }	       {		    fftw_real tmp42;		    fftw_real tmp49;		    fftw_real tmp105;		    fftw_real tmp108;		    ASSERT_ALIGNED_DOUBLE;		    tmp72 = tmp38 - tmp41;		    tmp73 = tmp45 - tmp48;		    tmp42 = tmp38 + tmp41;		    tmp49 = tmp45 + tmp48;		    tmp50 = tmp42 + tmp49;		    tmp53 = K559016994 * (tmp42 - tmp49);		    tmp123 = tmp106 - tmp107;		    tmp122 = tmp103 - tmp104;		    tmp105 = tmp103 + tmp104;		    tmp108 = tmp106 + tmp107;		    tmp109 = tmp105 + tmp108;		    tmp131 = K559016994 * (tmp105 - tmp108);	       }	  }	  {	       fftw_real tmp57;	       fftw_real tmp112;	       fftw_real tmp67;	       fftw_real tmp116;	       fftw_real tmp60;	       fftw_real tmp113;	       fftw_real tmp64;	       fftw_real tmp115;	       ASSERT_ALIGNED_DOUBLE;	       {		    fftw_real tmp55;		    fftw_real tmp56;		    fftw_real tmp65;		    fftw_real tmp66;		    ASSERT_ALIGNED_DOUBLE;		    tmp55 = Y[-2 * iostride];		    tmp56 = X[7 * iostride];		    tmp57 = tmp55 - tmp56;		    tmp112 = tmp55 + tmp56;		    tmp65 = Y[-iostride];		    tmp66 = X[6 * iostride];		    tmp67 = tmp65 - tmp66;		    tmp116 = tmp65 + tmp66;	       }	       {		    fftw_real tmp58;		    fftw_real tmp59;		    fftw_real tmp62;		    fftw_real tmp63;		    ASSERT_ALIGNED_DOUBLE;		    tmp58 = Y[-3 * iostride];		    tmp59 = X[8 * iostride];		    tmp60 = tmp58 - tmp59;		    tmp113 = tmp58 + tmp59;		    tmp62 = Y[-4 * iostride];		    tmp63 = X[9 * iostride];

⌨️ 快捷键说明

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