static int avg(int a,int b)
{
return (a + b) >> 1;
}
static int avg2(int a, int b)
{
return b+((a - b) >> 1);
}
static int avg3(int a, int b)
{
return (a & b) + ((a ^ b) >> 1);
}
static int avg4(int a, int b)
{
return (a ^ b) + ((a & b) << 1);
}
static uint avg5(uint a, uint b)
{
return (a >> 1) + (b >> 1) + (a & b & 1);
}