Newer
Older
abstract type RejectionBasedSampler <: AbstractMCMC.AbstractSampler end
# Ignore chain length by default
function AbstractMCMC.save!!(samples, sample, iterations::Integer, model::AbstractModel, sampler::RejectionBasedSampler, ::Integer; kwargs...)
AbstractMCMC.save!!(samples, sample, iterations, model, sampler; kwargs...)
end
# Size hint sample container chain length
function AbstractMCMC.samples(sample, model::AbstractModel, sampler::RejectionBasedSampler, N::Integer; kwargs...)
samples = AbstractMCMC.samples(sample, model, sampler; kwargs...)
T = typeof(samples)
for (k,t) in zip(T.parameters[1], T.types)
if t <: AbstractVector
sizehint!(getfield(samples, k), N)
end
end
return samples
end
include("metropolis_hastings.jl")
include("christen_fox.jl")