Example, a parametric EQ around 40 Hz with a Q-value of 15 at a fs>= 48 kHz.
Such filters are very hard to implement with any fixed point filter structures, including ladder filters.
So I implemented a floating point IIR-filter in C and connected it from XC - and it works :)
Using double, it becomes very computational heavy (of course), on the other hand - double can handle values up to ~1.8*10^308, which is not relevant for audio filtering.
Just guessing, I belive that a format with 30-32 bits of the significand togehter with 8 or 16 bits of the exponent could be optimal on XMOS. (I belive there exists special libs for the fixed point ARM family regarding special floating points)
Is there any special floating point lib. that could be reused (Single-prec. normally uses 23 bits to the significand)? Or is the emulation of single floating point already implemended in such a way that it is more accurate than the standard IEEE one?
In the document XMOS Compiler Collection version 8.7 you can read:
(§5.2.4.2.2) The accuracy of the floating-point operations and of the library
functions in <math.h> and <complex.h> that return floating-point results.
This is intentionally left undocumented.