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