eina: switch to equal FP_ZERO with fpclassify.
authorCedric BAIL <cedric@osg.samsung.com>
Fri, 6 Jan 2017 19:18:49 +0000 (11:18 -0800)
committerCedric BAIL <cedric@osg.samsung.com>
Fri, 6 Jan 2017 23:58:46 +0000 (15:58 -0800)
src/lib/eina/eina_util.h

index ef3089e..e0b27c6 100644 (file)
@@ -20,6 +20,7 @@
 #define EINA_UTIL_H_
 
 #include <float.h>
+#include <math.h>
 
 /**
  * @addtogroup Eina_Tools_Group Tools
@@ -80,13 +81,13 @@ EAPI Eina_Bool eina_flteq(float a, float b);
 #define EINA_FLT_EQ(a, b) (!!(fabsf((float)a - (float)b) <= FLT_EPSILON))
 
 /**
- * @brief Determine if a float is nonzero
+ * @brief Determine if a float is nozero
  * @param a The float
  *
- * @return @c true if float is nonzero
+ * @return @c true if float is nozero
  * @since 1.19
  */
-#define EINA_FLT_NONZERO(a) (!EINA_FLT_CMP((a), 0.0))
+#define EINA_FLT_NONZERO(a) (!!(fpclassify((float)(a)) != FP_ZERO))
 
 /**
  * @brief Safe comparison of double
@@ -99,13 +100,13 @@ EAPI Eina_Bool eina_flteq(float a, float b);
 #define EINA_DBL_EQ(a, b) (!!(fabs((double)a - (double)b) <= DBL_EPSILON))
 
 /**
- * @brief Determine if a double is nonzero
+ * @brief Determine if a double is nozero
  * @param a The double
  *
- * @return @c true if double is nonzero
+ * @return @c true if double is nozero
  * @since 1.19
  */
-#define EINA_DBL_NONZERO(a) (!EINA_DBL_CMP((a), 0.0))
+#define EINA_DBL_NONZERO(a) (!!(fpclassify((double)(a)) != FP_ZERO))
 
 /**
  * @}