Candy is a modular SAT solver forked from Candy Kingdom and reduced to its core. The original Candy solver is a branch of the well-known SAT solver Glucose. It has been refactored w.r.t. independence and exchangeability of components in the core solver, while increasing the readability and maintainability of the code.
You can build Candy like this:
mkdir build
cd build
cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=1 -DCMAKE_BUILD_TYPE=Release ..
make candyIn order to run candy and solve a problem example.cnf invoke:
./candy example.cnfCandy offers a multitude of options, like paramaters to tune heuristics and thresholds, or parameters to select an alternative solving strategy:
./candy --helpCredits go to SAT CLIQUE, all the people at ITI and to our students.
- mingw installed (mingw-64 (posix))
- mingw32-pthreads (mingw32-libpthreadgc-dll, mingw32-libpthreadgc-dev, mingw32-pthreads-w32*)
- mingw32-libz-dll and mingw32-libz-dev
- mingw32-libgomp-dll for OpenMP (if needed)
- everything else required to compile c/c++
- mingw64\bin directory added to PATH
mkdir release
cd release
cmake -G "MinGW Makefiles" -DZLIB_INCLUDE_DIR=<mingw-include-dir> -DZLIB_LIBRARY=<path-to-mingw-libz.a> -DCMAKE_EXPORT_COMPILE_COMMANDS=1 -DCMAKE_BUILD_TYPE=Release ..
cmake --bild . --target candyexample path-to-mingw-include-dir: C:/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/x86_64-w64-mingw32/include
example path-to-mingw-libz: C:/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/x86_64-w64-mingw32/lib/libz.a