Generated on Sat Feb 7 2015 02:01:27 for Gecode by doxygen 1.8.9.1
kernel.hh
Go to the documentation of this file.
1 /* -*- mode: C++; c-basic-offset: 2; indent-tabs-mode: nil -*- */
2 /*
3  * Main authors:
4  * Christian Schulte <schulte@gecode.org>
5  *
6  * Contributing authors:
7  * Guido Tack <tack@gecode.org>
8  *
9  * Copyright:
10  * Christian Schulte, 2004
11  * Guido Tack, 2004
12  *
13  * Last modified:
14  * $Date: 2013-11-14 14:35:45 +0100 (Thu, 14 Nov 2013) $ by $Author: schulte $
15  * $Revision: 14073 $
16  *
17  * This file is part of Gecode, the generic constraint
18  * development environment:
19  * http://www.gecode.org
20  *
21  * Permission is hereby granted, free of charge, to any person obtaining
22  * a copy of this software and associated documentation files (the
23  * "Software"), to deal in the Software without restriction, including
24  * without limitation the rights to use, copy, modify, merge, publish,
25  * distribute, sublicense, and/or sell copies of the Software, and to
26  * permit persons to whom the Software is furnished to do so, subject to
27  * the following conditions:
28  *
29  * The above copyright notice and this permission notice shall be
30  * included in all copies or substantial portions of the Software.
31  *
32  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
33  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
34  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
35  * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
36  * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
37  * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
38  * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
39  *
40  */
41 
42 #ifndef __GECODE_KERNEL_HH__
43 #define __GECODE_KERNEL_HH__
44 
45 #include <cstddef>
46 #include <cstdlib>
47 #include <cstring>
48 #include <cassert>
49 
50 #include <gecode/support.hh>
51 
52 /*
53  * Configure linking
54  *
55  */
56 #if !defined(GECODE_STATIC_LIBS) && \
57  (defined(__CYGWIN__) || defined(__MINGW32__) || defined(_MSC_VER))
58 
59 #ifdef GECODE_BUILD_KERNEL
60 #define GECODE_KERNEL_EXPORT __declspec( dllexport )
61 #else
62 #define GECODE_KERNEL_EXPORT __declspec( dllimport )
63 #endif
64 
65 #else
66 
67 #ifdef GECODE_GCC_HAS_CLASS_VISIBILITY
68 #define GECODE_KERNEL_EXPORT __attribute__ ((visibility("default")))
69 #else
70 #define GECODE_KERNEL_EXPORT
71 #endif
72 
73 #endif
74 
75 // Configure auto-linking
76 #ifndef GECODE_BUILD_KERNEL
77 #define GECODE_LIBRARY_NAME "Kernel"
79 #endif
80 
94 /*
95  * General exceptions and kernel exceptions
96  *
97  */
98 
100 
101 
102 
103 /*
104  * Basic kernel services
105  *
106  */
107 
110 
111 
112 /*
113  * Macros for checking failure
114  *
115  */
116 
117 #include <gecode/kernel/macros.hpp>
118 
119 
120 /*
121  * Gecode kernel
122  *
123  */
124 
125 #include <gecode/kernel/archive.hpp>
127 #include <gecode/kernel/core.hpp>
130 
131 /*
132  * Region memory management
133  *
134  */
135 
136 #include <gecode/kernel/region.hpp>
137 
138 
139 /*
140  * Variables and testing for shared variables
141  *
142  */
143 
144 #include <gecode/kernel/var.hpp>
145 
146 
147 /*
148  * Views
149  *
150  */
151 
152 #include <gecode/kernel/view.hpp>
153 
154 
155 /*
156  * Arrays
157  *
158  */
159 
160 #include <gecode/kernel/array.hpp>
162 
163 
164 /*
165  * Random number generator (for branching)
166  *
167  */
168 
169 #include <gecode/kernel/rnd.hpp>
170 
171 
172 /*
173  * Common propagator and branching patterns
174  *
175  */
176 
177 namespace Gecode {
178 
199  GECODE_KERNEL_EXPORT BrancherHandle
201  branch(Home home, void (*f)(Space& home));
203 
204 }
205 
207 #include <gecode/kernel/advisor.hpp>
208 #include <gecode/kernel/afc.hpp>
221 
222 
223 /*
224  * Automatically generated variable implementations
225  *
226  */
227 
228 #include <gecode/kernel/var-imp.hpp>
229 
230 /*
231  * Allocator support
232  *
233  */
234 
236 
237 #endif
238 
239 // STATISTICS: kernel-other
#define GECODE_KERNEL_EXPORT
Definition: kernel.hh:70
Gecode toplevel namespace
BrancherHandle branch(Home home, const FloatVarArgs &x, FloatVarBranch vars, FloatValBranch vals, FloatBranchFilter bf, FloatVarValPrint vvp)
Branch over x with variable selection vars and value selection vals.
Definition: branch.cpp:43