Skip to content

Commit

Permalink
Merged latest into this branch
Browse files Browse the repository at this point in the history
  • Loading branch information
jajhall committed Nov 4, 2024
2 parents 4003eb2 + 1fb0fe4 commit 4be1f75
Show file tree
Hide file tree
Showing 46 changed files with 1,811 additions and 563 deletions.
10 changes: 5 additions & 5 deletions .github/workflows/build-nuget-package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ concurrency:
cancel-in-progress: true

jobs:
# macos 12 is Intel
build_macos_12:
runs-on: macos-12
# macos 13 is Intel
build_macos_13:
runs-on: macos-13
# strategy:
# matrix:
# python: [3.11]
Expand All @@ -32,7 +32,7 @@ jobs:
name: macos-x64
path: ${{runner.workspace}}/build/dotnet/Highs.Native/runtimes

# macos 14 is M1 (beta)
# macos 14 is M1
build_macos_14:
runs-on: macos-14
steps:
Expand Down Expand Up @@ -124,7 +124,7 @@ jobs:

build_windows:
runs-on: windows-latest
needs: [build_macos_12, build_macos_14, build_windows_32, build_linux, build_linux_arm64]
needs: [build_macos_13, build_macos_14, build_windows_32, build_linux, build_linux_arm64]
steps:
- uses: actions/checkout@v4
- name: Build HiGHS Windows native
Expand Down
51 changes: 23 additions & 28 deletions .github/workflows/build-python-package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -105,13 +105,12 @@ jobs:
python3 -m pip install pytest
python3 -m pytest $GITHUB_WORKSPACE
# macos 12 is Intel
build_wheel_macos_12:
runs-on: macos-12
# macos 13 is Intel
build_wheel_macos_13:
runs-on: macos-13
strategy:
matrix:
python: [3.11]
python: [3.11]
steps:
- uses: actions/checkout@v4

Expand All @@ -134,12 +133,12 @@ jobs:
- name: Test highspy
run: |
python3 -m pip install pytest
python3 -m pip install pytest
python3 -m pytest $GITHUB_WORKSPACE
# macos 13 is Intel
build_wheel_macos_13:
runs-on: macos-13
# macos 14 is M1
build_wheel_macos_14:
runs-on: macos-14
strategy:
matrix:
python: [3.11]
Expand All @@ -154,7 +153,7 @@ jobs:
- name: Build wheel
run: |
python3 -m pip install cibuildwheel
python3 -m cibuildwheel --only cp311-macosx_x86_64 $GITHUB_WORKSPACE
python3 -m cibuildwheel --only cp311-macosx_arm64 $GITHUB_WORKSPACE
- name: Install wheel
run: |
Expand All @@ -167,38 +166,34 @@ jobs:
run: |
python3 -m pip install pytest
python3 -m pytest $GITHUB_WORKSPACE
# macos 14 is M1 (beta)
build_wheel_macos_14:
runs-on: macos-14
strategy:
matrix:
python: [3.11]
build_wheel_windows:
runs-on: windows-2019
steps:
- uses: actions/checkout@v4

- name: Install correct python version
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python }}
python-version: 3.9

- name: Build wheel
run: |
python3 -m pip install cibuildwheel
python3 -m cibuildwheel --only cp311-macosx_arm64 $GITHUB_WORKSPACE
python -m pip install cibuildwheel
python -m cibuildwheel --only cp39-win_amd64 $GITHUB_WORKSPACE
- name: Install wheel
run: |
ls wheelhouse
python3 --version
python3 -m pip install wheelhouse/*.whl
python3 -c "import highspy; print(dir(highspy))"
$item = Get-ChildItem wheelhouse
python -m pip install "$item"
python -c "import highspy; print(dir(highspy))"
- name: Test highspy
run: |
python3 -m pip install pytest
python3 -m pytest $GITHUB_WORKSPACE
python -m pip install pytest
python -m pytest
build_wheel_windows:
runs-on: windows-2019
steps:
Expand All @@ -207,12 +202,12 @@ jobs:
- name: Install correct python version
uses: actions/setup-python@v5
with:
python-version: 3.9
python-version: 3.13

- name: Build wheel
run: |
python -m pip install cibuildwheel
python -m cibuildwheel --only cp39-win_amd64 $GITHUB_WORKSPACE
python -m cibuildwheel --only cp313-win_amd64 $GITHUB_WORKSPACE
- name: Install wheel
run: |
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/build-wheels-push.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,11 +48,11 @@ jobs:
- [ubuntu-20.04, musllinux_x86_64] # No OpenBlas, no test
- [ubuntu-20.04, musllinux_i686]
- [ubuntu-20.04, musllinux_aarch64]
- [macos-12, macosx_x86_64]
- [macos-13, macosx_x86_64]
- [macos-14, macosx_arm64]
- [windows-2019, win_amd64]
- [windows-2019, win32]
python: ["cp38", "cp39","cp310", "cp311","cp312"]
python: ["cp38", "cp39","cp310", "cp311","cp312", "cp313"]

steps:
- uses: actions/checkout@v4
Expand All @@ -65,14 +65,14 @@ jobs:

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

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

Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/build-wheels.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,11 +35,11 @@ jobs:
- [ubuntu-20.04, musllinux_x86_64] # No OpenBlas, no test
- [ubuntu-20.04, musllinux_i686]
- [ubuntu-20.04, musllinux_aarch64]
- [macos-12, macosx_x86_64]
- [macos-13, macosx_x86_64]
- [macos-14, macosx_arm64]
- [windows-2019, win_amd64]
- [windows-2019, win32]
python: ["cp38", "cp39","cp310", "cp311","cp312"]
python: ["cp38", "cp39","cp310", "cp311","cp312", "cp313"]

steps:
- uses: actions/checkout@v4
Expand All @@ -51,13 +51,13 @@ jobs:

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

- name: Build wheels (not aarch64)
if: ${{ !contains(matrix.buildplat[1], 'aarch64') }}
uses: pypa/cibuildwheel@v2.19
uses: pypa/cibuildwheel@v2.21
env:
CIBW_BUILD: ${{ matrix.python }}-${{ matrix.buildplat[1] }}
4 changes: 2 additions & 2 deletions .github/workflows/build-windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -229,7 +229,7 @@ jobs:
# Note the current convention is to use the -S and -B options here to specify source
# and build directories, but this is only available with CMake 3.13 and higher.
# The CMake binaries on the Github Actions machines are (as of this writing) 3.12
run: cmake $GITHUB_WORKSPACE -DFAST_BUILD=OFF -DHIGHSINT64=on -DHIGHS_NO_DEFAULT_THREADS=ON
run: cmake $GITHUB_WORKSPACE -DHIGHSINT64=on -DHIGHS_NO_DEFAULT_THREADS=ON

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

- name: Build
working-directory: ${{runner.workspace}}/build
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test-fortran-macos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ on: [push, pull_request]

jobs:
fast_build_release:
runs-on: macos-12
runs-on: [macos-13]


steps:
Expand Down
9 changes: 4 additions & 5 deletions .github/workflows/test-nuget-macos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ concurrency:
cancel-in-progress: true

jobs:
# macos 12 is Intel
build_macos_12:
runs-on: macos-12
# macos 13 is Intel
build_macos_13:
runs-on: macos-13
# strategy:
# matrix:
# python: [3.11]
Expand Down Expand Up @@ -54,9 +54,8 @@ jobs:
dotnet add package Highs.Native -s ${{runner.workspace}}/nugets
dotnet run
# macos 14 is M1 (beta)
# macos 14 is M1
build_macos_14:
runs-on: macos-14
steps:
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/test-nuget-package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ concurrency:
cancel-in-progress: true

jobs:
# macos 12 is Intel
build_macos_12:
runs-on: macos-12
# macos 13 is Intel
build_macos_13:
runs-on: macos-13
# strategy:
# matrix:
# python: [3.11]
Expand Down Expand Up @@ -56,7 +56,7 @@ jobs:
# macos 14 is M1 (beta)
# macos 14 is M1
build_macos_14:
runs-on: macos-14
steps:
Expand Down
4 changes: 4 additions & 0 deletions FEATURES.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,10 @@ The method `Highs::getDualObjectiveValue` now exitsts to compute the dual object
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.


Added documentation on the use of presolve when solving an incumbent model, and clarifying the use of the method `Highs::presolve`.






Expand Down
78 changes: 76 additions & 2 deletions check/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -230,6 +230,57 @@ if (NOT FAST_BUILD OR ALL_TESTS)
# "--parallel=on"
)

if (UNIX AND NOT APPLE)
set(pdlpInstances
"25fv47\; 5.50184588\;"
"adlittle\; 2.254949631\;"
"afiro\;-4.64753142\;"
"avgas\;-7.749999999\;"
"blending\;-3.19999999\;"
"chip\;-9.000000001\;"
"e226\;-1.16389293\;"
"scrs8\; 9.042969511\;"
"sctest\; 5.749999936\;"
"shell\; 1.2088253460\;"
"stair\;-2.51266951\;"
"standata\; 1.257699499\;"
"standgub\; 1.25769949\;"
)
elseif(WIN32)
# on windows e226 model status is unknown, rel gap e00
set(pdlpInstances
"25fv47\; 5.50184588\;"
"adlittle\; 2.25494963\;"
"afiro\;-4.64753142\;"
"avgas\;-7.749999999\;"
"blending\;-3.19999999\;"
"chip\;-9.000000001\;"
"scrs8\; 9.0429695\;"
"sctest\; 5.749999936\;"
"shell\; 1.2088253460\;"
"stair\;-2.51266951\;"
"standata\; 1.2576995\;"
"standgub\; 1.2576995\;"
)
elseif(APPLE)
set(pdlpInstances
"25fv47\; 5.5018458\;"
"adlittle\; 2.25494963\;"
"afiro\;-4.64753142\;"
"avgas\;-7.749999999\;"
"blending\;-3.19999999\;"
"chip\;-8.9999988715\;"
"e226\;-1.163892\;"
"scrs8\; 9.04296953\;"
"sctest\; 5.749999936\;"
"shell\; 1.2088253460\;"
"stair\;-2.5126695\;"
"standata\; 1.25769950\;"
"standgub\; 1.25769950\;"
)
endif()


# define a macro to add tests
#
# add_instancetests takes an instance group and a status
Expand Down Expand Up @@ -293,7 +344,8 @@ if (NOT FAST_BUILD OR ALL_TESTS)

add_instancetests(failInstances "Fail")
add_instancetests(infeasibleInstances "Infeasible")
#add_instancetests(unboundedInstances "Unbounded")
add_instancetests(unboundedInstances "Unbounded")


foreach(instance ${mipInstances})
list(GET instance 0 name)
Expand All @@ -320,6 +372,28 @@ if (NOT FAST_BUILD OR ALL_TESTS)
"Solution status infeasible")

endforeach(setting)
endforeach()
endforeach(instance)

if(FAST_BUILD)
foreach(instance_pdlp ${pdlpInstances})
# add default tests
# treat the instance as a tuple (list) of two values
list(GET instance_pdlp 0 name_pdlp)
list(GET instance_pdlp 1 optval)

set(inst_pdlp "${HIGHS_SOURCE_DIR}/check/instances/${name_pdlp}.mps")

add_test(NAME ${name_pdlp}-pdlp-no-presolve COMMAND $<TARGET_FILE:highs-bin> "--solver=pdlp"
"--presolve=off" ${inst_pdlp})

set_tests_properties (${name_pdlp}-pdlp-no-presolve PROPERTIES
PASS_REGULAR_EXPRESSION
"Model status : Optimal")

set_tests_properties (${name_pdlp}-pdlp-no-presolve PROPERTIES
PASS_REGULAR_EXPRESSION
"Objective value : ${optval}")
endforeach(instance_pdlp)
endif()

endif()
Loading

0 comments on commit 4be1f75

Please sign in to comment.