python numpy machine epsilon

后端 未结 3 1127
鱼传尺愫
鱼传尺愫 2020-11-28 03:27

I am trying to understand what is machine epsilon. According to the Wikipedia, it can be calculated as follows:

def machineEpsilon(func=float):
    machine_e         


        
3条回答
  •  轻奢々
    轻奢々 (楼主)
    2020-11-28 04:08

    It will already work, as David pointed out!

    >>> 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
    ... 
    >>> machineEpsilon(float)
    2.220446049250313e-16
    >>> import numpy
    >>> machineEpsilon(numpy.float64)
    2.2204460492503131e-16
    >>> machineEpsilon(numpy.float32)
    1.1920929e-07
    

提交回复
热议问题