}
}
+
+#if 0
+ /* This code is slower because it multiplies memory accesses.
+ * It is left for educational purposes and because it may offer
+ * a better reference for writing arch-specific DSP functions. */
static av_always_inline void autocorrelate(const float x[40][2],
float phi[3][2][2], int lag)
{
static void sbr_autocorrelate_c(const float x[40][2], float phi[3][2][2])
{
-#if 0
- /* This code is slower because it multiplies memory accesses.
- * It is left for educational purposes and because it may offer
- * a better reference for writing arch-specific DSP functions. */
autocorrelate(x, phi, 0);
autocorrelate(x, phi, 1);
autocorrelate(x, phi, 2);
+}
#else
+static void sbr_autocorrelate_c(const float x[40][2], float phi[3][2][2])
+{
float real_sum2 = x[0][0] * x[2][0] + x[0][1] * x[2][1];
float imag_sum2 = x[0][0] * x[2][1] - x[0][1] * x[2][0];
float real_sum1 = 0.0f, imag_sum1 = 0.0f, real_sum0 = 0.0f;