{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/arxiv-2608-23910","title":"Partial Optimal Transport on the Circle for All Transported Masses in O(N log N)","arxiv_id":"2608.23910","date":"2026-08-24","proceeding":null,"authors":["Soheil Kolouri"],"abstract":"Partial optimal transport compares two measures while leaving part of the mass unmatched, which is what makes it robust to outliers, occlusion, and clutter. The quantity of interest is usually the whole profile - the optimal cost at every transported cardinality - because the right amount to transport is rarely known in advance, and on the real line the PAWL algorithm returns that profile in $O(N\\log N)$. Much data is periodic rather than linear: angles, phases, orientations, time of day, hue, and every direction obtained by projecting onto a great circle. On the circle the same problem acquires a global circulation, or equivalently an optimized cut, which the naive exact method handles by running the line algorithm once per support gap, at $O(N^{2}\\log N)$. We show that this factor $N$ is unnecessary. The line structure survives in cut-free form, and a free-gap invariant supplies, at every step, a cut at which all previous local updates remain valid line updates. This yields PAWC: an exact $O(N\\log N)$ time, $O(N)$ memory algorithm returning all $K+1$ costs, nested active sets and plans in one run, together with a single gap that is simultaneously optimal for every cardinality. Slicing over great circles extends it to $\\mathbb{S}^{d-1}$. Empirically the whole profile costs $0.56$ms at $N=4096$ against $1.5$s for a single transported fraction from a general solver; on occluded, cluttered mpeg-7 shapes, holding the descriptor fixed and varying only the cost, it retains $66\\%$ of the clean-data retrieval score against $16\\%$ for balanced circular OT, and on $\\mathbb{S}^{2}$ it halves the fitting error of spherical sliced Wasserstein against contaminated targets, synthetic and real. Code is available at https://github.com/mint-vu/Partial_Wasserstein_on_Circles.","url_abs":"https://arxiv.org/abs/2608.23910","url_pdf":"https://arxiv.org/pdf/2608.23910","source":{"archive":null,"snapshot":"2025-07-28","note":"not in the Papers with Code archive (frozen at the snapshot)","row_kind":"graph","title_abstract_authors_date":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)"},"code_links":[],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2608.23910","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2608.23910"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"mentioned_in_github":null,"is_official":null,"provenance":"deterministic:regex_extraction","mentioned_in_paper":null,"url":"https://github.com/mint-vu/Partial_Wasserstein_on_Circles","reach":null}],"summary":{"ran":3,"ran_fixture":4,"ran_violates":3,"ran_draft_wrong":1,"unverified":1},"by_repo_kind":{"found_in_text":{"samples":12,"ran":11,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"23348ea378e88432","entry":"NestedActiveSets","repo":"mint-vu/Partial_Wasserstein_on_Circles","repo_kind":"found_in_text","path":"pawc/pawc.py","file_url":"https://github.com/mint-vu/Partial_Wasserstein_on_Circles/blob/HEAD/pawc/pawc.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"23348ea378e88432"}},{"code_sha256_prefix":"71fa09506e64f699","entry":"PartialCircleSolution","repo":"mint-vu/Partial_Wasserstein_on_Circles","repo_kind":"found_in_text","path":"pawc/pawc.py","file_url":"https://github.com/mint-vu/Partial_Wasserstein_on_Circles/blob/HEAD/pawc/pawc.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"71fa09506e64f699"}},{"code_sha256_prefix":"f9dcbdfa1358c05d","entry":"SortedUnion","repo":"mint-vu/Partial_Wasserstein_on_Circles","repo_kind":"found_in_text","path":"pawc/pawc.py","file_url":"https://github.com/mint-vu/Partial_Wasserstein_on_Circles/blob/HEAD/pawc/pawc.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"f9dcbdfa1358c05d"}},{"code_sha256_prefix":"8c934e51b1d7c1c9","entry":"_activation_order","repo":"mint-vu/Partial_Wasserstein_on_Circles","repo_kind":"found_in_text","path":"pawc/pawc.py","file_url":"https://github.com/mint-vu/Partial_Wasserstein_on_Circles/blob/HEAD/pawc/pawc.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"8c934e51b1d7c1c9"}},{"code_sha256_prefix":"57ab442844d8b46f","entry":"_prefix_tables","repo":"mint-vu/Partial_Wasserstein_on_Circles","repo_kind":"found_in_text","path":"pawc/pawc.py","file_url":"https://github.com/mint-vu/Partial_Wasserstein_on_Circles/blob/HEAD/pawc/pawc.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"57ab442844d8b46f"}},{"code_sha256_prefix":"b907ae46f0aa1f95","entry":"gap_lengths","repo":"mint-vu/Partial_Wasserstein_on_Circles","repo_kind":"found_in_text","path":"pawc/pawc.py","file_url":"https://github.com/mint-vu/Partial_Wasserstein_on_Circles/blob/HEAD/pawc/pawc.py","link_basis":"first_harvest_node","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"b907ae46f0aa1f95"}},{"code_sha256_prefix":"07e4183d9324005e","entry":"gap_midpoints","repo":"mint-vu/Partial_Wasserstein_on_Circles","repo_kind":"found_in_text","path":"pawc/pawc.py","file_url":"https://github.com/mint-vu/Partial_Wasserstein_on_Circles/blob/HEAD/pawc/pawc.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"07e4183d9324005e"}},{"code_sha256_prefix":"cbf28d3944553973","entry":"geodesic_distance","repo":"mint-vu/Partial_Wasserstein_on_Circles","repo_kind":"found_in_text","path":"pawc/pawc.py","file_url":"https://github.com/mint-vu/Partial_Wasserstein_on_Circles/blob/HEAD/pawc/pawc.py","link_basis":"first_harvest_node","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"cbf28d3944553973"}},{"code_sha256_prefix":"93ba59411928b2f5","entry":"sorted_union","repo":"mint-vu/Partial_Wasserstein_on_Circles","repo_kind":"found_in_text","path":"pawc/pawc.py","file_url":"https://github.com/mint-vu/Partial_Wasserstein_on_Circles/blob/HEAD/pawc/pawc.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"93ba59411928b2f5"}},{"code_sha256_prefix":"53f80c4f7dbf6c61","entry":"unroll_at","repo":"mint-vu/Partial_Wasserstein_on_Circles","repo_kind":"found_in_text","path":"pawc/pawc.py","file_url":"https://github.com/mint-vu/Partial_Wasserstein_on_Circles/blob/HEAD/pawc/pawc.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"53f80c4f7dbf6c61"}},{"code_sha256_prefix":"7e7978a11cc9c914","entry":"wrap","repo":"mint-vu/Partial_Wasserstein_on_Circles","repo_kind":"found_in_text","path":"pawc/pawc.py","file_url":"https://github.com/mint-vu/Partial_Wasserstein_on_Circles/blob/HEAD/pawc/pawc.py","link_basis":"first_harvest_node","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"7e7978a11cc9c914"}},{"code_sha256_prefix":"9a0b8f109e2fc4f3","entry":"partial_ot_circle","repo":"mint-vu/Partial_Wasserstein_on_Circles","repo_kind":"found_in_text","path":"pawc/pawc.py","file_url":"https://github.com/mint-vu/Partial_Wasserstein_on_Circles/blob/HEAD/pawc/pawc.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"9a0b8f109e2fc4f3"}}]},"arxiv_metadata":{"licence":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)","fields":["title","abstract","authors","date"],"primary_category":"cs.LG","source":"arxiv_2026.jsonl"},"syntology_extracted_results":{"kind":"leaderboard_placements","source":"Syntology's leaderboard-shaped extractor over the paper's own arXiv-HTML tables: a model pointed at a cell, the number was read from that cell and checked against the board's metric, dataset, split and scale, and an independent check accepted the entry; not reviewed by the paper's authors or the archive's editors","extractor_model":"global.anthropic.claude-sonnet-4-5-20250929-v1:0","verifier_model":null,"prompt_sha":"fa63d4bb9d755694","coverage":{"sentence":"Syntology has checked 6,264 of the 9,581 papers on this site that are newer than the archive; results from the others appear after they are checked.","papers_newer_than_archive":9581,"papers_checked":6264},"entries":[],"not_placed":{"boards":0,"rejected_by_independent_check":0,"refused_by_a_rule":0,"check_did_not_answer":0,"proposed_without_a_cell":0,"declined_by_site":0}}}