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.
Novelties
root_optim!
androot_update!
here, which are similar tobranchlength/nni_update!
in style/conceptuallymodels
-updates, but here we offload to the user and don't implement our own models-updating-algorithm.nni/branchlength/root/model_update!
Modifications
metropolis_step
interface, we can now transform the current value into a convenient parameter-space, which makes it easies to write cleanproposal
andlog_prior
definitions.Arguably sketchy stuff
metropolis_step
, I calltr
andinvtr
which maybe aren't top names.K
times per MCMC iteration withStandardUpdate
, instead of puttingroot=K
in theStandardUpdate
-constructor, we let ourConcreteRootSample <: RootSample
haveBase.length(::ConcreteRootSample) = K
. This is a bit hacky and weird but it's because we only need to callfelsenstein_roundtrip!
once and notK
times to do this.models
-trace duringmetropolis_sample
, it's currently stored in aVector{Any}
. We can compress the stuff that's stored in that vector bycollapse_models
, butVector{Any}
is probably quite bad for performance.