public static int FastDivideShortByByte(ushort n, byte d)
{
int i = d * 3;
uint m = masTable[i];
uint a = masTable[i + 1];
uint s = masTable[i + 2];
uint nTimesMPlusA = unchecked((n * m) + a);
uint shifted = nTimesMPlusA >> (int)s;
int r = (int)shifted;
return r;
}