;;;; Evett's 1994 algorithm for determining LRs (load "utests.lisp") (deftest naive-evett94-test () "Performs a test for Evett's 1994 naive algorithm." (check (= 525.02 (naive-evett94)) ) ) (defun naive-evett94 (&optional &key (n 4) (p-values #(.25 .22 .14 .14 .069 .064 .033 .033 .022 .02 .013)) (s-values #(.728 .166 .065 .018 .018 .006)) (t-values #(.02 .075 .145 .195 .195 .155 .105 .06 .03 .01 .005)) (f-value .03) ) "Performs the naive algorithm for determining the LR using data supplied by the LHS survey." (+ (/ (* (elt p-values 0) (elt t-values n)) (* (elt p-values 1) (elt s-values n) f-value)) (elt t-values 0)) ) (deftest test-evett94 () "Performs a test for Evett's 1994 algorithm." (check ( = 20.357302 (evett94) ) ) ) (defun evett94 ( &optional &key (z 1) (n 1) (p-values #(.41 .28 .13 .1 .05 .02 .01 .005)) (s-values #(.70 .18 .08 .025 .015)) (t-values #(.02 .075 .145 .195 .195 .155 .105 .06 .03 .01 .005)) (f-value .03) ) "Performs the algorithm for determining the LR using data supplied by the LHS given a factor of z, and a number of fragments on clothing n." (/ (+ (* (elt t-values 0) (elt p-values 1) (elt s-values n) f-value) (* (elt t-values n) (elt p-values 0))) (* (elt p-values 1) (elt s-values n) f-value)) )