X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fplugins%2Ffreeverb%2FComponents%2Fdenormals.h;h=a6d599a665c0e3bc8dd665322144e389dd2f9973;hb=e13e0a987ad66b8274fcbaddc71eac583ea80bea;hp=bb100d31c6a9fc6720c94b3029c9b304006cde54;hpb=bc2cf75c1c7a338d0491f1341bb3fc10f86e2ecf;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/plugins/freeverb/Components/denormals.h b/cinelerra-5.1/plugins/freeverb/Components/denormals.h index bb100d31..a6d599a6 100644 --- a/cinelerra-5.1/plugins/freeverb/Components/denormals.h +++ b/cinelerra-5.1/plugins/freeverb/Components/denormals.h @@ -1,19 +1,27 @@ -// Macro for killing denormalled numbers -// -// Written by Jezar at Dreampoint, June 2000 -// http://www.dreampoint.co.uk -// Based on IS_DENORMAL macro by Jon Watte -// This code is public domain - -#ifndef _denormals_ -#define _denormals_ - -#define undenormalise(sample) if(((*(unsigned int*)&sample)&0x7f800000)==0) sample=0.0f - -#endif//_denormals_ - -//ends - - - - +// Macro for killing denormalled numbers +// +// Written by Jezar at Dreampoint, June 2000 +// http://www.dreampoint.co.uk +// Based on IS_DENORMAL macro by Jon Watte +// This code is public domain + +#ifndef _denormals_ +#define _denormals_ + +/* +#define undenormalise(sample) \ + if(((*(unsigned int*)&sample)&0x7f800000)==0) sample=0.0f +*/ + +static inline void undenormalise(float &sample) { + union { float f; unsigned int u; } v; v.f = sample; + if( !(v.u & 0x7f800000) ) sample=0.f; +} + +#endif//_denormals_ + +//ends + + + +