📄 t1_32.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:30:07 EDT 2003 */#include "codelet-dft.h"/* Generated by: /homee/stevenj/cvs/fftw3.0.1/genfft/gen_twiddle -compact -variables 4 -n 32 -name t1_32 -include t.h *//* * This function contains 434 FP additions, 208 FP multiplications, * (or, 340 additions, 114 multiplications, 94 fused multiply/add), * 96 stack variables, and 128 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_twiddle.ml,v 1.16 2003/04/16 19:51:27 athena Exp $ */#include "t.h"static const R *t1_32(R *ri, R *ii, const R *W, stride ios, int m, int dist){ DK(KP195090322, +0.195090322016128267848284868477022240927691618); DK(KP980785280, +0.980785280403230449126182236134239036973933731); DK(KP555570233, +0.555570233019602224742830813948532874374937191); DK(KP831469612, +0.831469612302545237078788377617905756738560812); DK(KP382683432, +0.382683432365089771728459984030398866761344562); DK(KP923879532, +0.923879532511286756128183189396788286822416626); DK(KP707106781, +0.707106781186547524400844362104849039284835938); int i; for (i = m; i > 0; i = i - 1, ri = ri + dist, ii = ii + dist, W = W + 62) { E Tj, T5F, T7C, T7Q, T35, T4T, T78, T7m, T1Q, T61, T5Y, T6J, T3K, T59, T41; E T56, T2B, T67, T6e, T6O, T4b, T5d, T4s, T5g, TG, T7l, T5I, T73, T3a, T4U; E T3f, T4V, T14, T5N, T5M, T6E, T3m, T4Y, T3r, T4Z, T1r, T5P, T5S, T6F, T3x; E T51, T3C, T52, T2d, T5Z, T64, T6K, T3V, T57, T44, T5a, T2Y, T6f, T6a, T6P; E T4m, T5h, T4v, T5e; { E T1, T76, T6, T75, Tc, T32, Th, T33; T1 = ri[0]; T76 = ii[0]; { E T3, T5, T2, T4; T3 = ri[WS(ios, 16)]; T5 = ii[WS(ios, 16)]; T2 = W[30]; T4 = W[31]; T6 = FMA(T2, T3, T4 * T5); T75 = FNMS(T4, T3, T2 * T5); } { E T9, Tb, T8, Ta; T9 = ri[WS(ios, 8)]; Tb = ii[WS(ios, 8)]; T8 = W[14]; Ta = W[15]; Tc = FMA(T8, T9, Ta * Tb); T32 = FNMS(Ta, T9, T8 * Tb); } { E Te, Tg, Td, Tf; Te = ri[WS(ios, 24)]; Tg = ii[WS(ios, 24)]; Td = W[46]; Tf = W[47]; Th = FMA(Td, Te, Tf * Tg); T33 = FNMS(Tf, Te, Td * Tg); } { E T7, Ti, T7A, T7B; T7 = T1 + T6; Ti = Tc + Th; Tj = T7 + Ti; T5F = T7 - Ti; T7A = T76 - T75; T7B = Tc - Th; T7C = T7A - T7B; T7Q = T7B + T7A; } { E T31, T34, T74, T77; T31 = T1 - T6; T34 = T32 - T33; T35 = T31 - T34; T4T = T31 + T34; T74 = T32 + T33; T77 = T75 + T76; T78 = T74 + T77; T7m = T77 - T74; } } { E T1y, T3G, T1O, T3Z, T1D, T3H, T1J, T3Y; { E T1v, T1x, T1u, T1w; T1v = ri[WS(ios, 1)]; T1x = ii[WS(ios, 1)]; T1u = W[0]; T1w = W[1]; T1y = FMA(T1u, T1v, T1w * T1x); T3G = FNMS(T1w, T1v, T1u * T1x); } { E T1L, T1N, T1K, T1M; T1L = ri[WS(ios, 25)]; T1N = ii[WS(ios, 25)]; T1K = W[48]; T1M = W[49]; T1O = FMA(T1K, T1L, T1M * T1N); T3Z = FNMS(T1M, T1L, T1K * T1N); } { E T1A, T1C, T1z, T1B; T1A = ri[WS(ios, 17)]; T1C = ii[WS(ios, 17)]; T1z = W[32]; T1B = W[33]; T1D = FMA(T1z, T1A, T1B * T1C); T3H = FNMS(T1B, T1A, T1z * T1C); } { E T1G, T1I, T1F, T1H; T1G = ri[WS(ios, 9)]; T1I = ii[WS(ios, 9)]; T1F = W[16]; T1H = W[17]; T1J = FMA(T1F, T1G, T1H * T1I); T3Y = FNMS(T1H, T1G, T1F * T1I); } { E T1E, T1P, T5W, T5X; T1E = T1y + T1D; T1P = T1J + T1O; T1Q = T1E + T1P; T61 = T1E - T1P; T5W = T3G + T3H; T5X = T3Y + T3Z; T5Y = T5W - T5X; T6J = T5W + T5X; } { E T3I, T3J, T3X, T40; T3I = T3G - T3H; T3J = T1J - T1O; T3K = T3I + T3J; T59 = T3I - T3J; T3X = T1y - T1D; T40 = T3Y - T3Z; T41 = T3X - T40; T56 = T3X + T40; } } { E T2j, T4o, T2z, T49, T2o, T4p, T2u, T48; { E T2g, T2i, T2f, T2h; T2g = ri[WS(ios, 31)]; T2i = ii[WS(ios, 31)]; T2f = W[60]; T2h = W[61]; T2j = FMA(T2f, T2g, T2h * T2i); T4o = FNMS(T2h, T2g, T2f * T2i); } { E T2w, T2y, T2v, T2x; T2w = ri[WS(ios, 23)]; T2y = ii[WS(ios, 23)]; T2v = W[44]; T2x = W[45]; T2z = FMA(T2v, T2w, T2x * T2y); T49 = FNMS(T2x, T2w, T2v * T2y); } { E T2l, T2n, T2k, T2m; T2l = ri[WS(ios, 15)]; T2n = ii[WS(ios, 15)]; T2k = W[28]; T2m = W[29]; T2o = FMA(T2k, T2l, T2m * T2n); T4p = FNMS(T2m, T2l, T2k * T2n); } { E T2r, T2t, T2q, T2s; T2r = ri[WS(ios, 7)]; T2t = ii[WS(ios, 7)]; T2q = W[12]; T2s = W[13]; T2u = FMA(T2q, T2r, T2s * T2t); T48 = FNMS(T2s, T2r, T2q * T2t); } { E T2p, T2A, T6c, T6d; T2p = T2j + T2o; T2A = T2u + T2z; T2B = T2p + T2A; T67 = T2p - T2A; T6c = T4o + T4p; T6d = T48 + T49; T6e = T6c - T6d; T6O = T6c + T6d; } { E T47, T4a, T4q, T4r; T47 = T2j - T2o; T4a = T48 - T49; T4b = T47 - T4a; T5d = T47 + T4a; T4q = T4o - T4p; T4r = T2u - T2z; T4s = T4q + T4r; T5g = T4q - T4r; } } { E To, T36, TE, T3d, Tt, T37, Tz, T3c; { E Tl, Tn, Tk, Tm; Tl = ri[WS(ios, 4)]; Tn = ii[WS(ios, 4)]; Tk = W[6]; Tm = W[7]; To = FMA(Tk, Tl, Tm * Tn); T36 = FNMS(Tm, Tl, Tk * Tn); } { E TB, TD, TA, TC; TB = ri[WS(ios, 12)]; TD = ii[WS(ios, 12)]; TA = W[22]; TC = W[23]; TE = FMA(TA, TB, TC * TD); T3d = FNMS(TC, TB, TA * TD); } { E Tq, Ts, Tp, Tr; Tq = ri[WS(ios, 20)]; Ts = ii[WS(ios, 20)]; Tp = W[38]; Tr = W[39]; Tt = FMA(Tp, Tq, Tr * Ts); T37 = FNMS(Tr, Tq, Tp * Ts); } { E Tw, Ty, Tv, Tx; Tw = ri[WS(ios, 28)]; Ty = ii[WS(ios, 28)]; Tv = W[54]; Tx = W[55]; Tz = FMA(Tv, Tw, Tx * Ty); T3c = FNMS(Tx, Tw, Tv * Ty); } { E Tu, TF, T5G, T5H; Tu = To + Tt; TF = Tz + TE; TG = Tu + TF; T7l = TF - Tu; T5G = T36 + T37; T5H = T3c + T3d; T5I = T5G - T5H; T73 = T5G + T5H; } { E T38, T39, T3b, T3e; T38 = T36 - T37; T39 = To - Tt; T3a = T38 - T39; T4U = T39 + T38; T3b = Tz - TE; T3e = T3c - T3d; T3f = T3b + T3e; T4V = T3b - T3e; } } { E TM, T3i, T12, T3p, TR, T3j, TX, T3o; { E TJ, TL, TI, TK; TJ = ri[WS(ios, 2)]; TL = ii[WS(ios, 2)]; TI = W[2]; TK = W[3]; TM = FMA(TI, TJ, TK * TL); T3i = FNMS(TK, TJ, TI * TL); } { E TZ, T11, TY, T10; TZ = ri[WS(ios, 26)]; T11 = ii[WS(ios, 26)]; TY = W[50]; T10 = W[51]; T12 = FMA(TY, TZ, T10 * T11); T3p = FNMS(T10, TZ, TY * T11); } { E TO, TQ, TN, TP; TO = ri[WS(ios, 18)]; TQ = ii[WS(ios, 18)]; TN = W[34]; TP = W[35]; TR = FMA(TN, TO, TP * TQ); T3j = FNMS(TP, TO, TN * TQ); } { E TU, TW, TT, TV; TU = ri[WS(ios, 10)]; TW = ii[WS(ios, 10)]; TT = W[18]; TV = W[19]; TX = FMA(TT, TU, TV * TW); T3o = FNMS(TV, TU, TT * TW); } { E TS, T13, T5K, T5L; TS = TM + TR; T13 = TX + T12; T14 = TS + T13; T5N = TS - T13; T5K = T3i + T3j; T5L = T3o + T3p; T5M = T5K - T5L; T6E = T5K + T5L; } { E T3k, T3l, T3n, T3q; T3k = T3i - T3j; T3l = TX - T12; T3m = T3k + T3l; T4Y = T3k - T3l; T3n = TM - TR; T3q = T3o - T3p; T3r = T3n - T3q; T4Z = T3n + T3q; } } { E T19, T3t, T1p, T3A, T1e, T3u, T1k, T3z; { E T16, T18, T15, T17; T16 = ri[WS(ios, 30)]; T18 = ii[WS(ios, 30)]; T15 = W[58]; T17 = W[59]; T19 = FMA(T15, T16, T17 * T18); T3t = FNMS(T17, T16, T15 * T18); } { E T1m, T1o, T1l, T1n; T1m = ri[WS(ios, 22)]; T1o = ii[WS(ios, 22)]; T1l = W[42]; T1n = W[43]; T1p = FMA(T1l, T1m, T1n * T1o); T3A = FNMS(T1n, T1m, T1l * T1o); } { E T1b, T1d, T1a, T1c; T1b = ri[WS(ios, 14)]; T1d = ii[WS(ios, 14)]; T1a = W[26]; T1c = W[27]; T1e = FMA(T1a, T1b, T1c * T1d); T3u = FNMS(T1c, T1b, T1a * T1d); } { E T1h, T1j, T1g, T1i; T1h = ri[WS(ios, 6)]; T1j = ii[WS(ios, 6)]; T1g = W[10]; T1i = W[11]; T1k = FMA(T1g, T1h, T1i * T1j); T3z = FNMS(T1i, T1h, T1g * T1j); } { E T1f, T1q, T5Q, T5R; T1f = T19 + T1e; T1q = T1k + T1p; T1r = T1f + T1q; T5P = T1f - T1q; T5Q = T3t + T3u; T5R = T3z + T3A; T5S = T5Q - T5R; T6F = T5Q + T5R; } { E T3v, T3w, T3y, T3B; T3v = T3t - T3u; T3w = T1k - T1p; T3x = T3v + T3w; T51 = T3v - T3w; T3y = T19 - T1e; T3B = T3z - T3A; T3C = T3y - T3B; T52 = T3y + T3B; } } { E T1V, T3R, T20, T3S, T3Q, T3T, T26, T3M, T2b, T3N, T3L, T3O; { E T1S, T1U, T1R, T1T; T1S = ri[WS(ios, 5)]; T1U = ii[WS(ios, 5)]; T1R = W[8]; T1T = W[9]; T1V = FMA(T1R, T1S, T1T * T1U); T3R = FNMS(T1T, T1S, T1R * T1U); } { E T1X, T1Z, T1W, T1Y; T1X = ri[WS(ios, 21)]; T1Z = ii[WS(ios, 21)]; T1W = W[40]; T1Y = W[41]; T20 = FMA(T1W, T1X, T1Y * T1Z); T3S = FNMS(T1Y, T1X, T1W * T1Z); } T3Q = T1V - T20; T3T = T3R - T3S; { E T23, T25, T22, T24; T23 = ri[WS(ios, 29)]; T25 = ii[WS(ios, 29)]; T22 = W[56]; T24 = W[57]; T26 = FMA(T22, T23, T24 * T25); T3M = FNMS(T24, T23, T22 * T25); }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -