Previous 199869 Revisions Next

r23836 Friday 21st June, 2013 at 16:40:09 UTC by Oliver Stöneberg
added workaround to FLAC__lpc_compute_autocorrelation() for 32-bit GCC (aka non-SSE floating point) issues (nw)
[src/lib/libflac/libflac]lpc.c

trunk/src/lib/libflac/libflac/lpc.c
r23835r23836
8888    * this version tends to run faster because of better data locality
8989    * ('data_len' is usually much larger than 'lag')
9090    */
91   FLAC__real d;
91   FLAC__real d, tmp;
9292   unsigned sample, coeff;
9393   const unsigned limit = data_len - lag;
9494
r23835r23836
9999      autoc[coeff] = 0.0;
100100   for(sample = 0; sample <= limit; sample++) {
101101      d = data[sample];
102      for(coeff = 0; coeff < lag; coeff++)
103         autoc[coeff] += d * data[sample+coeff];
102      for(coeff = 0; coeff < lag; coeff++) {
103         tmp = d * data[sample+coeff];
104         autoc[coeff] += tmp;
105      }
104106   }
105107   for(; sample < data_len; sample++) {
106108      d = data[sample];
107      for(coeff = 0; coeff < data_len - sample; coeff++)
108         autoc[coeff] += d * data[sample+coeff];
109      for(coeff = 0; coeff < data_len - sample; coeff++) {
110         tmp = d * data[sample+coeff];
111         autoc[coeff] += tmp;
112      }
109113   }
110114}
111115

Previous 199869 Revisions Next


© 1997-2024 The MAME Team