We should support the WeightedAliasIndex distribution. While it's possible the memory usage is sufficiently high and the empirical distributions sufficiently simple that we opt to use a parameterized distribution instead, using the empirical distributions directly will likely be easier to get working, and could be good enough or necessary.
We opt for WeightedAliasIndex instead of WeightedIndex because it supports O(1) sampling instead of O(log n) at the cost of higher initialization, exactly the kind of tradeoff that makes sense in a Shadow experiment.
We should support the [`WeightedAliasIndex`](https://docs.rs/rand_distr/0.4.3/rand_distr/weighted_alias/struct.WeightedAliasIndex.html) distribution. While it's possible the memory usage is sufficiently high and the empirical distributions sufficiently simple that we opt to use a parameterized distribution instead, using the empirical distributions directly will likely be easier to get working, and could be good enough or necessary.
We opt for `WeightedAliasIndex` instead of [`WeightedIndex`](https://rust-random.github.io/rand/rand/distributions/struct.WeightedIndex.html) because it supports `O(1)` sampling instead of `O(log n)` at the cost of higher initialization, exactly the kind of tradeoff that makes sense in a Shadow experiment.
We should support the
WeightedAliasIndex
distribution. While it's possible the memory usage is sufficiently high and the empirical distributions sufficiently simple that we opt to use a parameterized distribution instead, using the empirical distributions directly will likely be easier to get working, and could be good enough or necessary.We opt for
WeightedAliasIndex
instead ofWeightedIndex
because it supportsO(1)
sampling instead ofO(log n)
at the cost of higher initialization, exactly the kind of tradeoff that makes sense in a Shadow experiment.Resolved via
ec9d2eb921
andedf8a376f2