📄 q1_8.c
字号:
/* * Copyright (c) 2003 Matteo Frigo * Copyright (c) 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 Sat Jul 5 21:39:14 EDT 2003 */#include "codelet-dft.h"/* Generated by: /homee/stevenj/cvs/fftw3.0.1/genfft/gen_twidsq -compact -variables 4 -reload-twiddle -dif -n 8 -name q1_8 -include q.h *//* * This function contains 528 FP additions, 256 FP multiplications, * (or, 416 additions, 144 multiplications, 112 fused multiply/add), * 142 stack variables, and 256 memory accesses *//* * Generator Id's : * $Id: algsimp.ml,v 1.7 2003/03/15 20:29:42 stevenj Exp $ * $Id: fft.ml,v 1.2 2003/03/15 20:29:42 stevenj Exp $ * $Id: gen_twidsq.ml,v 1.14 2003/03/15 20:29:42 stevenj Exp $ */#include "q.h"static const R *q1_8(R *rio, R *iio, const R *W, stride is, stride vs, int m, int dist){ DK(KP707106781, +0.707106781186547524400844362104849039284835938); int i; for (i = m; i > 0; i = i - 1, rio = rio + dist, iio = iio + dist, W = W + 14) { E T7, T14, T1g, Tk, TC, TQ, T10, TM, T1w, T2p, T2z, T1H, T1M, T1W, T2j; E T1V, T7R, T8O, T90, T84, T8m, T8A, T8K, T8w, T9g, Ta9, Taj, T9r, T9w, T9G; E Ta3, T9F, Te, T17, T1h, Tp, Tu, TE, T11, TD, T1p, T2m, T2y, T1C, T1U; E T28, T2i, T24, T7Y, T8R, T91, T89, T8e, T8o, T8L, T8n, T99, Ta6, Tai, T9m; E T9E, T9S, Ta2, T9O, T2H, T3E, T3Q, T2U, T3c, T3q, T3A, T3m, T46, T4Z, T59; E T4h, T4m, T4w, T4T, T4v, T5h, T6e, T6q, T5u, T5M, T60, T6a, T5W, T6G, T7z; E T7J, T6R, T6W, T76, T7t, T75, T2O, T3H, T3R, T2Z, T34, T3e, T3B, T3d, T3Z; E T4W, T58, T4c, T4u, T4I, T4S, T4E, T5o, T6h, T6r, T5z, T5E, T5O, T6b, T5N; E T6z, T7w, T7I, T6M, T74, T7i, T7s, T7e; { E T3, Ty, Tj, TY, T6, Tg, TB, TZ; { E T1, T2, Th, Ti; T1 = rio[0]; T2 = rio[WS(is, 4)]; T3 = T1 + T2; Ty = T1 - T2; Th = iio[0]; Ti = iio[WS(is, 4)]; Tj = Th - Ti; TY = Th + Ti; } { E T4, T5, Tz, TA; T4 = rio[WS(is, 2)]; T5 = rio[WS(is, 6)]; T6 = T4 + T5; Tg = T4 - T5; Tz = iio[WS(is, 2)]; TA = iio[WS(is, 6)]; TB = Tz - TA; TZ = Tz + TA; } T7 = T3 + T6; T14 = T3 - T6; T1g = TY + TZ; Tk = Tg + Tj; TC = Ty - TB; TQ = Tj - Tg; T10 = TY - TZ; TM = Ty + TB; } { E T1s, T1I, T1L, T2n, T1v, T1D, T1G, T2o; { E T1q, T1r, T1J, T1K; T1q = rio[WS(vs, 1) + WS(is, 1)]; T1r = rio[WS(vs, 1) + WS(is, 5)]; T1s = T1q + T1r; T1I = T1q - T1r; T1J = iio[WS(vs, 1) + WS(is, 1)]; T1K = iio[WS(vs, 1) + WS(is, 5)]; T1L = T1J - T1K; T2n = T1J + T1K; } { E T1t, T1u, T1E, T1F; T1t = rio[WS(vs, 1) + WS(is, 7)]; T1u = rio[WS(vs, 1) + WS(is, 3)]; T1v = T1t + T1u; T1D = T1t - T1u; T1E = iio[WS(vs, 1) + WS(is, 7)]; T1F = iio[WS(vs, 1) + WS(is, 3)]; T1G = T1E - T1F; T2o = T1E + T1F; } T1w = T1s + T1v; T2p = T2n - T2o; T2z = T2n + T2o; T1H = T1D - T1G; T1M = T1I + T1L; T1W = T1D + T1G; T2j = T1v - T1s; T1V = T1L - T1I; } { E T7N, T8i, T83, T8I, T7Q, T80, T8l, T8J; { E T7L, T7M, T81, T82; T7L = rio[WS(vs, 6)]; T7M = rio[WS(vs, 6) + WS(is, 4)]; T7N = T7L + T7M; T8i = T7L - T7M; T81 = iio[WS(vs, 6)]; T82 = iio[WS(vs, 6) + WS(is, 4)]; T83 = T81 - T82; T8I = T81 + T82; } { E T7O, T7P, T8j, T8k; T7O = rio[WS(vs, 6) + WS(is, 2)]; T7P = rio[WS(vs, 6) + WS(is, 6)]; T7Q = T7O + T7P; T80 = T7O - T7P; T8j = iio[WS(vs, 6) + WS(is, 2)]; T8k = iio[WS(vs, 6) + WS(is, 6)]; T8l = T8j - T8k; T8J = T8j + T8k; } T7R = T7N + T7Q; T8O = T7N - T7Q; T90 = T8I + T8J; T84 = T80 + T83; T8m = T8i - T8l; T8A = T83 - T80; T8K = T8I - T8J; T8w = T8i + T8l; } { E T9c, T9s, T9v, Ta7, T9f, T9n, T9q, Ta8; { E T9a, T9b, T9t, T9u; T9a = rio[WS(vs, 7) + WS(is, 1)]; T9b = rio[WS(vs, 7) + WS(is, 5)]; T9c = T9a + T9b; T9s = T9a - T9b; T9t = iio[WS(vs, 7) + WS(is, 1)]; T9u = iio[WS(vs, 7) + WS(is, 5)]; T9v = T9t - T9u; Ta7 = T9t + T9u; } { E T9d, T9e, T9o, T9p; T9d = rio[WS(vs, 7) + WS(is, 7)]; T9e = rio[WS(vs, 7) + WS(is, 3)]; T9f = T9d + T9e; T9n = T9d - T9e; T9o = iio[WS(vs, 7) + WS(is, 7)]; T9p = iio[WS(vs, 7) + WS(is, 3)]; T9q = T9o - T9p; Ta8 = T9o + T9p; } T9g = T9c + T9f; Ta9 = Ta7 - Ta8; Taj = Ta7 + Ta8; T9r = T9n - T9q; T9w = T9s + T9v; T9G = T9n + T9q; Ta3 = T9f - T9c; T9F = T9v - T9s; } { E Ta, Tq, Tt, T15, Td, Tl, To, T16; { E T8, T9, Tr, Ts; T8 = rio[WS(is, 1)]; T9 = rio[WS(is, 5)]; Ta = T8 + T9; Tq = T8 - T9; Tr = iio[WS(is, 1)]; Ts = iio[WS(is, 5)]; Tt = Tr - Ts; T15 = Tr + Ts; } { E Tb, Tc, Tm, Tn; Tb = rio[WS(is, 7)]; Tc = rio[WS(is, 3)]; Td = Tb + Tc; Tl = Tb - Tc; Tm = iio[WS(is, 7)]; Tn = iio[WS(is, 3)]; To = Tm - Tn; T16 = Tm + Tn; } Te = Ta + Td; T17 = T15 - T16; T1h = T15 + T16; Tp = Tl - To; Tu = Tq + Tt; TE = Tl + To; T11 = Td - Ta; TD = Tt - Tq; } { E T1l, T1Q, T1B, T2g, T1o, T1y, T1T, T2h; { E T1j, T1k, T1z, T1A; T1j = rio[WS(vs, 1)]; T1k = rio[WS(vs, 1) + WS(is, 4)]; T1l = T1j + T1k; T1Q = T1j - T1k; T1z = iio[WS(vs, 1)]; T1A = iio[WS(vs, 1) + WS(is, 4)]; T1B = T1z - T1A; T2g = T1z + T1A; } { E T1m, T1n, T1R, T1S; T1m = rio[WS(vs, 1) + WS(is, 2)]; T1n = rio[WS(vs, 1) + WS(is, 6)]; T1o = T1m + T1n; T1y = T1m - T1n; T1R = iio[WS(vs, 1) + WS(is, 2)]; T1S = iio[WS(vs, 1) + WS(is, 6)]; T1T = T1R - T1S; T2h = T1R + T1S; } T1p = T1l + T1o; T2m = T1l - T1o; T2y = T2g + T2h; T1C = T1y + T1B; T1U = T1Q - T1T; T28 = T1B - T1y; T2i = T2g - T2h; T24 = T1Q + T1T; } { E T7U, T8a, T8d, T8P, T7X, T85, T88, T8Q; { E T7S, T7T, T8b, T8c; T7S = rio[WS(vs, 6) + WS(is, 1)]; T7T = rio[WS(vs, 6) + WS(is, 5)]; T7U = T7S + T7T; T8a = T7S - T7T; T8b = iio[WS(vs, 6) + WS(is, 1)]; T8c = iio[WS(vs, 6) + WS(is, 5)]; T8d = T8b - T8c; T8P = T8b + T8c; } { E T7V, T7W, T86, T87; T7V = rio[WS(vs, 6) + WS(is, 7)]; T7W = rio[WS(vs, 6) + WS(is, 3)]; T7X = T7V + T7W; T85 = T7V - T7W; T86 = iio[WS(vs, 6) + WS(is, 7)]; T87 = iio[WS(vs, 6) + WS(is, 3)]; T88 = T86 - T87; T8Q = T86 + T87; } T7Y = T7U + T7X; T8R = T8P - T8Q; T91 = T8P + T8Q; T89 = T85 - T88; T8e = T8a + T8d; T8o = T85 + T88; T8L = T7X - T7U; T8n = T8d - T8a; } { E T95, T9A, T9l, Ta0, T98, T9i, T9D, Ta1; { E T93, T94, T9j, T9k; T93 = rio[WS(vs, 7)]; T94 = rio[WS(vs, 7) + WS(is, 4)]; T95 = T93 + T94; T9A = T93 - T94; T9j = iio[WS(vs, 7)]; T9k = iio[WS(vs, 7) + WS(is, 4)]; T9l = T9j - T9k; Ta0 = T9j + T9k; } { E T96, T97, T9B, T9C; T96 = rio[WS(vs, 7) + WS(is, 2)]; T97 = rio[WS(vs, 7) + WS(is, 6)]; T98 = T96 + T97; T9i = T96 - T97; T9B = iio[WS(vs, 7) + WS(is, 2)]; T9C = iio[WS(vs, 7) + WS(is, 6)]; T9D = T9B - T9C; Ta1 = T9B + T9C; } T99 = T95 + T98; Ta6 = T95 - T98; Tai = Ta0 + Ta1; T9m = T9i + T9l; T9E = T9A - T9D; T9S = T9l - T9i; Ta2 = Ta0 - Ta1; T9O = T9A + T9D; } { E T2D, T38, T2T, T3y, T2G, T2Q, T3b, T3z; { E T2B, T2C, T2R, T2S; T2B = rio[WS(vs, 2)]; T2C = rio[WS(vs, 2) + WS(is, 4)]; T2D = T2B + T2C; T38 = T2B - T2C; T2R = iio[WS(vs, 2)]; T2S = iio[WS(vs, 2) + WS(is, 4)]; T2T = T2R - T2S; T3y = T2R + T2S; } { E T2E, T2F, T39, T3a; T2E = rio[WS(vs, 2) + WS(is, 2)]; T2F = rio[WS(vs, 2) + WS(is, 6)]; T2G = T2E + T2F; T2Q = T2E - T2F; T39 = iio[WS(vs, 2) + WS(is, 2)]; T3a = iio[WS(vs, 2) + WS(is, 6)]; T3b = T39 - T3a; T3z = T39 + T3a; } T2H = T2D + T2G; T3E = T2D - T2G; T3Q = T3y + T3z; T2U = T2Q + T2T; T3c = T38 - T3b; T3q = T2T - T2Q; T3A = T3y - T3z; T3m = T38 + T3b; } { E T42, T4i, T4l, T4X, T45, T4d, T4g, T4Y; { E T40, T41, T4j, T4k; T40 = rio[WS(vs, 3) + WS(is, 1)]; T41 = rio[WS(vs, 3) + WS(is, 5)]; T42 = T40 + T41; T4i = T40 - T41; T4j = iio[WS(vs, 3) + WS(is, 1)]; T4k = iio[WS(vs, 3) + WS(is, 5)]; T4l = T4j - T4k; T4X = T4j + T4k; } { E T43, T44, T4e, T4f; T43 = rio[WS(vs, 3) + WS(is, 7)]; T44 = rio[WS(vs, 3) + WS(is, 3)]; T45 = T43 + T44; T4d = T43 - T44; T4e = iio[WS(vs, 3) + WS(is, 7)]; T4f = iio[WS(vs, 3) + WS(is, 3)]; T4g = T4e - T4f; T4Y = T4e + T4f; } T46 = T42 + T45; T4Z = T4X - T4Y; T59 = T4X + T4Y; T4h = T4d - T4g; T4m = T4i + T4l; T4w = T4d + T4g; T4T = T45 - T42; T4v = T4l - T4i;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -