Skip to content

Simplified factorisation for HiPO - #3159

Open
filikat wants to merge 40 commits into
latestfrom
hipo-uplook
Open

Simplified factorisation for HiPO#3159
filikat wants to merge 40 commits into
latestfrom
hipo-uplook

Conversation

@filikat

@filikat filikat commented Jul 21, 2026

Copy link
Copy Markdown
Collaborator
  • Add up-looking factorisation. This is a simplified sparse factorisation that works well when the matrix is very sparse.
  • Add criterion to select whether to use the up-looking factorisation or the multi-frontal one.
  • Add option hipo_factor to force the choice of a specific factorisation.
  • Add possibility of switching between the two factorisations. This is used mainly if the up-looking factorisation (which is slightly less robust for now) fails, to continue iterating using the multi-frontal one
  • If HiPO fails, it resets to the best iteration that it found before switching to IPX or switching factorisation.
  • Changed the way HiPO manages the status of the solve process, keeping track of errors separately from the status.
  • Removed unnecessary memory allocations and swaps from the triangular solves, as suggested by Claude/hipo parallel solve sketch #3152.
  • Changed the internal time profiling.
  • Removed a lot of useless comments, unused functions, and improved general readability of the code.

@filikat filikat self-assigned this Jul 21, 2026
@codecov

codecov Bot commented Jul 21, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 0.74503% with 1199 lines in your changes missing coverage. Please review.
✅ Project coverage is 72.92%. Comparing base (2709311) to head (159714e).
⚠️ Report is 175 commits behind head on latest.

Files with missing lines Patch % Lines
highs/ipm/hipo/ipm/Solver.cpp 0.00% 313 Missing ⚠️
highs/ipm/hipo/ipm/UpLookingSolver.cpp 0.00% 169 Missing ⚠️
highs/ipm/hipo/factorhighs/HybridSolveHandler.cpp 0.00% 113 Missing ⚠️
highs/ipm/hipo/ipm/FactorHighsSolver.cpp 0.00% 109 Missing ⚠️
highs/ipm/hipo/factorhighs/FactorHighs.cpp 0.00% 93 Missing ⚠️
highs/ipm/hipo/ipm/Iterate.cpp 0.00% 54 Missing ⚠️
highs/ipm/hipo/factorhighs/Numeric.cpp 0.00% 51 Missing ⚠️
highs/ipm/hipo/factorhighs/FactorHighs_c_api.cpp 0.00% 47 Missing ⚠️
highs/ipm/hipo/factorhighs/DenseFactKernel.cpp 0.00% 33 Missing ⚠️
highs/ipm/hipo/ipm/Model.cpp 0.00% 29 Missing ⚠️
... and 25 more
Additional details and impacted files
@@            Coverage Diff             @@
##           latest    #3159      +/-   ##
==========================================
- Coverage   73.17%   72.92%   -0.25%     
==========================================
  Files         430      436       +6     
  Lines      103967   105843    +1876     
  Branches    16718    17034     +316     
==========================================
+ Hits        76076    77189    +1113     
- Misses      27615    28378     +763     
  Partials      276      276              

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@filikat
filikat requested a review from jajhall July 21, 2026 14:27

@jajhall jajhall left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fine by me

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants