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 candy
In order to run candy and solve a problem example.cnf
invoke:
./candy example.cnf
Candy offers a multitude of options, like paramaters to tune heuristics and thresholds, or parameters to select an alternative solving strategy:
./candy --help
Credits 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 candy
example 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