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

📄 fhb_16.c

📁 FFTW, a collection of fast C routines to compute the Discrete Fourier Transform in one or more dime
💻 C
📖 第 1 页 / 共 2 页
字号:
	  {	       fftw_real tmp81;	       fftw_real tmp96;	       fftw_real tmp158;	       fftw_real tmp162;	       fftw_real tmp165;	       fftw_real tmp166;	       fftw_real tmp157;	       fftw_real tmp159;	       ASSERT_ALIGNED_DOUBLE;	       tmp81 = tmp73 + tmp80;	       tmp96 = tmp88 + tmp95;	       tmp158 = tmp81 - tmp96;	       tmp162 = tmp160 + tmp161;	       tmp165 = tmp163 + tmp164;	       tmp166 = tmp162 - tmp165;	       X[0] = tmp81 + tmp96;	       Y[-15 * iostride] = tmp162 + tmp165;	       tmp157 = c_re(W[7]);	       tmp159 = c_im(W[7]);	       X[8 * iostride] = (tmp157 * tmp158) + (tmp159 * tmp166);	       Y[-7 * iostride] = (tmp157 * tmp166) - (tmp159 * tmp158);	  }	  {	       fftw_real tmp170;	       fftw_real tmp176;	       fftw_real tmp174;	       fftw_real tmp178;	       ASSERT_ALIGNED_DOUBLE;	       {		    fftw_real tmp168;		    fftw_real tmp169;		    fftw_real tmp172;		    fftw_real tmp173;		    ASSERT_ALIGNED_DOUBLE;		    tmp168 = tmp160 - tmp161;		    tmp169 = tmp88 - tmp95;		    tmp170 = tmp168 - tmp169;		    tmp176 = tmp169 + tmp168;		    tmp172 = tmp73 - tmp80;		    tmp173 = tmp164 - tmp163;		    tmp174 = tmp172 - tmp173;		    tmp178 = tmp172 + tmp173;	       }	       {		    fftw_real tmp167;		    fftw_real tmp171;		    fftw_real tmp175;		    fftw_real tmp177;		    ASSERT_ALIGNED_DOUBLE;		    tmp167 = c_re(W[11]);		    tmp171 = c_im(W[11]);		    Y[-3 * iostride] =			(tmp167 * tmp170) - (tmp171 * tmp174);		    X[12 * iostride] =			(tmp171 * tmp170) + (tmp167 * tmp174);		    tmp175 = c_re(W[3]);		    tmp177 = c_im(W[3]);		    Y[-11 * iostride] =			(tmp175 * tmp176) - (tmp177 * tmp178);		    X[4 * iostride] =			(tmp177 * tmp176) + (tmp175 * tmp178);	       }	  }	  {	       fftw_real tmp126;	       fftw_real tmp142;	       fftw_real tmp140;	       fftw_real tmp144;	       ASSERT_ALIGNED_DOUBLE;	       {		    fftw_real tmp106;		    fftw_real tmp125;		    fftw_real tmp136;		    fftw_real tmp139;		    ASSERT_ALIGNED_DOUBLE;		    tmp106 = tmp98 + tmp105;		    tmp125 = K707106781 * (tmp115 + tmp124);		    tmp126 = tmp106 - tmp125;		    tmp142 = tmp106 + tmp125;		    tmp136 = tmp128 + tmp135;		    tmp139 = K707106781 * (tmp137 + tmp138);		    tmp140 = tmp136 - tmp139;		    tmp144 = tmp136 + tmp139;	       }	       {		    fftw_real tmp97;		    fftw_real tmp127;		    fftw_real tmp141;		    fftw_real tmp143;		    ASSERT_ALIGNED_DOUBLE;		    tmp97 = c_re(W[9]);		    tmp127 = c_im(W[9]);		    X[10 * iostride] =			(tmp97 * tmp126) + (tmp127 * tmp140);		    Y[-5 * iostride] =			(tmp97 * tmp140) - (tmp127 * tmp126);		    tmp141 = c_re(W[1]);		    tmp143 = c_im(W[1]);		    X[2 * iostride] =			(tmp141 * tmp142) + (tmp143 * tmp144);		    Y[-13 * iostride] =			(tmp141 * tmp144) - (tmp143 * tmp142);	       }	  }	  {	       fftw_real tmp148;	       fftw_real tmp154;	       fftw_real tmp152;	       fftw_real tmp156;	       ASSERT_ALIGNED_DOUBLE;	       {		    fftw_real tmp146;		    fftw_real tmp147;		    fftw_real tmp150;		    fftw_real tmp151;		    ASSERT_ALIGNED_DOUBLE;		    tmp146 = tmp135 - tmp128;		    tmp147 = K707106781 * (tmp115 - tmp124);		    tmp148 = tmp146 - tmp147;		    tmp154 = tmp146 + tmp147;		    tmp150 = tmp98 - tmp105;		    tmp151 = K707106781 * (tmp138 - tmp137);		    tmp152 = tmp150 - tmp151;		    tmp156 = tmp150 + tmp151;	       }	       {		    fftw_real tmp145;		    fftw_real tmp149;		    fftw_real tmp153;		    fftw_real tmp155;		    ASSERT_ALIGNED_DOUBLE;		    tmp145 = c_re(W[13]);		    tmp149 = c_im(W[13]);		    Y[-iostride] = (tmp145 * tmp148) - (tmp149 * tmp152);		    X[14 * iostride] =			(tmp149 * tmp148) + (tmp145 * tmp152);		    tmp153 = c_re(W[5]);		    tmp155 = c_im(W[5]);		    Y[-9 * iostride] =			(tmp153 * tmp154) - (tmp155 * tmp156);		    X[6 * iostride] =			(tmp155 * tmp154) + (tmp153 * tmp156);	       }	  }	  {	       fftw_real tmp206;	       fftw_real tmp220;	       fftw_real tmp218;	       fftw_real tmp222;	       ASSERT_ALIGNED_DOUBLE;	       {		    fftw_real tmp190;		    fftw_real tmp205;		    fftw_real tmp214;		    fftw_real tmp217;		    ASSERT_ALIGNED_DOUBLE;		    tmp190 = tmp182 - tmp189;		    tmp205 = tmp197 - tmp204;		    tmp206 = tmp190 - tmp205;		    tmp220 = tmp190 + tmp205;		    tmp214 = tmp210 - tmp213;		    tmp217 = tmp215 - tmp216;		    tmp218 = tmp214 - tmp217;		    tmp222 = tmp214 + tmp217;	       }	       {		    fftw_real tmp179;		    fftw_real tmp207;		    fftw_real tmp219;		    fftw_real tmp221;		    ASSERT_ALIGNED_DOUBLE;		    tmp179 = c_re(W[12]);		    tmp207 = c_im(W[12]);		    X[13 * iostride] =			(tmp179 * tmp206) + (tmp207 * tmp218);		    Y[-2 * iostride] =			(tmp179 * tmp218) - (tmp207 * tmp206);		    tmp219 = c_re(W[4]);		    tmp221 = c_im(W[4]);		    X[5 * iostride] =			(tmp219 * tmp220) + (tmp221 * tmp222);		    Y[-10 * iostride] =			(tmp219 * tmp222) - (tmp221 * tmp220);	       }	  }	  {	       fftw_real tmp226;	       fftw_real tmp232;	       fftw_real tmp230;	       fftw_real tmp234;	       ASSERT_ALIGNED_DOUBLE;	       {		    fftw_real tmp224;		    fftw_real tmp225;		    fftw_real tmp228;		    fftw_real tmp229;		    ASSERT_ALIGNED_DOUBLE;		    tmp224 = tmp210 + tmp213;		    tmp225 = tmp204 + tmp197;		    tmp226 = tmp224 - tmp225;		    tmp232 = tmp224 + tmp225;		    tmp228 = tmp182 + tmp189;		    tmp229 = tmp215 + tmp216;		    tmp230 = tmp228 - tmp229;		    tmp234 = tmp228 + tmp229;	       }	       {		    fftw_real tmp223;		    fftw_real tmp227;		    fftw_real tmp231;		    fftw_real tmp233;		    ASSERT_ALIGNED_DOUBLE;		    tmp223 = c_re(W[8]);		    tmp227 = c_im(W[8]);		    Y[-6 * iostride] =			(tmp223 * tmp226) - (tmp227 * tmp230);		    X[9 * iostride] =			(tmp227 * tmp226) + (tmp223 * tmp230);		    tmp231 = c_re(W[0]);		    tmp233 = c_im(W[0]);		    Y[-14 * iostride] =			(tmp231 * tmp232) - (tmp233 * tmp234);		    X[iostride] = (tmp233 * tmp232) + (tmp231 * tmp234);	       }	  }	  {	       fftw_real tmp246;	       fftw_real tmp256;	       fftw_real tmp254;	       fftw_real tmp258;	       ASSERT_ALIGNED_DOUBLE;	       {		    fftw_real tmp238;		    fftw_real tmp245;		    fftw_real tmp250;		    fftw_real tmp253;		    ASSERT_ALIGNED_DOUBLE;		    tmp238 = tmp236 - tmp237;		    tmp245 = tmp241 + tmp244;		    tmp246 = tmp238 - tmp245;		    tmp256 = tmp238 + tmp245;		    tmp250 = tmp248 + tmp249;		    tmp253 = tmp251 - tmp252;		    tmp254 = tmp250 - tmp253;		    tmp258 = tmp250 + tmp253;	       }	       {		    fftw_real tmp235;		    fftw_real tmp247;		    fftw_real tmp255;		    fftw_real tmp257;		    ASSERT_ALIGNED_DOUBLE;		    tmp235 = c_re(W[10]);		    tmp247 = c_im(W[10]);		    X[11 * iostride] =			(tmp235 * tmp246) + (tmp247 * tmp254);		    Y[-4 * iostride] =			(tmp235 * tmp254) - (tmp247 * tmp246);		    tmp255 = c_re(W[2]);		    tmp257 = c_im(W[2]);		    X[3 * iostride] =			(tmp255 * tmp256) + (tmp257 * tmp258);		    Y[-12 * iostride] =			(tmp255 * tmp258) - (tmp257 * tmp256);	       }	  }	  {	       fftw_real tmp262;	       fftw_real tmp268;	       fftw_real tmp266;	       fftw_real tmp270;	       ASSERT_ALIGNED_DOUBLE;	       {		    fftw_real tmp260;		    fftw_real tmp261;		    fftw_real tmp264;		    fftw_real tmp265;		    ASSERT_ALIGNED_DOUBLE;		    tmp260 = tmp248 - tmp249;		    tmp261 = tmp241 - tmp244;		    tmp262 = tmp260 + tmp261;		    tmp268 = tmp260 - tmp261;		    tmp264 = tmp236 + tmp237;		    tmp265 = tmp251 + tmp252;		    tmp266 = tmp264 - tmp265;		    tmp270 = tmp264 + tmp265;	       }	       {		    fftw_real tmp259;		    fftw_real tmp263;		    fftw_real tmp267;		    fftw_real tmp269;		    ASSERT_ALIGNED_DOUBLE;		    tmp259 = c_re(W[6]);		    tmp263 = c_im(W[6]);		    Y[-8 * iostride] =			(tmp259 * tmp262) - (tmp263 * tmp266);		    X[7 * iostride] =			(tmp263 * tmp262) + (tmp259 * tmp266);		    tmp267 = c_re(W[14]);		    tmp269 = c_im(W[14]);		    Y[0] = (tmp267 * tmp268) - (tmp269 * tmp270);		    X[15 * iostride] =			(tmp269 * tmp268) + (tmp267 * tmp270);	       }	  }     }     if (i == m) {	  fftw_real tmp7;	  fftw_real tmp51;	  fftw_real tmp19;	  fftw_real tmp43;	  fftw_real tmp39;	  fftw_real tmp47;	  fftw_real tmp59;	  fftw_real tmp64;	  fftw_real tmp14;	  fftw_real tmp56;	  fftw_real tmp24;	  fftw_real tmp32;	  fftw_real tmp29;	  fftw_real tmp33;	  fftw_real tmp54;	  fftw_real tmp65;	  fftw_real tmp63;	  fftw_real tmp66;	  ASSERT_ALIGNED_DOUBLE;	  {	       fftw_real tmp3;	       fftw_real tmp15;	       fftw_real tmp38;	       fftw_real tmp57;	       fftw_real tmp6;	       fftw_real tmp35;	       fftw_real tmp18;	       fftw_real tmp58;	       ASSERT_ALIGNED_DOUBLE;	       {		    fftw_real tmp1;		    fftw_real tmp2;		    fftw_real tmp36;		    fftw_real tmp37;		    ASSERT_ALIGNED_DOUBLE;		    tmp1 = X[0];		    tmp2 = X[7 * iostride];		    tmp3 = tmp1 + tmp2;		    tmp15 = tmp1 - tmp2;		    tmp36 = Y[0];		    tmp37 = Y[-7 * iostride];		    tmp38 = tmp36 + tmp37;		    tmp57 = tmp36 - tmp37;	       }	       {		    fftw_real tmp4;		    fftw_real tmp5;		    fftw_real tmp16;		    fftw_real tmp17;		    ASSERT_ALIGNED_DOUBLE;		    tmp4 = X[4 * iostride];		    tmp5 = X[3 * iostride];		    tmp6 = tmp4 + tmp5;		    tmp35 = tmp4 - tmp5;		    tmp16 = Y[-4 * iostride];		    tmp17 = Y[-3 * iostride];		    tmp18 = tmp16 + tmp17;		    tmp58 = tmp16 - tmp17;	       }	       tmp7 = tmp3 + tmp6;	       tmp51 = tmp3 - tmp6;	       tmp19 = tmp15 - tmp18;	       tmp43 = tmp15 + tmp18;	       tmp39 = tmp35 + tmp38;	       tmp47 = tmp38 - tmp35;	       tmp59 = tmp57 - tmp58;	       tmp64 = tmp58 + tmp57;	  }	  {	       fftw_real tmp10;	       fftw_real tmp20;	       fftw_real tmp23;	       fftw_real tmp53;	       fftw_real tmp13;	       fftw_real tmp25;	       fftw_real tmp28;	       fftw_real tmp52;	       ASSERT_ALIGNED_DOUBLE;	       {		    fftw_real tmp8;		    fftw_real tmp9;		    fftw_real tmp21;		    fftw_real tmp22;		    ASSERT_ALIGNED_DOUBLE;		    tmp8 = X[2 * iostride];		    tmp9 = X[5 * iostride];		    tmp10 = tmp8 + tmp9;		    tmp20 = tmp8 - tmp9;		    tmp21 = Y[-2 * iostride];		    tmp22 = Y[-5 * iostride];		    tmp23 = tmp21 + tmp22;		    tmp53 = tmp21 - tmp22;	       }	       {		    fftw_real tmp11;		    fftw_real tmp12;		    fftw_real tmp26;		    fftw_real tmp27;		    ASSERT_ALIGNED_DOUBLE;		    tmp11 = X[iostride];		    tmp12 = X[6 * iostride];		    tmp13 = tmp11 + tmp12;		    tmp25 = tmp11 - tmp12;		    tmp26 = Y[-iostride];		    tmp27 = Y[-6 * iostride];		    tmp28 = tmp26 + tmp27;		    tmp52 = tmp27 - tmp26;	       }	       tmp14 = tmp10 + tmp13;	       tmp56 = tmp10 - tmp13;	       tmp24 = tmp20 - tmp23;	       tmp32 = tmp20 + tmp23;	       tmp29 = tmp25 - tmp28;	       tmp33 = tmp25 + tmp28;	       tmp54 = tmp52 - tmp53;	       tmp65 = tmp53 + tmp52;	  }	  X[0] = K2_000000000 * (tmp7 + tmp14);	  X[8 * iostride] = -(K2_000000000 * (tmp65 + tmp64));	  tmp63 = tmp7 - tmp14;	  tmp66 = tmp64 - tmp65;	  X[4 * iostride] = K1_414213562 * (tmp63 - tmp66);	  X[12 * iostride] = -(K1_414213562 * (tmp63 + tmp66));	  {	       fftw_real tmp61;	       fftw_real tmp62;	       fftw_real tmp55;	       fftw_real tmp60;	       ASSERT_ALIGNED_DOUBLE;	       tmp61 = tmp51 - tmp54;	       tmp62 = tmp59 - tmp56;	       X[6 * iostride] =		   (K765366864 * tmp61) - (K1_847759065 * tmp62);	       X[14 * iostride] =		   -((K1_847759065 * tmp61) + (K765366864 * tmp62));	       tmp55 = tmp51 + tmp54;	       tmp60 = tmp56 + tmp59;	       X[2 * iostride] =		   (K1_847759065 * tmp55) - (K765366864 * tmp60);	       X[10 * iostride] =		   -((K765366864 * tmp55) + (K1_847759065 * tmp60));	  }	  {	       fftw_real tmp45;	       fftw_real tmp49;	       fftw_real tmp48;	       fftw_real tmp50;	       fftw_real tmp44;	       fftw_real tmp46;	       ASSERT_ALIGNED_DOUBLE;	       tmp44 = K707106781 * (tmp32 + tmp33);	       tmp45 = tmp43 - tmp44;	       tmp49 = tmp43 + tmp44;	       tmp46 = K707106781 * (tmp24 - tmp29);	       tmp48 = tmp46 + tmp47;	       tmp50 = tmp47 - tmp46;	       X[3 * iostride] =		   (K1_662939224 * tmp45) - (K1_111140466 * tmp48);	       X[11 * iostride] =		   -((K1_111140466 * tmp45) + (K1_662939224 * tmp48));	       X[7 * iostride] =		   (K390180644 * tmp49) - (K1_961570560 * tmp50);	       X[15 * iostride] =		   -((K1_961570560 * tmp49) + (K390180644 * tmp50));	  }	  {	       fftw_real tmp31;	       fftw_real tmp41;	       fftw_real tmp40;	       fftw_real tmp42;	       fftw_real tmp30;	       fftw_real tmp34;	       ASSERT_ALIGNED_DOUBLE;	       tmp30 = K707106781 * (tmp24 + tmp29);	       tmp31 = tmp19 + tmp30;	       tmp41 = tmp19 - tmp30;	       tmp34 = K707106781 * (tmp32 - tmp33);	       tmp40 = tmp34 + tmp39;	       tmp42 = tmp39 - tmp34;	       X[iostride] = (K1_961570560 * tmp31) - (K390180644 * tmp40);	       X[9 * iostride] =		   -((K390180644 * tmp31) + (K1_961570560 * tmp40));	       X[5 * iostride] =		   (K1_111140466 * tmp41) - (K1_662939224 * tmp42);	       X[13 * iostride] =		   -((K1_662939224 * tmp41) + (K1_111140466 * tmp42));	  }     }}static const int twiddle_order[] =    { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 };fftw_codelet_desc fftw_hc2hc_backward_16_desc = {     "fftw_hc2hc_backward_16",     (void (*)()) fftw_hc2hc_backward_16,     16,     FFTW_BACKWARD,     FFTW_HC2HC,     366,     15,     twiddle_order,};

⌨️ 快捷键说明

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