diff --git a/ocaml/out/samples b/ocaml/out/samples index dbf252f3..c452ddf0 100755 Binary files a/ocaml/out/samples and b/ocaml/out/samples differ diff --git a/ocaml/out/samples.o b/ocaml/out/samples.o index 3c007fac..b81ec268 100644 Binary files a/ocaml/out/samples.o and b/ocaml/out/samples.o differ diff --git a/ocaml/samples.ml b/ocaml/samples.ml index d35dfd26..83b2a540 100644 --- a/ocaml/samples.ml +++ b/ocaml/samples.ml @@ -65,13 +65,13 @@ let sampleTo low high = sampleLognormal logmean logstd let mixture (samplers: (unit -> float) list) (weights: float list): (float, string) result = - if (List.length samplers == List.length weights) + if (List.length samplers <> List.length weights) then Error "in mixture function, List.length samplers != List.length weights" else let normalized_weights = normalizeXs weights in let cumsummed_normalized_weights = cumsumXs normalized_weights in let p = sampleZeroToOne () in - let chosenSamplerIndex = findIndex cumsummed_normalized_weights (fun x -> x < p) in + let chosenSamplerIndex = findIndex cumsummed_normalized_weights (fun x -> p < x) in let sampler = match chosenSamplerIndex with | Error e -> Error e | Ok(i) -> nth samplers i