This is an automatically generated file.
Part 1
Part 2
def has_sticky_bit():
"""Create a rounding situation designed to require a sticky bit.
Returns:
True if sticky detected, False otherwise
"""
Part 3
verdict = False
x = (ONE_HALF + ULP_OF_ONE_MINUS) * ULP_OF_ONE_PLUS
y = ONE_HALF * ULP_OF_ONE_PLUS
z = ONE + y
t = ONE + x
Part 4
if (z - ONE <= ZERO) and (t - ONE >= ULP_OF_ONE_PLUS):
z = t + y
y = z - x
Part 5
if (z - t >= ULP_OF_ONE_PLUS) and (y - t == ZERO):
x = (ONE_HALF + ULP_OF_ONE_MINUS) * ULP_OF_ONE_MINUS
y = ONE_HALF * ULP_OF_ONE_MINUS
z = ONE - y
t = ONE - x
Part 6
if (z - ONE == ZERO) and (t - ONE_MINUS_ULP == ZERO):
z = (ONE_HALF - ULP_OF_ONE_MINUS) * ULP_OF_ONE_MINUS
t = ONE_MINUS_ULP - z
q = ONE_MINUS_ULP - y
Part 7
if ((t - ONE_MINUS_ULP == ZERO)
and (ONE_MINUS_ULP - ULP_OF_ONE_MINUS - q == ZERO)):
z = (ONE + ULP_OF_ONE_PLUS) * ONE_AND_HALF
t = (ONE_AND_HALF + ULP_OF_ONE_PLUS) - z + ULP_OF_ONE_PLUS
x = ONE + ONE_HALF / B
y = ONE + B * ULP_OF_ONE_PLUS
z = x * y
Part 8
if (t == ZERO) and (x + B * ULP_OF_ONE_PLUS - z == ZERO):
if (B != TWO):
x = TWO + ULP_OF_ONE_PLUS
y = x / TWO
if (y - ONE) == ZERO:
verdict = True
else:
verdict = True
Part 9
return verdict
Part 10