[Merged by Bors] - Add @addlogprob! macro
#143
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR tries to address the inconvenience for users having to know about the internal variable
_varinfoand writingTuring.acclogp!(_varinfo, myvalue)to modify the accumulated joint log probability by adding a@addlogprob!macro which allows to simply write@addlogprob!(myvalue).In particular, it addresses TuringLang/Turing.jl#1332 (comment) (partly, the documentation still has to be updated) and might have avoided the discussion in TuringLang/Turing.jl#1328.
BTW, this macro is quite different from the removed
@logproband@varinfomacros since it is a "proper" Julia macro that is not replaced or touched by the DynamicPPL compiler.It might seem natural to call it
@acclogp!(since it just adds a call toacclogp!) but IMO a more descriptive name (such as@addlogprob!?) might be more intuitive for users.