这篇教程C++ FMA函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中FMA函数的典型用法代码示例。如果您正苦于以下问题:C++ FMA函数的具体用法?C++ FMA怎么用?C++ FMA使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了FMA函数的17个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: r2cb_20static void r2cb_20(R *R0, R *R1, R *Cr, R *Ci, stride rs, stride csr, stride csi, INT v, INT ivs, INT ovs){ DK(KP1_118033988, +1.118033988749894848204586834365638117720309180); DK(KP500000000, +0.500000000000000000000000000000000000000000000); DK(KP1_902113032, +1.902113032590307144232878666758764286811397268); DK(KP1_175570504, +1.175570504584946258337411909278145537195304875); DK(KP2_000000000, +2.000000000000000000000000000000000000000000000); INT i; for (i = v; i > 0; i = i - 1, R0 = R0 + ovs, R1 = R1 + ovs, Cr = Cr + ivs, Ci = Ci + ivs, MAKE_VOLATILE_STRIDE(rs), MAKE_VOLATILE_STRIDE(csr), MAKE_VOLATILE_STRIDE(csi)) { E T6, TF, Tm, Tt, TQ, T1n, T1f, T12, T1m, TV, T13, T1c, Td, Tk, Tl; E Ty, TD, TE, Tn, To, Tp, TG, TH, TI; { E T5, Ts, T3, Tq; { E T4, Tr, T1, T2; T4 = Cr[WS(csr, 5)]; T5 = KP2_000000000 * T4; Tr = Ci[WS(csi, 5)]; Ts = KP2_000000000 * Tr; T1 = Cr[0]; T2 = Cr[WS(csr, 10)]; T3 = T1 + T2; Tq = T1 - T2; } T6 = T3 - T5; TF = Tq - Ts; Tm = T3 + T5; Tt = Tq + Ts; } { E T9, Tu, TO, T1b, Tc, T1a, Tx, TP, Tg, Tz, TT, T1e, Tj, T1d, TC; E TU; { E T7, T8, TM, TN; T7 = Cr[WS(csr, 4)]; T8 = Cr[WS(csr, 6)]; T9 = T7 + T8; Tu = T7 - T8; TM = Ci[WS(csi, 4)]; TN = Ci[WS(csi, 6)]; TO = TM - TN; T1b = TM + TN; } { E Ta, Tb, Tv, Tw; Ta = Cr[WS(csr, 9)]; Tb = Cr[WS(csr, 1)]; Tc = Ta + Tb; T1a = Ta - Tb; Tv = Ci[WS(csi, 9)]; Tw = Ci[WS(csi, 1)]; Tx = Tv + Tw; TP = Tv - Tw; } { E Te, Tf, TR, TS; Te = Cr[WS(csr, 8)]; Tf = Cr[WS(csr, 2)]; Tg = Te + Tf; Tz = Te - Tf; TR = Ci[WS(csi, 8)]; TS = Ci[WS(csi, 2)]; TT = TR - TS; T1e = TR + TS; } { E Th, Ti, TA, TB; Th = Cr[WS(csr, 7)]; Ti = Cr[WS(csr, 3)]; Tj = Th + Ti; T1d = Th - Ti; TA = Ci[WS(csi, 7)]; TB = Ci[WS(csi, 3)]; TC = TA + TB; TU = TB - TA; } TQ = TO - TP; T1n = T1e - T1d; T1f = T1d + T1e; T12 = TP + TO; T1m = T1b - T1a; TV = TT - TU; T13 = TU + TT; T1c = T1a + T1b; Td = T9 - Tc; Tk = Tg - Tj; Tl = Td + Tk; Ty = Tu + Tx; TD = Tz - TC; TE = Ty + TD; Tn = T9 + Tc; To = Tg + Tj; Tp = Tn + To; TG = Tu - Tx; TH = Tz + TC; TI = TG + TH; } R0[WS(rs, 5)] = FMA(KP2_000000000, Tl, T6); R1[WS(rs, 7)] = FMA(KP2_000000000, TE, Tt); R1[WS(rs, 2)] = FMA(KP2_000000000, TI, TF);//.........这里部分代码省略.........
开发者ID:8cH9azbsFifZ,项目名称:wspr,代码行数:101,
示例2: t1_10static void t1_10(R *ri, R *ii, const R *W, stride rs, INT mb, INT me, INT ms){ DK(KP951056516, +0.951056516295153572116439333379382143405698634); DK(KP559016994, +0.559016994374947424102293417182819058860154590); DK(KP250000000, +0.250000000000000000000000000000000000000000000); DK(KP618033988, +0.618033988749894848204586834365638117720309180); INT m; for (m = mb, W = W + (mb * 18); m < me; m = m + 1, ri = ri + ms, ii = ii + ms, W = W + 18, MAKE_VOLATILE_STRIDE(rs)) { E T1X, T21, T20, T22; { E T23, T1U, T8, T12, T1y, T25, T1P, T1H, T1Y, T18, T10, T2b, T1K, T1O, T15; E T1Z, T2a, Tz, T24, T1n; { E T1, T1T, T3, T6, T2, T5; T1 = ri[0]; T1T = ii[0]; T3 = ri[WS(rs, 5)]; T6 = ii[WS(rs, 5)]; T2 = W[8]; T5 = W[9]; { E T1w, TY, T1s, T1F, TM, T16, T1u, TS; { E TF, T1p, TO, TR, T1r, TL, TN, TQ, T1t, TP; { E TU, TX, TT, TW; { E TB, TE, T1R, T4, TA, TD; TB = ri[WS(rs, 4)]; TE = ii[WS(rs, 4)]; T1R = T2 * T6; T4 = T2 * T3; TA = W[6]; TD = W[7]; { E T1S, T7, T1o, TC; T1S = FNMS(T5, T3, T1R); T7 = FMA(T5, T6, T4); T1o = TA * TE; TC = TA * TB; T23 = T1T - T1S; T1U = T1S + T1T; T8 = T1 - T7; T12 = T1 + T7; TF = FMA(TD, TE, TC); T1p = FNMS(TD, TB, T1o); } } TU = ri[WS(rs, 1)]; TX = ii[WS(rs, 1)]; TT = W[0]; TW = W[1]; { E TH, TK, TJ, T1q, TI, T1v, TV, TG; TH = ri[WS(rs, 9)]; TK = ii[WS(rs, 9)]; T1v = TT * TX; TV = TT * TU; TG = W[16]; TJ = W[17]; T1w = FNMS(TW, TU, T1v); TY = FMA(TW, TX, TV); T1q = TG * TK; TI = TG * TH; TO = ri[WS(rs, 6)]; TR = ii[WS(rs, 6)]; T1r = FNMS(TJ, TH, T1q); TL = FMA(TJ, TK, TI); TN = W[10]; TQ = W[11]; } } T1s = T1p - T1r; T1F = T1p + T1r; TM = TF - TL; T16 = TF + TL; T1t = TN * TR; TP = TN * TO; T1u = FNMS(TQ, TO, T1t); TS = FMA(TQ, TR, TP); } { E T1e, Te, T1l, Tx, Tn, Tq, Tp, T1g, Tk, T1i, To; { E Tt, Tw, Tv, T1k, Tu; { E Ta, Td, T9, Tc, T1d, Tb, Ts; Ta = ri[WS(rs, 2)]; Td = ii[WS(rs, 2)]; { E T1G, T1x, TZ, T17; T1G = T1u + T1w; T1x = T1u - T1w; TZ = TS - TY; T17 = TS + TY; T1y = T1s - T1x; T25 = T1s + T1x; T1P = T1F + T1G; T1H = T1F - T1G; T1Y = T16 - T17;//.........这里部分代码省略.........
开发者ID:bambang,项目名称:vsipl,代码行数:101,
示例3: FNMSstatic const R *hf_4(R *rio, R *iio, const R *W, stride ios, INT m, INT dist){ INT i; for (i = m - 2; i > 0; i = i - 2, rio = rio + dist, iio = iio - dist, W = W + 6, MAKE_VOLATILE_STRIDE(ios)) { E Tq, Tk, Ty, Tw, T8, Tm, To, Te; { E T1, Tv, Ta, Td, Tu, T7, T9, Tc, Tn, Tb; { E Tg, Tj, Tf, Ti; T1 = rio[0]; Tg = rio[WS(ios, 3)]; Tj = iio[0]; Tf = W[4]; Ti = W[5]; Tv = iio[-WS(ios, 3)]; { E T3, T6, T5, Tt, T4, T2, Tp, Th; T3 = rio[WS(ios, 2)]; Tp = Tf * Tj; Th = Tf * Tg; T6 = iio[-WS(ios, 1)]; T2 = W[2]; Tq = FNMS(Ti, Tg, Tp); Tk = FMA(Ti, Tj, Th); T5 = W[3]; Tt = T2 * T6; T4 = T2 * T3; Ta = rio[WS(ios, 1)]; Td = iio[-WS(ios, 2)]; Tu = FNMS(T5, T3, Tt); T7 = FMA(T5, T6, T4); T9 = W[0]; Tc = W[1]; } } Ty = Tv - Tu; Tw = Tu + Tv; T8 = T1 + T7; Tm = T1 - T7; Tn = T9 * Td; Tb = T9 * Ta; To = FNMS(Tc, Ta, Tn); Te = FMA(Tc, Td, Tb); } { E Ts, Tr, Tl, Tx; Ts = To + Tq; Tr = To - Tq; Tl = Te + Tk; Tx = Tk - Te; rio[WS(ios, 1)] = Tm + Tr; iio[-WS(ios, 3)] = Tm - Tr; iio[0] = Ts + Tw; rio[WS(ios, 2)] = Ts - Tw; iio[-WS(ios, 1)] = Tx + Ty; rio[WS(ios, 3)] = Tx - Ty; rio[0] = T8 + Tl; iio[-WS(ios, 2)] = T8 - Tl; } } return W;}
开发者ID:exic,项目名称:last.fm-dbus,代码行数:62,
示例4: hc2cfdft_8static void hc2cfdft_8(R *Rp, R *Ip, R *Rm, R *Im, const R *W, stride rs, INT mb, INT me, INT ms){ DK(KP707106781, +0.707106781186547524400844362104849039284835938); DK(KP500000000, +0.500000000000000000000000000000000000000000000); { INT m; for (m = mb, W = W + ((mb - 1) * 14); m < me; m = m + 1, Rp = Rp + ms, Ip = Ip + ms, Rm = Rm - ms, Im = Im - ms, W = W + 14, MAKE_VOLATILE_STRIDE(32, rs)) { E T1A, T1w, T1z, T1x, T1H, T1v, T1L, T1F; { E Ty, T14, TO, T1o, Tv, TG, T16, T1m, Ta, T19, T1h, TV, T10, TX, TZ; E Tk, T1i, TY, T1b, TF, TB, T1l; { E TH, TN, TK, TM; { E Tw, Tx, TI, TJ; Tw = Ip[0]; Tx = Im[0]; TI = Rm[0]; TJ = Rp[0]; TH = W[0]; Ty = Tw - Tx; TN = Tw + Tx; T14 = TJ + TI; TK = TI - TJ; TM = W[1]; } { E Ts, Tp, Tt, Tm, Tr; { E Tn, To, TL, T1n; Tn = Ip[WS(rs, 2)]; To = Im[WS(rs, 2)]; TL = TH * TK; T1n = TM * TK; Ts = Rp[WS(rs, 2)]; TF = Tn + To; Tp = Tn - To; TO = FNMS(TM, TN, TL); T1o = FMA(TH, TN, T1n); Tt = Rm[WS(rs, 2)]; } Tm = W[6]; Tr = W[7]; { E TE, TD, T15, TC, Tu, Tq; TB = W[8]; TC = Tt - Ts; Tu = Ts + Tt; Tq = Tm * Tp; TE = W[9]; TD = TB * TC; T15 = Tm * Tu; Tv = FNMS(Tr, Tu, Tq); T1l = TE * TC; TG = FNMS(TE, TF, TD); T16 = FMA(Tr, Tp, T15); } } } { E TU, TR, TT, T1g, TS; { E T2, T3, T7, T8; T2 = Ip[WS(rs, 1)]; T1m = FMA(TB, TF, T1l); T3 = Im[WS(rs, 1)]; T7 = Rp[WS(rs, 1)]; T8 = Rm[WS(rs, 1)]; { E T1, T4, T9, T6, T5, TQ, T18; T1 = W[2]; TU = T2 + T3; T4 = T2 - T3; TR = T7 - T8; T9 = T7 + T8; T6 = W[3]; T5 = T1 * T4; TQ = W[4]; T18 = T1 * T9; TT = W[5]; Ta = FNMS(T6, T9, T5); T1g = TQ * TU; TS = TQ * TR; T19 = FMA(T6, T4, T18); } } { E Tc, Td, Th, Ti; Tc = Ip[WS(rs, 3)]; T1h = FNMS(TT, TR, T1g); TV = FMA(TT, TU, TS); Td = Im[WS(rs, 3)]; Th = Rp[WS(rs, 3)]; Ti = Rm[WS(rs, 3)]; { E Tb, Te, Tj, Tg, Tf, TW, T1a; Tb = W[10]; T10 = Tc + Td; Te = Tc - Td; TX = Th - Ti;//.........这里部分代码省略.........
开发者ID:SKA-ScienceDataProcessor,项目名称:FastImaging,代码行数:101,
示例5: hb_5static void hb_5(R *cr, R *ci, const R *W, stride rs, INT mb, INT me, INT ms){ DK(KP250000000, +0.250000000000000000000000000000000000000000000); DK(KP587785252, +0.587785252292473129168705954639072768597652438); DK(KP951056516, +0.951056516295153572116439333379382143405698634); DK(KP559016994, +0.559016994374947424102293417182819058860154590); INT m; for (m = mb, W = W + ((mb - 1) * 8); m < me; m = m + 1, cr = cr + ms, ci = ci - ms, W = W + 8, MAKE_VOLATILE_STRIDE(rs)) { E T1, Tj, TG, Ts, T8, Ti, T9, Tn, TD, Tu, Tg, Tt; { E T4, Tq, T7, Tr; T1 = cr[0]; { E T2, T3, T5, T6; T2 = cr[WS(rs, 1)]; T3 = ci[0]; T4 = T2 + T3; Tq = T2 - T3; T5 = cr[WS(rs, 2)]; T6 = ci[WS(rs, 1)]; T7 = T5 + T6; Tr = T5 - T6; } Tj = KP559016994 * (T4 - T7); TG = FMA(KP951056516, Tq, KP587785252 * Tr); Ts = FNMS(KP951056516, Tr, KP587785252 * Tq); T8 = T4 + T7; Ti = FNMS(KP250000000, T8, T1); } { E Tc, Tl, Tf, Tm; T9 = ci[WS(rs, 4)]; { E Ta, Tb, Td, Te; Ta = ci[WS(rs, 3)]; Tb = cr[WS(rs, 4)]; Tc = Ta - Tb; Tl = Ta + Tb; Td = ci[WS(rs, 2)]; Te = cr[WS(rs, 3)]; Tf = Td - Te; Tm = Td + Te; } Tn = FNMS(KP951056516, Tm, KP587785252 * Tl); TD = FMA(KP951056516, Tl, KP587785252 * Tm); Tu = KP559016994 * (Tc - Tf); Tg = Tc + Tf; Tt = FNMS(KP250000000, Tg, T9); } cr[0] = T1 + T8; ci[0] = T9 + Tg; { E To, Ty, Tw, TA, Tk, Tv; Tk = Ti - Tj; To = Tk - Tn; Ty = Tk + Tn; Tv = Tt - Tu; Tw = Ts + Tv; TA = Tv - Ts; { E Th, Tp, Tx, Tz; Th = W[2]; Tp = W[3]; cr[WS(rs, 2)] = FNMS(Tp, Tw, Th * To); ci[WS(rs, 2)] = FMA(Th, Tw, Tp * To); Tx = W[4]; Tz = W[5]; cr[WS(rs, 3)] = FNMS(Tz, TA, Tx * Ty); ci[WS(rs, 3)] = FMA(Tx, TA, Tz * Ty); } } { E TE, TK, TI, TM, TC, TH; TC = Tj + Ti; TE = TC - TD; TK = TC + TD; TH = Tu + Tt; TI = TG + TH; TM = TH - TG; { E TB, TF, TJ, TL; TB = W[0]; TF = W[1]; cr[WS(rs, 1)] = FNMS(TF, TI, TB * TE); ci[WS(rs, 1)] = FMA(TB, TI, TF * TE); TJ = W[6]; TL = W[7]; cr[WS(rs, 4)] = FNMS(TL, TM, TJ * TK); ci[WS(rs, 4)] = FMA(TJ, TM, TL * TK); } } }}
开发者ID:8cH9azbsFifZ,项目名称:wspr,代码行数:93,
示例6: r2hc_11static void r2hc_11(const R *I, R *ro, R *io, stride is, stride ros, stride ios, INT v, INT ivs, INT ovs){ DK(KP959492973, +0.959492973614497389890368057066327699062454848); DK(KP876768831, +0.876768831002589333891339807079336796764054852); DK(KP918985947, +0.918985947228994779780736114132655398124909697); DK(KP989821441, +0.989821441880932732376092037776718787376519372); DK(KP778434453, +0.778434453334651800608337670740821884709317477); DK(KP830830026, +0.830830026003772851058548298459246407048009821); DK(KP715370323, +0.715370323453429719112414662767260662417897278); DK(KP634356270, +0.634356270682424498893150776899916060542806975); DK(KP342584725, +0.342584725681637509502641509861112333758894680); DK(KP521108558, +0.521108558113202722944698153526659300680427422); INT i; for (i = v; i > 0; i = i - 1, I = I + ivs, ro = ro + ovs, io = io + ovs, MAKE_VOLATILE_STRIDE(is), MAKE_VOLATILE_STRIDE(ros), MAKE_VOLATILE_STRIDE(ios)) { E T1, Tg, TF, TB, TI, TL, Tz, TA; { E T4, TC, TE, T7, TD, Ta, TS, TG, TJ, Td, TP, TM, Ty, Tq, Th; E Tt, Tl; T1 = I[0]; { E Tb, Tc, Tx, Tp; { E T2, T3, Te, Tf; T2 = I[WS(is, 1)]; T3 = I[WS(is, 10)]; Te = I[WS(is, 5)]; Tf = I[WS(is, 6)]; { E T5, T6, T8, T9; T5 = I[WS(is, 2)]; T4 = T2 + T3; TC = T3 - T2; Tg = Te + Tf; TE = Tf - Te; T6 = I[WS(is, 9)]; T8 = I[WS(is, 3)]; T9 = I[WS(is, 8)]; Tb = I[WS(is, 4)]; T7 = T5 + T6; TD = T5 - T6; Ta = T8 + T9; TF = T9 - T8; Tc = I[WS(is, 7)]; } } TS = FMA(KP521108558, TC, TD); TG = FMA(KP521108558, TF, TE); TJ = FMA(KP521108558, TE, TC); Td = Tb + Tc; TB = Tb - Tc; Tx = FNMS(KP342584725, Ta, T7); Tp = FNMS(KP342584725, T4, Ta); TP = FNMS(KP521108558, TB, TF); TM = FNMS(KP521108558, TD, TB); Ty = FNMS(KP634356270, Tx, Td); Tq = FNMS(KP634356270, Tp, Tg); Th = FNMS(KP342584725, Tg, Td); Tt = FNMS(KP342584725, Td, T4); Tl = FNMS(KP342584725, T7, Tg); } { E Tu, Ts, TN, Tv; { E Tm, TU, Tj, Ti, TT; TT = FMA(KP715370323, TS, TF); Ti = FNMS(KP634356270, Th, Ta); Tu = FNMS(KP634356270, Tt, T7); Tm = FNMS(KP634356270, Tl, T4); TU = FMA(KP830830026, TT, TB); Tj = FNMS(KP778434453, Ti, T7); { E Tk, TR, To, Tn, TQ, Tr; TQ = FMA(KP715370323, TP, TC); Tn = FNMS(KP778434453, Tm, Ta); io[WS(ios, 5)] = KP989821441 * (FMA(KP918985947, TU, TE)); Tk = FNMS(KP876768831, Tj, T4); TR = FNMS(KP830830026, TQ, TE); To = FNMS(KP876768831, Tn, Td); Tr = FNMS(KP778434453, Tq, Td); ro[WS(ros, 5)] = FNMS(KP959492973, Tk, T1); io[WS(ios, 4)] = KP989821441 * (FNMS(KP918985947, TR, TD)); ro[WS(ros, 4)] = FNMS(KP959492973, To, T1); Ts = FNMS(KP876768831, Tr, T7); } } TN = FNMS(KP715370323, TM, TE); Tv = FNMS(KP778434453, Tu, Tg); ro[0] = T1 + T4 + T7 + Ta + Td + Tg; ro[WS(ros, 3)] = FNMS(KP959492973, Ts, T1); { E TO, Tw, TH, TK; TO = FNMS(KP830830026, TN, TF); Tw = FNMS(KP876768831, Tv, Ta); TH = FMA(KP715370323, TG, TD); TK = FNMS(KP715370323, TJ, TB); io[WS(ios, 3)] = KP989821441 * (FNMS(KP918985947, TO, TC)); ro[WS(ros, 2)] = FNMS(KP959492973, Tw, T1); TI = FNMS(KP830830026, TH, TC); TL = FMA(KP830830026, TK, TD); Tz = FNMS(KP778434453, Ty, T4);//.........这里部分代码省略.........
开发者ID:exic,项目名称:last.fm-dbus,代码行数:101,
示例7: q1_3static void q1_3(float *rio, float *iio, const float *W, stride rs, stride vs, INT mb, INT me, INT ms){ DK(KP866025403, +0.866025403784438646763723170752936183471402627); DK(KP500000000, +0.500000000000000000000000000000000000000000000); INT m; for (m = mb, W = W + (mb * 4); m < me; m = m + 1, rio = rio + ms, iio = iio + ms, W = W + 4, MAKE_VOLATILE_STRIDE(rs), MAKE_VOLATILE_STRIDE(vs)) { E Tk, Tn, Tm, To, Tl; { E T1, Td, T4, Tg, Tp, T9, Te, T6, Tf, TB, TE, Ts, TZ, Tu, Tx; E TC, TN, TO, TD, TV, T10, TP, Tq, Tr; { E T2, T3, T7, T8; T1 = rio[0]; T2 = rio[WS(rs, 1)]; T3 = rio[WS(rs, 2)]; Td = iio[0]; T7 = iio[WS(rs, 1)]; T8 = iio[WS(rs, 2)]; T4 = T2 + T3; Tg = T3 - T2; Tp = rio[WS(vs, 1)]; T9 = T7 - T8; Te = T7 + T8; T6 = FNMS(KP500000000, T4, T1); Tq = rio[WS(vs, 1) + WS(rs, 1)]; Tr = rio[WS(vs, 1) + WS(rs, 2)]; Tf = FNMS(KP500000000, Te, Td); } { E Tv, Tw, TT, TU; TB = iio[WS(vs, 1)]; Tv = iio[WS(vs, 1) + WS(rs, 1)]; TE = Tr - Tq; Ts = Tq + Tr; Tw = iio[WS(vs, 1) + WS(rs, 2)]; TZ = iio[WS(vs, 2)]; TT = iio[WS(vs, 2) + WS(rs, 1)]; Tu = FNMS(KP500000000, Ts, Tp); Tx = Tv - Tw; TC = Tv + Tw; TU = iio[WS(vs, 2) + WS(rs, 2)]; TN = rio[WS(vs, 2)]; TO = rio[WS(vs, 2) + WS(rs, 1)]; TD = FNMS(KP500000000, TC, TB); TV = TT - TU; T10 = TT + TU; TP = rio[WS(vs, 2) + WS(rs, 2)]; } { E T11, T12, TS, TQ; rio[0] = T1 + T4; iio[0] = Td + Te; T11 = FNMS(KP500000000, T10, TZ); T12 = TP - TO; TQ = TO + TP; rio[WS(rs, 1)] = Tp + Ts; iio[WS(rs, 1)] = TB + TC; iio[WS(rs, 2)] = TZ + T10; TS = FNMS(KP500000000, TQ, TN); rio[WS(rs, 2)] = TN + TQ; { E TW, T13, Ty, TI, TL, TF, TH, TK; { E Ta, Th, T5, Tc; Tk = FNMS(KP866025403, T9, T6); Ta = FMA(KP866025403, T9, T6); Th = FMA(KP866025403, Tg, Tf); Tn = FNMS(KP866025403, Tg, Tf); T5 = W[0]; Tc = W[1]; { E T16, T19, T18, T1a, T17, Ti, Tb, T15; TW = FMA(KP866025403, TV, TS); T16 = FNMS(KP866025403, TV, TS); T19 = FNMS(KP866025403, T12, T11); T13 = FMA(KP866025403, T12, T11); Ti = T5 * Th; Tb = T5 * Ta; T15 = W[2]; T18 = W[3]; iio[WS(vs, 1)] = FNMS(Tc, Ta, Ti); rio[WS(vs, 1)] = FMA(Tc, Th, Tb); T1a = T15 * T19; T17 = T15 * T16; Ty = FMA(KP866025403, Tx, Tu); TI = FNMS(KP866025403, Tx, Tu); TL = FNMS(KP866025403, TE, TD); TF = FMA(KP866025403, TE, TD); iio[WS(vs, 2) + WS(rs, 2)] = FNMS(T18, T16, T1a); rio[WS(vs, 2) + WS(rs, 2)] = FMA(T18, T19, T17); TH = W[2]; TK = W[3]; } } { E TA, TG, Tz, TM, TJ, Tt; TM = TH * TL; TJ = TH * TI; Tt = W[0]; TA = W[1];//.........这里部分代码省略.........
开发者ID:Rudrj2,项目名称:FFTW3_MOD-for-Android,代码行数:101,
示例8: hf_25static void hf_25(R *cr, R *ci, const R *W, stride rs, INT mb, INT me, INT ms){ DK(KP949179823, +0.949179823508441261575555465843363271711583843); DK(KP860541664, +0.860541664367944677098261680920518816412804187); DK(KP621716863, +0.621716863012209892444754556304102309693593202); DK(KP614372930, +0.614372930789563808870829930444362096004872855); DK(KP557913902, +0.557913902031834264187699648465567037992437152); DK(KP249506682, +0.249506682107067890488084201715862638334226305); DK(KP560319534, +0.560319534973832390111614715371676131169633784); DK(KP681693190, +0.681693190061530575150324149145440022633095390); DK(KP906616052, +0.906616052148196230441134447086066874408359177); DK(KP968479752, +0.968479752739016373193524836781420152702090879); DK(KP845997307, +0.845997307939530944175097360758058292389769300); DK(KP998026728, +0.998026728428271561952336806863450553336905220); DK(KP994076283, +0.994076283785401014123185814696322018529298887); DK(KP734762448, +0.734762448793050413546343770063151342619912334); DK(KP772036680, +0.772036680810363904029489473607579825330539880); DK(KP062914667, +0.062914667253649757225485955897349402364686947); DK(KP833417178, +0.833417178328688677408962550243238843138996060); DK(KP921177326, +0.921177326965143320250447435415066029359282231); DK(KP541454447, +0.541454447536312777046285590082819509052033189); DK(KP803003575, +0.803003575438660414833440593570376004635464850); DK(KP943557151, +0.943557151597354104399655195398983005179443399); DK(KP554608978, +0.554608978404018097464974850792216217022558774); DK(KP242145790, +0.242145790282157779872542093866183953459003101); DK(KP559154169, +0.559154169276087864842202529084232643714075927); DK(KP683113946, +0.683113946453479238701949862233725244439656928); DK(KP248028675, +0.248028675328619457762448260696444630363259177); DK(KP968583161, +0.968583161128631119490168375464735813836012403); DK(KP525970792, +0.525970792408939708442463226536226366643874659); DK(KP726211448, +0.726211448929902658173535992263577167607493062); DK(KP904730450, +0.904730450839922351881287709692877908104763647); DK(KP831864738, +0.831864738706457140726048799369896829771167132); DK(KP871714437, +0.871714437527667770979999223229522602943903653); DK(KP549754652, +0.549754652192770074288023275540779861653779767); DK(KP992114701, +0.992114701314477831049793042785778521453036709); DK(KP939062505, +0.939062505817492352556001843133229685779824606); DK(KP256756360, +0.256756360367726783319498520922669048172391148); DK(KP851038619, +0.851038619207379630836264138867114231259902550); DK(KP912575812, +0.912575812670962425556968549836277086778922727); DK(KP912018591, +0.912018591466481957908415381764119056233607330); DK(KP634619297, +0.634619297544148100711287640319130485732531031); DK(KP470564281, +0.470564281212251493087595091036643380879947982); DK(KP827271945, +0.827271945972475634034355757144307982555673741); DK(KP126329378, +0.126329378446108174786050455341811215027378105); DK(KP951056516, +0.951056516295153572116439333379382143405698634); DK(KP559016994, +0.559016994374947424102293417182819058860154590); DK(KP250000000, +0.250000000000000000000000000000000000000000000); DK(KP618033988, +0.618033988749894848204586834365638117720309180); { INT m; for (m = mb, W = W + ((mb - 1) * 48); m < me; m = m + 1, cr = cr + ms, ci = ci - ms, W = W + 48, MAKE_VOLATILE_STRIDE(50, rs)) { E T7i, T6o, T6m, T7o, T7m, T7h, T6n, T6f, T7j, T7n; { E T6W, T5G, T3Y, T3M, T7q, T70, T6V, T7P, Tt, T3L, T5T, T45, T5Q, T4c, T3G; E T2G, T5P, T49, T5S, T42, T65, T4H, T68, T4A, T2Z, T11, T67, T4x, T64, T4E; E T5Y, T4W, T61, T4P, T3d, T1z, T60, T4M, T5X, T4T, T3g, T1G, T3q, T4q, T4j; E T26, T3i, T1M, T3k, T1S; { E T3u, T2e, T3E, T44, T4b, T2E, T3w, T2k, T3y, T2q; { E T1, T6R, T3P, T7, T3W, Tq, T9, Tc, Tb, T3U, Tk, T3Q, Ta; { E T3, T6, T2, T5; T1 = cr[0]; T6R = ci[0]; T3 = cr[WS(rs, 5)]; T6 = ci[WS(rs, 5)]; T2 = W[8]; T5 = W[9]; { E Tm, Tp, To, T3V, Tn, T3O, T4, Tl; Tm = cr[WS(rs, 15)]; Tp = ci[WS(rs, 15)]; T3O = T2 * T6; T4 = T2 * T3; Tl = W[28]; To = W[29]; T3P = FNMS(T5, T3, T3O); T7 = FMA(T5, T6, T4); T3V = Tl * Tp; Tn = Tl * Tm; { E Tg, Tj, Tf, Ti, T3T, Th, T8; Tg = cr[WS(rs, 10)]; Tj = ci[WS(rs, 10)]; T3W = FNMS(To, Tm, T3V); Tq = FMA(To, Tp, Tn); Tf = W[18]; Ti = W[19]; T9 = cr[WS(rs, 20)]; Tc = ci[WS(rs, 20)]; T3T = Tf * Tj; Th = Tf * Tg; T8 = W[38]; Tb = W[39]; T3U = FNMS(Ti, Tg, T3T); Tk = FMA(Ti, Tj, Th); T3Q = T8 * Tc; Ta = T8 * T9;//.........这里部分代码省略.........
开发者ID:LiZimo,项目名称:interactiveCart,代码行数:101,
示例9: hc2cfdft_4static void hc2cfdft_4(R *Rp, R *Ip, R *Rm, R *Im, const R *W, stride rs, INT mb, INT me, INT ms){ DK(KP500000000, +0.500000000000000000000000000000000000000000000); { INT m; for (m = mb, W = W + ((mb - 1) * 6); m < me; m = m + 1, Rp = Rp + ms, Ip = Ip + ms, Rm = Rm - ms, Im = Im - ms, W = W + 6, MAKE_VOLATILE_STRIDE(16, rs)) { E Tc, Tr, Tk, Tx, T9, Ts, Tp, Tw; { E Ta, Tb, Tj, Tf, Tg, Th, Te, Ti; Ta = Ip[0]; Tb = Im[0]; Tj = Ta + Tb; Tf = Rm[0]; Tg = Rp[0]; Th = Tf - Tg; Tc = Ta - Tb; Tr = Tg + Tf; Te = W[0]; Ti = W[1]; Tk = FNMS(Ti, Tj, Te * Th); Tx = FMA(Ti, Th, Te * Tj); } { E T4, To, T8, Tm; { E T2, T3, T6, T7; T2 = Ip[WS(rs, 1)]; T3 = Im[WS(rs, 1)]; T4 = T2 - T3; To = T2 + T3; T6 = Rp[WS(rs, 1)]; T7 = Rm[WS(rs, 1)]; T8 = T6 + T7; Tm = T6 - T7; } { E T1, T5, Tl, Tn; T1 = W[2]; T5 = W[3]; T9 = FNMS(T5, T8, T1 * T4); Ts = FMA(T1, T8, T5 * T4); Tl = W[4]; Tn = W[5]; Tp = FMA(Tl, Tm, Tn * To); Tw = FNMS(Tn, Tm, Tl * To); } } { E Td, Tq, Tz, TA; Td = T9 + Tc; Tq = Tk - Tp; Ip[0] = KP500000000 * (Td + Tq); Im[WS(rs, 1)] = KP500000000 * (Tq - Td); Tz = Tr + Ts; TA = Tw + Tx; Rm[WS(rs, 1)] = KP500000000 * (Tz - TA); Rp[0] = KP500000000 * (Tz + TA); } { E Tt, Tu, Tv, Ty; Tt = Tr - Ts; Tu = Tp + Tk; Rm[0] = KP500000000 * (Tt - Tu); Rp[WS(rs, 1)] = KP500000000 * (Tt + Tu); Tv = Tc - T9; Ty = Tw - Tx; Ip[WS(rs, 1)] = KP500000000 * (Tv + Ty); Im[0] = KP500000000 * (Ty - Tv); } } }}
开发者ID:LiZimo,项目名称:interactiveCart,代码行数:72,
示例10: hc2cfdft2_16static void hc2cfdft2_16(R *Rp, R *Ip, R *Rm, R *Im, const R *W, stride rs, INT mb, INT me, INT ms){ DK(KP461939766, +0.461939766255643378064091594698394143411208313); DK(KP191341716, +0.191341716182544885864229992015199433380672281); DK(KP353553390, +0.353553390593273762200422181052424519642417969); DK(KP500000000, +0.500000000000000000000000000000000000000000000); { INT m; for (m = mb, W = W + ((mb - 1) * 8); m < me; m = m + 1, Rp = Rp + ms, Ip = Ip + ms, Rm = Rm - ms, Im = Im - ms, W = W + 8, MAKE_VOLATILE_STRIDE(64, rs)) { E T1, T4, T2, T5, T7, Td, T12, TY, Tk, Ti, Tm, T1l, T1b, TL, T1h; E Ts, TR, T17, Ty, Tz, TA, TE, T1L, T1Q, T1H, T1O, T24, T2d, T20, T2b; { E Tl, TP, Tq, TK, Tj, TQ, Tr, TJ; { E T3, Tc, T6, Tb; T1 = W[0]; T4 = W[1]; T2 = W[2]; T5 = W[3]; T3 = T1 * T2; Tc = T4 * T2; T6 = T4 * T5; Tb = T1 * T5; T7 = T3 + T6; Td = Tb - Tc; T12 = Tb + Tc; TY = T3 - T6; Tk = W[5]; Tl = T4 * Tk; TP = T2 * Tk; Tq = T1 * Tk; TK = T5 * Tk; Ti = W[4]; Tj = T1 * Ti; TQ = T5 * Ti; Tr = T4 * Ti; TJ = T2 * Ti; } Tm = Tj - Tl; T1l = Tq - Tr; T1b = TP + TQ; TL = TJ + TK; T1h = Tj + Tl; Ts = Tq + Tr; TR = TP - TQ; T17 = TJ - TK; Ty = W[6]; Tz = W[7]; TA = FMA(T1, Ty, T4 * Tz); TE = FNMS(T4, Ty, T1 * Tz); { E T1J, T1K, T1F, T1G; T1J = TY * Tk; T1K = T12 * Ti; T1L = T1J - T1K; T1Q = T1J + T1K; T1F = TY * Ti; T1G = T12 * Tk; T1H = T1F + T1G; T1O = T1F - T1G; } { E T22, T23, T1Y, T1Z; T22 = T7 * Tk; T23 = Td * Ti; T24 = T22 + T23; T2d = T22 - T23; T1Y = T7 * Ti; T1Z = Td * Tk; T20 = T1Y - T1Z; T2b = T1Y + T1Z; } } { E T1t, T3i, T2l, T3B, T1E, T3t, T2M, T3x, T1g, T3C, T2J, T3u, T1T, T3w, T2o; E T3j, Tx, T3b, T2C, T3q, T27, T3m, T2s, T3c, TW, T3f, T2F, T3n, T2g, T3p; E T2v, T3e; { E T1k, T1C, T1o, T1B, T1s, T1z, T1y, T2j, T1p, T2k; { E T1i, T1j, T1m, T1n; T1i = Ip[WS(rs, 4)]; T1j = Im[WS(rs, 4)]; T1k = T1i - T1j; T1C = T1i + T1j; T1m = Rp[WS(rs, 4)]; T1n = Rm[WS(rs, 4)]; T1o = T1m + T1n; T1B = T1m - T1n; } { E T1q, T1r, T1w, T1x; T1q = Ip[0]; T1r = Im[0]; T1s = T1q - T1r; T1z = T1q + T1r; T1w = Rm[0]; T1x = Rp[0]; T1y = T1w - T1x; T2j = T1x + T1w;//.........这里部分代码省略.........
开发者ID:SKA-ScienceDataProcessor,项目名称:FastImaging,代码行数:101,
示例11: hb2_16static void hb2_16(R *cr, R *ci, const R *W, stride rs, INT mb, INT me, INT ms){ DK(KP382683432, +0.382683432365089771728459984030398866761344562); DK(KP923879532, +0.923879532511286756128183189396788286822416626); DK(KP707106781, +0.707106781186547524400844362104849039284835938); { INT m; for (m = mb, W = W + ((mb - 1) * 8); m < me; m = m + 1, cr = cr + ms, ci = ci - ms, W = W + 8, MAKE_VOLATILE_STRIDE(32, rs)) { E Tv, Ty, T1l, T1n, T1p, T1t, T27, T25, Tz, Tw, TB, T21, T1P, T1H, T1X; E T17, T1L, T1N, T1v, T1w, T1x, T1B, T2F, T2T, T2b, T2R, T3j, T3x, T35, T3t; { E TA, T1J, T15, T1G, Tx, T1K, T16, T1F; { E T1m, T1s, T1o, T1r; Tv = W[0]; Ty = W[1]; T1l = W[2]; T1n = W[3]; T1m = Tv * T1l; T1s = Ty * T1l; T1o = Ty * T1n; T1r = Tv * T1n; T1p = T1m + T1o; T1t = T1r - T1s; T27 = T1r + T1s; T25 = T1m - T1o; Tz = W[5]; TA = Ty * Tz; T1J = T1l * Tz; T15 = Tv * Tz; T1G = T1n * Tz; Tw = W[4]; Tx = Tv * Tw; T1K = T1n * Tw; T16 = Ty * Tw; T1F = T1l * Tw; } TB = Tx - TA; T21 = T1J + T1K; T1P = T15 - T16; T1H = T1F + T1G; T1X = T1F - T1G; T17 = T15 + T16; T1L = T1J - T1K; T1N = Tx + TA; T1v = W[6]; T1w = W[7]; T1x = FMA(Tv, T1v, Ty * T1w); T1B = FNMS(Ty, T1v, Tv * T1w); { E T2D, T2E, T29, T2a; T2D = T25 * Tz; T2E = T27 * Tw; T2F = T2D + T2E; T2T = T2D - T2E; T29 = T25 * Tw; T2a = T27 * Tz; T2b = T29 - T2a; T2R = T29 + T2a; } { E T3h, T3i, T33, T34; T3h = T1p * Tz; T3i = T1t * Tw; T3j = T3h + T3i; T3x = T3h - T3i; T33 = T1p * Tw; T34 = T1t * Tz; T35 = T33 - T34; T3t = T33 + T34; } } { E T7, T36, T3k, TC, T1f, T2e, T2I, T1Q, Te, TJ, T1R, T18, T2L, T37, T2l; E T3l, Tm, T1T, TT, T1h, T2A, T2N, T3b, T3n, Tt, T1U, T12, T1i, T2t, T2O; E T3e, T3o; { E T3, T2c, T1e, T2d, T6, T2G, T1b, T2H; { E T1, T2, T1c, T1d; T1 = cr[0]; T2 = ci[WS(rs, 7)]; T3 = T1 + T2; T2c = T1 - T2; T1c = ci[WS(rs, 11)]; T1d = cr[WS(rs, 12)]; T1e = T1c - T1d; T2d = T1c + T1d; } { E T4, T5, T19, T1a; T4 = cr[WS(rs, 4)]; T5 = ci[WS(rs, 3)]; T6 = T4 + T5; T2G = T4 - T5; T19 = ci[WS(rs, 15)]; T1a = cr[WS(rs, 8)]; T1b = T19 - T1a; T2H = T19 + T1a; }//.........这里部分代码省略.........
开发者ID:DougBurke,项目名称:sherpa,代码行数:101,
示例12: t1_8static void t1_8(float *ri, float *ii, const float *W, stride rs, INT mb, INT me, INT ms){ DK(KP707106781, +0.707106781186547524400844362104849039284835938); INT m; for (m = mb, W = W + (mb * 14); m < me; m = m + 1, ri = ri + ms, ii = ii + ms, W = W + 14, MAKE_VOLATILE_STRIDE(rs)) { E T7, T1e, TH, T19, TF, T13, TR, TU, Ti, T1f, TK, T16, Tu, T12, TM; E TP; { E T1, T18, T6, T17; T1 = ri[0]; T18 = ii[0]; { E T3, T5, T2, T4; T3 = ri[WS(rs, 4)]; T5 = ii[WS(rs, 4)]; T2 = W[6]; T4 = W[7]; T6 = FMA(T2, T3, T4 * T5); T17 = FNMS(T4, T3, T2 * T5); } T7 = T1 + T6; T1e = T18 - T17; TH = T1 - T6; T19 = T17 + T18; } { E Tz, TS, TE, TT; { E Tw, Ty, Tv, Tx; Tw = ri[WS(rs, 7)]; Ty = ii[WS(rs, 7)]; Tv = W[12]; Tx = W[13]; Tz = FMA(Tv, Tw, Tx * Ty); TS = FNMS(Tx, Tw, Tv * Ty); } { E TB, TD, TA, TC; TB = ri[WS(rs, 3)]; TD = ii[WS(rs, 3)]; TA = W[4]; TC = W[5]; TE = FMA(TA, TB, TC * TD); TT = FNMS(TC, TB, TA * TD); } TF = Tz + TE; T13 = TS + TT; TR = Tz - TE; TU = TS - TT; } { E Tc, TI, Th, TJ; { E T9, Tb, T8, Ta; T9 = ri[WS(rs, 2)]; Tb = ii[WS(rs, 2)]; T8 = W[2]; Ta = W[3]; Tc = FMA(T8, T9, Ta * Tb); TI = FNMS(Ta, T9, T8 * Tb); } { E Te, Tg, Td, Tf; Te = ri[WS(rs, 6)]; Tg = ii[WS(rs, 6)]; Td = W[10]; Tf = W[11]; Th = FMA(Td, Te, Tf * Tg); TJ = FNMS(Tf, Te, Td * Tg); } Ti = Tc + Th; T1f = Tc - Th; TK = TI - TJ; T16 = TI + TJ; } { E To, TN, Tt, TO; { E Tl, Tn, Tk, Tm; Tl = ri[WS(rs, 1)]; Tn = ii[WS(rs, 1)]; Tk = W[0]; Tm = W[1]; To = FMA(Tk, Tl, Tm * Tn); TN = FNMS(Tm, Tl, Tk * Tn); } { E Tq, Ts, Tp, Tr; Tq = ri[WS(rs, 5)]; Ts = ii[WS(rs, 5)]; Tp = W[8]; Tr = W[9]; Tt = FMA(Tp, Tq, Tr * Ts); TO = FNMS(Tr, Tq, Tp * Ts); } Tu = To + Tt; T12 = TN + TO; TM = To - Tt; TP = TN - TO; }//.........这里部分代码省略.........
开发者ID:Rudrj2,项目名称:FFTW3_MOD-for-Android,代码行数:101,
示例13: hc2r_15static void hc2r_15(const R *ri, const R *ii, R *O, stride ris, stride iis, stride os, INT v, INT ivs, INT ovs){ DK(KP1_118033988, +1.118033988749894848204586834365638117720309180); DK(KP1_902113032, +1.902113032590307144232878666758764286811397268); DK(KP1_175570504, +1.175570504584946258337411909278145537195304875); DK(KP500000000, +0.500000000000000000000000000000000000000000000); DK(KP866025403, +0.866025403784438646763723170752936183471402627); DK(KP2_000000000, +2.000000000000000000000000000000000000000000000); DK(KP1_732050807, +1.732050807568877293527446341505872366942805254); INT i; for (i = v; i > 0; i = i - 1, ri = ri + ivs, ii = ii + ivs, O = O + ovs, MAKE_VOLATILE_STRIDE(ris), MAKE_VOLATILE_STRIDE(iis), MAKE_VOLATILE_STRIDE(os)) { E T3, Tu, Ti, TB, TZ, T10, TE, TG, TJ, Tn, Tv, Ts, Tw, T8, Td; E Te; { E Th, T1, T2, Tf, Tg; Tg = ii[WS(iis, 5)]; Th = KP1_732050807 * Tg; T1 = ri[0]; T2 = ri[WS(ris, 5)]; Tf = T1 - T2; T3 = FMA(KP2_000000000, T2, T1); Tu = Tf - Th; Ti = Tf + Th; } { E T4, TD, T9, TI, T5, T6, T7, Ta, Tb, Tc, Tr, TH, Tm, TC, Tj; E To; T4 = ri[WS(ris, 3)]; TD = ii[WS(iis, 3)]; T9 = ri[WS(ris, 6)]; TI = ii[WS(iis, 6)]; T5 = ri[WS(ris, 7)]; T6 = ri[WS(ris, 2)]; T7 = T5 + T6; Ta = ri[WS(ris, 4)]; Tb = ri[WS(ris, 1)]; Tc = Ta + Tb; { E Tp, Tq, Tk, Tl; Tp = ii[WS(iis, 4)]; Tq = ii[WS(iis, 1)]; Tr = KP866025403 * (Tp + Tq); TH = Tp - Tq; Tk = ii[WS(iis, 7)]; Tl = ii[WS(iis, 2)]; Tm = KP866025403 * (Tk - Tl); TC = Tk + Tl; } TB = KP866025403 * (T5 - T6); TZ = TD - TC; T10 = TI - TH; TE = FMA(KP500000000, TC, TD); TG = KP866025403 * (Ta - Tb); TJ = FMA(KP500000000, TH, TI); Tj = FNMS(KP500000000, T7, T4); Tn = Tj - Tm; Tv = Tj + Tm; To = FNMS(KP500000000, Tc, T9); Ts = To - Tr; Tw = To + Tr; T8 = T4 + T7; Td = T9 + Tc; Te = T8 + Td; } O[0] = FMA(KP2_000000000, Te, T3); { E T11, T13, TY, T12, TW, TX; T11 = FNMS(KP1_902113032, T10, KP1_175570504 * TZ); T13 = FMA(KP1_902113032, TZ, KP1_175570504 * T10); TW = FNMS(KP500000000, Te, T3); TX = KP1_118033988 * (T8 - Td); TY = TW - TX; T12 = TX + TW; O[WS(os, 12)] = TY - T11; O[WS(os, 9)] = T12 + T13; O[WS(os, 3)] = TY + T11; O[WS(os, 6)] = T12 - T13; } { E TP, Tt, TO, TT, TV, TR, TS, TU, TQ; TP = KP1_118033988 * (Tn - Ts); Tt = Tn + Ts; TO = FNMS(KP500000000, Tt, Ti); TR = TE - TB; TS = TJ - TG; TT = FNMS(KP1_902113032, TS, KP1_175570504 * TR); TV = FMA(KP1_902113032, TR, KP1_175570504 * TS); O[WS(os, 5)] = FMA(KP2_000000000, Tt, Ti); TU = TP + TO; O[WS(os, 11)] = TU - TV; O[WS(os, 14)] = TU + TV; TQ = TO - TP; O[WS(os, 2)] = TQ - TT; O[WS(os, 8)] = TQ + TT; } { E Tz, Tx, Ty, TL, TN, TF, TK, TM, TA; Tz = KP1_118033988 * (Tv - Tw); Tx = Tv + Tw; Ty = FNMS(KP500000000, Tx, Tu);//.........这里部分代码省略.........
开发者ID:exic,项目名称:last.fm-dbus,代码行数:101,
示例14: hc2r_9static void hc2r_9(const R *ri, const R *ii, R *O, stride ris, stride iis, stride os, int v, int ivs, int ovs){ DK(KP984807753, +0.984807753012208059366743024589523013670643252); DK(KP173648177, +0.173648177666930348851716626769314796000375677); DK(KP300767466, +0.300767466360870593278543795225003852144476517); DK(KP1_705737063, +1.705737063904886419256501927880148143872040591); DK(KP642787609, +0.642787609686539326322643409907263432907559884); DK(KP766044443, +0.766044443118978035202392650555416673935832457); DK(KP1_326827896, +1.326827896337876792410842639271782594433726619); DK(KP1_113340798, +1.113340798452838732905825904094046265936583811); DK(KP500000000, +0.500000000000000000000000000000000000000000000); DK(KP866025403, +0.866025403784438646763723170752936183471402627); DK(KP2_000000000, +2.000000000000000000000000000000000000000000000); DK(KP1_732050807, +1.732050807568877293527446341505872366942805254); int i; for (i = v; i > 0; i = i - 1, ri = ri + ivs, ii = ii + ivs, O = O + ovs) { E T3, Tq, Tc, Tk, Tj, T8, Tm, Ts, Th, Tr, Tw, Tx; { E Tb, T1, T2, T9, Ta; Ta = ii[WS(iis, 3)]; Tb = KP1_732050807 * Ta; T1 = ri[0]; T2 = ri[WS(ris, 3)]; T9 = T1 - T2; T3 = FMA(KP2_000000000, T2, T1); Tq = T9 + Tb; Tc = T9 - Tb; } { E T4, T7, Ti, Tg, Tl, Td; T4 = ri[WS(ris, 1)]; Tk = ii[WS(iis, 1)]; { E T5, T6, Te, Tf; T5 = ri[WS(ris, 4)]; T6 = ri[WS(ris, 2)]; T7 = T5 + T6; Ti = KP866025403 * (T5 - T6); Te = ii[WS(iis, 4)]; Tf = ii[WS(iis, 2)]; Tg = KP866025403 * (Te + Tf); Tj = Tf - Te; } T8 = T4 + T7; Tl = FMA(KP500000000, Tj, Tk); Tm = Ti + Tl; Ts = Tl - Ti; Td = FNMS(KP500000000, T7, T4); Th = Td - Tg; Tr = Td + Tg; } O[0] = FMA(KP2_000000000, T8, T3); Tw = T3 - T8; Tx = KP1_732050807 * (Tk - Tj); O[WS(os, 3)] = Tw - Tx; O[WS(os, 6)] = Tw + Tx; { E Tp, Tn, To, Tv, Tt, Tu; Tp = FMA(KP1_113340798, Th, KP1_326827896 * Tm); Tn = FNMS(KP642787609, Tm, KP766044443 * Th); To = Tc - Tn; O[WS(os, 1)] = FMA(KP2_000000000, Tn, Tc); O[WS(os, 7)] = To + Tp; O[WS(os, 4)] = To - Tp; Tv = FMA(KP1_705737063, Tr, KP300767466 * Ts); Tt = FNMS(KP984807753, Ts, KP173648177 * Tr); Tu = Tq - Tt; O[WS(os, 2)] = FMA(KP2_000000000, Tt, Tq); O[WS(os, 8)] = Tu + Tv; O[WS(os, 5)] = Tu - Tv; } }}
开发者ID:OS2World,项目名称:MM-SOUND-PM123,代码行数:73,
示例15: r2cbIII_32//.........这里部分代码省略......... TS = Ci[WS(csi, 2)]; TT = Ci[WS(csi, 13)]; Tj = Cr[WS(csr, 10)]; Tk = Cr[WS(csr, 5)]; TN = Ci[WS(csi, 10)]; T25 = TS - TT; TU = TS + TT; TR = Tj - Tk; Tl = Tj + Tk; TO = Ci[WS(csi, 5)]; } { E T12, T13, Tq, Tr; { E Tn, T1A, TV, T24, T26, TP, To, T27, T1B, TQ; Tn = Cr[WS(csr, 1)]; T1A = TR - TU; TV = TR + TU; T24 = Ti - Tl; Tm = Ti + Tl; T26 = TN - TO; TP = TN + TO; To = Cr[WS(csr, 14)]; T12 = Ci[WS(csi, 1)]; T27 = T25 - T26; T2B = T26 + T25; T1B = TM + TP; TQ = TM - TP; TX = Tn - To; Tp = Tn + To; T2m = T24 + T27; T28 = T24 - T27; T1M = FNMS(KP414213562, T1A, T1B); T1C = FMA(KP414213562, T1B, T1A); T1k = FMA(KP414213562, TQ, TV); TW = FNMS(KP414213562, TV, TQ); T13 = Ci[WS(csi, 14)]; } Tq = Cr[WS(csr, 6)]; Tr = Cr[WS(csr, 9)]; TY = Ci[WS(csi, 6)]; T2a = T13 - T12; T14 = T12 + T13; T15 = Tq - Tr; Ts = Tq + Tr; TZ = Ci[WS(csi, 9)]; } } } { E T1L, T1F, T23, T2n, T2k, T2e, T1p, T1t, T1s, T1i, T1o, T19, T1l, T1q; { E T2z, T2G, T2H, T2C, T1j, T17, T2r, T2s, T2u, T2v, T2K, T2D; { E T2L, T2d, T2l, T2O; { E Tf, T2N, Tu, T2M; { E T1D, T16, T29, Tt, T2b, T10; T2z = T7 - Te; Tf = T7 + Te; T1D = T15 + T14; T16 = T14 - T15; T29 = Tp - Ts; Tt = Tp + Ts; T2b = TY - TZ;
开发者ID:SKA-ScienceDataProcessor,项目名称:FastImaging,代码行数:67,
示例16: hb_12static void hb_12(R *cr, R *ci, const R *W, stride rs, INT mb, INT me, INT ms){ DK(KP500000000, +0.500000000000000000000000000000000000000000000); DK(KP866025403, +0.866025403784438646763723170752936183471402627); { INT m; for (m = mb, W = W + ((mb - 1) * 22); m < me; m = m + 1, cr = cr + ms, ci = ci - ms, W = W + 22, MAKE_VOLATILE_STRIDE(24, rs)) { E T5, TH, T12, T1M, T1i, T1U, Tg, Tt, T19, T1X, T1p, T1P, Ta, TM, T15; E T1N, T1l, T1V, Tl, Ty, T1c, T1Y, T1s, T1Q; { E T1, TD, T4, T1g, TG, T11, T10, T1h; T1 = cr[0]; TD = ci[WS(rs, 11)]; { E T2, T3, TE, TF; T2 = cr[WS(rs, 4)]; T3 = ci[WS(rs, 3)]; T4 = T2 + T3; T1g = KP866025403 * (T2 - T3); TE = ci[WS(rs, 7)]; TF = cr[WS(rs, 8)]; TG = TE - TF; T11 = KP866025403 * (TE + TF); } T5 = T1 + T4; TH = TD + TG; T10 = FNMS(KP500000000, T4, T1); T12 = T10 - T11; T1M = T10 + T11; T1h = FNMS(KP500000000, TG, TD); T1i = T1g + T1h; T1U = T1h - T1g; } { E Tc, Tp, Tf, T17, Ts, T1o, T18, T1n; Tc = cr[WS(rs, 3)]; Tp = ci[WS(rs, 8)]; { E Td, Te, Tq, Tr; Td = ci[WS(rs, 4)]; Te = ci[0]; Tf = Td + Te; T17 = KP866025403 * (Td - Te); Tq = cr[WS(rs, 7)]; Tr = cr[WS(rs, 11)]; Ts = Tq + Tr; T1o = KP866025403 * (Tq - Tr); } Tg = Tc + Tf; Tt = Tp - Ts; T18 = FMA(KP500000000, Ts, Tp); T19 = T17 + T18; T1X = T18 - T17; T1n = FNMS(KP500000000, Tf, Tc); T1p = T1n + T1o; T1P = T1n - T1o; } { E T6, TL, T9, T1j, TK, T14, T13, T1k; T6 = ci[WS(rs, 5)]; TL = cr[WS(rs, 6)]; { E T7, T8, TI, TJ; T7 = ci[WS(rs, 1)]; T8 = cr[WS(rs, 2)]; T9 = T7 + T8; T1j = KP866025403 * (T7 - T8); TI = ci[WS(rs, 9)]; TJ = cr[WS(rs, 10)]; TK = TI - TJ; T14 = KP866025403 * (TI + TJ); } Ta = T6 + T9; TM = TK - TL; T13 = FNMS(KP500000000, T9, T6); T15 = T13 + T14; T1N = T13 - T14; T1k = FMA(KP500000000, TK, TL); T1l = T1j - T1k; T1V = T1j + T1k; } { E Th, Tx, Tk, T1a, Tw, T1r, T1b, T1q; Th = ci[WS(rs, 2)]; Tx = cr[WS(rs, 9)]; { E Ti, Tj, Tu, Tv; Ti = cr[WS(rs, 1)]; Tj = cr[WS(rs, 5)]; Tk = Ti + Tj; T1a = KP866025403 * (Ti - Tj); Tu = ci[WS(rs, 10)]; Tv = ci[WS(rs, 6)]; Tw = Tu + Tv; T1r = KP866025403 * (Tv - Tu); } Tl = Th + Tk; Ty = Tw - Tx; T1b = FMA(KP500000000, Tw, Tx); T1c = T1a - T1b;//.........这里部分代码省略.........
开发者ID:Aegisub,项目名称:fftw3,代码行数:101,
示例17: hc2cbdft_8static void hc2cbdft_8(R *Rp, R *Ip, R *Rm, R *Im, const R *W, stride rs, INT mb, INT me, INT ms){ DK(KP707106781, +0.707106781186547524400844362104849039284835938); INT m; for (m = mb, W = W + ((mb - 1) * 14); m < me; m = m + 1, Rp = Rp + ms, Ip = Ip + ms, Rm = Rm - ms, Im = Im - ms, W = W + 14, MAKE_VOLATILE_STRIDE(rs)) { E T1m, T1r, T1i, T1u, T1o, T1v, T1n, T1w, T1s; { E T1k, Tl, T1p, TE, TP, T1g, TM, T1b, T1f, T1a, TU, Tf, T1l, TH, Tw; E T1q; { E TA, T3, TN, Tk, Th, T6, TO, TD, Tb, Tm, Ta, TK, Tp, Tc, Ts; E Tt; { E T4, T5, TB, TC; { E T1, T2, Ti, Tj; T1 = Rp[0]; T2 = Rm[WS(rs, 3)]; Ti = Ip[0]; Tj = Im[WS(rs, 3)]; T4 = Rp[WS(rs, 2)]; TA = T1 - T2; T3 = T1 + T2; TN = Ti - Tj; Tk = Ti + Tj; T5 = Rm[WS(rs, 1)]; TB = Ip[WS(rs, 2)]; TC = Im[WS(rs, 1)]; } { E T8, T9, Tn, To; T8 = Rp[WS(rs, 1)]; Th = T4 - T5; T6 = T4 + T5; TO = TB - TC; TD = TB + TC; T9 = Rm[WS(rs, 2)]; Tn = Ip[WS(rs, 1)]; To = Im[WS(rs, 2)]; Tb = Rm[0]; Tm = T8 - T9; Ta = T8 + T9; TK = Tn - To; Tp = Tn + To; Tc = Rp[WS(rs, 3)]; Ts = Im[0]; Tt = Ip[WS(rs, 3)]; } } { E Tr, Td, Tu, TL, Te, T7; T1k = Tk - Th; Tl = Th + Tk; Tr = Tb - Tc; Td = Tb + Tc; TL = Tt - Ts; Tu = Ts + Tt; T1p = TA + TD; TE = TA - TD; TP = TN + TO; T1g = TN - TO; TM = TK + TL; T1b = TL - TK; T1f = Ta - Td; Te = Ta + Td; T1a = T3 - T6; T7 = T3 + T6; { E Tq, TF, TG, Tv; Tq = Tm + Tp; TF = Tm - Tp; TG = Tr - Tu; Tv = Tr + Tu; TU = T7 - Te; Tf = T7 + Te; T1l = TF - TG; TH = TF + TG; Tw = Tq - Tv; T1q = Tq + Tv; } } } { E TX, T10, T1c, T13, T1h, T1E, T1H, T1C, T1K, T1G, T1L, T1F; { E TQ, Tx, T1y, TI, Tg, Tz; TX = TP - TM; TQ = TM + TP; Tx = FMA(KP707106781, Tw, Tl); T10 = FNMS(KP707106781, Tw, Tl); T1c = T1a + T1b; T1y = T1a - T1b; T13 = FNMS(KP707106781, TH, TE); TI = FMA(KP707106781, TH, TE); Tg = W[0]; Tz = W[1]; { E T1B, T1A, T1x, T1J, T1z, T1D; { E TR, Ty, TS, TJ;//.........这里部分代码省略.........
开发者ID:8cH9azbsFifZ,项目名称:wspr,代码行数:101,
注:本文中的FMA函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ FMF_SetCell函数代码示例 C++ FLinearColor函数代码示例 |