;;; bundle--stats.el --- Statistics Lib -*- lexical-binding: t; -*- ;; Author: Marcus Kammer ;; Version: 0.0.1 ;; Keywords: statistics (defun stats:evenp (number) (if (= 0 (% number 2)) t nil)) (defun stats:oddp (number) (not (evenp number))) (defun stats:mean (list) (/ (apply #'+ list) (float (length list)))) (defun stats:median (list) (let* ((sorted (sort (copy-sequence list) #'<)) (len (length sorted)) (mid (floor (/ len 2)))) (if (evenp len) (/ (+ (nth mid sorted) (nth (1- mid) sorted)) 2.0) (nth mid sorted)))) (defun stats:standard-deviation (list) (let ((m (stats:mean list))) (sqrt (/ (seq-reduce (lambda (x acc) (+ x (expt (- x m) 2))) list 0) (length list))))) (provide 'bundle--stats) ;;; bundle--stats.el ends here