Skip to content

Commit 0eda282

Browse files
committed
merges latest into this branch
2 parents f769209 + 7aede2a commit 0eda282

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

69 files changed

+4205
-1297
lines changed

.github/workflows/build-nuget-package.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ concurrency:
77
cancel-in-progress: true
88

99
jobs:
10-
# macos 12 is Intel
11-
build_macos_12:
12-
runs-on: macos-12
10+
# macos 13 is Intel
11+
build_macos_13:
12+
runs-on: macos-13
1313
# strategy:
1414
# matrix:
1515
# python: [3.11]
@@ -32,7 +32,7 @@ jobs:
3232
name: macos-x64
3333
path: ${{runner.workspace}}/build/dotnet/Highs.Native/runtimes
3434

35-
# macos 14 is M1 (beta)
35+
# macos 14 is M1
3636
build_macos_14:
3737
runs-on: macos-14
3838
steps:
@@ -124,7 +124,7 @@ jobs:
124124

125125
build_windows:
126126
runs-on: windows-latest
127-
needs: [build_macos_12, build_macos_14, build_windows_32, build_linux, build_linux_arm64]
127+
needs: [build_macos_13, build_macos_14, build_windows_32, build_linux, build_linux_arm64]
128128
steps:
129129
- uses: actions/checkout@v4
130130
- name: Build HiGHS Windows native

.github/workflows/build-python-package.yml

Lines changed: 23 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -105,13 +105,12 @@ jobs:
105105
python3 -m pip install pytest
106106
python3 -m pytest $GITHUB_WORKSPACE
107107
108-
109-
# macos 12 is Intel
110-
build_wheel_macos_12:
111-
runs-on: macos-12
108+
# macos 13 is Intel
109+
build_wheel_macos_13:
110+
runs-on: macos-13
112111
strategy:
113112
matrix:
114-
python: [3.11]
113+
python: [3.11]
115114
steps:
116115
- uses: actions/checkout@v4
117116

@@ -134,12 +133,12 @@ jobs:
134133
135134
- name: Test highspy
136135
run: |
137-
python3 -m pip install pytest
136+
python3 -m pip install pytest
138137
python3 -m pytest $GITHUB_WORKSPACE
139138
140-
# macos 13 is Intel
141-
build_wheel_macos_13:
142-
runs-on: macos-13
139+
# macos 14 is M1
140+
build_wheel_macos_14:
141+
runs-on: macos-14
143142
strategy:
144143
matrix:
145144
python: [3.11]
@@ -154,7 +153,7 @@ jobs:
154153
- name: Build wheel
155154
run: |
156155
python3 -m pip install cibuildwheel
157-
python3 -m cibuildwheel --only cp311-macosx_x86_64 $GITHUB_WORKSPACE
156+
python3 -m cibuildwheel --only cp311-macosx_arm64 $GITHUB_WORKSPACE
158157
159158
- name: Install wheel
160159
run: |
@@ -167,38 +166,34 @@ jobs:
167166
run: |
168167
python3 -m pip install pytest
169168
python3 -m pytest $GITHUB_WORKSPACE
170-
171-
# macos 14 is M1 (beta)
172-
build_wheel_macos_14:
173-
runs-on: macos-14
174-
strategy:
175-
matrix:
176-
python: [3.11]
169+
170+
build_wheel_windows:
171+
runs-on: windows-2019
177172
steps:
178173
- uses: actions/checkout@v4
179174

180175
- name: Install correct python version
181176
uses: actions/setup-python@v5
182177
with:
183-
python-version: ${{ matrix.python }}
178+
python-version: 3.9
184179

185180
- name: Build wheel
186181
run: |
187-
python3 -m pip install cibuildwheel
188-
python3 -m cibuildwheel --only cp311-macosx_arm64 $GITHUB_WORKSPACE
182+
python -m pip install cibuildwheel
183+
python -m cibuildwheel --only cp39-win_amd64 $GITHUB_WORKSPACE
189184
190185
- name: Install wheel
191186
run: |
192187
ls wheelhouse
193-
python3 --version
194-
python3 -m pip install wheelhouse/*.whl
195-
python3 -c "import highspy; print(dir(highspy))"
188+
$item = Get-ChildItem wheelhouse
189+
python -m pip install "$item"
190+
python -c "import highspy; print(dir(highspy))"
196191
197192
- name: Test highspy
198193
run: |
199-
python3 -m pip install pytest
200-
python3 -m pytest $GITHUB_WORKSPACE
201-
194+
python -m pip install pytest
195+
python -m pytest
196+
202197
build_wheel_windows:
203198
runs-on: windows-2019
204199
steps:
@@ -207,12 +202,12 @@ jobs:
207202
- name: Install correct python version
208203
uses: actions/setup-python@v5
209204
with:
210-
python-version: 3.9
205+
python-version: 3.13
211206

212207
- name: Build wheel
213208
run: |
214209
python -m pip install cibuildwheel
215-
python -m cibuildwheel --only cp39-win_amd64 $GITHUB_WORKSPACE
210+
python -m cibuildwheel --only cp313-win_amd64 $GITHUB_WORKSPACE
216211
217212
- name: Install wheel
218213
run: |

.github/workflows/build-wheels-push.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,11 +48,11 @@ jobs:
4848
- [ubuntu-20.04, musllinux_x86_64] # No OpenBlas, no test
4949
- [ubuntu-20.04, musllinux_i686]
5050
- [ubuntu-20.04, musllinux_aarch64]
51-
- [macos-12, macosx_x86_64]
51+
- [macos-13, macosx_x86_64]
5252
- [macos-14, macosx_arm64]
5353
- [windows-2019, win_amd64]
5454
- [windows-2019, win32]
55-
python: ["cp38", "cp39","cp310", "cp311","cp312"]
55+
python: ["cp38", "cp39","cp310", "cp311","cp312", "cp313"]
5656

5757
steps:
5858
- uses: actions/checkout@v4
@@ -65,14 +65,14 @@ jobs:
6565

6666
- name: Build wheels (aarch64)
6767
if: ${{ contains(matrix.buildplat[1], 'aarch64') }}
68-
uses: pypa/cibuildwheel@v2.19
68+
uses: pypa/cibuildwheel@v2.21
6969
env:
7070
CIBW_BUILD: ${{ matrix.python }}-${{ matrix.buildplat[1] }}
7171
CIBW_ARCHS_LINUX: aarch64
7272

7373
- name: Build wheels (not aarch64)
7474
if: ${{ !contains(matrix.buildplat[1], 'aarch64') }}
75-
uses: pypa/cibuildwheel@v2.19
75+
uses: pypa/cibuildwheel@v2.21
7676
env:
7777
CIBW_BUILD: ${{ matrix.python }}-${{ matrix.buildplat[1] }}
7878

.github/workflows/build-wheels.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,11 @@ jobs:
3535
- [ubuntu-20.04, musllinux_x86_64] # No OpenBlas, no test
3636
- [ubuntu-20.04, musllinux_i686]
3737
- [ubuntu-20.04, musllinux_aarch64]
38-
- [macos-12, macosx_x86_64]
38+
- [macos-13, macosx_x86_64]
3939
- [macos-14, macosx_arm64]
4040
- [windows-2019, win_amd64]
4141
- [windows-2019, win32]
42-
python: ["cp38", "cp39","cp310", "cp311","cp312"]
42+
python: ["cp38", "cp39","cp310", "cp311","cp312", "cp313"]
4343

4444
steps:
4545
- uses: actions/checkout@v4
@@ -51,13 +51,13 @@ jobs:
5151

5252
- name: Build wheels (aarch64)
5353
if: ${{ contains(matrix.buildplat[1], 'aarch64') }}
54-
uses: pypa/cibuildwheel@v2.19
54+
uses: pypa/cibuildwheel@v2.21
5555
env:
5656
CIBW_BUILD: ${{ matrix.python }}-${{ matrix.buildplat[1] }}
5757
CIBW_ARCHS_LINUX: aarch64
5858

5959
- name: Build wheels (not aarch64)
6060
if: ${{ !contains(matrix.buildplat[1], 'aarch64') }}
61-
uses: pypa/cibuildwheel@v2.19
61+
uses: pypa/cibuildwheel@v2.21
6262
env:
6363
CIBW_BUILD: ${{ matrix.python }}-${{ matrix.buildplat[1] }}

.github/workflows/build-windows.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,7 @@ jobs:
229229
# Note the current convention is to use the -S and -B options here to specify source
230230
# and build directories, but this is only available with CMake 3.13 and higher.
231231
# The CMake binaries on the Github Actions machines are (as of this writing) 3.12
232-
run: cmake $GITHUB_WORKSPACE -DFAST_BUILD=OFF -DHIGHSINT64=on -DHIGHS_NO_DEFAULT_THREADS=ON
232+
run: cmake $GITHUB_WORKSPACE -DHIGHSINT64=on -DHIGHS_NO_DEFAULT_THREADS=ON
233233

234234
- name: Build
235235
working-directory: ${{runner.workspace}}/build
@@ -263,7 +263,7 @@ jobs:
263263
# Note the current convention is to use the -S and -B options here to specify source
264264
# and build directories, but this is only available with CMake 3.13 and higher.
265265
# The CMake binaries on the Github Actions machines are (as of this writing) 3.12
266-
run: cmake $GITHUB_WORKSPACE -DFAST_BUILD=OFF -DHIGHSINT64=on -DHIGHS_NO_DEFAULT_THREADS=ON
266+
run: cmake $GITHUB_WORKSPACE -DHIGHSINT64=on -DHIGHS_NO_DEFAULT_THREADS=ON -DALL_TESTS=ON
267267

268268
- name: Build
269269
working-directory: ${{runner.workspace}}/build

.github/workflows/test-fortran-macos.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ on: [push, pull_request]
44

55
jobs:
66
fast_build_release:
7-
runs-on: macos-12
7+
runs-on: [macos-13]
88

99

1010
steps:

.github/workflows/test-nuget-macos.yml

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ concurrency:
77
cancel-in-progress: true
88

99
jobs:
10-
# macos 12 is Intel
11-
build_macos_12:
12-
runs-on: macos-12
10+
# macos 13 is Intel
11+
build_macos_13:
12+
runs-on: macos-13
1313
# strategy:
1414
# matrix:
1515
# python: [3.11]
@@ -54,9 +54,8 @@ jobs:
5454
dotnet add package Highs.Native -s ${{runner.workspace}}/nugets
5555
dotnet run
5656
57-
5857
59-
# macos 14 is M1 (beta)
58+
# macos 14 is M1
6059
build_macos_14:
6160
runs-on: macos-14
6261
steps:

.github/workflows/test-nuget-package.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ concurrency:
77
cancel-in-progress: true
88

99
jobs:
10-
# macos 12 is Intel
11-
build_macos_12:
12-
runs-on: macos-12
10+
# macos 13 is Intel
11+
build_macos_13:
12+
runs-on: macos-13
1313
# strategy:
1414
# matrix:
1515
# python: [3.11]
@@ -56,7 +56,7 @@ jobs:
5656
5757
5858
59-
# macos 14 is M1 (beta)
59+
# macos 14 is M1
6060
build_macos_14:
6161
runs-on: macos-14
6262
steps:

FEATURES.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,27 @@
22

33
## Code changes
44

5+
When primal infeasiblity is detected in presolve, no dual ray is available so, previously, the `has_dual_ray` parameter of `Highs::getDualRay` returned false and that was it. Now, if a null pointer is not passed for `dual_ray_value`, `Highs::getDualRay` will compute a dual ray - at the cost of solving the feasiblility LP without presolve. The same is now true for `Highs::getPrimalRay`. `Highs::getDualUnboundednessDirection` has been introduced to determine the product between the constraint matrix and the dual ray, forcing the calculation of the latter if necessary. Once a dual ray is known for the incumbent model in HiGHS, subsequent calls to `Highs::getDualRay` and `Highs::getDualUnboundednessDirection` will be vastly cheaper
6+
7+
The method `Highs::getDualObjectiveValue` now exitsts to compute the dual objective value, returning `HighsStatus::kError` if it is not possible.
8+
9+
The method `Highs::getStandardFormLp` now exists to return the incumbent LP in standard form - overlooking any integrality or Hessian. To determine the sizes of the vectors of data, the method is called without specifying pointers to the data arrays.
10+
11+
Added documentation on the use of presolve when solving an incumbent model, and clarifying the use of the method `Highs::presolve`.
12+
13+
HiGHS will now read a `MIPLIB` solution file
14+
15+
Added time limit check to `HPresolve::strengthenInequalities`
16+
17+
Added `getColIntegrality` to `highspy`
18+
19+
Now computing the primal-dual integral, reporting it, and making it available as `HighsInfo::primal_dual_integral`
20+
21+
Trivial primal heuristics "all zero", "all lower bound", "all upper bound", and "lock point" added to the MIP solver
22+
23+
24+
25+
526

627

728

0 commit comments

Comments
 (0)