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")