36namespace Gecode {
namespace Support {
55 return (
reinterpret_cast<ptrdiff_t
>(
p) & 1) != 0;
60 return reinterpret_cast<void*
>(
reinterpret_cast<ptrdiff_t
>(
p)+1);
65 return reinterpret_cast<void*
>(
reinterpret_cast<ptrdiff_t
>(
p)-1);
69 return reinterpret_cast<void*
>(
reinterpret_cast<ptrdiff_t
>(
p)|1);
73 return reinterpret_cast<void*
>(
reinterpret_cast<ptrdiff_t
>(
p)&
74 ~static_cast<ptrdiff_t>(1));
78 ptrdiff_t mp =
reinterpret_cast<ptrdiff_t
>(
p);
80 return reinterpret_cast<void*
>(mp & ~static_cast<ptrdiff_t>(1));
84 return reinterpret_cast<void*
>(
reinterpret_cast<ptrdiff_t
>(
p) | m);
int p
Number of positive literals for node type.
void * ptrjoin(void *p, ptrdiff_t m)
Join unmarked pointer p and m into marked pointer.
void * ptrsplit(void *p, ptrdiff_t &m)
Split possibly marked pointer p into mark m and unmarked pointer.
void * unmark(void *p)
Return unmarked pointer for a marked pointer p.
void * fmark(void *p)
Return marked pointer for p (possibly already marked)
void * funmark(void *p)
Return unmarked pointer for a possibly marked pointer p.
void * mark(void *p)
Return marked pointer for unmarked pointer p.
bool marked(void *p)
Check whether p is marked.
Gecode toplevel namespace