Próbuję zrozumieć, czym jest epsilon maszyny. Według Wikipedii można to obliczyć w następujący sposób:
def machineEpsilon(func=float):
machine_epsilon = func(1)
while func(1)+func(machine_epsilon) != func(1):
machine_epsilon_last = machine_epsilon
machine_epsilon = func(machine_epsilon) / func(2)
return machine_epsilon_last
Jednak nadaje się tylko do liczb o podwójnej precyzji. Jestem zainteresowany modyfikacją go, aby obsługiwał również liczby o pojedynczej precyzji. Czytałem, że można użyć numpy, szczególnie numpy.float32
class. Czy ktoś może pomóc w modyfikacji funkcji?
numpy.float32
jako argument do funkcji!