U_FIXED(float value, uint32_t frac_bits)
{
value *= (1 << frac_bits);
- return value < 0 ? 0 : value;
+ return value < 0.0f ? 0 : (uint32_t) value;
}
/**
*
* \param frac_bits The number of bits used to store the fractional part.
*/
-static INLINE uint32_t
+static INLINE int32_t
S_FIXED(float value, uint32_t frac_bits)
{
- return value * (1 << frac_bits);
+ return (int32_t) (value * (1 << frac_bits));
}
/*@}*/
return MAX2(1, value >> levels);
}
+/**
+ * Return true if the given value is a power of two.
+ *
+ * Note that this considers 0 a power of two.
+ */
+static inline bool
+is_power_of_two(unsigned value)
+{
+ return (value & (value - 1)) == 0;
+}
+
/**
* Align a value up to an alignment value
*
/* Compute the size of an array */
#define ARRAY_SIZE(x) (sizeof(x) / sizeof(x[0]))
+/* Stringify */
+#define STRINGIFY(x) #x
#endif