From 880fab4d39edc5453c3fecca8048a933b92b5258 Mon Sep 17 00:00:00 2001 From: John Gibson Date: Sat, 13 Aug 2022 22:10:12 -0400 Subject: [PATCH] Implement split-stems --- src/text/stem-and-leaf.lisp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/text/stem-and-leaf.lisp b/src/text/stem-and-leaf.lisp index 8fe43ca..9a3b13b 100644 --- a/src/text/stem-and-leaf.lisp +++ b/src/text/stem-and-leaf.lisp @@ -24,14 +24,14 @@ (default is 1). Currently not implemented SPLIT-STEMS - if T the stems will be split. Currently not implemented." (declare (ignore leaf-size)) ; we'll use it later - (declare (ignore split-stems)) ; Not implemented. See github issue #2 + (check-type x vector) - (let* ((all-stems (efloor (e/ x stem-size))) + (let* ((all-stems (efloor (e/ x (if split-stems (/ stem-size 2) stem-size)))) (all-leaves (emod x stem-size)) (stem-fmt (format nil "~~~AD |" (length (format nil "~A" (sequence-maximum all-stems))))) (leaf-strings-vector (leaf-strings all-stems all-leaves))) (loop for s from (sequence-minimum all-stems) to (sequence-maximum all-stems) - do (progn (format t stem-fmt s) + do (progn (format t stem-fmt (if split-stems (floor (/ s 2)) s)) (format t "~A~%" (gethash s leaf-strings-vector)))))) (defun back-to-back-stem-and-leaf (x y &key (stem-size 10) (leaf-size 1) split-stems)