Omaha8 article reproduction, October 4, 2026
Engine 0.15.0; .NET 10; Python 3 (standard library only).
Build the matching PokerSimulator source in Release and run from its repository:
  python <package>/run_study.py src/PokerSimulator.Cli/bin/Release/net10.0/PokerSimulator.Cli.dll <new-output-folder>
For an individual input:
  dotnet src/PokerSimulator.Cli/bin/Release/net10.0/PokerSimulator.Cli.dll --showdown <folder>/source-input.json --output <new-output-folder>
The 18 sampled inputs and one exact fixture are supplied. Each includes seed, trial count, cards, seats, board and dead cards. Full JSON reports include exact fractional awards in 20 traces per sampled run; seat CSVs include each opponent.
450000 sampled showdowns total: five paired blocks of 20000 per hand (100000 each) plus 50000 ordinary-deck trials per hand. No realistic ranges or betting-profit claim is made.
The paired live deck excludes the union As 2h 9d Kc 3d 2s. Four are held, two dead in every input. Therefore both board and five opponents are matched by seed/trial. All 100 saved matched trace triplets were verified. It is an artificial controlled deck; natural inputs have no dead cards.
Equity CIs pool sample variance. Differences use five paired block means, t(4) critical value 2.7764451051977987. Outcome frequencies in article tables are descriptive. Intervals quantify sampling noise only.
The source code was rebuilt in temporary output with 0 warnings/errors; all 159 tests passed against that rebuilt output after supplying the repository fixture catalogs beside the relocated test binary. The engine binary used by all study runs is recorded in engine-sha256.json.
sha256.json verifies all package members apart from itself. article-results.csv and article-summary.json are the exact published datasets. No timestamps are present in the simulator exports.
