分享一些经典的Math高效率运算算法,值得收藏
int Average(int a, int b)
{
return (a + b + 1) >> 1;
}
int Average(int a, int b, int c, int d)
{
return (a + b + c + d + 2) >> 2;
}
void SortU8(int & a, int & b)
{
int d = a - b;
int m = ~(d >> 8);
b += d & m;
a -= d & m;
}
int AbsDifferenceU8(int a, int b)
{
int d = a - b;
int m = d >> 8;
return (d & ~m)|(-d & m);
}
int Min(int a, int b)
{
return a < b ? a : b;
}
int Max(int a, int b)
{
return a > b ? a : b;
}
int RestrictRange(int value, int min = 0, int max = 255)
{
return Max(min, Min(max, value));
}
int Square(int a)
{
return a*a;
}
int SquaredDifference(int a, int b)
{
return Square(a - b);
}
int AbsDifference(int a, int b)
{
return a > b ? a - b : b - a;
}