{ +1, +1, 0, -1, 0, +1 }},
dy[V6]= { 0, -Y1, -Y1, 0, +Y1, +Y1 };
-int edge_end2(unsigned v1, int e) {
+static int edge_end2(unsigned v1, int e) {
unsigned x, y;
y= (v1 & ~XMASK) + dy[e];
return x | y;
}
+short edge_end2_memo[N][V6];
+
+void mgraph_prepare(void) {
+ int v, e;
+ FOR_VERTEX(v, INNER)
+ FOR_VPEDGE(e)
+ edge_end2_memo[v][e]= edge_end2(v,e);
+}
+
static const unsigned reverse[2][V6]= {{ 3, 4, 5, 0, 1, 2 },
{ 3, 2, 1, 0, 5, 4 }};