40 namespace Gecode {
namespace Support {
59 return (reinterpret_cast<ptrdiff_t>(
p) & 1) != 0;
64 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)|1);
77 return reinterpret_cast<void*>(reinterpret_cast<ptrdiff_t>(
p)&
78 ~static_cast<ptrdiff_t>(1));
82 ptrdiff_t mp = reinterpret_cast<ptrdiff_t>(
p);
84 return reinterpret_cast<void*>(mp & ~static_cast<ptrdiff_t>(1));
88 return reinterpret_cast<void*>(reinterpret_cast<ptrdiff_t>(
p) | m);
bool marked(void *p)
Check whether p is marked.
void * mark(void *p)
Return marked pointer for unmarked pointer p.
void * funmark(void *p)
Return unmarked pointer for a possibly marked pointer p.
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 * unmark(void *p)
Return unmarked pointer for a marked pointer p.
void * fmark(void *p)
Return marked pointer for p (possibly already marked)
void * ptrsplit(void *p, ptrdiff_t &m)
Split possibly marked pointer p into mark m and unmarked pointer.
Gecode toplevel namespace