⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 t2_64.c

📁 fftw-3.0.1
💻 C
📖 第 1 页 / 共 4 页
字号:
/* * 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 + -