Skip to content
Snippets Groups Projects
Commit cc6b49b9 authored by Clara Witte's avatar Clara Witte
Browse files

Release version v0.6.0

parent ccdb3334
No related branches found
Tags v0.6.0
No related merge requests found
......@@ -14,12 +14,16 @@ build_windows:
before_script:
- git submodule init
- git submodule update
script:
script:
- mkdir build
- '$env:path += ";C:\Program Files\cmake\bin"'
- cmake -B build -G "Visual Studio 15 2017" -A x64 -D MAiNGO_build_test=TRUE -D MAiNGO_build_python_interface=TRUE -D MAiNGO_build_parser=false
- cd build
- '$env:path += ";C:\Program Files\cmake\bin"'
- cmake .. -G "Visual Studio 15 2017" -A x64 -D MAiNGO_use_mpi=FALSE -D MAiNGO_build_test=TRUE -D MAiNGO_build_python_interface=TRUE -D MAiNGO_build_parser=TRUE -D MAiNGO_build_shared_c_api=TRUE
- cmake --build . --config Release -j4
- move Release/maingo-test-problems.exe Release/maingo-test-problems-sequential.exe
- cmake .. -G "Visual Studio 15 2017" -A x64 -D MAiNGO_use_mpi=TRUE -D MAiNGO_build_test=TRUE -D MAiNGO_build_python_interface=FALSE -D MAiNGO_build_parser=FALSE -D MAiNGO_build_shared_c_api=FALSE -D MAiNGO_use_melon=FALSE
- cmake --build . --config Release -j4
- move Release/maingo-test-problems.exe Release/maingo-test-problems-parallel.exe
- cd ..
artifacts:
paths:
......@@ -38,7 +42,10 @@ test_windows:
- maingo
script:
- cd build\Release
- .\test-maingo.exe
- .\unit-test-maingo.exe
- .\maingo-test-problems-sequential.exe
- mpiexec -n 4 maingo-test-problems-parallel.exe
- .\test-c-api-maingo.exe
- py testMaingopy.py
......@@ -57,12 +64,20 @@ build_linux:
script:
- mkdir build
- cd build
- cmake -S .. -D MAiNGO_build_test=TRUE -D MAiNGO_build_python_interface=TRUE -D MAiNGO_build_parser=false
- cmake -S .. -D MAiNGO_use_mpi=FALSE -D MAiNGO_build_test=TRUE -D MAiNGO_build_python_interface=TRUE -D MAiNGO_build_parser=TRUE -D MAiNGO_build_shared_c_api=TRUE
- make -j4
- mv maingo-test-problems maingo-test-problems-sequential
- cmake -S .. -D MAiNGO_use_mpi=TRUE -D MAiNGO_build_test=TRUE -D MAiNGO_build_python_interface=FALSE -D MAiNGO_build_parser=FALSE -D MAiNGO_build_shared_c_api=FALSE -D MAiNGO_use_melon=FALSE
- make -j4
- mv maingo-test-problems maingo-test-problems-parallel
- cd ..
artifacts:
paths:
- build/test-maingo
- build/unit-test-maingo
- build/maingo-test-problems-sequential
- build/maingo-test-problems-parallel
- build/libmaingo-c-api.so
- build/test-c-api-maingo
- build/maingopy/
- build/testMaingopy.py
- build/individualPythonTests/
......@@ -75,7 +90,10 @@ test_linux:
- linux
script:
- cd build
- ./test-maingo
- ./unit-test-maingo
- ./maingo-test-problems-sequential
- mpiexec -n 4 ./maingo-test-problems-parallel
- ./test-c-api-maingo
- python3 testMaingopy.py
......
......@@ -37,15 +37,18 @@
[submodule "dep/pybind11"]
path = dep/pybind11
url = https://github.com/pybind/pybind11
[submodule "dep/libale"]
path = dep/libale
url = https://git.rwth-aachen.de/avt-svt/public/libale.git
[submodule "dep/melon"]
path = dep/melon
url = https://git.rwth-aachen.de/avt-svt/public/melon.git
[submodule "dep/googletest"]
path = dep/googletest
url = https://github.com/google/googletest
[submodule "dep/babbase"]
path = dep/babbase
url = https://git.rwth-aachen.de/avt-svt/public/babbase.git
[submodule "dep/libale"]
path = dep/libale
url = https://git.rwth-aachen.de/avt-svt/public/libale.git
[submodule "dep/mcpp"]
path = dep/mcpp
url = https://git.rwth-aachen.de/avt-svt/public/thirdparty/mcpp.git
[submodule "dep/melon"]
path = dep/melon
url = https://git.rwth-aachen.de/avt-svt/public/melon.git
Main authors:
- Dominik Bongartz (AVT.SVT, RWTH Aachen University)
- Dominik Bongartz (AVT.SVT, RWTH Aachen University, KU Leuven)
Jaromil Najman (AVT.SVT, RWTH Aachen University)
Susanne Sass (AVT.SVT, RWTH Aachen University)
Clara Witte (AVT.SVT, RWTH Aachen University)
Alexander Mitsos, project leader (AVT.SVT, RWTH Aachen University)
Contributors:
......@@ -16,6 +17,8 @@ Contributors:
- Aron Zingler (AVT.SVT, RWTH Aachen University)
Re-implementation of branch-and-bound components
C-API
LazyQuadExpr
- Ashutosh Manchanda (AVT.SVT, RWTH Aachen University)
CLP interface
......@@ -23,6 +26,10 @@ Contributors:
- Artur M. Schweidtmann (AVT.SVT, RWTH Aachen University)
MPI Parallelization
Testing and bug reports
- Jana Hauer (AVT.SVT, RWTH Aachen University)
CI/CD & unit testing
Refactoring
- Jannik Burre (AVT.SVT, RWTH Aachen University)
Wolfgang R. Huster (AVT.SVT, RWTH Aachen University)
......
set(CMAKE_SYSTEM_VERSION 10.0)
cmake_minimum_required(VERSION 3.15)
include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/MAiNGOversion.cmake)
......@@ -11,8 +12,10 @@ set(MAiNGO_use_melon TRUE CACHE BOOL "Build MAiNGO executable with the MeLOn too
set(MAiNGO_use_cplex TRUE CACHE BOOL "Use CPLEX if it is available on the system.")
set(MAiNGO_use_knitro TRUE CACHE BOOL "Use KNITRO if it is available on the system.")
set(MAiNGO_use_mpi FALSE CACHE BOOL "Build parallel version of MAiNGO.")
set(MAiNGO_use_growing_datasets FALSE CACHE BOOL "Build MAiNGO with growing datasets for solving parameter estimation problems.")
set(MAiNGO_build_python_interface FALSE CACHE BOOL "Build the Python package 'maingopy' that allows to call MAiNGO from Python.")
set(MAiNGO_build_standalone FALSE CACHE BOOL "Build MAiNGOcpp executable as standalone solver with problem.h.")
set(MAiNGO_build_shared_c_api FALSE CACHE BOOL "Build library version of MAiNGO with parser callable from C.")
if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR)
set(MAiNGO_build_parser TRUE CACHE BOOL "Build MAiNGO executable with parser.")
set(MAiNGO_build_test TRUE CACHE BOOL "Build MAiNGO test cases.")
......@@ -33,6 +36,7 @@ if(SKBUILD)
set(MAiNGO_use_knitro FALSE CACHE BOOL "Use KNITRO if it is available on the system." FORCE)
# Disable stuff that is not compatible with the Python package to be installed
set(MAiNGO_use_mpi FALSE CACHE INTERNAL "" FORCE)
set(MAiNGO_use_growing_datasets FALSE CACHE INTERNAL "" FORCE)
set(MAiNGO_build_standalone FALSE CACHE INTERNAL "" FORCE)
set(MAiNGO_build_parser FALSE CACHE INTERNAL "" FORCE)
set(MAiNGO_build_test FALSE CACHE INTERNAL "" FORCE)
......@@ -43,7 +47,7 @@ if(SKBUILD)
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
set(BUILD_SHARED_LIBS FALSE CACHE INTERNAL "" FORCE)
endif()
if(MAiNGO_build_python_interface)
if(MAiNGO_build_python_interface OR MAiNGO_build_shared_c_api)
# if building the python interface, the generated module needs PIC, even if building static libraries
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
endif()
......@@ -80,7 +84,7 @@ endif()
if(MAiNGO_use_cplex)
# cplex has to be linked first, since on Linux/MacOS, it comes as a static library that contains BLAS etc.
# if linking it after our blas, this will result in multiply defined symbols
target_link_libraries(maingo-core PRIVATE cplex-ilo cplex-concert cplex-lib)
target_link_libraries(maingo-core PRIVATE cplex)
endif()
target_link_libraries(maingo-core
PUBLIC
......@@ -93,7 +97,7 @@ target_link_libraries(maingo-core
ipopt
clp
)
if(MAiNGO_build_parser)
if(MAiNGO_build_parser OR MAiNGO_build_shared_c_api)
add_library(parser STATIC ${PARSER_SRC})
target_include_directories(parser PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/inc)
target_link_libraries(parser PUBLIC ale babbase mcpp)
......@@ -114,6 +118,10 @@ if(MAiNGO_use_mpi)
target_compile_definitions(maingo-core PUBLIC HAVE_MAiNGO_MPI) # Define pre-processor variable HAVE_MAiNGO_MPI
target_link_libraries(maingo-core PUBLIC MPI::MPI_CXX)
endif()
if(MAiNGO_use_growing_datasets)
message("Growing datasets will be used. See documentation for changes in model setup.")
target_compile_definitions(maingo-core PUBLIC HAVE_GROWING_DATASETS) # Define pre-processor variable HAVE_GROWING_DATASETS
endif()
#----------------- If this is the top level, include dependencies --------------------
......@@ -126,6 +134,9 @@ if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR)
message("=================================================================")
include(${PROJECT_SOURCE_DIR}/cmake/addDependency.cmake)
add_dependency_subdir(babbase)
if(MAiNGO_use_growing_datasets)
target_compile_definitions(babbase PUBLIC BABBASE_HAVE_GROWING_DATASETS) # Pass pre-processor variable to babbase
endif()
add_dependency_subdir(fadbad)
add_dependency_subdir(blas)
add_dependency_subdir(lapack)
......@@ -136,7 +147,7 @@ if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR)
add_dependency_subdir(nlopt)
add_dependency_subdir(clp)
add_dependency_subdir(filib)
if(MAiNGO_build_parser)
if(MAiNGO_build_parser OR MAiNGO_build_shared_c_api)
add_dependency_subdir(libale)
endif()
if(MAiNGO_use_cplex)
......@@ -162,6 +173,12 @@ if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR)
add_dependency_subdir(melon)
add_dependency_subdir(json)
endif()
if(MAiNGO_build_test)
set(INSTALL_GTEST FALSE CACHE INTERNAL "")
set(BUILD_GMOCK FALSE CACHE INTERNAL "")
set(gmock_build_tests FALSE CACHE INTERNAL "")
add_dependency_subdir(googletest)
endif()
message("Done configuring dependencies.")
message("=================================================================")
message("=================================================================")
......@@ -176,7 +193,6 @@ if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR)
endif()
# --------------- MAiNGO executable (using ALE parser) ---------------------------
if (MAiNGO_build_parser)
......@@ -198,6 +214,7 @@ if (MAiNGO_build_parser)
endif()
# --------------- Standalone MAiNGO executable (for C++ API) ---------------------------
if (MAiNGO_build_standalone)
......@@ -219,6 +236,35 @@ if (MAiNGO_build_standalone)
endif()
# --------------- Shared library for MAiNGO including parser callable from C ---------------------------
if (MAiNGO_build_shared_c_api)
# To build shared libraries in Windows, we set CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS to TRUE.
# See https://cmake.org/cmake/help/v3.4/variable/CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS.html
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
add_library(maingo-c-api SHARED
${PROJECT_SOURCE_DIR}/src/cApi.cpp
)
target_link_libraries(maingo-c-api maingo-core parser)
set_target_properties(maingo-c-api PROPERTIES CXX_STANDARD 17)
set_target_properties(maingo-c-api PROPERTIES POSITION_INDEPENDENT_CODE ON)
set_target_properties(maingo-c-api PROPERTIES PUBLIC_HEADER ${PROJECT_SOURCE_DIR}/inc/cApi.h)
if(NOT(MSVC))
target_compile_options(maingo-c-api
PRIVATE
$<$<CXX_COMPILER_ID:Intel>: $<$<NOT:$<CONFIG:DEBUG>>:-O3> $<$<CONFIG:DEBUG>:-O0>>
$<$<CXX_COMPILER_ID:GNU>: $<$<NOT:$<CONFIG:DEBUG>>:-O3> $<$<CONFIG:DEBUG>:-O0>>
$<$<CXX_COMPILER_ID:AppleClang>: $<$<NOT:$<CONFIG:DEBUG>>:-O3> $<$<CONFIG:DEBUG>:-O0>>
$<$<CXX_COMPILER_ID:Clang>: $<$<NOT:$<CONFIG:DEBUG>>:-O3> $<$<CONFIG:DEBUG>:-O0>>
)
else()
set_target_properties(maingo-c-api PROPERTIES LINK_FLAGS /ignore:4099) #/ignore:4099 disables annoying linker warning because cplex does not provide debugging information
endif()
endif()
# --------------- Python interface ---------------------------
if(MAiNGO_build_python_interface)
......@@ -255,7 +301,7 @@ if(MAiNGO_build_python_interface)
set_target_properties(melonpy PROPERTIES
LIBRARY_OUTPUT_DIRECTORY $<$<CONFIG:Debug>:${RUNTIME_OUTPUT_DIRECTORY_DEBUG}>$<$<NOT:$<CONFIG:Debug>>:${RUNTIME_OUTPUT_DIRECTORY_RELEASE}>/maingopy
ARCHIVE_OUTPUT_DIRECTORY $<$<CONFIG:Debug>:${RUNTIME_OUTPUT_DIRECTORY_DEBUG}>$<$<NOT:$<CONFIG:Debug>>:${RUNTIME_OUTPUT_DIRECTORY_RELEASE}>/maingopy
)
)
add_custom_target(maingopy ALL
COMMAND ${CMAKE_COMMAND} -E make_directory
$<$<CONFIG:Debug>:${RUNTIME_OUTPUT_DIRECTORY_DEBUG}>$<$<NOT:$<CONFIG:Debug>>:${RUNTIME_OUTPUT_DIRECTORY_RELEASE}>/maingopy
......@@ -265,7 +311,7 @@ if(MAiNGO_build_python_interface)
)
add_dependencies(melonpy maingopy)
add_dependencies(_maingopy maingopy)
else()
else()
add_custom_target(maingopy ALL
COMMAND ${CMAKE_COMMAND} -E make_directory
$<$<CONFIG:Debug>:${RUNTIME_OUTPUT_DIRECTORY_DEBUG}>$<$<NOT:$<CONFIG:Debug>>:${RUNTIME_OUTPUT_DIRECTORY_RELEASE}>/maingopy
......@@ -274,27 +320,36 @@ if(MAiNGO_build_python_interface)
$<$<CONFIG:Debug>:${RUNTIME_OUTPUT_DIRECTORY_DEBUG}>$<$<NOT:$<CONFIG:Debug>>:${RUNTIME_OUTPUT_DIRECTORY_RELEASE}>/maingopy/__init__.py
)
add_dependencies(_maingopy maingopy)
endif()
if(${BLAS_usePrecompiledDll})
endif()
if(BLAS_usePrecompiledDll)
add_custom_target(copyBlasDllmaingopy ALL
COMMAND ${CMAKE_COMMAND} -E copy
$<$<CONFIG:Debug>:${RUNTIME_OUTPUT_DIRECTORY_DEBUG}/blasd.dll>$<$<NOT:$<CONFIG:Debug>>:${RUNTIME_OUTPUT_DIRECTORY_RELEASE}/blas.dll>
$<$<CONFIG:Debug>:${RUNTIME_OUTPUT_DIRECTORY_DEBUG}/maingopy/blasd.dll>$<$<NOT:$<CONFIG:Debug>>:${RUNTIME_OUTPUT_DIRECTORY_RELEASE}/maingopy/blas.dll>)
add_dependencies(copyBlasDllmaingopy copyBlasDll melonpy)
add_dependencies(copyBlasDllmaingopy copyBlasDll)
if(MAiNGO_use_melon)
add_dependencies(copyBlasDllmaingopy melonpy)
endif()
endif()
if(${LAPACK_usePrecompiledDlls})
if(LAPACK_usePrecompiledDlls)
add_custom_target(copyLapackDllmaingopy ALL
COMMAND ${CMAKE_COMMAND} -E copy
$<$<CONFIG:Debug>:${RUNTIME_OUTPUT_DIRECTORY_DEBUG}/lapackd.dll>$<$<NOT:$<CONFIG:Debug>>:${RUNTIME_OUTPUT_DIRECTORY_RELEASE}/lapack.dll>
$<$<CONFIG:Debug>:${RUNTIME_OUTPUT_DIRECTORY_DEBUG}/maingopy/lapackd.dll>$<$<NOT:$<CONFIG:Debug>>:${RUNTIME_OUTPUT_DIRECTORY_RELEASE}/maingopy/lapack.dll>)
add_dependencies(copyLapackDllmaingopy copyLapackDll melonpy)
add_dependencies(copyLapackDllmaingopy copyLapackDll)
if(MAiNGO_use_melon)
add_dependencies(copyLapackDllmaingopy melonpy)
endif()
endif()
if(${MUMPS_usePrecompiledDll})
if(MUMPS_usePrecompiledDll)
add_custom_target(copyMumpsDllmaingopy ALL
COMMAND ${CMAKE_COMMAND} -E copy
$<$<CONFIG:Debug>:${RUNTIME_OUTPUT_DIRECTORY_DEBUG}/mumpsd.dll>$<$<NOT:$<CONFIG:Debug>>:${RUNTIME_OUTPUT_DIRECTORY_RELEASE}/mumps.dll>
$<$<CONFIG:Debug>:${RUNTIME_OUTPUT_DIRECTORY_DEBUG}/maingopy/mumpsd.dll>$<$<NOT:$<CONFIG:Debug>>:${RUNTIME_OUTPUT_DIRECTORY_RELEASE}/maingopy/mumps.dll>)
add_dependencies(copyMumpsDllmaingopy copyMumpsDll melonpy)
add_dependencies(copyMumpsDllmaingopy copyMumpsDll)
if(MAiNGO_use_melon)
add_dependencies(copyMumpsDllmaingopy melonpy)
endif()
endif()
endif()
......@@ -304,14 +359,15 @@ endif()
# --------------- MAiNGO Tests ---------------------------
if(MAiNGO_build_test)
add_executable(test-maingo ${PROJECT_SOURCE_DIR}/tests/testProblems/main.cpp)
target_link_libraries(test-maingo PRIVATE maingo-core)
target_compile_features(test-maingo PRIVATE cxx_std_17)
# Test MAiNGO by solving a number of test problems
add_executable(maingo-test-problems ${PROJECT_SOURCE_DIR}/tests/testProblems/main.cpp)
target_link_libraries(maingo-test-problems PRIVATE maingo-core)
target_compile_features(maingo-test-problems PRIVATE cxx_std_17)
if(MSVC)
target_compile_options(test-maingo PRIVATE /MP;/Qpar)
set_target_properties(test-maingo PROPERTIES LINK_FLAGS /ignore:4099) #/ignore:4099 disables annoying linker warning because cplex does not provide debugging information
target_compile_options(maingo-test-problems PRIVATE /MP;/Qpar)
set_target_properties(maingo-test-problems PROPERTIES LINK_FLAGS /ignore:4099) #/ignore:4099 disables annoying linker warning because cplex does not provide debugging information
else()
target_compile_options(test-maingo
target_compile_options(maingo-test-problems
PRIVATE
$<$<CXX_COMPILER_ID:Intel>: $<$<NOT:$<CONFIG:DEBUG>>:-O3> $<$<CONFIG:DEBUG>:-O0>>
$<$<CXX_COMPILER_ID:GNU>: $<$<NOT:$<CONFIG:DEBUG>>:-O3> $<$<CONFIG:DEBUG>:-O0>>
......@@ -319,7 +375,53 @@ if(MAiNGO_build_test)
$<$<CXX_COMPILER_ID:Clang>: $<$<NOT:$<CONFIG:DEBUG>>:-O3> $<$<CONFIG:DEBUG>:-O0>>
)
endif()
if(MAiNGO_use_cplex)
# Additionally linking cplex-available (part of the cplex target). This is merely to provide information whether the current MAiNGO build actually has CPLEX.
# This is required since some test problems are only run if a dedicated MILP or QP solver is available.
target_link_libraries(maingo-test-problems PRIVATE cplex-available)
endif()
# Unit tests of MAiNGO
add_executable(unit-test-maingo ${MAiNGO_UNIT_TEST_SRC})
target_include_directories(unit-test-maingo PRIVATE ${PROJECT_SOURCE_DIR}/tests/unitTests)
target_link_libraries(unit-test-maingo PRIVATE maingo-core gtest_main)
target_compile_features(unit-test-maingo PRIVATE cxx_std_17)
target_compile_definitions(unit-test-maingo PRIVATE HAVE_GTEST)
if(MSVC)
target_compile_options(unit-test-maingo PRIVATE /MP;/Qpar)
set_target_properties(unit-test-maingo PROPERTIES LINK_FLAGS /ignore:4099) #/ignore:4099 disables annoying linker warning because cplex does not provide debugging information
else()
target_compile_options(unit-test-maingo
PRIVATE
$<$<CXX_COMPILER_ID:Intel>: $<$<NOT:$<CONFIG:DEBUG>>:-O3> $<$<CONFIG:DEBUG>:-O0>>
$<$<CXX_COMPILER_ID:GNU>: $<$<NOT:$<CONFIG:DEBUG>>:-O3> $<$<CONFIG:DEBUG>:-O0>>
$<$<CXX_COMPILER_ID:AppleClang>: $<$<NOT:$<CONFIG:DEBUG>>:-O3> $<$<CONFIG:DEBUG>:-O0>>
$<$<CXX_COMPILER_ID:Clang>: $<$<NOT:$<CONFIG:DEBUG>>:-O3> $<$<CONFIG:DEBUG>:-O0>>
)
endif()
# Test the C API of MAiNGO
if (MAiNGO_build_shared_c_api)
set(C_API_TEST_DIR ${PROJECT_SOURCE_DIR}/tests/cApi)
add_executable(test-c-api-maingo ${C_API_TEST_DIR}/main.cpp)
add_dependencies(test-c-api-maingo maingo-c-api)
target_link_libraries(test-c-api-maingo PUBLIC maingo-c-api)
target_compile_features(test-c-api-maingo PRIVATE cxx_std_17)
if(MSVC)
target_compile_options(test-c-api-maingo PRIVATE /MP;/Qpar)
set_target_properties(test-c-api-maingo PROPERTIES LINK_FLAGS /ignore:4099) #/ignore:4099 disables annoying linker warning because cplex does not provide debugging information
else()
target_compile_options(test-c-api-maingo
PRIVATE
$<$<CXX_COMPILER_ID:Intel>: $<$<NOT:$<CONFIG:DEBUG>>:-O3> $<$<CONFIG:DEBUG>:-O0>>
$<$<CXX_COMPILER_ID:GNU>: $<$<NOT:$<CONFIG:DEBUG>>:-O3> $<$<CONFIG:DEBUG>:-O0>>
$<$<CXX_COMPILER_ID:AppleClang>: $<$<NOT:$<CONFIG:DEBUG>>:-O3> $<$<CONFIG:DEBUG>:-O0>>
$<$<CXX_COMPILER_ID:Clang>: $<$<NOT:$<CONFIG:DEBUG>>:-O3> $<$<CONFIG:DEBUG>:-O0>>
)
endif()
endif()
# Test Python interface of MAiNGO
if (MAiNGO_build_python_interface)
set(PYTHON_TEST_DIR ${PROJECT_SOURCE_DIR}/maingopy/tests)
add_custom_target(test-maingopy ALL
......@@ -342,4 +444,4 @@ if(MAiNGO_build_test)
)
endif()
endif()
\ No newline at end of file
endif()
Release version 0.6.0 (May 26th, 2023):
- New features & interfaces:
- MAiNGO now has a C-API. It mainly expects text input in ALE syntax.
- New algorithm for large parameter estimation problems, see documentation under Parameter estimation
- Updates in ALE syntax
- MAiNGO Algorithm:
- Now allowing OBBT to only be done with a probability that decrases exponentially with the depth of the given B&B node
- Minor improvements to rounding heuristic in mixed-integer part that may help find feasible solutions earlier
- Introduced lazy evaluation for quadratic problems
- Added intrinsic function mid(x,y,k), where k is a constant and x and y are variables
- Added intrinsic funciton pinch(x,y,z) = max(x,z)-max(y,z)
- Bugfixes:
- Fixed bug that could lead to a (incorrectly calculated) negative final optimality gap
- Fixed several minor bugs & compiler errrors/warning on different systems
- Fixed potential segmentation fault im MAiNGO_Reader_Writer
- Misc:
- Added tests for MPI-parallelized version
- Added support for newer CPLEX versions up to 20.1
- Third-party libraries:
- Upgraded to Pybind11 v2.10.2
Release version 0.5.0 (June 14th, 2021):
- New features & availability:
- MAiNGO is now also available from PyPI for use via Python
......@@ -15,6 +37,7 @@ Release version 0.5.0 (June 14th, 2021):
- Upgraded to MUMPS 5.4.0; also renamed all routines called MPI_* to FPI_* to avoid issues with the fake MPI implementation of MUMPS
when using MAiNGO with actual MPI parallelization
Release version 0.4.0 (March 4th, 2021):
- New features:
- MAiNGO now has a Python API. It consists of Python bindings for the C++ API and thus works very similarly to the latter
......
......@@ -21,6 +21,7 @@ set(MAiNGO_SRC
${MAiNGO_SOURCE_DIR}/MAiNGOsetOption.cpp
${MAiNGO_SOURCE_DIR}/MAiNGOtoOtherLanguage.cpp
${MAiNGO_SOURCE_DIR}/MAiNGOwritingFunctions.cpp
${MAiNGO_SOURCE_DIR}/pointIsWithinNodeBounds.cpp
${MAiNGO_SOURCE_DIR}/ubp.cpp
${MAiNGO_SOURCE_DIR}/ubpClp.cpp
${MAiNGO_SOURCE_DIR}/ubpCplex.cpp
......@@ -30,7 +31,7 @@ set(MAiNGO_SRC
${MAiNGO_SOURCE_DIR}/ubpNLopt.cpp
)
if(MAiNGO_build_parser)
if(MAiNGO_build_parser OR MAiNGO_build_shared_c_api)
set(PARSER_SRC
${MAiNGO_SOURCE_DIR}/aleModel.cpp
${MAiNGO_SOURCE_DIR}/programParser.cpp
......@@ -41,4 +42,12 @@ if(MAiNGO_use_mpi)
set(MAiNGO_SRC ${MAiNGO_SRC}
${MAiNGO_SOURCE_DIR}/babMpi.cpp
)
endif()
if(MAiNGO_build_test)
set(MAiNGO_UNIT_TEST_SRC
${PROJECT_SOURCE_DIR}/tests/unitTests/testDecayingProbability.cpp
${PROJECT_SOURCE_DIR}/tests/unitTests/testLogger.cpp
${PROJECT_SOURCE_DIR}/tests/unitTests/testPointIsWithinNodeBounds.cpp
)
endif()
\ No newline at end of file
set(MAiNGO_VERSION
0.5.0
0.6.0
)
......@@ -4,6 +4,6 @@ function(add_dependency_subdir DEPENDENCY)
message("${DEPENDENCY} OK.")
message("=================================================================")
else()
message(FATAL_ERROR "Error: Could not find CMakeLists.txt at ${PROJECT_SOURCE_DIR}/dep/${DEPENDENCY}. Did you initialize and update all submodules (cf. Readme.md or doc/html/index.html)?")
message(FATAL_ERROR "Error: Could not find CMakeLists.txt at ${PROJECT_SOURCE_DIR}/dep/${DEPENDENCY}. Did you initialize and update all submodules (cf. Readme.md)?")
endif()
endfunction(add_dependency_subdir DEPENDENCY)
\ No newline at end of file
Subproject commit b9ac45c6ca1a1b2c7f8424ca929af4ad82aff552
Subproject commit 3b9f338e6e66e5954500deced43cd3365da05cf9
Subproject commit d0c480a3feeeaae52a9e343436aa9d299dddfcb4
Subproject commit 2275c1dfaef678e59f48697ab805039511c989bf
Subproject commit 3231f96757010afcf0e24fcb1afe18567df4c943
Subproject commit d1a6cf541f75815adbfe881984b8511b4d00845b
Subproject commit 77243cfb7e99f6b24a5e919de9534e8d6a83e4fc
Subproject commit 1d4f489ea22949f22e9413ece215492ac7fabe8e
Subproject commit c88e0c2a9b155ce5a31e54141ae7fef8f9233a85
Subproject commit 806a371cc8ce4a93cf1084745bb73071aa827cb9
Subproject commit 53495a2a7d6ba7e0691a7f3602e9a5324bba6e45
Subproject commit 5752923d046c9e05404a02ea2c87bea3b321d7f5
Subproject commit 05d774495c44862dda90a98b429585093b6681fb
Subproject commit e713f0b04b7c097ac79df2310c17d2f303b13a33
Subproject commit 086cce3d69e0ea0803cafad2cdff8221fd2bcb1e
Subproject commit b522ceed43f889eaa9adda8f279325fcafd770b9
Subproject commit 8e8901c219324a0e078ef6e2e5911eb54f573434
Subproject commit 36e4e9d47355c53fbf25ac4107bb18ff3c180c04
Subproject commit 69e1c4ce4bb003ffda30283a60d07094dd5585a9
Subproject commit dfbdc830edbd11afe31c4283020ecdb0683c3ee2
Subproject commit 69a763e55faf6557af0839a06fa82eb919b062e4
Subproject commit 6a64bc96dfce27a7ca84c26c1a465d7b677aa70e
Subproject commit cc3783b457a7d209d079303e1d5b67e570fea6e5
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment