lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


> function float_equal(lhs, rhs, epsilon)
>     return math.abs(lhs - rhs) < epsilon
> end

As mentioned before, if you have to do this, you need to use *relative* error,
not absolute error:
      return math.abs(lhs - rhs) < epsilon*rhs

Floating-poin numbers are not distributed uniformily in their range;
there's lot of clustering and empty intervals, due to scaling.