Skip to content

Commit 7c2591d

Browse files
committed
fix
1 parent 8c6afce commit 7c2591d

File tree

1 file changed

+7
-11
lines changed

1 file changed

+7
-11
lines changed

src/SamplingUtils.jl

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -57,20 +57,16 @@ end
5757
end
5858
@inline function Base.iterate(it::SeqSampleIter, state)
5959
i, nv, Nv, q1, q2, threshold, vprime = state
60-
if nv > 1 && threshold < Nv
60+
if nv > 1
6161
s, vprime = skip(it.rng, nv, Nv, vprime, q1, q2)
6262
i, nv, Nv, q1, q2, threshold = new_state(it, s, i, nv, Nv, q1, q2, threshold)
6363
return (i, (i, nv, Nv, q1, q2, threshold, vprime))
64-
elseif nv > 1
65-
s = seqsample_a(it.rng, it.N - i, nv)
66-
nv -= 1
67-
i += s+1
68-
return (i, ((nv === 0 ? i : it.N+1), nv, Nv, q1, q2, threshold, vprime))
6964
else
70-
i === it.N+1 && return nothing
65+
nv === 0 && return nothing
7166
s = trunc(Int, Nv * vprime)
7267
i += s+1
73-
return (i, (it.N+1, nv, Nv, q1, q2, threshold, vprime))
68+
nv -= 1
69+
return (i, (i, nv, Nv, q1, q2, threshold, vprime))
7470
end
7571
end
7672

@@ -129,7 +125,7 @@ end
129125
return i, nv, Nv, q1, q2, threshold
130126
end
131127

132-
@inline function seqsample_a!(rng::AbstractRNG, n, k)
128+
@inline function seqsample_a(rng::AbstractRNG, n, k)
133129
if k > 1
134130
i = 0
135131
q = (n-k)/n
@@ -138,9 +134,9 @@ end
138134
n -= 1
139135
q *= (n-k)/n
140136
end
141-
return i
137+
return i, n
142138
else
143-
return trunc(Int, n * rand(rng))
139+
return trunc(Int, n * rand(rng)), n
144140
end
145141
end
146142

0 commit comments

Comments
 (0)