Bruno Haible wrote:
Here's the module for the floorl() function. Very much like the truncl()
function.

Paolo, this replaces the floorl part of the 'mathl' module. I think the
following changes are all improvements:
  - Don't assume that LDBL_EPSILON is a power of two. If LDBL_EPSILON
    is not a power of two, I think the rounding will be incorrect for
    some numbers between 0.5/LDBL_EPSILON and 1.0/LDBL_EPSILON.
  - Forbid compiler optimizations: Compilers are allowed to rearrange
      y = 1.0L / LDBL_EPSILON + x - 1.0 / LDBL_EPSILON;
    into
      y = x,
    which would obviously break the function.
  - In math.h, do a "#define floorl rpl_floorl", in order to avoid
    possible undesired compiler optimizations.

No problem, but I wonder what's the rationale for the last item.

Paolo


Reply via email to