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

📄 hc2cfdft_32.c

📁 这是一个完整的使用C语言编写的对数值信号进行FFT变换的程序
💻 C
📖 第 1 页 / 共 4 页
字号:
			 E T16, T1a, T3U, T3W;			 T16 = W[42];			 T1a = W[43];			 T1e = FNMS(T1a, T1d, T16 * T19);			 T4t = FMA(T16, T1d, T1a * T19);			 T3U = W[44];			 T3W = W[45];			 T3Y = FMA(T3U, T3V, T3W * T3X);			 T4L = FNMS(T3W, T3V, T3U * T3X);		    }	       }	       {		    E TQ, T3M, TU, T3K;		    {			 E TO, TP, TS, TT;			 TO = Ip[WS(rs, 7)];			 TP = Im[WS(rs, 7)];			 TQ = TO - TP;			 T3M = TO + TP;			 TS = Rp[WS(rs, 7)];			 TT = Rm[WS(rs, 7)];			 TU = TS + TT;			 T3K = TS - TT;		    }		    {			 E TN, TR, T3J, T3L;			 TN = W[26];			 TR = W[27];			 TV = FNMS(TR, TU, TN * TQ);			 T4q = FMA(TN, TU, TR * TQ);			 T3J = W[28];			 T3L = W[29];			 T3N = FMA(T3J, T3K, T3L * T3M);			 T4I = FNMS(T3L, T3K, T3J * T3M);		    }	       }	       {		    E T10, T3S, T14, T3Q;		    {			 E TY, TZ, T12, T13;			 TY = Ip[WS(rs, 3)];			 TZ = Im[WS(rs, 3)];			 T10 = TY - TZ;			 T3S = TY + TZ;			 T12 = Rp[WS(rs, 3)];			 T13 = Rm[WS(rs, 3)];			 T14 = T12 + T13;			 T3Q = T12 - T13;		    }		    {			 E TX, T11, T3P, T3R;			 TX = W[10];			 T11 = W[11];			 T15 = FNMS(T11, T14, TX * T10);			 T4s = FMA(TX, T14, T11 * T10);			 T3P = W[12];			 T3R = W[13];			 T3T = FMA(T3P, T3Q, T3R * T3S);			 T4K = FNMS(T3R, T3Q, T3P * T3S);		    }	       }	       TW = TM + TV;	       T1f = T15 + T1e;	       T5v = TW - T1f;	       T4r = T4p + T4q;	       T4u = T4s + T4t;	       T5u = T4r - T4u;	       {		    E T3O, T3Z, T74, T75;		    T3O = T3I + T3N;		    T3Z = T3T + T3Y;		    T40 = T3O + T3Z;		    T5G = T3Z - T3O;		    T74 = T4H - T4I;		    T75 = T3Y - T3T;		    T76 = T74 + T75;		    T8k = T74 - T75;	       }	       {		    E T4J, T4M, T6z, T6A;		    T4J = T4H + T4I;		    T4M = T4K + T4L;		    T4N = T4J + T4M;		    T5D = T4J - T4M;		    T6z = T4p - T4q;		    T6A = T15 - T1e;		    T6B = T6z + T6A;		    T89 = T6z - T6A;	       }	       {		    E T6X, T6Y, T6w, T6x;		    T6X = T3N - T3I;		    T6Y = T4K - T4L;		    T6Z = T6X - T6Y;		    T8h = T6X + T6Y;		    T6w = TM - TV;		    T6x = T4s - T4t;		    T6y = T6w - T6x;		    T88 = T6w + T6x;	       }	  }	  {	       E T1h, T5i, T5c, T5m, T5f, T5n, T2s, T58, T42, T4y, T4w, T57, T54, T56, T4h;	       E T5h;	       {		    E TD, T1g, T5a, T5b;		    TD = Tj + TC;		    T1g = TW + T1f;		    T1h = TD + T1g;		    T5i = TD - T1g;		    T5a = T4N - T4G;		    T5b = T3D - T40;		    T5c = T5a + T5b;		    T5m = T5a - T5b;	       }	       {		    E T5d, T5e, T1U, T2r;		    T5d = T3f + T2S;		    T5e = T52 - T4V;		    T5f = T5d - T5e;		    T5n = T5d + T5e;		    T1U = T1A + T1T;		    T2r = T2d + T2q;		    T2s = T1U + T2r;		    T58 = T2r - T1U;	       }	       {		    E T3g, T41, T4o, T4v;		    T3g = T2S - T3f;		    T41 = T3D + T40;		    T42 = T3g - T41;		    T4y = T41 + T3g;		    T4o = T4k + T4n;		    T4v = T4r + T4u;		    T4w = T4o + T4v;		    T57 = T4v - T4o;	       }	       {		    E T4O, T53, T49, T4g;		    T4O = T4G + T4N;		    T53 = T4V + T52;		    T54 = T4O - T53;		    T56 = T4O + T53;		    T49 = T45 + T48;		    T4g = T4c + T4f;		    T4h = T49 + T4g;		    T5h = T49 - T4g;	       }	       {		    E T2t, T55, T4x, T4z;		    T2t = T1h + T2s;		    Ip[0] = KP500000000 * (T2t + T42);		    Im[WS(rs, 15)] = KP500000000 * (T42 - T2t);		    T55 = T4h + T4w;		    Rm[WS(rs, 15)] = KP500000000 * (T55 - T56);		    Rp[0] = KP500000000 * (T55 + T56);		    T4x = T4h - T4w;		    Rm[WS(rs, 7)] = KP500000000 * (T4x - T4y);		    Rp[WS(rs, 8)] = KP500000000 * (T4x + T4y);		    T4z = T2s - T1h;		    Ip[WS(rs, 8)] = KP500000000 * (T4z + T54);		    Im[WS(rs, 7)] = KP500000000 * (T54 - T4z);	       }	       {		    E T59, T5g, T5p, T5q;		    T59 = KP500000000 * (T57 + T58);		    T5g = KP353553390 * (T5c + T5f);		    Ip[WS(rs, 4)] = T59 + T5g;		    Im[WS(rs, 11)] = T5g - T59;		    T5p = KP500000000 * (T5h + T5i);		    T5q = KP353553390 * (T5m + T5n);		    Rm[WS(rs, 11)] = T5p - T5q;		    Rp[WS(rs, 4)] = T5p + T5q;	       }	       {		    E T5j, T5k, T5l, T5o;		    T5j = KP500000000 * (T5h - T5i);		    T5k = KP353553390 * (T5f - T5c);		    Rm[WS(rs, 3)] = T5j - T5k;		    Rp[WS(rs, 12)] = T5j + T5k;		    T5l = KP500000000 * (T58 - T57);		    T5o = KP353553390 * (T5m - T5n);		    Ip[WS(rs, 12)] = T5l + T5o;		    Im[WS(rs, 3)] = T5o - T5l;	       }	  }	  {	       E T5x, T6g, T6a, T6k, T6d, T6l, T5A, T66, T5I, T60, T5T, T6f, T5W, T65, T5P;	       E T61;	       {		    E T5t, T5w, T68, T69;		    T5t = T5r - T5s;		    T5w = T5u + T5v;		    T5x = KP353553390 * (T5t + T5w);		    T6g = KP353553390 * (T5t - T5w);		    T68 = T5D - T5C;		    T69 = T5G - T5F;		    T6a = FMA(KP461939766, T68, KP191341716 * T69);		    T6k = FNMS(KP461939766, T69, KP191341716 * T68);	       }	       {		    E T6b, T6c, T5y, T5z;		    T6b = T5K - T5J;		    T6c = T5N - T5M;		    T6d = FNMS(KP461939766, T6c, KP191341716 * T6b);		    T6l = FMA(KP461939766, T6b, KP191341716 * T6c);		    T5y = T4f - T4c;		    T5z = T2q - T2d;		    T5A = KP500000000 * (T5y + T5z);		    T66 = KP500000000 * (T5z - T5y);	       }	       {		    E T5E, T5H, T5R, T5S;		    T5E = T5C + T5D;		    T5H = T5F + T5G;		    T5I = FMA(KP191341716, T5E, KP461939766 * T5H);		    T60 = FNMS(KP191341716, T5H, KP461939766 * T5E);		    T5R = T45 - T48;		    T5S = T1A - T1T;		    T5T = KP500000000 * (T5R + T5S);		    T6f = KP500000000 * (T5R - T5S);	       }	       {		    E T5U, T5V, T5L, T5O;		    T5U = T5s + T5r;		    T5V = T5u - T5v;		    T5W = KP353553390 * (T5U + T5V);		    T65 = KP353553390 * (T5V - T5U);		    T5L = T5J + T5K;		    T5O = T5M + T5N;		    T5P = FNMS(KP191341716, T5O, KP461939766 * T5L);		    T61 = FMA(KP191341716, T5L, KP461939766 * T5O);	       }	       {		    E T5B, T5Q, T63, T64;		    T5B = T5x + T5A;		    T5Q = T5I + T5P;		    Ip[WS(rs, 2)] = T5B + T5Q;		    Im[WS(rs, 13)] = T5Q - T5B;		    T63 = T5T + T5W;		    T64 = T60 + T61;		    Rm[WS(rs, 13)] = T63 - T64;		    Rp[WS(rs, 2)] = T63 + T64;	       }	       {		    E T5X, T5Y, T5Z, T62;		    T5X = T5T - T5W;		    T5Y = T5P - T5I;		    Rm[WS(rs, 5)] = T5X - T5Y;		    Rp[WS(rs, 10)] = T5X + T5Y;		    T5Z = T5A - T5x;		    T62 = T60 - T61;		    Ip[WS(rs, 10)] = T5Z + T62;		    Im[WS(rs, 5)] = T62 - T5Z;	       }	       {		    E T67, T6e, T6n, T6o;		    T67 = T65 + T66;		    T6e = T6a + T6d;		    Ip[WS(rs, 6)] = T67 + T6e;		    Im[WS(rs, 9)] = T6e - T67;		    T6n = T6f + T6g;		    T6o = T6k + T6l;		    Rm[WS(rs, 9)] = T6n - T6o;		    Rp[WS(rs, 6)] = T6n + T6o;	       }	       {		    E T6h, T6i, T6j, T6m;		    T6h = T6f - T6g;		    T6i = T6d - T6a;		    Rm[WS(rs, 1)] = T6h - T6i;		    Rp[WS(rs, 14)] = T6h + T6i;		    T6j = T66 - T65;		    T6m = T6k - T6l;		    Ip[WS(rs, 14)] = T6j + T6m;		    Im[WS(rs, 1)] = T6m - T6j;	       }	  }	  {	       E T6D, T7W, T6O, T7M, T7C, T7L, T7z, T7V, T7r, T81, T7H, T7T, T78, T80, T7G;	       E T7Q;	       {		    E T6v, T6C, T7v, T7y;		    T6v = FNMS(KP191341716, T6u, KP461939766 * T6r);		    T6C = FMA(KP461939766, T6y, KP191341716 * T6B);		    T6D = T6v + T6C;		    T7W = T6v - T6C;		    {			 E T6K, T6N, T7A, T7B;			 T6K = KP353553390 * (T6G + T6J);			 T6N = KP500000000 * (T6L - T6M);			 T6O = T6K + T6N;			 T7M = T6N - T6K;			 T7A = FMA(KP191341716, T6r, KP461939766 * T6u);			 T7B = FNMS(KP191341716, T6y, KP461939766 * T6B);			 T7C = T7A + T7B;			 T7L = T7B - T7A;		    }		    T7v = KP500000000 * (T7t + T7u);		    T7y = KP353553390 * (T7w + T7x);		    T7z = T7v + T7y;		    T7V = T7v - T7y;		    {			 E T7j, T7R, T7q, T7S, T7f, T7m;			 T7f = KP707106781 * (T7b + T7e);			 T7j = T7f + T7i;			 T7R = T7i - T7f;			 T7m = KP707106781 * (T7k + T7l);			 T7q = T7m + T7p;			 T7S = T7p - T7m;			 T7r = FNMS(KP097545161, T7q, KP490392640 * T7j);			 T81 = FMA(KP415734806, T7R, KP277785116 * T7S);			 T7H = FMA(KP097545161, T7j, KP490392640 * T7q);			 T7T = FNMS(KP415734806, T7S, KP277785116 * T7R);		    }		    {			 E T70, T7O, T77, T7P, T6W, T73;			 T6W = KP707106781 * (T6S + T6V);			 T70 = T6W + T6Z;			 T7O = T6Z - T6W;			 T73 = KP707106781 * (T71 + T72);			 T77 = T73 + T76;			 T7P = T76 - T73;			 T78 = FMA(KP490392640, T70, KP097545161 * T77);			 T80 = FNMS(KP415734806, T7O, KP277785116 * T7P);			 T7G = FNMS(KP097545161, T70, KP490392640 * T77);			 T7Q = FMA(KP277785116, T7O, KP415734806 * T7P);		    }	       }	       {		    E T6P, T7s, T7J, T7K;		    T6P = T6D + T6O;		    T7s = T78 + T7r;		    Ip[WS(rs, 1)] = T6P + T7s;		    Im[WS(rs, 14)] = T7s - T6P;		    T7J = T7z + T7C;		    T7K = T7G + T7H;		    Rm[WS(rs, 14)] = T7J - T7K;		    Rp[WS(rs, 1)] = T7J + T7K;	       }	       {		    E T7D, T7E, T7F, T7I;		    T7D = T7z - T7C;		    T7E = T7r - T78;		    Rm[WS(rs, 6)] = T7D - T7E;		    Rp[WS(rs, 9)] = T7D + T7E;		    T7F = T6O - T6D;		    T7I = T7G - T7H;		    Ip[WS(rs, 9)] = T7F + T7I;		    Im[WS(rs, 6)] = T7I - T7F;	       }	       {		    E T7N, T7U, T83, T84;		    T7N = T7L + T7M;		    T7U = T7Q + T7T;		    Ip[WS(rs, 5)] = T7N + T7U;		    Im[WS(rs, 10)] = T7U - T7N;		    T83 = T7V + T7W;		    T84 = T80 + T81;		    Rm[WS(rs, 10)] = T83 - T84;		    Rp[WS(rs, 5)] = T83 + T84;	       }	       {		    E T7X, T7Y, T7Z, T82;		    T7X = T7V - T7W;		    T7Y = T7T - T7Q;		    Rm[WS(rs, 2)] = T7X - T7Y;		    Rp[WS(rs, 13)] = T7X + T7Y;		    T7Z = T7M - T7L;		    T82 = T80 - T81;		    Ip[WS(rs, 13)] = T7Z + T82;		    Im[WS(rs, 2)] = T82 - T7Z;	       }	  }	  {	       E T8b, T8U, T8e, T8K, T8A, T8J, T8x, T8T, T8t, T8Z, T8F, T8R, T8m, T8Y, T8E;	       E T8O;	       {		    E T87, T8a, T8v, T8w;		    T87 = FNMS(KP461939766, T86, KP191341716 * T85);		    T8a = FMA(KP191341716, T88, KP461939766 * T89);		    T8b = T87 + T8a;		    T8U = T87 - T8a;		    {			 E T8c, T8d, T8y, T8z;			 T8c = KP353553390 * (T7x - T7w);			 T8d = KP500000000 * (T6M + T6L);			 T8e = T8c + T8d;			 T8K = T8d - T8c;			 T8y = FMA(KP461939766, T85, KP191341716 * T86);			 T8z = FNMS(KP461939766, T88, KP191341716 * T89);			 T8A = T8y + T8z;			 T8J = T8z - T8y;		    }		    T8v = KP500000000 * (T7t - T7u);		    T8w = KP353553390 * (T6G - T6J);		    T8x = T8v + T8w;		    T8T = T8v - T8w;		    {			 E T8p, T8P, T8s, T8Q, T8n, T8q;			 T8n = KP707106781 * (T7l - T7k);			 T8p = T8n + T8o;			 T8P = T8o - T8n;			 T8q = KP707106781 * (T7b - T7e);			 T8s = T8q + T8r;			 T8Q = T8r - T8q;			 T8t = FNMS(KP277785116, T8s, KP415734806 * T8p);			 T8Z = FMA(KP490392640, T8P, KP097545161 * T8Q);			 T8F = FMA(KP277785116, T8p, KP415734806 * T8s);			 T8R = FNMS(KP490392640, T8Q, KP097545161 * T8P);		    }		    {			 E T8i, T8M, T8l, T8N, T8g, T8j;			 T8g = KP707106781 * (T72 - T71);			 T8i = T8g + T8h;			 T8M = T8h - T8g;			 T8j = KP707106781 * (T6S - T6V);			 T8l = T8j + T8k;			 T8N = T8k - T8j;			 T8m = FMA(KP415734806, T8i, KP277785116 * T8l);			 T8Y = FNMS(KP490392640, T8M, KP097545161 * T8N);			 T8E = FNMS(KP277785116, T8i, KP415734806 * T8l);			 T8O = FMA(KP097545161, T8M, KP490392640 * T8N);		    }	       }	       {		    E T8f, T8u, T8H, T8I;		    T8f = T8b + T8e;		    T8u = T8m + T8t;		    Ip[WS(rs, 3)] = T8f + T8u;		    Im[WS(rs, 12)] = T8u - T8f;		    T8H = T8x + T8A;		    T8I = T8E + T8F;		    Rm[WS(rs, 12)] = T8H - T8I;		    Rp[WS(rs, 3)] = T8H + T8I;	       }	       {		    E T8B, T8C, T8D, T8G;		    T8B = T8x - T8A;		    T8C = T8t - T8m;		    Rm[WS(rs, 4)] = T8B - T8C;		    Rp[WS(rs, 11)] = T8B + T8C;		    T8D = T8e - T8b;		    T8G = T8E - T8F;		    Ip[WS(rs, 11)] = T8D + T8G;		    Im[WS(rs, 4)] = T8G - T8D;	       }	       {		    E T8L, T8S, T91, T92;		    T8L = T8J + T8K;		    T8S = T8O + T8R;		    Ip[WS(rs, 7)] = T8L + T8S;		    Im[WS(rs, 8)] = T8S - T8L;		    T91 = T8T + T8U;		    T92 = T8Y + T8Z;		    Rm[WS(rs, 8)] = T91 - T92;		    Rp[WS(rs, 7)] = T91 + T92;	       }	       {		    E T8V, T8W, T8X, T90;		    T8V = T8T - T8U;		    T8W = T8R - T8O;		    Rm[0] = T8V - T8W;		    Rp[WS(rs, 15)] = T8V + T8W;		    T8X = T8K - T8J;		    T90 = T8Y - T8Z;		    Ip[WS(rs, 15)] = T8X + T90;		    Im[0] = T90 - T8X;	       }	  }     }}static const tw_instr twinstr[] = {     {TW_FULL, 1, 32},     {TW_NEXT, 1, 0}};static const hc2c_desc desc = { 32, "hc2cfdft_32", twinstr, &GENUS, {404, 134, 94, 0} };void X(codelet_hc2cfdft_32) (planner *p) {     X(khc2c_register) (p, hc2cfdft_32, &desc, HC2C_VIA_DFT);}#endif				/* HAVE_FMA */

⌨️ 快捷键说明

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