📄 q1_6.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 6 -name q1_6 -include q.h *//* * This function contains 276 FP additions, 168 FP multiplications, * (or, 192 additions, 84 multiplications, 84 fused multiply/add), * 85 stack variables, and 144 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_6(R *rio, R *iio, const R *W, stride is, stride vs, int m, int dist){ DK(KP500000000, +0.500000000000000000000000000000000000000000000); DK(KP866025403, +0.866025403784438646763723170752936183471402627); int i; for (i = m; i > 0; i = i - 1, rio = rio + dist, iio = iio + dist, W = W + 10) { E T3, Tc, Tt, TM, TX, T16, T1n, T1G, T2h, T2A, T1R, T20, T2L, T2U, T3b; E T3u, T3F, T3O, T45, T4o, T4Z, T5i, T4z, T4I, Ta, TP, Tf, Tq, Tn, TN; E Tu, TJ, T14, T1J, T19, T1k, T1h, T1H, T1o, T1D, T2b, T2B, T2i, T2x, T1Y; E T2D, T23, T2e, T2S, T3x, T2X, T38, T35, T3v, T3c, T3r, T3M, T4r, T3R, T42; E T3Z, T4p, T46, T4l, T4T, T5j, T50, T5f, T4G, T5l, T4L, T4W; { E T1, T2, T1l, T1m; T1 = rio[0]; T2 = rio[WS(is, 3)]; T3 = T1 + T2; Tc = T1 - T2; { E Tr, Ts, TV, TW; Tr = iio[0]; Ts = iio[WS(is, 3)]; Tt = Tr - Ts; TM = Tr + Ts; TV = rio[WS(vs, 1)]; TW = rio[WS(vs, 1) + WS(is, 3)]; TX = TV + TW; T16 = TV - TW; } T1l = iio[WS(vs, 1)]; T1m = iio[WS(vs, 1) + WS(is, 3)]; T1n = T1l - T1m; T1G = T1l + T1m; { E T2f, T2g, T1P, T1Q; T2f = iio[WS(vs, 2)]; T2g = iio[WS(vs, 2) + WS(is, 3)]; T2h = T2f - T2g; T2A = T2f + T2g; T1P = rio[WS(vs, 2)]; T1Q = rio[WS(vs, 2) + WS(is, 3)]; T1R = T1P + T1Q; T20 = T1P - T1Q; } } { E T2J, T2K, T43, T44; T2J = rio[WS(vs, 3)]; T2K = rio[WS(vs, 3) + WS(is, 3)]; T2L = T2J + T2K; T2U = T2J - T2K; { E T39, T3a, T3D, T3E; T39 = iio[WS(vs, 3)]; T3a = iio[WS(vs, 3) + WS(is, 3)]; T3b = T39 - T3a; T3u = T39 + T3a; T3D = rio[WS(vs, 4)]; T3E = rio[WS(vs, 4) + WS(is, 3)]; T3F = T3D + T3E; T3O = T3D - T3E; } T43 = iio[WS(vs, 4)]; T44 = iio[WS(vs, 4) + WS(is, 3)]; T45 = T43 - T44; T4o = T43 + T44; { E T4X, T4Y, T4x, T4y; T4X = iio[WS(vs, 5)]; T4Y = iio[WS(vs, 5) + WS(is, 3)]; T4Z = T4X - T4Y; T5i = T4X + T4Y; T4x = rio[WS(vs, 5)]; T4y = rio[WS(vs, 5) + WS(is, 3)]; T4z = T4x + T4y; T4I = T4x - T4y; } } { E T6, Td, T9, Te; { E T4, T5, T7, T8; T4 = rio[WS(is, 2)]; T5 = rio[WS(is, 5)]; T6 = T4 + T5; Td = T4 - T5; T7 = rio[WS(is, 4)]; T8 = rio[WS(is, 1)]; T9 = T7 + T8; Te = T7 - T8; } Ta = T6 + T9; TP = KP866025403 * (T9 - T6); Tf = Td + Te; Tq = KP866025403 * (Te - Td); } { E Tj, TH, Tm, TI; { E Th, Ti, Tk, Tl; Th = iio[WS(is, 2)]; Ti = iio[WS(is, 5)]; Tj = Th - Ti; TH = Th + Ti; Tk = iio[WS(is, 4)]; Tl = iio[WS(is, 1)]; Tm = Tk - Tl; TI = Tk + Tl; } Tn = KP866025403 * (Tj - Tm); TN = TH + TI; Tu = Tj + Tm; TJ = KP866025403 * (TH - TI); } { E T10, T17, T13, T18; { E TY, TZ, T11, T12; TY = rio[WS(vs, 1) + WS(is, 2)]; TZ = rio[WS(vs, 1) + WS(is, 5)]; T10 = TY + TZ; T17 = TY - TZ; T11 = rio[WS(vs, 1) + WS(is, 4)]; T12 = rio[WS(vs, 1) + WS(is, 1)]; T13 = T11 + T12; T18 = T11 - T12; } T14 = T10 + T13; T1J = KP866025403 * (T13 - T10); T19 = T17 + T18; T1k = KP866025403 * (T18 - T17); } { E T1d, T1B, T1g, T1C; { E T1b, T1c, T1e, T1f; T1b = iio[WS(vs, 1) + WS(is, 2)]; T1c = iio[WS(vs, 1) + WS(is, 5)]; T1d = T1b - T1c; T1B = T1b + T1c; T1e = iio[WS(vs, 1) + WS(is, 4)]; T1f = iio[WS(vs, 1) + WS(is, 1)]; T1g = T1e - T1f; T1C = T1e + T1f; } T1h = KP866025403 * (T1d - T1g); T1H = T1B + T1C; T1o = T1d + T1g; T1D = KP866025403 * (T1B - T1C); } { E T27, T2v, T2a, T2w; { E T25, T26, T28, T29; T25 = iio[WS(vs, 2) + WS(is, 2)]; T26 = iio[WS(vs, 2) + WS(is, 5)]; T27 = T25 - T26; T2v = T25 + T26; T28 = iio[WS(vs, 2) + WS(is, 4)]; T29 = iio[WS(vs, 2) + WS(is, 1)]; T2a = T28 - T29; T2w = T28 + T29; } T2b = KP866025403 * (T27 - T2a); T2B = T2v + T2w; T2i = T27 + T2a; T2x = KP866025403 * (T2v - T2w); } { E T1U, T21, T1X, T22; { E T1S, T1T, T1V, T1W; T1S = rio[WS(vs, 2) + WS(is, 2)]; T1T = rio[WS(vs, 2) + WS(is, 5)]; T1U = T1S + T1T; T21 = T1S - T1T; T1V = rio[WS(vs, 2) + WS(is, 4)]; T1W = rio[WS(vs, 2) + WS(is, 1)]; T1X = T1V + T1W; T22 = T1V - T1W; } T1Y = T1U + T1X; T2D = KP866025403 * (T1X - T1U); T23 = T21 + T22; T2e = KP866025403 * (T22 - T21); } { E T2O, T2V, T2R, T2W; { E T2M, T2N, T2P, T2Q; T2M = rio[WS(vs, 3) + WS(is, 2)]; T2N = rio[WS(vs, 3) + WS(is, 5)]; T2O = T2M + T2N; T2V = T2M - T2N; T2P = rio[WS(vs, 3) + WS(is, 4)]; T2Q = rio[WS(vs, 3) + WS(is, 1)]; T2R = T2P + T2Q; T2W = T2P - T2Q; } T2S = T2O + T2R; T3x = KP866025403 * (T2R - T2O); T2X = T2V + T2W; T38 = KP866025403 * (T2W - T2V); } { E T31, T3p, T34, T3q; { E T2Z, T30, T32, T33; T2Z = iio[WS(vs, 3) + WS(is, 2)]; T30 = iio[WS(vs, 3) + WS(is, 5)]; T31 = T2Z - T30; T3p = T2Z + T30; T32 = iio[WS(vs, 3) + WS(is, 4)]; T33 = iio[WS(vs, 3) + WS(is, 1)]; T34 = T32 - T33; T3q = T32 + T33; } T35 = KP866025403 * (T31 - T34); T3v = T3p + T3q; T3c = T31 + T34; T3r = KP866025403 * (T3p - T3q); } { E T3I, T3P, T3L, T3Q; { E T3G, T3H, T3J, T3K; T3G = rio[WS(vs, 4) + WS(is, 2)]; T3H = rio[WS(vs, 4) + WS(is, 5)]; T3I = T3G + T3H; T3P = T3G - T3H; T3J = rio[WS(vs, 4) + WS(is, 4)]; T3K = rio[WS(vs, 4) + WS(is, 1)]; T3L = T3J + T3K; T3Q = T3J - T3K; } T3M = T3I + T3L; T4r = KP866025403 * (T3L - T3I); T3R = T3P + T3Q; T42 = KP866025403 * (T3Q - T3P); } { E T3V, T4j, T3Y, T4k; { E T3T, T3U, T3W, T3X; T3T = iio[WS(vs, 4) + WS(is, 2)]; T3U = iio[WS(vs, 4) + WS(is, 5)]; T3V = T3T - T3U; T4j = T3T + T3U; T3W = iio[WS(vs, 4) + WS(is, 4)]; T3X = iio[WS(vs, 4) + WS(is, 1)]; T3Y = T3W - T3X; T4k = T3W + T3X; } T3Z = KP866025403 * (T3V - T3Y); T4p = T4j + T4k; T46 = T3V + T3Y; T4l = KP866025403 * (T4j - T4k); } { E T4P, T5d, T4S, T5e; { E T4N, T4O, T4Q, T4R; T4N = iio[WS(vs, 5) + WS(is, 2)]; T4O = iio[WS(vs, 5) + WS(is, 5)]; T4P = T4N - T4O; T5d = T4N + T4O; T4Q = iio[WS(vs, 5) + WS(is, 4)]; T4R = iio[WS(vs, 5) + WS(is, 1)]; T4S = T4Q - T4R; T5e = T4Q + T4R; } T4T = KP866025403 * (T4P - T4S); T5j = T5d + T5e; T50 = T4P + T4S; T5f = KP866025403 * (T5d - T5e); } { E T4C, T4J, T4F, T4K; { E T4A, T4B, T4D, T4E; T4A = rio[WS(vs, 5) + WS(is, 2)]; T4B = rio[WS(vs, 5) + WS(is, 5)]; T4C = T4A + T4B; T4J = T4A - T4B; T4D = rio[WS(vs, 5) + WS(is, 4)]; T4E = rio[WS(vs, 5) + WS(is, 1)]; T4F = T4D + T4E; T4K = T4D - T4E;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -