+
+static const unsigned reverse[2][V6]= {{ 3, 4, 5, 0, 1, 2 },
+ { 3, 2, 1, 0, 5, 4 }};
+
+int edge_reverse(int v1, int e) {
+ unsigned x2;
+ int flip, eprime;
+
+ x2= (v1 & XMASK) + dx[(v1 >> YSHIFT) & 1][e];
+ flip= !!(x2 & ~XMASK);
+ eprime= reverse[flip][e];
+// printf("%60s %02x -%d->,<-%d- (%02x) [x2=%x flip=%d]\n","",
+// v1,e,eprime, EDGE_END2(v1,e), x2,flip);
+ return eprime;
+}
+
+int vertices_span_join_p(int v0, int v1) {
+ int v0x= v0 & XMASK;
+ int v1x= v1 & XMASK;
+ int diff= v0x-v1x;
+ return diff < -2 || diff > 2;
+}