- C++17 compiler (gcc >= 7 or clang >= 5)
- CMake (version >= 3.11) or Bazel
- SuiteSparse
- Gurobi optimizer
Before installing SuiteSparse, make sure you have a blas and lapack
implementation installed. For convenience a suitesparse installer is
available in the scripts/ directory. Make sure you are in the root
Stuka directory and run the following command.
./scripts/install_suitesparseIf the scripts fails due to an inability to find blas or lapack you
may need to manually specify the location of your implementation by
editing the scripts/install_suitesparse.sh file with the following
make library BLAS=${BLAS_LOCATION}Stuka is built using the CMake build system. To create the library
simply run the following commands from the root Stuka directory.
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
cmake --build . --target stukaThis should create a shared library in the build/lib directory.
Building the python library is as simple running
python setup.py installThis should work assuming there are no issues in the previous step.
In order to test the code, a test script is available to be built. Assuming you have build the library as described in the Installation section, run the following.
cd build
cmake --build . --target testerThis will create a tester executable in the build/bin directory.
Running the tester will run into an error, but this is expected. In
the final example, Bender's Decomposition is unable to determine the
optimal solution due to degeneracy of the problem.
This will be added at a later date.