src/pitch/pitchyinfft.c: simplify a bit, preparing for #7
authorPaul Brossier <piem@piem.org>
Sat, 16 Mar 2013 20:38:21 +0000 (15:38 -0500)
committerPaul Brossier <piem@piem.org>
Sat, 16 Mar 2013 20:38:21 +0000 (15:38 -0500)
src/pitch/pitchyinfft.c

index b627ef2c56fb2424b72897cca340928daf422381..d4e9905db1bef888ecf183850348d64a11a74de9 100644 (file)
@@ -109,17 +109,14 @@ aubio_pitchyinfft_do (aubio_pitchyinfft_t * p, fvec_t * input, fvec_t * output)
     p->winput->data[l] = p->win->data[l] * input->data[l];
   }
   aubio_fft_do (p->fft, p->winput, p->fftout);
-  for (l = 0; l < p->fftout->length; l++) {
+  p->sqrmag->data[0] = SQR (p->fftout->norm[0]);
+  p->sqrmag->data[0] *= p->weight->data[0];
+  for (l = 1; l < p->fftout->length; l++) {
     p->sqrmag->data[l] = SQR (p->fftout->norm[l]);
     p->sqrmag->data[l] *= p->weight->data[l];
+    p->sqrmag->data[p->sqrmag->length - l] = p->sqrmag->data[l];
   }
-  for (l = 1; l < p->fftout->length; l++) {
-    p->sqrmag->data[(p->fftout->length - 1) * 2 - l] =
-        SQR (p->fftout->norm[l]);
-    p->sqrmag->data[(p->fftout->length - 1) * 2 - l] *=
-        p->weight->data[l];
-  }
-  for (l = 0; l < p->sqrmag->length / 2 + 1; l++) {
+  for (l = 0; l < p->fftout->length; l++) {
     sum += p->sqrmag->data[l];
   }
   sum *= 2.;