Three Channels

Any Accept that claims to implement the exact Metropolis (or Tsallis) rule under floating-point must use one of the three documented channels:

  • C1 (compensated summation in the log-acceptance ratio)

  • C2 (log-domain formulation that never forms the ratio explicitly)

  • C3 (online-suffix-averaging / OSA guard against cancellation when comparing the incumbent)

The crate builds with the safe default. The experiments under experiments/exp1_underflow.pyexp4_compensated.py demonstrate the failure modes each channel closes (underflow in the ratio, cancellation when the incumbent is already the best-so-far, etc.).

See the IISE manuscript section on finite-precision effects and the SymPy witnesses in proofs/ for the exact identities that the three channels preserve.

In user code you do not choose the channel; you choose an Accept implementation that advertises the contract. All presets and advanced drivers in the current surface use a channel that passes the laws checker.