emacs.d/bundle/bundle--stats.el

33 lines
811 B
EmacsLisp
Raw Normal View History

2024-02-24 12:46:13 +01:00
;;; bundle--stats.el --- Statistics Lib -*- lexical-binding: t; -*-
;; Author: Marcus Kammer
;; Version: 0.0.1
;; Keywords: statistics
(defun stats:evenp (number)
2024-02-24 10:21:55 +01:00
(if (= 0 (% number 2))
t
nil))
2024-02-24 12:46:13 +01:00
(defun stats:oddp (number)
2024-02-24 10:21:55 +01:00
(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)))))
2024-02-24 12:46:13 +01:00
(provide 'bundle--stats)
;;; bundle--stats.el ends here