branch: master
commit ee76efd979a5ff669394bb585b4854cb374dddf4
Author: Oleh Krehel <[email protected]>
Commit: Oleh Krehel <[email protected]>

    Fix rounding error
    
    * avy.el (avy-subdiv): (log 14 14) is 1.0, but the floor of it can be
      either 1 or 0 due to machine precision. Add an eps to fix it.
    
    Fixes #37
---
 avy.el |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/avy.el b/avy.el
index 2f7d086..c5baaaf 100644
--- a/avy.el
+++ b/avy.el
@@ -29,6 +29,7 @@
 ;; in the original order by traversing the tree depth-first.
 
 ;;; Code:
+(require 'cl-macs)
 
 (defmacro avy-multipop (lst n)
   "Remove LST's first N elements and return them."
@@ -64,7 +65,7 @@ KEYS are placed appropriately on internal nodes."
 
 (defun avy-subdiv (n b)
   "Distribute N in B terms in a balanced way."
-  (let* ((p (1- (floor (log n b))))
+  (let* ((p (1- (floor (+ (log n b) 1e-6))))
          (x1 (expt b p))
          (x2 (* b x1))
          (delta (- n x2))

Reply via email to