Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ready for release #1986

Merged
merged 277 commits into from
Oct 17, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
277 commits
Select commit Hold shift + click to select a range
8035b46
Merge branch 'latest' into fix-1789
jajhall Jun 13, 2024
b20db8d
Merge branch 'latest' into fix-1789
jajhall Jun 14, 2024
d68df22
printf and other logging conditionally silenced by kIisDevReport
jajhall Jun 14, 2024
392bc07
Now using reciprocal filter
jajhall Jun 14, 2024
f0e03cd
Merge branch 'latest' into fix-1789
jajhall Jun 18, 2024
a463332
Now extracting primal phase 1 duals for sensitivity test
jajhall Jun 18, 2024
73c487e
First steps to compute primal phase 1 dual for sensitivity filter
jajhall Jun 19, 2024
4a09183
Compute bound differences using HighsCDouble
fwesselm Jun 30, 2024
3681efa
Use tolerances when rounding in postsolve
fwesselm Jun 30, 2024
0f52c80
Merge branch 'latest' of https://github.com/ERGO-Code/HiGHS into fixN…
fwesselm Jul 1, 2024
a231075
Merge branch 'latest' of https://github.com/ERGO-Code/HiGHS into roun…
fwesselm Jul 1, 2024
9a98a6f
Minor change
fwesselm Jul 1, 2024
97f27cb
Merge branch 'latest' of https://github.com/ERGO-Code/HiGHS into fixN…
fwesselm Jul 1, 2024
60d2328
Merge pull request #1829 from fwesselm/fixNeos4
jajhall Jul 1, 2024
564e722
Merge branch 'latest' of https://github.com/ERGO-Code/HiGHS into roun…
fwesselm Jul 1, 2024
6e2fc7d
Merge pull request #1832 from fwesselm/roundWithTolsPostsolve
jajhall Jul 9, 2024
600b069
Added int64_t mip_total_lp_iterations to HighsCallbackDataOut and mod…
jajhall Jul 9, 2024
66849ca
Reset FEATURES.md and added comment on fix-1814
jajhall Jul 9, 2024
3ccae38
Merge pull request #1839 from ERGO-Code/fix-1814
jajhall Jul 9, 2024
2d078b0
Introduced highsFprintfString to replace fprintf(file so that solutio…
jajhall Jul 9, 2024
0c6b253
Replaced fprintf(file in HighsModelUtils.cpp by stringstreams and cal…
jajhall Jul 10, 2024
502f0ac
Merge pull request #1840 from ERGO-Code/fix-1811
jajhall Jul 10, 2024
abcce09
Identified that HighsMipSolverData::checkLimits is not called for a l…
jajhall Jul 10, 2024
6096006
Added some time reporting to HighsMipSolver::run() when not submip
jajhall Jul 10, 2024
11e5385
Merge pull request #1841 from ERGO-Code/fix-1813
jajhall Jul 10, 2024
8d269a2
Added setSolution for sparse primal solution and test to check-set-mi…
jajhall Jul 11, 2024
7fd28a1
Now clearing solution when completeSolutionFromDiscreteAssignment dec…
jajhall Jul 14, 2024
39569be
Added highs_setSolution and highs_setSparseSolution to highs_bindings
jajhall Jul 14, 2024
faeb3f3
Formatted HighsSolution::hasUndefined()
jajhall Jul 14, 2024
6e9f9bd
Added Highs_setSparseSolution to C API
jajhall Jul 14, 2024
3c34353
Now using solution_.hasUndefined(); updated FEATURES.md and silenced …
jajhall Jul 14, 2024
08646bc
Merge pull request #1843 from ERGO-Code/fix-1808
jajhall Jul 14, 2024
49f320a
Added option mip_max_start_nodes to be used for mip_max_nodes when a …
jajhall Jul 15, 2024
b73d4e8
Merge pull request #1844 from ERGO-Code/fix-1808
jajhall Jul 15, 2024
e3708c7
Update relevant substitutions if a variable is transformed
fwesselm Jul 16, 2024
91da631
Take scale into account
fwesselm Jul 17, 2024
8966bc0
Update analogous to variable bounds
fwesselm Jul 17, 2024
d318f65
Add comment
fwesselm Jul 17, 2024
322e298
Update CONTRIBUTING.md
Mathemalsky Jul 22, 2024
79727d1
Added IPM reference and commented on absence of references for QP and…
jajhall Jul 22, 2024
af7c1e3
Merge pull request #1851 from Mathemalsky/master
jajhall Jul 22, 2024
f0dec53
Merge pull request #1852 from ERGO-Code/update-docs
jajhall Jul 22, 2024
a0e50ed
Update index.md
Mathemalsky Jul 23, 2024
2e3867b
Merge pull request #1854 from Mathemalsky/patch-1
jajhall Jul 23, 2024
3b5c3da
Refactor highspy for enhanced usability
mathgeekcoder Jul 23, 2024
66f4892
Update minimal.py
mathgeekcoder Jul 23, 2024
d04eae8
Merge pull request #1855 from mathgeekcoder/highspy-updates
jajhall Jul 23, 2024
76a7e76
Added options write_presolved_model_to_file and write_presolved_model…
jajhall Jul 26, 2024
ce2da38
Highs::reportModel now uses const HighsModel& model argument so it ca…
jajhall Jul 30, 2024
4da5ad8
Merge pull request #1863 from ERGO-Code/fix-1729
jajhall Jul 31, 2024
c468ded
Merge branch 'latest' of https://github.com/ERGO-Code/HiGHS into pres…
fwesselm Aug 4, 2024
00d7273
Merge pull request #1848 from fwesselm/presolveBugTransform
jajhall Aug 4, 2024
ebaf743
Merge branch 'latest' into fix-1789
jajhall Aug 5, 2024
0025d67
Add type stub file
N-Wouda Aug 6, 2024
ddd3778
Merge pull request #1867 from N-Wouda/add-type-stub-file
jajhall Aug 7, 2024
a785025
Suspended ray options and use_sensitivity_filter = false
jajhall Aug 12, 2024
fa94de1
Highs::computeInfeasibleRows renamed Highs::elasticityFilter and pass…
jajhall Aug 14, 2024
787fe62
Now using elasticityFilterReturn
jajhall Aug 14, 2024
b57e6a2
Really should clear integrality in changeLpIntegrality if all continuous
jajhall Aug 14, 2024
a4eac17
Fixed bug in HighsLp::deleteColsFromVectors
jajhall Aug 14, 2024
c790a20
Passes test2 in lp-feasibility-relaxation
jajhall Aug 15, 2024
010082c
Passes AMPL model unit tests, and objective tests for galenet and woo…
jajhall Aug 15, 2024
f3ecbb9
Silenced unit tests and adde C API test for FeasibilityRelaxation
jajhall Aug 15, 2024
47a31db
Merge pull request #1876 from ERGO-Code/fix-1872
jajhall Aug 15, 2024
4073ede
Restored full C API unit test and corrected references to format of H…
jajhall Aug 16, 2024
20b87aa
Added HighsHessian.md and HighsModel.md plus documentation of Hessian…
jajhall Aug 16, 2024
53273e7
Merge pull request #1879 from ERGO-Code/fix-1872
jajhall Aug 16, 2024
ad29863
writePrimalSolution: flush file after each call (#1880)
few Aug 17, 2024
f4b50be
highspy: Expose new feasibility relaxation feature
few Aug 18, 2024
0b4f3f8
HPresolve::fixColToLower/Upper now reanmed fixColToLower/UpperOrUnbou…
jajhall Aug 19, 2024
5c7177a
Added dumm conditional for unboundedness to be handled
jajhall Aug 19, 2024
2f37aa3
Now handles all returns of true for fixColToLower/UpperOrUnbounded
jajhall Aug 19, 2024
cf82e09
Corrected formatting in highs_c_api.h
jajhall Aug 19, 2024
e253cb0
Merge pull request #1884 from few/highspy-feasibilityRelaxation
jajhall Aug 19, 2024
0c6cf08
merge master into release_gil
michaelbynum Aug 19, 2024
e9f4235
run solve in background thread so that keyboard interrupt works
michaelbynum Aug 19, 2024
61f72a3
Merge pull request #1885 from ERGO-Code/fix-1883
jajhall Aug 19, 2024
ec57e11
merge latest into release_gil
michaelbynum Aug 20, 2024
50bd180
Fix warning regarding -Wreorder
fwesselm Aug 21, 2024
93a0871
Merge pull request #1889 from fwesselm/fixWarningReorder
jajhall Aug 21, 2024
b1a7d2e
col_ecol_offset now set - as const - for greater clarity
jajhall Aug 22, 2024
3271ee8
Introduced examples/plot_highs_log.py and final logging line in MIP s…
jajhall Aug 25, 2024
a154ba8
Now plotting gap
jajhall Aug 25, 2024
fedcf78
Updated examples/plot_highs_log.py
jajhall Aug 25, 2024
4907467
Moved key and using identifiers for colours to ease changes; updated …
jajhall Aug 25, 2024
7ce96cb
Merge pull request #1894 from ERGO-Code/MIP-log-plotter
jajhall Aug 25, 2024
19ccf15
Merge pull request #1890 from ERGO-Code/fix-1872a
jajhall Aug 26, 2024
00e812d
Deleted stray prinf in HighsMipSolver.cpp
jajhall Aug 26, 2024
032eb56
Fix uninitialized arrays
fwesselm Aug 27, 2024
c096294
Use decltype and auto some more
fwesselm Aug 27, 2024
cdd1b39
Merge pull request #1897 from fwesselm/uninitArrays
jajhall Aug 28, 2024
754c204
plot_highs_log.py now avoids printing spurious incumbent lines when b…
jajhall Aug 28, 2024
f5a22b6
Merge pull request #1898 from ERGO-Code/MIP-log-plotter
jajhall Aug 28, 2024
fb89986
use std::array instead of C arrays if possible
fwesselm Aug 28, 2024
b1862c8
Chaser
fwesselm Aug 28, 2024
74682bc
Added public enum HessianFormat, public class HighsHessian, private s…
jajhall Aug 28, 2024
af09d2d
Added dim to HessianFormat and started adding Hessian to call_highs_f…
jajhall Aug 28, 2024
acafbf0
Make the LP in call_highs_from_csharp.cs feasible!
jajhall Aug 28, 2024
0eee142
Completed call_highs_from_csharp.cs by passing a Hessian and resolving
jajhall Aug 28, 2024
2788fea
Use std::array in other places
fwesselm Aug 28, 2024
8fce625
Merge pull request #1902 from ERGO-Code/fix-1900a
jajhall Aug 28, 2024
455c007
Use std::next a little bit
fwesselm Aug 29, 2024
d69e295
Make hashes an std::array
fwesselm Aug 30, 2024
584069f
Make entries an std::array
fwesselm Sep 2, 2024
542f341
Merge branch 'HighsHashTreeChanges2' of https://github.com/fwesselm/H…
fwesselm Sep 2, 2024
6e32cb5
Fix warning along the way
fwesselm Sep 2, 2024
ff778c6
Two minor changes
fwesselm Sep 3, 2024
d772edf
No need to check for null termination
fwesselm Sep 3, 2024
cc3e870
Fix typo
fwesselm Sep 3, 2024
8f99e6f
Merge pull request #1908 from fwesselm/useStdArray
jajhall Sep 4, 2024
b8a716f
Formatted
jajhall Sep 4, 2024
08e57a6
Precompute expensive computations
heshpdx Sep 6, 2024
0f4b0d0
Merge pull request #1911 from heshpdx/master
jajhall Sep 6, 2024
f1fd3a6
Revert "Precompute expensive computations"
jajhall Sep 6, 2024
2d8d8af
Merge pull request #1912 from ERGO-Code/revert-1911-master
jajhall Sep 6, 2024
a7a6e96
Replace expensive computations
heshpdx Sep 6, 2024
a251c86
Merge pull request #1914 from heshpdx/div_fixes
jajhall Sep 7, 2024
f7be435
Merge pull request #1886 from michaelbynum/release_gil
jajhall Sep 7, 2024
b42d314
Now reading rvb-sub, but need to add the comment trim to other MPS re…
jajhall Sep 8, 2024
cd80bd5
Formatted with Ubuntu clang-format version 14.0.0-1ubuntu1.1
jajhall Sep 9, 2024
0f31d20
Merge pull request #1909 from ERGO-Code/fix-1908
jajhall Sep 9, 2024
c706fe9
Fix some typos
fwesselm Sep 10, 2024
0b49a9e
Add utility for computing fractional part
fwesselm Sep 10, 2024
54b575e
Added src/solvers.md
jajhall Sep 10, 2024
b506d7a
Fixed internal links
jajhall Sep 10, 2024
60ac494
Merge pull request #1916 from ERGO-Code/fix-1915
jajhall Sep 10, 2024
cdf2cf4
Added PDLP!
jajhall Sep 10, 2024
ac848c6
Merge pull request #1917 from ERGO-Code/fix-1915
jajhall Sep 10, 2024
450c026
Tiny simplification
fwesselm Sep 11, 2024
c943e04
Merge pull request #1918 from fwesselm/minorStuffAgain
jajhall Sep 11, 2024
5aba249
Methods receiving matrix data where only small values are explicit ze…
jajhall Sep 11, 2024
ad72151
Nullified changes due to clang-format version
jajhall Sep 11, 2024
1556a6e
Added comment.mps
jajhall Sep 11, 2024
1ec433b
Introduced HMpsFF::getMpsLine, eliminating mpsCommentTrim
jajhall Sep 12, 2024
49c6aa4
Start replacing use of getline by getMpsLine
jajhall Sep 12, 2024
aeb80d5
Now using getMpsLine rather than getline
jajhall Sep 12, 2024
cd69aea
getMpsLine now trims lines and the checks is_empty
jajhall Sep 12, 2024
8b635e0
Merge branch 'latest' into consider-1911
jajhall Sep 12, 2024
53a4fac
c cc cpp h hpp
galabovaa Sep 12, 2024
dcf38eb
workflow update
galabovaa Sep 12, 2024
20daf97
exclude
galabovaa Sep 12, 2024
0ce7da7
extern
galabovaa Sep 12, 2024
9bfcb10
exclude
galabovaa Sep 12, 2024
0b26c63
exclude
galabovaa Sep 12, 2024
8f83d3e
versions only
galabovaa Sep 12, 2024
18046f7
empty inits diff with 18.3
galabovaa Sep 12, 2024
ff6ddbb
Merge pull request #1920 from ERGO-Code/fix-1860
jajhall Sep 12, 2024
963b5eb
Merge pull request #1922 from ERGO-Code/clang-format-update
jajhall Sep 12, 2024
da30738
Merged latest into this branch and fixed trivial conflict
jajhall Sep 12, 2024
d95502b
Merge pull request #1919 from ERGO-Code/fix-1899
jajhall Sep 12, 2024
338c47d
An attempt to fix potential deadlock issues in Windows.
mathgeekcoder Sep 13, 2024
a2d5db9
Changed HighsTaskExecutor to explicitly handle reference counting to …
mathgeekcoder Sep 13, 2024
731f171
Very minor change. I had an extra new line and it was bugging me.
mathgeekcoder Sep 14, 2024
9cd990f
Merge branch 'latest' into consider-1911
jajhall Sep 14, 2024
5ea7f97
Updated FEATURES.md
jajhall Sep 14, 2024
aa13d7a
debug_memory
galabovaa Sep 16, 2024
370156f
Created new branch with new PR to avoid ugly rebase issue.
mathgeekcoder Sep 16, 2024
04a2df0
thread OK leak maybe not
galabovaa Sep 17, 2024
bd73575
add sanitizers to cmake
galabovaa Sep 17, 2024
785f149
ubuntu sanitizers workflow
galabovaa Sep 17, 2024
864e1eb
Merge branch 'tsan-latest' into tsan-test-fix
galabovaa Sep 17, 2024
f3b62ca
bool isMainThread
galabovaa Sep 17, 2024
36b356d
set main elsewhere
galabovaa Sep 17, 2024
ccef75c
Added skeleton getKappa and unit test
jajhall Sep 17, 2024
c1c4a93
Merge branch 'tsan-latest' into check
galabovaa Sep 18, 2024
e9766f7
fix cmake regex
galabovaa Sep 18, 2024
75a1611
wip system error
galabovaa Sep 18, 2024
e9678b5
not segfaulting
galabovaa Sep 18, 2024
091ab68
Now calling ekk_instance_.computeBasisCondition(); but LP needs to be…
jajhall Sep 18, 2024
4eaaa01
shutdown
galabovaa Sep 18, 2024
f0aa1c3
comment
galabovaa Sep 19, 2024
3a41f85
can shut down executor at the end of exe now
galabovaa Sep 19, 2024
3b78330
assume shutdown will not be called from exe, add option later on
galabovaa Sep 19, 2024
9de2fee
comment'
galabovaa Sep 19, 2024
f6669cc
clean up 1.
galabovaa Sep 19, 2024
de88c91
formatting
galabovaa Sep 19, 2024
494d697
Merge pull request #1927 from ERGO-Code/consider-1911
jajhall Sep 20, 2024
6160e22
move git has further up
galabovaa Sep 20, 2024
cf96f90
clean up
galabovaa Sep 20, 2024
c6028d8
Added double computeBasisCondition() { return computeBasisCondition(t…
jajhall Sep 20, 2024
899c9d7
Merge branch 'latest' into fix-1869
jajhall Sep 20, 2024
3f87949
fix Markdown list syntax in solvers.md
pierre-haessig Sep 20, 2024
525b541
Add utility
fwesselm Sep 20, 2024
5af3a67
Merge pull request #1939 from pierre-haessig/patch-1
jajhall Sep 20, 2024
e134a0f
Only check for timeout if time_limit is finite, and don't consider ti…
jajhall Sep 20, 2024
536983f
Several significant updates:
mathgeekcoder Sep 21, 2024
09f360c
Removed reference to EllipsisType, as it first appears in Python 3.10
mathgeekcoder Sep 21, 2024
f637ea2
rename cmake cxx test function
galabovaa Sep 22, 2024
86e533f
Added const bool kNoClockCalls to switch off/on most clocks; formatted
jajhall Sep 23, 2024
b210168
Merge pull request #1943 from ERGO-Code/rename-cxx-test
galabovaa Sep 23, 2024
170a877
Changed `type | type` syntax to `Union[type, type]` syntax for backwa…
mathgeekcoder Sep 23, 2024
ce1bc5d
Change `isinstance(x, Union[type, type])` to `isinstance(x, (type, ty…
mathgeekcoder Sep 23, 2024
83822d8
updates
galabovaa Sep 23, 2024
9215dd9
ready to merge
galabovaa Sep 24, 2024
a904b21
passModelName added to C++ and C api
galabovaa Sep 24, 2024
6430c7a
No longer removing trailing comments in MPS files
jajhall Sep 25, 2024
62098db
Removed unit test for trailing comment stripping
jajhall Sep 25, 2024
5dee004
Merge pull request #1949 from ERGO-Code/fix-1945
jajhall Sep 25, 2024
aefed79
Merge branch 'latest' into fix-1869
jajhall Sep 25, 2024
395f8c2
Now possibly computing exact kappa, and possibly reporting on compari…
jajhall Sep 25, 2024
9fb79f3
Cleaned up and formatted-ish
jajhall Sep 25, 2024
d686d01
Merge pull request #1948 from ERGO-Code/hanging-issue
galabovaa Sep 26, 2024
057030e
Merge pull request #1942 from mathgeekcoder/highspy_major_updates
galabovaa Sep 26, 2024
b3c61c1
Merge pull request #1881 from few/fix-1880
galabovaa Sep 26, 2024
a01a8fa
:wq
galabovaa Sep 26, 2024
167fc08
fix test
galabovaa Sep 26, 2024
6ab45a8
test name
galabovaa Sep 26, 2024
993f562
Fixed python 3.8 typing issue.
mathgeekcoder Sep 26, 2024
a1ec3c2
Some more fun with warnings
fwesselm Sep 27, 2024
215b724
Merge pull request #1953 from mathgeekcoder/highspy_py38_typing_issue
galabovaa Sep 27, 2024
fd34feb
Merge branch 'latest' into pass-model-name
galabovaa Sep 27, 2024
44fef91
Merge pull request #1951 from ERGO-Code/pass-model-name
galabovaa Oct 2, 2024
3570f86
memory leaks
galabovaa Oct 2, 2024
daf6672
Merge pull request #1957 from ERGO-Code/cupdlp-memory-leaks
galabovaa Oct 2, 2024
d40867c
Merge branch 'latest' of https://github.com/ERGO-Code/HiGHS into mino…
fwesselm Oct 3, 2024
28a9516
Merge branch 'latest' of https://github.com/ERGO-Code/HiGHS into pres…
fwesselm Oct 7, 2024
f7c79b3
Merge pull request #1963 from fwesselm/presolveUtilImpliedInt
jajhall Oct 8, 2024
8f743d3
Clang format 18 frig
jajhall Oct 8, 2024
70fdc01
Clang format 18 frig
jajhall Oct 8, 2024
e17176d
Add lambda to shorten forcing row reduction in row presolve
fwesselm Oct 9, 2024
fc1226e
Remove an unused variable
fwesselm Oct 9, 2024
3b0c798
Merge pull request #1938 from ERGO-Code/fix-1869
jajhall Oct 9, 2024
7406b5f
Merge pull request #1941 from ERGO-Code/fix-1930
jajhall Oct 9, 2024
824c8ff
Merge pull request #1961 from fwesselm/minorStuffAgainAndAgain
galabovaa Oct 9, 2024
6782b41
Merge branch 'latest' of https://github.com/ERGO-Code/HiGHS into forc…
fwesselm Oct 10, 2024
91873a9
Merge pull request #1968 from fwesselm/forcingRowLambda
jajhall Oct 11, 2024
cc63abe
Add lambda to strengthen coefficients to row presolve
fwesselm Oct 11, 2024
e4dad62
Verified that direction to read a sparse solution file is possible fr…
jajhall Oct 12, 2024
cfeaa46
Better testing; formatted
jajhall Oct 12, 2024
1df27e2
Recovered useful code from fix-1966
jajhall Oct 14, 2024
30ecb6f
And the unit tests from fix-1966
jajhall Oct 14, 2024
efacc62
Merge pull request #1974 from fwesselm/strengthenCoefLambda
jajhall Oct 14, 2024
7ccf279
Formatted
jajhall Oct 14, 2024
40b35a3
Now checking residual errors after IPM and PDLP, and correcting row v…
jajhall Oct 15, 2024
1210410
WIP
jajhall Oct 15, 2024
42e520b
Formatted
jajhall Oct 15, 2024
7efad63
Correct formatting?
jajhall Oct 15, 2024
73c136f
Merge pull request #1978 from ERGO-Code/fix-1966a
jajhall Oct 15, 2024
ef1549d
Frigged formatting
jajhall Oct 16, 2024
66aaa97
Frig format again
jajhall Oct 16, 2024
3255be8
Merge pull request #1972 from ERGO-Code/enhance-check-solution
jajhall Oct 16, 2024
072abbb
always correct residuals
galabovaa Oct 16, 2024
bc3b567
formatting
galabovaa Oct 16, 2024
2a7b124
clean up extra tests here
galabovaa Oct 16, 2024
2bf2163
Cleaned up comments before correctResiduals call in solveLp
jajhall Oct 16, 2024
623570d
Merge pull request #1982 from ERGO-Code/correct-residuals
galabovaa Oct 16, 2024
e54f9f1
Added more to Features.md
jajhall Oct 17, 2024
d0d1dc5
Merge branch 'latest' of https://github.com/ERGO-Code/HiGHS into latest
jajhall Oct 17, 2024
7c3e6d1
version bump
galabovaa Oct 17, 2024
e60cbb3
Merge pull request #1985 from ERGO-Code/release-1.8
galabovaa Oct 17, 2024
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: 1 addition & 1 deletion .github/workflows/build-nuget-package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -185,7 +185,7 @@ jobs:

- name: Dotnet pack
working-directory: ${{runner.workspace}}/build/dotnet/Highs.Native
run: dotnet pack -c Release /p:Version=1.7.2
run: dotnet pack -c Release /p:Version=1.8.0

- uses: actions/upload-artifact@v4
with:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/clang-format.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ jobs:

steps:
- uses: actions/checkout@v4
- uses: DoozyX/clang-format-lint-action@v0.14
- uses: DoozyX/clang-format-lint-action@v0.18
with:
source: 'app/ src/Highs.h ./src/lp_data ./src/mip ./src/model ./src/simplex ./src/presolve ./src/simplex ./src/util ./src/test'
#./src/test ./interfaces'
extensions: 'h,cpp,c'
clangFormatVersion: 14
clangFormatVersion: 18
55 changes: 55 additions & 0 deletions .github/workflows/sanitizers-cmake.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
name: sanitizers-cmake
on: [] #push

jobs:
sanitizer_release:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
# os: [ubuntu-latest, macos-latest]
os: [ubuntu-latest]
sanitizer: [Address, Thread, Leak]
steps:
- uses: actions/checkout@v4

- name: Create Build Environment
run: cmake -E make_directory ${{runner.workspace}}/build

- name: Configure CMake and Build
shell: bash
working-directory: ${{runner.workspace}}/build
run: |
cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=RelWithDebInfo -DDEBUG_MEMORY=${{ matrix.sanitizer }}
cmake --build . --parallel

- name: Run
working-directory: ${{runner.workspace}}/build
shell: bash
run: ./bin/highs $GITHUB_WORKSPACE/check/instances/afiro.mps

sanitizer_debug:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
# os: [ubuntu-latest, macos-latest]
os: [ubuntu-latest]
sanitizer: [Address, Thread, Leak]
steps:
- uses: actions/checkout@v4

- name: Create Build Environment
run: cmake -E make_directory ${{runner.workspace}}/build

- name: Configure CMake and Build
shell: bash
working-directory: ${{runner.workspace}}/build
run: |
cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=Debug -DDEBUG_MEMORY=${{ matrix.sanitizer }}
cmake --build . --parallel

- name: Run
working-directory: ${{runner.workspace}}/build
shell: bash
run: ./bin/highs $GITHUB_WORKSPACE/check/instances/afiro.mps
4 changes: 2 additions & 2 deletions .github/workflows/test-nuget-macos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ jobs:

- name: Dotnet pack
working-directory: ${{runner.workspace}}/build/dotnet/Highs.Native
run: dotnet pack -c Release /p:Version=1.7.2
run: dotnet pack -c Release /p:Version=1.8.0

- name: Add local feed
run: dotnet nuget add source ${{runner.workspace}}/nugets
Expand Down Expand Up @@ -81,7 +81,7 @@ jobs:

- name: Dotnet pack
working-directory: ${{runner.workspace}}/build/dotnet/Highs.Native
run: dotnet pack -c Release /p:Version=1.7.2
run: dotnet pack -c Release /p:Version=1.8.0

- name: Add local feed
run: dotnet nuget add source ${{runner.workspace}}/nugets
Expand Down
12 changes: 6 additions & 6 deletions .github/workflows/test-nuget-package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ jobs:

- name: Dotnet pack
working-directory: ${{runner.workspace}}/build/dotnet/Highs.Native
run: dotnet pack -c Release /p:Version=1.7.2
run: dotnet pack -c Release /p:Version=1.8.0

- name: Add local feed
run: dotnet nuget add source ${{runner.workspace}}/nugets
Expand Down Expand Up @@ -81,7 +81,7 @@ jobs:

- name: Dotnet pack
working-directory: ${{runner.workspace}}/build/dotnet/Highs.Native
run: dotnet pack -c Release /p:Version=1.7.2
run: dotnet pack -c Release /p:Version=1.8.0

- name: Add local feed
run: dotnet nuget add source ${{runner.workspace}}/nugets
Expand Down Expand Up @@ -124,7 +124,7 @@ jobs:

- name: Dotnet pack
working-directory: ${{runner.workspace}}/build/dotnet/Highs.Native
run: dotnet pack -c Release /p:Version=1.7.2
run: dotnet pack -c Release /p:Version=1.8.0

- name: Add local feed
run: dotnet nuget add source ${{runner.workspace}}/nugets
Expand Down Expand Up @@ -167,7 +167,7 @@ jobs:

- name: Dotnet pack
working-directory: ${{runner.workspace}}/build/dotnet/Highs.Native
run: dotnet pack -c Release /p:Version=1.7.2
run: dotnet pack -c Release /p:Version=1.8.0

- name: Add local feed
run: dotnet nuget add source ${{runner.workspace}}/nugets
Expand Down Expand Up @@ -212,7 +212,7 @@ jobs:

- name: Dotnet pack
working-directory: ${{runner.workspace}}/build/dotnet/Highs.Native
run: dotnet pack -c Release /p:Version=1.7.2
run: dotnet pack -c Release /p:Version=1.8.0

- name: Add local feed
run: dotnet nuget add source -n name ${{runner.workspace}}\nugets
Expand All @@ -228,5 +228,5 @@ jobs:
dotnet new console
rm Program.cs
cp ${{runner.workspace}}\HiGHS\examples\call_highs_from_csharp.cs .
dotnet add package Highs.Native -v 1.7.2 -s ${{runner.workspace}}\nugets
dotnet add package Highs.Native -v 1.8.0 -s ${{runner.workspace}}\nugets
dotnet run
4 changes: 2 additions & 2 deletions .github/workflows/test-nuget-ubuntu.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ jobs:

- name: Dotnet pack
working-directory: ${{runner.workspace}}/build/dotnet/Highs.Native
run: dotnet pack -c Release /p:Version=1.7.2
run: dotnet pack -c Release /p:Version=1.8.0

- name: Add local feed
run: dotnet nuget add source ${{runner.workspace}}/nugets
Expand Down Expand Up @@ -74,7 +74,7 @@ jobs:

- name: Dotnet pack
working-directory: ${{runner.workspace}}/build/dotnet/Highs.Native
run: dotnet pack -c Release /p:Version=1.7.2
run: dotnet pack -c Release /p:Version=1.8.0

- name: Add local feed
run: dotnet nuget add source ${{runner.workspace}}/nugets
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/test-nuget-win.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ jobs:

- name: Dotnet pack
working-directory: ${{runner.workspace}}/build/dotnet/Highs.Native
run: dotnet pack -c Release /p:Version=1.7.2
run: dotnet pack -c Release /p:Version=1.8.0

- name: Add local feed
run: dotnet nuget add source -n name ${{runner.workspace}}\nugets
Expand All @@ -49,5 +49,5 @@ jobs:
dotnet new console
rm Program.cs
cp ${{runner.workspace}}\HiGHS\examples\call_highs_from_csharp.cs .
dotnet add package Highs.Native -v 1.7.2 -s ${{runner.workspace}}\nugets
dotnet add package Highs.Native -v 1.8.0 -s ${{runner.workspace}}\nugets
dotnet run
91 changes: 73 additions & 18 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,23 @@ if(EXISTS "${LOC_PATH}")
endif()
option(FAST_BUILD "Fast build: " ON)

find_program(GIT git)

if((GIT) AND(EXISTS ${HIGHS_SOURCE_DIR}/.git))
execute_process(
COMMAND ${GIT} status
WORKING_DIRECTORY ${HIGHS_SOURCE_DIR} OUTPUT_QUIET)

execute_process(
COMMAND ${GIT} describe --always
WORKING_DIRECTORY ${HIGHS_SOURCE_DIR}
OUTPUT_VARIABLE GITHASH OUTPUT_STRIP_TRAILING_WHITESPACE)
# string(REGEX REPLACE "^.*-g" "" GITHASH ${GITHASH})
else()
set(GITHASH "n/a")
endif()

message(STATUS "Git hash: " ${GITHASH})
# By default only build the C++ library.
option(BUILD_CXX "Build C++ library" ON)
message(STATUS "Build C++ library: ${BUILD_CXX}")
Expand Down Expand Up @@ -71,6 +88,12 @@ if (PYTHON_BUILD_SETUP)
set(ZLIB OFF)
endif()

# Address | Thread | Leak
# Linux atm
# Only Debug is theted atm
# See below for RelWithDeb info, todo test wip
set(DEBUG_MEMORY "Off" CACHE STRING "Sanitizers")

# emscripten
option(EMSCRIPTEN_HTML "Emscripten HTML output" OFF)

Expand Down Expand Up @@ -358,12 +381,6 @@ if(NOT FAST_BUILD OR CSHARP)
endif(CMAKE_CSharp_COMPILER)
endif()

# uncomment for memory debugging
# set (CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -fno-omit-frame-pointer -fsanitize=address -fsanitize=undefined")
# set (CMAKE_LINKER_FLAGS_RELWITHDEBINFO "${CMAKE_LINKER_FLAGS_RELWITHDEBINFO} -fno-omit-frame-pointer -fsanitize=address -fsanitize=undefined")
# set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -fno-omit-frame-pointer -fsanitize=address -fsanitize=undefined")
# set (CMAKE_LINKER_FLAGS_DEBUG "${CMAKE_LINKER_FLAGS_DEBUG} -fno-omit-frame-pointer -fsanitize=address -fsanitize=undefined")

# if zlib is found, then we can enable reading zlib-compressed input
if(ZLIB AND NOT TARGET ZLIB::ZLIB)
find_package(ZLIB 1.2.3)
Expand All @@ -375,25 +392,63 @@ set(CPACK_PACKAGE_VERSION_MINOR "${HIGHS_VERSION_MINOR}")
set(CPACK_PACKAGE_VERSION_PATCH "${HIGHS_VERSION_PATCH}")
set(CPACK_PACKAGE_VENDOR "University of Edinburgh")

find_program(GIT git)

if((GIT) AND(EXISTS ${HIGHS_SOURCE_DIR}/.git))
execute_process(
COMMAND ${GIT} describe --always --dirty
WORKING_DIRECTORY ${HIGHS_SOURCE_DIR}
OUTPUT_VARIABLE GITHASH OUTPUT_STRIP_TRAILING_WHITESPACE)
string(REGEX REPLACE "^.*-g" "" GITHASH ${GITHASH})
else()
set(GITHASH "n/a")
endif()
message(STATUS "Git hash: " ${GITHASH})

# Deprecate
# string(TIMESTAMP TODAY "%Y-%m-%d")
# message(STATUS "Compilation date: " ${TODAY})

configure_file(${HIGHS_SOURCE_DIR}/src/HConfig.h.in ${HIGHS_BINARY_DIR}/HConfig.h)

if (DEBUG_MEMORY STREQUAL "Address")
set (CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} \
-fsanitize=address,undefined \
-fno-omit-frame-pointer \
-fsanitize-address-use-after-scope")
set (CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO "${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO} \
-fsanitize=address,undefined \
-fno-omit-frame-pointer \
-fsanitize-address-use-after-scope")

set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} \
-fsanitize=address,undefined \
-fno-omit-frame-pointer \
-fno-optimize-sibling-calls ")
set (CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} \
-fsanitize=address,undefined \
-fno-omit-frame-pointer \
-fno-optimize-sibling-calls ")

elseif (DEBUG_MEMORY STREQUAL "Thread")
set (CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} \
-fsanitize=thread,undefined \
-fno-omit-frame-pointer")
set (CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO "${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO} \
-fsanitize=thread,undefined \
-fno-omit-frame-pointer")

set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} \
-fsanitize=thread,undefined \
-fno-omit-frame-pointer ")
set (CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} \
-fsanitize=thread,undefined \
-fno-omit-frame-pointer ")

elseif (DEBUG_MEMORY STREQUAL "Leak")
set (CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} \
-fsanitize=leak,undefined \
-fno-omit-frame-pointer")
set (CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO "${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO} \
-fsanitize=leak,undefined \
-fno-omit-frame-pointer")

set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} \
-fsanitize=leak,undefined \
-fno-omit-frame-pointer ")
set (CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} \
-fsanitize=leak,undefined \
-fno-omit-frame-pointer ")
endif()

if(NOT FAST_BUILD)
# For the moment keep above coverage part in case we are testing at CI.
option(CI "CI extended tests" ON)
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ Contact [Julian](https://github.com/jajhall) (General issues and solvers), [Ivet

## Improve the documentation

The top level [documentation](https://ergo-code.github.io/HiGHS/) is created using [Docsy](https://www.docsy.dev/), with the files held on the [HiGHS repository](https://github.com/ERGO-Code/HiGHS/tree/docsy). If your change is small (like fixing typos, or one or two sentence corrections), the easiest way to do this is to fork the branch and create a pull request. (See *Contribute code to HiGHS* below for more on this.) If your change is larger, or touches multiple files, please raise an issue describing what you want to do.
The top level [documentation](https://ergo-code.github.io/HiGHS/) is created using [Docsy](https://www.docsy.dev/), with the files held on the [HiGHS repository](https://github.com/ERGO-Code/HiGHS/tree/master/docs). If your change is small (like fixing typos, or one or two sentence corrections), the easiest way to do this is to fork the branch and create a pull request. (See *Contribute code to HiGHS* below for more on this.) If your change is larger, or touches multiple files, please raise an issue describing what you want to do.

## Raise an issue

Expand Down
47 changes: 34 additions & 13 deletions FEATURES.md
Original file line number Diff line number Diff line change
@@ -1,22 +1,43 @@
## Build changes

The python wrapper highspy is now available for aarch64 on manylinux
This allows highs to be run through Python on AWS arm64
## Code changes

Added `int64_t mip_total_lp_iterations` to `HighsCallbackDataOut` and modified accessor function

`Highs::writeSolution` and `Highs::writeBasis` now being done via `HighsIO` logging, so can be redirected to logging callback.

Introduced `const double kHighsUndefined` as value of undefined values in a user solution. It's equal to `kHighsInf`

Added `Highs::setSolution(const HighsInt num_entries, const HighsInt* index, const double* value);` to allow a sparse primal solution to be defined. When a MIP is solved to do this, the value of (new) option `mip_max_start_nodes` is used for `mip_max_nodes` to avoid excessive cost

Added options `write_presolved_model_to_file` and `write_presolved_model_file` so that presolved model can be written via a command line option

Added `Highs::feasibilityRelaxation` to solve the problem of minimizing a (possibly weighted) sum of (allowable) infeasibilities in an LP/MIP.

Added Python utility `examples/plot_highs_log.py` (due to @Thell) to visualise progress of the MIP solver.

Added minimal documentation of solvers and how simplex variants can be run

Methods receiving matrix data where only small values are explicit zeros (so removed internally) are now silent and return `HighsStatus::kOk` (since internal matrix is exact)

Now multiplying by pre-computed reciprocals rather than performing divisions in loops in simplex solver: LP performance improvement ~2.5%

Primal and dual residuals after IPM and cuPDLP-C are checked, and corrections applied to row solution and column duals

`Highs::passModelName` added to allow name to be given to the incumbent model

Memory leaks in cuPDLP-C fixed

Bug fixed in MIP presolve






Bug fix for fortran on macOS

## Code changes

The accessor function Highs_getCallbackDataOutItem in the C API means
that `pdlp_iteration_count` can be moved back to where it was inserted
into the `HighsCallbackDataOut` struct in v1.7.0, which broke the C
API. This fixes #1812

Some duplicate code has been eliminated from the MIP solver, and
modifications made to eliminate compiler warnings

Declaration of the (deprecated) method `char* highsCompilationDate()`
has been corrected

Fixed bug when describing integrality status during the human-readable solution write

2 changes: 1 addition & 1 deletion MODULE.bazel
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
module(
name = "highs",
version = "1.7.2",
version = "1.8.0",
)

bazel_dep(
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -208,7 +208,7 @@ The nuget package Highs.Native is on https://www.nuget.org, at https://www.nuget
It can be added to your C# project with `dotnet`

```shell
dotnet add package Highs.Native --version 1.7.2
dotnet add package Highs.Native --version 1.8.0
```

The nuget package contains runtime libraries for
Expand Down
4 changes: 2 additions & 2 deletions Version.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
HIGHS_MAJOR=1
HIGHS_MINOR=7
HIGHS_PATCH=2
HIGHS_MINOR=8
HIGHS_PATCH=0
#PRE_RELEASE=YES
Loading
Loading