On Sun, Mar 13, 2016 at 3:48 PM, Eric Smith <space...@gmail.com> wrote:
> They may effectively have a "sticky" bit, similar to that used in IEEE > 754 FP. A sticky bit is used when shifting an operand right; if any > one bits are shifted into the stick bit position, the sticky bit > becomes 1, but shifting a zero into it does not clear it to zero. IEEE > 754 uses the sticky bit to implement correct rounding. > > In this case, if there's a sticky bit it would prevent a non-zero > operand mantissa that is shifted right from ever actually reaching > zero. If that operand is negative, that might result in the behavior > you're seeing, where one ULP is being subtracted from the other > operand. > 'sticky bit' is what got me through to the 47th test, so it's close but not quite right. (Assuming I implemented it correctly. "if shifted mantissa is all ones and any ones were shifted out, then set the mantissa to 0".) -- Charles