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

📄 mhc2r_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 22:11:20 EDT 2003 */#include "codelet-rdft.h"/* Generated by: /homee/stevenj/cvs/fftw3.0.1/genfft/gen_hc2r_noinline -compact -variables 4 -sign 1 -n 128 -name mhc2r_128 -include hc2r.h *//* * This function contains 956 FP additions, 342 FP multiplications, * (or, 812 additions, 198 multiplications, 144 fused multiply/add), * 197 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_hc2r_noinline.ml,v 1.1 2003/04/17 19:25:50 athena Exp $ */#include "hc2r.h"static void mhc2r_128_0(const R *ri, const R *ii, R *O, stride ris, stride iis, stride os){     DK(KP1_028205488, +1.028205488386443453187387677937631545216098241);     DK(KP1_715457220, +1.715457220000544139804539968569540274084981599);     DK(KP1_606415062, +1.606415062961289819613353025926283847759138854);     DK(KP1_191398608, +1.191398608984866686934073057659939779023852677);     DK(KP1_940062506, +1.940062506389087985207968414572200502913731924);     DK(KP485960359, +0.485960359806527779896548324154942236641981567);     DK(KP293460948, +0.293460948910723503317700259293435639412430633);     DK(KP1_978353019, +1.978353019929561946903347476032486127967379067);     DK(KP831469612, +0.831469612302545237078788377617905756738560812);     DK(KP555570233, +0.555570233019602224742830813948532874374937191);     DK(KP855110186, +0.855110186860564188641933713777597068609157259);     DK(KP1_807978586, +1.807978586246886663172400594461074097420264050);     DK(KP1_481902250, +1.481902250709918182351233794990325459457910619);     DK(KP1_343117909, +1.343117909694036801250753700854843606457501264);     DK(KP1_883088130, +1.883088130366041556825018805199004714371179592);     DK(KP673779706, +0.673779706784440101378506425238295140955533559);     DK(KP098135348, +0.098135348654836028509909953885365316629490726);     DK(KP1_997590912, +1.997590912410344785429543209518201388886407229);     DK(KP980785280, +0.980785280403230449126182236134239036973933731);     DK(KP195090322, +0.195090322016128267848284868477022240927691618);     DK(KP580569354, +0.580569354508924735272384751634790549382952557);     DK(KP1_913880671, +1.913880671464417729871595773960539938965698411);     DK(KP942793473, +0.942793473651995297112775251810508755314920638);     DK(KP1_763842528, +1.763842528696710059425513727320776699016885241);     DK(KP1_111140466, +1.111140466039204449485661627897065748749874382);     DK(KP1_662939224, +1.662939224605090474157576755235811513477121624);     DK(KP1_268786568, +1.268786568327290996430343226450986741351374190);     DK(KP1_546020906, +1.546020906725473921621813219516939601942082586);     DK(KP196034280, +0.196034280659121203988391127777283691722273346);     DK(KP1_990369453, +1.990369453344393772489673906218959843150949737);     DK(KP390180644, +0.390180644032256535696569736954044481855383236);     DK(KP1_961570560, +1.961570560806460898252364472268478073947867462);     DK(KP382683432, +0.382683432365089771728459984030398866761344562);     DK(KP923879532, +0.923879532511286756128183189396788286822416626);     DK(KP707106781, +0.707106781186547524400844362104849039284835938);     DK(KP765366864, +0.765366864730179543456919968060797733522689125);     DK(KP1_847759065, +1.847759065022573512256366378793576573644833252);     DK(KP1_414213562, +1.414213562373095048801688724209698078569671875);     DK(KP2_000000000, +2.000000000000000000000000000000000000000000000);     {	  E Ta, T6q, T2a, T5k, T8x, Tbx, TcF, Ten, Th, T6r, T2j, T5l, T8E, Tby, TcI;	  E Teo, Tx, T6t, TcM, Teq, TcP, Ter, T2t, T5n, T2C, T5o, T8Q, TbA, T8X, TbB;	  E T6w, T7L, T1j, T6L, Tde, TeC, TdL, TeR, T3v, T5z, T4I, T5O, T9O, TbM, TaV;	  E Tc1, T78, T7Z, TN, T6z, TcU, Teu, Td8, Tey, T2N, T5r, T3j, T5v, T9a, TbE;	  E T9A, TbI, T6H, T7O, T1O, T7V, T48, T4u, Tds, TeG, T5E, T5K, Taf, TbP, Tdp;	  E TeF, T6U, T72, Tam, TbQ, T23, T7U, T4r, T4v, Tdz, TeJ, T5H, T5L, Tay, TbS;	  E Tdw, TeI, T6Z, T73, TaF, TbT, T1y, T75, Tdl, TeQ, TdI, TeD, T3O, T5N, T4z;	  E T5A, Ta3, Tc0, TaO, TbN, T6O, T80, T12, T6E, Td1, Tex, Td5, Tev, T36, T5u;	  E T3a, T5s, T9p, TbH, T9t, TbF, T6C, T7P;	  {	       E T5, T8s, T3, T8q, T9, T8u, T29, T8v, T6, T26;	       {		    E T4, T8r, T1, T2;		    T4 = ri[WS(ris, 32)];		    T5 = KP2_000000000 * T4;		    T8r = ii[WS(iis, 32)];		    T8s = KP2_000000000 * T8r;		    T1 = ri[0];		    T2 = ri[WS(ris, 64)];		    T3 = T1 + T2;		    T8q = T1 - T2;		    {			 E T7, T8, T27, T28;			 T7 = ri[WS(ris, 16)];			 T8 = ri[WS(ris, 48)];			 T9 = KP2_000000000 * (T7 + T8);			 T8u = T7 - T8;			 T27 = ii[WS(iis, 16)];			 T28 = ii[WS(iis, 48)];			 T29 = KP2_000000000 * (T27 - T28);			 T8v = T27 + T28;		    }	       }	       T6 = T3 + T5;	       Ta = T6 + T9;	       T6q = T6 - T9;	       T26 = T3 - T5;	       T2a = T26 - T29;	       T5k = T26 + T29;	       {		    E T8t, T8w, TcD, TcE;		    T8t = T8q - T8s;		    T8w = KP1_414213562 * (T8u - T8v);		    T8x = T8t + T8w;		    Tbx = T8t - T8w;		    TcD = T8q + T8s;		    TcE = KP1_414213562 * (T8u + T8v);		    TcF = TcD - TcE;		    Ten = TcD + TcE;	       }	  }	  {	       E Td, T8y, T2e, T8C, Tg, T8B, T2h, T8z, T2b, T2i;	       {		    E Tb, Tc, T2c, T2d;		    Tb = ri[WS(ris, 8)];		    Tc = ri[WS(ris, 56)];		    Td = Tb + Tc;		    T8y = Tb - Tc;		    T2c = ii[WS(iis, 8)];		    T2d = ii[WS(iis, 56)];		    T2e = T2c - T2d;		    T8C = T2c + T2d;	       }	       {		    E Te, Tf, T2f, T2g;		    Te = ri[WS(ris, 40)];		    Tf = ri[WS(ris, 24)];		    Tg = Te + Tf;		    T8B = Te - Tf;		    T2f = ii[WS(iis, 40)];		    T2g = ii[WS(iis, 24)];		    T2h = T2f - T2g;		    T8z = T2f + T2g;	       }	       Th = KP2_000000000 * (Td + Tg);	       T6r = KP2_000000000 * (T2h + T2e);	       T2b = Td - Tg;	       T2i = T2e - T2h;	       T2j = KP1_414213562 * (T2b - T2i);	       T5l = KP1_414213562 * (T2b + T2i);	       {		    E T8A, T8D, TcG, TcH;		    T8A = T8y - T8z;		    T8D = T8B + T8C;		    T8E = FNMS(KP765366864, T8D, KP1_847759065 * T8A);		    Tby = FMA(KP765366864, T8A, KP1_847759065 * T8D);		    TcG = T8y + T8z;		    TcH = T8C - T8B;		    TcI = FNMS(KP1_847759065, TcH, KP765366864 * TcG);		    Teo = FMA(KP1_847759065, TcG, KP765366864 * TcH);	       }	  }	  {	       E Tl, T8G, T2x, T8V, To, T8U, T2A, T8H, Tv, T8S, T2o, T8O, Ts, T8R, T2r;	       E T8L;	       {		    E Tj, Tk, T2y, T2z;		    Tj = ri[WS(ris, 4)];		    Tk = ri[WS(ris, 60)];		    Tl = Tj + Tk;		    T8G = Tj - Tk;		    {			 E T2v, T2w, Tm, Tn;			 T2v = ii[WS(iis, 4)];			 T2w = ii[WS(iis, 60)];			 T2x = T2v - T2w;			 T8V = T2v + T2w;			 Tm = ri[WS(ris, 36)];			 Tn = ri[WS(ris, 28)];			 To = Tm + Tn;			 T8U = Tm - Tn;		    }		    T2y = ii[WS(iis, 36)];		    T2z = ii[WS(iis, 28)];		    T2A = T2y - T2z;		    T8H = T2y + T2z;		    {			 E Tt, Tu, T8M, T2m, T2n, T8N;			 Tt = ri[WS(ris, 12)];			 Tu = ri[WS(ris, 52)];			 T8M = Tt - Tu;			 T2m = ii[WS(iis, 52)];			 T2n = ii[WS(iis, 12)];			 T8N = T2n + T2m;			 Tv = Tt + Tu;			 T8S = T8M + T8N;			 T2o = T2m - T2n;			 T8O = T8M - T8N;		    }		    {			 E Tq, Tr, T8J, T2p, T2q, T8K;			 Tq = ri[WS(ris, 20)];			 Tr = ri[WS(ris, 44)];			 T8J = Tq - Tr;			 T2p = ii[WS(iis, 20)];			 T2q = ii[WS(iis, 44)];			 T8K = T2p + T2q;			 Ts = Tq + Tr;			 T8R = T8J + T8K;			 T2r = T2p - T2q;			 T8L = T8J - T8K;		    }	       }	       {		    E Tp, Tw, TcK, TcL;		    Tp = Tl + To;		    Tw = Ts + Tv;		    Tx = KP2_000000000 * (Tp + Tw);		    T6t = Tp - Tw;		    TcK = T8G + T8H;		    TcL = KP707106781 * (T8R + T8S);		    TcM = TcK - TcL;		    Teq = TcK + TcL;	       }	       {		    E TcN, TcO, T2l, T2s;		    TcN = KP707106781 * (T8L - T8O);		    TcO = T8V - T8U;		    TcP = TcN + TcO;		    Ter = TcO - TcN;		    T2l = Tl - To;		    T2s = T2o - T2r;		    T2t = T2l + T2s;		    T5n = T2l - T2s;	       }	       {		    E T2u, T2B, T8I, T8P;		    T2u = Ts - Tv;		    T2B = T2x - T2A;		    T2C = T2u + T2B;		    T5o = T2B - T2u;		    T8I = T8G - T8H;		    T8P = KP707106781 * (T8L + T8O);		    T8Q = T8I + T8P;		    TbA = T8I - T8P;	       }	       {		    E T8T, T8W, T6u, T6v;		    T8T = KP707106781 * (T8R - T8S);		    T8W = T8U + T8V;		    T8X = T8T + T8W;		    TbB = T8W - T8T;		    T6u = T2A + T2x;		    T6v = T2r + T2o;		    T6w = T6u - T6v;		    T7L = KP2_000000000 * (T6v + T6u);	       }	  }	  {	       E T17, T9E, T4D, TaT, T1a, TaS, T4G, T9F, T1h, TaQ, T3q, T9M, T1e, TaP, T3t;	       E T9J;	       {		    E T15, T16, T4E, T4F;		    T15 = ri[WS(ris, 1)];		    T16 = ri[WS(ris, 63)];		    T17 = T15 + T16;		    T9E = T15 - T16;		    {			 E T4B, T4C, T18, T19;			 T4B = ii[WS(iis, 1)];			 T4C = ii[WS(iis, 63)];			 T4D = T4B - T4C;			 TaT = T4B + T4C;			 T18 = ri[WS(ris, 33)];			 T19 = ri[WS(ris, 31)];			 T1a = T18 + T19;			 TaS = T18 - T19;		    }		    T4E = ii[WS(iis, 33)];		    T4F = ii[WS(iis, 31)];		    T4G = T4E - T4F;		    T9F = T4E + T4F;		    {			 E T1f, T1g, T9K, T3o, T3p, T9L;			 T1f = ri[WS(ris, 15)];			 T1g = ri[WS(ris, 49)];			 T9K = T1f - T1g;			 T3o = ii[WS(iis, 49)];			 T3p = ii[WS(iis, 15)];			 T9L = T3p + T3o;			 T1h = T1f + T1g;			 TaQ = T9K + T9L;			 T3q = T3o - T3p;			 T9M = T9K - T9L;		    }		    {			 E T1c, T1d, T9H, T3r, T3s, T9I;			 T1c = ri[WS(ris, 17)];			 T1d = ri[WS(ris, 47)];			 T9H = T1c - T1d;			 T3r = ii[WS(iis, 17)];			 T3s = ii[WS(iis, 47)];			 T9I = T3r + T3s;			 T1e = T1c + T1d;			 TaP = T9H + T9I;			 T3t = T3r - T3s;			 T9J = T9H - T9I;		    }	       }	       {		    E T1b, T1i, Tdc, Tdd;		    T1b = T17 + T1a;		    T1i = T1e + T1h;		    T1j = T1b + T1i;		    T6L = T1b - T1i;		    Tdc = T9E + T9F;		    Tdd = KP707106781 * (TaP + TaQ);		    Tde = Tdc - Tdd;		    TeC = Tdc + Tdd;	       }	       {		    E TdJ, TdK, T3n, T3u;		    TdJ = KP707106781 * (T9J - T9M);		    TdK = TaT - TaS;		    TdL = TdJ + TdK;		    TeR = TdK - TdJ;		    T3n = T17 - T1a;		    T3u = T3q - T3t;		    T3v = T3n + T3u;		    T5z = T3n - T3u;	       }	       {		    E T4A, T4H, T9G, T9N;		    T4A = T1e - T1h;		    T4H = T4D - T4G;		    T4I = T4A + T4H;		    T5O = T4H - T4A;		    T9G = T9E - T9F;		    T9N = KP707106781 * (T9J + T9M);		    T9O = T9G + T9N;		    TbM = T9G - T9N;	       }	       {		    E TaR, TaU, T76, T77;		    TaR = KP707106781 * (TaP - TaQ);		    TaU = TaS + TaT;		    TaV = TaR + TaU;		    Tc1 = TaU - TaR;		    T76 = T4G + T4D;		    T77 = T3t + T3q;		    T78 = T76 - T77;		    T7Z = T77 + T76;	       }	  }	  {	       E TB, T90, T3e, T9y, TE, T9x, T3h, T91, TL, T9v, T2I, T98, TI, T9u, T2L;	       E T95;	       {		    E Tz, TA, T3f, T3g;		    Tz = ri[WS(ris, 2)];		    TA = ri[WS(ris, 62)];		    TB = Tz + TA;		    T90 = Tz - TA;		    {			 E T3c, T3d, TC, TD;			 T3c = ii[WS(iis, 2)];			 T3d = ii[WS(iis, 62)];			 T3e = T3c - T3d;			 T9y = T3c + T3d;			 TC = ri[WS(ris, 34)];			 TD = ri[WS(ris, 30)];			 TE = TC + TD;			 T9x = TC - TD;		    }		    T3f = ii[WS(iis, 34)];		    T3g = ii[WS(iis, 30)];		    T3h = T3f - T3g;		    T91 = T3f + T3g;		    {			 E TJ, TK, T96, T2G, T2H, T97;			 TJ = ri[WS(ris, 14)];			 TK = ri[WS(ris, 50)];			 T96 = TJ - TK;			 T2G = ii[WS(iis, 50)];			 T2H = ii[WS(iis, 14)];			 T97 = T2H + T2G;			 TL = TJ + TK;			 T9v = T96 + T97;			 T2I = T2G - T2H;			 T98 = T96 - T97;		    }		    {			 E TG, TH, T93, T2J, T2K, T94;			 TG = ri[WS(ris, 18)];			 TH = ri[WS(ris, 46)];			 T93 = TG - TH;			 T2J = ii[WS(iis, 18)];			 T2K = ii[WS(iis, 46)];			 T94 = T2J + T2K;			 TI = TG + TH;			 T9u = T93 + T94;			 T2L = T2J - T2K;			 T95 = T93 - T94;		    }	       }	       {		    E TF, TM, TcS, TcT;		    TF = TB + TE;		    TM = TI + TL;		    TN = TF + TM;		    T6z = TF - TM;		    TcS = T90 + T91;		    TcT = KP707106781 * (T9u + T9v);		    TcU = TcS - TcT;		    Teu = TcS + TcT;	       }	       {		    E Td6, Td7, T2F, T2M;		    Td6 = KP707106781 * (T95 - T98);		    Td7 = T9y - T9x;		    Td8 = Td6 + Td7;		    Tey = Td7 - Td6;		    T2F = TB - TE;		    T2M = T2I - T2L;		    T2N = T2F + T2M;		    T5r = T2F - T2M;	       }	       {		    E T3b, T3i, T92, T99;		    T3b = TI - TL;		    T3i = T3e - T3h;		    T3j = T3b + T3i;		    T5v = T3i - T3b;		    T92 = T90 - T91;		    T99 = KP707106781 * (T95 + T98);		    T9a = T92 + T99;		    TbE = T92 - T99;	       }	       {		    E T9w, T9z, T6F, T6G;		    T9w = KP707106781 * (T9u - T9v);		    T9z = T9x + T9y;		    T9A = T9w + T9z;		    TbI = T9z - T9w;		    T6F = T3h + T3e;		    T6G = T2L + T2I;		    T6H = T6F - T6G;		    T7O = T6G + T6F;	       }	  }	  {	       E T1G, Taj, T3Q, Ta5, T46, Tak, T6R, Ta6, T1N, Tag, Tah, T3X, T3Z, Taa, Tad;	       E T6S, Tdn, Tdo;	       {		    E T1A, T1B, T1C, T1D, T1E, T1F;		    T1A = ri[WS(ris, 5)];		    T1B = ri[WS(ris, 59)];		    T1C = T1A + T1B;		    T1D = ri[WS(ris, 37)];		    T1E = ri[WS(ris, 27)];		    T1F = T1D + T1E;		    T1G = T1C + T1F;		    Taj = T1D - T1E;		    T3Q = T1C - T1F;		    Ta5 = T1A - T1B;	       }	       {		    E T40, T41, T42, T43, T44, T45;		    T40 = ii[WS(iis, 5)];		    T41 = ii[WS(iis, 59)];		    T42 = T40 - T41;		    T43 = ii[WS(iis, 37)];		    T44 = ii[WS(iis, 27)];		    T45 = T43 - T44;		    T46 = T42 - T45;		    Tak = T40 + T41;		    T6R = T45 + T42;		    Ta6 = T43 + T44;	       }	       {		    E T1J, Ta8, T3W, Ta9, T1M, Tab, T3T, Tac;		    {			 E T1H, T1I, T3U, T3V;			 T1H = ri[WS(ris, 21)];			 T1I = ri[WS(ris, 43)];			 T1J = T1H + T1I;			 Ta8 = T1H - T1I;			 T3U = ii[WS(iis, 21)];			 T3V = ii[WS(iis, 43)];			 T3W = T3U - T3V;			 Ta9 = T3U + T3V;		    }		    {			 E T1K, T1L, T3R, T3S;			 T1K = ri[WS(ris, 11)];			 T1L = ri[WS(ris, 53)];			 T1M = T1K + T1L;			 Tab = T1K - T1L;			 T3R = ii[WS(iis, 53)];			 T3S = ii[WS(iis, 11)];			 T3T = T3R - T3S;			 Tac = T3S + T3R;		    }		    T1N = T1J + T1M;		    Tag = Ta8 + Ta9;		    Tah = Tab + Tac;		    T3X = T3T - T3W;		    T3Z = T1J - T1M;		    Taa = Ta8 - Ta9;		    Tad = Tab - Tac;		    T6S = T3W + T3T;	       }	       T1O = T1G + T1N;	       T7V = T6S + T6R;	       {		    E T3Y, T47, Tdq, Tdr;		    T3Y = T3Q + T3X;		    T47 = T3Z + T46;		    T48 = FNMS(KP382683432, T47, KP923879532 * T3Y);		    T4u = FMA(KP382683432, T3Y, KP923879532 * T47);		    Tdq = KP707106781 * (Taa - Tad);		    Tdr = Tak - Taj;		    Tds = Tdq + Tdr;		    TeG = Tdr - Tdq;	       }	       {		    E T5C, T5D, Ta7, Tae;		    T5C = T3Q - T3X;		    T5D = T46 - T3Z;		    T5E = FNMS(KP923879532, T5D, KP382683432 * T5C);		    T5K = FMA(KP923879532, T5C, KP382683432 * T5D);		    Ta7 = Ta5 - Ta6;		    Tae = KP707106781 * (Taa + Tad);		    Taf = Ta7 + Tae;		    TbP = Ta7 - Tae;	       }	       Tdn = Ta5 + Ta6;

⌨️ 快捷键说明

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