swap
#define swap {D0 ^= D1; D1 ^= D0; D0 ^= D1; d0 = 1-d0;}
#define swap(a, b) { \
#define swap(a, b) do { \
#define swap(a, b, t) t = a, a = b, b = t
#define swap(t,a,b) do {t x = a; a = b; b = x;} while(0)
#define swap(a, b) \
#define swap(a, b) \
#define swap(a, b) \
swap(void)
#define swap(t,a,b) do {t x = a; a = b; b = x;} while(0)