On Mon, Jul 18, 2011 at 08:52:55PM +1000, Erik de Castro Lopo wrote: > For instance in Secret Rabbit Code (my code), all data entering > and leaving the converter plus the actual filter coefficients are > stored as 32 bit floats. However, the inner loop which does the > multiply accumulate (similar to what is done when mixing) does: > > double result = 0.0 ; > > for ( ..... ) > sum += coeff [k] * data [k] ; > > Specifically all the inputs are 32 bit floats, but all intermediate > results are 64 bit. In the case they would probably be even if the sum was declared float - it's very likely that the intermediate result will be stored in a FP register anyway. OTOH there are compiler options that would force it to single precision even in that case. Zita-resampler does this a little bit different: it calculates the sum from the start and end of the filter (where the very small coefficients are) and working towards the center. Ciao, -- FA _______________________________________________ Linux-audio-user mailing list Linux-audio-user@xxxxxxxxxxxxxxxxxxxx http://lists.linuxaudio.org/listinfo/linux-audio-user