time-to-botec

Benchmark sampling in different programming languages
Log | Files | Refs | README

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:
Mocaml/out/samples | 0
Mocaml/out/samples.o | 0
Mocaml/samples.ml | 4++--
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