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

📄 fhb_16.c

📁 完整的3D 模型检索程序
💻 C
📖 第 1 页 / 共 2 页
字号:
/* * Copyright (c) 1997-1999 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 Sun Nov  7 20:45:16 EST 1999 */#include "fftw-int.h"#include "fftw.h"/* Generated by: ./genfft -magic-alignment-check -magic-twiddle-load-all -magic-variables 4 -magic-loopi -hc2hc-backward 16 *//* * This function contains 298 FP additions, 134 FP multiplications, * (or, 244 additions, 80 multiplications, 54 fused multiply/add), * 49 stack variables, and 128 memory accesses */static const fftw_real K1_961570560 = FFTW_KONST(+1.961570560806460898252364472268478073947867462);static const fftw_real K390180644 = FFTW_KONST(+0.390180644032256535696569736954044481855383236);static const fftw_real K1_111140466 = FFTW_KONST(+1.111140466039204449485661627897065748749874382);static const fftw_real K1_662939224 = FFTW_KONST(+1.662939224605090474157576755235811513477121624);static const fftw_real K707106781 = FFTW_KONST(+0.707106781186547524400844362104849039284835938);static const fftw_real K382683432 = FFTW_KONST(+0.382683432365089771728459984030398866761344562);static const fftw_real K923879532 = FFTW_KONST(+0.923879532511286756128183189396788286822416626);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);/* * Generator Id's :  * $Id: exprdag.ml,v 1.41 1999/05/26 15:44:14 fftw Exp $ * $Id: fft.ml,v 1.43 1999/05/17 19:44:18 fftw Exp $ * $Id: to_c.ml,v 1.25 1999/10/26 21:41:32 stevenj Exp $ */void fftw_hc2hc_backward_16(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 + (16 * iostride);     {	  fftw_real tmp279;	  fftw_real tmp324;	  fftw_real tmp312;	  fftw_real tmp299;	  fftw_real tmp276;	  fftw_real tmp296;	  fftw_real tmp309;	  fftw_real tmp323;	  fftw_real tmp283;	  fftw_real tmp291;	  fftw_real tmp286;	  fftw_real tmp294;	  fftw_real tmp301;	  fftw_real tmp319;	  fftw_real tmp327;	  fftw_real tmp326;	  fftw_real tmp316;	  fftw_real tmp302;	  ASSERT_ALIGNED_DOUBLE;	  {	       fftw_real tmp277;	       fftw_real tmp278;	       fftw_real tmp310;	       fftw_real tmp297;	       fftw_real tmp298;	       fftw_real tmp311;	       ASSERT_ALIGNED_DOUBLE;	       tmp277 = X[2 * iostride];	       tmp278 = X[6 * iostride];	       tmp310 = tmp277 - tmp278;	       tmp297 = Y[-2 * iostride];	       tmp298 = Y[-6 * iostride];	       tmp311 = tmp298 + tmp297;	       tmp279 = K2_000000000 * (tmp277 + tmp278);	       tmp324 = K1_414213562 * (tmp310 + tmp311);	       tmp312 = K1_414213562 * (tmp310 - tmp311);	       tmp299 = K2_000000000 * (tmp297 - tmp298);	  }	  {	       fftw_real tmp275;	       fftw_real tmp308;	       fftw_real tmp273;	       fftw_real tmp306;	       ASSERT_ALIGNED_DOUBLE;	       {		    fftw_real tmp274;		    fftw_real tmp307;		    fftw_real tmp271;		    fftw_real tmp272;		    ASSERT_ALIGNED_DOUBLE;		    tmp274 = X[4 * iostride];		    tmp275 = K2_000000000 * tmp274;		    tmp307 = Y[-4 * iostride];		    tmp308 = K2_000000000 * tmp307;		    tmp271 = X[0];		    tmp272 = X[8 * iostride];		    tmp273 = tmp271 + tmp272;		    tmp306 = tmp271 - tmp272;	       }	       tmp276 = tmp273 + tmp275;	       tmp296 = tmp273 - tmp275;	       tmp309 = tmp306 - tmp308;	       tmp323 = tmp306 + tmp308;	  }	  {	       fftw_real tmp314;	       fftw_real tmp318;	       fftw_real tmp317;	       fftw_real tmp315;	       ASSERT_ALIGNED_DOUBLE;	       {		    fftw_real tmp281;		    fftw_real tmp282;		    fftw_real tmp289;		    fftw_real tmp290;		    ASSERT_ALIGNED_DOUBLE;		    tmp281 = X[iostride];		    tmp282 = X[7 * iostride];		    tmp283 = tmp281 + tmp282;		    tmp314 = tmp281 - tmp282;		    tmp289 = Y[-iostride];		    tmp290 = Y[-7 * iostride];		    tmp291 = tmp289 - tmp290;		    tmp318 = tmp289 + tmp290;	       }	       {		    fftw_real tmp284;		    fftw_real tmp285;		    fftw_real tmp292;		    fftw_real tmp293;		    ASSERT_ALIGNED_DOUBLE;		    tmp284 = X[3 * iostride];		    tmp285 = X[5 * iostride];		    tmp286 = tmp284 + tmp285;		    tmp317 = tmp285 - tmp284;		    tmp292 = Y[-3 * iostride];		    tmp293 = Y[-5 * iostride];		    tmp294 = tmp292 - tmp293;		    tmp315 = tmp293 + tmp292;	       }	       tmp301 = tmp283 - tmp286;	       tmp319 = tmp317 + tmp318;	       tmp327 = tmp318 - tmp317;	       tmp326 = tmp314 + tmp315;	       tmp316 = tmp314 - tmp315;	       tmp302 = tmp294 + tmp291;	  }	  {	       fftw_real tmp280;	       fftw_real tmp287;	       fftw_real tmp288;	       fftw_real tmp295;	       ASSERT_ALIGNED_DOUBLE;	       tmp280 = tmp276 + tmp279;	       tmp287 = K2_000000000 * (tmp283 + tmp286);	       X[8 * iostride] = tmp280 - tmp287;	       X[0] = tmp280 + tmp287;	       tmp288 = tmp276 - tmp279;	       tmp295 = K2_000000000 * (tmp291 - tmp294);	       X[12 * iostride] = tmp288 + tmp295;	       X[4 * iostride] = tmp288 - tmp295;	  }	  {	       fftw_real tmp300;	       fftw_real tmp303;	       fftw_real tmp304;	       fftw_real tmp305;	       ASSERT_ALIGNED_DOUBLE;	       tmp300 = tmp296 - tmp299;	       tmp303 = K1_414213562 * (tmp301 - tmp302);	       X[10 * iostride] = tmp300 - tmp303;	       X[2 * iostride] = tmp300 + tmp303;	       tmp304 = tmp296 + tmp299;	       tmp305 = K1_414213562 * (tmp301 + tmp302);	       X[6 * iostride] = tmp304 - tmp305;	       X[14 * iostride] = tmp304 + tmp305;	  }	  {	       fftw_real tmp313;	       fftw_real tmp320;	       fftw_real tmp321;	       fftw_real tmp322;	       ASSERT_ALIGNED_DOUBLE;	       tmp313 = tmp309 + tmp312;	       tmp320 = (K1_847759065 * tmp316) - (K765366864 * tmp319);	       X[9 * iostride] = tmp313 - tmp320;	       X[iostride] = tmp313 + tmp320;	       tmp321 = tmp309 - tmp312;	       tmp322 = (K765366864 * tmp316) + (K1_847759065 * tmp319);	       X[5 * iostride] = tmp321 - tmp322;	       X[13 * iostride] = tmp321 + tmp322;	  }	  {	       fftw_real tmp325;	       fftw_real tmp328;	       fftw_real tmp329;	       fftw_real tmp330;	       ASSERT_ALIGNED_DOUBLE;	       tmp325 = tmp323 - tmp324;	       tmp328 = (K765366864 * tmp326) - (K1_847759065 * tmp327);	       X[11 * iostride] = tmp325 - tmp328;	       X[3 * iostride] = tmp325 + tmp328;	       tmp329 = tmp323 + tmp324;	       tmp330 = (K1_847759065 * tmp326) + (K765366864 * tmp327);	       X[7 * iostride] = tmp329 - tmp330;	       X[15 * iostride] = tmp329 + tmp330;	  }     }     X = X + dist;     Y = Y - dist;     for (i = 2; i < m; i = i + 2, X = X + dist, Y = Y - dist, W = W + 15) {	  fftw_real tmp73;	  fftw_real tmp98;	  fftw_real tmp135;	  fftw_real tmp160;	  fftw_real tmp182;	  fftw_real tmp236;	  fftw_real tmp210;	  fftw_real tmp248;	  fftw_real tmp95;	  fftw_real tmp124;	  fftw_real tmp138;	  fftw_real tmp164;	  fftw_real tmp197;	  fftw_real tmp216;	  fftw_real tmp244;	  fftw_real tmp252;	  fftw_real tmp80;	  fftw_real tmp128;	  fftw_real tmp105;	  fftw_real tmp161;	  fftw_real tmp213;	  fftw_real tmp237;	  fftw_real tmp189;	  fftw_real tmp249;	  fftw_real tmp88;	  fftw_real tmp115;	  fftw_real tmp137;	  fftw_real tmp163;	  fftw_real tmp204;	  fftw_real tmp215;	  fftw_real tmp241;	  fftw_real tmp251;	  ASSERT_ALIGNED_DOUBLE;	  {	       fftw_real tmp69;	       fftw_real tmp180;	       fftw_real tmp131;	       fftw_real tmp209;	       fftw_real tmp72;	       fftw_real tmp208;	       fftw_real tmp134;	       fftw_real tmp181;	       ASSERT_ALIGNED_DOUBLE;	       {		    fftw_real tmp67;		    fftw_real tmp68;		    fftw_real tmp129;		    fftw_real tmp130;		    ASSERT_ALIGNED_DOUBLE;		    tmp67 = X[0];		    tmp68 = Y[-8 * iostride];		    tmp69 = tmp67 + tmp68;		    tmp180 = tmp67 - tmp68;		    tmp129 = Y[0];		    tmp130 = X[8 * iostride];		    tmp131 = tmp129 - tmp130;		    tmp209 = tmp129 + tmp130;	       }	       {		    fftw_real tmp70;		    fftw_real tmp71;		    fftw_real tmp132;		    fftw_real tmp133;		    ASSERT_ALIGNED_DOUBLE;		    tmp70 = X[4 * iostride];		    tmp71 = Y[-12 * iostride];		    tmp72 = tmp70 + tmp71;		    tmp208 = tmp70 - tmp71;		    tmp132 = Y[-4 * iostride];		    tmp133 = X[12 * iostride];		    tmp134 = tmp132 - tmp133;		    tmp181 = tmp132 + tmp133;	       }	       tmp73 = tmp69 + tmp72;	       tmp98 = tmp69 - tmp72;	       tmp135 = tmp131 - tmp134;	       tmp160 = tmp131 + tmp134;	       tmp182 = tmp180 - tmp181;	       tmp236 = tmp180 + tmp181;	       tmp210 = tmp208 + tmp209;	       tmp248 = tmp209 - tmp208;	  }	  {	       fftw_real tmp91;	       fftw_real tmp194;	       fftw_real tmp119;	       fftw_real tmp192;	       fftw_real tmp94;	       fftw_real tmp191;	       fftw_real tmp122;	       fftw_real tmp195;	       fftw_real tmp116;	       fftw_real tmp123;	       ASSERT_ALIGNED_DOUBLE;	       {		    fftw_real tmp89;		    fftw_real tmp90;		    fftw_real tmp117;		    fftw_real tmp118;		    ASSERT_ALIGNED_DOUBLE;		    tmp89 = Y[-15 * iostride];		    tmp90 = X[7 * iostride];		    tmp91 = tmp89 + tmp90;		    tmp194 = tmp89 - tmp90;		    tmp117 = Y[-7 * iostride];		    tmp118 = X[15 * iostride];		    tmp119 = tmp117 - tmp118;		    tmp192 = tmp117 + tmp118;	       }	       {		    fftw_real tmp92;		    fftw_real tmp93;		    fftw_real tmp120;		    fftw_real tmp121;		    ASSERT_ALIGNED_DOUBLE;		    tmp92 = X[3 * iostride];		    tmp93 = Y[-11 * iostride];		    tmp94 = tmp92 + tmp93;		    tmp191 = tmp92 - tmp93;		    tmp120 = Y[-3 * iostride];		    tmp121 = X[11 * iostride];		    tmp122 = tmp120 - tmp121;		    tmp195 = tmp120 + tmp121;	       }	       tmp95 = tmp91 + tmp94;	       tmp116 = tmp91 - tmp94;	       tmp123 = tmp119 - tmp122;	       tmp124 = tmp116 + tmp123;	       tmp138 = tmp123 - tmp116;	       tmp164 = tmp119 + tmp122;	       {		    fftw_real tmp193;		    fftw_real tmp196;		    fftw_real tmp242;		    fftw_real tmp243;		    ASSERT_ALIGNED_DOUBLE;		    tmp193 = tmp191 - tmp192;		    tmp196 = tmp194 - tmp195;		    tmp197 = (K923879532 * tmp193) - (K382683432 * tmp196);		    tmp216 = (K382683432 * tmp193) + (K923879532 * tmp196);		    tmp242 = tmp194 + tmp195;		    tmp243 = tmp191 + tmp192;		    tmp244 = (K382683432 * tmp242) - (K923879532 * tmp243);		    tmp252 = (K382683432 * tmp243) + (K923879532 * tmp242);	       }	  }	  {	       fftw_real tmp76;	       fftw_real tmp183;	       fftw_real tmp104;	       fftw_real tmp184;	       fftw_real tmp79;	       fftw_real tmp186;	       fftw_real tmp101;	       fftw_real tmp187;	       ASSERT_ALIGNED_DOUBLE;	       {		    fftw_real tmp74;		    fftw_real tmp75;		    fftw_real tmp102;		    fftw_real tmp103;		    ASSERT_ALIGNED_DOUBLE;		    tmp74 = X[2 * iostride];		    tmp75 = Y[-10 * iostride];		    tmp76 = tmp74 + tmp75;		    tmp183 = tmp74 - tmp75;		    tmp102 = Y[-2 * iostride];		    tmp103 = X[10 * iostride];		    tmp104 = tmp102 - tmp103;		    tmp184 = tmp102 + tmp103;	       }	       {		    fftw_real tmp77;		    fftw_real tmp78;		    fftw_real tmp99;		    fftw_real tmp100;		    ASSERT_ALIGNED_DOUBLE;		    tmp77 = Y[-14 * iostride];		    tmp78 = X[6 * iostride];		    tmp79 = tmp77 + tmp78;		    tmp186 = tmp77 - tmp78;		    tmp99 = Y[-6 * iostride];		    tmp100 = X[14 * iostride];		    tmp101 = tmp99 - tmp100;		    tmp187 = tmp99 + tmp100;	       }	       tmp80 = tmp76 + tmp79;	       tmp128 = tmp76 - tmp79;	       tmp105 = tmp101 - tmp104;	       tmp161 = tmp104 + tmp101;	       {		    fftw_real tmp211;		    fftw_real tmp212;		    fftw_real tmp185;		    fftw_real tmp188;		    ASSERT_ALIGNED_DOUBLE;		    tmp211 = tmp183 + tmp184;		    tmp212 = tmp186 + tmp187;		    tmp213 = K707106781 * (tmp211 - tmp212);		    tmp237 = K707106781 * (tmp211 + tmp212);		    tmp185 = tmp183 - tmp184;		    tmp188 = tmp186 - tmp187;		    tmp189 = K707106781 * (tmp185 + tmp188);		    tmp249 = K707106781 * (tmp185 - tmp188);	       }	  }	  {	       fftw_real tmp84;	       fftw_real tmp201;	       fftw_real tmp110;	       fftw_real tmp199;	       fftw_real tmp87;	       fftw_real tmp198;	       fftw_real tmp113;	       fftw_real tmp202;	       fftw_real tmp107;	       fftw_real tmp114;	       ASSERT_ALIGNED_DOUBLE;	       {		    fftw_real tmp82;		    fftw_real tmp83;		    fftw_real tmp108;		    fftw_real tmp109;		    ASSERT_ALIGNED_DOUBLE;		    tmp82 = X[iostride];		    tmp83 = Y[-9 * iostride];		    tmp84 = tmp82 + tmp83;		    tmp201 = tmp82 - tmp83;		    tmp108 = Y[-iostride];		    tmp109 = X[9 * iostride];		    tmp110 = tmp108 - tmp109;		    tmp199 = tmp108 + tmp109;	       }	       {		    fftw_real tmp85;		    fftw_real tmp86;		    fftw_real tmp111;		    fftw_real tmp112;		    ASSERT_ALIGNED_DOUBLE;		    tmp85 = X[5 * iostride];		    tmp86 = Y[-13 * iostride];		    tmp87 = tmp85 + tmp86;		    tmp198 = tmp85 - tmp86;		    tmp111 = Y[-5 * iostride];		    tmp112 = X[13 * iostride];		    tmp113 = tmp111 - tmp112;		    tmp202 = tmp111 + tmp112;	       }	       tmp88 = tmp84 + tmp87;	       tmp107 = tmp84 - tmp87;	       tmp114 = tmp110 - tmp113;	       tmp115 = tmp107 - tmp114;	       tmp137 = tmp107 + tmp114;	       tmp163 = tmp110 + tmp113;	       {		    fftw_real tmp200;		    fftw_real tmp203;		    fftw_real tmp239;		    fftw_real tmp240;

⌨️ 快捷键说明

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