Math Lib: add power of 2 min/max for unsigned ints
This commit is contained in:
parent
95ac6bc9e5
commit
2a82b8ade5
|
@ -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_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 divide_round_i(int a, int b);
|
||||
MINLINE int mod_i(int i, int n);
|
||||
|
|
|
@ -151,6 +151,27 @@ MINLINE int power_of_2_min_i(int 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)
|
||||
{
|
||||
return (int)floorf(a + 0.5f);
|
||||
|
|
Loading…
Reference in New Issue