From 76968afc790ff0235358840f2c4f4789381c8ec3 Mon Sep 17 00:00:00 2001 From: NunoSempere Date: Sun, 21 May 2023 00:46:10 -0400 Subject: [PATCH] add mixture implementation in nim. --- wip/nim/makefile | 2 +- wip/nim/samples | Bin 136400 -> 122544 bytes wip/nim/samples.nim | 46 ++++++++++++++++++++++++++++++++++++++++---- 3 files changed, 43 insertions(+), 5 deletions(-) diff --git a/wip/nim/makefile b/wip/nim/makefile index 236cffdd..68d836cc 100644 --- a/wip/nim/makefile +++ b/wip/nim/makefile @@ -1,2 +1,2 @@ build: samples.nim - nim c samples.nim + nim c --verbosity:0 samples.nim diff --git a/wip/nim/samples b/wip/nim/samples index d2fece247dcbc486bb0019624070d7e7fd0573e7..290e0239d90181aae03f56c53fe857bd1be47476 100755 GIT binary patch delta 39522 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 YUuFGY$LRVYswC}`&-i=9%xvy|0oK7_-~a#s delta 48406 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 float, n: int): seq[float] = + result = toSeq(1..n).map(_ => f()) + return result + +proc mixture(sxs: seq[seq[float]], ps: seq[float], n: int): seq[float] = + + assert sxs.len == ps.len + + var ws: seq[float] + var sum = 0.0 + for i, p in ps: + sum = sum + p + ws.add(sum) + ws = ws.map(w => w/sum) + + proc get_mixture_sample(): float = + let r = rand(1.0) + var i = ws.len - 1 + for j, w in ws: + if r < w: + i = j + break + ## only occasion when ^ doesn't assign i + ## is when r is exactly 1 + ## which would correspond to choosing the last item in ws + ## which is why i is initialized to ws.len + let xs = sxs[i] + let l = xs.len-1 + let k = rand(0..l) + return xs[k] + + return toSeq(1..n).map(_ => get_mixture_sample()) +