Newer
Older
abstract type AbstractLogDensity <: AbstractModel end
struct LogDensity{L} <: AbstractLogDensity
density :: L
end
logdensity(model::LogDensity{<:Function}, x) = model.density(x)
logdensity(model::LogDensity{<:Distribution}, x) = logpdf(model.density, x)
logdensity(model::AbstractMCMC.LogDensityModel, x) = LogDensityProblems.logdensity(model.logdensity, x)
include("samplebased.jl")
include("multilevel.jl")