diff options
Diffstat (limited to 'org-fc-algo-tn.el')
-rw-r--r-- | org-fc-algo-tn.el | 47 |
1 files changed, 28 insertions, 19 deletions
diff --git a/org-fc-algo-tn.el b/org-fc-algo-tn.el index 7b4f1bc..44583c6 100644 --- a/org-fc-algo-tn.el +++ b/org-fc-algo-tn.el @@ -4,34 +4,43 @@ (defun nth-tn (n) "The mathematical formula for the Nth triangular number." - (/ (* n - (1+ n)) + (/ (* n (1+ n)) 2)) (defun org-fc-algo-tn-next-parameters (ease box interval rating) "Calculate the next parameters of a card, based on the review RATING. EASE, BOX and INTERVAL are the current parameters of the card." - (let* ((incorrect-at-edge (and (eq rating 'incorrect) - (eq box 1))) - (incorrect (eq rating 'incorrect)) - (correct t) - (next-ease (cond (incorrect-at-edge (- ease 0.01)) - (incorrect (- ease 0.01)) - (correct ease))) - (next-box (cond (incorrect-at-edge box) - (incorrect (1- box)) - (correct 1+ box))) - (next-interval (cond (incorrect-at-edge 1) - (incorrect (nth-tn next-box)) - (correct (nth-tn next-box))))) + (let* + ((incorrect-at-edge + (and + (eq rating 'incorrect) + (eq box 0))) + (incorrect (eq rating 'incorrect)) + (correct t) + (next-ease + (cond + (incorrect-at-edge (1- ease)) + (incorrect (1- ease)) + (correct ease))) + (next-box + (cond + (incorrect-at-edge box) + (incorrect (1- box)) + (correct (1+ box)))) + (next-interval + (cond + (incorrect-at-edge 0) + (incorrect (nth-tn next-box)) + (correct (nth-tn next-box))))) (list next-ease next-box next-interval))) (defun org-fc-algo-tn-initial-review-data (position) "Initial TN review data for POSITION." - (let ((box 1) - (ease 1) - (interval 1) - (due (org-fc-timestamp-in 0))) + (let + ((box 0) + (ease 100) + (interval 0) + (due (org-fc-timestamp-in 0))) (list position ease box interval due))) ;;; Footer |