本文整理汇总了C++中VBYI函数的典型用法代码示例。如果您正苦于以下问题:C++ VBYI函数的具体用法?C++ VBYI怎么用?C++ VBYI使用的例子?那么, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了VBYI函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: t1fv_6
static void t1fv_6(R *ri, R *ii, const R *W, stride rs, INT mb, INT me, INT ms)
{
DVK(KP500000000, +0.500000000000000000000000000000000000000000000);
DVK(KP866025403, +0.866025403784438646763723170752936183471402627);
{
INT m;
R *x;
x = ri;
for (m = mb, W = W + (mb * ((TWVL / VL) * 10)); m < me; m = m + VL, x = x + (VL * ms), W = W + (TWVL * 10), MAKE_VOLATILE_STRIDE(6, rs)) {
V T4, Ti, Te, Tk, T9, Tj, T1, T3, T2;
T1 = LD(&(x[0]), ms, &(x[0]));
T2 = LD(&(x[WS(rs, 3)]), ms, &(x[WS(rs, 1)]));
T3 = BYTWJ(&(W[TWVL * 4]), T2);
T4 = VSUB(T1, T3);
Ti = VADD(T1, T3);
{
V Tb, Td, Ta, Tc;
Ta = LD(&(x[WS(rs, 4)]), ms, &(x[0]));
Tb = BYTWJ(&(W[TWVL * 6]), Ta);
Tc = LD(&(x[WS(rs, 1)]), ms, &(x[WS(rs, 1)]));
Td = BYTWJ(&(W[0]), Tc);
Te = VSUB(Tb, Td);
Tk = VADD(Tb, Td);
}
{
V T6, T8, T5, T7;
T5 = LD(&(x[WS(rs, 2)]), ms, &(x[0]));
T6 = BYTWJ(&(W[TWVL * 2]), T5);
T7 = LD(&(x[WS(rs, 5)]), ms, &(x[WS(rs, 1)]));
T8 = BYTWJ(&(W[TWVL * 8]), T7);
T9 = VSUB(T6, T8);
Tj = VADD(T6, T8);
}
{
V Th, Tf, Tg, Tn, Tl, Tm;
Th = VBYI(VMUL(LDK(KP866025403), VSUB(Te, T9)));
Tf = VADD(T9, Te);
Tg = VFNMS(LDK(KP500000000), Tf, T4);
ST(&(x[WS(rs, 3)]), VADD(T4, Tf), ms, &(x[WS(rs, 1)]));
ST(&(x[WS(rs, 1)]), VADD(Tg, Th), ms, &(x[WS(rs, 1)]));
ST(&(x[WS(rs, 5)]), VSUB(Tg, Th), ms, &(x[WS(rs, 1)]));
Tn = VBYI(VMUL(LDK(KP866025403), VSUB(Tk, Tj)));
Tl = VADD(Tj, Tk);
Tm = VFNMS(LDK(KP500000000), Tl, Ti);
ST(&(x[0]), VADD(Ti, Tl), ms, &(x[0]));
ST(&(x[WS(rs, 4)]), VADD(Tm, Tn), ms, &(x[0]));
ST(&(x[WS(rs, 2)]), VSUB(Tm, Tn), ms, &(x[0]));
}
}
}
VLEAVE();
}
示例2: n1bv_7
static void n1bv_7(const R *ri, const R *ii, R *ro, R *io, stride is, stride os, INT v, INT ivs, INT ovs)
{
DVK(KP222520933, +0.222520933956314404288902564496794759466355569);
DVK(KP900968867, +0.900968867902419126236102319507445051165919162);
DVK(KP623489801, +0.623489801858733530525004884004239810632274731);
DVK(KP433883739, +0.433883739117558120475768332848358754609990728);
DVK(KP781831482, +0.781831482468029808708444526674057750232334519);
DVK(KP974927912, +0.974927912181823607018131682993931217232785801);
{
INT i;
const R *xi;
R *xo;
xi = ii;
xo = io;
for (i = v; i > 0; i = i - VL, xi = xi + (VL * ivs), xo = xo + (VL * ovs), MAKE_VOLATILE_STRIDE(is), MAKE_VOLATILE_STRIDE(os)) {
V Tb, T9, Tc, T3, Te, T6, Td, T7, T8, Ti, Tj;
Tb = LD(&(xi[0]), ivs, &(xi[0]));
T7 = LD(&(xi[WS(is, 2)]), ivs, &(xi[0]));
T8 = LD(&(xi[WS(is, 5)]), ivs, &(xi[WS(is, 1)]));
T9 = VSUB(T7, T8);
Tc = VADD(T7, T8);
{
V T1, T2, T4, T5;
T1 = LD(&(xi[WS(is, 1)]), ivs, &(xi[WS(is, 1)]));
T2 = LD(&(xi[WS(is, 6)]), ivs, &(xi[0]));
T3 = VSUB(T1, T2);
Te = VADD(T1, T2);
T4 = LD(&(xi[WS(is, 3)]), ivs, &(xi[WS(is, 1)]));
T5 = LD(&(xi[WS(is, 4)]), ivs, &(xi[0]));
T6 = VSUB(T4, T5);
Td = VADD(T4, T5);
}
ST(&(xo[0]), VADD(Tb, VADD(Te, VADD(Tc, Td))), ovs, &(xo[0]));
Ti = VBYI(VFNMS(LDK(KP781831482), T6, VFNMS(LDK(KP433883739), T9, VMUL(LDK(KP974927912), T3))));
Tj = VFMA(LDK(KP623489801), Td, VFNMS(LDK(KP900968867), Tc, VFNMS(LDK(KP222520933), Te, Tb)));
ST(&(xo[WS(os, 2)]), VADD(Ti, Tj), ovs, &(xo[0]));
ST(&(xo[WS(os, 5)]), VSUB(Tj, Ti), ovs, &(xo[WS(os, 1)]));
{
V Ta, Tf, Tg, Th;
Ta = VBYI(VFMA(LDK(KP433883739), T3, VFNMS(LDK(KP781831482), T9, VMUL(LDK(KP974927912), T6))));
Tf = VFMA(LDK(KP623489801), Tc, VFNMS(LDK(KP222520933), Td, VFNMS(LDK(KP900968867), Te, Tb)));
ST(&(xo[WS(os, 3)]), VADD(Ta, Tf), ovs, &(xo[WS(os, 1)]));
ST(&(xo[WS(os, 4)]), VSUB(Tf, Ta), ovs, &(xo[0]));
Tg = VBYI(VFMA(LDK(KP781831482), T3, VFMA(LDK(KP974927912), T9, VMUL(LDK(KP433883739), T6))));
Th = VFMA(LDK(KP623489801), Te, VFNMS(LDK(KP900968867), Td, VFNMS(LDK(KP222520933), Tc, Tb)));
ST(&(xo[WS(os, 1)]), VADD(Tg, Th), ovs, &(xo[WS(os, 1)]));
ST(&(xo[WS(os, 6)]), VSUB(Th, Tg), ovs, &(xo[0]));
}
}
}
VLEAVE();
}
示例3: t1fv_5
static void t1fv_5(R *ri, R *ii, const R *W, stride rs, INT mb, INT me, INT ms)
{
DVK(KP250000000, +0.250000000000000000000000000000000000000000000);
DVK(KP559016994, +0.559016994374947424102293417182819058860154590);
DVK(KP587785252, +0.587785252292473129168705954639072768597652438);
DVK(KP951056516, +0.951056516295153572116439333379382143405698634);
{
INT m;
R *x;
x = ri;
for (m = mb, W = W + (mb * ((TWVL / VL) * 8)); m < me; m = m + VL, x = x + (VL * ms), W = W + (TWVL * 8), MAKE_VOLATILE_STRIDE(5, rs)) {
V Tc, Tg, Th, T5, Ta, Td;
Tc = LD(&(x[0]), ms, &(x[0]));
{
V T2, T9, T4, T7;
{
V T1, T8, T3, T6;
T1 = LD(&(x[WS(rs, 1)]), ms, &(x[WS(rs, 1)]));
T2 = BYTWJ(&(W[0]), T1);
T8 = LD(&(x[WS(rs, 3)]), ms, &(x[WS(rs, 1)]));
T9 = BYTWJ(&(W[TWVL * 4]), T8);
T3 = LD(&(x[WS(rs, 4)]), ms, &(x[0]));
T4 = BYTWJ(&(W[TWVL * 6]), T3);
T6 = LD(&(x[WS(rs, 2)]), ms, &(x[0]));
T7 = BYTWJ(&(W[TWVL * 2]), T6);
}
Tg = VSUB(T2, T4);
Th = VSUB(T7, T9);
T5 = VADD(T2, T4);
Ta = VADD(T7, T9);
Td = VADD(T5, Ta);
}
ST(&(x[0]), VADD(Tc, Td), ms, &(x[0]));
{
V Ti, Tj, Tf, Tk, Tb, Te;
Ti = VBYI(VFMA(LDK(KP951056516), Tg, VMUL(LDK(KP587785252), Th)));
Tj = VBYI(VFNMS(LDK(KP587785252), Tg, VMUL(LDK(KP951056516), Th)));
Tb = VMUL(LDK(KP559016994), VSUB(T5, Ta));
Te = VFNMS(LDK(KP250000000), Td, Tc);
Tf = VADD(Tb, Te);
Tk = VSUB(Te, Tb);
ST(&(x[WS(rs, 1)]), VSUB(Tf, Ti), ms, &(x[WS(rs, 1)]));
ST(&(x[WS(rs, 3)]), VSUB(Tk, Tj), ms, &(x[WS(rs, 1)]));
ST(&(x[WS(rs, 4)]), VADD(Ti, Tf), ms, &(x[0]));
ST(&(x[WS(rs, 2)]), VADD(Tj, Tk), ms, &(x[0]));
}
}
}
VLEAVE();
}
示例4: DVK
static const R *t1fv_6(R *ri, R *ii, const R *W, stride ios, INT m, INT dist)
{
DVK(KP500000000, +0.500000000000000000000000000000000000000000000);
DVK(KP866025403, +0.866025403784438646763723170752936183471402627);
INT i;
R *x;
x = ri;
for (i = m; i > 0; i = i - VL, x = x + (VL * dist), W = W + (TWVL * 10), MAKE_VOLATILE_STRIDE(ios)) {
V T4, Ti, Te, Tk, T9, Tj, T1, T3, T2;
T1 = LD(&(x[0]), dist, &(x[0]));
T2 = LD(&(x[WS(ios, 3)]), dist, &(x[WS(ios, 1)]));
T3 = BYTWJ(&(W[TWVL * 4]), T2);
T4 = VSUB(T1, T3);
Ti = VADD(T1, T3);
{
V Tb, Td, Ta, Tc;
Ta = LD(&(x[WS(ios, 4)]), dist, &(x[0]));
Tb = BYTWJ(&(W[TWVL * 6]), Ta);
Tc = LD(&(x[WS(ios, 1)]), dist, &(x[WS(ios, 1)]));
Td = BYTWJ(&(W[0]), Tc);
Te = VSUB(Tb, Td);
Tk = VADD(Tb, Td);
}
{
V T6, T8, T5, T7;
T5 = LD(&(x[WS(ios, 2)]), dist, &(x[0]));
T6 = BYTWJ(&(W[TWVL * 2]), T5);
T7 = LD(&(x[WS(ios, 5)]), dist, &(x[WS(ios, 1)]));
T8 = BYTWJ(&(W[TWVL * 8]), T7);
T9 = VSUB(T6, T8);
Tj = VADD(T6, T8);
}
{
V Th, Tf, Tg, Tn, Tl, Tm;
Th = VBYI(VMUL(LDK(KP866025403), VSUB(Te, T9)));
Tf = VADD(T9, Te);
Tg = VFNMS(LDK(KP500000000), Tf, T4);
ST(&(x[WS(ios, 3)]), VADD(T4, Tf), dist, &(x[WS(ios, 1)]));
ST(&(x[WS(ios, 1)]), VADD(Tg, Th), dist, &(x[WS(ios, 1)]));
ST(&(x[WS(ios, 5)]), VSUB(Tg, Th), dist, &(x[WS(ios, 1)]));
Tn = VBYI(VMUL(LDK(KP866025403), VSUB(Tk, Tj)));
Tl = VADD(Tj, Tk);
Tm = VFNMS(LDK(KP500000000), Tl, Ti);
ST(&(x[0]), VADD(Ti, Tl), dist, &(x[0]));
ST(&(x[WS(ios, 4)]), VADD(Tm, Tn), dist, &(x[0]));
ST(&(x[WS(ios, 2)]), VSUB(Tm, Tn), dist, &(x[0]));
}
}
return W;
}
示例5: t1buv_6
static void t1buv_6(R *ri, R *ii, const R *W, stride rs, INT mb, INT me, INT ms)
{
DVK(KP500000000, +0.500000000000000000000000000000000000000000000);
DVK(KP866025403, +0.866025403784438646763723170752936183471402627);
INT m;
R *x;
x = ii;
for (m = mb, W = W + (mb * ((TWVL / VL) * 10)); m < me; m = m + VL, x = x + (VL * ms), W = W + (TWVL * 10), MAKE_VOLATILE_STRIDE(rs)) {
V Tf, Ti, Ta, Tk, T5, Tj, Tc, Te, Td;
Tc = LD(&(x[0]), ms, &(x[0]));
Td = LD(&(x[WS(rs, 3)]), ms, &(x[WS(rs, 1)]));
Te = BYTW(&(W[TWVL * 4]), Td);
Tf = VSUB(Tc, Te);
Ti = VADD(Tc, Te);
{
V T7, T9, T6, T8;
T6 = LD(&(x[WS(rs, 4)]), ms, &(x[0]));
T7 = BYTW(&(W[TWVL * 6]), T6);
T8 = LD(&(x[WS(rs, 1)]), ms, &(x[WS(rs, 1)]));
T9 = BYTW(&(W[0]), T8);
Ta = VSUB(T7, T9);
Tk = VADD(T7, T9);
}
{
V T2, T4, T1, T3;
T1 = LD(&(x[WS(rs, 2)]), ms, &(x[0]));
T2 = BYTW(&(W[TWVL * 2]), T1);
T3 = LD(&(x[WS(rs, 5)]), ms, &(x[WS(rs, 1)]));
T4 = BYTW(&(W[TWVL * 8]), T3);
T5 = VSUB(T2, T4);
Tj = VADD(T2, T4);
}
{
V Tb, Tg, Th, Tn, Tl, Tm;
Tb = VBYI(VMUL(LDK(KP866025403), VSUB(T5, Ta)));
Tg = VADD(T5, Ta);
Th = VFNMS(LDK(KP500000000), Tg, Tf);
ST(&(x[WS(rs, 1)]), VADD(Tb, Th), ms, &(x[WS(rs, 1)]));
ST(&(x[WS(rs, 3)]), VADD(Tf, Tg), ms, &(x[WS(rs, 1)]));
ST(&(x[WS(rs, 5)]), VSUB(Th, Tb), ms, &(x[WS(rs, 1)]));
Tn = VBYI(VMUL(LDK(KP866025403), VSUB(Tj, Tk)));
Tl = VADD(Tj, Tk);
Tm = VFNMS(LDK(KP500000000), Tl, Ti);
ST(&(x[WS(rs, 2)]), VSUB(Tm, Tn), ms, &(x[0]));
ST(&(x[0]), VADD(Ti, Tl), ms, &(x[0]));
ST(&(x[WS(rs, 4)]), VADD(Tn, Tm), ms, &(x[0]));
}
}
}
示例6: t1fuv_4
static void t1fuv_4(R *ri, R *ii, const R *W, stride rs, INT mb, INT me, INT ms)
{
{
INT m;
R *x;
x = ri;
for (m = mb, W = W + (mb * ((TWVL / VL) * 6)); m < me; m = m + VL, x = x + (VL * ms), W = W + (TWVL * 6), MAKE_VOLATILE_STRIDE(4, rs)) {
V T1, T8, T3, T6, T7, T2, T5;
T1 = LD(&(x[0]), ms, &(x[0]));
T7 = LD(&(x[WS(rs, 3)]), ms, &(x[WS(rs, 1)]));
T8 = BYTWJ(&(W[TWVL * 4]), T7);
T2 = LD(&(x[WS(rs, 2)]), ms, &(x[0]));
T3 = BYTWJ(&(W[TWVL * 2]), T2);
T5 = LD(&(x[WS(rs, 1)]), ms, &(x[WS(rs, 1)]));
T6 = BYTWJ(&(W[0]), T5);
{
V T4, T9, Ta, Tb;
T4 = VSUB(T1, T3);
T9 = VBYI(VSUB(T6, T8));
ST(&(x[WS(rs, 1)]), VSUB(T4, T9), ms, &(x[WS(rs, 1)]));
ST(&(x[WS(rs, 3)]), VADD(T4, T9), ms, &(x[WS(rs, 1)]));
Ta = VADD(T1, T3);
Tb = VADD(T6, T8);
ST(&(x[WS(rs, 2)]), VSUB(Ta, Tb), ms, &(x[0]));
ST(&(x[0]), VADD(Ta, Tb), ms, &(x[0]));
}
}
}
VLEAVE();
}
示例7: DVK
static const R *t1fv_3(R *ri, R *ii, const R *W, stride ios, int m, int dist)
{
DVK(KP866025403, +0.866025403784438646763723170752936183471402627);
DVK(KP500000000, +0.500000000000000000000000000000000000000000000);
int i;
R *x;
x = ri;
BEGIN_SIMD();
for (i = m; i > 0; i = i - VL, x = x + (VL * dist), W = W + (TWVL * 4)) {
V T1, T3, T5, T6, T2, T4, T7, T8;
T1 = LD(&(x[0]), dist, &(x[0]));
T2 = LD(&(x[WS(ios, 1)]), dist, &(x[WS(ios, 1)]));
T3 = BYTWJ(&(W[0]), T2);
T4 = LD(&(x[WS(ios, 2)]), dist, &(x[0]));
T5 = BYTWJ(&(W[TWVL * 2]), T4);
T6 = VADD(T3, T5);
ST(&(x[0]), VADD(T1, T6), dist, &(x[0]));
T7 = VFNMS(LDK(KP500000000), T6, T1);
T8 = VBYI(VMUL(LDK(KP866025403), VSUB(T5, T3)));
ST(&(x[WS(ios, 2)]), VSUB(T7, T8), dist, &(x[0]));
ST(&(x[WS(ios, 1)]), VADD(T7, T8), dist, &(x[WS(ios, 1)]));
}
END_SIMD();
return W;
}
示例8: n1bv_4
static void n1bv_4(const R *ri, const R *ii, R *ro, R *io, stride is, stride os, INT v, INT ivs, INT ovs)
{
INT i;
const R *xi;
R *xo;
xi = ii;
xo = io;
for (i = v; i > 0; i = i - VL, xi = xi + (VL * ivs), xo = xo + (VL * ovs), MAKE_VOLATILE_STRIDE(is), MAKE_VOLATILE_STRIDE(os)) {
V T3, T7, T6, T8;
{
V T1, T2, T4, T5;
T1 = LD(&(xi[0]), ivs, &(xi[0]));
T2 = LD(&(xi[WS(is, 2)]), ivs, &(xi[0]));
T3 = VSUB(T1, T2);
T7 = VADD(T1, T2);
T4 = LD(&(xi[WS(is, 1)]), ivs, &(xi[WS(is, 1)]));
T5 = LD(&(xi[WS(is, 3)]), ivs, &(xi[WS(is, 1)]));
T6 = VBYI(VSUB(T4, T5));
T8 = VADD(T4, T5);
}
ST(&(xo[WS(os, 3)]), VSUB(T3, T6), ovs, &(xo[WS(os, 1)]));
ST(&(xo[0]), VADD(T7, T8), ovs, &(xo[0]));
ST(&(xo[WS(os, 1)]), VADD(T3, T6), ovs, &(xo[WS(os, 1)]));
ST(&(xo[WS(os, 2)]), VSUB(T7, T8), ovs, &(xo[0]));
}
}
示例9: n1fv_3
static void n1fv_3(const R *ri, const R *ii, R *ro, R *io, stride is, stride os, INT v, INT ivs, INT ovs)
{
DVK(KP500000000, +0.500000000000000000000000000000000000000000000);
DVK(KP866025403, +0.866025403784438646763723170752936183471402627);
{
INT i;
const R *xi;
R *xo;
xi = ri;
xo = ro;
for (i = v; i > 0; i = i - VL, xi = xi + (VL * ivs), xo = xo + (VL * ovs), MAKE_VOLATILE_STRIDE(is), MAKE_VOLATILE_STRIDE(os)) {
V T1, T4, T6, T2, T3, T5;
T1 = LD(&(xi[0]), ivs, &(xi[0]));
T2 = LD(&(xi[WS(is, 1)]), ivs, &(xi[WS(is, 1)]));
T3 = LD(&(xi[WS(is, 2)]), ivs, &(xi[0]));
T4 = VADD(T2, T3);
T6 = VBYI(VMUL(LDK(KP866025403), VSUB(T3, T2)));
ST(&(xo[0]), VADD(T1, T4), ovs, &(xo[0]));
T5 = VFNMS(LDK(KP500000000), T4, T1);
ST(&(xo[WS(os, 2)]), VSUB(T5, T6), ovs, &(xo[0]));
ST(&(xo[WS(os, 1)]), VADD(T5, T6), ovs, &(xo[WS(os, 1)]));
}
}
VLEAVE();
}
示例10: n2fv_4
static void n2fv_4(const R *ri, const R *ii, R *ro, R *io, stride is, stride os, INT v, INT ivs, INT ovs)
{
INT i;
const R *xi;
R *xo;
xi = ri;
xo = ro;
for (i = v; i > 0; i = i - VL, xi = xi + (VL * ivs), xo = xo + (VL * ovs), MAKE_VOLATILE_STRIDE(is), MAKE_VOLATILE_STRIDE(os)) {
V T3, T7, T6, T8;
{
V T1, T2, T4, T5;
T1 = LD(&(xi[0]), ivs, &(xi[0]));
T2 = LD(&(xi[WS(is, 2)]), ivs, &(xi[0]));
T3 = VSUB(T1, T2);
T7 = VADD(T1, T2);
T4 = LD(&(xi[WS(is, 1)]), ivs, &(xi[WS(is, 1)]));
T5 = LD(&(xi[WS(is, 3)]), ivs, &(xi[WS(is, 1)]));
T6 = VBYI(VSUB(T4, T5));
T8 = VADD(T4, T5);
}
{
V T9, Ta, Tb, Tc;
T9 = VSUB(T3, T6);
STM2(&(xo[2]), T9, ovs, &(xo[2]));
Ta = VADD(T7, T8);
STM2(&(xo[0]), Ta, ovs, &(xo[0]));
STN2(&(xo[0]), Ta, T9, ovs);
Tb = VADD(T3, T6);
STM2(&(xo[6]), Tb, ovs, &(xo[2]));
Tc = VSUB(T7, T8);
STM2(&(xo[4]), Tc, ovs, &(xo[0]));
STN2(&(xo[4]), Tc, Tb, ovs);
}
}
}
示例11: hc2cfdftv_4
static void hc2cfdftv_4(R *Rp, R *Ip, R *Rm, R *Im, const R *W, stride rs, INT mb, INT me, INT ms)
{
DVK(KP500000000, +0.500000000000000000000000000000000000000000000);
INT m;
for (m = mb, W = W + ((mb - 1) * ((TWVL / VL) * 6)); m < me; m = m + VL, Rp = Rp + (VL * ms), Ip = Ip + (VL * ms), Rm = Rm - (VL * ms), Im = Im - (VL * ms), W = W + (TWVL * 6), MAKE_VOLATILE_STRIDE(rs)) {
V T4, Tc, T9, Te, T1, T3, T2, Tb, T6, T8, T7, T5, Td, Tg, Th;
V Ta, Tf, Tk, Tl, Ti, Tj;
T1 = LD(&(Rp[0]), ms, &(Rp[0]));
T2 = LD(&(Rm[0]), -ms, &(Rm[0]));
T3 = VCONJ(T2);
T4 = VADD(T1, T3);
Tb = LDW(&(W[0]));
Tc = VZMULIJ(Tb, VSUB(T3, T1));
T6 = LD(&(Rp[WS(rs, 1)]), ms, &(Rp[WS(rs, 1)]));
T7 = LD(&(Rm[WS(rs, 1)]), -ms, &(Rm[WS(rs, 1)]));
T8 = VCONJ(T7);
T5 = LDW(&(W[TWVL * 2]));
T9 = VZMULJ(T5, VADD(T6, T8));
Td = LDW(&(W[TWVL * 4]));
Te = VZMULIJ(Td, VSUB(T8, T6));
Ta = VSUB(T4, T9);
Tf = VBYI(VSUB(Tc, Te));
Tg = VMUL(LDK(KP500000000), VSUB(Ta, Tf));
Th = VCONJ(VMUL(LDK(KP500000000), VADD(Ta, Tf)));
ST(&(Rp[WS(rs, 1)]), Tg, ms, &(Rp[WS(rs, 1)]));
ST(&(Rm[0]), Th, -ms, &(Rm[0]));
Ti = VADD(T4, T9);
Tj = VADD(Tc, Te);
Tk = VCONJ(VMUL(LDK(KP500000000), VSUB(Ti, Tj)));
Tl = VMUL(LDK(KP500000000), VADD(Ti, Tj));
ST(&(Rm[WS(rs, 1)]), Tk, -ms, &(Rm[WS(rs, 1)]));
ST(&(Rp[0]), Tl, ms, &(Rp[0]));
}
}
示例12: t1fv_3
static void t1fv_3(R *ri, R *ii, const R *W, stride rs, INT mb, INT me, INT ms)
{
DVK(KP866025403, +0.866025403784438646763723170752936183471402627);
DVK(KP500000000, +0.500000000000000000000000000000000000000000000);
{
INT m;
R *x;
x = ri;
for (m = mb, W = W + (mb * ((TWVL / VL) * 4)); m < me; m = m + VL, x = x + (VL * ms), W = W + (TWVL * 4), MAKE_VOLATILE_STRIDE(3, rs)) {
V T1, T3, T5, T6, T2, T4, T7, T8;
T1 = LD(&(x[0]), ms, &(x[0]));
T2 = LD(&(x[WS(rs, 1)]), ms, &(x[WS(rs, 1)]));
T3 = BYTWJ(&(W[0]), T2);
T4 = LD(&(x[WS(rs, 2)]), ms, &(x[0]));
T5 = BYTWJ(&(W[TWVL * 2]), T4);
T6 = VADD(T3, T5);
ST(&(x[0]), VADD(T1, T6), ms, &(x[0]));
T7 = VFNMS(LDK(KP500000000), T6, T1);
T8 = VBYI(VMUL(LDK(KP866025403), VSUB(T5, T3)));
ST(&(x[WS(rs, 2)]), VSUB(T7, T8), ms, &(x[0]));
ST(&(x[WS(rs, 1)]), VADD(T7, T8), ms, &(x[WS(rs, 1)]));
}
}
VLEAVE();
}
示例13: t3fv_4
static void t3fv_4(R *ri, R *ii, const R *W, stride rs, INT mb, INT me, INT ms)
{
INT m;
R *x;
x = ri;
for (m = mb, W = W + (mb * ((TWVL / VL) * 4)); m < me; m = m + VL, x = x + (VL * ms), W = W + (TWVL * 4), MAKE_VOLATILE_STRIDE(rs)) {
V T2, T3, T4;
T2 = LDW(&(W[0]));
T3 = LDW(&(W[TWVL * 2]));
T4 = VZMULJ(T2, T3);
{
V T1, Tb, T6, T9, Ta, T5, T8;
T1 = LD(&(x[0]), ms, &(x[0]));
Ta = LD(&(x[WS(rs, 3)]), ms, &(x[WS(rs, 1)]));
Tb = VZMULJ(T3, Ta);
T5 = LD(&(x[WS(rs, 2)]), ms, &(x[0]));
T6 = VZMULJ(T4, T5);
T8 = LD(&(x[WS(rs, 1)]), ms, &(x[WS(rs, 1)]));
T9 = VZMULJ(T2, T8);
{
V T7, Tc, Td, Te;
T7 = VSUB(T1, T6);
Tc = VBYI(VSUB(T9, Tb));
ST(&(x[WS(rs, 1)]), VSUB(T7, Tc), ms, &(x[WS(rs, 1)]));
ST(&(x[WS(rs, 3)]), VADD(T7, Tc), ms, &(x[WS(rs, 1)]));
Td = VADD(T1, T6);
Te = VADD(T9, Tb);
ST(&(x[WS(rs, 2)]), VSUB(Td, Te), ms, &(x[0]));
ST(&(x[0]), VADD(Td, Te), ms, &(x[0]));
}
}
}
}
示例14: n1bv_4
static void n1bv_4(const R *ri, const R *ii, R *ro, R *io, stride is, stride os, int v, int ivs, int ovs)
{
int i;
const R *xi;
R *xo;
xi = ii;
xo = io;
BEGIN_SIMD();
for (i = v; i > 0; i = i - VL, xi = xi + (VL * ivs), xo = xo + (VL * ovs)) {
V T3, T7, T6, T8;
{
V T1, T2, T4, T5;
T1 = LD(&(xi[0]), ivs, &(xi[0]));
T2 = LD(&(xi[WS(is, 2)]), ivs, &(xi[0]));
T3 = VSUB(T1, T2);
T7 = VADD(T1, T2);
T4 = LD(&(xi[WS(is, 1)]), ivs, &(xi[WS(is, 1)]));
T5 = LD(&(xi[WS(is, 3)]), ivs, &(xi[WS(is, 1)]));
T6 = VBYI(VSUB(T4, T5));
T8 = VADD(T4, T5);
}
ST(&(xo[WS(os, 3)]), VSUB(T3, T6), ovs, &(xo[WS(os, 1)]));
ST(&(xo[0]), VADD(T7, T8), ovs, &(xo[0]));
ST(&(xo[WS(os, 1)]), VADD(T3, T6), ovs, &(xo[WS(os, 1)]));
ST(&(xo[WS(os, 2)]), VSUB(T7, T8), ovs, &(xo[0]));
}
END_SIMD();
}
示例15: hc2cbdftv_4
static void hc2cbdftv_4(R *Rp, R *Ip, R *Rm, R *Im, const R *W, stride rs, INT mb, INT me, INT ms)
{
INT m;
for (m = mb, W = W + ((mb - 1) * ((TWVL / VL) * 6)); m < me; m = m + VL, Rp = Rp + (VL * ms), Ip = Ip + (VL * ms), Rm = Rm - (VL * ms), Im = Im - (VL * ms), W = W + (TWVL * 6), MAKE_VOLATILE_STRIDE(rs)) {
V T5, Tc, T9, Td, T2, T4, T3, T6, T8, T7, Tj, Ti, Th, Tk, Tl;
V Ta, Te, T1, Tb, Tf, Tg;
T2 = LD(&(Rp[0]), ms, &(Rp[0]));
T3 = LD(&(Rm[WS(rs, 1)]), -ms, &(Rm[WS(rs, 1)]));
T4 = VCONJ(T3);
T5 = VSUB(T2, T4);
Tc = VADD(T2, T4);
T6 = LD(&(Rp[WS(rs, 1)]), ms, &(Rp[WS(rs, 1)]));
T7 = LD(&(Rm[0]), -ms, &(Rm[0]));
T8 = VCONJ(T7);
T9 = VBYI(VSUB(T6, T8));
Td = VADD(T6, T8);
Tj = VADD(Tc, Td);
Th = LDW(&(W[0]));
Ti = VZMULI(Th, VADD(T5, T9));
Tk = VADD(Ti, Tj);
ST(&(Rp[0]), Tk, ms, &(Rp[0]));
Tl = VCONJ(VSUB(Tj, Ti));
ST(&(Rm[0]), Tl, -ms, &(Rm[0]));
T1 = LDW(&(W[TWVL * 4]));
Ta = VZMULI(T1, VSUB(T5, T9));
Tb = LDW(&(W[TWVL * 2]));
Te = VZMUL(Tb, VSUB(Tc, Td));
Tf = VADD(Ta, Te);
ST(&(Rp[WS(rs, 1)]), Tf, ms, &(Rp[WS(rs, 1)]));
Tg = VCONJ(VSUB(Te, Ta));
ST(&(Rm[WS(rs, 1)]), Tg, -ms, &(Rm[WS(rs, 1)]));
}
}