1 #ifndef BLISS_DEFS_HH 2 #define BLISS_DEFS_HH 3 4 #include <cassert> 5 #include <cstdarg> 6 7 /* 8 Copyright (c) 2003-2021 Tommi Junttila 9 Released under the GNU Lesser General Public License version 3. 10 11 This file is part of bliss. 12 13 bliss is free software: you can redistribute it and/or modify 14 it under the terms of the GNU Lesser General Public License as published by 15 the Free Software Foundation, version 3 of the License. 16 17 bliss is distributed in the hope that it will be useful, 18 but WITHOUT ANY WARRANTY; without even the implied warranty of 19 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20 GNU Lesser General Public License for more details. 21 22 You should have received a copy of the GNU Lesser General Public License 23 along with bliss. If not, see <http://www.gnu.org/licenses/>. 24 */ 25 26 /** \file 27 * \brief Some common definitions. 28 */ 29 30 namespace bliss { 31 32 /** \brief The version number of bliss. */ 33 static const char * const version = "0.75"; 34 35 /** 36 * If a fatal internal error is encountered, 37 * this function is called. 38 * There should no return from this function, but an exit or 39 * a jump/throw to code that deallocates the AbstractGraph instance calling this. 40 */ 41 void fatal_error(const char* fmt); 42 43 44 #if defined(BLISS_DEBUG) 45 #define BLISS_CONSISTENCY_CHECKS 46 #define BLISS_EXPENSIVE_CONSISTENCY_CHECKS 47 #endif 48 49 50 #if defined(BLISS_CONSISTENCY_CHECKS) 51 /* Force a check that the found automorphisms are valid */ 52 #define BLISS_VERIFY_AUTOMORPHISMS 53 #endif 54 55 56 #if defined(BLISS_CONSISTENCY_CHECKS) 57 /* Force a check that the generated partitions are equitable */ 58 #define BLISS_VERIFY_EQUITABLEDNESS 59 #endif 60 61 } // namespace bliss 62 63 64 /*! \mainpage Outline 65 * 66 * This is the C++ API documentation of bliss, 67 * produced by running <a href="http://www.doxygen.org">doxygen</a> in 68 * the source directory. 69 * 70 * The algorithms and data structures used in bliss, 71 * the graph file format, as well as the compilation process 72 * can be found at the 73 * <a href="https://users.aalto.fi/tjunttil/bliss">bliss web site</a>. 74 * 75 * The C++ language API is the main API to bliss. 76 * It basically consists of the public methods in the classes 77 * * bliss::Graph and 78 * * bliss::Digraph. 79 * 80 * For an example of its use, 81 * see the \ref executable "source of the bliss executable". 82 * 83 * \section capi_sec The C language API 84 * 85 * The C language API is given in the file bliss_C.h. 86 * It is currently only a subset of the C++ API, 87 * so consider using the C++ API whenever possible. 88 */ 89 90 #endif // BLISS_DEFS_HH 91