Skip to content

v0.9.7 Release Notes

Andreas Stuhlmüller edited this page Jan 27, 2017 · 7 revisions

compare v0.9.6 ... dev

New Features

Distribution arg checks

Distribution arguments are now checked at run time. For example, trying to create a Bernoulli distribution with success probability of -1 will now produce the following error:

Bernoulli({p: -1});
// => Error: Parameter "p" should be of type "real [0, 1]".

The docs include a list of parameters and the values they can take for each distribution.

extend

Added extend function.

Breaking Changes

Switch to lodash

The global variable _ is now bound to lodash rather than underscore in WebPPL programs. Many of the functions available as properties of _ will continue to work as before, but there are some breaking changes. This (non-exhaustive) list of differences between the two describes many of the changes. One change it doesn't mention is that _.object is longer available, though _.fromPairs offers the same functionality.

Global parameter set

Optimize and the Infer methods forward and SMC now implicitly operate on a global set of parameters, rather than on parameters passed via an argument.

Guide thunks

sample now expects guide distributions to be wrapped in a function of zero arguments. For example:

sample(dist, {guide: guideDist})

should now be written:

sample(dist, {guide: function() { return guideDist; }});

See the docs for more.

SMC ignoreGuide option

The ignoreGuide option of SMC has been replaced with a new importance option. See the docs for details of this new option.

The runner

The runner is now a global rather than been returned from prepare. This requires a change in webppl-editor which I don't think has happened yet?