BLI_math: add simple helper to get amount of 'integer' digits in a float number.
This commit is contained in:
parent
702e9c556f
commit
c1e177ad29
|
@ -138,6 +138,9 @@ MINLINE int signum_i(float a);
|
|||
|
||||
MINLINE float power_of_2(float f);
|
||||
|
||||
MINLINE int integer_digits_f(const float f);
|
||||
MINLINE int integer_digits_d(const double d);
|
||||
|
||||
/* these don't really fit anywhere but were being copied about a lot */
|
||||
MINLINE int is_power_of_2_i(int n);
|
||||
MINLINE int power_of_2_max_i(int n);
|
||||
|
|
|
@ -314,6 +314,21 @@ MINLINE int signum_i(float a)
|
|||
else return 0;
|
||||
}
|
||||
|
||||
/** Returns number of (base ten) *significant* digits of integer part of given float
|
||||
* (negative in case of decimal-only floats, 0.01 returns -1 e.g.). */
|
||||
MINLINE int integer_digits_f(const float f)
|
||||
{
|
||||
return (f == 0.0f) ? 0 : (int)floor(log10(fabs(f))) + 1;
|
||||
}
|
||||
|
||||
/** Returns number of (base ten) *significant* digits of integer part of given double
|
||||
* (negative in case of decimal-only floats, 0.01 returns -1 e.g.). */
|
||||
MINLINE int integer_digits_d(const double d)
|
||||
{
|
||||
return (d == 0.0) ? 0 : (int)floor(log10(fabs(d))) + 1;
|
||||
}
|
||||
|
||||
|
||||
/* Internal helpers for SSE2 implementation.
|
||||
*
|
||||
* NOTE: Are to be called ONLY from inside `#ifdef __SSE2__` !!!
|
||||
|
|
Loading…
Reference in New Issue