inline float comb::process(float input)
{
+
+#if 1
+ /* FIXME FIXME FIXME
+ * comb::process is completly broken so ignore it for now */
+ return 0.0;
+
+#else
float output;
output = undenormalise( buffer[bufidx] );
if(++bufidx>=bufsize) bufidx = 0;
return output;
+#endif
}
#endif //_comb_
#include <stdint.h>
+#include <math.h>
+
static inline float undenormalise( float f )
{
- union { float f; uint32_t u; } data;
- data.f = f;
- if( (data.u & 0x7f800000) == 0 )
+ if( fpclassify( f ) == FP_SUBNORMAL )
return 0.0;
return f;
}