Commit 22d4abf9 authored by Jakob Stierhof's avatar Jakob Stierhof

Add width qualifier to uniform init

Similar to "sigma" for the gaussian initializer, this
allows to run the chain in a specific range but initialize
it in a smaller range.
parent 263f5d64
......@@ -998,7 +998,7 @@ private define emceeInitUniformPick (init, engine) %{{{
k = 0;
_for i (0, length(c)-1) {
_for j (0, c[i]-1)
engine.walkers[j+k] = _max(p[i].min, _min(p[i].max, rand_uniform(numParameter)*(p[i].max-p[i].min)+p[i].min));
engine.walkers[j+k] = _max(p[i].min, _min(p[i].max, rand_uniform(numParameter)*init.width*(p[i].max-p[i].min)+p[i].min));
k += c[i];
}
}
......@@ -1006,8 +1006,9 @@ private define emceeInitUniformPick (init, engine) %{{{
%}}}
private define emceeInitUniform () %{{{
{
variable init = struct { @EmceeInit };
variable init = struct { @EmceeInit, width };
init.pick = &emceeInitUniformPick;
init.width = _min(_max(qualifier("width", 1.0), 1e-3), 1.0);
return init;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment