← Lab
sinkabsorb
confirmedupstream bugPython · POTSystems & data structuresJuly 25, 2026
the question
Does POT's stabilized unbalanced Sinkhorn absorption step leave the implied transport plan invariant?
what came out
POT's sinkhorn_stabilized_unbalanced absorption folds only scalar log(max(u)) and log(max(v)) and resets only v, multiplying the implied plan by max(u)*max(v)/v_j instead of leaving it invariant. On default reg=0.01 it converges without warning to KKT residual 1.5-2.1 vs 1e-6 for sinkhorn_knopp. Raising tau recovers the truth.
method & receipts
- Result: confirmed
- Reproducible — one script re-runs the whole thing from scratch.
- Tested — a correctness/benchmark suite ships alongside the code.
→ read the code and re-run it
github.com/v-code01/sinkabsorb