main page
modules
namespaces
classes
files
Gecode home
Generated on Sat Feb 7 2015 02:01:27 for Gecode by
doxygen
1.8.9.1
gecode
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"
78
#include <
gecode/support/auto-link.hpp
>
79
#endif
80
94
/*
95
* General exceptions and kernel exceptions
96
*
97
*/
98
99
#include <
gecode/kernel/exception.hpp
>
100
101
102
103
/*
104
* Basic kernel services
105
*
106
*/
107
108
#include <
gecode/kernel/memory-config.hpp
>
109
#include <
gecode/kernel/memory-manager.hpp
>
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
>
126
#include <
gecode/kernel/global-afc.hpp
>
127
#include <
gecode/kernel/core.hpp
>
128
#include <
gecode/kernel/modevent.hpp
>
129
#include <
gecode/kernel/range-list.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
>
161
#include <
gecode/kernel/shared-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
206
#include <
gecode/kernel/propagator.hpp
>
207
#include <
gecode/kernel/advisor.hpp
>
208
#include <
gecode/kernel/afc.hpp
>
209
#include <
gecode/kernel/branch-traits.hpp
>
210
#include <
gecode/kernel/activity.hpp
>
211
#include <
gecode/kernel/branch-var.hpp
>
212
#include <
gecode/kernel/branch-tiebreak.hpp
>
213
#include <
gecode/kernel/branch-val.hpp
>
214
#include <
gecode/kernel/brancher-merit.hpp
>
215
#include <
gecode/kernel/brancher-view-sel.hpp
>
216
#include <
gecode/kernel/brancher-view.hpp
>
217
#include <
gecode/kernel/brancher-val-sel.hpp
>
218
#include <
gecode/kernel/brancher-val-commit.hpp
>
219
#include <
gecode/kernel/brancher-val-sel-commit.hpp
>
220
#include <
gecode/kernel/brancher-view-val.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
235
#include <
gecode/kernel/allocators.hpp
>
236
237
#endif
238
239
// STATISTICS: kernel-other
view.hpp
support.hh
activity.hpp
brancher-view-val.hpp
archive.hpp
array.hpp
var.hpp
propagator.hpp
brancher-val-sel.hpp
afc.hpp
brancher-val-commit.hpp
exception.hpp
brancher-val-sel-commit.hpp
branch-traits.hpp
branch-val.hpp
memory-manager.hpp
var-imp.hpp
region.hpp
memory-config.hpp
global-afc.hpp
auto-link.hpp
GECODE_KERNEL_EXPORT
#define GECODE_KERNEL_EXPORT
Definition:
kernel.hh:70
brancher-view.hpp
brancher-merit.hpp
core.hpp
allocators.hpp
shared-array.hpp
range-list.hpp
macros.hpp
brancher-view-sel.hpp
advisor.hpp
branch-tiebreak.hpp
branch-var.hpp
Gecode
Gecode toplevel namespace
Gecode::branch
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
modevent.hpp
rnd.hpp