static void r2cb_7(R *R0, R *R1, R *Cr, R *Ci, stride rs, stride csr, stride csi, INT v, INT ivs, INT ovs)
{
     DK(KP2_000000000, +2.000000000000000000000000000000000000000000000);
     DK(KP1_801937735, +1.801937735804838252472204639014890102331838324);
     DK(KP445041867, +0.445041867912628808577805128993589518932711138);
     DK(KP1_246979603, +1.246979603717467061050009768008479621264549462);
     DK(KP867767478, +0.867767478235116240951536665696717509219981456);
     DK(KP1_949855824, +1.949855824363647214036263365987862434465571601);
     DK(KP1_563662964, +1.563662964936059617416889053348115500464669037);
     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 T9, Td, Tb, T1, T4, T2, T3, T5, Tc, Ta, T6, T8, T7;
	  T6 = Ci[WS(csi, 2)];
	  T8 = Ci[WS(csi, 1)];
	  T7 = Ci[WS(csi, 3)];
	  T9 = FNMS(KP1_949855824, T7, KP1_563662964 * T6) - (KP867767478 * T8);
	  Td = FMA(KP867767478, T6, KP1_563662964 * T7) - (KP1_949855824 * T8);
	  Tb = FMA(KP1_563662964, T8, KP1_949855824 * T6) + (KP867767478 * T7);
	  T1 = Cr[0];
	  T4 = Cr[WS(csr, 3)];
	  T2 = Cr[WS(csr, 1)];
	  T3 = Cr[WS(csr, 2)];
	  T5 = FMA(KP1_246979603, T3, T1) + FNMA(KP445041867, T4, KP1_801937735 * T2);
	  Tc = FMA(KP1_246979603, T4, T1) + FNMA(KP1_801937735, T3, KP445041867 * T2);
	  Ta = FMA(KP1_246979603, T2, T1) + FNMA(KP1_801937735, T4, KP445041867 * T3);
	  R0[WS(rs, 2)] = T5 - T9;
	  R1[WS(rs, 1)] = T5 + T9;
	  R0[WS(rs, 1)] = Tc + Td;
	  R1[WS(rs, 2)] = Tc - Td;
	  R0[WS(rs, 3)] = Ta + Tb;
	  R1[0] = Ta - Tb;
	  R0[0] = FMA(KP2_000000000, T2 + T3 + T4, T1);
     }
}
Exemplo n.º 2
0
static void r2cb_11(R *R0, R *R1, R *Cr, R *Ci, stride rs, stride csr, stride csi, INT v, INT ivs, INT ovs)
{
    DK(KP2_000000000, +2.000000000000000000000000000000000000000000000);
    DK(KP1_918985947, +1.918985947228994779780736114132655398124909697);
    DK(KP1_309721467, +1.309721467890570128113850144932587106367582399);
    DK(KP284629676, +0.284629676546570280887585337232739337582102722);
    DK(KP830830026, +0.830830026003772851058548298459246407048009821);
    DK(KP1_682507065, +1.682507065662362337723623297838735435026584997);
    DK(KP563465113, +0.563465113682859395422835830693233798071555798);
    DK(KP1_511499148, +1.511499148708516567548071687944688840359434890);
    DK(KP1_979642883, +1.979642883761865464752184075553437574753038744);
    DK(KP1_819263990, +1.819263990709036742823430766158056920120482102);
    DK(KP1_081281634, +1.081281634911195164215271908637383390863541216);
    {
        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(44, rs), MAKE_VOLATILE_STRIDE(44, csr), MAKE_VOLATILE_STRIDE(44, csi)) {
            E Td, Tl, Tf, Th, Tj, T1, T2, T6, T5, T4, T3, T7, Tk, Te, Tg;
            E Ti;
            {
                E T8, Tc, T9, Ta, Tb;
                T8 = Ci[WS(csi, 2)];
                Tc = Ci[WS(csi, 1)];
                T9 = Ci[WS(csi, 4)];
                Ta = Ci[WS(csi, 5)];
                Tb = Ci[WS(csi, 3)];
                Td = FMA(KP1_081281634, T8, KP1_819263990 * T9) + FNMA(KP1_979642883, Ta, KP1_511499148 * Tb) - (KP563465113 * Tc);
                Tl = FMA(KP1_979642883, T8, KP1_819263990 * Ta) + FNMA(KP563465113, T9, KP1_081281634 * Tb) - (KP1_511499148 * Tc);
                Tf = FMA(KP563465113, T8, KP1_819263990 * Tb) + FNMA(KP1_511499148, Ta, KP1_081281634 * T9) - (KP1_979642883 * Tc);
                Th = FMA(KP1_081281634, Tc, KP1_819263990 * T8) + FMA(KP1_979642883, Tb, KP1_511499148 * T9) + (KP563465113 * Ta);
                Tj = FMA(KP563465113, Tb, KP1_979642883 * T9) + FNMS(KP1_511499148, T8, KP1_081281634 * Ta) - (KP1_819263990 * Tc);
            }
            T1 = Cr[0];
            T2 = Cr[WS(csr, 1)];
            T6 = Cr[WS(csr, 5)];
            T5 = Cr[WS(csr, 4)];
            T4 = Cr[WS(csr, 3)];
            T3 = Cr[WS(csr, 2)];
            T7 = FMA(KP1_682507065, T3, T1) + FNMS(KP284629676, T6, KP830830026 * T5) + FNMA(KP1_309721467, T4, KP1_918985947 * T2);
            Tk = FMA(KP1_682507065, T4, T1) + FNMS(KP1_918985947, T5, KP830830026 * T6) + FNMA(KP284629676, T3, KP1_309721467 * T2);
            Te = FMA(KP830830026, T4, T1) + FNMS(KP1_309721467, T6, KP1_682507065 * T5) + FNMA(KP1_918985947, T3, KP284629676 * T2);
            Tg = FMA(KP1_682507065, T2, T1) + FNMS(KP1_918985947, T6, KP830830026 * T3) + FNMA(KP1_309721467, T5, KP284629676 * T4);
            Ti = FMA(KP830830026, T2, T1) + FNMS(KP284629676, T5, KP1_682507065 * T6) + FNMA(KP1_918985947, T4, KP1_309721467 * T3);
            R0[WS(rs, 3)] = T7 - Td;
            R0[WS(rs, 4)] = Te - Tf;
            R0[WS(rs, 2)] = Tk + Tl;
            R1[WS(rs, 2)] = T7 + Td;
            R1[WS(rs, 3)] = Tk - Tl;
            R0[WS(rs, 1)] = Ti + Tj;
            R1[WS(rs, 1)] = Te + Tf;
            R0[WS(rs, 5)] = Tg + Th;
            R1[0] = Tg - Th;
            R1[WS(rs, 4)] = Ti - Tj;
            R0[0] = FMA(KP2_000000000, T2 + T3 + T4 + T5 + T6, T1);
        }
    }
}
Exemplo n.º 3
0
static void hc2r_11(const R *ri, const R *ii, R *O, stride ris, stride iis, stride os, int v, int ivs, int ovs)
{
     DK(KP2_000000000, +2.000000000000000000000000000000000000000000000);
     DK(KP1_918985947, +1.918985947228994779780736114132655398124909697);
     DK(KP1_309721467, +1.309721467890570128113850144932587106367582399);
     DK(KP284629676, +0.284629676546570280887585337232739337582102722);
     DK(KP830830026, +0.830830026003772851058548298459246407048009821);
     DK(KP1_682507065, +1.682507065662362337723623297838735435026584997);
     DK(KP563465113, +0.563465113682859395422835830693233798071555798);
     DK(KP1_511499148, +1.511499148708516567548071687944688840359434890);
     DK(KP1_979642883, +1.979642883761865464752184075553437574753038744);
     DK(KP1_819263990, +1.819263990709036742823430766158056920120482102);
     DK(KP1_081281634, +1.081281634911195164215271908637383390863541216);
     int i;
     for (i = v; i > 0; i = i - 1, ri = ri + ivs, ii = ii + ivs, O = O + ovs) {
	  E Td, Tl, Tf, Th, Tj, T1, T2, T6, T5, T4, T3, T7, Tk, Te, Tg;
	  E Ti;
	  {
	       E T8, Tc, T9, Ta, Tb;
	       T8 = ii[WS(iis, 2)];
	       Tc = ii[WS(iis, 1)];
	       T9 = ii[WS(iis, 4)];
	       Ta = ii[WS(iis, 5)];
	       Tb = ii[WS(iis, 3)];
	       Td = FMA(KP1_081281634, T8, KP1_819263990 * T9) + FNMA(KP1_979642883, Ta, KP1_511499148 * Tb) - (KP563465113 * Tc);
	       Tl = FMA(KP1_979642883, T8, KP1_819263990 * Ta) + FNMA(KP563465113, T9, KP1_081281634 * Tb) - (KP1_511499148 * Tc);
	       Tf = FMA(KP563465113, T8, KP1_819263990 * Tb) + FNMA(KP1_511499148, Ta, KP1_081281634 * T9) - (KP1_979642883 * Tc);
	       Th = FMA(KP1_081281634, Tc, KP1_819263990 * T8) + FMA(KP1_979642883, Tb, KP1_511499148 * T9) + (KP563465113 * Ta);
	       Tj = FMA(KP563465113, Tb, KP1_979642883 * T9) + FNMS(KP1_511499148, T8, KP1_081281634 * Ta) - (KP1_819263990 * Tc);
	  }
	  T1 = ri[0];
	  T2 = ri[WS(ris, 1)];
	  T6 = ri[WS(ris, 5)];
	  T5 = ri[WS(ris, 4)];
	  T4 = ri[WS(ris, 3)];
	  T3 = ri[WS(ris, 2)];
	  T7 = FMA(KP1_682507065, T3, T1) + FNMS(KP284629676, T6, KP830830026 * T5) + FNMA(KP1_309721467, T4, KP1_918985947 * T2);
	  Tk = FMA(KP1_682507065, T4, T1) + FNMS(KP1_918985947, T5, KP830830026 * T6) + FNMA(KP284629676, T3, KP1_309721467 * T2);
	  Te = FMA(KP830830026, T4, T1) + FNMS(KP1_309721467, T6, KP1_682507065 * T5) + FNMA(KP1_918985947, T3, KP284629676 * T2);
	  Tg = FMA(KP1_682507065, T2, T1) + FNMS(KP1_918985947, T6, KP830830026 * T3) + FNMA(KP1_309721467, T5, KP284629676 * T4);
	  Ti = FMA(KP830830026, T2, T1) + FNMS(KP284629676, T5, KP1_682507065 * T6) + FNMA(KP1_918985947, T4, KP1_309721467 * T3);
	  O[WS(os, 6)] = T7 - Td;
	  O[WS(os, 8)] = Te - Tf;
	  O[WS(os, 4)] = Tk + Tl;
	  O[WS(os, 5)] = T7 + Td;
	  O[WS(os, 7)] = Tk - Tl;
	  O[WS(os, 2)] = Ti + Tj;
	  O[WS(os, 3)] = Te + Tf;
	  O[WS(os, 10)] = Tg + Th;
	  O[WS(os, 1)] = Tg - Th;
	  O[WS(os, 9)] = Ti - Tj;
	  O[0] = FMA(KP2_000000000, T2 + T3 + T4 + T5 + T6, T1);
     }
}
Exemplo n.º 4
0
static void r2hc_11(const R *I, R *ro, R *io, stride is, stride ros, stride ios, INT v, INT ivs, INT ovs)
{
     DK(KP654860733, +0.654860733945285064056925072466293553183791199);
     DK(KP142314838, +0.142314838273285140443792668616369668791051361);
     DK(KP959492973, +0.959492973614497389890368057066327699062454848);
     DK(KP415415013, +0.415415013001886425529274149229623203524004910);
     DK(KP841253532, +0.841253532831181168861811648919367717513292498);
     DK(KP989821441, +0.989821441880932732376092037776718787376519372);
     DK(KP909631995, +0.909631995354518371411715383079028460060241051);
     DK(KP281732556, +0.281732556841429697711417915346616899035777899);
     DK(KP540640817, +0.540640817455597582107635954318691695431770608);
     DK(KP755749574, +0.755749574354258283774035843972344420179717445);
     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, T4, Tl, Tg, Th, Td, Ti, Ta, Tk, T7, Tj, Tb, Tc;
	  T1 = I[0];
	  {
	       E T2, T3, Te, Tf;
	       T2 = I[WS(is, 2)];
	       T3 = I[WS(is, 9)];
	       T4 = T2 + T3;
	       Tl = T3 - T2;
	       Te = I[WS(is, 1)];
	       Tf = I[WS(is, 10)];
	       Tg = Te + Tf;
	       Th = Tf - Te;
	  }
	  Tb = I[WS(is, 3)];
	  Tc = I[WS(is, 8)];
	  Td = Tb + Tc;
	  Ti = Tc - Tb;
	  {
	       E T8, T9, T5, T6;
	       T8 = I[WS(is, 5)];
	       T9 = I[WS(is, 6)];
	       Ta = T8 + T9;
	       Tk = T9 - T8;
	       T5 = I[WS(is, 4)];
	       T6 = I[WS(is, 7)];
	       T7 = T5 + T6;
	       Tj = T6 - T5;
	  }
	  io[WS(ios, 4)] = FMA(KP755749574, Th, KP540640817 * Ti) + FNMS(KP909631995, Tk, KP281732556 * Tj) - (KP989821441 * Tl);
	  ro[WS(ros, 4)] = FMA(KP841253532, Td, T1) + FNMS(KP959492973, T7, KP415415013 * Ta) + FNMA(KP142314838, T4, KP654860733 * Tg);
	  io[WS(ios, 2)] = FMA(KP909631995, Th, KP755749574 * Tl) + FNMA(KP540640817, Tk, KP989821441 * Tj) - (KP281732556 * Ti);
	  io[WS(ios, 5)] = FMA(KP281732556, Th, KP755749574 * Ti) + FNMS(KP909631995, Tj, KP989821441 * Tk) - (KP540640817 * Tl);
	  io[WS(ios, 1)] = FMA(KP540640817, Th, KP909631995 * Tl) + FMA(KP989821441, Ti, KP755749574 * Tj) + (KP281732556 * Tk);
	  io[WS(ios, 3)] = FMA(KP989821441, Th, KP540640817 * Tj) + FNMS(KP909631995, Ti, KP755749574 * Tk) - (KP281732556 * Tl);
	  ro[WS(ros, 3)] = FMA(KP415415013, Td, T1) + FNMS(KP654860733, Ta, KP841253532 * T7) + FNMA(KP959492973, T4, KP142314838 * Tg);
	  ro[WS(ros, 1)] = FMA(KP841253532, Tg, T1) + FNMS(KP959492973, Ta, KP415415013 * T4) + FNMA(KP654860733, T7, KP142314838 * Td);
	  ro[0] = T1 + Tg + T4 + Td + T7 + Ta;
	  ro[WS(ros, 2)] = FMA(KP415415013, Tg, T1) + FNMS(KP142314838, T7, KP841253532 * Ta) + FNMA(KP959492973, Td, KP654860733 * T4);
	  ro[WS(ros, 5)] = FMA(KP841253532, T4, T1) + FNMS(KP142314838, Ta, KP415415013 * T7) + FNMA(KP654860733, Td, KP959492973 * Tg);
     }
}
Exemplo n.º 5
0
static void r2cf_11(float *R0, float *R1, float *Cr, float *Ci, stride rs, stride csr, stride csi, INT v, INT ivs, INT ovs)
{
     DK(KP654860733, +0.654860733945285064056925072466293553183791199);
     DK(KP142314838, +0.142314838273285140443792668616369668791051361);
     DK(KP959492973, +0.959492973614497389890368057066327699062454848);
     DK(KP415415013, +0.415415013001886425529274149229623203524004910);
     DK(KP841253532, +0.841253532831181168861811648919367717513292498);
     DK(KP989821441, +0.989821441880932732376092037776718787376519372);
     DK(KP909631995, +0.909631995354518371411715383079028460060241051);
     DK(KP281732556, +0.281732556841429697711417915346616899035777899);
     DK(KP540640817, +0.540640817455597582107635954318691695431770608);
     DK(KP755749574, +0.755749574354258283774035843972344420179717445);
     INT i;
     for (i = v; i > 0; i = i - 1, R0 = R0 + ivs, R1 = R1 + ivs, Cr = Cr + ovs, Ci = Ci + ovs, MAKE_VOLATILE_STRIDE(rs), MAKE_VOLATILE_STRIDE(csr), MAKE_VOLATILE_STRIDE(csi)) {
	  E T1, T4, Tl, Tg, Th, Td, Ti, Ta, Tk, T7, Tj, Tb, Tc;
	  T1 = R0[0];
	  {
	       E T2, T3, Te, Tf;
	       T2 = R0[WS(rs, 1)];
	       T3 = R1[WS(rs, 4)];
	       T4 = T2 + T3;
	       Tl = T3 - T2;
	       Te = R1[0];
	       Tf = R0[WS(rs, 5)];
	       Tg = Te + Tf;
	       Th = Tf - Te;
	  }
	  Tb = R1[WS(rs, 1)];
	  Tc = R0[WS(rs, 4)];
	  Td = Tb + Tc;
	  Ti = Tc - Tb;
	  {
	       E T8, T9, T5, T6;
	       T8 = R1[WS(rs, 2)];
	       T9 = R0[WS(rs, 3)];
	       Ta = T8 + T9;
	       Tk = T9 - T8;
	       T5 = R0[WS(rs, 2)];
	       T6 = R1[WS(rs, 3)];
	       T7 = T5 + T6;
	       Tj = T6 - T5;
	  }
	  Ci[WS(csi, 4)] = FMA(KP755749574, Th, KP540640817 * Ti) + FNMS(KP909631995, Tk, KP281732556 * Tj) - (KP989821441 * Tl);
	  Cr[WS(csr, 4)] = FMA(KP841253532, Td, T1) + FNMS(KP959492973, T7, KP415415013 * Ta) + FNMA(KP142314838, T4, KP654860733 * Tg);
	  Ci[WS(csi, 2)] = FMA(KP909631995, Th, KP755749574 * Tl) + FNMA(KP540640817, Tk, KP989821441 * Tj) - (KP281732556 * Ti);
	  Ci[WS(csi, 5)] = FMA(KP281732556, Th, KP755749574 * Ti) + FNMS(KP909631995, Tj, KP989821441 * Tk) - (KP540640817 * Tl);
	  Ci[WS(csi, 1)] = FMA(KP540640817, Th, KP909631995 * Tl) + FMA(KP989821441, Ti, KP755749574 * Tj) + (KP281732556 * Tk);
	  Ci[WS(csi, 3)] = FMA(KP989821441, Th, KP540640817 * Tj) + FNMS(KP909631995, Ti, KP755749574 * Tk) - (KP281732556 * Tl);
	  Cr[WS(csr, 3)] = FMA(KP415415013, Td, T1) + FNMS(KP654860733, Ta, KP841253532 * T7) + FNMA(KP959492973, T4, KP142314838 * Tg);
	  Cr[WS(csr, 1)] = FMA(KP841253532, Tg, T1) + FNMS(KP959492973, Ta, KP415415013 * T4) + FNMA(KP654860733, T7, KP142314838 * Td);
	  Cr[0] = T1 + Tg + T4 + Td + T7 + Ta;
	  Cr[WS(csr, 2)] = FMA(KP415415013, Tg, T1) + FNMS(KP142314838, T7, KP841253532 * Ta) + FNMA(KP959492973, Td, KP654860733 * T4);
	  Cr[WS(csr, 5)] = FMA(KP841253532, T4, T1) + FNMS(KP142314838, Ta, KP415415013 * T7) + FNMA(KP654860733, Td, KP959492973 * Tg);
     }
}
Exemplo n.º 6
0
static void r2cf_7(R *R0, R *R1, R *Cr, R *Ci, stride rs, stride csr, stride csi, INT v, INT ivs, INT ovs)
{
     DK(KP222520933, +0.222520933956314404288902564496794759466355569);
     DK(KP900968867, +0.900968867902419126236102319507445051165919162);
     DK(KP623489801, +0.623489801858733530525004884004239810632274731);
     DK(KP433883739, +0.433883739117558120475768332848358754609990728);
     DK(KP781831482, +0.781831482468029808708444526674057750232334519);
     DK(KP974927912, +0.974927912181823607018131682993931217232785801);
     {
	  INT i;
	  for (i = v; i > 0; i = i - 1, R0 = R0 + ivs, R1 = R1 + ivs, Cr = Cr + ovs, Ci = Ci + ovs, MAKE_VOLATILE_STRIDE(28, rs), MAKE_VOLATILE_STRIDE(28, csr), MAKE_VOLATILE_STRIDE(28, csi)) {
	       E T1, Ta, Tb, T4, Td, T7, Tc, T8, T9;
	       T1 = R0[0];
	       T8 = R1[0];
	       T9 = R0[WS(rs, 3)];
	       Ta = T8 + T9;
	       Tb = T9 - T8;
	       {
		    E T2, T3, T5, T6;
		    T2 = R0[WS(rs, 1)];
		    T3 = R1[WS(rs, 2)];
		    T4 = T2 + T3;
		    Td = T3 - T2;
		    T5 = R1[WS(rs, 1)];
		    T6 = R0[WS(rs, 2)];
		    T7 = T5 + T6;
		    Tc = T6 - T5;
	       }
	       Ci[WS(csi, 2)] = FNMS(KP781831482, Tc, KP974927912 * Tb) - (KP433883739 * Td);
	       Ci[WS(csi, 1)] = FMA(KP781831482, Tb, KP974927912 * Td) + (KP433883739 * Tc);
	       Cr[WS(csr, 2)] = FMA(KP623489801, T7, T1) + FNMA(KP900968867, T4, KP222520933 * Ta);
	       Ci[WS(csi, 3)] = FMA(KP433883739, Tb, KP974927912 * Tc) - (KP781831482 * Td);
	       Cr[WS(csr, 3)] = FMA(KP623489801, T4, T1) + FNMA(KP222520933, T7, KP900968867 * Ta);
	       Cr[WS(csr, 1)] = FMA(KP623489801, Ta, T1) + FNMA(KP900968867, T7, KP222520933 * T4);
	       Cr[0] = T1 + Ta + T4 + T7;
	  }
     }
}
Exemplo n.º 7
0
static void r2hcII_7(const R *I, R *ro, R *io, stride is, stride ros, stride ios, INT v, INT ivs, INT ovs)
{
     DK(KP900968867, +0.900968867902419126236102319507445051165919162);
     DK(KP222520933, +0.222520933956314404288902564496794759466355569);
     DK(KP623489801, +0.623489801858733530525004884004239810632274731);
     DK(KP433883739, +0.433883739117558120475768332848358754609990728);
     DK(KP974927912, +0.974927912181823607018131682993931217232785801);
     DK(KP781831482, +0.781831482468029808708444526674057750232334519);
     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, Ta, Td, T4, Tb, T7, Tc, T8, T9;
	  T1 = I[0];
	  T8 = I[WS(is, 1)];
	  T9 = I[WS(is, 6)];
	  Ta = T8 - T9;
	  Td = T8 + T9;
	  {
	       E T2, T3, T5, T6;
	       T2 = I[WS(is, 2)];
	       T3 = I[WS(is, 5)];
	       T4 = T2 - T3;
	       Tb = T2 + T3;
	       T5 = I[WS(is, 3)];
	       T6 = I[WS(is, 4)];
	       T7 = T5 - T6;
	       Tc = T5 + T6;
	  }
	  io[0] = -(FMA(KP781831482, Tb, KP974927912 * Tc) + (KP433883739 * Td));
	  io[WS(ios, 1)] = FNMS(KP974927912, Td, KP781831482 * Tc) - (KP433883739 * Tb);
	  ro[0] = FMA(KP623489801, T4, T1) + FMA(KP222520933, T7, KP900968867 * Ta);
	  io[WS(ios, 2)] = FNMS(KP781831482, Td, KP974927912 * Tb) - (KP433883739 * Tc);
	  ro[WS(ros, 2)] = FMA(KP900968867, T7, T1) + FNMA(KP623489801, Ta, KP222520933 * T4);
	  ro[WS(ros, 1)] = FMA(KP222520933, Ta, T1) + FNMA(KP623489801, T7, KP900968867 * T4);
	  ro[WS(ros, 3)] = T1 + T4 - (T7 + Ta);
     }
}
Exemplo n.º 8
0
static void t1_7(R *ri, R *ii, const R *W, stride rs, INT mb, INT me, INT ms)
{
     DK(KP222520933, +0.222520933956314404288902564496794759466355569);
     DK(KP900968867, +0.900968867902419126236102319507445051165919162);
     DK(KP623489801, +0.623489801858733530525004884004239810632274731);
     DK(KP433883739, +0.433883739117558120475768332848358754609990728);
     DK(KP781831482, +0.781831482468029808708444526674057750232334519);
     DK(KP974927912, +0.974927912181823607018131682993931217232785801);
     {
	  INT m;
	  for (m = mb, W = W + (mb * 12); m < me; m = m + 1, ri = ri + ms, ii = ii + ms, W = W + 12, MAKE_VOLATILE_STRIDE(14, rs)) {
	       E T1, TR, Tc, TS, TC, TO, Tn, TT, TI, TP, Ty, TU, TF, TQ;
	       T1 = ri[0];
	       TR = ii[0];
	       {
		    E T6, TA, Tb, TB;
		    {
			 E T3, T5, T2, T4;
			 T3 = ri[WS(rs, 1)];
			 T5 = ii[WS(rs, 1)];
			 T2 = W[0];
			 T4 = W[1];
			 T6 = FMA(T2, T3, T4 * T5);
			 TA = FNMS(T4, T3, T2 * T5);
		    }
		    {
			 E T8, Ta, T7, T9;
			 T8 = ri[WS(rs, 6)];
			 Ta = ii[WS(rs, 6)];
			 T7 = W[10];
			 T9 = W[11];
			 Tb = FMA(T7, T8, T9 * Ta);
			 TB = FNMS(T9, T8, T7 * Ta);
		    }
		    Tc = T6 + Tb;
		    TS = Tb - T6;
		    TC = TA - TB;
		    TO = TA + TB;
	       }
	       {
		    E Th, TG, Tm, TH;
		    {
			 E Te, Tg, Td, Tf;
			 Te = ri[WS(rs, 2)];
			 Tg = ii[WS(rs, 2)];
			 Td = W[2];
			 Tf = W[3];
			 Th = FMA(Td, Te, Tf * Tg);
			 TG = FNMS(Tf, Te, Td * Tg);
		    }
		    {
			 E Tj, Tl, Ti, Tk;
			 Tj = ri[WS(rs, 5)];
			 Tl = ii[WS(rs, 5)];
			 Ti = W[8];
			 Tk = W[9];
			 Tm = FMA(Ti, Tj, Tk * Tl);
			 TH = FNMS(Tk, Tj, Ti * Tl);
		    }
		    Tn = Th + Tm;
		    TT = Tm - Th;
		    TI = TG - TH;
		    TP = TG + TH;
	       }
	       {
		    E Ts, TD, Tx, TE;
		    {
			 E Tp, Tr, To, Tq;
			 Tp = ri[WS(rs, 3)];
			 Tr = ii[WS(rs, 3)];
			 To = W[4];
			 Tq = W[5];
			 Ts = FMA(To, Tp, Tq * Tr);
			 TD = FNMS(Tq, Tp, To * Tr);
		    }
		    {
			 E Tu, Tw, Tt, Tv;
			 Tu = ri[WS(rs, 4)];
			 Tw = ii[WS(rs, 4)];
			 Tt = W[6];
			 Tv = W[7];
			 Tx = FMA(Tt, Tu, Tv * Tw);
			 TE = FNMS(Tv, Tu, Tt * Tw);
		    }
		    Ty = Ts + Tx;
		    TU = Tx - Ts;
		    TF = TD - TE;
		    TQ = TD + TE;
	       }
	       ri[0] = T1 + Tc + Tn + Ty;
	       ii[0] = TO + TP + TQ + TR;
	       {
		    E TJ, Tz, TX, TY;
		    TJ = FNMS(KP781831482, TF, KP974927912 * TC) - (KP433883739 * TI);
		    Tz = FMA(KP623489801, Ty, T1) + FNMA(KP900968867, Tn, KP222520933 * Tc);
		    ri[WS(rs, 5)] = Tz - TJ;
		    ri[WS(rs, 2)] = Tz + TJ;
		    TX = FNMS(KP781831482, TU, KP974927912 * TS) - (KP433883739 * TT);
		    TY = FMA(KP623489801, TQ, TR) + FNMA(KP900968867, TP, KP222520933 * TO);
		    ii[WS(rs, 2)] = TX + TY;
		    ii[WS(rs, 5)] = TY - TX;
	       }
	       {
		    E TL, TK, TV, TW;
		    TL = FMA(KP781831482, TC, KP974927912 * TI) + (KP433883739 * TF);
		    TK = FMA(KP623489801, Tc, T1) + FNMA(KP900968867, Ty, KP222520933 * Tn);
		    ri[WS(rs, 6)] = TK - TL;
		    ri[WS(rs, 1)] = TK + TL;
		    TV = FMA(KP781831482, TS, KP974927912 * TT) + (KP433883739 * TU);
		    TW = FMA(KP623489801, TO, TR) + FNMA(KP900968867, TQ, KP222520933 * TP);
		    ii[WS(rs, 1)] = TV + TW;
		    ii[WS(rs, 6)] = TW - TV;
	       }
	       {
		    E TN, TM, TZ, T10;
		    TN = FMA(KP433883739, TC, KP974927912 * TF) - (KP781831482 * TI);
		    TM = FMA(KP623489801, Tn, T1) + FNMA(KP222520933, Ty, KP900968867 * Tc);
		    ri[WS(rs, 4)] = TM - TN;
		    ri[WS(rs, 3)] = TM + TN;
		    TZ = FMA(KP433883739, TS, KP974927912 * TU) - (KP781831482 * TT);
		    T10 = FMA(KP623489801, TP, TR) + FNMA(KP222520933, TQ, KP900968867 * TO);
		    ii[WS(rs, 3)] = TZ + T10;
		    ii[WS(rs, 4)] = T10 - TZ;
	       }
	  }
     }
}
Exemplo n.º 9
0
static void r2hc_9(const R *I, R *ro, R *io, stride is, stride ros, stride ios, int v, int ivs, int ovs)
{
    DK(KP939692620, +0.939692620785908384054109277324731469936208134);
    DK(KP296198132, +0.296198132726023843175338011893050938967728390);
    DK(KP342020143, +0.342020143325668733044099614682259580763083368);
    DK(KP813797681, +0.813797681349373692844693217248393223289101568);
    DK(KP984807753, +0.984807753012208059366743024589523013670643252);
    DK(KP150383733, +0.150383733180435296639271897612501926072238258);
    DK(KP642787609, +0.642787609686539326322643409907263432907559884);
    DK(KP663413948, +0.663413948168938396205421319635891297216863310);
    DK(KP852868531, +0.852868531952443209628250963940074071936020296);
    DK(KP173648177, +0.173648177666930348851716626769314796000375677);
    DK(KP556670399, +0.556670399226419366452912952047023132968291906);
    DK(KP766044443, +0.766044443118978035202392650555416673935832457);
    DK(KP866025403, +0.866025403784438646763723170752936183471402627);
    DK(KP500000000, +0.500000000000000000000000000000000000000000000);
    int i;
    for (i = v; i > 0; i = i - 1, I = I + ivs, ro = ro + ovs, io = io + ovs) {
        E T1, T4, Tr, Ta, Tl, Ti, Tf, Tk, Tj, T2, T3, T5, Tg;
        T1 = I[0];
        T2 = I[WS(is, 3)];
        T3 = I[WS(is, 6)];
        T4 = T2 + T3;
        Tr = T3 - T2;
        {
            E T6, T7, T8, T9;
            T6 = I[WS(is, 1)];
            T7 = I[WS(is, 4)];
            T8 = I[WS(is, 7)];
            T9 = T7 + T8;
            Ta = T6 + T9;
            Tl = T8 - T7;
            Ti = FNMS(KP500000000, T9, T6);
        }
        {
            E Tb, Tc, Td, Te;
            Tb = I[WS(is, 2)];
            Tc = I[WS(is, 5)];
            Td = I[WS(is, 8)];
            Te = Tc + Td;
            Tf = Tb + Te;
            Tk = FNMS(KP500000000, Te, Tb);
            Tj = Td - Tc;
        }
        io[WS(ios, 3)] = KP866025403 * (Tf - Ta);
        T5 = T1 + T4;
        Tg = Ta + Tf;
        ro[WS(ros, 3)] = FNMS(KP500000000, Tg, T5);
        ro[0] = T5 + Tg;
        {
            E Tt, Th, Tm, Tn, To, Tp, Tq, Ts;
            Tt = KP866025403 * Tr;
            Th = FNMS(KP500000000, T4, T1);
            Tm = FMA(KP766044443, Ti, KP556670399 * Tl);
            Tn = FMA(KP173648177, Tk, KP852868531 * Tj);
            To = Tm + Tn;
            Tp = FNMS(KP642787609, Ti, KP663413948 * Tl);
            Tq = FNMS(KP984807753, Tk, KP150383733 * Tj);
            Ts = Tp + Tq;
            ro[WS(ros, 1)] = Th + To;
            io[WS(ios, 1)] = Tt + Ts;
            ro[WS(ros, 4)] = FMA(KP866025403, Tp - Tq, Th) - (KP500000000 * To);
            io[WS(ios, 4)] = FNMS(KP500000000, Ts, KP866025403 * (Tr + (Tn - Tm)));
            io[WS(ios, 2)] = FNMS(KP342020143, Tk, KP813797681 * Tj) + FNMA(KP150383733, Tl, KP984807753 * Ti) - Tt;
            ro[WS(ros, 2)] = FMA(KP173648177, Ti, Th) + FNMA(KP296198132, Tj, KP939692620 * Tk) - (KP852868531 * Tl);
        }
    }
}
static void r2cf_25(R *R0, R *R1, R *Cr, R *Ci, stride rs, stride csr, stride csi, INT v, INT ivs, INT ovs)
{
     DK(KP998026728, +0.998026728428271561952336806863450553336905220);
     DK(KP125581039, +0.125581039058626752152356449131262266244969664);
     DK(KP1_996053456, +1.996053456856543123904673613726901106673810439);
     DK(KP062790519, +0.062790519529313376076178224565631133122484832);
     DK(KP809016994, +0.809016994374947424102293417182819058860154590);
     DK(KP309016994, +0.309016994374947424102293417182819058860154590);
     DK(KP1_369094211, +1.369094211857377347464566715242418539779038465);
     DK(KP728968627, +0.728968627421411523146730319055259111372571664);
     DK(KP963507348, +0.963507348203430549974383005744259307057084020);
     DK(KP876306680, +0.876306680043863587308115903922062583399064238);
     DK(KP497379774, +0.497379774329709576484567492012895936835134813);
     DK(KP968583161, +0.968583161128631119490168375464735813836012403);
     DK(KP684547105, +0.684547105928688673732283357621209269889519233);
     DK(KP1_457937254, +1.457937254842823046293460638110518222745143328);
     DK(KP481753674, +0.481753674101715274987191502872129653528542010);
     DK(KP1_752613360, +1.752613360087727174616231807844125166798128477);
     DK(KP248689887, +0.248689887164854788242283746006447968417567406);
     DK(KP1_937166322, +1.937166322257262238980336750929471627672024806);
     DK(KP992114701, +0.992114701314477831049793042785778521453036709);
     DK(KP250666467, +0.250666467128608490746237519633017587885836494);
     DK(KP425779291, +0.425779291565072648862502445744251703979973042);
     DK(KP1_809654104, +1.809654104932039055427337295865395187940827822);
     DK(KP1_274847979, +1.274847979497379420353425623352032390869834596);
     DK(KP770513242, +0.770513242775789230803009636396177847271667672);
     DK(KP844327925, +0.844327925502015078548558063966681505381659241);
     DK(KP1_071653589, +1.071653589957993236542617535735279956127150691);
     DK(KP125333233, +0.125333233564304245373118759816508793942918247);
     DK(KP1_984229402, +1.984229402628955662099586085571557042906073418);
     DK(KP904827052, +0.904827052466019527713668647932697593970413911);
     DK(KP851558583, +0.851558583130145297725004891488503407959946084);
     DK(KP637423989, +0.637423989748689710176712811676016195434917298);
     DK(KP1_541026485, +1.541026485551578461606019272792355694543335344);
     DK(KP535826794, +0.535826794978996618271308767867639978063575346);
     DK(KP1_688655851, +1.688655851004030157097116127933363010763318483);
     DK(KP293892626, +0.293892626146236564584352977319536384298826219);
     DK(KP475528258, +0.475528258147576786058219666689691071702849317);
     DK(KP250000000, +0.250000000000000000000000000000000000000000000);
     DK(KP559016994, +0.559016994374947424102293417182819058860154590);
     DK(KP587785252, +0.587785252292473129168705954639072768597652438);
     DK(KP951056516, +0.951056516295153572116439333379382143405698634);
     INT i;
     for (i = v; i > 0; i = i - 1, R0 = R0 + ivs, R1 = R1 + ivs, Cr = Cr + ovs, Ci = Ci + ovs, MAKE_VOLATILE_STRIDE(rs), MAKE_VOLATILE_STRIDE(csr), MAKE_VOLATILE_STRIDE(csi)) {
	  E T8, T1j, T1V, T1l, T7, T9, Ta, T12, T2u, T1O, T19, T1P, Ti, T2r, T1K;
	  E Tp, T1L, Tx, T2q, T1H, TE, T1I, TN, T2t, T1R, TU, T1S, T6, T1k, T3;
	  E T2s, T2v;
	  T8 = R0[0];
	  {
	       E T4, T5, T1, T2;
	       T4 = R0[WS(rs, 5)];
	       T5 = R1[WS(rs, 7)];
	       T6 = T4 + T5;
	       T1k = T4 - T5;
	       T1 = R1[WS(rs, 2)];
	       T2 = R0[WS(rs, 10)];
	       T3 = T1 + T2;
	       T1j = T1 - T2;
	  }
	  T1V = KP951056516 * T1k;
	  T1l = FMA(KP951056516, T1j, KP587785252 * T1k);
	  T7 = KP559016994 * (T3 - T6);
	  T9 = T3 + T6;
	  Ta = FNMS(KP250000000, T9, T8);
	  {
	       E T16, T13, T14, TY, T17, T11, T15, T18;
	       T16 = R1[WS(rs, 1)];
	       {
		    E TW, TX, TZ, T10;
		    TW = R0[WS(rs, 4)];
		    TX = R1[WS(rs, 11)];
		    T13 = TW + TX;
		    TZ = R1[WS(rs, 6)];
		    T10 = R0[WS(rs, 9)];
		    T14 = TZ + T10;
		    TY = TW - TX;
		    T17 = T13 + T14;
		    T11 = TZ - T10;
	       }
	       T12 = FMA(KP475528258, TY, KP293892626 * T11);
	       T2u = T16 + T17;
	       T1O = FNMS(KP293892626, TY, KP475528258 * T11);
	       T15 = KP559016994 * (T13 - T14);
	       T18 = FNMS(KP250000000, T17, T16);
	       T19 = T15 + T18;
	       T1P = T18 - T15;
	  }
	  {
	       E Tm, Tj, Tk, Te, Tn, Th, Tl, To;
	       Tm = R1[0];
	       {
		    E Tc, Td, Tf, Tg;
		    Tc = R0[WS(rs, 3)];
		    Td = R1[WS(rs, 10)];
		    Tj = Tc + Td;
		    Tf = R1[WS(rs, 5)];
		    Tg = R0[WS(rs, 8)];
		    Tk = Tf + Tg;
		    Te = Tc - Td;
		    Tn = Tj + Tk;
		    Th = Tf - Tg;
	       }
	       Ti = FMA(KP475528258, Te, KP293892626 * Th);
	       T2r = Tm + Tn;
	       T1K = FNMS(KP293892626, Te, KP475528258 * Th);
	       Tl = KP559016994 * (Tj - Tk);
	       To = FNMS(KP250000000, Tn, Tm);
	       Tp = Tl + To;
	       T1L = To - Tl;
	  }
	  {
	       E TB, Ty, Tz, Tt, TC, Tw, TA, TD;
	       TB = R0[WS(rs, 2)];
	       {
		    E Tr, Ts, Tu, Tv;
		    Tr = R1[WS(rs, 4)];
		    Ts = R0[WS(rs, 12)];
		    Ty = Tr + Ts;
		    Tu = R0[WS(rs, 7)];
		    Tv = R1[WS(rs, 9)];
		    Tz = Tu + Tv;
		    Tt = Tr - Ts;
		    TC = Ty + Tz;
		    Tw = Tu - Tv;
	       }
	       Tx = FMA(KP475528258, Tt, KP293892626 * Tw);
	       T2q = TB + TC;
	       T1H = FNMS(KP293892626, Tt, KP475528258 * Tw);
	       TA = KP559016994 * (Ty - Tz);
	       TD = FNMS(KP250000000, TC, TB);
	       TE = TA + TD;
	       T1I = TD - TA;
	  }
	  {
	       E TR, TO, TP, TJ, TS, TM, TQ, TT;
	       TR = R0[WS(rs, 1)];
	       {
		    E TH, TI, TK, TL;
		    TH = R1[WS(rs, 3)];
		    TI = R0[WS(rs, 11)];
		    TO = TH + TI;
		    TK = R0[WS(rs, 6)];
		    TL = R1[WS(rs, 8)];
		    TP = TK + TL;
		    TJ = TH - TI;
		    TS = TO + TP;
		    TM = TK - TL;
	       }
	       TN = FMA(KP475528258, TJ, KP293892626 * TM);
	       T2t = TR + TS;
	       T1R = FNMS(KP293892626, TJ, KP475528258 * TM);
	       TQ = KP559016994 * (TO - TP);
	       TT = FNMS(KP250000000, TS, TR);
	       TU = TQ + TT;
	       T1S = TT - TQ;
	  }
	  T2s = T2q - T2r;
	  T2v = T2t - T2u;
	  Ci[WS(csi, 5)] = FNMS(KP587785252, T2v, KP951056516 * T2s);
	  Ci[WS(csi, 10)] = FMA(KP587785252, T2s, KP951056516 * T2v);
	  {
	       E T2z, T2y, T2A, T2w, T2x, T2B;
	       T2z = T8 + T9;
	       T2w = T2r + T2q;
	       T2x = T2t + T2u;
	       T2y = KP559016994 * (T2w - T2x);
	       T2A = T2w + T2x;
	       Cr[0] = T2z + T2A;
	       T2B = FNMS(KP250000000, T2A, T2z);
	       Cr[WS(csr, 5)] = T2y + T2B;
	       Cr[WS(csr, 10)] = T2B - T2y;
	  }
	  {
	       E Tb, Tq, TF, TG, T1E, T1F, T1G, T1B, T1C, T1D, TV, T1a, T1b, T1o, T1r;
	       E T1s, T1z, T1x, T1e, T1h, T1i, T1u, T1t;
	       Tb = T7 + Ta;
	       Tq = FMA(KP1_688655851, Ti, KP535826794 * Tp);
	       TF = FMA(KP1_541026485, Tx, KP637423989 * TE);
	       TG = Tq - TF;
	       T1E = FMA(KP851558583, TN, KP904827052 * TU);
	       T1F = FMA(KP1_984229402, T12, KP125333233 * T19);
	       T1G = T1E + T1F;
	       T1B = FNMS(KP844327925, Tp, KP1_071653589 * Ti);
	       T1C = FNMS(KP1_274847979, Tx, KP770513242 * TE);
	       T1D = T1B + T1C;
	       TV = FNMS(KP425779291, TU, KP1_809654104 * TN);
	       T1a = FNMS(KP992114701, T19, KP250666467 * T12);
	       T1b = TV + T1a;
	       {
		    E T1m, T1n, T1p, T1q;
		    T1m = FMA(KP1_937166322, Ti, KP248689887 * Tp);
		    T1n = FMA(KP1_071653589, Tx, KP844327925 * TE);
		    T1o = T1m + T1n;
		    T1p = FMA(KP1_752613360, TN, KP481753674 * TU);
		    T1q = FMA(KP1_457937254, T12, KP684547105 * T19);
		    T1r = T1p + T1q;
		    T1s = T1o + T1r;
		    T1z = T1q - T1p;
		    T1x = T1n - T1m;
	       }
	       {
		    E T1c, T1d, T1f, T1g;
		    T1c = FNMS(KP497379774, Ti, KP968583161 * Tp);
		    T1d = FNMS(KP1_688655851, Tx, KP535826794 * TE);
		    T1e = T1c + T1d;
		    T1f = FNMS(KP963507348, TN, KP876306680 * TU);
		    T1g = FNMS(KP1_369094211, T12, KP728968627 * T19);
		    T1h = T1f + T1g;
		    T1i = T1e + T1h;
		    T1u = T1f - T1g;
		    T1t = T1d - T1c;
	       }
	       Cr[WS(csr, 1)] = Tb + T1i;
	       Ci[WS(csi, 1)] = -(T1l + T1s);
	       Cr[WS(csr, 4)] = Tb + TG + T1b;
	       Ci[WS(csi, 4)] = T1l + T1D - T1G;
	       Ci[WS(csi, 9)] = FMA(KP309016994, T1D, T1l) + FMA(KP587785252, T1a - TV, KP809016994 * T1G) - (KP951056516 * (Tq + TF));
	       Cr[WS(csr, 9)] = FMA(KP309016994, TG, Tb) + FMA(KP951056516, T1B - T1C, KP587785252 * (T1F - T1E)) - (KP809016994 * T1b);
	       {
		    E T1v, T1w, T1y, T1A;
		    T1v = FMS(KP250000000, T1s, T1l);
		    T1w = KP559016994 * (T1r - T1o);
		    Ci[WS(csi, 11)] = FMA(KP587785252, T1t, KP951056516 * T1u) + T1v - T1w;
		    Ci[WS(csi, 6)] = FMA(KP951056516, T1t, T1v) + FNMS(KP587785252, T1u, T1w);
		    T1y = FNMS(KP250000000, T1i, Tb);
		    T1A = KP559016994 * (T1e - T1h);
		    Cr[WS(csr, 11)] = FMA(KP587785252, T1x, T1y) + FNMA(KP951056516, T1z, T1A);
		    Cr[WS(csr, 6)] = FMA(KP951056516, T1x, T1A) + FMA(KP587785252, T1z, T1y);
	       }
	  }
	  {
	       E T1W, T1X, T1J, T1M, T1N, T21, T22, T23, T1Q, T1T, T1U, T1Y, T1Z, T20, T26;
	       E T29, T2a, T2k, T2j, T2l, T2m, T2d, T2o, T2i;
	       T1W = FNMS(KP587785252, T1j, T1V);
	       T1X = Ta - T7;
	       T1J = FNMS(KP125333233, T1I, KP1_984229402 * T1H);
	       T1M = FMA(KP1_457937254, T1K, KP684547105 * T1L);
	       T1N = T1J - T1M;
	       T21 = FNMS(KP1_996053456, T1R, KP062790519 * T1S);
	       T22 = FMA(KP1_541026485, T1O, KP637423989 * T1P);
	       T23 = T21 - T22;
	       T1Q = FNMS(KP770513242, T1P, KP1_274847979 * T1O);
	       T1T = FMA(KP125581039, T1R, KP998026728 * T1S);
	       T1U = T1Q - T1T;
	       T1Y = FNMS(KP1_369094211, T1K, KP728968627 * T1L);
	       T1Z = FMA(KP250666467, T1H, KP992114701 * T1I);
	       T20 = T1Y - T1Z;
	       {
		    E T24, T25, T27, T28;
		    T24 = FNMS(KP481753674, T1L, KP1_752613360 * T1K);
		    T25 = FMA(KP851558583, T1H, KP904827052 * T1I);
		    T26 = T24 - T25;
		    T27 = FNMS(KP844327925, T1S, KP1_071653589 * T1R);
		    T28 = FNMS(KP998026728, T1P, KP125581039 * T1O);
		    T29 = T27 + T28;
		    T2a = T26 + T29;
		    T2k = T27 - T28;
		    T2j = T24 + T25;
	       }
	       {
		    E T2b, T2c, T2g, T2h;
		    T2b = FNMS(KP425779291, T1I, KP1_809654104 * T1H);
		    T2c = FMA(KP963507348, T1K, KP876306680 * T1L);
		    T2l = T2c + T2b;
		    T2g = FMA(KP1_688655851, T1R, KP535826794 * T1S);
		    T2h = FMA(KP1_996053456, T1O, KP062790519 * T1P);
		    T2m = T2g + T2h;
		    T2d = T2b - T2c;
		    T2o = T2l + T2m;
		    T2i = T2g - T2h;
	       }
	       Ci[WS(csi, 2)] = T1W + T2a;
	       Cr[WS(csr, 2)] = T1X + T2o;
	       Ci[WS(csi, 3)] = T1N + T1U - T1W;
	       Cr[WS(csr, 3)] = T1X + T20 + T23;
	       Cr[WS(csr, 8)] = FMA(KP309016994, T20, T1X) + FNMA(KP809016994, T23, KP587785252 * (T1T + T1Q)) - (KP951056516 * (T1M + T1J));
	       Ci[WS(csi, 8)] = FNMS(KP587785252, T21 + T22, KP309016994 * T1N) + FNMA(KP809016994, T1U, KP951056516 * (T1Y + T1Z)) - T1W;
	       {
		    E T2e, T2f, T2n, T2p;
		    T2e = KP559016994 * (T26 - T29);
		    T2f = FNMS(KP250000000, T2a, T1W);
		    Ci[WS(csi, 7)] = FMA(KP951056516, T2d, T2e) + FNMS(KP587785252, T2i, T2f);
		    Ci[WS(csi, 12)] = FMA(KP587785252, T2d, T2f) + FMS(KP951056516, T2i, T2e);
		    T2n = KP559016994 * (T2l - T2m);
		    T2p = FNMS(KP250000000, T2o, T1X);
		    Cr[WS(csr, 7)] = FMA(KP951056516, T2j, KP587785252 * T2k) + T2n + T2p;
		    Cr[WS(csr, 12)] = FMA(KP587785252, T2j, T2p) + FNMA(KP951056516, T2k, T2n);
	       }
	  }
     }
}
Exemplo n.º 11
0
static void hc2r_14(const R *ri, const R *ii, R *O, stride ris, stride iis, stride os, int v, int ivs, int ovs)
{
     DK(KP1_801937735, +1.801937735804838252472204639014890102331838324);
     DK(KP445041867, +0.445041867912628808577805128993589518932711138);
     DK(KP1_246979603, +1.246979603717467061050009768008479621264549462);
     DK(KP867767478, +0.867767478235116240951536665696717509219981456);
     DK(KP1_949855824, +1.949855824363647214036263365987862434465571601);
     DK(KP1_563662964, +1.563662964936059617416889053348115500464669037);
     DK(KP2_000000000, +2.000000000000000000000000000000000000000000000);
     int i;
     for (i = v; i > 0; i = i - 1, ri = ri + ivs, ii = ii + ivs, O = O + ovs) {
	  E T3, Td, T6, Te, Tq, Tz, Tn, Ty, Tc, Tg, Tk, Tx, T9, Tf, T1;
	  E T2;
	  T1 = ri[0];
	  T2 = ri[WS(ris, 7)];
	  T3 = T1 - T2;
	  Td = T1 + T2;
	  {
	       E T4, T5, To, Tp;
	       T4 = ri[WS(ris, 2)];
	       T5 = ri[WS(ris, 5)];
	       T6 = T4 - T5;
	       Te = T4 + T5;
	       To = ii[WS(iis, 2)];
	       Tp = ii[WS(iis, 5)];
	       Tq = To - Tp;
	       Tz = To + Tp;
	  }
	  {
	       E Tl, Tm, Ta, Tb;
	       Tl = ii[WS(iis, 6)];
	       Tm = ii[WS(iis, 1)];
	       Tn = Tl - Tm;
	       Ty = Tl + Tm;
	       Ta = ri[WS(ris, 6)];
	       Tb = ri[WS(ris, 1)];
	       Tc = Ta - Tb;
	       Tg = Ta + Tb;
	  }
	  {
	       E Ti, Tj, T7, T8;
	       Ti = ii[WS(iis, 4)];
	       Tj = ii[WS(iis, 3)];
	       Tk = Ti - Tj;
	       Tx = Ti + Tj;
	       T7 = ri[WS(ris, 4)];
	       T8 = ri[WS(ris, 3)];
	       T9 = T7 - T8;
	       Tf = T7 + T8;
	  }
	  O[WS(os, 7)] = FMA(KP2_000000000, T6 + T9 + Tc, T3);
	  O[0] = FMA(KP2_000000000, Te + Tf + Tg, Td);
	  {
	       E Tr, Th, TE, TD;
	       Tr = FNMS(KP1_949855824, Tn, KP1_563662964 * Tk) - (KP867767478 * Tq);
	       Th = FMA(KP1_246979603, Tf, Td) + FNMA(KP445041867, Tg, KP1_801937735 * Te);
	       O[WS(os, 4)] = Th - Tr;
	       O[WS(os, 10)] = Th + Tr;
	       TE = FMA(KP867767478, Tx, KP1_563662964 * Ty) - (KP1_949855824 * Tz);
	       TD = FMA(KP1_246979603, Tc, T3) + FNMA(KP1_801937735, T9, KP445041867 * T6);
	       O[WS(os, 5)] = TD - TE;
	       O[WS(os, 9)] = TD + TE;
	  }
	  {
	       E Tt, Ts, TA, Tw;
	       Tt = FMA(KP867767478, Tk, KP1_563662964 * Tn) - (KP1_949855824 * Tq);
	       Ts = FMA(KP1_246979603, Tg, Td) + FNMA(KP1_801937735, Tf, KP445041867 * Te);
	       O[WS(os, 12)] = Ts - Tt;
	       O[WS(os, 2)] = Ts + Tt;
	       TA = FNMS(KP1_949855824, Ty, KP1_563662964 * Tx) - (KP867767478 * Tz);
	       Tw = FMA(KP1_246979603, T9, T3) + FNMA(KP445041867, Tc, KP1_801937735 * T6);
	       O[WS(os, 11)] = Tw - TA;
	       O[WS(os, 3)] = Tw + TA;
	  }
	  {
	       E TC, TB, Tv, Tu;
	       TC = FMA(KP1_563662964, Tz, KP1_949855824 * Tx) + (KP867767478 * Ty);
	       TB = FMA(KP1_246979603, T6, T3) + FNMA(KP1_801937735, Tc, KP445041867 * T9);
	       O[WS(os, 1)] = TB - TC;
	       O[WS(os, 13)] = TB + TC;
	       Tv = FMA(KP1_563662964, Tq, KP1_949855824 * Tk) + (KP867767478 * Tn);
	       Tu = FMA(KP1_246979603, Te, Td) + FNMA(KP1_801937735, Tg, KP445041867 * Tf);
	       O[WS(os, 8)] = Tu - Tv;
	       O[WS(os, 6)] = Tu + Tv;
	  }
     }
}
Exemplo n.º 12
0
static void r2cb_14(R *R0, R *R1, R *Cr, R *Ci, stride rs, stride csr, stride csi, INT v, INT ivs, INT ovs)
{
     DK(KP1_801937735, +1.801937735804838252472204639014890102331838324);
     DK(KP445041867, +0.445041867912628808577805128993589518932711138);
     DK(KP1_246979603, +1.246979603717467061050009768008479621264549462);
     DK(KP867767478, +0.867767478235116240951536665696717509219981456);
     DK(KP1_949855824, +1.949855824363647214036263365987862434465571601);
     DK(KP1_563662964, +1.563662964936059617416889053348115500464669037);
     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 T3, Td, T6, Te, Tq, Tz, Tn, Ty, Tc, Tg, Tk, Tx, T9, Tf, T1;
	       E T2;
	       T1 = Cr[0];
	       T2 = Cr[WS(csr, 7)];
	       T3 = T1 - T2;
	       Td = T1 + T2;
	       {
		    E T4, T5, To, Tp;
		    T4 = Cr[WS(csr, 2)];
		    T5 = Cr[WS(csr, 5)];
		    T6 = T4 - T5;
		    Te = T4 + T5;
		    To = Ci[WS(csi, 2)];
		    Tp = Ci[WS(csi, 5)];
		    Tq = To - Tp;
		    Tz = To + Tp;
	       }
	       {
		    E Tl, Tm, Ta, Tb;
		    Tl = Ci[WS(csi, 6)];
		    Tm = Ci[WS(csi, 1)];
		    Tn = Tl - Tm;
		    Ty = Tl + Tm;
		    Ta = Cr[WS(csr, 6)];
		    Tb = Cr[WS(csr, 1)];
		    Tc = Ta - Tb;
		    Tg = Ta + Tb;
	       }
	       {
		    E Ti, Tj, T7, T8;
		    Ti = Ci[WS(csi, 4)];
		    Tj = Ci[WS(csi, 3)];
		    Tk = Ti - Tj;
		    Tx = Ti + Tj;
		    T7 = Cr[WS(csr, 4)];
		    T8 = Cr[WS(csr, 3)];
		    T9 = T7 - T8;
		    Tf = T7 + T8;
	       }
	       R1[WS(rs, 3)] = FMA(KP2_000000000, T6 + T9 + Tc, T3);
	       R0[0] = FMA(KP2_000000000, Te + Tf + Tg, Td);
	       {
		    E Tr, Th, TE, TD;
		    Tr = FNMS(KP1_949855824, Tn, KP1_563662964 * Tk) - (KP867767478 * Tq);
		    Th = FMA(KP1_246979603, Tf, Td) + FNMA(KP445041867, Tg, KP1_801937735 * Te);
		    R0[WS(rs, 2)] = Th - Tr;
		    R0[WS(rs, 5)] = Th + Tr;
		    TE = FMA(KP867767478, Tx, KP1_563662964 * Ty) - (KP1_949855824 * Tz);
		    TD = FMA(KP1_246979603, Tc, T3) + FNMA(KP1_801937735, T9, KP445041867 * T6);
		    R1[WS(rs, 2)] = TD - TE;
		    R1[WS(rs, 4)] = TD + TE;
	       }
	       {
		    E Tt, Ts, TA, Tw;
		    Tt = FMA(KP867767478, Tk, KP1_563662964 * Tn) - (KP1_949855824 * Tq);
		    Ts = FMA(KP1_246979603, Tg, Td) + FNMA(KP1_801937735, Tf, KP445041867 * Te);
		    R0[WS(rs, 6)] = Ts - Tt;
		    R0[WS(rs, 1)] = Ts + Tt;
		    TA = FNMS(KP1_949855824, Ty, KP1_563662964 * Tx) - (KP867767478 * Tz);
		    Tw = FMA(KP1_246979603, T9, T3) + FNMA(KP445041867, Tc, KP1_801937735 * T6);
		    R1[WS(rs, 5)] = Tw - TA;
		    R1[WS(rs, 1)] = Tw + TA;
	       }
	       {
		    E TC, TB, Tv, Tu;
		    TC = FMA(KP1_563662964, Tz, KP1_949855824 * Tx) + (KP867767478 * Ty);
		    TB = FMA(KP1_246979603, T6, T3) + FNMA(KP1_801937735, Tc, KP445041867 * T9);
		    R1[0] = TB - TC;
		    R1[WS(rs, 6)] = TB + TC;
		    Tv = FMA(KP1_563662964, Tq, KP1_949855824 * Tk) + (KP867767478 * Tn);
		    Tu = FMA(KP1_246979603, Te, Td) + FNMA(KP1_801937735, Tg, KP445041867 * Tf);
		    R0[WS(rs, 4)] = Tu - Tv;
		    R0[WS(rs, 3)] = Tu + Tv;
	       }
	  }
     }
}
Exemplo n.º 13
0
static void r2cf_9(R *R0, R *R1, R *Cr, R *Ci, stride rs, stride csr, stride csi, INT v, INT ivs, INT ovs)
{
     DK(KP939692620, +0.939692620785908384054109277324731469936208134);
     DK(KP296198132, +0.296198132726023843175338011893050938967728390);
     DK(KP342020143, +0.342020143325668733044099614682259580763083368);
     DK(KP813797681, +0.813797681349373692844693217248393223289101568);
     DK(KP984807753, +0.984807753012208059366743024589523013670643252);
     DK(KP150383733, +0.150383733180435296639271897612501926072238258);
     DK(KP642787609, +0.642787609686539326322643409907263432907559884);
     DK(KP663413948, +0.663413948168938396205421319635891297216863310);
     DK(KP852868531, +0.852868531952443209628250963940074071936020296);
     DK(KP173648177, +0.173648177666930348851716626769314796000375677);
     DK(KP556670399, +0.556670399226419366452912952047023132968291906);
     DK(KP766044443, +0.766044443118978035202392650555416673935832457);
     DK(KP866025403, +0.866025403784438646763723170752936183471402627);
     DK(KP500000000, +0.500000000000000000000000000000000000000000000);
     INT i;
     for (i = v; i > 0; i = i - 1, R0 = R0 + ivs, R1 = R1 + ivs, Cr = Cr + ovs, Ci = Ci + ovs, MAKE_VOLATILE_STRIDE(rs), MAKE_VOLATILE_STRIDE(csr), MAKE_VOLATILE_STRIDE(csi)) {
	  E T1, T4, Tr, Ta, Tl, Ti, Tf, Tk, Tj, T2, T3, T5, Tg;
	  T1 = R0[0];
	  T2 = R1[WS(rs, 1)];
	  T3 = R0[WS(rs, 3)];
	  T4 = T2 + T3;
	  Tr = T3 - T2;
	  {
	       E T6, T7, T8, T9;
	       T6 = R1[0];
	       T7 = R0[WS(rs, 2)];
	       T8 = R1[WS(rs, 3)];
	       T9 = T7 + T8;
	       Ta = T6 + T9;
	       Tl = T8 - T7;
	       Ti = FNMS(KP500000000, T9, T6);
	  }
	  {
	       E Tb, Tc, Td, Te;
	       Tb = R0[WS(rs, 1)];
	       Tc = R1[WS(rs, 2)];
	       Td = R0[WS(rs, 4)];
	       Te = Tc + Td;
	       Tf = Tb + Te;
	       Tk = FNMS(KP500000000, Te, Tb);
	       Tj = Td - Tc;
	  }
	  Ci[WS(csi, 3)] = KP866025403 * (Tf - Ta);
	  T5 = T1 + T4;
	  Tg = Ta + Tf;
	  Cr[WS(csr, 3)] = FNMS(KP500000000, Tg, T5);
	  Cr[0] = T5 + Tg;
	  {
	       E Tt, Th, Tm, Tn, To, Tp, Tq, Ts;
	       Tt = KP866025403 * Tr;
	       Th = FNMS(KP500000000, T4, T1);
	       Tm = FMA(KP766044443, Ti, KP556670399 * Tl);
	       Tn = FMA(KP173648177, Tk, KP852868531 * Tj);
	       To = Tm + Tn;
	       Tp = FNMS(KP642787609, Ti, KP663413948 * Tl);
	       Tq = FNMS(KP984807753, Tk, KP150383733 * Tj);
	       Ts = Tp + Tq;
	       Cr[WS(csr, 1)] = Th + To;
	       Ci[WS(csi, 1)] = Tt + Ts;
	       Cr[WS(csr, 4)] = FMA(KP866025403, Tp - Tq, Th) - (KP500000000 * To);
	       Ci[WS(csi, 4)] = FNMS(KP500000000, Ts, KP866025403 * (Tr + (Tn - Tm)));
	       Ci[WS(csi, 2)] = FNMS(KP342020143, Tk, KP813797681 * Tj) + FNMA(KP150383733, Tl, KP984807753 * Ti) - Tt;
	       Cr[WS(csr, 2)] = FMA(KP173648177, Ti, Th) + FNMA(KP296198132, Tj, KP939692620 * Tk) - (KP852868531 * Tl);
	  }
     }
}
Exemplo n.º 14
0
static void n1_14(const R *ri, const R *ii, R *ro, R *io, stride is, stride os, int v, int ivs, int ovs)
{
     DK(KP222520933, +0.222520933956314404288902564496794759466355569);
     DK(KP900968867, +0.900968867902419126236102319507445051165919162);
     DK(KP623489801, +0.623489801858733530525004884004239810632274731);
     DK(KP433883739, +0.433883739117558120475768332848358754609990728);
     DK(KP781831482, +0.781831482468029808708444526674057750232334519);
     DK(KP974927912, +0.974927912181823607018131682993931217232785801);
     int i;
     for (i = v; i > 0; i = i - 1, ri = ri + ivs, ii = ii + ivs, ro = ro + ovs, io = io + ovs) {
	  E T3, Tp, T16, T1f, Ta, T1q, Ts, T10, TG, T1z, T19, T1i, Th, T1s, Tv;
	  E T12, TU, T1B, T17, T1o, To, T1r, Ty, T11, TN, T1A, T18, T1l;
	  {
	       E T1, T2, T14, T15;
	       T1 = ri[0];
	       T2 = ri[WS(is, 7)];
	       T3 = T1 - T2;
	       Tp = T1 + T2;
	       T14 = ii[0];
	       T15 = ii[WS(is, 7)];
	       T16 = T14 - T15;
	       T1f = T14 + T15;
	  }
	  {
	       E T6, Tq, T9, Tr;
	       {
		    E T4, T5, T7, T8;
		    T4 = ri[WS(is, 2)];
		    T5 = ri[WS(is, 9)];
		    T6 = T4 - T5;
		    Tq = T4 + T5;
		    T7 = ri[WS(is, 12)];
		    T8 = ri[WS(is, 5)];
		    T9 = T7 - T8;
		    Tr = T7 + T8;
	       }
	       Ta = T6 + T9;
	       T1q = Tr - Tq;
	       Ts = Tq + Tr;
	       T10 = T9 - T6;
	  }
	  {
	       E TC, T1g, TF, T1h;
	       {
		    E TA, TB, TD, TE;
		    TA = ii[WS(is, 2)];
		    TB = ii[WS(is, 9)];
		    TC = TA - TB;
		    T1g = TA + TB;
		    TD = ii[WS(is, 12)];
		    TE = ii[WS(is, 5)];
		    TF = TD - TE;
		    T1h = TD + TE;
	       }
	       TG = TC - TF;
	       T1z = T1g - T1h;
	       T19 = TC + TF;
	       T1i = T1g + T1h;
	  }
	  {
	       E Td, Tt, Tg, Tu;
	       {
		    E Tb, Tc, Te, Tf;
		    Tb = ri[WS(is, 4)];
		    Tc = ri[WS(is, 11)];
		    Td = Tb - Tc;
		    Tt = Tb + Tc;
		    Te = ri[WS(is, 10)];
		    Tf = ri[WS(is, 3)];
		    Tg = Te - Tf;
		    Tu = Te + Tf;
	       }
	       Th = Td + Tg;
	       T1s = Tt - Tu;
	       Tv = Tt + Tu;
	       T12 = Tg - Td;
	  }
	  {
	       E TQ, T1m, TT, T1n;
	       {
		    E TO, TP, TR, TS;
		    TO = ii[WS(is, 4)];
		    TP = ii[WS(is, 11)];
		    TQ = TO - TP;
		    T1m = TO + TP;
		    TR = ii[WS(is, 10)];
		    TS = ii[WS(is, 3)];
		    TT = TR - TS;
		    T1n = TR + TS;
	       }
	       TU = TQ - TT;
	       T1B = T1n - T1m;
	       T17 = TQ + TT;
	       T1o = T1m + T1n;
	  }
	  {
	       E Tk, Tw, Tn, Tx;
	       {
		    E Ti, Tj, Tl, Tm;
		    Ti = ri[WS(is, 6)];
		    Tj = ri[WS(is, 13)];
		    Tk = Ti - Tj;
		    Tw = Ti + Tj;
		    Tl = ri[WS(is, 8)];
		    Tm = ri[WS(is, 1)];
		    Tn = Tl - Tm;
		    Tx = Tl + Tm;
	       }
	       To = Tk + Tn;
	       T1r = Tw - Tx;
	       Ty = Tw + Tx;
	       T11 = Tn - Tk;
	  }
	  {
	       E TJ, T1j, TM, T1k;
	       {
		    E TH, TI, TK, TL;
		    TH = ii[WS(is, 6)];
		    TI = ii[WS(is, 13)];
		    TJ = TH - TI;
		    T1j = TH + TI;
		    TK = ii[WS(is, 8)];
		    TL = ii[WS(is, 1)];
		    TM = TK - TL;
		    T1k = TK + TL;
	       }
	       TN = TJ - TM;
	       T1A = T1k - T1j;
	       T18 = TJ + TM;
	       T1l = T1j + T1k;
	  }
	  ro[WS(os, 7)] = T3 + Ta + Th + To;
	  io[WS(os, 7)] = T16 + T19 + T17 + T18;
	  ro[0] = Tp + Ts + Tv + Ty;
	  io[0] = T1f + T1i + T1o + T1l;
	  {
	       E TV, Tz, T1e, T1d;
	       TV = FNMS(KP781831482, TN, KP974927912 * TG) - (KP433883739 * TU);
	       Tz = FMA(KP623489801, To, T3) + FNMA(KP900968867, Th, KP222520933 * Ta);
	       ro[WS(os, 5)] = Tz - TV;
	       ro[WS(os, 9)] = Tz + TV;
	       T1e = FNMS(KP781831482, T11, KP974927912 * T10) - (KP433883739 * T12);
	       T1d = FMA(KP623489801, T18, T16) + FNMA(KP900968867, T17, KP222520933 * T19);
	       io[WS(os, 5)] = T1d - T1e;
	       io[WS(os, 9)] = T1e + T1d;
	  }
	  {
	       E TX, TW, T1b, T1c;
	       TX = FMA(KP781831482, TG, KP974927912 * TU) + (KP433883739 * TN);
	       TW = FMA(KP623489801, Ta, T3) + FNMA(KP900968867, To, KP222520933 * Th);
	       ro[WS(os, 13)] = TW - TX;
	       ro[WS(os, 1)] = TW + TX;
	       T1b = FMA(KP781831482, T10, KP974927912 * T12) + (KP433883739 * T11);
	       T1c = FMA(KP623489801, T19, T16) + FNMA(KP900968867, T18, KP222520933 * T17);
	       io[WS(os, 1)] = T1b + T1c;
	       io[WS(os, 13)] = T1c - T1b;
	  }
	  {
	       E TZ, TY, T13, T1a;
	       TZ = FMA(KP433883739, TG, KP974927912 * TN) - (KP781831482 * TU);
	       TY = FMA(KP623489801, Th, T3) + FNMA(KP222520933, To, KP900968867 * Ta);
	       ro[WS(os, 11)] = TY - TZ;
	       ro[WS(os, 3)] = TY + TZ;
	       T13 = FMA(KP433883739, T10, KP974927912 * T11) - (KP781831482 * T12);
	       T1a = FMA(KP623489801, T17, T16) + FNMA(KP222520933, T18, KP900968867 * T19);
	       io[WS(os, 3)] = T13 + T1a;
	       io[WS(os, 11)] = T1a - T13;
	  }
	  {
	       E T1t, T1p, T1C, T1y;
	       T1t = FNMS(KP433883739, T1r, KP781831482 * T1q) - (KP974927912 * T1s);
	       T1p = FMA(KP623489801, T1i, T1f) + FNMA(KP900968867, T1l, KP222520933 * T1o);
	       io[WS(os, 6)] = T1p - T1t;
	       io[WS(os, 8)] = T1t + T1p;
	       T1C = FNMS(KP433883739, T1A, KP781831482 * T1z) - (KP974927912 * T1B);
	       T1y = FMA(KP623489801, Ts, Tp) + FNMA(KP900968867, Ty, KP222520933 * Tv);
	       ro[WS(os, 6)] = T1y - T1C;
	       ro[WS(os, 8)] = T1y + T1C;
	  }
	  {
	       E T1v, T1u, T1E, T1D;
	       T1v = FMA(KP433883739, T1q, KP781831482 * T1s) - (KP974927912 * T1r);
	       T1u = FMA(KP623489801, T1o, T1f) + FNMA(KP222520933, T1l, KP900968867 * T1i);
	       io[WS(os, 4)] = T1u - T1v;
	       io[WS(os, 10)] = T1v + T1u;
	       T1E = FMA(KP433883739, T1z, KP781831482 * T1B) - (KP974927912 * T1A);
	       T1D = FMA(KP623489801, Tv, Tp) + FNMA(KP222520933, Ty, KP900968867 * Ts);
	       ro[WS(os, 4)] = T1D - T1E;
	       ro[WS(os, 10)] = T1D + T1E;
	  }
	  {
	       E T1w, T1x, T1G, T1F;
	       T1w = FMA(KP974927912, T1q, KP433883739 * T1s) + (KP781831482 * T1r);
	       T1x = FMA(KP623489801, T1l, T1f) + FNMA(KP900968867, T1o, KP222520933 * T1i);
	       io[WS(os, 2)] = T1w + T1x;
	       io[WS(os, 12)] = T1x - T1w;
	       T1G = FMA(KP974927912, T1z, KP433883739 * T1B) + (KP781831482 * T1A);
	       T1F = FMA(KP623489801, Ty, Tp) + FNMA(KP900968867, Tv, KP222520933 * Ts);
	       ro[WS(os, 12)] = T1F - T1G;
	       ro[WS(os, 2)] = T1F + T1G;
	  }
     }
}
Exemplo n.º 15
0
static void hb_7(R *cr, R *ci, const R *W, stride rs, INT mb, INT me, INT ms)
{
     DK(KP222520933, +0.222520933956314404288902564496794759466355569);
     DK(KP900968867, +0.900968867902419126236102319507445051165919162);
     DK(KP623489801, +0.623489801858733530525004884004239810632274731);
     DK(KP781831482, +0.781831482468029808708444526674057750232334519);
     DK(KP974927912, +0.974927912181823607018131682993931217232785801);
     DK(KP433883739, +0.433883739117558120475768332848358754609990728);
     {
	  INT m;
	  for (m = mb, W = W + ((mb - 1) * 12); m < me; m = m + 1, cr = cr + ms, ci = ci - ms, W = W + 12, MAKE_VOLATILE_STRIDE(rs)) {
	       E T1, T4, T7, Ta, Tx, TI, TV, TQ, TE, Tm, Tb, Te, Th, Tk, Tq;
	       E TF, TR, TU, TJ, Tt;
	       {
		    E Tu, Tw, Tv, T2, T3;
		    T1 = cr[0];
		    T2 = cr[WS(rs, 1)];
		    T3 = ci[0];
		    T4 = T2 + T3;
		    Tu = T2 - T3;
		    {
			 E T5, T6, T8, T9;
			 T5 = cr[WS(rs, 2)];
			 T6 = ci[WS(rs, 1)];
			 T7 = T5 + T6;
			 Tw = T5 - T6;
			 T8 = cr[WS(rs, 3)];
			 T9 = ci[WS(rs, 2)];
			 Ta = T8 + T9;
			 Tv = T8 - T9;
		    }
		    Tx = FMA(KP433883739, Tu, KP974927912 * Tv) - (KP781831482 * Tw);
		    TI = FMA(KP781831482, Tu, KP974927912 * Tw) + (KP433883739 * Tv);
		    TV = FNMS(KP781831482, Tv, KP974927912 * Tu) - (KP433883739 * Tw);
		    TQ = FMA(KP623489801, Ta, T1) + FNMA(KP900968867, T7, KP222520933 * T4);
		    TE = FMA(KP623489801, T4, T1) + FNMA(KP900968867, Ta, KP222520933 * T7);
		    Tm = FMA(KP623489801, T7, T1) + FNMA(KP222520933, Ta, KP900968867 * T4);
	       }
	       {
		    E Tp, Tn, To, Tc, Td;
		    Tb = ci[WS(rs, 6)];
		    Tc = ci[WS(rs, 5)];
		    Td = cr[WS(rs, 6)];
		    Te = Tc - Td;
		    Tp = Tc + Td;
		    {
			 E Tf, Tg, Ti, Tj;
			 Tf = ci[WS(rs, 4)];
			 Tg = cr[WS(rs, 5)];
			 Th = Tf - Tg;
			 Tn = Tf + Tg;
			 Ti = ci[WS(rs, 3)];
			 Tj = cr[WS(rs, 4)];
			 Tk = Ti - Tj;
			 To = Ti + Tj;
		    }
		    Tq = FNMS(KP974927912, To, KP781831482 * Tn) - (KP433883739 * Tp);
		    TF = FMA(KP781831482, Tp, KP974927912 * Tn) + (KP433883739 * To);
		    TR = FMA(KP433883739, Tn, KP781831482 * To) - (KP974927912 * Tp);
		    TU = FMA(KP623489801, Tk, Tb) + FNMA(KP900968867, Th, KP222520933 * Te);
		    TJ = FMA(KP623489801, Te, Tb) + FNMA(KP900968867, Tk, KP222520933 * Th);
		    Tt = FMA(KP623489801, Th, Tb) + FNMA(KP222520933, Tk, KP900968867 * Te);
	       }
	       cr[0] = T1 + T4 + T7 + Ta;
	       ci[0] = Tb + Te + Th + Tk;
	       {
		    E Tr, Ty, Tl, Ts;
		    Tr = Tm - Tq;
		    Ty = Tt - Tx;
		    Tl = W[6];
		    Ts = W[7];
		    cr[WS(rs, 4)] = FNMS(Ts, Ty, Tl * Tr);
		    ci[WS(rs, 4)] = FMA(Tl, Ty, Ts * Tr);
	       }
	       {
		    E TY, T10, TX, TZ;
		    TY = TQ + TR;
		    T10 = TV + TU;
		    TX = W[2];
		    TZ = W[3];
		    cr[WS(rs, 2)] = FNMS(TZ, T10, TX * TY);
		    ci[WS(rs, 2)] = FMA(TX, T10, TZ * TY);
	       }
	       {
		    E TA, TC, Tz, TB;
		    TA = Tm + Tq;
		    TC = Tx + Tt;
		    Tz = W[4];
		    TB = W[5];
		    cr[WS(rs, 3)] = FNMS(TB, TC, Tz * TA);
		    ci[WS(rs, 3)] = FMA(Tz, TC, TB * TA);
	       }
	       {
		    E TM, TO, TL, TN;
		    TM = TE + TF;
		    TO = TJ - TI;
		    TL = W[10];
		    TN = W[11];
		    cr[WS(rs, 6)] = FNMS(TN, TO, TL * TM);
		    ci[WS(rs, 6)] = FMA(TL, TO, TN * TM);
	       }
	       {
		    E TS, TW, TP, TT;
		    TS = TQ - TR;
		    TW = TU - TV;
		    TP = W[8];
		    TT = W[9];
		    cr[WS(rs, 5)] = FNMS(TT, TW, TP * TS);
		    ci[WS(rs, 5)] = FMA(TP, TW, TT * TS);
	       }
	       {
		    E TG, TK, TD, TH;
		    TG = TE - TF;
		    TK = TI + TJ;
		    TD = W[0];
		    TH = W[1];
		    cr[WS(rs, 1)] = FNMS(TH, TK, TD * TG);
		    ci[WS(rs, 1)] = FMA(TD, TK, TH * TG);
	       }
	  }
     }
}
Exemplo n.º 16
0
static void r2cfII_25(R *R0, R *R1, R *Cr, R *Ci, stride rs, stride csr, stride csi, INT v, INT ivs, INT ovs)
{
     DK(KP1_996053456, +1.996053456856543123904673613726901106673810439);
     DK(KP062790519, +0.062790519529313376076178224565631133122484832);
     DK(KP125581039, +0.125581039058626752152356449131262266244969664);
     DK(KP998026728, +0.998026728428271561952336806863450553336905220);
     DK(KP1_369094211, +1.369094211857377347464566715242418539779038465);
     DK(KP728968627, +0.728968627421411523146730319055259111372571664);
     DK(KP963507348, +0.963507348203430549974383005744259307057084020);
     DK(KP876306680, +0.876306680043863587308115903922062583399064238);
     DK(KP497379774, +0.497379774329709576484567492012895936835134813);
     DK(KP968583161, +0.968583161128631119490168375464735813836012403);
     DK(KP1_457937254, +1.457937254842823046293460638110518222745143328);
     DK(KP684547105, +0.684547105928688673732283357621209269889519233);
     DK(KP1_752613360, +1.752613360087727174616231807844125166798128477);
     DK(KP481753674, +0.481753674101715274987191502872129653528542010);
     DK(KP1_937166322, +1.937166322257262238980336750929471627672024806);
     DK(KP248689887, +0.248689887164854788242283746006447968417567406);
     DK(KP992114701, +0.992114701314477831049793042785778521453036709);
     DK(KP250666467, +0.250666467128608490746237519633017587885836494);
     DK(KP1_809654104, +1.809654104932039055427337295865395187940827822);
     DK(KP425779291, +0.425779291565072648862502445744251703979973042);
     DK(KP1_541026485, +1.541026485551578461606019272792355694543335344);
     DK(KP637423989, +0.637423989748689710176712811676016195434917298);
     DK(KP1_688655851, +1.688655851004030157097116127933363010763318483);
     DK(KP535826794, +0.535826794978996618271308767867639978063575346);
     DK(KP851558583, +0.851558583130145297725004891488503407959946084);
     DK(KP904827052, +0.904827052466019527713668647932697593970413911);
     DK(KP1_984229402, +1.984229402628955662099586085571557042906073418);
     DK(KP125333233, +0.125333233564304245373118759816508793942918247);
     DK(KP1_274847979, +1.274847979497379420353425623352032390869834596);
     DK(KP770513242, +0.770513242775789230803009636396177847271667672);
     DK(KP844327925, +0.844327925502015078548558063966681505381659241);
     DK(KP1_071653589, +1.071653589957993236542617535735279956127150691);
     DK(KP293892626, +0.293892626146236564584352977319536384298826219);
     DK(KP475528258, +0.475528258147576786058219666689691071702849317);
     DK(KP250000000, +0.250000000000000000000000000000000000000000000);
     DK(KP587785252, +0.587785252292473129168705954639072768597652438);
     DK(KP951056516, +0.951056516295153572116439333379382143405698634);
     DK(KP559016994, +0.559016994374947424102293417182819058860154590);
     {
	  INT i;
	  for (i = v; i > 0; i = i - 1, R0 = R0 + ivs, R1 = R1 + ivs, Cr = Cr + ovs, Ci = Ci + ovs, MAKE_VOLATILE_STRIDE(100, rs), MAKE_VOLATILE_STRIDE(100, csr), MAKE_VOLATILE_STRIDE(100, csi)) {
	       E TE, TR, T2i, T1z, TL, TS, TB, T2d, T1l, T1i, T2c, T9, T23, TZ, TW;
	       E T22, Ti, T26, T16, T13, T25, Ts, T2a, T1e, T1b, T29, TP, TQ;
	       {
		    E TK, T1y, TH, T1x;
		    TE = R0[0];
		    {
			 E TI, TJ, TF, TG;
			 TI = R0[WS(rs, 10)];
			 TJ = R1[WS(rs, 2)];
			 TK = TI - TJ;
			 T1y = TI + TJ;
			 TF = R0[WS(rs, 5)];
			 TG = R1[WS(rs, 7)];
			 TH = TF - TG;
			 T1x = TF + TG;
		    }
		    TR = KP559016994 * (TH - TK);
		    T2i = FNMS(KP587785252, T1x, KP951056516 * T1y);
		    T1z = FMA(KP951056516, T1x, KP587785252 * T1y);
		    TL = TH + TK;
		    TS = FNMS(KP250000000, TL, TE);
	       }
	       {
		    E Tt, Tw, Tz, TA, T1k, T1j, T1g, T1h;
		    Tt = R0[WS(rs, 3)];
		    {
			 E Tu, Tv, Tx, Ty;
			 Tu = R0[WS(rs, 8)];
			 Tv = R1[WS(rs, 10)];
			 Tw = Tu - Tv;
			 Tx = R1[0];
			 Ty = R1[WS(rs, 5)];
			 Tz = Tx + Ty;
			 TA = Tw - Tz;
			 T1k = Ty - Tx;
			 T1j = Tu + Tv;
		    }
		    TB = Tt + TA;
		    T2d = FNMS(KP293892626, T1j, KP475528258 * T1k);
		    T1l = FMA(KP475528258, T1j, KP293892626 * T1k);
		    T1g = FNMS(KP250000000, TA, Tt);
		    T1h = KP559016994 * (Tw + Tz);
		    T1i = T1g + T1h;
		    T2c = T1g - T1h;
	       }
	       {
		    E T1, T4, T7, T8, TY, TX, TU, TV;
		    T1 = R0[WS(rs, 1)];
		    {
			 E T2, T3, T5, T6;
			 T2 = R0[WS(rs, 6)];
			 T3 = R1[WS(rs, 8)];
			 T4 = T2 - T3;
			 T5 = R0[WS(rs, 11)];
			 T6 = R1[WS(rs, 3)];
			 T7 = T5 - T6;
			 T8 = T4 + T7;
			 TY = T5 + T6;
			 TX = T2 + T3;
		    }
		    T9 = T1 + T8;
		    T23 = FNMS(KP293892626, TX, KP475528258 * TY);
		    TZ = FMA(KP475528258, TX, KP293892626 * TY);
		    TU = KP559016994 * (T4 - T7);
		    TV = FNMS(KP250000000, T8, T1);
		    TW = TU + TV;
		    T22 = TV - TU;
	       }
	       {
		    E Ta, Td, Tg, Th, T15, T14, T11, T12;
		    Ta = R0[WS(rs, 4)];
		    {
			 E Tb, Tc, Te, Tf;
			 Tb = R0[WS(rs, 9)];
			 Tc = R1[WS(rs, 11)];
			 Td = Tb - Tc;
			 Te = R1[WS(rs, 1)];
			 Tf = R1[WS(rs, 6)];
			 Tg = Te + Tf;
			 Th = Td - Tg;
			 T15 = Tf - Te;
			 T14 = Tb + Tc;
		    }
		    Ti = Ta + Th;
		    T26 = FNMS(KP293892626, T14, KP475528258 * T15);
		    T16 = FMA(KP475528258, T14, KP293892626 * T15);
		    T11 = FNMS(KP250000000, Th, Ta);
		    T12 = KP559016994 * (Td + Tg);
		    T13 = T11 + T12;
		    T25 = T11 - T12;
	       }
	       {
		    E Tk, Tn, Tq, Tr, T1d, T1c, T19, T1a;
		    Tk = R0[WS(rs, 2)];
		    {
			 E Tl, Tm, To, Tp;
			 Tl = R0[WS(rs, 7)];
			 Tm = R1[WS(rs, 9)];
			 Tn = Tl - Tm;
			 To = R0[WS(rs, 12)];
			 Tp = R1[WS(rs, 4)];
			 Tq = To - Tp;
			 Tr = Tn + Tq;
			 T1d = To + Tp;
			 T1c = Tl + Tm;
		    }
		    Ts = Tk + Tr;
		    T2a = FNMS(KP293892626, T1c, KP475528258 * T1d);
		    T1e = FMA(KP475528258, T1c, KP293892626 * T1d);
		    T19 = KP559016994 * (Tn - Tq);
		    T1a = FNMS(KP250000000, Tr, Tk);
		    T1b = T19 + T1a;
		    T29 = T1a - T19;
	       }
	       TP = TB - Ts;
	       TQ = T9 - Ti;
	       Ci[WS(csi, 2)] = FNMS(KP951056516, TQ, KP587785252 * TP);
	       Ci[WS(csi, 7)] = FMA(KP587785252, TQ, KP951056516 * TP);
	       {
		    E TM, TD, TN, Tj, TC, TO;
		    TM = TE + TL;
		    Tj = T9 + Ti;
		    TC = Ts + TB;
		    TD = KP559016994 * (Tj - TC);
		    TN = Tj + TC;
		    Cr[WS(csr, 12)] = TM + TN;
		    TO = FNMS(KP250000000, TN, TM);
		    Cr[WS(csr, 2)] = TD + TO;
		    Cr[WS(csr, 7)] = TO - TD;
	       }
	       {
		    E TT, T1J, T1Y, T1U, T1X, T1P, T1V, T1M, T1W, T1A, T1B, T1r, T1C, T1v, T18;
		    E T1n, T1o, T1G, T1D;
		    TT = TR + TS;
		    {
			 E T1H, T1I, T1S, T1T;
			 T1H = FNMS(KP844327925, TW, KP1_071653589 * TZ);
			 T1I = FNMS(KP1_274847979, T16, KP770513242 * T13);
			 T1J = T1H - T1I;
			 T1Y = T1H + T1I;
			 T1S = FMA(KP125333233, T1i, KP1_984229402 * T1l);
			 T1T = FMA(KP904827052, T1b, KP851558583 * T1e);
			 T1U = T1S - T1T;
			 T1X = T1T + T1S;
		    }
		    {
			 E T1N, T1O, T1K, T1L;
			 T1N = FMA(KP535826794, TW, KP1_688655851 * TZ);
			 T1O = FMA(KP637423989, T13, KP1_541026485 * T16);
			 T1P = T1N - T1O;
			 T1V = T1N + T1O;
			 T1K = FNMS(KP1_809654104, T1e, KP425779291 * T1b);
			 T1L = FNMS(KP992114701, T1i, KP250666467 * T1l);
			 T1M = T1K - T1L;
			 T1W = T1K + T1L;
		    }
		    {
			 E T1p, T1q, T1t, T1u;
			 T1p = FMA(KP844327925, T13, KP1_071653589 * T16);
			 T1q = FMA(KP248689887, TW, KP1_937166322 * TZ);
			 T1A = T1q + T1p;
			 T1t = FMA(KP481753674, T1b, KP1_752613360 * T1e);
			 T1u = FMA(KP684547105, T1i, KP1_457937254 * T1l);
			 T1B = T1t + T1u;
			 T1r = T1p - T1q;
			 T1C = T1A + T1B;
			 T1v = T1t - T1u;
		    }
		    {
			 E T10, T17, T1f, T1m;
			 T10 = FNMS(KP497379774, TZ, KP968583161 * TW);
			 T17 = FNMS(KP1_688655851, T16, KP535826794 * T13);
			 T18 = T10 + T17;
			 T1f = FNMS(KP963507348, T1e, KP876306680 * T1b);
			 T1m = FNMS(KP1_369094211, T1l, KP728968627 * T1i);
			 T1n = T1f + T1m;
			 T1o = T18 + T1n;
			 T1G = T10 - T17;
			 T1D = T1f - T1m;
		    }
		    {
			 E T1R, T1Q, T20, T1Z;
			 Cr[0] = TT + T1o;
			 Ci[0] = -(T1z + T1C);
			 T1R = KP559016994 * (T1P + T1M);
			 T1Q = FMA(KP250000000, T1M - T1P, TT);
			 Cr[WS(csr, 4)] = FMA(KP951056516, T1J, T1Q) + FMA(KP587785252, T1U, T1R);
			 Cr[WS(csr, 9)] = FMA(KP951056516, T1U, T1Q) + FNMA(KP587785252, T1J, T1R);
			 T20 = KP559016994 * (T1Y + T1X);
			 T1Z = FMA(KP250000000, T1X - T1Y, T1z);
			 Ci[WS(csi, 9)] = FMA(KP587785252, T1V, KP951056516 * T1W) + T1Z - T20;
			 Ci[WS(csi, 4)] = FMA(KP587785252, T1W, T1Z) + FNMS(KP951056516, T1V, T20);
			 {
			      E T1E, T1F, T1s, T1w;
			      T1E = FMS(KP250000000, T1C, T1z);
			      T1F = KP559016994 * (T1B - T1A);
			      Ci[WS(csi, 5)] = FMA(KP951056516, T1D, T1E) + FNMA(KP587785252, T1G, T1F);
			      Ci[WS(csi, 10)] = FMA(KP951056516, T1G, KP587785252 * T1D) + T1E + T1F;
			      T1s = FNMS(KP250000000, T1o, TT);
			      T1w = KP559016994 * (T18 - T1n);
			      Cr[WS(csr, 5)] = FMA(KP587785252, T1r, T1s) + FMS(KP951056516, T1v, T1w);
			      Cr[WS(csr, 10)] = T1w + FMA(KP587785252, T1v, T1s) - (KP951056516 * T1r);
			 }
		    }
	       }
	       {
		    E T21, T2z, T2L, T2K, T2M, T2F, T2P, T2C, T2Q, T2l, T2o, T2p, T2w, T2u, T28;
		    E T2f, T2g, T2s, T2h;
		    T21 = TS - TR;
		    {
			 E T2x, T2y, T2I, T2J;
			 T2x = FNMS(KP844327925, T29, KP1_071653589 * T2a);
			 T2y = FNMS(KP125581039, T2d, KP998026728 * T2c);
			 T2z = T2x + T2y;
			 T2L = T2y - T2x;
			 T2I = FNMS(KP481753674, T22, KP1_752613360 * T23);
			 T2J = FMA(KP904827052, T25, KP851558583 * T26);
			 T2K = T2I + T2J;
			 T2M = T2I - T2J;
		    }
		    {
			 E T2D, T2E, T2A, T2B;
			 T2D = FMA(KP535826794, T29, KP1_688655851 * T2a);
			 T2E = FMA(KP062790519, T2c, KP1_996053456 * T2d);
			 T2F = T2D + T2E;
			 T2P = T2E - T2D;
			 T2A = FMA(KP876306680, T22, KP963507348 * T23);
			 T2B = FNMS(KP425779291, T25, KP1_809654104 * T26);
			 T2C = T2A + T2B;
			 T2Q = T2A - T2B;
		    }
		    {
			 E T2j, T2k, T2m, T2n;
			 T2j = FNMS(KP125333233, T25, KP1_984229402 * T26);
			 T2k = FMA(KP684547105, T22, KP1_457937254 * T23);
			 T2l = T2j - T2k;
			 T2m = FNMS(KP770513242, T2c, KP1_274847979 * T2d);
			 T2n = FMA(KP998026728, T29, KP125581039 * T2a);
			 T2o = T2m - T2n;
			 T2p = T2l + T2o;
			 T2w = T2k + T2j;
			 T2u = T2n + T2m;
		    }
		    {
			 E T24, T27, T2b, T2e;
			 T24 = FNMS(KP1_369094211, T23, KP728968627 * T22);
			 T27 = FMA(KP992114701, T25, KP250666467 * T26);
			 T28 = T24 - T27;
			 T2b = FNMS(KP1_996053456, T2a, KP062790519 * T29);
			 T2e = FMA(KP637423989, T2c, KP1_541026485 * T2d);
			 T2f = T2b - T2e;
			 T2g = T28 + T2f;
			 T2s = T24 + T27;
			 T2h = T2b + T2e;
		    }
		    {
			 E T2H, T2G, T2O, T2N;
			 Cr[WS(csr, 1)] = T21 + T2g;
			 Ci[WS(csi, 1)] = T2p - T2i;
			 T2H = KP559016994 * (T2C - T2F);
			 T2G = FNMS(KP250000000, T2C + T2F, T21);
			 Cr[WS(csr, 8)] = FMA(KP951056516, T2z, T2G) + FNMA(KP587785252, T2K, T2H);
			 Cr[WS(csr, 3)] = FMA(KP951056516, T2K, KP587785252 * T2z) + T2G + T2H;
			 T2O = KP559016994 * (T2M + T2L);
			 T2N = FMA(KP250000000, T2L - T2M, T2i);
			 Ci[WS(csi, 3)] = T2N + FMA(KP587785252, T2P, T2O) - (KP951056516 * T2Q);
			 Ci[WS(csi, 8)] = FMA(KP587785252, T2Q, T2N) + FMS(KP951056516, T2P, T2O);
			 {
			      E T2t, T2v, T2q, T2r;
			      T2t = FNMS(KP250000000, T2g, T21);
			      T2v = KP559016994 * (T28 - T2f);
			      Cr[WS(csr, 6)] = FMA(KP951056516, T2u, T2t) + FNMA(KP587785252, T2w, T2v);
			      Cr[WS(csr, 11)] = FMA(KP951056516, T2w, T2v) + FMA(KP587785252, T2u, T2t);
			      T2q = KP250000000 * T2p;
			      T2r = KP559016994 * (T2l - T2o);
			      Ci[WS(csi, 6)] = FMS(KP951056516, T2h, T2i + T2q) + FNMA(KP587785252, T2s, T2r);
			      Ci[WS(csi, 11)] = FMA(KP951056516, T2s, KP587785252 * T2h) + T2r - (T2i + T2q);
			 }
		    }
	       }
	  }
     }
}
Exemplo n.º 17
0
static void r2cfII_15(R *R0, R *R1, R *Cr, R *Ci, stride rs, stride csr, stride csi, INT v, INT ivs, INT ovs)
{
     DK(KP500000000, +0.500000000000000000000000000000000000000000000);
     DK(KP866025403, +0.866025403784438646763723170752936183471402627);
     DK(KP809016994, +0.809016994374947424102293417182819058860154590);
     DK(KP309016994, +0.309016994374947424102293417182819058860154590);
     DK(KP250000000, +0.250000000000000000000000000000000000000000000);
     DK(KP559016994, +0.559016994374947424102293417182819058860154590);
     DK(KP587785252, +0.587785252292473129168705954639072768597652438);
     DK(KP951056516, +0.951056516295153572116439333379382143405698634);
     {
	  INT i;
	  for (i = v; i > 0; i = i - 1, R0 = R0 + ivs, R1 = R1 + ivs, Cr = Cr + ovs, Ci = Ci + ovs, MAKE_VOLATILE_STRIDE(60, rs), MAKE_VOLATILE_STRIDE(60, csr), MAKE_VOLATILE_STRIDE(60, csi)) {
	       E T1, T2, Tx, TR, TE, T7, TD, Th, Tm, Tr, TQ, TA, TB, Tf, Te;
	       E Tu, TS, Td, TH, TO;
	       T1 = R0[WS(rs, 5)];
	       {
		    E T3, Tv, T6, Tw, T4, T5;
		    T2 = R0[WS(rs, 2)];
		    T3 = R1[0];
		    Tv = T2 + T3;
		    T4 = R1[WS(rs, 3)];
		    T5 = R1[WS(rs, 6)];
		    T6 = T4 + T5;
		    Tw = T4 - T5;
		    Tx = FMA(KP951056516, Tv, KP587785252 * Tw);
		    TR = FNMS(KP587785252, Tv, KP951056516 * Tw);
		    TE = KP559016994 * (T3 - T6);
		    T7 = T3 + T6;
		    TD = KP250000000 * T7;
	       }
	       {
		    E Ti, Tl, Tj, Tk, Tp, Tq;
		    Th = R0[0];
		    Ti = R1[WS(rs, 4)];
		    Tl = R0[WS(rs, 6)];
		    Tj = R1[WS(rs, 1)];
		    Tk = R0[WS(rs, 3)];
		    Tp = Tk + Ti;
		    Tq = Tl + Tj;
		    Tm = Ti + Tj - (Tk + Tl);
		    Tr = FMA(KP951056516, Tp, KP587785252 * Tq);
		    TQ = FNMS(KP951056516, Tq, KP587785252 * Tp);
		    TA = FMA(KP250000000, Tm, Th);
		    TB = KP559016994 * (Tl + Ti - (Tk + Tj));
	       }
	       {
		    E T9, Tt, Tc, Ts, Ta, Tb, TG;
		    Tf = R1[WS(rs, 2)];
		    T9 = R0[WS(rs, 7)];
		    Te = R1[WS(rs, 5)];
		    Tt = T9 + Te;
		    Ta = R0[WS(rs, 1)];
		    Tb = R0[WS(rs, 4)];
		    Tc = Ta + Tb;
		    Ts = Ta - Tb;
		    Tu = FNMS(KP951056516, Tt, KP587785252 * Ts);
		    TS = FMA(KP951056516, Ts, KP587785252 * Tt);
		    Td = T9 + Tc;
		    TG = KP559016994 * (T9 - Tc);
		    TH = FNMS(KP309016994, Te, TG) + FNMA(KP250000000, Td, Tf);
		    TO = FMS(KP809016994, Te, Tf) + FNMA(KP250000000, Td, TG);
	       }
	       {
		    E Tn, T8, Tg, To;
		    Tn = Th - Tm;
		    T8 = T1 + T2 - T7;
		    Tg = Td - Te - Tf;
		    To = T8 + Tg;
		    Ci[WS(csi, 2)] = KP866025403 * (T8 - Tg);
		    Cr[WS(csr, 2)] = FNMS(KP500000000, To, Tn);
		    Cr[WS(csr, 7)] = Tn + To;
	       }
	       {
		    E TM, TX, TT, TV, TP, TU, TN, TW;
		    TM = TB + TA;
		    TX = KP866025403 * (TR + TS);
		    TT = TR - TS;
		    TV = FMS(KP500000000, TT, TQ);
		    TN = T1 + TE + FNMS(KP809016994, T2, TD);
		    TP = TN + TO;
		    TU = KP866025403 * (TO - TN);
		    Cr[WS(csr, 1)] = TM + TP;
		    Ci[WS(csi, 1)] = TQ + TT;
		    Ci[WS(csi, 6)] = TU - TV;
		    Ci[WS(csi, 3)] = TU + TV;
		    TW = FNMS(KP500000000, TP, TM);
		    Cr[WS(csr, 3)] = TW - TX;
		    Cr[WS(csr, 6)] = TW + TX;
	       }
	       {
		    E Tz, TC, Ty, TK, TI, TL, TF, TJ;
		    Tz = KP866025403 * (Tx + Tu);
		    TC = TA - TB;
		    Ty = Tu - Tx;
		    TK = FMS(KP500000000, Ty, Tr);
		    TF = FMA(KP309016994, T2, T1) + TD - TE;
		    TI = TF + TH;
		    TL = KP866025403 * (TH - TF);
		    Ci[WS(csi, 4)] = Tr + Ty;
		    Cr[WS(csr, 4)] = TC + TI;
		    Ci[WS(csi, 5)] = TK - TL;
		    Ci[0] = TK + TL;
		    TJ = FNMS(KP500000000, TI, TC);
		    Cr[0] = Tz + TJ;
		    Cr[WS(csr, 5)] = TJ - Tz;
	       }
	  }
     }
}
Exemplo n.º 18
0
static void r2hc_14(const R *I, R *ro, R *io, stride is, stride ros, stride ios, int v, int ivs, int ovs)
{
     DK(KP900968867, +0.900968867902419126236102319507445051165919162);
     DK(KP222520933, +0.222520933956314404288902564496794759466355569);
     DK(KP623489801, +0.623489801858733530525004884004239810632274731);
     DK(KP433883739, +0.433883739117558120475768332848358754609990728);
     DK(KP974927912, +0.974927912181823607018131682993931217232785801);
     DK(KP781831482, +0.781831482468029808708444526674057750232334519);
     int i;
     for (i = v; i > 0; i = i - 1, I = I + ivs, ro = ro + ovs, io = io + ovs) {
	  E T3, TB, T6, Tv, Tn, Ts, Tk, Tt, Td, Ty, T9, Tw, Tg, Tz, T1;
	  E T2;
	  T1 = I[0];
	  T2 = I[WS(is, 7)];
	  T3 = T1 - T2;
	  TB = T1 + T2;
	  {
	       E T4, T5, Tl, Tm;
	       T4 = I[WS(is, 4)];
	       T5 = I[WS(is, 11)];
	       T6 = T4 - T5;
	       Tv = T4 + T5;
	       Tl = I[WS(is, 12)];
	       Tm = I[WS(is, 5)];
	       Tn = Tl - Tm;
	       Ts = Tl + Tm;
	  }
	  {
	       E Ti, Tj, Tb, Tc;
	       Ti = I[WS(is, 2)];
	       Tj = I[WS(is, 9)];
	       Tk = Ti - Tj;
	       Tt = Ti + Tj;
	       Tb = I[WS(is, 6)];
	       Tc = I[WS(is, 13)];
	       Td = Tb - Tc;
	       Ty = Tb + Tc;
	  }
	  {
	       E T7, T8, Te, Tf;
	       T7 = I[WS(is, 10)];
	       T8 = I[WS(is, 3)];
	       T9 = T7 - T8;
	       Tw = T7 + T8;
	       Te = I[WS(is, 8)];
	       Tf = I[WS(is, 1)];
	       Tg = Te - Tf;
	       Tz = Te + Tf;
	  }
	  {
	       E Tp, Tr, Tq, Ta, To, Th;
	       Tp = Tn - Tk;
	       Tr = Tg - Td;
	       Tq = T9 - T6;
	       io[WS(ios, 1)] = FMA(KP781831482, Tp, KP974927912 * Tq) + (KP433883739 * Tr);
	       io[WS(ios, 5)] = FMA(KP433883739, Tq, KP781831482 * Tr) - (KP974927912 * Tp);
	       io[WS(ios, 3)] = FMA(KP433883739, Tp, KP974927912 * Tr) - (KP781831482 * Tq);
	       Ta = T6 + T9;
	       To = Tk + Tn;
	       Th = Td + Tg;
	       ro[WS(ros, 3)] = FMA(KP623489801, Ta, T3) + FNMA(KP222520933, Th, KP900968867 * To);
	       ro[WS(ros, 7)] = T3 + To + Ta + Th;
	       ro[WS(ros, 1)] = FMA(KP623489801, To, T3) + FNMA(KP900968867, Th, KP222520933 * Ta);
	       ro[WS(ros, 5)] = FMA(KP623489801, Th, T3) + FNMA(KP900968867, Ta, KP222520933 * To);
	  }
	  {
	       E Tu, TA, Tx, TC, TE, TD;
	       Tu = Ts - Tt;
	       TA = Ty - Tz;
	       Tx = Tv - Tw;
	       io[WS(ios, 2)] = FMA(KP974927912, Tu, KP433883739 * Tx) + (KP781831482 * TA);
	       io[WS(ios, 6)] = FMA(KP974927912, Tx, KP433883739 * TA) - (KP781831482 * Tu);
	       io[WS(ios, 4)] = FNMS(KP781831482, Tx, KP974927912 * TA) - (KP433883739 * Tu);
	       TC = Tt + Ts;
	       TE = Tv + Tw;
	       TD = Ty + Tz;
	       ro[WS(ros, 6)] = FMA(KP623489801, TC, TB) + FNMA(KP900968867, TD, KP222520933 * TE);
	       ro[WS(ros, 2)] = FMA(KP623489801, TD, TB) + FNMA(KP900968867, TE, KP222520933 * TC);
	       ro[WS(ros, 4)] = FMA(KP623489801, TE, TB) + FNMA(KP222520933, TD, KP900968867 * TC);
	       ro[0] = TB + TC + TE + TD;
	  }
     }
}
Exemplo n.º 19
0
static void n1_11(const float *ri, const float *ii, float *ro, float *io, stride is, stride os, INT v, INT ivs, INT ovs)
{
     DK(KP654860733, +0.654860733945285064056925072466293553183791199);
     DK(KP142314838, +0.142314838273285140443792668616369668791051361);
     DK(KP959492973, +0.959492973614497389890368057066327699062454848);
     DK(KP415415013, +0.415415013001886425529274149229623203524004910);
     DK(KP841253532, +0.841253532831181168861811648919367717513292498);
     DK(KP989821441, +0.989821441880932732376092037776718787376519372);
     DK(KP909631995, +0.909631995354518371411715383079028460060241051);
     DK(KP281732556, +0.281732556841429697711417915346616899035777899);
     DK(KP540640817, +0.540640817455597582107635954318691695431770608);
     DK(KP755749574, +0.755749574354258283774035843972344420179717445);
     INT i;
     for (i = v; i > 0; i = i - 1, ri = ri + ivs, ii = ii + ivs, ro = ro + ovs, io = io + ovs, MAKE_VOLATILE_STRIDE(is), MAKE_VOLATILE_STRIDE(os)) {
	  E T1, TM, T4, TG, Tk, TR, Tw, TN, T7, TK, Ta, TH, Tn, TQ, Td;
	  E TJ, Tq, TO, Tt, TP, Tg, TI;
	  {
	       E T2, T3, Ti, Tj;
	       T1 = ri[0];
	       TM = ii[0];
	       T2 = ri[WS(is, 1)];
	       T3 = ri[WS(is, 10)];
	       T4 = T2 + T3;
	       TG = T3 - T2;
	       Ti = ii[WS(is, 1)];
	       Tj = ii[WS(is, 10)];
	       Tk = Ti - Tj;
	       TR = Ti + Tj;
	       {
		    E Tu, Tv, T5, T6;
		    Tu = ii[WS(is, 2)];
		    Tv = ii[WS(is, 9)];
		    Tw = Tu - Tv;
		    TN = Tu + Tv;
		    T5 = ri[WS(is, 2)];
		    T6 = ri[WS(is, 9)];
		    T7 = T5 + T6;
		    TK = T6 - T5;
	       }
	  }
	  {
	       E T8, T9, To, Tp;
	       T8 = ri[WS(is, 3)];
	       T9 = ri[WS(is, 8)];
	       Ta = T8 + T9;
	       TH = T9 - T8;
	       {
		    E Tl, Tm, Tb, Tc;
		    Tl = ii[WS(is, 3)];
		    Tm = ii[WS(is, 8)];
		    Tn = Tl - Tm;
		    TQ = Tl + Tm;
		    Tb = ri[WS(is, 4)];
		    Tc = ri[WS(is, 7)];
		    Td = Tb + Tc;
		    TJ = Tc - Tb;
	       }
	       To = ii[WS(is, 4)];
	       Tp = ii[WS(is, 7)];
	       Tq = To - Tp;
	       TO = To + Tp;
	       {
		    E Tr, Ts, Te, Tf;
		    Tr = ii[WS(is, 5)];
		    Ts = ii[WS(is, 6)];
		    Tt = Tr - Ts;
		    TP = Tr + Ts;
		    Te = ri[WS(is, 5)];
		    Tf = ri[WS(is, 6)];
		    Tg = Te + Tf;
		    TI = Tf - Te;
	       }
	  }
	  {
	       E Tx, Th, TZ, T10;
	       ro[0] = T1 + T4 + T7 + Ta + Td + Tg;
	       io[0] = TM + TR + TN + TQ + TO + TP;
	       Tx = FMA(KP755749574, Tk, KP540640817 * Tn) + FNMS(KP909631995, Tt, KP281732556 * Tq) - (KP989821441 * Tw);
	       Th = FMA(KP841253532, Ta, T1) + FNMS(KP959492973, Td, KP415415013 * Tg) + FNMA(KP142314838, T7, KP654860733 * T4);
	       ro[WS(os, 7)] = Th - Tx;
	       ro[WS(os, 4)] = Th + Tx;
	       TZ = FMA(KP755749574, TG, KP540640817 * TH) + FNMS(KP909631995, TI, KP281732556 * TJ) - (KP989821441 * TK);
	       T10 = FMA(KP841253532, TQ, TM) + FNMS(KP959492973, TO, KP415415013 * TP) + FNMA(KP142314838, TN, KP654860733 * TR);
	       io[WS(os, 4)] = TZ + T10;
	       io[WS(os, 7)] = T10 - TZ;
	       {
		    E TX, TY, Tz, Ty;
		    TX = FMA(KP909631995, TG, KP755749574 * TK) + FNMA(KP540640817, TI, KP989821441 * TJ) - (KP281732556 * TH);
		    TY = FMA(KP415415013, TR, TM) + FNMS(KP142314838, TO, KP841253532 * TP) + FNMA(KP959492973, TQ, KP654860733 * TN);
		    io[WS(os, 2)] = TX + TY;
		    io[WS(os, 9)] = TY - TX;
		    Tz = FMA(KP909631995, Tk, KP755749574 * Tw) + FNMA(KP540640817, Tt, KP989821441 * Tq) - (KP281732556 * Tn);
		    Ty = FMA(KP415415013, T4, T1) + FNMS(KP142314838, Td, KP841253532 * Tg) + FNMA(KP959492973, Ta, KP654860733 * T7);
		    ro[WS(os, 9)] = Ty - Tz;
		    ro[WS(os, 2)] = Ty + Tz;
	       }
	  }
	  {
	       E TB, TA, TT, TU;
	       TB = FMA(KP540640817, Tk, KP909631995 * Tw) + FMA(KP989821441, Tn, KP755749574 * Tq) + (KP281732556 * Tt);
	       TA = FMA(KP841253532, T4, T1) + FNMS(KP959492973, Tg, KP415415013 * T7) + FNMA(KP654860733, Td, KP142314838 * Ta);
	       ro[WS(os, 10)] = TA - TB;
	       ro[WS(os, 1)] = TA + TB;
	       {
		    E TV, TW, TD, TC;
		    TV = FMA(KP540640817, TG, KP909631995 * TK) + FMA(KP989821441, TH, KP755749574 * TJ) + (KP281732556 * TI);
		    TW = FMA(KP841253532, TR, TM) + FNMS(KP959492973, TP, KP415415013 * TN) + FNMA(KP654860733, TO, KP142314838 * TQ);
		    io[WS(os, 1)] = TV + TW;
		    io[WS(os, 10)] = TW - TV;
		    TD = FMA(KP989821441, Tk, KP540640817 * Tq) + FNMS(KP909631995, Tn, KP755749574 * Tt) - (KP281732556 * Tw);
		    TC = FMA(KP415415013, Ta, T1) + FNMS(KP654860733, Tg, KP841253532 * Td) + FNMA(KP959492973, T7, KP142314838 * T4);
		    ro[WS(os, 8)] = TC - TD;
		    ro[WS(os, 3)] = TC + TD;
	       }
	       TT = FMA(KP989821441, TG, KP540640817 * TJ) + FNMS(KP909631995, TH, KP755749574 * TI) - (KP281732556 * TK);
	       TU = FMA(KP415415013, TQ, TM) + FNMS(KP654860733, TP, KP841253532 * TO) + FNMA(KP959492973, TN, KP142314838 * TR);
	       io[WS(os, 3)] = TT + TU;
	       io[WS(os, 8)] = TU - TT;
	       {
		    E TL, TS, TF, TE;
		    TL = FMA(KP281732556, TG, KP755749574 * TH) + FNMS(KP909631995, TJ, KP989821441 * TI) - (KP540640817 * TK);
		    TS = FMA(KP841253532, TN, TM) + FNMS(KP142314838, TP, KP415415013 * TO) + FNMA(KP654860733, TQ, KP959492973 * TR);
		    io[WS(os, 5)] = TL + TS;
		    io[WS(os, 6)] = TS - TL;
		    TF = FMA(KP281732556, Tk, KP755749574 * Tn) + FNMS(KP909631995, Tq, KP989821441 * Tt) - (KP540640817 * Tw);
		    TE = FMA(KP841253532, T7, T1) + FNMS(KP142314838, Tg, KP415415013 * Td) + FNMA(KP654860733, Ta, KP959492973 * T4);
		    ro[WS(os, 6)] = TE - TF;
		    ro[WS(os, 5)] = TE + TF;
	       }
	  }
     }
}
Exemplo n.º 20
0
static void r2cf_14(R *R0, R *R1, R *Cr, R *Ci, stride rs, stride csr, stride csi, INT v, INT ivs, INT ovs)
{
     DK(KP900968867, +0.900968867902419126236102319507445051165919162);
     DK(KP222520933, +0.222520933956314404288902564496794759466355569);
     DK(KP623489801, +0.623489801858733530525004884004239810632274731);
     DK(KP433883739, +0.433883739117558120475768332848358754609990728);
     DK(KP974927912, +0.974927912181823607018131682993931217232785801);
     DK(KP781831482, +0.781831482468029808708444526674057750232334519);
     {
	  INT i;
	  for (i = v; i > 0; i = i - 1, R0 = R0 + ivs, R1 = R1 + ivs, Cr = Cr + ovs, Ci = Ci + ovs, MAKE_VOLATILE_STRIDE(rs), MAKE_VOLATILE_STRIDE(csr), MAKE_VOLATILE_STRIDE(csi)) {
	       E T3, TB, T6, Tv, Tn, Ts, Tk, Tt, Td, Ty, T9, Tw, Tg, Tz, T1;
	       E T2;
	       T1 = R0[0];
	       T2 = R1[WS(rs, 3)];
	       T3 = T1 - T2;
	       TB = T1 + T2;
	       {
		    E T4, T5, Tl, Tm;
		    T4 = R0[WS(rs, 2)];
		    T5 = R1[WS(rs, 5)];
		    T6 = T4 - T5;
		    Tv = T4 + T5;
		    Tl = R0[WS(rs, 6)];
		    Tm = R1[WS(rs, 2)];
		    Tn = Tl - Tm;
		    Ts = Tl + Tm;
	       }
	       {
		    E Ti, Tj, Tb, Tc;
		    Ti = R0[WS(rs, 1)];
		    Tj = R1[WS(rs, 4)];
		    Tk = Ti - Tj;
		    Tt = Ti + Tj;
		    Tb = R0[WS(rs, 3)];
		    Tc = R1[WS(rs, 6)];
		    Td = Tb - Tc;
		    Ty = Tb + Tc;
	       }
	       {
		    E T7, T8, Te, Tf;
		    T7 = R0[WS(rs, 5)];
		    T8 = R1[WS(rs, 1)];
		    T9 = T7 - T8;
		    Tw = T7 + T8;
		    Te = R0[WS(rs, 4)];
		    Tf = R1[0];
		    Tg = Te - Tf;
		    Tz = Te + Tf;
	       }
	       {
		    E Tp, Tr, Tq, Ta, To, Th;
		    Tp = Tn - Tk;
		    Tr = Tg - Td;
		    Tq = T9 - T6;
		    Ci[WS(csi, 1)] = FMA(KP781831482, Tp, KP974927912 * Tq) + (KP433883739 * Tr);
		    Ci[WS(csi, 5)] = FMA(KP433883739, Tq, KP781831482 * Tr) - (KP974927912 * Tp);
		    Ci[WS(csi, 3)] = FMA(KP433883739, Tp, KP974927912 * Tr) - (KP781831482 * Tq);
		    Ta = T6 + T9;
		    To = Tk + Tn;
		    Th = Td + Tg;
		    Cr[WS(csr, 3)] = FMA(KP623489801, Ta, T3) + FNMA(KP222520933, Th, KP900968867 * To);
		    Cr[WS(csr, 7)] = T3 + To + Ta + Th;
		    Cr[WS(csr, 1)] = FMA(KP623489801, To, T3) + FNMA(KP900968867, Th, KP222520933 * Ta);
		    Cr[WS(csr, 5)] = FMA(KP623489801, Th, T3) + FNMA(KP900968867, Ta, KP222520933 * To);
	       }
	       {
		    E Tu, TA, Tx, TC, TE, TD;
		    Tu = Ts - Tt;
		    TA = Ty - Tz;
		    Tx = Tv - Tw;
		    Ci[WS(csi, 2)] = FMA(KP974927912, Tu, KP433883739 * Tx) + (KP781831482 * TA);
		    Ci[WS(csi, 6)] = FMA(KP974927912, Tx, KP433883739 * TA) - (KP781831482 * Tu);
		    Ci[WS(csi, 4)] = FNMS(KP781831482, Tx, KP974927912 * TA) - (KP433883739 * Tu);
		    TC = Tt + Ts;
		    TE = Tv + Tw;
		    TD = Ty + Tz;
		    Cr[WS(csr, 6)] = FMA(KP623489801, TC, TB) + FNMA(KP900968867, TD, KP222520933 * TE);
		    Cr[WS(csr, 2)] = FMA(KP623489801, TD, TB) + FNMA(KP900968867, TE, KP222520933 * TC);
		    Cr[WS(csr, 4)] = FMA(KP623489801, TE, TB) + FNMA(KP222520933, TD, KP900968867 * TC);
		    Cr[0] = TB + TC + TE + TD;
	       }
	  }
     }
}
Exemplo n.º 21
0
Arquivo: n1_7.c Projeto: bambang/vsipl
static void n1_7(const R *ri, const R *ii, R *ro, R *io, stride is, stride os, INT v, INT ivs, INT ovs)
{
     DK(KP222520933, +0.222520933956314404288902564496794759466355569);
     DK(KP900968867, +0.900968867902419126236102319507445051165919162);
     DK(KP623489801, +0.623489801858733530525004884004239810632274731);
     DK(KP433883739, +0.433883739117558120475768332848358754609990728);
     DK(KP781831482, +0.781831482468029808708444526674057750232334519);
     DK(KP974927912, +0.974927912181823607018131682993931217232785801);
     INT i;
     for (i = v; i > 0; i = i - 1, ri = ri + ivs, ii = ii + ivs, ro = ro + ovs, io = io + ovs, MAKE_VOLATILE_STRIDE(is), MAKE_VOLATILE_STRIDE(os)) {
	  E T1, Tu, T4, Tq, Te, Tx, T7, Ts, Tk, Tv, Ta, Tr, Th, Tw;
	  T1 = ri[0];
	  Tu = ii[0];
	  {
	       E T2, T3, Tc, Td;
	       T2 = ri[WS(is, 1)];
	       T3 = ri[WS(is, 6)];
	       T4 = T2 + T3;
	       Tq = T3 - T2;
	       Tc = ii[WS(is, 1)];
	       Td = ii[WS(is, 6)];
	       Te = Tc - Td;
	       Tx = Tc + Td;
	  }
	  {
	       E T5, T6, Ti, Tj;
	       T5 = ri[WS(is, 2)];
	       T6 = ri[WS(is, 5)];
	       T7 = T5 + T6;
	       Ts = T6 - T5;
	       Ti = ii[WS(is, 2)];
	       Tj = ii[WS(is, 5)];
	       Tk = Ti - Tj;
	       Tv = Ti + Tj;
	  }
	  {
	       E T8, T9, Tf, Tg;
	       T8 = ri[WS(is, 3)];
	       T9 = ri[WS(is, 4)];
	       Ta = T8 + T9;
	       Tr = T9 - T8;
	       Tf = ii[WS(is, 3)];
	       Tg = ii[WS(is, 4)];
	       Th = Tf - Tg;
	       Tw = Tf + Tg;
	  }
	  ro[0] = T1 + T4 + T7 + Ta;
	  io[0] = Tu + Tx + Tv + Tw;
	  {
	       E Tl, Tb, TB, TC;
	       Tl = FNMS(KP781831482, Th, KP974927912 * Te) - (KP433883739 * Tk);
	       Tb = FMA(KP623489801, Ta, T1) + FNMA(KP900968867, T7, KP222520933 * T4);
	       ro[WS(os, 5)] = Tb - Tl;
	       ro[WS(os, 2)] = Tb + Tl;
	       TB = FNMS(KP781831482, Tr, KP974927912 * Tq) - (KP433883739 * Ts);
	       TC = FMA(KP623489801, Tw, Tu) + FNMA(KP900968867, Tv, KP222520933 * Tx);
	       io[WS(os, 2)] = TB + TC;
	       io[WS(os, 5)] = TC - TB;
	  }
	  {
	       E Tn, Tm, Tz, TA;
	       Tn = FMA(KP781831482, Te, KP974927912 * Tk) + (KP433883739 * Th);
	       Tm = FMA(KP623489801, T4, T1) + FNMA(KP900968867, Ta, KP222520933 * T7);
	       ro[WS(os, 6)] = Tm - Tn;
	       ro[WS(os, 1)] = Tm + Tn;
	       Tz = FMA(KP781831482, Tq, KP974927912 * Ts) + (KP433883739 * Tr);
	       TA = FMA(KP623489801, Tx, Tu) + FNMA(KP900968867, Tw, KP222520933 * Tv);
	       io[WS(os, 1)] = Tz + TA;
	       io[WS(os, 6)] = TA - Tz;
	  }
	  {
	       E Tp, To, Tt, Ty;
	       Tp = FMA(KP433883739, Te, KP974927912 * Th) - (KP781831482 * Tk);
	       To = FMA(KP623489801, T7, T1) + FNMA(KP222520933, Ta, KP900968867 * T4);
	       ro[WS(os, 4)] = To - Tp;
	       ro[WS(os, 3)] = To + Tp;
	       Tt = FMA(KP433883739, Tq, KP974927912 * Tr) - (KP781831482 * Ts);
	       Ty = FMA(KP623489801, Tv, Tu) + FNMA(KP222520933, Tw, KP900968867 * Tx);
	       io[WS(os, 3)] = Tt + Ty;
	       io[WS(os, 4)] = Ty - Tt;
	  }
     }
}
Exemplo n.º 22
0
static void r2hcII_15(const R *I, R *ro, R *io, stride is, stride ros, stride ios, int v, int ivs, int ovs)
{
     DK(KP500000000, +0.500000000000000000000000000000000000000000000);
     DK(KP866025403, +0.866025403784438646763723170752936183471402627);
     DK(KP809016994, +0.809016994374947424102293417182819058860154590);
     DK(KP309016994, +0.309016994374947424102293417182819058860154590);
     DK(KP250000000, +0.250000000000000000000000000000000000000000000);
     DK(KP559016994, +0.559016994374947424102293417182819058860154590);
     DK(KP587785252, +0.587785252292473129168705954639072768597652438);
     DK(KP951056516, +0.951056516295153572116439333379382143405698634);
     int i;
     for (i = v; i > 0; i = i - 1, I = I + ivs, ro = ro + ovs, io = io + ovs) {
	  E T1, T2, Tx, TR, TE, T7, TD, Th, Tm, Tr, TQ, TA, TB, Tf, Te;
	  E Tu, TS, Td, TH, TO;
	  T1 = I[WS(is, 10)];
	  {
	       E T3, Tv, T6, Tw, T4, T5;
	       T2 = I[WS(is, 4)];
	       T3 = I[WS(is, 1)];
	       Tv = T2 + T3;
	       T4 = I[WS(is, 7)];
	       T5 = I[WS(is, 13)];
	       T6 = T4 + T5;
	       Tw = T4 - T5;
	       Tx = FMA(KP951056516, Tv, KP587785252 * Tw);
	       TR = FNMS(KP587785252, Tv, KP951056516 * Tw);
	       TE = KP559016994 * (T3 - T6);
	       T7 = T3 + T6;
	       TD = KP250000000 * T7;
	  }
	  {
	       E Ti, Tl, Tj, Tk, Tp, Tq;
	       Th = I[0];
	       Ti = I[WS(is, 9)];
	       Tl = I[WS(is, 12)];
	       Tj = I[WS(is, 3)];
	       Tk = I[WS(is, 6)];
	       Tp = Tk + Ti;
	       Tq = Tl + Tj;
	       Tm = Ti + Tj - (Tk + Tl);
	       Tr = FMA(KP951056516, Tp, KP587785252 * Tq);
	       TQ = FNMS(KP951056516, Tq, KP587785252 * Tp);
	       TA = FMA(KP250000000, Tm, Th);
	       TB = KP559016994 * (Tl + Ti - (Tk + Tj));
	  }
	  {
	       E T9, Tt, Tc, Ts, Ta, Tb, TG;
	       Tf = I[WS(is, 5)];
	       T9 = I[WS(is, 14)];
	       Te = I[WS(is, 11)];
	       Tt = T9 + Te;
	       Ta = I[WS(is, 2)];
	       Tb = I[WS(is, 8)];
	       Tc = Ta + Tb;
	       Ts = Ta - Tb;
	       Tu = FNMS(KP951056516, Tt, KP587785252 * Ts);
	       TS = FMA(KP951056516, Ts, KP587785252 * Tt);
	       Td = T9 + Tc;
	       TG = KP559016994 * (T9 - Tc);
	       TH = FNMS(KP309016994, Te, TG) + FNMA(KP250000000, Td, Tf);
	       TO = FMS(KP809016994, Te, Tf) + FNMA(KP250000000, Td, TG);
	  }
	  {
	       E Tn, T8, Tg, To;
	       Tn = Th - Tm;
	       T8 = T1 + T2 - T7;
	       Tg = Td - Te - Tf;
	       To = T8 + Tg;
	       io[WS(ios, 2)] = KP866025403 * (T8 - Tg);
	       ro[WS(ros, 2)] = FNMS(KP500000000, To, Tn);
	       ro[WS(ros, 7)] = Tn + To;
	  }
	  {
	       E TM, TX, TT, TV, TP, TU, TN, TW;
	       TM = TB + TA;
	       TX = KP866025403 * (TR + TS);
	       TT = TR - TS;
	       TV = FMS(KP500000000, TT, TQ);
	       TN = T1 + TE + FNMS(KP809016994, T2, TD);
	       TP = TN + TO;
	       TU = KP866025403 * (TO - TN);
	       ro[WS(ros, 1)] = TM + TP;
	       io[WS(ios, 1)] = TQ + TT;
	       io[WS(ios, 6)] = TU - TV;
	       io[WS(ios, 3)] = TU + TV;
	       TW = FNMS(KP500000000, TP, TM);
	       ro[WS(ros, 3)] = TW - TX;
	       ro[WS(ros, 6)] = TW + TX;
	  }
	  {
	       E Tz, TC, Ty, TK, TI, TL, TF, TJ;
	       Tz = KP866025403 * (Tx + Tu);
	       TC = TA - TB;
	       Ty = Tu - Tx;
	       TK = FMS(KP500000000, Ty, Tr);
	       TF = FMA(KP309016994, T2, T1) + TD - TE;
	       TI = TF + TH;
	       TL = KP866025403 * (TH - TF);
	       io[WS(ios, 4)] = Tr + Ty;
	       ro[WS(ros, 4)] = TC + TI;
	       io[WS(ios, 5)] = TK - TL;
	       io[0] = TK + TL;
	       TJ = FNMS(KP500000000, TI, TC);
	       ro[0] = Tz + TJ;
	       ro[WS(ros, 5)] = TJ - Tz;
	  }
     }
}