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

📄 fhf_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: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-forward 10 *//* * This function contains 168 FP additions, 84 FP multiplications, * (or, 126 additions, 42 multiplications, 42 fused multiply/add), * 43 stack variables, and 80 memory accesses */static const fftw_real K250000000 =FFTW_KONST(+0.250000000000000000000000000000000000000000000);static const fftw_real K559016994 =FFTW_KONST(+0.559016994374947424102293417182819058860154590);static const fftw_real K587785252 =FFTW_KONST(+0.587785252292473129168705954639072768597652438);static const fftw_real K951056516 =FFTW_KONST(+0.951056516295153572116439333379382143405698634);/* * 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_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 tmp178;	  fftw_real tmp181;	  fftw_real tmp162;	  fftw_real tmp167;	  fftw_real tmp165;	  fftw_real tmp168;	  fftw_real tmp174;	  fftw_real tmp183;	  fftw_real tmp155;	  fftw_real tmp170;	  fftw_real tmp158;	  fftw_real tmp171;	  fftw_real tmp173;	  fftw_real tmp182;	  fftw_real tmp176;	  fftw_real tmp177;	  ASSERT_ALIGNED_DOUBLE;	  tmp176 = X[0];	  tmp177 = X[5 * iostride];	  tmp178 = tmp176 - tmp177;	  tmp181 = tmp176 + tmp177;	  {	       fftw_real tmp160;	       fftw_real tmp161;	       fftw_real tmp163;	       fftw_real tmp164;	       ASSERT_ALIGNED_DOUBLE;	       tmp160 = X[4 * iostride];	       tmp161 = X[9 * iostride];	       tmp162 = tmp160 - tmp161;	       tmp167 = tmp160 + tmp161;	       tmp163 = X[6 * iostride];	       tmp164 = X[iostride];	       tmp165 = tmp163 - tmp164;	       tmp168 = tmp163 + tmp164;	  }	  tmp174 = tmp162 + tmp165;	  tmp183 = tmp167 + tmp168;	  {	       fftw_real tmp153;	       fftw_real tmp154;	       fftw_real tmp156;	       fftw_real tmp157;	       ASSERT_ALIGNED_DOUBLE;	       tmp153 = X[2 * iostride];	       tmp154 = X[7 * iostride];	       tmp155 = tmp153 - tmp154;	       tmp170 = tmp153 + tmp154;	       tmp156 = X[8 * iostride];	       tmp157 = X[3 * iostride];	       tmp158 = tmp156 - tmp157;	       tmp171 = tmp156 + tmp157;	  }	  tmp173 = tmp155 + tmp158;	  tmp182 = tmp170 + tmp171;	  {	       fftw_real tmp159;	       fftw_real tmp166;	       fftw_real tmp186;	       fftw_real tmp184;	       fftw_real tmp185;	       ASSERT_ALIGNED_DOUBLE;	       tmp159 = tmp155 - tmp158;	       tmp166 = tmp162 - tmp165;	       Y[-iostride] =		   -((K951056516 * tmp159) + (K587785252 * tmp166));	       Y[-3 * iostride] =		   (K587785252 * tmp159) - (K951056516 * tmp166);	       tmp186 = K559016994 * (tmp182 - tmp183);	       tmp184 = tmp182 + tmp183;	       tmp185 = tmp181 - (K250000000 * tmp184);	       X[2 * iostride] = tmp185 - tmp186;	       X[4 * iostride] = tmp186 + tmp185;	       X[0] = tmp184 + tmp181;	  }	  {	       fftw_real tmp169;	       fftw_real tmp172;	       fftw_real tmp175;	       fftw_real tmp179;	       fftw_real tmp180;	       ASSERT_ALIGNED_DOUBLE;	       tmp169 = tmp167 - tmp168;	       tmp172 = tmp170 - tmp171;	       Y[-2 * iostride] =		   (K951056516 * tmp169) - (K587785252 * tmp172);	       Y[-4 * iostride] =		   (K951056516 * tmp172) + (K587785252 * tmp169);	       tmp175 = K559016994 * (tmp173 - tmp174);	       tmp179 = tmp173 + tmp174;	       tmp180 = tmp178 - (K250000000 * tmp179);	       X[iostride] = tmp175 + tmp180;	       X[3 * iostride] = tmp180 - tmp175;	       X[5 * iostride] = tmp179 + 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 tmp39;	  fftw_real tmp87;	  fftw_real tmp132;	  fftw_real tmp144;	  fftw_real tmp73;	  fftw_real tmp84;	  fftw_real tmp85;	  fftw_real tmp91;	  fftw_real tmp92;	  fftw_real tmp93;	  fftw_real tmp100;	  fftw_real tmp103;	  fftw_real tmp128;	  fftw_real tmp121;	  fftw_real tmp122;	  fftw_real tmp142;	  fftw_real tmp50;	  fftw_real tmp61;	  fftw_real tmp62;	  fftw_real tmp88;	  fftw_real tmp89;	  fftw_real tmp90;	  fftw_real tmp107;	  fftw_real tmp110;	  fftw_real tmp127;	  fftw_real tmp118;	  fftw_real tmp119;	  fftw_real tmp141;	  ASSERT_ALIGNED_DOUBLE;	  {	       fftw_real tmp33;	       fftw_real tmp131;	       fftw_real tmp38;	       fftw_real tmp130;	       ASSERT_ALIGNED_DOUBLE;	       tmp33 = X[0];	       tmp131 = Y[-9 * iostride];	       {		    fftw_real tmp35;		    fftw_real tmp37;		    fftw_real tmp34;		    fftw_real tmp36;		    ASSERT_ALIGNED_DOUBLE;		    tmp35 = X[5 * iostride];		    tmp37 = Y[-4 * iostride];		    tmp34 = c_re(W[4]);		    tmp36 = c_im(W[4]);		    tmp38 = (tmp34 * tmp35) - (tmp36 * tmp37);		    tmp130 = (tmp36 * tmp35) + (tmp34 * tmp37);	       }	       tmp39 = tmp33 - tmp38;	       tmp87 = tmp33 + tmp38;	       tmp132 = tmp130 + tmp131;	       tmp144 = tmp131 - tmp130;	  }	  {	       fftw_real tmp67;	       fftw_real tmp98;	       fftw_real tmp83;	       fftw_real tmp102;	       fftw_real tmp72;	       fftw_real tmp99;	       fftw_real tmp78;	       fftw_real tmp101;	       ASSERT_ALIGNED_DOUBLE;	       {		    fftw_real tmp64;		    fftw_real tmp66;		    fftw_real tmp63;		    fftw_real tmp65;		    ASSERT_ALIGNED_DOUBLE;		    tmp64 = X[4 * iostride];		    tmp66 = Y[-5 * iostride];		    tmp63 = c_re(W[3]);		    tmp65 = c_im(W[3]);		    tmp67 = (tmp63 * tmp64) - (tmp65 * tmp66);		    tmp98 = (tmp65 * tmp64) + (tmp63 * tmp66);	       }	       {		    fftw_real tmp80;		    fftw_real tmp82;		    fftw_real tmp79;		    fftw_real tmp81;		    ASSERT_ALIGNED_DOUBLE;		    tmp80 = X[iostride];		    tmp82 = Y[-8 * iostride];		    tmp79 = c_re(W[0]);		    tmp81 = c_im(W[0]);		    tmp83 = (tmp79 * tmp80) - (tmp81 * tmp82);		    tmp102 = (tmp81 * tmp80) + (tmp79 * tmp82);	       }	       {		    fftw_real tmp69;		    fftw_real tmp71;		    fftw_real tmp68;		    fftw_real tmp70;		    ASSERT_ALIGNED_DOUBLE;		    tmp69 = X[9 * iostride];		    tmp71 = Y[0];		    tmp68 = c_re(W[8]);		    tmp70 = c_im(W[8]);		    tmp72 = (tmp68 * tmp69) - (tmp70 * tmp71);		    tmp99 = (tmp70 * tmp69) + (tmp68 * tmp71);	       }	       {		    fftw_real tmp75;		    fftw_real tmp77;		    fftw_real tmp74;		    fftw_real tmp76;		    ASSERT_ALIGNED_DOUBLE;		    tmp75 = X[6 * iostride];		    tmp77 = Y[-3 * iostride];		    tmp74 = c_re(W[5]);		    tmp76 = c_im(W[5]);		    tmp78 = (tmp74 * tmp75) - (tmp76 * tmp77);		    tmp101 = (tmp76 * tmp75) + (tmp74 * tmp77);	       }	       tmp73 = tmp67 - tmp72;	       tmp84 = tmp78 - tmp83;	       tmp85 = tmp73 + tmp84;	       tmp91 = tmp67 + tmp72;	       tmp92 = tmp78 + tmp83;	       tmp93 = tmp91 + tmp92;	       tmp100 = tmp98 + tmp99;	       tmp103 = tmp101 + tmp102;	       tmp128 = tmp100 + tmp103;	       tmp121 = tmp98 - tmp99;	       tmp122 = tmp101 - tmp102;	       tmp142 = tmp121 + tmp122;

⌨️ 快捷键说明

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