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

📄 mr2hc_128.c

📁 fftw-3.0.1
💻 C
📖 第 1 页 / 共 3 页
字号:
/* * 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 128 -name mr2hc_128 -include r2hc.h *//* * This function contains 956 FP additions, 330 FP multiplications, * (or, 812 additions, 186 multiplications, 144 fused multiply/add), * 185 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_r2hc_noinline.ml,v 1.1 2003/04/17 19:25:50 athena Exp $ */#include "r2hc.h"static void mr2hc_128_0(const R *I, R *ro, R *io, stride is, stride ros, stride ios){     DK(KP803207531, +0.803207531480644909806676512963141923879569427);     DK(KP595699304, +0.595699304492433343467036528829969889511926338);     DK(KP146730474, +0.146730474455361751658850129646717819706215317);     DK(KP989176509, +0.989176509964780973451673738016243063983689533);     DK(KP740951125, +0.740951125354959091175616897495162729728955309);     DK(KP671558954, +0.671558954847018400625376850427421803228750632);     DK(KP049067674, +0.049067674327418014254954976942682658314745363);     DK(KP998795456, +0.998795456205172392714771604759100694443203615);     DK(KP242980179, +0.242980179903263889948274162077471118320990783);     DK(KP970031253, +0.970031253194543992603984207286100251456865962);     DK(KP514102744, +0.514102744193221726593693838968815772608049120);     DK(KP857728610, +0.857728610000272069902269984284770137042490799);     DK(KP336889853, +0.336889853392220050689253212619147570477766780);     DK(KP941544065, +0.941544065183020778412509402599502357185589796);     DK(KP427555093, +0.427555093430282094320966856888798534304578629);     DK(KP903989293, +0.903989293123443331586200297230537048710132025);     DK(KP098017140, +0.098017140329560601994195563888641845861136673);     DK(KP995184726, +0.995184726672196886244836953109479921575474869);     DK(KP634393284, +0.634393284163645498215171613225493370675687095);     DK(KP773010453, +0.773010453362736960810906609758469800971041293);     DK(KP881921264, +0.881921264348355029712756863660388349508442621);     DK(KP471396736, +0.471396736825997648556387625905254377657460319);     DK(KP956940335, +0.956940335732208864935797886980269969482849206);     DK(KP290284677, +0.290284677254462367636192375817395274691476278);     DK(KP555570233, +0.555570233019602224742830813948532874374937191);     DK(KP831469612, +0.831469612302545237078788377617905756738560812);     DK(KP195090322, +0.195090322016128267848284868477022240927691618);     DK(KP980785280, +0.980785280403230449126182236134239036973933731);     DK(KP382683432, +0.382683432365089771728459984030398866761344562);     DK(KP923879532, +0.923879532511286756128183189396788286822416626);     DK(KP707106781, +0.707106781186547524400844362104849039284835938);     {	  E TcD, TdU, T27, T7r, T5S, T8y, Tf, Ta5, Tu, Tbq, TcG, TdV, T2e, T8z, T5V;	  E T7s, TK, Ta6, TcK, TdX, T2o, T5X, T7w, T8B, TZ, Ta7, TcN, TdY, T2x, T5Y;	  E T7z, T8C, T1g, Taa, TcU, TeA, TcX, Tez, T1v, Tab, T2M, T6z, T7E, T9e, T7H;	  E T9d, T2T, T6A, T4X, T6L, Tdz, TeL, TdK, TeP, T5G, T6P, T8d, T9p, TaV, Tc3;	  E Tbi, Tc4, T8o, T9t, T3I, T6H, Tde, TeH, Tdp, TeF, T4r, T6F, T7U, T9l, Tao;	  E TbW, TaL, TbX, T85, T9j, T1L, Tad, Td3, Tew, Td6, Tex, T20, Tae, T37, T6x;	  E T7L, T9a, T7O, T9b, T3e, T6w, TbZ, Tc0, T3Z, T4s, Tds, TeI, T4g, T4t, T80;	  E T87, Tdl, TeE, T7X, T86, TaD, TaM, Tc6, Tc7, T5e, T5H, TdN, TeM, T5v, T5I;	  E T8j, T8q, TdG, TeO, T8g, T8p, Tba, Tbj;	  {	       E T3, T23, Td, T25, T6, T5R, Ta, T24;	       {		    E T1, T2, Tb, Tc;		    T1 = I[0];		    T2 = I[WS(is, 64)];		    T3 = T1 + T2;		    T23 = T1 - T2;		    Tb = I[WS(is, 112)];		    Tc = I[WS(is, 48)];		    Td = Tb + Tc;		    T25 = Tb - Tc;	       }	       {		    E T4, T5, T8, T9;		    T4 = I[WS(is, 32)];		    T5 = I[WS(is, 96)];		    T6 = T4 + T5;		    T5R = T4 - T5;		    T8 = I[WS(is, 16)];		    T9 = I[WS(is, 80)];		    Ta = T8 + T9;		    T24 = T8 - T9;	       }	       TcD = T3 - T6;	       TdU = Td - Ta;	       {		    E T26, T5Q, T7, Te;		    T26 = KP707106781 * (T24 + T25);		    T27 = T23 + T26;		    T7r = T23 - T26;		    T5Q = KP707106781 * (T25 - T24);		    T5S = T5Q - T5R;		    T8y = T5R + T5Q;		    T7 = T3 + T6;		    Te = Ta + Td;		    Tf = T7 + Te;		    Ta5 = T7 - Te;	       }	  }	  {	       E Ti, T28, Ts, T2c, Tl, T29, Tp, T2b;	       {		    E Tg, Th, Tq, Tr;		    Tg = I[WS(is, 8)];		    Th = I[WS(is, 72)];		    Ti = Tg + Th;		    T28 = Tg - Th;		    Tq = I[WS(is, 24)];		    Tr = I[WS(is, 88)];		    Ts = Tq + Tr;		    T2c = Tq - Tr;	       }	       {		    E Tj, Tk, Tn, To;		    Tj = I[WS(is, 40)];		    Tk = I[WS(is, 104)];		    Tl = Tj + Tk;		    T29 = Tj - Tk;		    Tn = I[WS(is, 120)];		    To = I[WS(is, 56)];		    Tp = Tn + To;		    T2b = Tn - To;	       }	       {		    E Tm, Tt, TcE, TcF;		    Tm = Ti + Tl;		    Tt = Tp + Ts;		    Tu = Tm + Tt;		    Tbq = Tt - Tm;		    TcE = Ti - Tl;		    TcF = Tp - Ts;		    TcG = KP707106781 * (TcE + TcF);		    TdV = KP707106781 * (TcF - TcE);	       }	       {		    E T2a, T2d, T5T, T5U;		    T2a = FNMS(KP382683432, T29, KP923879532 * T28);		    T2d = FMA(KP923879532, T2b, KP382683432 * T2c);		    T2e = T2a + T2d;		    T8z = T2d - T2a;		    T5T = FNMS(KP923879532, T2c, KP382683432 * T2b);		    T5U = FMA(KP382683432, T28, KP923879532 * T29);		    T5V = T5T - T5U;		    T7s = T5U + T5T;	       }	  }	  {	       E Ty, T2g, TB, T2m, TF, T2l, TI, T2j;	       {		    E Tw, Tx, Tz, TA;		    Tw = I[WS(is, 4)];		    Tx = I[WS(is, 68)];		    Ty = Tw + Tx;		    T2g = Tw - Tx;		    Tz = I[WS(is, 36)];		    TA = I[WS(is, 100)];		    TB = Tz + TA;		    T2m = Tz - TA;		    {			 E TD, TE, T2h, TG, TH, T2i;			 TD = I[WS(is, 20)];			 TE = I[WS(is, 84)];			 T2h = TD - TE;			 TG = I[WS(is, 116)];			 TH = I[WS(is, 52)];			 T2i = TG - TH;			 TF = TD + TE;			 T2l = KP707106781 * (T2i - T2h);			 TI = TG + TH;			 T2j = KP707106781 * (T2h + T2i);		    }	       }	       {		    E TC, TJ, TcI, TcJ;		    TC = Ty + TB;		    TJ = TF + TI;		    TK = TC + TJ;		    Ta6 = TC - TJ;		    TcI = Ty - TB;		    TcJ = TI - TF;		    TcK = FMA(KP923879532, TcI, KP382683432 * TcJ);		    TdX = FNMS(KP382683432, TcI, KP923879532 * TcJ);	       }	       {		    E T2k, T2n, T7u, T7v;		    T2k = T2g + T2j;		    T2n = T2l - T2m;		    T2o = FMA(KP980785280, T2k, KP195090322 * T2n);		    T5X = FNMS(KP195090322, T2k, KP980785280 * T2n);		    T7u = T2g - T2j;		    T7v = T2m + T2l;		    T7w = FMA(KP831469612, T7u, KP555570233 * T7v);		    T8B = FNMS(KP555570233, T7u, KP831469612 * T7v);	       }	  }	  {	       E TN, T2p, TQ, T2v, TU, T2u, TX, T2s;	       {		    E TL, TM, TO, TP;		    TL = I[WS(is, 124)];		    TM = I[WS(is, 60)];		    TN = TL + TM;		    T2p = TL - TM;		    TO = I[WS(is, 28)];		    TP = I[WS(is, 92)];		    TQ = TO + TP;		    T2v = TO - TP;		    {			 E TS, TT, T2q, TV, TW, T2r;			 TS = I[WS(is, 12)];			 TT = I[WS(is, 76)];			 T2q = TS - TT;			 TV = I[WS(is, 108)];			 TW = I[WS(is, 44)];			 T2r = TV - TW;			 TU = TS + TT;			 T2u = KP707106781 * (T2r - T2q);			 TX = TV + TW;			 T2s = KP707106781 * (T2q + T2r);		    }	       }	       {		    E TR, TY, TcL, TcM;		    TR = TN + TQ;		    TY = TU + TX;		    TZ = TR + TY;		    Ta7 = TR - TY;		    TcL = TN - TQ;		    TcM = TX - TU;		    TcN = FNMS(KP382683432, TcM, KP923879532 * TcL);		    TdY = FMA(KP382683432, TcL, KP923879532 * TcM);	       }	       {		    E T2t, T2w, T7x, T7y;		    T2t = T2p + T2s;		    T2w = T2u - T2v;		    T2x = FNMS(KP195090322, T2w, KP980785280 * T2t);		    T5Y = FMA(KP195090322, T2t, KP980785280 * T2w);		    T7x = T2p - T2s;		    T7y = T2v + T2u;		    T7z = FNMS(KP555570233, T7y, KP831469612 * T7x);		    T8C = FMA(KP555570233, T7x, KP831469612 * T7y);	       }	  }	  {	       E T14, T2N, T17, T2D, T1b, T2O, T1e, T2C, T1j, T1m, T2K, TcR, T2Q, T1q, T1t;	       E T2H, TcS, T2R;	       {		    E T12, T13, T15, T16;		    T12 = I[WS(is, 2)];		    T13 = I[WS(is, 66)];		    T14 = T12 + T13;		    T2N = T12 - T13;		    T15 = I[WS(is, 34)];		    T16 = I[WS(is, 98)];		    T17 = T15 + T16;		    T2D = T15 - T16;	       }	       {		    E T19, T1a, T2B, T1c, T1d, T2A;		    T19 = I[WS(is, 18)];		    T1a = I[WS(is, 82)];		    T2B = T19 - T1a;		    T1c = I[WS(is, 114)];		    T1d = I[WS(is, 50)];		    T2A = T1c - T1d;		    T1b = T19 + T1a;		    T2O = KP707106781 * (T2B + T2A);		    T1e = T1c + T1d;		    T2C = KP707106781 * (T2A - T2B);	       }	       {		    E T2I, T2J, T2F, T2G;		    {			 E T1h, T1i, T1k, T1l;			 T1h = I[WS(is, 10)];			 T1i = I[WS(is, 74)];			 T1j = T1h + T1i;			 T2I = T1h - T1i;			 T1k = I[WS(is, 42)];			 T1l = I[WS(is, 106)];			 T1m = T1k + T1l;			 T2J = T1k - T1l;		    }		    T2K = FMA(KP382683432, T2I, KP923879532 * T2J);		    TcR = T1j - T1m;		    T2Q = FNMS(KP382683432, T2J, KP923879532 * T2I);		    {			 E T1o, T1p, T1r, T1s;			 T1o = I[WS(is, 122)];			 T1p = I[WS(is, 58)];			 T1q = T1o + T1p;			 T2F = T1o - T1p;			 T1r = I[WS(is, 26)];			 T1s = I[WS(is, 90)];			 T1t = T1r + T1s;			 T2G = T1r - T1s;		    }		    T2H = FNMS(KP923879532, T2G, KP382683432 * T2F);		    TcS = T1q - T1t;		    T2R = FMA(KP923879532, T2F, KP382683432 * T2G);	       }	       {		    E T18, T1f, TcQ, TcT;		    T18 = T14 + T17;		    T1f = T1b + T1e;		    T1g = T18 + T1f;		    Taa = T18 - T1f;		    TcQ = T14 - T17;		    TcT = KP707106781 * (TcR + TcS);		    TcU = TcQ + TcT;		    TeA = TcQ - TcT;	       }	       {		    E TcV, TcW, T1n, T1u;		    TcV = T1e - T1b;		    TcW = KP707106781 * (TcS - TcR);		    TcX = TcV + TcW;		    Tez = TcW - TcV;		    T1n = T1j + T1m;		    T1u = T1q + T1t;		    T1v = T1n + T1u;		    Tab = T1u - T1n;	       }	       {		    E T2E, T2L, T7C, T7D;		    T2E = T2C - T2D;		    T2L = T2H - T2K;		    T2M = T2E + T2L;		    T6z = T2L - T2E;		    T7C = T2N - T2O;		    T7D = T2K + T2H;		    T7E = T7C + T7D;		    T9e = T7C - T7D;	       }	       {		    E T7F, T7G, T2P, T2S;		    T7F = T2D + T2C;		    T7G = T2R - T2Q;		    T7H = T7F + T7G;		    T9d = T7G - T7F;		    T2P = T2N + T2O;		    T2S = T2Q + T2R;		    T2T = T2P + T2S;		    T6A = T2P - T2S;	       }	  }	  {	       E T4z, TaP, T5B, TaQ, T4G, TaT, T5y, TaS, Tbf, Tbg, T4O, Tdw, T5E, Tbc, Tbd;	       E T4V, Tdx, T5D;	       {		    E T4x, T4y, T5z, T5A;		    T4x = I[WS(is, 127)];		    T4y = I[WS(is, 63)];		    T4z = T4x - T4y;		    TaP = T4x + T4y;		    T5z = I[WS(is, 31)];		    T5A = I[WS(is, 95)];		    T5B = T5z - T5A;		    TaQ = T5z + T5A;	       }	       {		    E T4A, T4B, T4C, T4D, T4E, T4F;		    T4A = I[WS(is, 15)];		    T4B = I[WS(is, 79)];		    T4C = T4A - T4B;		    T4D = I[WS(is, 111)];		    T4E = I[WS(is, 47)];		    T4F = T4D - T4E;		    T4G = KP707106781 * (T4C + T4F);		    TaT = T4D + T4E;		    T5y = KP707106781 * (T4F - T4C);		    TaS = T4A + T4B;	       }	       {		    E T4K, T4N, T4R, T4U;		    {			 E T4I, T4J, T4L, T4M;			 T4I = I[WS(is, 7)];			 T4J = I[WS(is, 71)];			 T4K = T4I - T4J;			 Tbf = T4I + T4J;			 T4L = I[WS(is, 39)];			 T4M = I[WS(is, 103)];			 T4N = T4L - T4M;			 Tbg = T4L + T4M;		    }		    T4O = FNMS(KP382683432, T4N, KP923879532 * T4K);		    Tdw = Tbf - Tbg;		    T5E = FMA(KP382683432, T4K, KP923879532 * T4N);		    {			 E T4P, T4Q, T4S, T4T;			 T4P = I[WS(is, 119)];			 T4Q = I[WS(is, 55)];			 T4R = T4P - T4Q;			 Tbc = T4P + T4Q;			 T4S = I[WS(is, 23)];			 T4T = I[WS(is, 87)];			 T4U = T4S - T4T;			 Tbd = T4S + T4T;		    }		    T4V = FMA(KP923879532, T4R, KP382683432 * T4U);		    Tdx = Tbc - Tbd;		    T5D = FNMS(KP923879532, T4U, KP382683432 * T4R);	       }	       {		    E T4H, T4W, Tdv, Tdy;		    T4H = T4z + T4G;		    T4W = T4O + T4V;		    T4X = T4H + T4W;		    T6L = T4H - T4W;		    Tdv = TaP - TaQ;		    Tdy = KP707106781 * (Tdw + Tdx);		    Tdz = Tdv + Tdy;		    TeL = Tdv - Tdy;	       }	       {		    E TdI, TdJ, T5C, T5F;		    TdI = TaT - TaS;		    TdJ = KP707106781 * (Tdx - Tdw);		    TdK = TdI + TdJ;		    TeP = TdJ - TdI;		    T5C = T5y - T5B;		    T5F = T5D - T5E;		    T5G = T5C + T5F;		    T6P = T5F - T5C;	       }	       {		    E T8b, T8c, TaR, TaU;		    T8b = T4z - T4G;		    T8c = T5E + T5D;		    T8d = T8b + T8c;		    T9p = T8b - T8c;		    TaR = TaP + TaQ;		    TaU = TaS + TaT;		    TaV = TaR - TaU;		    Tc3 = TaR + TaU;	       }	       {		    E Tbe, Tbh, T8m, T8n;		    Tbe = Tbc + Tbd;		    Tbh = Tbf + Tbg;		    Tbi = Tbe - Tbh;		    Tc4 = Tbh + Tbe;		    T8m = T5B + T5y;		    T8n = T4V - T4O;		    T8o = T8m + T8n;		    T9t = T8n - T8m;	       }	  }	  {	       E T3k, Tai, T4m, Taj, T3r, Tam, T4j, Tal, TaI, TaJ, T3z, Tdb, T4p, TaF, TaG;	       E T3G, Tdc, T4o;	       {		    E T3i, T3j, T4k, T4l;		    T3i = I[WS(is, 1)];		    T3j = I[WS(is, 65)];		    T3k = T3i - T3j;		    Tai = T3i + T3j;		    T4k = I[WS(is, 33)];		    T4l = I[WS(is, 97)];		    T4m = T4k - T4l;		    Taj = T4k + T4l;	       }	       {		    E T3l, T3m, T3n, T3o, T3p, T3q;		    T3l = I[WS(is, 17)];		    T3m = I[WS(is, 81)];		    T3n = T3l - T3m;		    T3o = I[WS(is, 113)];		    T3p = I[WS(is, 49)];		    T3q = T3o - T3p;		    T3r = KP707106781 * (T3n + T3q);		    Tam = T3o + T3p;		    T4j = KP707106781 * (T3q - T3n);		    Tal = T3l + T3m;	       }	       {		    E T3v, T3y, T3C, T3F;		    {			 E T3t, T3u, T3w, T3x;			 T3t = I[WS(is, 9)];			 T3u = I[WS(is, 73)];			 T3v = T3t - T3u;			 TaI = T3t + T3u;			 T3w = I[WS(is, 41)];			 T3x = I[WS(is, 105)];			 T3y = T3w - T3x;			 TaJ = T3w + T3x;		    }		    T3z = FNMS(KP382683432, T3y, KP923879532 * T3v);		    Tdb = TaI - TaJ;		    T4p = FMA(KP382683432, T3v, KP923879532 * T3y);		    {			 E T3A, T3B, T3D, T3E;			 T3A = I[WS(is, 121)];			 T3B = I[WS(is, 57)];			 T3C = T3A - T3B;			 TaF = T3A + T3B;			 T3D = I[WS(is, 25)];			 T3E = I[WS(is, 89)];			 T3F = T3D - T3E;			 TaG = T3D + T3E;		    }		    T3G = FMA(KP923879532, T3C, KP382683432 * T3F);		    Tdc = TaF - TaG;		    T4o = FNMS(KP923879532, T3F, KP382683432 * T3C);	       }	       {		    E T3s, T3H, Tda, Tdd;		    T3s = T3k + T3r;		    T3H = T3z + T3G;		    T3I = T3s + T3H;		    T6H = T3s - T3H;		    Tda = Tai - Taj;		    Tdd = KP707106781 * (Tdb + Tdc);		    Tde = Tda + Tdd;		    TeH = Tda - Tdd;	       }	       {		    E Tdn, Tdo, T4n, T4q;		    Tdn = Tam - Tal;		    Tdo = KP707106781 * (Tdc - Tdb);		    Tdp = Tdn + Tdo;		    TeF = Tdo - Tdn;

⌨️ 快捷键说明

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