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

📄 t2_64.c

📁 快速fft变换
💻 C
📖 第 1 页 / 共 5 页
字号:
						       Tdk = Tbj + Tb4;						       Tdj = FMA(KP707106781, Tbv, Tbs);						       Tbw = FNMS(KP707106781, Tbv, Tbs);						       TcS = FNMS(KP668178637, Tae, Tap);						       Taq = FMA(KP668178637, Tap, Tae);						       TcW = FMA(KP923879532, Tbk, TaP);						       Tbl = FNMS(KP923879532, Tbk, TaP);						       TcT = TcR + TcS;						       TlO = TcS - TcR;						       TlI = T9R + Taq;						       Tar = T9R - Taq;						       Tbz = Tbx - Tby;						       Tdn = Tbx + Tby;						  }						  {						       E Tdq, Tdr, TcV, TbA;						       TcF = FNMS(KP707106781, TcE, TcB);						       Tdq = FMA(KP707106781, TcE, TcB);						       Tdr = Tcs + Tcd;						       Tct = Tcd - Tcs;						       TbY = FNMS(KP707106781, TbX, TbI);						       Tdt = FMA(KP707106781, TbX, TbI);						       TcV = FMA(KP923879532, Tbz, Tbw);						       TbA = FNMS(KP923879532, Tbz, Tbw);						       TdL = FMA(KP923879532, Tdr, Tdq);						       Tds = FNMS(KP923879532, Tdr, Tdq);						       TcX = FMA(KP303346683, TcW, TcV);						       Td3 = FNMS(KP303346683, TcV, TcW);						       TcN = FNMS(KP534511135, Tbl, TbA);						       TbB = FMA(KP534511135, TbA, Tbl);						       Tdu = TcG + TcH;						       TcI = TcG - TcH;						  }					     }					}					{					     E TdI, Tdl, TdK, Tdv, TdH, Tdo;					     TdK = FMA(KP923879532, Tdu, Tdt);					     Tdv = FNMS(KP923879532, Tdu, Tdt);					     TdI = FMA(KP923879532, Tdk, Tdj);					     Tdl = FNMS(KP923879532, Tdk, Tdj);					     TdM = FNMS(KP098491403, TdL, TdK);					     TdQ = FMA(KP098491403, TdK, TdL);					     TdA = FMA(KP820678790, Tds, Tdv);					     Tdw = FNMS(KP820678790, Tdv, Tds);					     TdH = FMA(KP923879532, Tdn, Tdm);					     Tdo = FNMS(KP923879532, Tdn, Tdm);					     TdD = FNMS(KP198912367, Tdb, Tdc);					     Tdd = FMA(KP198912367, Tdc, Tdb);					     TdJ = FMA(KP098491403, TdI, TdH);					     TdP = FNMS(KP098491403, TdH, TdI);					     Tdz = FNMS(KP820678790, Tdl, Tdo);					     Tdp = FMA(KP820678790, Tdo, Tdl);					}					{					     E TcZ, Tcu, TdE, Tdg;					     TdE = FMA(KP198912367, Tde, Tdf);					     Tdg = FNMS(KP198912367, Tdf, Tde);					     TcZ = FMA(KP923879532, Tct, TbY);					     Tcu = FNMS(KP923879532, Tct, TbY);					     TlW = TdE - TdD;					     TdF = TdD + TdE;					     Tm2 = Tdd + Tdg;					     Tdh = Tdd - Tdg;					     {						  E T8L, TlE, TcY, TcJ;						  Tla = T8D + T8K;						  T8L = T8D - T8K;						  TlE = TdU - TdT;						  TdV = TdT + TdU;						  Td7 = FNMS(KP414213562, T8T, T90);						  T91 = FMA(KP414213562, T90, T8T);						  TcY = FMA(KP923879532, TcI, TcF);						  TcJ = FNMS(KP923879532, TcI, TcF);						  Td6 = FNMS(KP707106781, T8L, T8w);						  T8M = FMA(KP707106781, T8L, T8w);						  TlT = FNMS(KP707106781, TlE, TlD);						  TlF = FMA(KP707106781, TlE, TlD);						  Td0 = FNMS(KP303346683, TcZ, TcY);						  Td4 = FMA(KP303346683, TcY, TcZ);						  TcO = FMA(KP534511135, Tcu, TcJ);						  TcK = FNMS(KP534511135, TcJ, Tcu);						  T9g = FNMS(KP414213562, T9f, T98);						  Td8 = FMA(KP414213562, T98, T9f);					     }					}				   }				   {					E Tm1, TlV, TdC, Tda, Td2, TlM, TlL, Td5;					{					     E TlS, TcQ, TlH, TcM, TlR, TcP;					     {						  E TcL, Tas, TlP, TlQ, TlN;						  TlS = TbB + TcK;						  TcL = TbB - TcK;						  {						       E TlU, T9h, TlG, Td9, T9i;						       TlU = T91 + T9g;						       T9h = T91 - T9g;						       TlG = Td8 - Td7;						       Td9 = Td7 + Td8;						       Tm1 = FMA(KP923879532, TlU, TlT);						       TlV = FNMS(KP923879532, TlU, TlT);						       TcQ = FMA(KP923879532, T9h, T8M);						       T9i = FNMS(KP923879532, T9h, T8M);						       TlN = FNMS(KP923879532, TlG, TlF);						       TlH = FMA(KP923879532, TlG, TlF);						       TdC = FMA(KP923879532, Td9, Td6);						       Tda = FNMS(KP923879532, Td9, Td6);						       Tas = FMA(KP831469612, Tar, T9i);						       TcM = FNMS(KP831469612, Tar, T9i);						  }						  TlR = FNMS(KP831469612, TlO, TlN);						  TlP = FMA(KP831469612, TlO, TlN);						  TlQ = TcO - TcN;						  TcP = TcN + TcO;						  ri[WS(rs, 11)] = FMA(KP881921264, TcL, Tas);						  ri[WS(rs, 43)] = FNMS(KP881921264, TcL, Tas);						  ii[WS(rs, 43)] = FNMS(KP881921264, TlQ, TlP);						  ii[WS(rs, 11)] = FMA(KP881921264, TlQ, TlP);					     }					     {						  E TcU, Td1, TlJ, TlK;						  Td2 = FNMS(KP831469612, TcT, TcQ);						  TcU = FMA(KP831469612, TcT, TcQ);						  ri[WS(rs, 59)] = FMA(KP881921264, TcP, TcM);						  ri[WS(rs, 27)] = FNMS(KP881921264, TcP, TcM);						  ii[WS(rs, 59)] = FMA(KP881921264, TlS, TlR);						  ii[WS(rs, 27)] = FNMS(KP881921264, TlS, TlR);						  Td1 = TcX + Td0;						  TlM = Td0 - TcX;						  TlL = FNMS(KP831469612, TlI, TlH);						  TlJ = FMA(KP831469612, TlI, TlH);						  TlK = Td3 + Td4;						  Td5 = Td3 - Td4;						  ri[WS(rs, 3)] = FMA(KP956940335, Td1, TcU);						  ri[WS(rs, 35)] = FNMS(KP956940335, Td1, TcU);						  ii[WS(rs, 35)] = FNMS(KP956940335, TlK, TlJ);						  ii[WS(rs, 3)] = FMA(KP956940335, TlK, TlJ);					     }					}					{					     E Tdy, Tm0, TlZ, TdB;					     {						  E Tdi, Tdx, TlX, TlY;						  Tdy = FNMS(KP980785280, Tdh, Tda);						  Tdi = FMA(KP980785280, Tdh, Tda);						  ri[WS(rs, 19)] = FMA(KP956940335, Td5, Td2);						  ri[WS(rs, 51)] = FNMS(KP956940335, Td5, Td2);						  ii[WS(rs, 51)] = FNMS(KP956940335, TlM, TlL);						  ii[WS(rs, 19)] = FMA(KP956940335, TlM, TlL);						  Tdx = Tdp + Tdw;						  Tm0 = Tdw - Tdp;						  TlZ = FNMS(KP980785280, TlW, TlV);						  TlX = FMA(KP980785280, TlW, TlV);						  TlY = Tdz + TdA;						  TdB = Tdz - TdA;						  ri[WS(rs, 7)] = FMA(KP773010453, Tdx, Tdi);						  ri[WS(rs, 39)] = FNMS(KP773010453, Tdx, Tdi);						  ii[WS(rs, 39)] = FNMS(KP773010453, TlY, TlX);						  ii[WS(rs, 7)] = FMA(KP773010453, TlY, TlX);					     }					     {						  E TdG, TdN, Tm3, Tm4;						  TdO = FMA(KP980785280, TdF, TdC);						  TdG = FNMS(KP980785280, TdF, TdC);						  ri[WS(rs, 23)] = FMA(KP773010453, TdB, Tdy);						  ri[WS(rs, 55)] = FNMS(KP773010453, TdB, Tdy);						  ii[WS(rs, 55)] = FNMS(KP773010453, Tm0, TlZ);						  ii[WS(rs, 23)] = FMA(KP773010453, Tm0, TlZ);						  TdN = TdJ - TdM;						  Tm6 = TdJ + TdM;						  Tm5 = FMA(KP980785280, Tm2, Tm1);						  Tm3 = FNMS(KP980785280, Tm2, Tm1);						  Tm4 = TdQ - TdP;						  TdR = TdP + TdQ;						  ri[WS(rs, 15)] = FMA(KP995184726, TdN, TdG);						  ri[WS(rs, 47)] = FNMS(KP995184726, TdN, TdG);						  ii[WS(rs, 47)] = FNMS(KP995184726, Tm4, Tm3);						  ii[WS(rs, 15)] = FMA(KP995184726, Tm4, Tm3);					     }					}				   }			      }			      {				   E Tf5, Tlk, Tle, Tej, Tf9, Tff, TeZ, TeD, TfY, Tg2, TfM, TfI, TfV, Tg1, TfL;				   E TfB, Tls, TfR, Tly, Tft, Tfj, TdZ, Tfi, TdW, Tlp, Tlb, Tfc, Tfg, Tf0, TeW;				   E Te2, Tfk;				   {					E Tfn, Tfo, Tfq, Tfr, Tfy, Tfw, Tfv, Tfz, TeR, TeN, TeG, TfF, TfX, TfE, TfG;					E TeU, TfP, Tfp;					{					     E Te7, Tea, Tee, Teh;					     Tfn = FNMS(KP707106781, Te6, Te5);					     Te7 = FMA(KP707106781, Te6, Te5);					     ri[WS(rs, 63)] = FMA(KP995184726, TdR, TdO);					     ri[WS(rs, 31)] = FNMS(KP995184726, TdR, TdO);					     ii[WS(rs, 63)] = FMA(KP995184726, Tm6, Tm5);					     ii[WS(rs, 31)] = FNMS(KP995184726, Tm6, Tm5);					     Tea = FMA(KP707106781, Te9, Te8);					     Tfo = FNMS(KP707106781, Te9, Te8);					     Tfq = FNMS(KP707106781, Ted, Tec);					     Tee = FMA(KP707106781, Ted, Tec);					     Teh = FMA(KP707106781, Teg, Tef);					     Tfr = FNMS(KP707106781, Teg, Tef);					     {						  E Tey, Tf8, Tev, TeB;						  {						       E Ten, Tf3, Teb, Tf4, Tei, Teu;						       Tfy = FNMS(KP707106781, Tem, Tel);						       Ten = FMA(KP707106781, Tem, Tel);						       Tf3 = FMA(KP198912367, Te7, Tea);						       Teb = FNMS(KP198912367, Tea, Te7);						       Tf4 = FNMS(KP198912367, Tee, Teh);						       Tei = FMA(KP198912367, Teh, Tee);						       Teu = Teq + Tet;						       Tfw = Tet - Teq;						       Tfv = FNMS(KP707106781, Tex, Tew);						       Tey = FMA(KP707106781, Tex, Tew);						       Tf5 = Tf3 + Tf4;						       Tlk = Tf4 - Tf3;						       Tle = Teb + Tei;						       Tej = Teb - Tei;						       Tf8 = FMA(KP923879532, Teu, Ten);						       Tev = FNMS(KP923879532, Teu, Ten);						       TeB = Tez + TeA;						       Tfz = Tez - TeA;						  }						  {						       E TfC, TfD, Tf7, TeC;						       TeR = FMA(KP707106781, TeQ, TeP);						       TfC = FNMS(KP707106781, TeQ, TeP);						       TfD = TeM - TeJ;						       TeN = TeJ + TeM;						       TeG = FMA(KP707106781, TeF, TeE);						       TfF = FNMS(KP707106781, TeF, TeE);						       Tf7 = FMA(KP923879532, TeB, Tey);						       TeC = FNMS(KP923879532, TeB, Tey);						       TfX = FMA(KP923879532, TfD, TfC);						       TfE = FNMS(KP923879532, TfD, TfC);						       Tf9 = FMA(KP098491403, Tf8, Tf7);						       Tff = FNMS(KP098491403, Tf7, Tf8);						       TeZ = FNMS(KP820678790, Tev, TeC);						       TeD = FMA(KP820678790, TeC, Tev);						       TfG = TeS - TeT;						       TeU = TeS + TeT;						  }					     }					}					{					     E TfU, Tfx, TfW, TfH, TfT, TfA;					     TfW = FMA(KP923879532, TfG, TfF);					     TfH = FNMS(KP923879532, TfG, TfF);					     TfU = FMA(KP923879532, Tfw, Tfv);					     Tfx = FNMS(KP923879532, Tfw, Tfv);					     TfY = FNMS(KP303346683, TfX, TfW);					     Tg2 = FMA(KP303346683, TfW, TfX);					     TfM = FMA(KP534511135, TfE, TfH);					     TfI = FNMS(KP534511135, TfH, TfE);					     TfT = FMA(KP923879532, Tfz, Tfy);					     TfA = FNMS(KP923879532, Tfz, Tfy);					     TfP = FNMS(KP668178637, Tfn, Tfo);					     Tfp = FMA(KP668178637, Tfo, Tfn);					     TfV = FMA(KP303346683, TfU, TfT);					     Tg1 = FNMS(KP303346683, TfT, TfU);					     TfL = FNMS(KP534511135, Tfx, TfA);					     TfB = FMA(KP534511135, TfA, Tfx);					}					{					     E Tfb, TeO, TfQ, Tfs, Tfa, TeV;					     TfQ = FMA(KP668178637, Tfq, Tfr);					     Tfs = FNMS(KP668178637, Tfr, Tfq);					     Tfb = FMA(KP923879532, TeN, TeG);					     TeO = FNMS(KP923879532, TeN, TeG);					     Tls = TfQ - TfP;					     TfR = TfP + TfQ;					     Tly = Tfp + Tfs;					     Tft = Tfp - Tfs;					     Tfj = FNMS(KP414213562, TdX, TdY);					     TdZ = FMA(KP414213562, TdY, TdX);					     Tfa = FMA(KP923879532, TeU, TeR);					     TeV = FNMS(KP923879532, TeU, TeR);					     Tfi = FNMS(KP707106781, TdV, TdS);					     TdW = FMA(KP707106781, TdV, TdS);					     Tlp = FNMS(KP707106781, Tla, Tl9);					     Tlb = FMA(KP707106781, Tla, Tl9);					     Tfc = FNMS(KP098491403, Tfb, Tfa);					     Tfg = FMA(KP098491403, Tfa, Tfb);					     Tf0 = FMA(KP820678790, TeO, TeV);					     TeW = FNMS(KP820678790, TeV, TeO);					     Te2 = FNMS(KP414213562, Te1, Te0);					     Tfk = FMA(KP414213562, Te0, Te1);					}				   }				   {					E Tlx, Tlr, TfO, Tfm, Tfe, Tli, Tlh, Tfh;					{					     E Tlo, Tf2, Tld, TeY, Tln, Tf1;					     {						  E TeX, Tek, Tll, Tlm, Tlj;						  Tlo = TeD + TeW;						  TeX = TeD - TeW;						  {						       E Tlq, Te3, Tlc, Tfl, Te4;						       Tlq = Te2 - TdZ;						       Te3 = TdZ + Te2;						       Tlc = Tfj + Tfk;						       Tfl = Tfj - Tfk;						       Tlx = FNMS(KP923879532, Tlq, Tlp);						       Tlr = FMA(KP923879532, Tlq, Tlp);						       Tf2 = FMA(KP923879532, Te3, TdW);						       Te4 = FNMS(KP923879532, Te3, TdW);						       Tlj = FNMS(KP923879532, Tlc, Tlb);						       Tld = FMA(KP923879532, Tlc, Tlb);						       TfO = FNMS(KP923879532, Tfl, Tfi);						       Tfm = FMA(KP923879532, Tfl, Tfi);						       Tek = FMA(KP980785280, Tej, Te4);						       TeY = FNMS(KP980785280, Tej, Te4);						  }						  Tln = FNMS(KP980785280, Tlk, Tlj);						  Tll = FMA(KP980785280, Tlk, Tlj);						  Tlm = Tf0 - TeZ;						  Tf1 = TeZ + Tf0;						  ri[WS(rs, 9)] = FMA(KP773010453, TeX, Tek);						  ri[WS(rs, 41)] = FNMS(KP773010453, TeX, Tek);						  ii[WS(rs, 41)] = FNMS(KP773010453, Tlm, Tll);						  ii[WS(rs, 9)] = FMA(KP773010453, Tlm, Tll);					     }					     {						  E Tf6, Tfd, Tlf, Tlg;						  Tfe = FNMS(KP980785280, Tf5, Tf2);						  Tf6 = FMA(KP980785280, Tf5, Tf2);						  ri[WS(rs, 57)] = FMA(KP773010453, Tf1, TeY);						  ri[WS(rs, 25)] = FNMS(KP773010453, Tf1, TeY);						  ii[WS(rs, 57)] = FMA(KP773010453, Tlo, Tln);						  ii[WS(rs, 25)] = FNMS(KP773010453, Tlo, Tln);						  Tfd = Tf9 + Tfc;						  Tli = Tfc - Tf9;						  Tlh = FNMS(KP980785280, Tle, Tld);						  Tlf = FMA(KP980785280, Tle, Tld);						  Tlg = Tff + Tfg;						  Tfh = Tff - Tfg;						  ri[WS(rs, 1)] = FMA(KP995184726, Tfd, Tf6);						  ri[WS(rs, 33)] = FNMS(KP995184726, Tfd, Tf6);						  ii[WS(rs, 33)] = FNMS(KP995184726, Tlg, Tlf);						  ii[WS(rs, 1)] = FMA(KP995184726, Tlg, Tlf);					     }					}					{					     E TfK, Tlw, Tlv, TfN;					     {						  E Tfu, TfJ, Tlt, Tlu;						  TfK = FNMS(KP831469612, Tft, Tfm);						  Tfu = FMA(KP831469612, Tft, Tfm);						  ri[WS(rs, 17)] = FMA(KP995184726, Tfh, Tfe);						  ri[WS(rs, 49)] = FNMS(KP995184726, Tfh, Tfe);						  ii[WS(rs, 49)] = FNMS(KP995184726, Tli, Tlh);						  ii[WS(rs, 17)] = FMA(KP995184726, Tli, Tlh);						  TfJ = TfB + TfI;						  Tlw = TfI - TfB;						  Tlv = FNMS(KP831469612, Tls, Tlr);						  Tlt = FMA(KP831469612, Tls, Tlr);						  Tlu = TfL + TfM;						  TfN = TfL - TfM;						  ri[WS(rs, 5)] = FMA(KP881921264, TfJ, Tfu);						  ri[WS(rs, 37)] = FNMS(KP881921264, TfJ, Tfu);						  ii[WS(rs, 37)] = FNMS(KP881921264, Tlu, Tlt);						  ii[WS(rs, 5)] = FMA(KP881921264, Tlu, Tlt);					     }					     {						  E TfS, TfZ, Tlz, TlA;						  Tg0 = FMA(KP831469612, TfR, TfO);						  TfS = FNMS(KP831469612, TfR, TfO);						  ri[WS(rs, 21)] = FMA(KP881921264, TfN, TfK);						  ri[WS(rs, 53)] = FNMS(KP881921264, TfN, TfK);						  ii[WS(rs, 53)] = FNMS(KP881921264, Tlw, Tlv);						  ii[WS(rs, 21)] = FMA(KP881921264, Tlw, Tlv);						  TfZ = TfV - TfY;						  TlC = TfV + TfY;						  TlB = FMA(KP831469612, Tly, Tlx);						  Tlz = FNMS(KP831469612, Tly, Tlx);						  TlA = Tg2 - Tg1;						  Tg3 = Tg1 + Tg2;						  ri[WS(rs, 13)] = FMA(KP956940335, TfZ, TfS);						  ri[WS(rs, 45)] = FNMS(KP956940335, TfZ, TfS);						  ii[WS(rs, 45)] = FNMS(KP956940335, TlA, Tlz);						  ii[WS(rs, 13)] = FMA(KP956940335, TlA, Tlz);					     }					}				   }			      }			 }		    }	       }	  }	  ri[WS(rs, 61)] = FMA(KP956940335, Tg3, Tg0);	  ri[WS(rs, 29)] = FNMS(KP956940335, Tg3, Tg0);	  ii[WS(rs, 61)] = FMA(KP956940335, TlC, TlB);	  ii[WS(rs, 29)] = FNMS(KP956940335, TlC, TlB);     }}static const tw_instr twinstr[] = {     {TW_CEXP, 0, 1},     {TW_CEXP, 0, 3},     {TW_CEXP, 0, 9},     {TW_CEXP, 0, 27},     {TW_CEXP, 0, 63},     {TW_NEXT, 1, 0}};static const ct_desc desc = { 64, "t2_64", twinstr, &GENUS, {520, 206, 634, 0}, 0, 0, 0 };void X(codelet_t2_64) (planner *p) {     X(kdft_dit_register) (p, t2_64, &desc);}#else				/* HAVE_FMA *//* Generated by: ../../../genfft/gen_twiddle -compact -variables 4 -pipeline-latency 4 -twiddle-log3 -precompute-twiddles -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), * 302 stack variables, 15 constants, and 256 memory accesse

⌨️ 快捷键说明

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