# coding: utf-8
# # Density of Floating Point Numbers
#
# This notebook enumerates all possible floating point nubmers in a floating point system and shows them in a plot to illustrate their density.
# In[2]:
import matplotlib.pyplot as pt
import numpy as np
# In[13]:
significand_bits = 4
exponent_min = -3
exponent_max = 4
fp_numbers = []
for exp in range(exponent_min, exponent_max+1):
for sbits in range(0, 2**significand_bits):
significand = 1 + sbits/2**significand_bits
fp_numbers.append(significand * 2**exp)
fp_numbers = np.array(fp_numbers)
print(fp_numbers)
pt.plot(fp_numbers, np.ones_like(fp_numbers), "+")
#pt.semilogx(fp_numbers, np.ones_like(fp_numbers), "+")
# In[ ]: