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

📄 hb_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 22:11:42 EDT 2003 */#include "codelet-rdft.h"/* Generated by: /homee/stevenj/cvs/fftw3.0.1/genfft/gen_hc2hc -compact -variables 4 -sign 1 -n 64 -dif -name hb_64 -include hb.h *//* * This function contains 1038 FP additions, 500 FP multiplications, * (or, 808 additions, 270 multiplications, 230 fused multiply/add), * 196 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_hc2hc.ml,v 1.9 2003/04/17 19:25:50 athena Exp $ */#include "hb.h"static const R *hb_64(R *rio, R *iio, const R *W, stride ios, int m, int dist){     DK(KP634393284, +0.634393284163645498215171613225493370675687095);     DK(KP773010453, +0.773010453362736960810906609758469800971041293);     DK(KP098017140, +0.098017140329560601994195563888641845861136673);     DK(KP995184726, +0.995184726672196886244836953109479921575474869);     DK(KP471396736, +0.471396736825997648556387625905254377657460319);     DK(KP881921264, +0.881921264348355029712756863660388349508442621);     DK(KP290284677, +0.290284677254462367636192375817395274691476278);     DK(KP956940335, +0.956940335732208864935797886980269969482849206);     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 - 2; i > 0; i = i - 2, rio = rio + dist, iio = iio - dist, W = W + 126) {	  E Tf, T7i, Tfa, ThM, Tgp, ThH, T2c, T5O, T4T, T6n, Tcp, Ted, TcA, TdE, T87;	  E T9o, TK, T93, T2P, T4F, Tfo, Thz, T5T, T6j, Tbx, TdI, Tfl, ThA, T7r, T81;	  E TbE, TdH, TZ, T94, T38, T4G, Tfv, ThC, T5W, T6k, TbQ, TdK, Tfs, ThD, T7w;	  E T82, TbX, TdL, Tu, T84, Tfh, ThG, Tgm, ThN, T2v, T6m, T4K, T5P, Tce, TdF;	  E TcD, Tec, T7l, T9p, T1L, T20, T9c, T9d, T9e, T9f, T40, T66, Tg1, Thu, Tg8;	  E Thv, Tg5, Thr, T4n, T67, T4j, T69, T4w, T6a, TaT, TdW, Tb8, TdZ, TfU, Ths;	  E T7O, T8y, T7T, T8z, Tbc, TdX, Tbj, Te0, T1g, T1v, T97, T98, T99, T9a, T3j;	  E T5Z, TfI, Thk, TfP, Thl, TfM, Tho, T3G, T60, T3C, T62, T3P, T63, Tak, TdQ;	  E Tav, TdT, TfB, Thn, T7D, T8v, T7I, T8w, TaD, TdP, TaG, TdS;	  {	       E T3, Tcm, T4O, Tcv, T6, Tcu, T4R, Tcn, Td, Tcy, T2a, Tch, Ta, Tcx, T27;	       E Tck;	       {		    E T1, T2, T4P, T4Q;		    T1 = rio[0];		    T2 = iio[-WS(ios, 32)];		    T3 = T1 + T2;		    Tcm = T1 - T2;		    {			 E T4M, T4N, T4, T5;			 T4M = iio[0];			 T4N = rio[WS(ios, 32)];			 T4O = T4M - T4N;			 Tcv = T4M + T4N;			 T4 = rio[WS(ios, 16)];			 T5 = iio[-WS(ios, 48)];			 T6 = T4 + T5;			 Tcu = T4 - T5;		    }		    T4P = iio[-WS(ios, 16)];		    T4Q = rio[WS(ios, 48)];		    T4R = T4P - T4Q;		    Tcn = T4P + T4Q;		    {			 E Tb, Tc, Tcf, T28, T29, Tcg;			 Tb = iio[-WS(ios, 56)];			 Tc = rio[WS(ios, 24)];			 Tcf = Tb - Tc;			 T28 = iio[-WS(ios, 24)];			 T29 = rio[WS(ios, 56)];			 Tcg = T29 + T28;			 Td = Tb + Tc;			 Tcy = Tcf + Tcg;			 T2a = T28 - T29;			 Tch = Tcf - Tcg;		    }		    {			 E T8, T9, Tcj, T25, T26, Tci;			 T8 = rio[WS(ios, 8)];			 T9 = iio[-WS(ios, 40)];			 Tcj = T8 - T9;			 T25 = iio[-WS(ios, 8)];			 T26 = rio[WS(ios, 40)];			 Tci = T25 + T26;			 Ta = T8 + T9;			 Tcx = Tcj + Tci;			 T27 = T25 - T26;			 Tck = Tci - Tcj;		    }	       }	       {		    E T7, Te, Tf8, Tf9;		    T7 = T3 + T6;		    Te = Ta + Td;		    Tf = T7 + Te;		    T7i = T7 - Te;		    Tf8 = Tcv - Tcu;		    Tf9 = KP707106781 * (Tck + Tch);		    Tfa = Tf8 + Tf9;		    ThM = Tf8 - Tf9;	       }	       {		    E Tgn, Tgo, T24, T2b;		    Tgn = KP707106781 * (Tcx + Tcy);		    Tgo = Tcm + Tcn;		    Tgp = Tgn + Tgo;		    ThH = Tgo - Tgn;		    T24 = T3 - T6;		    T2b = T27 - T2a;		    T2c = T24 + T2b;		    T5O = T24 - T2b;	       }	       {		    E T4L, T4S, Tcl, Tco;		    T4L = Td - Ta;		    T4S = T4O - T4R;		    T4T = T4L + T4S;		    T6n = T4S - T4L;		    Tcl = KP707106781 * (Tch - Tck);		    Tco = Tcm - Tcn;		    Tcp = Tcl + Tco;		    Ted = Tco - Tcl;	       }	       {		    E Tcw, Tcz, T85, T86;		    Tcw = Tcu + Tcv;		    Tcz = KP707106781 * (Tcx - Tcy);		    TcA = Tcw + Tcz;		    TdE = Tcw - Tcz;		    T85 = T4O + T4R;		    T86 = T27 + T2a;		    T87 = T85 - T86;		    T9o = T86 + T85;	       }	  }	  {	       E TC, Tby, T2x, Tbu, T2N, Tbz, T7o, Tbv, TJ, TbB, TbC, T2E, T2G, Tbp, Tbs;	       E T7p, Tfj, Tfk;	       {		    E Tw, Tx, Ty, Tz, TA, TB;		    Tw = rio[WS(ios, 2)];		    Tx = iio[-WS(ios, 34)];		    Ty = Tw + Tx;		    Tz = rio[WS(ios, 18)];		    TA = iio[-WS(ios, 50)];		    TB = Tz + TA;		    TC = Ty + TB;		    Tby = Tz - TA;		    T2x = Ty - TB;		    Tbu = Tw - Tx;	       }	       {		    E T2H, T2I, T2J, T2K, T2L, T2M;		    T2H = iio[-WS(ios, 2)];		    T2I = rio[WS(ios, 34)];		    T2J = T2H - T2I;		    T2K = iio[-WS(ios, 18)];		    T2L = rio[WS(ios, 50)];		    T2M = T2K - T2L;		    T2N = T2J - T2M;		    Tbz = T2H + T2I;		    T7o = T2J + T2M;		    Tbv = T2K + T2L;	       }	       {		    E TF, Tbr, T2A, Tbq, TI, Tbn, T2D, Tbo;		    {			 E TD, TE, T2y, T2z;			 TD = rio[WS(ios, 10)];			 TE = iio[-WS(ios, 42)];			 TF = TD + TE;			 Tbr = TD - TE;			 T2y = iio[-WS(ios, 10)];			 T2z = rio[WS(ios, 42)];			 T2A = T2y - T2z;			 Tbq = T2y + T2z;		    }		    {			 E TG, TH, T2B, T2C;			 TG = iio[-WS(ios, 58)];			 TH = rio[WS(ios, 26)];			 TI = TG + TH;			 Tbn = TG - TH;			 T2B = iio[-WS(ios, 26)];			 T2C = rio[WS(ios, 58)];			 T2D = T2B - T2C;			 Tbo = T2C + T2B;		    }		    TJ = TF + TI;		    TbB = Tbr + Tbq;		    TbC = Tbn + Tbo;		    T2E = T2A - T2D;		    T2G = TI - TF;		    Tbp = Tbn - Tbo;		    Tbs = Tbq - Tbr;		    T7p = T2A + T2D;	       }	       TK = TC + TJ;	       T93 = T7p + T7o;	       {		    E T2F, T2O, Tfm, Tfn;		    T2F = T2x + T2E;		    T2O = T2G + T2N;		    T2P = FMA(KP923879532, T2F, KP382683432 * T2O);		    T4F = FNMS(KP382683432, T2F, KP923879532 * T2O);		    Tfm = KP707106781 * (TbB + TbC);		    Tfn = Tbu + Tbv;		    Tfo = Tfm + Tfn;		    Thz = Tfn - Tfm;	       }	       {		    E T5R, T5S, Tbt, Tbw;		    T5R = T2x - T2E;		    T5S = T2N - T2G;		    T5T = FNMS(KP382683432, T5S, KP923879532 * T5R);		    T6j = FMA(KP382683432, T5R, KP923879532 * T5S);		    Tbt = KP707106781 * (Tbp - Tbs);		    Tbw = Tbu - Tbv;		    Tbx = Tbt + Tbw;		    TdI = Tbw - Tbt;	       }	       Tfj = Tbz - Tby;	       Tfk = KP707106781 * (Tbs + Tbp);	       Tfl = Tfj + Tfk;	       ThA = Tfj - Tfk;	       {		    E T7n, T7q, TbA, TbD;		    T7n = TC - TJ;		    T7q = T7o - T7p;		    T7r = T7n + T7q;		    T81 = T7q - T7n;		    TbA = Tby + Tbz;		    TbD = KP707106781 * (TbB - TbC);		    TbE = TbA + TbD;		    TdH = TbA - TbD;	       }	  }	  {	       E TR, TbU, T2Q, TbN, T36, TbV, T7t, TbO, TY, TbR, TbS, T2X, T2Z, TbI, TbL;	       E T7u, Tfq, Tfr;	       {		    E TL, TM, TN, TO, TP, TQ;		    TL = iio[-WS(ios, 62)];		    TM = rio[WS(ios, 30)];		    TN = TL + TM;		    TO = rio[WS(ios, 14)];		    TP = iio[-WS(ios, 46)];		    TQ = TO + TP;		    TR = TN + TQ;		    TbU = TL - TM;		    T2Q = TN - TQ;		    TbN = TO - TP;	       }	       {		    E T30, T31, T32, T33, T34, T35;		    T30 = iio[-WS(ios, 30)];		    T31 = rio[WS(ios, 62)];		    T32 = T30 - T31;		    T33 = iio[-WS(ios, 14)];		    T34 = rio[WS(ios, 46)];		    T35 = T33 - T34;		    T36 = T32 - T35;		    TbV = T33 + T34;		    T7t = T32 + T35;		    TbO = T31 + T30;	       }	       {		    E TU, TbG, T2T, TbH, TX, TbJ, T2W, TbK;		    {			 E TS, TT, T2R, T2S;			 TS = rio[WS(ios, 6)];			 TT = iio[-WS(ios, 38)];			 TU = TS + TT;			 TbG = TS - TT;			 T2R = iio[-WS(ios, 6)];			 T2S = rio[WS(ios, 38)];			 T2T = T2R - T2S;			 TbH = T2R + T2S;		    }		    {			 E TV, TW, T2U, T2V;			 TV = iio[-WS(ios, 54)];			 TW = rio[WS(ios, 22)];			 TX = TV + TW;			 TbJ = TV - TW;			 T2U = iio[-WS(ios, 22)];			 T2V = rio[WS(ios, 54)];			 T2W = T2U - T2V;			 TbK = T2V + T2U;		    }		    TY = TU + TX;		    TbR = TbJ - TbK;		    TbS = TbH - TbG;		    T2X = T2T - T2W;		    T2Z = TX - TU;		    TbI = TbG + TbH;		    TbL = TbJ + TbK;		    T7u = T2T + T2W;	       }	       TZ = TR + TY;	       T94 = T7u + T7t;	       {		    E T2Y, T37, Tft, Tfu;		    T2Y = T2Q + T2X;		    T37 = T2Z + T36;		    T38 = FNMS(KP382683432, T37, KP923879532 * T2Y);		    T4G = FMA(KP382683432, T2Y, KP923879532 * T37);		    Tft = KP707106781 * (TbI + TbL);		    Tfu = TbU + TbV;		    Tfv = Tft + Tfu;		    ThC = Tfu - Tft;	       }	       {		    E T5U, T5V, TbM, TbP;		    T5U = T2Q - T2X;		    T5V = T36 - T2Z;		    T5W = FMA(KP923879532, T5U, KP382683432 * T5V);		    T6k = FNMS(KP382683432, T5U, KP923879532 * T5V);		    TbM = KP707106781 * (TbI - TbL);		    TbP = TbN - TbO;		    TbQ = TbM + TbP;		    TdK = TbP - TbM;	       }	       Tfq = KP707106781 * (TbS + TbR);	       Tfr = TbN + TbO;	       Tfs = Tfq - Tfr;	       ThD = Tfq + Tfr;	       {		    E T7s, T7v, TbT, TbW;		    T7s = TR - TY;		    T7v = T7t - T7u;		    T7w = T7s - T7v;		    T82 = T7s + T7v;		    TbT = KP707106781 * (TbR - TbS);		    TbW = TbU - TbV;		    TbX = TbT + TbW;		    TdL = TbW - TbT;	       }	  }	  {	       E Ti, T2g, Tl, T2j, T2d, T2k, Tfc, Tfb, Tc5, Tc2, Tp, T2p, Ts, T2s, T2m;	       E T2t, Tff, Tfe, Tcc, Tc9;	       {		    E Tc0, Tc4, Tc3, Tc1;		    {			 E Tg, Th, T2e, T2f;			 Tg = rio[WS(ios, 4)];			 Th = iio[-WS(ios, 36)];			 Ti = Tg + Th;			 Tc0 = Tg - Th;			 T2e = iio[-WS(ios, 4)];			 T2f = rio[WS(ios, 36)];			 T2g = T2e - T2f;			 Tc4 = T2e + T2f;		    }		    {			 E Tj, Tk, T2h, T2i;			 Tj = rio[WS(ios, 20)];			 Tk = iio[-WS(ios, 52)];			 Tl = Tj + Tk;			 Tc3 = Tj - Tk;			 T2h = iio[-WS(ios, 20)];			 T2i = rio[WS(ios, 52)];			 T2j = T2h - T2i;			 Tc1 = T2h + T2i;		    }		    T2d = Ti - Tl;		    T2k = T2g - T2j;		    Tfc = Tc0 + Tc1;		    Tfb = Tc4 - Tc3;		    Tc5 = Tc3 + Tc4;		    Tc2 = Tc0 - Tc1;	       }	       {		    E Tc7, Tcb, Tca, Tc8;		    {			 E Tn, To, T2n, T2o;			 Tn = iio[-WS(ios, 60)];			 To = rio[WS(ios, 28)];			 Tp = Tn + To;			 Tc7 = Tn - To;			 T2n = iio[-WS(ios, 28)];			 T2o = rio[WS(ios, 60)];			 T2p = T2n - T2o;			 Tcb = T2o + T2n;		    }		    {			 E Tq, Tr, T2q, T2r;			 Tq = rio[WS(ios, 12)];			 Tr = iio[-WS(ios, 44)];			 Ts = Tq + Tr;			 Tca = Tq - Tr;			 T2q = iio[-WS(ios, 12)];			 T2r = rio[WS(ios, 44)];			 T2s = T2q - T2r;			 Tc8 = T2q + T2r;		    }		    T2m = Tp - Ts;		    T2t = T2p - T2s;		    Tff = Tca + Tcb;		    Tfe = Tc7 + Tc8;		    Tcc = Tca - Tcb;		    Tc9 = Tc7 - Tc8;	       }	       {		    E Tm, Tt, Tfd, Tfg;		    Tm = Ti + Tl;		    Tt = Tp + Ts;		    Tu = Tm + Tt;		    T84 = Tt - Tm;		    Tfd = FNMS(KP382683432, Tfc, KP923879532 * Tfb);		    Tfg = FNMS(KP923879532, Tff, KP382683432 * Tfe);		    Tfh = Tfd + Tfg;		    ThG = Tfg - Tfd;	       }	       {		    E Tgk, Tgl, T2l, T2u;		    Tgk = FMA(KP382683432, Tfb, KP923879532 * Tfc);		    Tgl = FMA(KP923879532, Tfe, KP382683432 * Tff);		    Tgm = Tgk + Tgl;		    ThN = Tgk - Tgl;		    T2l = T2d + T2k;		    T2u = T2m - T2t;		    T2v = KP707106781 * (T2l + T2u);		    T6m = KP707106781 * (T2l - T2u);	       }	       {		    E T4I, T4J, Tc6, Tcd;		    T4I = T2k - T2d;		    T4J = T2m + T2t;		    T4K = KP707106781 * (T4I + T4J);		    T5P = KP707106781 * (T4J - T4I);		    Tc6 = FNMS(KP382683432, Tc5, KP923879532 * Tc2);		    Tcd = FMA(KP923879532, Tc9, KP382683432 * Tcc);		    Tce = Tc6 + Tcd;		    TdF = Tcd - Tc6;	       }	       {		    E TcB, TcC, T7j, T7k;		    TcB = FMA(KP923879532, Tc5, KP382683432 * Tc2);		    TcC = FNMS(KP382683432, Tc9, KP923879532 * Tcc);		    TcD = TcB + TcC;		    Tec = TcB - TcC;		    T7j = T2g + T2j;		    T7k = T2s + T2p;		    T7l = T7j - T7k;		    T9p = T7j + T7k;	       }	  }	  {	       E T1z, T1C, T1D, Tbg, TaQ, T4r, T4u, T7Q, Tbh, TaR, T1G, T3V, T1J, T3Y, T1K;	       E T7R, Tbe, Tbd, TaO, TaL, T1S, TfV, TfW, T41, T48, TaW, TaZ, T7L, T1Z, TfY;	       E TfZ, T4a, T4h, Tb3, Tb6, T7M;	       {		    E T1x, T1y, T1A, T1B;		    T1x = iio[-WS(ios, 63)];		    T1y = rio[WS(ios, 31)];		    T1z = T1x + T1y;		    T1A = rio[WS(ios, 15)];		    T1B = iio[-WS(ios, 47)];		    T1C = T1A + T1B;		    T1D = T1z + T1C;		    Tbg = T1x - T1y;		    TaQ = T1A - T1B;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -