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

📄 mr2hc_64.c

📁 fftw-3.0.1
💻 C
📖 第 1 页 / 共 2 页
字号:
/* * 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:56:49 EDT 2003 */#include "codelet-rdft.h"/* Generated by: /homee/stevenj/cvs/fftw3.0.1/genfft/gen_r2hc_noinline -compact -variables 4 -n 64 -name mr2hc_64 -include r2hc.h *//* * This function contains 394 FP additions, 124 FP multiplications, * (or, 342 additions, 72 multiplications, 52 fused multiply/add), * 105 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_r2hc_noinline.ml,v 1.1 2003/04/17 19:25:50 athena Exp $ */#include "r2hc.h"static void mr2hc_64_0(const R *I, R *ro, R *io, stride is, stride ros, stride ios){     DK(KP773010453, +0.773010453362736960810906609758469800971041293);     DK(KP634393284, +0.634393284163645498215171613225493370675687095);     DK(KP098017140, +0.098017140329560601994195563888641845861136673);     DK(KP995184726, +0.995184726672196886244836953109479921575474869);     DK(KP290284677, +0.290284677254462367636192375817395274691476278);     DK(KP956940335, +0.956940335732208864935797886980269969482849206);     DK(KP471396736, +0.471396736825997648556387625905254377657460319);     DK(KP881921264, +0.881921264348355029712756863660388349508442621);     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);     {	  E T4l, T5a, T15, T3n, T2T, T3Q, T7, Te, Tf, T4A, T4L, T1X, T3B, T23, T3y;	  E T5I, T66, T4R, T52, T2j, T3F, T2H, T3I, T5P, T69, T1i, T3t, T1l, T3u, TZ;	  E T63, T4v, T58, T1r, T3r, T1u, T3q, TK, T62, T4s, T57, Tm, Tt, Tu, T4o;	  E T5b, T1c, T3R, T2Q, T3o, T1M, T3z, T5L, T67, T26, T3C, T4H, T4M, T2y, T3J;	  E T5S, T6a, T2C, T3G, T4Y, T53;	  {	       E T3, T11, Td, T13, T6, T2S, Ta, T12, T14, T2R;	       {		    E T1, T2, Tb, Tc;		    T1 = I[0];		    T2 = I[WS(is, 32)];		    T3 = T1 + T2;		    T11 = T1 - T2;		    Tb = I[WS(is, 56)];		    Tc = I[WS(is, 24)];		    Td = Tb + Tc;		    T13 = Tb - Tc;	       }	       {		    E T4, T5, T8, T9;		    T4 = I[WS(is, 16)];		    T5 = I[WS(is, 48)];		    T6 = T4 + T5;		    T2S = T4 - T5;		    T8 = I[WS(is, 8)];		    T9 = I[WS(is, 40)];		    Ta = T8 + T9;		    T12 = T8 - T9;	       }	       T4l = T3 - T6;	       T5a = Td - Ta;	       T14 = KP707106781 * (T12 + T13);	       T15 = T11 + T14;	       T3n = T11 - T14;	       T2R = KP707106781 * (T13 - T12);	       T2T = T2R - T2S;	       T3Q = T2S + T2R;	       T7 = T3 + T6;	       Te = Ta + Td;	       Tf = T7 + Te;	  }	  {	       E T1P, T4J, T21, T4y, T1S, T4K, T1W, T4z;	       {		    E T1N, T1O, T1Z, T20;		    T1N = I[WS(is, 57)];		    T1O = I[WS(is, 25)];		    T1P = T1N - T1O;		    T4J = T1N + T1O;		    T1Z = I[WS(is, 1)];		    T20 = I[WS(is, 33)];		    T21 = T1Z - T20;		    T4y = T1Z + T20;	       }	       {		    E T1Q, T1R, T1U, T1V;		    T1Q = I[WS(is, 9)];		    T1R = I[WS(is, 41)];		    T1S = T1Q - T1R;		    T4K = T1Q + T1R;		    T1U = I[WS(is, 17)];		    T1V = I[WS(is, 49)];		    T1W = T1U - T1V;		    T4z = T1U + T1V;	       }	       T4A = T4y - T4z;	       T4L = T4J - T4K;	       {		    E T1T, T22, T5G, T5H;		    T1T = KP707106781 * (T1P - T1S);		    T1X = T1T - T1W;		    T3B = T1W + T1T;		    T22 = KP707106781 * (T1S + T1P);		    T23 = T21 + T22;		    T3y = T21 - T22;		    T5G = T4y + T4z;		    T5H = T4K + T4J;		    T5I = T5G + T5H;		    T66 = T5G - T5H;	       }	  }	  {	       E T2b, T4P, T2G, T4Q, T2e, T51, T2h, T50;	       {		    E T29, T2a, T2E, T2F;		    T29 = I[WS(is, 63)];		    T2a = I[WS(is, 31)];		    T2b = T29 - T2a;		    T4P = T29 + T2a;		    T2E = I[WS(is, 15)];		    T2F = I[WS(is, 47)];		    T2G = T2E - T2F;		    T4Q = T2E + T2F;	       }	       {		    E T2c, T2d, T2f, T2g;		    T2c = I[WS(is, 7)];		    T2d = I[WS(is, 39)];		    T2e = T2c - T2d;		    T51 = T2c + T2d;		    T2f = I[WS(is, 55)];		    T2g = I[WS(is, 23)];		    T2h = T2f - T2g;		    T50 = T2f + T2g;	       }	       T4R = T4P - T4Q;	       T52 = T50 - T51;	       {		    E T2i, T2D, T5N, T5O;		    T2i = KP707106781 * (T2e + T2h);		    T2j = T2b + T2i;		    T3F = T2b - T2i;		    T2D = KP707106781 * (T2h - T2e);		    T2H = T2D - T2G;		    T3I = T2G + T2D;		    T5N = T4P + T4Q;		    T5O = T51 + T50;		    T5P = T5N + T5O;		    T69 = T5N - T5O;	       }	  }	  {	       E TN, T1e, TX, T1g, TQ, T1k, TU, T1f, T1h, T1j;	       {		    E TL, TM, TV, TW;		    TL = I[WS(is, 62)];		    TM = I[WS(is, 30)];		    TN = TL + TM;		    T1e = TL - TM;		    TV = I[WS(is, 54)];		    TW = I[WS(is, 22)];		    TX = TV + TW;		    T1g = TV - TW;	       }	       {		    E TO, TP, TS, TT;		    TO = I[WS(is, 14)];		    TP = I[WS(is, 46)];		    TQ = TO + TP;		    T1k = TO - TP;		    TS = I[WS(is, 6)];		    TT = I[WS(is, 38)];		    TU = TS + TT;		    T1f = TS - TT;	       }	       T1h = KP707106781 * (T1f + T1g);	       T1i = T1e + T1h;	       T3t = T1e - T1h;	       T1j = KP707106781 * (T1g - T1f);	       T1l = T1j - T1k;	       T3u = T1k + T1j;	       {		    E TR, TY, T4t, T4u;		    TR = TN + TQ;		    TY = TU + TX;		    TZ = TR + TY;		    T63 = TR - TY;		    T4t = TN - TQ;		    T4u = TX - TU;		    T4v = FNMS(KP382683432, T4u, KP923879532 * T4t);		    T58 = FMA(KP382683432, T4t, KP923879532 * T4u);	       }	  }	  {	       E Ty, T1s, TI, T1n, TB, T1q, TF, T1o, T1p, T1t;	       {		    E Tw, Tx, TG, TH;		    Tw = I[WS(is, 2)];		    Tx = I[WS(is, 34)];		    Ty = Tw + Tx;		    T1s = Tw - Tx;		    TG = I[WS(is, 58)];		    TH = I[WS(is, 26)];		    TI = TG + TH;		    T1n = TG - TH;	       }	       {		    E Tz, TA, TD, TE;		    Tz = I[WS(is, 18)];		    TA = I[WS(is, 50)];		    TB = Tz + TA;		    T1q = Tz - TA;		    TD = I[WS(is, 10)];		    TE = I[WS(is, 42)];		    TF = TD + TE;		    T1o = TD - TE;	       }	       T1p = KP707106781 * (T1n - T1o);	       T1r = T1p - T1q;	       T3r = T1q + T1p;	       T1t = KP707106781 * (T1o + T1n);	       T1u = T1s + T1t;	       T3q = T1s - T1t;	       {		    E TC, TJ, T4q, T4r;		    TC = Ty + TB;		    TJ = TF + TI;		    TK = TC + TJ;		    T62 = TC - TJ;		    T4q = Ty - TB;		    T4r = TI - TF;		    T4s = FMA(KP923879532, T4q, KP382683432 * T4r);		    T57 = FNMS(KP382683432, T4q, KP923879532 * T4r);	       }	  }	  {	       E Ti, T16, Ts, T1a, Tl, T17, Tp, T19, T4m, T4n;	       {		    E Tg, Th, Tq, Tr;		    Tg = I[WS(is, 4)];		    Th = I[WS(is, 36)];		    Ti = Tg + Th;		    T16 = Tg - Th;		    Tq = I[WS(is, 12)];		    Tr = I[WS(is, 44)];		    Ts = Tq + Tr;		    T1a = Tq - Tr;	       }	       {		    E Tj, Tk, Tn, To;		    Tj = I[WS(is, 20)];		    Tk = I[WS(is, 52)];		    Tl = Tj + Tk;		    T17 = Tj - Tk;		    Tn = I[WS(is, 60)];		    To = I[WS(is, 28)];		    Tp = Tn + To;		    T19 = Tn - To;	       }	       Tm = Ti + Tl;	       Tt = Tp + Ts;	       Tu = Tm + Tt;	       T4m = Ti - Tl;	       T4n = Tp - Ts;	       T4o = KP707106781 * (T4m + T4n);	       T5b = KP707106781 * (T4n - T4m);	       {		    E T18, T1b, T2O, T2P;		    T18 = FNMS(KP382683432, T17, KP923879532 * T16);		    T1b = FMA(KP923879532, T19, KP382683432 * T1a);		    T1c = T18 + T1b;		    T3R = T1b - T18;		    T2O = FNMS(KP923879532, T1a, KP382683432 * T19);		    T2P = FMA(KP382683432, T16, KP923879532 * T17);		    T2Q = T2O - T2P;		    T3o = T2P + T2O;	       }	  }	  {	       E T1A, T4E, T1K, T4C, T1D, T4F, T1H, T4B;	       {		    E T1y, T1z, T1I, T1J;		    T1y = I[WS(is, 61)];		    T1z = I[WS(is, 29)];		    T1A = T1y - T1z;		    T4E = T1y + T1z;		    T1I = I[WS(is, 21)];		    T1J = I[WS(is, 53)];		    T1K = T1I - T1J;		    T4C = T1I + T1J;	       }	       {		    E T1B, T1C, T1F, T1G;		    T1B = I[WS(is, 13)];		    T1C = I[WS(is, 45)];		    T1D = T1B - T1C;		    T4F = T1B + T1C;		    T1F = I[WS(is, 5)];		    T1G = I[WS(is, 37)];		    T1H = T1F - T1G;		    T4B = T1F + T1G;	       }	       {		    E T1E, T1L, T5J, T5K;		    T1E = FNMS(KP923879532, T1D, KP382683432 * T1A);		    T1L = FMA(KP382683432, T1H, KP923879532 * T1K);		    T1M = T1E - T1L;		    T3z = T1L + T1E;		    T5J = T4B + T4C;		    T5K = T4E + T4F;		    T5L = T5J + T5K;		    T67 = T5K - T5J;	       }	       {		    E T24, T25, T4D, T4G;		    T24 = FNMS(KP382683432, T1K, KP923879532 * T1H);		    T25 = FMA(KP923879532, T1A, KP382683432 * T1D);		    T26 = T24 + T25;		    T3C = T25 - T24;		    T4D = T4B - T4C;		    T4G = T4E - T4F;		    T4H = KP707106781 * (T4D + T4G);		    T4M = KP707106781 * (T4G - T4D);	       }	  }	  {	       E T2m, T4S, T2w, T4W, T2p, T4T, T2t, T4V;	       {		    E T2k, T2l, T2u, T2v;		    T2k = I[WS(is, 3)];		    T2l = I[WS(is, 35)];		    T2m = T2k - T2l;		    T4S = T2k + T2l;		    T2u = I[WS(is, 11)];		    T2v = I[WS(is, 43)];		    T2w = T2u - T2v;

⌨️ 快捷键说明

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