📄 hc2cfdft_32.c
字号:
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 + -