File tree Expand file tree Collapse file tree 5 files changed +19
-14
lines changed Expand file tree Collapse file tree 5 files changed +19
-14
lines changed Original file line number Diff line number Diff line change 6
6
7
7
const Particle = Trace
8
8
9
- function Trace (f, rng:: Random.AbstractRNG )
10
- trng = TracedRNG (rng)
11
-
9
+ function Trace (f, rng:: TracedRNG )
12
10
ctask = let f = f
13
11
Libtask. CTask () do
14
- res = f (trng )
12
+ res = f (rng )
15
13
Libtask. produce (nothing )
16
14
return res
17
15
end
18
16
end
19
17
20
18
# add backward reference
21
- newtrace = Trace (f, ctask, trng )
19
+ newtrace = Trace (f, ctask, rng )
22
20
addreference! (ctask. task, newtrace)
23
21
24
22
return newtrace
Original file line number Diff line number Diff line change @@ -8,9 +8,12 @@ struct TracedRNG{T} <: Random.AbstractRNG where {T<:Random.AbstractRNG}
8
8
seed:: Any
9
9
end
10
10
11
-
12
11
# Set seed manually, for init ?
13
- Random. seed! (rng:: TracedRNG , seed) = Random. seed! (rng. rng, seed)
12
+ function Random. seed! (rng:: TracedRNG , seed)
13
+ rng. rng. seed = seed
14
+ return Random. seed! (rng. rng, seed)
15
+ end
16
+
14
17
# Reset the rng to the initial seed
15
18
Random. seed! (rng:: TracedRNG ) = Random. seed! (rng. rng, rng. seed)
16
19
Original file line number Diff line number Diff line change @@ -35,10 +35,12 @@ function AbstractMCMC.sample(
35
35
)
36
36
if ! isempty (kwargs)
37
37
@warn " keyword arguments $(keys (kwargs)) are not supported by `SMC`"
38
- end
38
+ end
39
39
40
40
# Create a set of particles.
41
- particles = ParticleContainer ([Trace (model, TracedRNG ()) for _ in 1 : sampler. nparticles])
41
+ particles = ParticleContainer ([
42
+ Trace (model, TracedRNG ()) for _ in 1 : (sampler. nparticles)
43
+ ])
42
44
43
45
# Perform particle sweep.
44
46
logevidence = sweep! (rng, particles, sampler. resampler)
@@ -83,7 +85,9 @@ function AbstractMCMC.step(
83
85
rng:: Random.AbstractRNG , model:: AbstractMCMC.AbstractModel , sampler:: PG ; kwargs...
84
86
)
85
87
# Create a new set of particles.
86
- particles = ParticleContainer ([Trace (model, TracedRNG ()) for _ in 1 : sampler. nparticles])
88
+ particles = ParticleContainer ([
89
+ Trace (model, TracedRNG ()) for _ in 1 : (sampler. nparticles)
90
+ ])
87
91
88
92
# Perform a particle sweep.
89
93
logevidence = sweep! (rng, particles, sampler. resampler)
Original file line number Diff line number Diff line change 22
22
23
23
# Create particle container.
24
24
logps = [0.0 , - 1.0 , - 2.0 ]
25
- particles = [AdvancedPS. Trace (fpc (logp), Random . MersenneTwister ()) for logp in logps]
25
+ particles = [AdvancedPS. Trace (fpc (logp), AdvancedPS . TracedRNG ()) for logp in logps]
26
26
pc = AdvancedPS. ParticleContainer (particles)
27
27
28
28
# Initial state.
94
94
end
95
95
96
96
# Test task copy version of trace
97
- tr = AdvancedPS. Trace (f2, Random . MersenneTwister ())
97
+ tr = AdvancedPS. Trace (f2, AdvancedPS . TracedRNG ())
98
98
99
99
consume (tr. ctask)
100
100
consume (tr. ctask)
Original file line number Diff line number Diff line change @@ -15,7 +15,7 @@ using Test
15
15
@testset " SMC and PG tests" begin
16
16
include (" smc.jl" )
17
17
end
18
- @testset " RNG tests" begin
19
- include (" rng.jl" )
18
+ @testset " RNG tests" begin
19
+ include (" rng.jl" )
20
20
end
21
21
end
You can’t perform that action at this time.
0 commit comments