Neal D. Becker wrote:
Is there a way in python to access properties of floats? I need something
equiv to C DBL_EPSILON defined in <float.h>.
you could try the traditional algorithm
>>> def dbl_epsilon(): ... n = 0 ... while 1: ... e = 1.0/2**n ... if (1.0+e==1.0): break ... n += 1 ... pe = e ... return pe ... >>> print dbl_epsilon() 2.22044604925e-016 >>>
on looking further I find my 'traditional' algorithm is actually something like this
def dbl_epsilon(_eps=[]): if not _eps: etop = 1.0 ebot = 0.0 eps = ebot+(etop-ebot)/2.0 while eps!=ebot and eps!=etop: epsp1 = 1.0 - eps if epsp1<1.0: etop = eps else: ebot = eps eps = ebot+(etop-ebot)/2.0 _eps.append(etop) assert (1.0-etop)<1.0 and (1.0-ebot)==1.0, 'Error in epsilon calculation' return _eps[0]
print dbl_epsilon()
which gives 5.55111512313e-017
-senility is making me stupidly yrs- Robin Becker -- http://mail.python.org/mailman/listinfo/python-list