#ifndef MGRAPH_H
#define MGRAPH_H
+#include "common.h"
+
#define XBITS 4
#define X (1<<XBITS)
#define YBITS 4
#define XMASK (X-1)
#define YSHIFT XBITS
#define Y1 (1 << YSHIFT)
-#define YMASK (Y-1 << YSHIFT)
+#define YMASK ((Y-1) << YSHIFT)
-#define V6 6
+#define DIM (N*D3)
-#define D3 3
+#define V6 6
#define FOR_VERTEX(v) \
for ((v)=0; (v)<N; (v)++)
FOR_VPEDGE((v1),(e)) \
if (((v2)= EDGE_END2((v1),(e)), \
(init), \
- (v2)) < 0) { otherwise } else
+ (v2)) < 0) { otherwise; } else
#define NOTHING ((void)0)
FOR_VERTEX((v1)) \
FOR_VEDGE((v1),(e),(v2))
-#define FOR_COORD(k) \
- for ((k)=0; (k)<D3; (k)++)
-
-#define K FOR_COORD(k)
+#define FOR_RIM_VERTEX(vy,vx,v) \
+ for ((vy)=0; (vy)<Y; (vy)+=Y-1) \
+ for ((vx)=0; (v)= (vy)<<YSHIFT | (vx), (vx)<X; (vx)++)
typedef double Vertices[N][D3];