]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix FIXME in comment
authorPaul Eggert <eggert@cs.ucla.edu>
Sun, 23 Jun 2024 00:42:04 +0000 (20:42 -0400)
committerEshel Yaron <me@eshelyaron.com>
Mon, 24 Jun 2024 07:04:43 +0000 (09:04 +0200)
* src/timefns.c (decode_float_time): Explain why the code
can use large precision here, removing a FIXME by updating
the containing comment.

(cherry picked from commit 2b848a4e504319cce150000a2c3855f66d89714b)

src/timefns.c

index 0ecbb6e679386a380654a173bfeddb536cf584c7..746e422ffb663d29043d196988eaae75f3eed9ec 100644 (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);