forked from ERGO-Code/HiGHS
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
96 changed files
with
4,910 additions
and
2,761 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +0,0 @@ | ||
common --noenable_bzlmod | ||
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,68 @@ | ||
name: code-coverage | ||
|
||
on: [pull_request] | ||
|
||
jobs: | ||
debug: | ||
runs-on: ${{ matrix.os }} | ||
strategy: | ||
matrix: | ||
os: [ubuntu-latest] | ||
|
||
steps: | ||
- uses: actions/checkout@v4 | ||
|
||
- name: install | ||
run: sudo apt-get update && sudo apt-get install lcov | ||
|
||
- name: Create Build Environment | ||
run: cmake -E make_directory ${{runner.workspace}}/build | ||
|
||
- name: Configure CMake | ||
shell: bash | ||
working-directory: ${{runner.workspace}}/build | ||
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=Debug -DHIGHS_COVERAGE=ON -DALL_TESTS=ON -DBUILD_SHARED_LIBS=OFF -D CMAKE_C_COMPILER=gcc -D CMAKE_CXX_COMPILER=g++ | ||
|
||
- name: Build | ||
working-directory: ${{runner.workspace}}/build | ||
shell: bash | ||
run: | | ||
cmake --build . --parallel --config Debug | ||
- name: Test | ||
working-directory: ${{runner.workspace}}/build | ||
shell: bash | ||
run: ctest --parallel --timeout 300 --output-on-failure | ||
|
||
- name: Generate Report | ||
working-directory: ${{runner.workspace}}/build | ||
shell: bash | ||
run: | | ||
lcov -d . -c -o cov.info --ignore-errors empty | ||
lcov --remove cov.info "/usr/include/*" -o cov.info | ||
lcov --remove cov.info "/usr/lib/*" -o cov.info | ||
lcov --remove cov.info "extern/pdqsort/*" -o cov.info | ||
lcov --remove cov.info "extern/zstr/*" -o cov.info | ||
lcov --remove cov.info "extern/catch*" -o cov.info | ||
lcov --remove cov.info "app/cxxopts*" -o cov.info | ||
lcov --remove cov.info "src/test*" -o cov.info | ||
lcov --list cov.info | ||
mv cov.info coverage.info | ||
- name: Genhtml Results Summary | ||
working-directory: ${{runner.workspace}}/build | ||
shell: bash | ||
run: | | ||
genhtml -o coverage coverage.info | ||
# Made it past the first token issue. | ||
# May need some more time to porpagate on the codecov side. | ||
- name: Upload coverage reports to Codecov | ||
uses: codecov/codecov-action@v5 | ||
with: | ||
token: ${{ secrets.CODECOV_TOKEN }} | ||
slug: ERGO-Code/HiGHS | ||
fail_ci_if_error: true # optional (default = false) | ||
files: ${{runner.workspace}}/build/coverage.info # optional | ||
# name: codecov-umbrella # optional | ||
verbose: true # optional (default = false) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -230,6 +230,7 @@ pip-log.txt | |
|
||
# Unit test / coverage reports | ||
.coverage | ||
cov.info | ||
.tox | ||
|
||
#Translations | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,16 +1,21 @@ | ||
## Build changes | ||
|
||
Python: Source Distribution update, added to PyPI | ||
|
||
## Code changes | ||
|
||
HiGHS now handles multiple linear objectives by either blending using weights, or performing lexicographic optimization: see https://ergo-code.github.io/HiGHS/stable/guide/further/#guide-multi-objective-optimization | ||
Any LP offset is communicated to the IPM solver, and used in logging and primal/dual objective calculations. | ||
|
||
If there is a valid basis when Highs::run() is called, presolve isn't skipped unless the solver option is "simplex" or "choose" (when simplex will always be chosen if there is an advanced basis). | ||
|
||
Added basis solve methods to highspy | ||
|
||
Fixed minor bug in bound checking in presolve | ||
Added methods to get primal/dual ray and dual unboundedness direction to highspy | ||
|
||
Fixed bug in `floor(HighsCDouble x)` and `ceil(HighsCDouble x)` when argument is small | ||
When a presolved LP has model status kUnknown, rather than returning this to the user, it performs postsolve and then uses the basis to solve the original LP | ||
|
||
Added some sanity checks to Highs::writeLocalModel to prevent segfaults if called directly by a user | ||
Fixed bug in presolve when pointers stored in HighsMatrixSlice get invalidated when the coefficient matrix is reallocated (e.g. when non-zeros are added in HPresolve::addToMatrix) | ||
|
||
Primal and dual residual tolerances - applied following IPM or PDLP solution - now documented as options | ||
|
||
Highs::getCols (Highs::getRows) now runs in linear time if the internal constraint matrix is stored column-wise (row-wise). Added ensureColwise/Rowwise to the Highs class, the C API and highspy so that users can set the internal constraint matrix storage orientation | ||
|
||
When columns and rows are deleted from the incumbent LP after a basic solution has been found, HiGHS no longer invalidates the basis. Now it maintains the basic and nonbasic status of the remaining variables and constraints. When the model is re-solved, this information is used to construct a starting basis. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.