CuMcCormick is a CUDA library for McCormick relaxations.
neg
add
sub
mul
div
sqr
sqrt
abs
fabs
exp
log
pown
pow
cos
asin
acos
atan
sinh
cosh
tanh
asinh
acosh
atanh
max
min
mid
width
hull
+
-
*
/
==
!=
inf
sup
Please make sure that you have installed everything mentioned in the section Build Requirements.
git clone https://github.com/neilkichler/cumccormick.git
cd cuinterval
cmake --preset release
cmake --build build
cmake --install build
CPMAddPackage("gh:neilkichler/cumccormick@0.0.1")
include(FetchContent)
FetchContent_Declare(
cuinterval
GIT_REPOSITORY git@github.com:neilkichler/cumccormick.git
GIT_TAG main
)
FetchContent_MakeAvailable(cumccormick)
In either case, you can link to the library using:
target_link_libraries(${PROJECT_NAME} PUBLIC cumccormick)
Have a look at the examples folder.
The documentation is available here.
We require C++20, CMake v3.25.2+, Ninja, and recent C++ and CUDA compilers.
apt install cmake gcc ninja-build
module load CMake CUDA GCC Ninja
cmake --workflow --preset dev
cmake --preset debug
cmake --build --preset debug
ctest --preset debug
cmake -S . -B build -GNinja
cmake --build build
./build/tests/tests