shithub: aubio

Download patch

ref: 77a321cfb074c0b478402d60e7286378518deab9
parent: 5f4fd2fc728368192069e4e84d2bb8c80ff4cc0e
author: Paul Brossier <piem@piem.org>
date: Sun Oct 11 08:32:05 EDT 2009

src/aubio_priv.h: IS_DENORMAL also for negative ones, CEIL_DENORMAL for anything below 2.e-42

--- a/src/aubio_priv.h
+++ b/src/aubio_priv.h
@@ -197,10 +197,14 @@
 
 #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))