From d4f8c8a4b1897d884e10312f7b6f4e100e8f8a32 Mon Sep 17 00:00:00 2001 From: Ed Kelly Date: Sat, 15 Aug 2009 00:26:13 +0000 Subject: Fixed the denormals in the C code svn path=/trunk/externals/bsaylor/; revision=11916 --- svf~.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/svf~.c b/svf~.c index 8afe817..43930f0 100644 --- a/svf~.c +++ b/svf~.c @@ -18,7 +18,7 @@ #define F_R 3 // Denormalise floats, only actually needed for PIII and very recent PowerPC -#define FLUSH_TO_ZERO(fv) (((*(unsigned int*)&(fv))&0x7f800000)==0)?0.0f:(fv) +//#define FLUSH_TO_ZERO(fv) (((*(unsigned int*)&(fv))&0x7f800000)==0)?0.0f:(fv) /* pd's samplerate */ float fs; @@ -56,8 +56,8 @@ static inline float run_svf(t_svf *sv, float in) { in = sv->qnrm * in ; for (i=0; i < F_R; i++) { // only needed for pentium chips - in = FLUSH_TO_ZERO(in); - sv->l = FLUSH_TO_ZERO(sv->l); + in = ((int)in & 0x7f800000)==0?0.0f:in; + sv->l = ((int)sv->l & 0x7f800000)==0?0.0f:sv->l; // very slight waveshape for extra stability sv->b = sv->b - sv->b * sv->b * sv->b * 0.001f; -- cgit v1.2.1