roundamix

3 min read Original article ↗

Project description

If you ever drove in Spain, you might notice their affinity for roundabouts. If you enter a system of 3 roundabouts in a village and take not of both the cars infront and behind you, by the last roundabout its highly probably you wont be between the same two neighbors.

Instead of a black-box shuffle, you get a tunable process with real controls: routing bias, merge randomness, recirculation depth, and injection strategy. The result is near-classic shuffle quality with more visibility and control.

  • For data and systems teams: mix ordered streams before downstream processing without relying on one monolithic random shuffle step.
  • For simulation and research: study queueing, congestion, and mixing quality in one model.
  • For product and game systems: produce high-entropy but reproducible event ordering from seed-based runs.

Benchmark Snapshot

Our optimized roundabout shuffler is now close to standard random shuffling quality.

  • Kendall-tau: 0.4907 (optimized) vs 0.5030 (Fisher-Yates) -> 97.5% of Fisher-Yates mixing.
  • Chi-squared uniformity p-value: 0.5858 (optimized) vs 0.5546 (Fisher-Yates) -> both pass.
  • Bit bias: +0.0051 (optimized) vs +0.0085 (Fisher-Yates) -> both near zero.
  • Total variation distance: 0.0835 (optimized) vs 0.0824 (Fisher-Yates).

In short: this is not just a metaphor. It delivers near Fisher-Yates quality while staying interpretable, tunable, and simulation-friendly.

Package Usage

pip install -e .
roundamix --profile optimized --size 14 --seed 42
roundamix-benchmark --size 14 --trials 300

You can also run without installing:

python -m roundamix --profile optimized --size 14 --seed 42
python -m roundamix.benchmark --size 14 --trials 300

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Built Distribution

Filter files by name, interpreter, ABI, and platform.

If you're not sure about the file name format, learn more about wheel file names.

Copy a direct link to the current filters

File details

Details for the file roundamix-0.1.1.tar.gz.

File metadata

  • Download URL: roundamix-0.1.1.tar.gz
  • Upload date:
  • Size: 16.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for roundamix-0.1.1.tar.gz
Algorithm Hash digest
SHA256 44adca16943178938a41c29dfd29d9dc1653ef6c85f9d23652a85c1ce79d8ce9
MD5 9010528a5ae6ab7f60f4cc50695fa4a3
BLAKE2b-256 5315f03443ea80360f8c49532585ff303eb96c90ad1abc88c6444fe2bac50164

See more details on using hashes here.

File details

Details for the file roundamix-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: roundamix-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 16.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for roundamix-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 35d4fb0d8f75a9283cadecd63ef5dacf612eda8f7e591dc6bd225eff176923e6
MD5 c05bfcd3d06d3a66d042dd1f6763f37f
BLAKE2b-256 7460ec8c1ef8fdf8cd77e66d847a90e4c70c61df08ba2cdbaf584f045f8946a7

See more details on using hashes here.