rendered paste bodystatic void fct3_4(float *x){ float tmp00, tmp01, tmp10, tmp11, wc, ws; COUNT_sub_start("fct3_4"); MULT(1); STORE(1); x[1] *= 0.7071067812f; ADD(2); tmp00 = x[0] + x[1]; tmp01 = x[0] - x[1]; wc = 0.923879532511287f; ws = 0.382683432365090f; MULT(3); MAC(1); ADD(1); tmp10 = x[2] * wc + x[3] * ws; tmp11 = x[2] * ws - x[3] * wc; ADD(4); STORE(4); x[0] = tmp00 + tmp10; x[3] = tmp00 - tmp10; x[1] = tmp01 + tmp11; x[2] = tmp01 - tmp11; COUNT_sub_end();}static void fst3_4r(float *x){ float tmp00, tmp01, tmp10, tmp11, wc, ws; COUNT_sub_start("fst3_4r"); MULT(1); STORE(1); x[2] *= 0.7071067812f; ADD(2); tmp00 = x[3] + x[2]; tmp01 = x[3] - x[2]; wc = 0.923879532511287f; ws = 0.382683432365090f; MULT(3); MAC(1); ADD(1); tmp10 = x[1] * wc + x[0] * ws; tmp11 = x[0] * wc - x[1] * ws; ADD(4); STORE(4); x[3] = tmp00 + tmp10; x[0] = tmp10 - tmp00; x[2] = tmp11 - tmp01; x[1] = tmp11 + tmp01; COUNT_sub_end();}static void fct4_4r(float *x){ float tmp00, tmp01, tmp10, tmp11, wc, ws; COUNT_sub_start("fct4_4r"); wc = 0.7071067812f; MULT(1); STORE(1); x[1] *= wc; ADD(2); tmp00 = x[0] + x[1]; tmp01 = x[0] - x[1]; MULT(1); STORE(1); x[2] *= wc; ADD(2); tmp11 = x[3] - x[2]; tmp10 = x[3] + x[2]; wc = 0.980785280403230f; ws = 0.195090322016128f; MULT(3); MAC(1); ADD(1); STORE(2); x[3] = tmp00 * wc + tmp10 * ws; x[0] = tmp00 * ws - tmp10 * wc; wc = 0.831469612302545f; ws = 0.555570233019602f; MULT(3); MAC(1); ADD(1); STORE(2); x[2] = tmp01 * wc - tmp11 * ws; x[1] = tmp01 * ws + tmp11 * wc; COUNT_sub_end();}static void fst4_4(float *x){ float tmp00, tmp01, tmp10, tmp11, wc, ws; COUNT_sub_start("fst4_4"); wc = 0.7071067812f; MULT(1); STORE(1); x[1] *= wc; ADD(2); tmp10 = x[0] + x[1]; tmp11 = x[0] - x[1]; MULT(1); STORE(1); x[2] *= wc; ADD(2); tmp01 = x[3] - x[2]; tmp00 = x[3] + x[2]; wc = 0.980785280403230f; ws = 0.195090322016128f; MULT(3); MAC(1); ADD(1); STORE(2); x[0] = tmp00 * wc + tmp10 * ws; x[3] = tmp10 * wc - tmp00 * ws; wc = 0.831469612302545f; ws = 0.555570233019602f; MULT(3); MAC(1); ADD(1); STORE(2); x[1] = tmp11 * ws - tmp01 * wc; x[2] = tmp01 * ws + tmp11 * wc; COUNT_sub_end();}static void fct3_64(float *a){ int k; const float *tPtr; float wc, ws; float xp; COUNT_sub_start("fct3_64"); /* bit reversal */ MOVE(3 * 28); xp = a[1]; a[1] = a[32]; a[32] = xp; xp = a[2]; a[2] = a[16]; a[16] = xp; xp = a[3]; a[3] = a[48]; a[48] = xp; xp = a[4]; a[4] = a[8]; a[8] = xp; xp = a[5]; a[5] = a[40]; a[40] = xp; xp = a[6]; a[6] = a[24]; a[24] = xp; xp = a[7]; a[7] = a[56]; a[56] = xp; xp = a[9]; a[9] = a[36]; a[36] = xp; xp = a[10]; a[10] = a[20]; a[20] = xp; xp = a[11]; a[11] = a[52]; a[52] = xp; xp = a[13]; a[13] = a[44]; a[44] = xp; xp = a[14]; a[14] = a[28]; a[28] = xp; xp = a[15]; a[15] = a[60]; a[60] = xp; xp = a[17]; a[17] = a[34]; a[34] = xp; xp = a[19]; a[19] = a[50]; a[50] = xp; xp = a[21]; a[21] = a[42]; a[42] = xp; xp = a[22]; a[22] = a[26]; a[26] = xp; xp = a[23]; a[23] = a[58]; a[58] = xp; xp = a[25]; a[25] = a[38]; a[38] = xp; xp = a[27]; a[27] = a[54]; a[54] = xp; xp = a[29]; a[29] = a[46]; a[46] = xp; xp = a[31]; a[31] = a[62]; a[62] = xp; xp = a[35]; a[35] = a[49]; a[49] = xp; xp = a[37]; a[37] = a[41]; a[41] = xp; xp = a[39]; a[39] = a[57]; a[57] = xp; xp = a[43]; a[43] = a[53]; a[53] = xp; xp = a[47]; a[47] = a[61]; a[61] = xp; xp = a[55]; a[55] = a[59]; a[59] = xp; ADD(2 * 15); STORE(15); MOVE(15); xp = a[33] + a[62]; a[62] -= a[33]; a[33] = xp; xp = a[34] + a[60]; a[60] -= a[34]; a[34] = xp; xp = a[35] + a[61]; a[61] -= a[35]; a[35] = xp; xp = a[36] + a[56]; a[56] -= a[36]; a[36] = xp; xp = a[37] + a[57]; a[57] -= a[37]; a[37] = xp; xp = a[38] + a[58]; a[58] -= a[38]; a[38] = xp; xp = a[39] + a[59]; a[59] -= a[39]; a[39] = xp; xp = a[40] + a[48]; a[48] -= a[40]; a[40] = xp; xp = a[41] + a[49]; a[49] -= a[41]; a[41] = xp; xp = a[42] + a[50]; a[50] -= a[42]; a[42] = xp; xp = a[43] + a[51]; a[51] -= a[43]; a[43] = xp; xp = a[44] + a[52]; a[52] -= a[44]; a[44] = xp; xp = a[45] + a[53]; a[53] -= a[45]; a[45] = xp; xp = a[46] + a[54]; a[54] -= a[46]; a[46] = xp; xp = a[47] + a[55]; a[55] -= a[47]; a[47] = xp; ADD(2 * 7); STORE(7); MOVE(7); xp = a[17] + a[30]; a[30] -= a[17]; a[17] = xp; xp = a[18] + a[28]; a[28] -= a[18]; a[18] = xp; xp = a[19] + a[29]; a[29] -= a[19]; a[19] = xp; xp = a[20] + a[24]; a[24] -= a[20]; a[20] = xp; xp = a[21] + a[25]; a[25] -= a[21]; a[21] = xp; xp = a[22] + a[26]; a[26] -= a[22]; a[22] = xp; xp = a[23] + a[27]; a[27] -= a[23]; a[23] = xp; ADD(2 * 3 * 3); STORE(3 * 3); MOVE(3 * 3); xp = a[9] + a[14]; a[14] -= a[9]; a[9] = xp; xp = a[10] + a[12]; a[12] -= a[10]; a[10] = xp; xp = a[11] + a[13]; a[13] -= a[11]; a[11] = xp; xp = a[41] + a[46]; a[46] -= a[41]; a[41] = xp; xp = a[42] + a[44]; a[44] -= a[42]; a[42] = xp; xp = a[43] + a[45]; a[45] -= a[43]; a[43] = xp; xp = a[49] + a[54]; a[49] -= a[54]; a[54] = xp; xp = a[50] + a[52]; a[50] -= a[52]; a[52] = xp; xp = a[51] + a[53]; a[51] -= a[53]; a[53] = xp; ADD(2 * 5); STORE(5); MOVE(5); xp = a[5] + a[6]; a[6] -= a[5]; a[5] = xp; xp = a[21] + a[22]; a[22] -= a[21]; a[21] = xp; xp = a[25] + a[26]; a[25] -= a[26]; a[26] = xp; xp = a[37] + a[38]; a[38] -= a[37]; a[37] = xp; xp = a[57] + a[58]; a[57] -= a[58]; a[58] = xp; FUNC(1); fct3_4(a); PTR_INIT(1); FUNC(1); fct4_4r(a+4); PTR_INIT(1); FUNC(1); fct3_4(a+8); PTR_INIT(1); FUNC(1); fst3_4r(a+12); PTR_INIT(1); FUNC(1); fct3_4(a+16); PTR_INIT(1); FUNC(1); fct4_4r(a+20); PTR_INIT(1); FUNC(1); fst4_4(a+24); PTR_INIT(1); FUNC(1); fst3_4r(a+28); PTR_INIT(1); FUNC(1); fct3_4(a+32); PTR_INIT(1); FUNC(1); fct4_4r(a+36); PTR_INIT(1); FUNC(1); fct3_4(a+40); PTR_INIT(1); FUNC(1); fst3_4r(a+44); PTR_INIT(1); FUNC(1); fct3_4(a+48); PTR_INIT(1); FUNC(1); fst3_4r(a+52); PTR_INIT(1); FUNC(1); fst4_4(a+56); PTR_INIT(1); FUNC(1); fst3_4r(a+60); LOOP(1); for (k=0; k<4; k++) { ADD(2 * 5); STORE(5); MOVE(5); xp = a[k] + a[7-k]; a[7-k] = a[k] - a[7-k]; a[k] = xp; xp = a[16+k] + a[23-k]; a[23-k] = a[16+k] - a[23-k]; a[16+k] = xp; xp = a[24+k] + a[31-k]; a[24+k] = a[24+k] - a[31-k]; a[31-k] = xp; xp = a[32+k] + a[39-k]; a[39-k] = a[32+k] - a[39-k]; a[32+k] = xp; xp = a[56+k] + a[63-k]; a[56+k] = a[56+k] - a[63-k]; a[63-k] = xp; } tPtr = trigData_fct4_8; LOOP(1); for (k=0; k<4; k++) { wc = *tPtr++; ws = *tPtr++; MULT(3 * 3); MAC(3); ADD(3); STORE(3); MOVE(3); xp = a[8+k]*wc + a[15-k]*ws; a[8+k] = a[8+k]*ws - a[15-k]*wc; a[15-k] = xp; xp = a[40+k]*wc + a[47-k]*ws; a[40+k] = a[40+k]*ws - a[47-k]*wc; a[47-k] = xp; xp = a[48+k]*ws + a[55-k]*wc; a[55-k] = a[48+k]*wc - a[55-k]*ws; a[48+k] = xp; } LOOP(1); for (k=0; k<8; k++) { ADD(2 * 3); STORE(3); MOVE(3); xp = a[k] + a[15-k]; a[15-k] = a[k] - a[15-k]; a[k] = xp; xp = a[32+k] + a[47-k]; a[47-k] = a[32+k] - a[47-k]; a[32+k] = xp; xp = a[48+k] + a[63-k]; a[48+k] = a[48+k] - a[63-k]; a[63-k] = xp; } tPtr = trigData_fct4_16; LOOP(1); for (k=0; k<8; k++) { wc = *tPtr++; ws = *tPtr++; MULT(3); MAC(1); ADD(1); STORE(1); MOVE(1); xp = a[16+k]*wc + a[31-k]*ws; a[16+k] = a[16+k]*ws - a[31-k]*wc; a[31-k] = xp; } LOOP(1); for (k=0; k<16; k++) { ADD(2); STORE(1); MOVE(1); xp = a[k] + a[31-k]; a[31-k] = a[k] - a[31-k]; a[k] = xp; } tPtr = trigData_fct4_32; LOOP(1); for (k=0; k<16; k++) { wc = *tPtr++; ws = *tPtr++; MULT(3); MAC(1); ADD(1); STORE(1); MOVE(1); xp = a[32+k]*wc + a[63-k]*ws; a[32+k] = a[32+k]*ws - a[63-k]*wc; a[63-k] = xp; } LOOP(1); for (k=0; k<32; k++) { ADD(2); STORE(1); MOVE(1); xp = a[k] + a[63-k]; a[63-k] = a[k] - a[63-k]; a[k] = xp; } COUNT_sub_end();}static void fst3_64(float *a){ int k; float xp; COUNT_sub_start("fst3_64"); /* reorder input */ LOOP(1); for (k=0; k<32; k++) { MOVE(3); xp = a[k]; a[k] = a[63-k]; a[63-k] = xp; } FUNC(1); fct3_64(a); LOOP(1); for (k=1; k<64; k+=2) { MULT(1); STORE(1); a[k] = -a[k]; } COUNT_sub_end();}