the smallest epsilon for reliable inequality calculation
Subject: the smallest epsilon for reliable inequality calculation
From: Ed Romana
Date: Sat, 23 Jun 2012 21:07:50 -0700 (GMT-07:00)
~~~
Given a real number, is there a Maxima function that returns the
smallest epsilon for reliable inequality determination.
Within a factor of 2, one such function could be:
(%i) kill(all)$
(%i1) inequality_eps(real_number) := block([],
eps: abs(real_number/2.0e0 ),
do ( if not( is ( real_number < (real_number + eps) )) then (eps: 2.0*eps, return(eps)) ,
eps: eps/2.0 ) ) $
Then, for example if
(%i2) x:-1.1e50 $
(%i3) inequality_eps(x);
(%o3) 1.2212453270876723*10^34
(%i4) eps;
(%o4) 1.2212453270876723*10^34
then for eps the following inequality is true
(%i5) is (x < x+eps);
(%o5) true
for eps/2 the inequality is false
(%i6) is (x < x + eps/2);
(%o6) false
But instead of a factor of 2, how about a function that is within a factor of
(1.0 + 1.0e-8) or even a factor of (1.0 + 1.0e-16).
e
~~~