+static int edge_end2(int v1, int e) {
+ if (!(v1 &
+
+ if (e==1 || e==2)
+ if (v2 < L)
+
+
+#define FOR_VERTEX(v) \
+ for ((v)=0; (v)<N; (v)++)
+
+#define FOR_VPEDGE(v,e) \
+ for ((e)=0; (e)<6; (e)++)
+
+#define EDGE_END2 edge_end2
+
+#define FOR_VEDGE(v1,e,v2) \
+ FOR_VPEDGE((v1),(e))
+ if (((v2)= EDGE_END2((v1),(e))) >= 0) ; else
+
+#define FOR_EDGE(v1,e,v2) \
+ FOR_VERTEX((v1)) \
+ FOR_VEDGE((v1),(e),(v2))
+
+static double energy_function(const double vertices[N][3]) {
+ int vertex;
+
+ FOR_VERTEX {
+
+