📄 t2_64.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:32 EDT 2003 */#include "codelet-dft.h"/* Generated by: /homee/stevenj/cvs/fftw3.0.1/genfft/gen_twiddle -compact -variables 4 -twiddle-log3 -n 64 -name t2_64 -include t.h *//* * This function contains 1154 FP additions, 660 FP multiplications, * (or, 880 additions, 386 multiplications, 274 fused multiply/add), * 382 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_twiddle.ml,v 1.16 2003/04/16 19:51:27 athena Exp $ */#include "t.h"static const R *t2_64(R *ri, R *ii, const R *W, stride ios, int m, int dist){ DK(KP290284677, +0.290284677254462367636192375817395274691476278); DK(KP956940335, +0.956940335732208864935797886980269969482849206); DK(KP881921264, +0.881921264348355029712756863660388349508442621); DK(KP471396736, +0.471396736825997648556387625905254377657460319); DK(KP098017140, +0.098017140329560601994195563888641845861136673); DK(KP995184726, +0.995184726672196886244836953109479921575474869); DK(KP773010453, +0.773010453362736960810906609758469800971041293); DK(KP634393284, +0.634393284163645498215171613225493370675687095); DK(KP555570233, +0.555570233019602224742830813948532874374937191); DK(KP831469612, +0.831469612302545237078788377617905756738560812); DK(KP980785280, +0.980785280403230449126182236134239036973933731); DK(KP195090322, +0.195090322016128267848284868477022240927691618); DK(KP707106781, +0.707106781186547524400844362104849039284835938); DK(KP923879532, +0.923879532511286756128183189396788286822416626); DK(KP382683432, +0.382683432365089771728459984030398866761344562); int i; for (i = m; i > 0; i = i - 1, ri = ri + dist, ii = ii + dist, W = W + 10) { E T1, Ti1, Tp, Tt, TH, TL, T6a, T6c, T4J, T4H, T1g, T91, T7W, T7m, T2O; E T4j, T7P, T4P, T8y, T2w, T8t, T2Z, T8e, T48, T1z, T7s, T1I, T7t, T8p, Ten; E T1Y, T7D, T2t, T7O, T7L, Te6, T3N, T8E, T7A, Te0, T4C, TeA, T8S, T9v, T65; E Tfi, T9J, Taq, T6K, Tf6, Ta2, Ta5, T73, Tfc, Tad, Tag, T3z, T83, T3u, T82; E T81, T84, T15, T9K, T68, T7j, T43, T9w, T4F, T8G, T5l, TeL, T9k, T9n, T6o; E Tf2, T9Q, T9R, T6z, Tf3, T9T, T9W, To, Ts, T4o, T8u, T4U, T92, T5a, TeT; E T8V, T8Y, T5G, TeG, T97, T9e, T27, T7X, T2T, T7E, T7b, Tai, T6T, Ta3, Tf7; E Ta8, T7Q, T2H, T2c, T76, Tah, T7F, T4d, T8z, TG, TK, T69, T6b, T3b, T87; E T5u, T9l, TeM, T9q, T88, T89, T3o, T86, T5P, T9f, TeH, T9a, T34, T8f, T1r; E T7n, T3S, T8F, T4G, T4I; T1 = ri[0]; Ti1 = ii[0]; Tp = ri[WS(ios, 32)]; Tt = ii[WS(ios, 32)]; TH = ri[WS(ios, 16)]; TL = ii[WS(ios, 16)]; T6a = ri[WS(ios, 47)]; T6c = ii[WS(ios, 47)]; T4J = ii[WS(ios, 49)]; T4H = ri[WS(ios, 49)]; { E T12, T14, T1b, T1f, T1q, T1m, T1w, T1y, T1D, T1H, T1S, T1M, T1N, T1W, T2M; E T2g, T2b, T29, T26, T22, T2i, T2E, T2G, T2v, T2u, T2r, T2n, T2N, T3a, T38; E T3l, T3n, T3r, T3t, T33, T31, T2Y, T2W, T4g, T2S, T2Q, T3w, T3y, T3E, T3G; E T3P, T3J, T3L, T3R, T4a, T4c, T47, T46, T42, T40, T4i, T6P, T6R, T6M, T6L; E T6I, T6G, T6W, T6Y, T74, T75, T5I, T78, T7a, T6x, T6v, T6s, T6q, T6h, T6m; E T6k, T6g, T5N, T5L, T5Z, T63, T66, T67, T5H, T54, T4D, T4A, T4y, T4n, T4l; E T4E, T4X, T4Z, T4T, T4R, T4O, T4N, T58, T5s, T5q, T5x, T5z, T5C, T5E, T5n; E T5m, T5j, T5h, T5d, T5e, Ta, Ty, Tf, Tw, T2, Tj, T3, Tc, T1E, T1B; E T1F, T1A, T1R, T3x, T2m, T3K, T61, T1V, T60, T3I, T51, T52, T2V, T56, T5X; E T3v, T55, T2X, T2q, T5W, T4w, T6E, Ta0, T8Q, Tac, T72, Tb, Tg, Th, T3e; E T3f, T3h, T1a, T2x, T2B, TU, TV, TY, T1e, T2y, T2A, TC, TD, T1u, Tk; E Tl, Tm, T39, T3U, T3W, T37, T3T, T3X, TQ, TR, TZ, T3c, T3d, T3i, Tx; E Tz, T1t, TN, TX, T2f, T5V, Tao, T2h, T3D, T4f, T4h, T3F, T3q, T3s; T12 = ri[WS(ios, 48)]; T14 = ii[WS(ios, 48)]; T1b = ri[WS(ios, 8)]; T1f = ii[WS(ios, 8)]; T1q = ii[WS(ios, 40)]; T1m = ri[WS(ios, 40)]; T1w = ri[WS(ios, 56)]; T1y = ii[WS(ios, 56)]; T1D = ri[WS(ios, 24)]; T1H = ii[WS(ios, 24)]; T1S = ri[WS(ios, 36)]; T1M = ri[WS(ios, 4)]; T1N = ii[WS(ios, 4)]; T1W = ii[WS(ios, 36)]; T2M = ri[WS(ios, 2)]; T2g = ri[WS(ios, 60)]; T2b = ii[WS(ios, 52)]; T29 = ri[WS(ios, 52)]; T26 = ii[WS(ios, 20)]; T22 = ri[WS(ios, 20)]; T2i = ii[WS(ios, 60)]; T2E = ri[WS(ios, 44)]; T2G = ii[WS(ios, 44)]; T2v = ii[WS(ios, 12)]; T2u = ri[WS(ios, 12)]; T2r = ii[WS(ios, 28)]; T2n = ri[WS(ios, 28)]; T2N = ii[WS(ios, 2)]; T3a = ii[WS(ios, 10)]; T38 = ri[WS(ios, 10)]; T3l = ri[WS(ios, 42)]; T3n = ii[WS(ios, 42)]; T3r = ri[WS(ios, 58)]; T3t = ii[WS(ios, 58)]; T33 = ii[WS(ios, 50)]; T31 = ri[WS(ios, 50)]; T2Y = ii[WS(ios, 18)]; T2W = ri[WS(ios, 18)]; T4g = ri[WS(ios, 54)]; T2S = ii[WS(ios, 34)]; T2Q = ri[WS(ios, 34)]; T3w = ri[WS(ios, 26)]; T3y = ii[WS(ios, 26)]; T3E = ri[WS(ios, 62)]; T3G = ii[WS(ios, 62)]; T3P = ri[WS(ios, 14)]; T3J = ri[WS(ios, 30)]; T3L = ii[WS(ios, 30)]; T3R = ii[WS(ios, 14)]; T4a = ri[WS(ios, 38)]; T4c = ii[WS(ios, 38)]; T47 = ii[WS(ios, 6)]; T46 = ri[WS(ios, 6)]; T42 = ii[WS(ios, 46)]; T40 = ri[WS(ios, 46)]; T4i = ii[WS(ios, 54)]; T6P = ri[WS(ios, 51)]; T6R = ii[WS(ios, 51)]; T6M = ii[WS(ios, 19)]; T6L = ri[WS(ios, 19)]; T6I = ii[WS(ios, 35)]; T6G = ri[WS(ios, 35)]; T6W = ri[WS(ios, 59)]; T6Y = ii[WS(ios, 59)]; T74 = ri[WS(ios, 11)]; T75 = ii[WS(ios, 11)]; T5I = ii[WS(ios, 13)]; T78 = ri[WS(ios, 43)]; T7a = ii[WS(ios, 43)]; T6x = ii[WS(ios, 23)]; T6v = ri[WS(ios, 23)]; T6s = ii[WS(ios, 55)]; T6q = ri[WS(ios, 55)]; T6h = ii[WS(ios, 7)]; T6m = ii[WS(ios, 39)]; T6k = ri[WS(ios, 39)]; T6g = ri[WS(ios, 7)]; T5N = ii[WS(ios, 45)]; T5L = ri[WS(ios, 45)]; T5Z = ri[WS(ios, 31)]; T63 = ii[WS(ios, 31)]; T66 = ri[WS(ios, 15)]; T67 = ii[WS(ios, 15)]; T5H = ri[WS(ios, 13)]; T54 = ri[WS(ios, 25)]; T4D = ri[WS(ios, 17)]; T4A = ii[WS(ios, 33)]; T4y = ri[WS(ios, 33)]; T4n = ii[WS(ios, 22)]; T4l = ri[WS(ios, 22)]; T4E = ii[WS(ios, 17)]; T4X = ri[WS(ios, 57)]; T4Z = ii[WS(ios, 57)]; T4T = ii[WS(ios, 41)]; T4R = ri[WS(ios, 41)]; T4O = ii[WS(ios, 9)]; T4N = ri[WS(ios, 9)]; T58 = ii[WS(ios, 25)]; T5s = ii[WS(ios, 53)]; T5q = ri[WS(ios, 53)]; T5x = ri[WS(ios, 61)]; T5z = ii[WS(ios, 61)]; T5C = ri[WS(ios, 29)]; T5E = ii[WS(ios, 29)]; T5n = ii[WS(ios, 21)]; T5m = ri[WS(ios, 21)]; T5j = ii[WS(ios, 37)]; T5h = ri[WS(ios, 37)]; T5d = ri[WS(ios, 5)]; T5e = ii[WS(ios, 5)]; { E T4u, T4v, T5T, T5U, T6C, T6D, T70, T71, T4, T7, T5, T8, TO, TP, T1U; E T2p, T18, T2k, T2l, T2o, TT, TS, T19, T1c, T1T, T1P, T1Q, T1d; T4u = ri[WS(ios, 1)]; T4v = ii[WS(ios, 1)]; T5T = ri[WS(ios, 63)]; T5U = ii[WS(ios, 63)]; T6C = ri[WS(ios, 3)]; T6D = ii[WS(ios, 3)]; T70 = ri[WS(ios, 27)]; T71 = ii[WS(ios, 27)]; { E T6, Te, T9, Td; T4 = W[2]; T7 = W[3]; T5 = W[0]; T8 = W[1]; T6 = T4 * T5; Te = T7 * T5; T9 = T7 * T8; Td = T4 * T8; Ta = T6 - T9; Ty = Td - Te; Tf = Td + Te; Tw = T6 + T9; T2 = W[6]; Tj = W[7]; T3 = W[4]; Tc = W[5]; TO = T3 * T4; TP = Tc * T7; T1U = Tj * T3; T2p = Tj * T5; T18 = T3 * T5; T2k = T2 * T5; T2l = Tj * T8; T2o = T2 * T8; TT = Tc * T4; TS = T3 * T7; T19 = Tc * T8; T1c = T3 * T8; T1E = T2 * T7; T1T = T2 * Tc; T1B = Tj * T7; T1F = Tj * T4; T1P = T2 * T3; T1Q = Tj * Tc; T1A = T2 * T4; T1d = Tc * T5; } T1R = T1P - T1Q; T3x = T2o - T2p; T2m = T2k - T2l; T3K = T1E + T1F; T61 = Tj * Ta; T1V = T1T + T1U; T60 = T2 * Tf; T3I = T1A - T1B; T51 = T2 * Tw; T52 = Tj * Ty; T2V = T1P + T1Q; T56 = Tj * Tw; T5X = Tj * Tf; T3v = T2k + T2l; T55 = T2 * Ty; T2X = T1T - T1U; T2q = T2o + T2p; T5W = T2 * Ta; T4w = FMA(T5, T4u, T8 * T4v); T6E = FMA(T4, T6C, T7 * T6D); Ta0 = FNMS(T7, T6C, T4 * T6D); T8Q = FNMS(T8, T4u, T5 * T4v); Tac = FNMS(Tj, T70, T2 * T71); T72 = FMA(T2, T70, Tj * T71); Tb = T3 * Ta; Tg = Tc * Tf; Th = Tb + Tg; T3e = TS - TT; T3f = Tj * T3e; T3h = T2 * T3e; T1a = T18 + T19; T2x = T2 * T1a; T2B = Tj * T1a; TU = TS + TT; TV = Tj * TU; TY = T2 * TU; T1e = T1c - T1d; T2y = Tj * T1e; T2A = T2 * T1e; TC = T3 * Ty; TD = Tc * Tw; T1u = TC + TD; Tk = T3 * Tf; Tl = Tc * Ta; Tm = Tk - Tl; T39 = T1c + T1d; T3U = Tj * T39; T3W = T2 * T39; T37 = T18 - T19; T3T = T2 * T37; T3X = Tj * T37; TQ = TO - TP; TR = T2 * TQ; TZ = Tj * TQ; T3c = TO + TP; T3d = T2 * T3c; T3i = Tj * T3c; Tx = T3 * Tw; Tz = Tc * Ty; T1t = Tx - Tz; TN = W[8]; TX = W[9]; T2f = FMA(TN, T4, TX * T7); T5V = FMA(TN, T5T, TX * T5U); Tao = FNMS(TX, T5T, TN * T5U); T2h = FNMS(TX, T4, TN * T7); T3D = FMA(TN, T5, TX * T8); T4f = FMA(TN, T3, TX * Tc); T4h = FNMS(TX, T3, TN * Tc); T3F = FNMS(TX, T5, TN * T8); } T1g = FNMS(T1e, T1f, T1a * T1b); T91 = FNMS(Tc, T4N, T3 * T4O); T7W = FMA(Ty, T2M, Tw * T2N); T7m = FMA(T1e, T1b, T1a * T1f); T2O = FNMS(Ty, T2N, Tw * T2M); T4j = FNMS(T4h, T4i, T4f * T4g); T7P = FNMS(TU, T2u, TQ * T2v); T4P = FMA(T3, T4N, Tc * T4O); T8y = FMA(T3e, T46, T3c * T47); T2w = FMA(TQ, T2u, TU * T2v); { E T1v, T1x, T1O, T1X; T8t = FMA(T4h, T4g, T4f * T4i); T2Z = FNMS(T2X, T2Y, T2V * T2W); T8e = FMA(T2X, T2W, T2V * T2Y); T48 = FNMS(T3e, T47, T3c * T46); T1v = FMA(TN, T1t, TX * T1u); T1x = FNMS(TX, T1t, TN * T1u); T1z = FNMS(T1x, T1y, T1v * T1w); T7s = FMA(T1x, T1w, T1v * T1y); { E T1C, T1G, T8n, T8o; T1C = T1A + T1B; T1G = T1E - T1F; T1I = FNMS(T1G, T1H, T1C * T1D); T7t = FMA(T1G, T1D, T1C * T1H); T8n = FMA(T3F, T3E, T3D * T3G); T8o = FNMS(T3K, T3J, T3I * T3L); T8p = T8n - T8o; Ten = T8n + T8o; } T1O = FMA(Ta, T1M, Tf * T1N); T1X = FMA(T1R, T1S, T1V * T1W); T1Y = T1O + T1X; T7D = T1O - T1X; { E T2j, T2s, T7J, T7K; T2j = FNMS(T2h, T2i, T2f * T2g); T2s = FMA(T2m, T2n, T2q * T2r); T2t = T2j + T2s; T7O = T2j - T2s; T7J = FMA(T2h, T2g, T2f * T2i); T7K = FNMS(T2q, T2n, T2m * T2r); T7L = T7J - T7K; Te6 = T7J + T7K; } } { E T3H, T3M, T7y, T7z; T3H = FNMS(T3F, T3G, T3D * T3E); T3M = FMA(T3I, T3J, T3K * T3L); T3N = T3H + T3M; T8E = T3H - T3M; T7y = FNMS(Tf, T1M, Ta * T1N); T7z = FNMS(T1V, T1S, T1R * T1W); T7A = T7y - T7z; Te0 = T7y + T7z; } { E T4B, T8R, T4x, T4z; T4x = T3d + T3f; T4z = T3h - T3i; T4B = FNMS(T4z, T4A, T4x * T4y); T8R = FMA(T4z, T4y, T4x * T4A); T4C = T4w + T4B; TeA = T8Q + T8R; T8S = T8Q - T8R; T9v = T4w - T4B; } { E T64, Tap, T5Y, T62; T5Y = T5W - T5X; T62 = T60 + T61; T64 = FMA(T5Y, T5Z, T62 * T63); Tap = FNMS(T62, T5Z, T5Y * T63); T65 = T5V + T64; Tfi = Tao + Tap; T9J = T5V - T64; Taq = Tao - Tap; } { E T6J, Ta1, T6F, T6H; T6F = T2x + T2y; T6H = T2A - T2B; T6J = FNMS(T6H, T6I, T6F * T6G); Ta1 = FMA(T6H, T6G, T6F * T6I); T6K = T6E + T6J; Tf6 = Ta0 + Ta1; Ta2 = Ta0 - Ta1; Ta5 = T6E - T6J; } { E T6Z, Tab, T6V, T6X; T6V = FMA(TN, Ta, TX * Tf); T6X = FNMS(TX, Ta, TN * Tf); T6Z = FNMS(T6X, T6Y, T6V * T6W); Tab = FMA(T6X, T6W, T6V * T6Y); T73 = T6Z + T72; Tfc = Tab + Tac; Tad = Tab - Tac; Tag = T6Z - T72; } T3z = FNMS(T3x, T3y, T3v * T3w); T83 = FMA(T3x, T3w, T3v * T3y); T3q = FNMS(TX, Tm, TN * Th); T3s = FMA(TN, Tm, TX * Th); T3u = FMA(T3q, T3r, T3s * T3t); T82 = FNMS(T3s, T3r, T3q * T3t); T81 = T3u - T3z; T84 = T82 - T83; { E TW, T10, T11, T13; TW = TR + TV; T10 = TY - TZ; T11 = FNMS(TX, T10, TN * TW); T13 = FMA(TN, T10, TX * TW); T15 = FMA(T11, T12, T13 * T14); T9K = FMA(T10, T66, TW * T67); T68 = FNMS(T10, T67, TW * T66); T7j = FNMS(T13, T12, T11 * T14); } { E T3V, T3Y, T3Z, T41; T3V = T3T + T3U; T3Y = T3W - T3X; T3Z = FNMS(TX, T3Y, TN * T3V); T41 = FMA(TN, T3Y, TX * T3V); T43 = FMA(T3Z, T40, T41 * T42); T9w = FMA(T3Y, T4D, T3V * T4E); T4F = FNMS(T3Y, T4E, T3V * T4D); T8G = FNMS(T41, T40, T3Z * T42); } { E T5f, T9i, T5k, T9j, T5g, T5i; T5f = FNMS(Tm, T5e, Th * T5d); T9i = FMA(Tm, T5d, Th * T5e); T5g = T3T - T3U; T5i = T3W + T3X; T5k = FMA(T5g, T5h, T5i * T5j); T9j = FNMS(T5i, T5h, T5g * T5j); T5l = T5f + T5k; TeL = T9i + T9j; T9k = T9i - T9j; T9n = T5f - T5k; } { E T6i, T9O, T6n, T9P, T6j, T6l; T6i = FMA(T1t, T6g, T1u * T6h); T9O = FNMS(T1u, T6g, T1t * T6h); T6j = TR - TV; T6l = TY + TZ; T6n = FMA(T6j, T6k, T6l * T6m);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -