X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fplugins%2Ffreeverb%2FComponents%2Fdenormals.h;h=78285c46aa36f9929d70e3c4f49beae5060c5a2e;hb=bd0694fcee6080ec61e243ac6f278be5a48d564b;hp=bb100d31c6a9fc6720c94b3029c9b304006cde54;hpb=30bdb85eb33a8ee7ba675038a86c6be59c43d7bd;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..78285c46 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 + + + +