Skip to content

Use primal simplex for IPM crossover cleanup? #3047

Description

@jajhall

Discussed in #3023

Originally posted by Wronskode May 13, 2026
​Hi everyone,
​I was looking into the IPM crossover logic and noticed that it performs a pushdual followed by a pushprimal.
​If my understanding is correct, finishing with the pushprimal phase should leave the resulting basis in a primal feasible state (according to the asserts in PushAll). However, it looks like the final cleanup is currently being routed to the dual simplex.
​Since the basis is already primal feasible (but potentially dual infeasible at this stage), wouldn't it make more sense and be more efficient to run the primal simplex for the cleanup? If the dual simplex is called instead, it likely has to trigger a Phase 1 to handle the dual infeasibilities, which seems to defeat the purpose of establishing primal feasibility right before it.
​Let me know if I'm missing something about the internal solver state after those push phases

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions