222 : use(1),
l(NULL),
r(NULL) {}
258 f[0].
g = g;
f[0].
neg =
false;
265 f[0].
g = g;
f[0].
neg =
false;
273 for (
int i=0; i<
n; i++)
274 if (f[i].what & (1 << vti.
what())) {
276 switch (vti.
what()) {
278 if (f[i].g.in(vti.
propagator().group()) != f[i].neg)
282 if (f[i].g.in(vti.
brancher().group()) != f[i].neg)
286 if (f[i].g.in(vti.
post()) != f[i].neg)
300 return static_cast<TFO*
>(
object())->
operator ()(vti);
307 for (
int i=0; i<
n; i++)
309 (f[i].g.in(pg) != f[i].neg))
316 return static_cast<TFO*
>(
object())->
operator ()(pg);
323 for (
int i=0; i<
n; i++)
325 (f[i].g.in(bg) != f[i].neg))
332 return static_cast<TFO*
>(
object())->
operator ()(bg);
int n
Number of negative literals for node type.
Group baseclass for controlling actors.
Base class for heap allocated objects.
T * alloc(long unsigned int n)
Allocate block of n objects of type T from heap.
SharedHandle::Object * object(void) const
Access to the shared object.
Node for trace filter expression.
NodeType t
Type of expression.
unsigned int use
Nodes are reference counted.
Node(void)
Default constructor.
bool decrement(void)
Decrement reference count and possibly free memory.
int n
Number of leaf groups.
char w
Which operations to consider for propagator groups.
Trace filter expressions.
TFE & operator+=(const TFE &e)
Add expression e.
friend TFE propagator(PropagatorGroup g)
Only propagators (but not post functions) from g are considered.
static TFE other(void)
Expression for other than propagator, brancher, or post.
friend TFE post(PropagatorGroup g)
Only post functions (but not propagators) from g are considered.
Node * n
Pointer to trace filter expression node.
void init(Group g, char what)
Initialize with propagator group g and flags what.
TFE & operator-=(const TFE &e)
Add expression e as negative expression.
TFE & operator=(const TFE &e)
Assignment operator.
TFE negate(void) const
Return negated the expresssion.
NodeType
Type of trace filter expression.
@ NT_NEGATE
Negation of expression.
@ NT_GROUP
Propagator or brancher group.
@ NT_ADD
More than one expression.
friend TFE operator-(const TFE &r)
Return negative expression of e.
TFE(void)
Initialize with no node.
StackFrame(void)
Default constructor.
bool neg
Whether it is negated.
The actual object storing the shared filters.
bool operator()(const ViewTraceInfo &vti) const
Check whether filter is true for view trace information vti.
TFO(void)
Initialize without any filter and with fixpoint and done tracing.
int n
The number of filters.
void fill(TFE::Node *n)
Fill the filters.
virtual ~TFO(void)
Destructor.
bool operator()(const ViewTraceInfo &vti) const
Check whether filter is true for view trace information vti.
TraceFilter(void)
Initialize without any filter.
static TraceFilter all
Default filter: without any filter.
TraceFilter & operator=(const TraceFilter &tf)
Assignment operator.
What what(void) const
Return what is currently executing.
void brancher(Brancher &b)
Record that brancher b is executing.
@ BRANCHER
A brancher is executing.
@ POST
A post function is executing.
@ PROPAGATOR
A propagator is currently executing.
void propagator(Propagator &p)
Record that propagator p is executing.
void post(PropagatorGroup g)
Record that a post function with propagator group g is executing.
Heap heap
The single global heap.
#define GECODE_KERNEL_EXPORT
Gecode toplevel namespace
FloatVal operator-(const FloatVal &x)
FloatVal operator+(const FloatVal &x)
Post propagator for SetVar SetOpType SetVar SetRelType r
TFE post(PropagatorGroup g)
Only post functions (but not propagators) from g are considered.
TFE propagator(PropagatorGroup g)
Only propagators (but not post functions) from g are considered.
bool neg
Whether the filter is negative.
char what
One bit set for each operation type.
#define GECODE_NEVER
Assert that this command is never executed.