5 (values (unsigned-byte 8) &optional
))
9 (return-from clamp
255))
12 (defun count-non-zero-ub8 (vol)
13 (declare ((simple-array (unsigned-byte 8) 3) vol
)
14 (values fixnum
&optional
))
16 (vol1 (sb-ext:array-storage-vector vol
)))
17 (dotimes (i (length vol1
))
18 (when (< 0 (aref vol1 i
))
22 (defun histogram (img &optional
(bins 30))
23 (declare ((array (unsigned-byte 8) 1) img
)
25 (values (simple-array fixnum
1) (unsigned-byte 8) (unsigned-byte 8) (unsigned-byte 8)
27 (let* ((maxval (aref img
0))
31 (let ((v (aref img i
)))
36 (let* ((len (1+ (- maxval minval
)))
37 (result (make-array len
:element-type
'fixnum
))
38 (binsm (min (- maxval minval
) bins
)))
39 (when (eq maxval minval
)
40 #+nil
(error "data is too boring.")
41 (return-from histogram
(values result minval maxval binsm
)))
43 (incf (aref result
(floor (* binsm
47 (values result minval maxval binsm
))))
51 (values my-float
&optional
))
54 ;; chernov/book.pdf p. 20
55 (defun linear-regression (y &optional
56 (x (let* ((n (length y
)))
59 :element-type
'my-float
61 (loop for i below n collect
(* one i
))))))
62 "Linear regression of the values in Y with the function y=a*x+b. If
63 X isn't supplied its assumed to be 0,1,2, ... . Returned are the
64 fitting parameters A and B and their errors DELTA_A and DELTA_B."
65 (declare ((array my-float
1) y x
)
66 (values my-float my-float my-float my-float
&optional
))
68 (xmean (/ (loop for xi across x sum xi
) n
))
69 (ymean (/ (loop for xi across y sum xi
) n
))
70 (sxx (loop for xi across x sum
(square (- xi xmean
))))
71 #+nil
(syy (loop for xi across y sum
(square (- xi ymean
))))
72 (sxy (loop for i below n sum
(* (- (aref x i
) xmean
)
73 (- (aref y i
) ymean
))))
75 (ahat (- ymean
(* bhat xmean
)))
76 (var (/ (loop for i below n sum
(square (- (aref y i
) ahat
77 (* bhat
(aref x i
)))))
79 (vara (* var
(+ (/ (square xmean
)
83 (values ahat bhat
(sqrt vara
) (sqrt varb
))))
86 (linear-regression (let* ((ll (list one
2.0one
3d0
4d0
)))
87 (make-array (length ll
)
88 :element-type
'my-float
89 :initial-contents ll
)))