commit 351f4c584de7722136fb7b160c3561818684af0d parent 4983699308398ab9cad624e2cb12b0bb57e821d3 Author: NunoSempere <nuno.sempere@protonmail.com> Date: Sun, 15 Oct 2023 00:17:52 +0100 savepoint before switching back to lists Diffstat:
| M | ocaml/out/samples | | | 0 | |
| M | ocaml/out/samples.cmi | | | 0 | |
| M | ocaml/out/samples.cmx | | | 0 | |
| M | ocaml/out/samples.o | | | 0 | |
| M | ocaml/samples.ml | | | 16 | +++++++++++++--- |
5 files changed, 13 insertions(+), 3 deletions(-)
diff --git a/ocaml/out/samples b/ocaml/out/samples Binary files differ. diff --git a/ocaml/out/samples.cmi b/ocaml/out/samples.cmi Binary files differ. diff --git a/ocaml/out/samples.cmx b/ocaml/out/samples.cmx 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 @@ -56,6 +56,16 @@ let mixture (samplers: (unit -> float) array) (weights: float array): float opti sample let () = - Random.init 1; - Printf.printf "%f\n" (sampleZeroToOne()); - Printf.printf "%f\n" (sampleZeroToOne()); + let sample0 () = 0. in + let sample1 () = 1. in + let sampleFew () = sampleTo 1. 3. in + let sampleMany () = sampleTo 2. 10. in + let p1 = 0.8 in + let p2 = 0.5 in + let p3 = p1 *. p2 in + let weights = [| 1. -. p3; p3 /. 2.; p3 /. 4.; p3/. 4. |] in + let sampler () = mixture [| sample0; sample1; sampleFew; sampleMany |] weights in + let n = 1_000_000 in + let samples = Array.init n (fun _ -> sampler ()) in + (* let mean = sumFloats samples /. n in *) + Printf.printf "Hello world\n"