commit 710eb4267bbcf46a45d9d6d6282d6e85f0d76621
parent 4708c6f198c2296b5be3cd531e6a5d7d6fac0b4d
Author: NunoSempere <nuno.sempere@protonmail.com>
Date: Sun, 15 Oct 2023 00:53:58 +0100
finally fix types, but get numeric error
Diffstat:
3 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/ocaml/out/samples b/ocaml/out/samples
Binary files differ.
diff --git a/ocaml/out/samples.o b/ocaml/out/samples.o
Binary files differ.
diff --git 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