(defn sum-of-flips-infer []
(det-cp :sum-of-flips-infer
(let [a (gv (flip-cp :a 0.5))
b (gv (flip-cp :b 0.5))
c (gv (flip-cp :c 0.5))
v (fn [x] (if x 1 0))
s (+ (v a) (v b) (v c))]
(if (= s 2)
(v a)
(trace-failure)))))
(defn run-sample [model]
(density
(take 7500 (drop 500 (metropolis-hastings-sampling model)))))
(defn run-sample-monte [model]
(density
(take 7500 (drop 500 (monte-carlo-sampling model)))))
run-sample-monte emits correct result, however run-sample does not.
Am I doing wrong or something is wrong in the code?