From a3a34f3dee66953aaf1ff5cbbb3f65f93d8819ee Mon Sep 17 00:00:00 2001 From: David Widmann Date: Sat, 14 Feb 2026 00:04:14 +0100 Subject: [PATCH] Improve `AliasTable` sampler --- src/samplers/aliastable.jl | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/samplers/aliastable.jl b/src/samplers/aliastable.jl index 1f633cf716..d4ffdf6a04 100644 --- a/src/samplers/aliastable.jl +++ b/src/samplers/aliastable.jl @@ -3,5 +3,11 @@ struct AliasTable <: Sampleable{Univariate,Discrete} AliasTable(probs::AbstractVector{<:Real}) = new(AliasTables.AliasTable(probs)) end ncategories(s::AliasTable) = length(s.at) + rand(rng::AbstractRNG, s::AliasTable) = rand(rng, s.at) -show(io::IO, s::AliasTable) = @printf(io, "AliasTable with %d entries", ncategories(s)) +function _rand!(rng::AbstractRNG, s::AliasTable, x::AbstractArray{<:Real}) + rand!(rng, x, s.at) + return x +end + +show(io::IO, s::AliasTable) = print(io, "AliasTable with ", ncategories(s), " entries")