Fix FIXME in comment

* src/timefns.c (decode_float_time): Explain why the code
can use large precision here, removing a FIXME by updating
the containing comment.
This commit is contained in:
Paul Eggert 2024-06-22 20:42:04 -04:00
parent 77e3a56507
commit 2b848a4e50

View file

@ -414,9 +414,11 @@ decode_float_time (double t, struct lisp_time *result)
else
{
int scale = double_integer_scale (t);
/* FIXME: `double_integer_scale` often returns values that are
"pessimistic" (i.e. larger than necessary), so 3.5 gets converted
to (7881299347898368 . 2251799813685248) rather than (7 . 2).
/* Because SCALE treats trailing zeros in T as significant,
on typical platforms with IEEE floating point
(time-convert 3.5 t) yields (7881299347898368 . 2251799813685248),
a precision of 2**-51 s, not (7 . 2), a precision of 0.5 s.
Although numerically correct, this generates largish integers.
On 64bit systems, this should not matter very much, tho. */
eassume (scale < flt_radix_power_size);