Math Lib: add power of 2 min/max for unsigned ints
This commit is contained in:
@@ -231,6 +231,9 @@ MINLINE int is_power_of_2_i(int n);
|
|||||||
MINLINE int power_of_2_max_i(int n);
|
MINLINE int power_of_2_max_i(int n);
|
||||||
MINLINE int power_of_2_min_i(int n);
|
MINLINE int power_of_2_min_i(int n);
|
||||||
|
|
||||||
|
MINLINE unsigned int power_of_2_max_u(unsigned int x);
|
||||||
|
MINLINE unsigned int power_of_2_min_u(unsigned int x);
|
||||||
|
|
||||||
MINLINE int iroundf(float a);
|
MINLINE int iroundf(float a);
|
||||||
MINLINE int divide_round_i(int a, int b);
|
MINLINE int divide_round_i(int a, int b);
|
||||||
MINLINE int mod_i(int i, int n);
|
MINLINE int mod_i(int i, int n);
|
||||||
|
@@ -151,6 +151,27 @@ MINLINE int power_of_2_min_i(int n)
|
|||||||
return n;
|
return n;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MINLINE unsigned int power_of_2_max_u(unsigned int x)
|
||||||
|
{
|
||||||
|
x -= 1;
|
||||||
|
x |= (x >> 1);
|
||||||
|
x |= (x >> 2);
|
||||||
|
x |= (x >> 4);
|
||||||
|
x |= (x >> 8);
|
||||||
|
x |= (x >> 16);
|
||||||
|
return x + 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
MINLINE unsigned power_of_2_min_u(unsigned x)
|
||||||
|
{
|
||||||
|
x |= (x >> 1);
|
||||||
|
x |= (x >> 2);
|
||||||
|
x |= (x >> 4);
|
||||||
|
x |= (x >> 8);
|
||||||
|
x |= (x >> 16);
|
||||||
|
return x - (x >> 1);
|
||||||
|
}
|
||||||
|
|
||||||
MINLINE int iroundf(float a)
|
MINLINE int iroundf(float a)
|
||||||
{
|
{
|
||||||
return (int)floorf(a + 0.5f);
|
return (int)floorf(a + 0.5f);
|
||||||
|
Reference in New Issue
Block a user