Sto cercando di capire cos'è la macchina epsilon. Secondo Wikipedia, può essere calcolato come segue:
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
Tuttavia, è adatto solo per numeri a doppia precisione. Mi interessa modificarlo per supportare anche numeri a precisione singola. Ho letto che numpy può essere utilizzato, in particolare di numpy.float32
classe. Qualcuno può aiutare a modificare la funzione?
numpy.float32
come argomento alla funzione!