Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 1 addition & 8 deletions Project.toml
Original file line number Diff line number Diff line change
@@ -1,15 +1,12 @@
name = "SliceSampling"
uuid = "43f4d3e8-9711-4a8c-bd1b-03ac73a255cf"
version = "0.7.4"
version = "0.7.5"

[deps]
AbstractMCMC = "80f14c24-f653-4e6a-9b94-39d6b0f70001"
Accessors = "7d9f7c33-5ae7-4f3b-8dc6-eff91059b697"
Distributions = "31c24e10-a181-5473-b8eb-7969acd0382f"
FillArrays = "1a297f60-69ca-5386-bcde-b61e274b549b"
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
LogDensityProblems = "6fdf6af0-433a-55f7-b3ed-c6c6e0b8df7c"
LogDensityProblemsAD = "996a588d-648d-4e1f-a8f0-a84b347e47b1"
Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
Requires = "ae029012-a4dd-5104-9daa-d747884805df"

Expand All @@ -21,14 +18,10 @@ SliceSamplingTuringExt = ["Turing"]

[compat]
AbstractMCMC = "4, 5"
Accessors = "0.1"
Distributions = "0.25"
FillArrays = "1"
LinearAlgebra = "1"
LogDensityProblems = "2"
LogDensityProblemsAD = "1"
Random = "1"
Requires = "1"
Turing = "0.37, 0.38"
julia = "1.10"

Expand Down
2 changes: 0 additions & 2 deletions ext/SliceSamplingTuringExt.jl
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,10 @@
module SliceSamplingTuringExt

if isdefined(Base, :get_extension)
using LogDensityProblemsAD
using Random
using SliceSampling
using Turing
else
using ..LogDensityProblemsAD
using ..Random
using ..SliceSampling
using ..Turing
Expand Down
28 changes: 0 additions & 28 deletions src/SliceSampling.jl
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,11 @@
module SliceSampling

using AbstractMCMC
using Accessors
using Distributions
using FillArrays
using LinearAlgebra
using LogDensityProblems
using Random

# The following is necessary because Turing wraps all models with
# LogDensityProblemsAD by default. So we need access to these types.
using LogDensityProblemsAD

# reexports
using AbstractMCMC: sample, MCMCThreads, MCMCDistributed, MCMCSerial
export sample, MCMCThreads, MCMCDistributed, MCMCSerial
Expand Down Expand Up @@ -59,14 +53,6 @@ function initial_sample(::Random.AbstractRNG, ::Any)
)
end

# If target is from `LogDensityProblemsAD`, unwrap target before calling `initial_sample`.
# This is necessary since Turing wraps `DynamicPPL.Model`s when passed to an `externalsampler`.
function initial_sample(
rng::Random.AbstractRNG, wrap::LogDensityProblemsAD.ADGradientWrapper
)
return initial_sample(rng, parent(wrap))
end

function exceeded_max_prop(max_prop::Int)
return error(
"Exceeded maximum number of proposal $(max_prop), ",
Expand Down Expand Up @@ -116,18 +102,4 @@ include("multivariate/latent.jl")
export GibbsPolarSlice
include("multivariate/gibbspolar.jl")

# Turing Compatibility

if !isdefined(Base, :get_extension)
using Requires
end

@static if !isdefined(Base, :get_extension)
function __init__()
@require Turing = "fce5fe82-541a-59a6-adf8-730c64b5f9a0" include(
"../ext/SliceSamplingTuringExt.jl"
)
end
end

end
5 changes: 3 additions & 2 deletions src/multivariate/randpermgibbs.jl
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,8 @@ end

function LogDensityProblems.logdensity(gibbs::GibbsTarget, θi)
(; model, idx, θ) = gibbs
return LogDensityProblems.logdensity(model, (@set θ[idx] = θi))
θ[idx] = θi
return LogDensityProblems.logdensity(model, θ)
end

function AbstractMCMC.step(
Expand Down Expand Up @@ -73,7 +74,7 @@ function AbstractMCMC.step(
unislices = if sampler.unislice isa AbstractVector
sampler.unislice
else
Fill(sampler.unislice, d)
fill(sampler.unislice, d)
end

props = zeros(Int, d)
Expand Down
Loading