Factor out candidate generation and post-processing in discrete samplers to reduce boilerplate. This makes the update methods focus purely on computing the routing probabilities.
#64
+39
−35