Skip to content

Commit 4b3adbd

Browse files
committed
Using CL-SLICE (sub is obsolete).
1 parent ea844b9 commit 4b3adbd

File tree

3 files changed

+19
-18
lines changed

3 files changed

+19
-18
lines changed

cl-random.asd

+1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
#:array-operations
99
#:cl-num-utils
1010
#:cl-rmath
11+
#:cl-slice
1112
#:let-plus
1213
#:lla)
1314
:pathname #P"src/"

src/multivariate.lisp

+17-18
Original file line numberDiff line numberDiff line change
@@ -39,13 +39,13 @@ square root of variance."
3939
(dotimes (i n)
4040
(setf (aref x i) (* sd (draw-standard-normal))))
4141
(e+ mean (mm variance-left-sqrt x))))
42-
(sub (&rest index-specifications)
43-
(let+ (((index-specification) index-specifications)
44-
(mean (sub mean index-specification))
45-
(variance (sub (variance instance) index-specification)))
46-
(if (vectorp mean)
47-
(r-multivariate-normal mean variance)
48-
(r-normal mean variance)))))
42+
(slice (&rest slices)
43+
(let+ (((slice) slices)
44+
(mean (slice mean slice))
45+
(variance (slice (variance instance) slice slice)))
46+
(if (vectorp mean)
47+
(r-multivariate-normal mean variance)
48+
(r-normal mean variance)))))
4949

5050
;;; Multivariate T distribution
5151
;;;
@@ -107,9 +107,9 @@ square root of variance."
107107
(let ((scaling-factor (draw scaling-factor)))
108108
(values (draw multivariate-normal :scale scaling-factor)
109109
scaling-factor)))
110-
(sub (&rest index-specifications)
111-
(let+ (((index-specification) index-specifications)
112-
(normal (sub multivariate-normal index-specification))
110+
(slice (&rest slices)
111+
(let+ (((slice) slices)
112+
(normal (slice multivariate-normal slice))
113113
((&accessors-r/o nu s^2) scaling-factor))
114114
(etypecase normal
115115
(r-normal
@@ -190,11 +190,10 @@ returned as decompositions.")
190190
(alpha0 :type internal-float :documentation "Sum of alphas."))
191191
(let ((alpha (as-float-vector alpha :copy? t)))
192192
(make :alpha alpha :alpha0 (clnu:sum alpha)))
193-
(cl-slice:slice
194-
(&rest slices)
195-
(let+ (((slice) slices)
196-
(slice (cl-slice-dev:canonical-representation (length alpha) slice)))
197-
(if (cl-slice-dev:singleton-representation? slice)
198-
(let ((alpha (aref alpha slice)))
199-
(r-beta alpha (- alpha0 alpha)))
200-
(error "Not implemented for multivariate selections.")))))
193+
(slice (&rest slices)
194+
(let+ (((slice) slices)
195+
(slice (cl-slice-dev:canonical-representation (length alpha) slice)))
196+
(if (cl-slice-dev:singleton-representation? slice)
197+
(let ((alpha (aref alpha slice)))
198+
(r-beta alpha (- alpha0 alpha)))
199+
(error "Not implemented for multivariate selections.")))))

src/package.lisp

+1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
#:anaphora
66
#:cl-num-utils.num=
77
#:cl-random.internals
8+
#:cl-slice
89
#:let-plus
910
#:lla)
1011
(:shadow #:mean #:variance) ; also in ALEXANDRIA

0 commit comments

Comments
 (0)