Closed yebai closed 3 weeks ago
(this reply is a draft, will edit as I go)
JuliaBUGS now uses DynamicPPL for:
SimpleVarInfo
and the get/set functions (these are mostly BangBang
)unflatennning
functions that take a vector of values and restore them into the right size for logp evaluationitem 1, IMO can be totally removed because
still a lot of merits in using SimpleVarInfo, so good idea to transfer the code to AbstractPPL. JuliaBUGS
use a simple NamedTuple to store all the values, and varname
s in JuliaBUGS are simple and straightforward.
item 2, this is common code that can be shared by JuliaBUGS and DynamicPPL. these code can live in AbstractPPL.jl or Bijectors.jl
cc @mhauru and @penelopeysm
My view is that both SimpleVarInfo
(also known as tracing types or effects elsewhere in the PPL literature) and VarNamedVector
can eventually be transferred to AbstractPPL
.
All DynamicPPL functionality used by JuliaBUGS should probably be transferred to AbstractPPL.