fast_float/script/analysis.py
2020-10-19 12:38:13 -04:00

36 lines
649 B
Python

from math import floor
def log2(x):
"""returns ceil(log2(x)))"""
y = 0
while((1<<y) < x):
y = y + 1
return y
for q in range(1,17+1):
d = 5**q
b = 127 + log2(d)
t = 2** b
c = t//d + 1
assert c < 2**128
assert c >= 2**127
K = 2**127
if(not(c * K * d<=( K + 1) * t)):
print(q)
top = floor(t/(c * d - t))
sys.exit(-1)
for q in range(18, 344+1):
d = 5**q
b = 64 + 2*log2(d)
t = 2**b
c = t//d + 1
assert c > 2**(64 +log2(d))
K = 2**64
if(not(c * K * d<=( K + 1) * t)):
print(q)
top = floor(t/(c * d - t))
sys.exit(-1)
print("all good")