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