Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Tier 3: the generator stream

This page is generated. cargo xtask validate --tiers 1,2,3 --smoke wrote it from commit b6ef4ee-dirty. Every number on it was captured from that run's own output. To change what it says, change what the suite measures and run the command again.

Both sides are instrumented to emit every generator draw, and the traces are diffed. This is the tier that catches a port whose arithmetic is right and whose call order is not, which no statistical comparison would find until after a 48-hour run.

Reduced volume. This run passed --smoke, so the sweeps are the short ones the CI gate uses rather than the full ones PLAN.org specifies. The case counts in the tables below are what actually ran. Drop --smoke for the gate volume.

Produced with rustc 1.97.1 (8bab26f4f 2026-07-14), gfortran 15.2.0. The oracle's compiler flags are fixed in crates/tepsim-oracle/build.rs and asserted by a test; changing them invalidates every number on this page, which is why it is a logged re-baseline and not an edit.

What ran

7 test binaries: 34 test(s) passed, 0 failed, 0 ignored.

targetlibmpassedfailedignored
rng_call_ordervendored700
tier3_harnessvendored600
tier1_disturbancevendored400
tier3_walkvendored400
tier3_walk_inputsvendored400
tier3_analysersvendored400
fault_tablevendored500

Figures

Every one of this tier's comparisons is bit-identical to the Fortran, so there is nothing to place on a logarithmic error axis and no error figure is drawn. The figure below states the same result in the units that suit it.

GENERATED by `cargo xtask validate --tiers 1,2,3 --smoke` from commit `b6ef4ee-dirty`. Do not edit by hand: the next run overwrites it. Tier 3: how many bits differA bar chart on a logarithmic count axis. Each bar is the number of comparisons whose result differed from the Fortran's by that many units in the last place, grouped by which libm the port was built against. 120,000 comparisons in total. Tier 3: how many bits actually differ 120,000 comparisons, by units in the last place. The count axis is logarithmic. vendored libm: 120,000 of 120,000 identical to the last bit 0 ULP 120,000 1 10 1e2 1e3 1e4 1e5 1e6 A bar exists only where the count is not zero, so a tier with one bar differed nowhere.
How many bits actually differ. The same comparisons counted by how many bits differ rather than by how much. A relative error is a ratio, and dividing by a large number makes any difference look small; a count of differing units in the last place cannot be flattered that way. This tier is straight-line arithmetic over constants already proved bit-identical, so the claim is that the only bar is the one at zero. A second bar appearing anywhere is a regression to chase rather than a tolerance to widen. Drawn by cargo xtask validate --tiers 1,2,3 --smoke at commit b6ef4ee-dirty; the measurement it repeats was first recorded in B-0028 and B-0029 (LOG.org).

Measurements

6 block(s), lifted from the transcripts below. The columns are whatever fields the run printed, so a new field in the reporter becomes a new column here rather than data this page drops.

The test column matters as much as the numbers, because not every row is the port being measured. Some tests deliberately mis-type a constant, or solve from the wrong guess, to show what that would cost; a row from one of those is supposed to be enormous, and its test name says so. The what column carries a tier1 prefix in every tier, because it is the shared comparison reporter's own label rather than a claim about which tier printed it.

targetfrom testwhatcasesmax rel errmax ulpulp percentilesulp histogramnon-finite
tier1_disturbancetesub5_matches_the_fortran_over_the_state_spacetier1 TESUB5 ADIST200000.000e0 at seed#0[ADIST]0 at seed#0[ADIST]p50=0 p90=0 p99=0 p100=00:200000 seen, 0 mismatched
tier1_disturbancetesub5_matches_the_fortran_over_the_state_spacetier1 TESUB5 BDIST200000.000e0 at seed#0[BDIST]0 at seed#0[BDIST]p50=0 p90=0 p99=0 p100=00:200000 seen, 0 mismatched
tier1_disturbancetesub5_matches_the_fortran_over_the_state_spacetier1 TESUB5 CDIST200000.000e0 at seed#0[CDIST]0 at seed#0[CDIST]p50=0 p90=0 p99=0 p100=00:200000 seen, 0 mismatched
tier1_disturbancetesub5_matches_the_fortran_over_the_state_spacetier1 TESUB5 DDIST200000.000e0 at seed#0[DDIST]0 at seed#0[DDIST]p50=0 p90=0 p99=0 p100=00:200000 seen, 0 mismatched
tier1_disturbancetesub5_matches_the_fortran_over_the_state_spacetier1 TESUB5 TNEXT200000.000e0 at seed#0[TNEXT]0 at seed#0[TNEXT]p50=0 p90=0 p99=0 p100=00:200000 seen, 0 mismatched
tier1_disturbancetesub6_matches_the_fortran_over_the_state_spacetier1 TESUB6 noise sample200000.000e0 at seed#0[X]0 at seed#0[X]p50=0 p90=0 p99=0 p100=00:200000 seen, 0 mismatched

Transcripts

Each block below is a test binary's own output, verbatim, with the command that produced it. The summary above is derived from these; they are not derived from it.

rng_call_order, vendored libm

cargo test -p tepsim-oracle --features oracle --release --test rng_call_order -- --nocapture --test-threads 1
running 7 tests
test a_time_zero_evaluation_draws_far_less_than_a_running_one ... draws at TIME=0: 0; at the scenario's own time: 264
ok
test a_tripped_plant_skips_the_noise_and_so_the_stream_position_depends_on_it ... tripped: [258, 258, 258, 258, 258, 258, 258, 258]
healthy: [522, 522, 522, 522, 522, 522, 522, 522, 522, 522, 522, 522, 522, 522, 522, 522, 522]
ok
test the_analysers_add_their_own_draws_on_schedule ... draws: t=0.05 264, t=0.15 462, t=0.30 522
ok
test the_draw_count_varies_across_the_trajectory ... draw counts over 400 nominal states: {0: 1, 264: 359, 294: 1, 462: 39}
ok
test the_draw_counter_agrees_with_the_oracle_generator ... ok
test the_measurement_noise_costs_exactly_264_draws ... with noise 264, without 0, difference 264
ok
test the_walk_advance_costs_thirty_draws_of_which_three_are_conditional ... t=0.15 with the walk frozen: 432; running: 462
ok

test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s

tier3_harness, vendored libm

cargo test -p tepsim-oracle --features oracle --release --test tier3_harness -- --nocapture --test-threads 1
running 6 tests
test both_scalings_appear_in_a_real_evaluation ... 30 signed draws, 432 unit draws
ok
test replaying_the_trace_reproduces_the_generator_word ... 113088 draws traced and replayed across 400 evaluations
ok
test the_differ_reports_the_first_divergence_and_its_kind ... ok
test the_trace_capacity_has_real_headroom ... worst evaluation: 462 draws against a capacity of 4096
ok
test the_trace_length_agrees_with_the_uninstrumented_census ... t=0: 0 draws, TIME=0: noise skipped, walks reset
t=0.000001: 264 draws, noise only
t=0.15: 462 draws, noise, walk advance and the gas analysers
t=0.3: 522 draws, and the product analyser
ok
test the_tracing_generator_records_without_disturbing ... ok

test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s

tier1_disturbance, vendored libm

cargo test -p tepsim-oracle --features oracle --release --test tier1_disturbance -- --nocapture --test-threads 1
running 4 tests
test an_inactive_channel_lands_exactly_on_its_centre_in_the_fortran ... ok
test tesub5_matches_the_fortran_over_the_state_space ... tier1 TESUB5 ADIST
  cases          : 20000
  max rel err    : 0.000e0 at seed#0[ADIST]
  max ulp        : 0 at seed#0[ADIST]
  ulp percentiles: p50=0 p90=0 p99=0 p100=0
  ulp histogram  : 0:20000
  non-finite     : 0 seen, 0 mismatched
tier1 TESUB5 BDIST
  cases          : 20000
  max rel err    : 0.000e0 at seed#0[BDIST]
  max ulp        : 0 at seed#0[BDIST]
  ulp percentiles: p50=0 p90=0 p99=0 p100=0
  ulp histogram  : 0:20000
  non-finite     : 0 seen, 0 mismatched
tier1 TESUB5 CDIST
  cases          : 20000
  max rel err    : 0.000e0 at seed#0[CDIST]
  max ulp        : 0 at seed#0[CDIST]
  ulp percentiles: p50=0 p90=0 p99=0 p100=0
  ulp histogram  : 0:20000
  non-finite     : 0 seen, 0 mismatched
tier1 TESUB5 DDIST
  cases          : 20000
  max rel err    : 0.000e0 at seed#0[DDIST]
  max ulp        : 0 at seed#0[DDIST]
  ulp percentiles: p50=0 p90=0 p99=0 p100=0
  ulp histogram  : 0:20000
  non-finite     : 0 seen, 0 mismatched
tier1 TESUB5 TNEXT
  cases          : 20000
  max rel err    : 0.000e0 at seed#0[TNEXT]
  max ulp        : 0 at seed#0[TNEXT]
  ulp percentiles: p50=0 p90=0 p99=0 p100=0
  ulp histogram  : 0:20000
  non-finite     : 0 seen, 0 mismatched
ok
test tesub6_matches_the_fortran_over_the_state_space ... tier1 TESUB6 noise sample
  cases          : 20000
  max rel err    : 0.000e0 at seed#0[X]
  max ulp        : 0 at seed#0[X]
  ulp percentiles: p50=0 p90=0 p99=0 p100=0
  ulp histogram  : 0:20000
  non-finite     : 0 seen, 0 mismatched
ok
test the_flag_changes_the_segment_but_never_the_draw_count ... ok

test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s

tier3_walk, vendored libm

cargo test -p tepsim-oracle --features oracle --release --test tier3_walk -- --nocapture --test-threads 1
running 4 tests
test every_walk_disturbance_matches_the_fortran_over_a_long_run ... IDV(8): 1572 walk draws over 30 hours
IDV(9): 1572 walk draws over 30 hours
IDV(10): 1572 walk draws over 30 hours
IDV(11): 1572 walk draws over 30 hours
IDV(12): 1572 walk draws over 30 hours
IDV(13): 1572 walk draws over 30 hours
IDV(16): 1572 walk draws over 30 hours
IDV(17): 1563 walk draws over 30 hours
IDV(18): 1543 walk draws over 30 hours
IDV(20): 1588 walk draws over 30 hours
ok
test the_spike_branch_is_reached_by_an_active_disturbance ... channel 10 over 75 hours: 66 fired segments, 1432 dwells
ok
test the_time_zero_reset_matches_including_its_draws ... the t=0 reset still drew 30 times
ok
test the_walk_advance_matches_the_fortran_along_the_nominal_trajectory ... 40 evaluations advanced a channel, 360 did not
ok

test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.36s

tier3_walk_inputs, vendored libm

cargo test -p tepsim-oracle --features oracle --release --test tier3_walk_inputs -- --nocapture --test-threads 1
running 4 tests
test every_disturbance_matches_over_a_long_run ... all twenty disturbances matched over 10 simulated hours each
ok
test the_generator_moves_once_per_step_not_once_per_evaluation ... ok
test the_two_composition_faults_move_different_amounts ... nominal [0.485, 0.005, 0.51]
IDV(1)  [0.45499999999999996, 0.005, 0.54]
IDV(2)  [0.48256281, 0.01, 0.50743719]
ok
test the_walk_driven_inputs_match_along_the_nominal_trajectory ... ok

test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.15s

tier3_analysers, vendored libm

cargo test -p tepsim-oracle --features oracle --release --test tier3_analysers -- --nocapture --test-threads 1
running 4 tests
test a_trip_silences_the_continuous_noise_and_not_the_analysers ... tripped 258 draws, healthy 522
ok
test a_whole_step_matches_the_fortran_along_the_nominal_trajectory ... 113088 draws over 400 whole steps; worst measurement 8.141509710325246e-15
ok
test a_whole_step_matches_with_every_disturbance_active ... all twenty disturbances, 6 simulated hours each; worst 0e0
ok
test the_port_stays_in_step_when_it_carries_its_own_state ... 2,000 steps carried on both sides, generators in lockstep throughout
ok

test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.18s

fault_table, vendored libm

cargo test -p tepsim-oracle --features oracle --release --test fault_table -- --nocapture --test-threads 1
running 5 tests
test a_sticking_fault_changes_nothing_when_the_command_never_moves ... ok
test step_faults_act_at_once_and_random_ones_do_not ... ok
test the_claimed_channels_are_the_ones_the_fortran_enables ... ok
test the_claimed_valves_are_the_ones_the_fortran_sticks ... ok
test the_five_unknown_faults_are_not_one_kind ... IDV(16) 'Unknown': channels [9], valves [] -- enables walk channel 9, the stripper steam valve capacity
IDV(17) 'Unknown': channels [10], valves [] -- enables spike channel 10, the reactor coolant duty
IDV(18) 'Unknown': channels [11], valves [] -- enables spike channel 11, the condenser coolant duty
IDV(19) 'Unknown': channels [], valves [5, 7, 8, 9] -- sticks valves 5, 7, 8 and 9; touches no equation in the model
IDV(20) 'Unknown': channels [12], valves [] -- enables spike channel 12, the reactor outlet flow
ok

test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s