From: Paul Brossier Date: Sun, 11 Oct 2009 10:32:05 +0000 (+0200) Subject: src/aubio_priv.h: IS_DENORMAL also for negative ones, CEIL_DENORMAL for anything... X-Git-Tag: bzr2git~145 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=77a321cfb074c0b478402d60e7286378518deab9;p=aubio.git src/aubio_priv.h: IS_DENORMAL also for negative ones, CEIL_DENORMAL for anything below 2.e-42 --- diff --git a/src/aubio_priv.h b/src/aubio_priv.h index ab950429..096828b3 100644 --- a/src/aubio_priv.h +++ b/src/aubio_priv.h @@ -197,10 +197,14 @@ typedef enum { #define VERY_SMALL_NUMBER 2.e-42 //1.e-37 -#define IS_DENORMAL(f) f < VERY_SMALL_NUMBER +/** if ABS(f) < VERY_SMALL_NUMBER, returns 1, else 0 */ +#define IS_DENORMAL(f) ABS(f) < VERY_SMALL_NUMBER +/** if ABS(f) < VERY_SMALL_NUMBER, returns 0., else f */ #define KILL_DENORMAL(f) IS_DENORMAL(f) ? 0. : f -#define CEIL_DENORMAL(f) IS_DENORMAL(f) ? VERY_SMALL_NUMBER : f + +/** if f > VERY_SMALL_NUMBER, returns f, else returns VERY_SMALL_NUMBER */ +#define CEIL_DENORMAL(f) f < VERY_SMALL_NUMBER ? VERY_SMALL_NUMBER : f #define SAFE_LOG10(f) LOG10(CEIL_DENORMAL(f)) #define SAFE_LOG(f) LOG(CEIL_DENORMAL(f))