static void hc2cbdftv_6(R *Rp, R *Ip, R *Rm, R *Im, const R *W, stride rs, INT mb, INT me, INT ms) { DVK(KP500000000, +0.500000000000000000000000000000000000000000000); DVK(KP866025403, +0.866025403784438646763723170752936183471402627); INT m; for (m = mb, W = W + ((mb - 1) * ((TWVL / VL) * 10)); m < me; m = m + VL, Rp = Rp + (VL * ms), Ip = Ip + (VL * ms), Rm = Rm - (VL * ms), Im = Im - (VL * ms), W = W + (TWVL * 10), MAKE_VOLATILE_STRIDE(rs)) { V Tv, Tn, Tr, Te, T4, Tg, Ta, Tf, T7, T1, Td, T2, T3, T8, T9; V T5, T6, Th, Tj, Tb, Tp, Tx, Ti, Tc, To, Tk, Ts, Tq, Tw, Tm; V Tl, Tu, Tt, Tz, Ty; T2 = LD(&(Rp[0]), ms, &(Rp[0])); T3 = LD(&(Rm[WS(rs, 2)]), -ms, &(Rm[0])); T8 = LD(&(Rp[WS(rs, 1)]), ms, &(Rp[WS(rs, 1)])); T9 = LD(&(Rm[WS(rs, 1)]), -ms, &(Rm[WS(rs, 1)])); T5 = LD(&(Rp[WS(rs, 2)]), ms, &(Rp[0])); T6 = LD(&(Rm[0]), -ms, &(Rm[0])); Tv = LDW(&(W[0])); Tn = LDW(&(W[TWVL * 8])); Tr = LDW(&(W[TWVL * 6])); Te = VFMACONJ(T3, T2); T4 = VFNMSCONJ(T3, T2); Tg = VFMACONJ(T9, T8); Ta = VFMSCONJ(T9, T8); Tf = VFMACONJ(T6, T5); T7 = VFNMSCONJ(T6, T5); T1 = LDW(&(W[TWVL * 4])); Td = LDW(&(W[TWVL * 2])); Th = VADD(Tf, Tg); Tj = VMUL(LDK(KP866025403), VSUB(Tf, Tg)); Tb = VADD(T7, Ta); Tp = VMUL(LDK(KP866025403), VSUB(T7, Ta)); Tx = VADD(Te, Th); Ti = VFNMS(LDK(KP500000000), Th, Te); Tc = VZMULI(T1, VADD(T4, Tb)); To = VFNMS(LDK(KP500000000), Tb, T4); Tk = VZMUL(Td, VFNMSI(Tj, Ti)); Ts = VZMUL(Tr, VFMAI(Tj, Ti)); Tq = VZMULI(Tn, VFNMSI(Tp, To)); Tw = VZMULI(Tv, VFMAI(Tp, To)); Tm = VCONJ(VSUB(Tk, Tc)); Tl = VADD(Tc, Tk); Tu = VCONJ(VSUB(Ts, Tq)); Tt = VADD(Tq, Ts); Tz = VCONJ(VSUB(Tx, Tw)); Ty = VADD(Tw, Tx); ST(&(Rm[WS(rs, 1)]), Tm, -ms, &(Rm[WS(rs, 1)])); ST(&(Rp[WS(rs, 1)]), Tl, ms, &(Rp[WS(rs, 1)])); ST(&(Rm[WS(rs, 2)]), Tu, -ms, &(Rm[0])); ST(&(Rp[WS(rs, 2)]), Tt, ms, &(Rp[0])); ST(&(Rm[0]), Tz, -ms, &(Rm[0])); ST(&(Rp[0]), Ty, ms, &(Rp[0])); } }
static void hc2cbdftv_10(R *Rp, R *Ip, R *Rm, R *Im, const R *W, stride rs, INT mb, INT me, INT ms) { DVK(KP559016994, +0.559016994374947424102293417182819058860154590); DVK(KP250000000, +0.250000000000000000000000000000000000000000000); DVK(KP618033988, +0.618033988749894848204586834365638117720309180); DVK(KP951056516, +0.951056516295153572116439333379382143405698634); INT m; for (m = mb, W = W + ((mb - 1) * ((TWVL / VL) * 18)); m < me; m = m + VL, Rp = Rp + (VL * ms), Ip = Ip + (VL * ms), Rm = Rm - (VL * ms), Im = Im - (VL * ms), W = W + (TWVL * 18), MAKE_VOLATILE_STRIDE(rs)) { V Ts, T4, TR, T1, TZ, TD, Ty, Tn, Ti, TT, T11, TJ, T15, Tr, TN; V TE, Tv, To, Tb, T8, Tw, Te, Tx, Th, Tt, T7, T9, T2, T3, Tc; V Td, Tf, Tg, T5, T6, Tu, Ta; T2 = LD(&(Rp[0]), ms, &(Rp[0])); T3 = LD(&(Rm[WS(rs, 4)]), -ms, &(Rm[0])); Tc = LD(&(Rp[WS(rs, 4)]), ms, &(Rp[0])); Td = LD(&(Rm[0]), -ms, &(Rm[0])); Tf = LD(&(Rp[WS(rs, 1)]), ms, &(Rp[WS(rs, 1)])); Tg = LD(&(Rm[WS(rs, 3)]), -ms, &(Rm[WS(rs, 1)])); T5 = LD(&(Rp[WS(rs, 2)]), ms, &(Rp[0])); T6 = LD(&(Rm[WS(rs, 2)]), -ms, &(Rm[0])); T8 = LD(&(Rp[WS(rs, 3)]), ms, &(Rp[WS(rs, 1)])); Ts = VFMACONJ(T3, T2); T4 = VFNMSCONJ(T3, T2); Tw = VFMACONJ(Td, Tc); Te = VFNMSCONJ(Td, Tc); Tx = VFMACONJ(Tg, Tf); Th = VFMSCONJ(Tg, Tf); Tt = VFMACONJ(T6, T5); T7 = VFNMSCONJ(T6, T5); T9 = LD(&(Rm[WS(rs, 1)]), -ms, &(Rm[WS(rs, 1)])); TR = LDW(&(W[TWVL * 8])); T1 = LDW(&(W[TWVL * 4])); TZ = LDW(&(W[TWVL * 12])); TD = VSUB(Tw, Tx); Ty = VADD(Tw, Tx); Tn = VSUB(Te, Th); Ti = VADD(Te, Th); Tu = VFMACONJ(T9, T8); Ta = VFMSCONJ(T9, T8); TT = LDW(&(W[TWVL * 6])); T11 = LDW(&(W[TWVL * 10])); TJ = LDW(&(W[TWVL * 16])); T15 = LDW(&(W[0])); Tr = LDW(&(W[TWVL * 2])); TN = LDW(&(W[TWVL * 14])); TE = VSUB(Tt, Tu); Tv = VADD(Tt, Tu); To = VSUB(T7, Ta); Tb = VADD(T7, Ta); { V TV, TF, Tz, TB, TL, Tp, Tj, Tl, T17, TA, TS, Tk, TC, TU, TK; V Tm, TO, TG, T12, TW, T16, TM, T10, Tq, TX, TY, T18, T19, TQ, TP; V T13, T14, TI, TH; TV = VMUL(LDK(KP951056516), VFMA(LDK(KP618033988), TD, TE)); TF = VMUL(LDK(KP951056516), VFNMS(LDK(KP618033988), TE, TD)); Tz = VADD(Tv, Ty); TB = VSUB(Tv, Ty); TL = VMUL(LDK(KP951056516), VFMA(LDK(KP618033988), Tn, To)); Tp = VMUL(LDK(KP951056516), VFNMS(LDK(KP618033988), To, Tn)); Tj = VADD(Tb, Ti); Tl = VSUB(Tb, Ti); T17 = VADD(Ts, Tz); TA = VFNMS(LDK(KP250000000), Tz, Ts); TS = VZMULI(TR, VADD(T4, Tj)); Tk = VFNMS(LDK(KP250000000), Tj, T4); TC = VFNMS(LDK(KP559016994), TB, TA); TU = VFMA(LDK(KP559016994), TB, TA); TK = VFMA(LDK(KP559016994), Tl, Tk); Tm = VFNMS(LDK(KP559016994), Tl, Tk); TO = VZMUL(TN, VFMAI(TF, TC)); TG = VZMUL(Tr, VFNMSI(TF, TC)); T12 = VZMUL(T11, VFMAI(TV, TU)); TW = VZMUL(TT, VFNMSI(TV, TU)); T16 = VZMULI(T15, VFMAI(TL, TK)); TM = VZMULI(TJ, VFNMSI(TL, TK)); T10 = VZMULI(TZ, VFNMSI(Tp, Tm)); Tq = VZMULI(T1, VFMAI(Tp, Tm)); TX = VADD(TS, TW); TY = VCONJ(VSUB(TW, TS)); T18 = VADD(T16, T17); T19 = VCONJ(VSUB(T17, T16)); TQ = VCONJ(VSUB(TO, TM)); TP = VADD(TM, TO); T13 = VADD(T10, T12); T14 = VCONJ(VSUB(T12, T10)); TI = VCONJ(VSUB(TG, Tq)); TH = VADD(Tq, TG); ST(&(Rp[WS(rs, 2)]), TX, ms, &(Rp[0])); ST(&(Rm[WS(rs, 2)]), TY, -ms, &(Rm[0])); ST(&(Rp[0]), T18, ms, &(Rp[0])); ST(&(Rm[0]), T19, -ms, &(Rm[0])); ST(&(Rm[WS(rs, 4)]), TQ, -ms, &(Rm[0])); ST(&(Rp[WS(rs, 4)]), TP, ms, &(Rp[0])); ST(&(Rp[WS(rs, 3)]), T13, ms, &(Rp[WS(rs, 1)])); ST(&(Rm[WS(rs, 3)]), T14, -ms, &(Rm[WS(rs, 1)])); ST(&(Rm[WS(rs, 1)]), TI, -ms, &(Rm[WS(rs, 1)])); ST(&(Rp[WS(rs, 1)]), TH, ms, &(Rp[WS(rs, 1)])); } } }
static void hc2cbdftv_16(R *Rp, R *Ip, R *Rm, R *Im, const R *W, stride rs, INT mb, INT me, INT ms) { DVK(KP923879532, +0.923879532511286756128183189396788286822416626); DVK(KP414213562, +0.414213562373095048801688724209698078569671875); DVK(KP707106781, +0.707106781186547524400844362104849039284835938); { INT m; for (m = mb, W = W + ((mb - 1) * ((TWVL / VL) * 30)); m < me; m = m + VL, Rp = Rp + (VL * ms), Ip = Ip + (VL * ms), Rm = Rm - (VL * ms), Im = Im - (VL * ms), W = W + (TWVL * 30), MAKE_VOLATILE_STRIDE(64, rs)) { V T8, Tv, TE, T1t, TP, T1w, T10, T1p, Tn, Tw, T13, T1q, TL, T1x, TS; V T1u; { V T4, TA, Tu, TC, T7, TN, Tr, TB, T2, T3, Ts, Tt, T5, T6, Tp; V Tq, TD, TO, TY, TZ, Tb, TF, Tl, TJ, Te, TG, Ti, TI, T9, Ta; V Tj, Tk, Tc, Td, Tg, Th, Tf, Tm, T11, T12, TH, TK, TQ, TR; T2 = LD(&(Rp[0]), ms, &(Rp[0])); T3 = LD(&(Rm[WS(rs, 7)]), -ms, &(Rm[WS(rs, 1)])); T4 = VFMACONJ(T3, T2); TA = VFNMSCONJ(T3, T2); Ts = LD(&(Rp[WS(rs, 6)]), ms, &(Rp[0])); Tt = LD(&(Rm[WS(rs, 1)]), -ms, &(Rm[WS(rs, 1)])); Tu = VFMACONJ(Tt, Ts); TC = VFMSCONJ(Tt, Ts); T5 = LD(&(Rp[WS(rs, 4)]), ms, &(Rp[0])); T6 = LD(&(Rm[WS(rs, 3)]), -ms, &(Rm[WS(rs, 1)])); T7 = VFMACONJ(T6, T5); TN = VFNMSCONJ(T6, T5); Tp = LD(&(Rp[WS(rs, 2)]), ms, &(Rp[0])); Tq = LD(&(Rm[WS(rs, 5)]), -ms, &(Rm[WS(rs, 1)])); Tr = VFMACONJ(Tq, Tp); TB = VFNMSCONJ(Tq, Tp); T8 = VSUB(T4, T7); Tv = VSUB(Tr, Tu); TD = VADD(TB, TC); TE = VFMA(LDK(KP707106781), TD, TA); T1t = VFNMS(LDK(KP707106781), TD, TA); TO = VSUB(TB, TC); TP = VFMA(LDK(KP707106781), TO, TN); T1w = VFNMS(LDK(KP707106781), TO, TN); TY = VADD(T4, T7); TZ = VADD(Tr, Tu); T10 = VADD(TY, TZ); T1p = VSUB(TY, TZ); T9 = LD(&(Rp[WS(rs, 1)]), ms, &(Rp[WS(rs, 1)])); Ta = LD(&(Rm[WS(rs, 6)]), -ms, &(Rm[0])); Tb = VFMACONJ(Ta, T9); TF = VFNMSCONJ(Ta, T9); Tj = LD(&(Rp[WS(rs, 3)]), ms, &(Rp[WS(rs, 1)])); Tk = LD(&(Rm[WS(rs, 4)]), -ms, &(Rm[0])); Tl = VFMACONJ(Tk, Tj); TJ = VFNMSCONJ(Tk, Tj); Tc = LD(&(Rp[WS(rs, 5)]), ms, &(Rp[WS(rs, 1)])); Td = LD(&(Rm[WS(rs, 2)]), -ms, &(Rm[0])); Te = VFMACONJ(Td, Tc); TG = VFNMSCONJ(Td, Tc); Tg = LD(&(Rp[WS(rs, 7)]), ms, &(Rp[WS(rs, 1)])); Th = LD(&(Rm[0]), -ms, &(Rm[0])); Ti = VFMACONJ(Th, Tg); TI = VFMSCONJ(Th, Tg); Tf = VSUB(Tb, Te); Tm = VSUB(Ti, Tl); Tn = VADD(Tf, Tm); Tw = VSUB(Tf, Tm); T11 = VADD(Tb, Te); T12 = VADD(Ti, Tl); T13 = VADD(T11, T12); T1q = VSUB(T11, T12); TH = VFNMS(LDK(KP414213562), TG, TF); TK = VFMA(LDK(KP414213562), TJ, TI); TL = VADD(TH, TK); T1x = VSUB(TH, TK); TQ = VFMA(LDK(KP414213562), TF, TG); TR = VFNMS(LDK(KP414213562), TI, TJ); TS = VADD(TQ, TR); T1u = VSUB(TQ, TR); } { V T1j, T1R, T1c, T1J, T1g, T1l, T1N, T1T, T1Q, T1a, T1b, T19, T1I, T1e, T1f; V T1d, T1k, T1L, T1M, T1K, T1S, T1h, T1U, T1V, T1i, T1m, T1O, T1P, T1n, T14; V T1r, Ty, T1D, TU, T16, T1z, T1F, TX, T1o, To, Tx, T1, T1C, TM, TT; V Tz, T15, T1v, T1y, T1s, T1E, TV, T1G, T1H, TW, T17, T1A, T1B, T18; T1j = VADD(T10, T13); T1Q = LDW(&(W[TWVL * 22])); T1R = VZMUL(T1Q, VFNMSI(T1q, T1p)); T1a = VFMA(LDK(KP707106781), Tn, T8); T1b = VFMA(LDK(KP707106781), Tw, Tv); T19 = LDW(&(W[TWVL * 26])); T1c = VZMUL(T19, VFNMSI(T1b, T1a)); T1I = LDW(&(W[TWVL * 2])); T1J = VZMUL(T1I, VFMAI(T1b, T1a)); T1e = VFMA(LDK(KP923879532), TL, TE); T1f = VFMA(LDK(KP923879532), TS, TP); T1d = LDW(&(W[TWVL * 28])); T1g = VZMULI(T1d, VFNMSI(T1f, T1e)); T1k = LDW(&(W[0])); T1l = VZMULI(T1k, VFMAI(T1f, T1e)); T1L = VFMA(LDK(KP923879532), T1u, T1t); T1M = VFNMS(LDK(KP923879532), T1x, T1w); T1K = LDW(&(W[TWVL * 4])); T1N = VZMULI(T1K, VFNMSI(T1M, T1L)); T1S = LDW(&(W[TWVL * 24])); T1T = VZMULI(T1S, VFMAI(T1M, T1L)); T1h = VCONJ(VSUB(T1c, T1g)); ST(&(Rm[WS(rs, 7)]), T1h, -ms, &(Rm[WS(rs, 1)])); T1U = VCONJ(VSUB(T1R, T1T)); ST(&(Rm[WS(rs, 6)]), T1U, -ms, &(Rm[0])); T1V = VADD(T1R, T1T); ST(&(Rp[WS(rs, 6)]), T1V, ms, &(Rp[0])); T1i = VADD(T1c, T1g); ST(&(Rp[WS(rs, 7)]), T1i, ms, &(Rp[WS(rs, 1)])); T1m = VCONJ(VSUB(T1j, T1l)); ST(&(Rm[0]), T1m, -ms, &(Rm[0])); T1O = VCONJ(VSUB(T1J, T1N)); ST(&(Rm[WS(rs, 1)]), T1O, -ms, &(Rm[WS(rs, 1)])); T1P = VADD(T1J, T1N); ST(&(Rp[WS(rs, 1)]), T1P, ms, &(Rp[WS(rs, 1)])); T1n = VADD(T1j, T1l); ST(&(Rp[0]), T1n, ms, &(Rp[0])); TX = LDW(&(W[TWVL * 14])); T14 = VZMUL(TX, VSUB(T10, T13)); T1o = LDW(&(W[TWVL * 6])); T1r = VZMUL(T1o, VFMAI(T1q, T1p)); To = VFNMS(LDK(KP707106781), Tn, T8); Tx = VFNMS(LDK(KP707106781), Tw, Tv); T1 = LDW(&(W[TWVL * 10])); Ty = VZMUL(T1, VFNMSI(Tx, To)); T1C = LDW(&(W[TWVL * 18])); T1D = VZMUL(T1C, VFMAI(Tx, To)); TM = VFNMS(LDK(KP923879532), TL, TE); TT = VFNMS(LDK(KP923879532), TS, TP); Tz = LDW(&(W[TWVL * 12])); TU = VZMULI(Tz, VFNMSI(TT, TM)); T15 = LDW(&(W[TWVL * 16])); T16 = VZMULI(T15, VFMAI(TT, TM)); T1v = VFNMS(LDK(KP923879532), T1u, T1t); T1y = VFMA(LDK(KP923879532), T1x, T1w); T1s = LDW(&(W[TWVL * 8])); T1z = VZMULI(T1s, VFMAI(T1y, T1v)); T1E = LDW(&(W[TWVL * 20])); T1F = VZMULI(T1E, VFNMSI(T1y, T1v)); TV = VCONJ(VSUB(Ty, TU)); ST(&(Rm[WS(rs, 3)]), TV, -ms, &(Rm[WS(rs, 1)])); T1G = VCONJ(VSUB(T1D, T1F)); ST(&(Rm[WS(rs, 5)]), T1G, -ms, &(Rm[WS(rs, 1)])); T1H = VADD(T1D, T1F); ST(&(Rp[WS(rs, 5)]), T1H, ms, &(Rp[WS(rs, 1)])); TW = VADD(Ty, TU); ST(&(Rp[WS(rs, 3)]), TW, ms, &(Rp[WS(rs, 1)])); T17 = VCONJ(VSUB(T14, T16)); ST(&(Rm[WS(rs, 4)]), T17, -ms, &(Rm[0])); T1A = VCONJ(VSUB(T1r, T1z)); ST(&(Rm[WS(rs, 2)]), T1A, -ms, &(Rm[0])); T1B = VADD(T1r, T1z); ST(&(Rp[WS(rs, 2)]), T1B, ms, &(Rp[0])); T18 = VADD(T14, T16); ST(&(Rp[WS(rs, 4)]), T18, ms, &(Rp[0])); } } } VLEAVE(); }
static void hc2cbdftv_8(R *Rp, R *Ip, R *Rm, R *Im, const R *W, stride rs, INT mb, INT me, INT ms) { DVK(KP707106781, +0.707106781186547524400844362104849039284835938); INT m; for (m = mb, W = W + ((mb - 1) * ((TWVL / VL) * 14)); m < me; m = m + VL, Rp = Rp + (VL * ms), Ip = Ip + (VL * ms), Rm = Rm - (VL * ms), Im = Im - (VL * ms), W = W + (TWVL * 14), MAKE_VOLATILE_STRIDE(rs)) { V TJ, T4, Tf, TB, TD, TE, Tm, T1, Tj, TF, Tp, Tb, Tg, Tt, Tx; V T2, T3, Td, Te, T5, T6, T8, T9, Tn, T7, To, Ta, Tk, Tl, TG; V TL, Tq, Tc, Tu, Th, Tv, Ty, Tw, TC, Ti, TK, TA, Tz, TI, TH; V Ts, Tr, TN, TM; T2 = LD(&(Rp[0]), ms, &(Rp[0])); T3 = LD(&(Rm[WS(rs, 3)]), -ms, &(Rm[WS(rs, 1)])); Td = LD(&(Rp[WS(rs, 2)]), ms, &(Rp[0])); Te = LD(&(Rm[WS(rs, 1)]), -ms, &(Rm[WS(rs, 1)])); T5 = LD(&(Rp[WS(rs, 1)]), ms, &(Rp[WS(rs, 1)])); T6 = LD(&(Rm[WS(rs, 2)]), -ms, &(Rm[0])); T8 = LD(&(Rp[WS(rs, 3)]), ms, &(Rp[WS(rs, 1)])); T9 = LD(&(Rm[0]), -ms, &(Rm[0])); TJ = LDW(&(W[0])); Tk = VFMACONJ(T3, T2); T4 = VFNMSCONJ(T3, T2); Tl = VFMACONJ(Te, Td); Tf = VFNMSCONJ(Te, Td); Tn = VFMACONJ(T6, T5); T7 = VFNMSCONJ(T6, T5); To = VFMACONJ(T9, T8); Ta = VFMSCONJ(T9, T8); TB = LDW(&(W[TWVL * 8])); TD = LDW(&(W[TWVL * 6])); TE = VADD(Tk, Tl); Tm = VSUB(Tk, Tl); T1 = LDW(&(W[TWVL * 12])); Tj = LDW(&(W[TWVL * 10])); TF = VADD(Tn, To); Tp = VSUB(Tn, To); Tb = VADD(T7, Ta); Tg = VSUB(T7, Ta); Tt = LDW(&(W[TWVL * 4])); Tx = LDW(&(W[TWVL * 2])); TG = VZMUL(TD, VSUB(TE, TF)); TL = VADD(TE, TF); Tq = VZMUL(Tj, VFNMSI(Tp, Tm)); Tc = VFMA(LDK(KP707106781), Tb, T4); Tu = VFNMS(LDK(KP707106781), Tb, T4); Th = VFMA(LDK(KP707106781), Tg, Tf); Tv = VFNMS(LDK(KP707106781), Tg, Tf); Ty = VZMUL(Tx, VFMAI(Tp, Tm)); Tw = VZMULI(Tt, VFNMSI(Tv, Tu)); TC = VZMULI(TB, VFMAI(Tv, Tu)); Ti = VZMULI(T1, VFNMSI(Th, Tc)); TK = VZMULI(TJ, VFMAI(Th, Tc)); TA = VCONJ(VSUB(Ty, Tw)); Tz = VADD(Tw, Ty); TI = VCONJ(VSUB(TG, TC)); TH = VADD(TC, TG); Ts = VCONJ(VSUB(Tq, Ti)); Tr = VADD(Ti, Tq); TN = VCONJ(VSUB(TL, TK)); TM = VADD(TK, TL); ST(&(Rm[WS(rs, 1)]), TA, -ms, &(Rm[WS(rs, 1)])); ST(&(Rp[WS(rs, 1)]), Tz, ms, &(Rp[WS(rs, 1)])); ST(&(Rm[WS(rs, 2)]), TI, -ms, &(Rm[0])); ST(&(Rp[WS(rs, 2)]), TH, ms, &(Rp[0])); ST(&(Rm[WS(rs, 3)]), Ts, -ms, &(Rm[WS(rs, 1)])); ST(&(Rp[WS(rs, 3)]), Tr, ms, &(Rp[WS(rs, 1)])); ST(&(Rm[0]), TN, -ms, &(Rm[0])); ST(&(Rp[0]), TM, ms, &(Rp[0])); } }