Skip to content
Snippets Groups Projects
all.jl 817 B
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")