Liking cljdoc? Tell your friends :D

Concepts and reading paths

Foerster runs probabilistic programs on Spindel's forkable execution runtime. These five objects have different roles and lifetimes:

ObjectMeaningBoundary
WorldAn execution context containing managed application state and registered systems. Canonical particle methods copy the caller's world; fresh-world methods start without it.Forking isolates state supported by the runtime or a system adapter. Ordinary host atoms and arbitrary I/O are outside that boundary.
TraceOne run's addressed random choices, observations, scores and replay information. Trace operations can propose changes and re-execute a model.Live replay resources have ownership and cleanup obligations. An arbitrary collection of values is not a replayable trace.
MeasureA settled inference result, with weighted values, summaries and method-specific diagnostics.It is not a collection of live application worlds. Normalizer/evidence availability depends on the estimator.
PopulationIntermediate inference state over a target, with weights and retained trace or numeric values. Population programs compose target changes, resampling and moves.A move's invariance, a proposal correction and an evidence estimate are separate contracts. A common result interface does not certify all three.
Numerical blockA site exposing a joint numeric state and explicit density, gradient or other sampler capabilities. Raster can compile those supplied functions.Foerster does not automatically extract a differentiable density from an arbitrary simulator.

A typical particle run starts from a world, records traces, maintains a population, then settles a measure and retires its owned worlds. Numerical methods can instead operate on block values. Read the algorithm guide for each entry point's model and world-policy requirements.

Choose a path

Causal inference, amortized inference and incremental trace inference each have additional model assumptions and current restrictions. In particular, counterfactuals need structural mechanisms and a declared noise coupling; an amortized sampler is an approximation whose training loss alone does not validate its posterior; fixed-target trace reuse does not implement a general reactive posterior controller.

Can you improve this documentation?Edit on GitHub

cljdoc builds & hosts documentation for Clojure/Script libraries

Keyboard shortcuts
Ctrl+kJump to recent docs
←Move to previous article
→Move to next article
Ctrl+/Jump to the search field
× close