Skip to content
Snippets Groups Projects

fix random item draw

Merged STEVAN Antoine requested to merge fix-shuffle into main

related to

description

!122 (merged) introduced a draw_unique_indices function which uses a HashSet to accumulate unique indices in the range 0..<len. however, a HashSet does not preserve the order of insertion when iterating over the elements of the set... which results in apparent randomness, even though the RNG seed is the same :open_mouth:

this MR switches back to using shuffle which used to work, even though a bit less performant :ok_hand:
it's basically a revert of !122 (merged), while keeping the refactoring into random.rs.

measuring the performance

i did run the same timing experiment from !122 (merged) but with main on bb55005 and the MR on fix-shuffle

env main mr improvement
fixed:0 6sec 244ms 238µs 45ns 8sec 734ms 929µs 328ns -39.88783363238997
fixed:1 639ms 720µs 39ns 731ms 360µs 261ns -14.325051024390373

we loose a bit

Edited by STEVAN Antoine

Merge request reports

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
Please register or sign in to reply