Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
96179e7
Fix accidental O(N^2) BFRT with O(N log N). 13% better on NETLIB
chris-maes Jun 11, 2025
e5ae745
Don't keep looking for small pivots. Can turn infeasible into numeric…
chris-maes Jun 12, 2025
80594ae
First stab at hypersparse B and B^T solve
chris-maes Jun 18, 2025
7da8a98
Hypersparsity with MPF update
chris-maes Jun 26, 2025
fbae0b6
Dynamically switch between sparse and hypersparse solves. 1.42X impro…
chris-maes Jun 27, 2025
f123cb2
Maintain and update a list of primal infeasibilites and more
chris-maes Jul 7, 2025
b029775
Merge branch 'branch-25.08' into hypersparsity
rgsl888prabhu Jul 17, 2025
35c0f46
Fix incorrect infeasibility classification of maros. Helps greenbea a…
chris-maes Jul 22, 2025
3f0ca9f
Clean up code
chris-maes Jul 23, 2025
c672416
Move sparse_vector_t into seperate files
chris-maes Jul 23, 2025
efb768c
More cleanup
chris-maes Jul 23, 2025
3905665
Formatting
chris-maes Jul 23, 2025
7e7d0de
Add support for sparse vector rhs input to sparse triangular solve
chris-maes Jul 24, 2025
7cfe1d5
Remove unused sparse triangle solve accepting column of CSC as rhs
chris-maes Jul 24, 2025
1991fd3
Formatting
chris-maes Jul 24, 2025
53be9bc
Disable computing Farkas certificate for now
chris-maes Jul 24, 2025
0ca65ea
Drop small delta_y. Always recompute primal variables if no entering …
chris-maes Jul 24, 2025
1ac7e1f
Keep farkas off
chris-maes Jul 24, 2025
2230fbc
Formatting
chris-maes Jul 24, 2025
42265d6
Drop small elements. Dont copy intermediate solutions if not needed
chris-maes Jul 28, 2025
8eb349a
Address comments/suggestions in code review
chris-maes Jul 29, 2025
45f5a43
Formatting
chris-maes Jul 29, 2025
0c4459e
Merge branch 'branch-25.08' into hypersparsity2
chris-maes Jul 29, 2025
60c03bb
Use std::is_sorted
chris-maes Jul 30, 2025
ee5b179
Catch an issue when primal step length would be inf. Add more leeway …
chris-maes Jul 30, 2025
3d54385
Formatting
chris-maes Jul 30, 2025
be60ae7
Remove debug
chris-maes Jul 30, 2025
a939cf1
Merge branch 'branch-25.08' into hypersparsity2
chris-maes Jul 30, 2025
458e1dd
Loosen tolerance on test again
chris-maes Jul 30, 2025
9dc4329
Merge branch 'branch-25.08' into hypersparsity
chris-maes Jul 30, 2025
c7a1b0e
Fix bug with nonbasic in infeasible list. Try to recover from numeric…
chris-maes Jul 31, 2025
8d15c2e
Formatting
chris-maes Jul 31, 2025
7144d51
Merge branch 'branch-25.08' into hypersparsity2
chris-maes Jul 31, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions cpp/src/dual_simplex/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
set(DUAL_SIMPLEX_SRC_FILES
${CMAKE_CURRENT_SOURCE_DIR}/basis_solves.cpp
${CMAKE_CURRENT_SOURCE_DIR}/basis_updates.cpp
${CMAKE_CURRENT_SOURCE_DIR}/bound_flipping_ratio_test.cpp
${CMAKE_CURRENT_SOURCE_DIR}/branch_and_bound.cpp
${CMAKE_CURRENT_SOURCE_DIR}/crossover.cpp
${CMAKE_CURRENT_SOURCE_DIR}/initial_basis.cpp
Expand All @@ -30,6 +31,7 @@ set(DUAL_SIMPLEX_SRC_FILES
${CMAKE_CURRENT_SOURCE_DIR}/singletons.cpp
${CMAKE_CURRENT_SOURCE_DIR}/solve.cpp
${CMAKE_CURRENT_SOURCE_DIR}/sparse_matrix.cpp
${CMAKE_CURRENT_SOURCE_DIR}/sparse_vector.cpp
${CMAKE_CURRENT_SOURCE_DIR}/tic_toc.cpp
${CMAKE_CURRENT_SOURCE_DIR}/triangle_solve.cpp
${CMAKE_CURRENT_SOURCE_DIR}/vector_math.cpp)
Expand Down
3 changes: 2 additions & 1 deletion cpp/src/dual_simplex/basis_solves.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -364,7 +364,8 @@ i_t factorize_basis(const csc_matrix_t<i_t, f_t>& A,
for (i_t h = 0; h < Sdim; ++h) {
identity[h] = h;
}
Srank = right_looking_lu(S, medium_tol, identity, S_col_perm, SL, SU, S_perm_inv);
Srank = right_looking_lu(
S, settings.threshold_partial_pivoting_tol, identity, S_col_perm, SL, SU, S_perm_inv);
if (Srank != Sdim) {
// Get the rank deficient columns
deficient.resize(Sdim - Srank);
Expand Down
Loading