private static uint getOne(bool isNeg, uint[] data, int i, ref bool seenNonZero) { if (i < data.Length) { uint ret = data[i]; return isNeg ? extend(ret, ref seenNonZero) : ret; } else { return isNeg ? uint.MaxValue : 0; } }