diff --git a/src/samplers/aliastable.jl b/src/samplers/aliastable.jl index ddebbce57..56042930d 100644 --- a/src/samplers/aliastable.jl +++ b/src/samplers/aliastable.jl @@ -15,9 +15,8 @@ end function rand(rng::AbstractRNG, s::AliasTable) i = rand(rng, 1:length(s.alias)) % Int - u = rand(rng) - @inbounds r = u < s.accept[i] ? i : s.alias[i] - r + # using `ifelse` improves performance here: github.com/JuliaStats/Distributions.jl/pull/1831/ + ifelse(rand(rng) < s.accept[i], i, s.alias[i]) end show(io::IO, s::AliasTable) = @printf(io, "AliasTable with %d entries", ncategories(s))