+ double s= vertex_distances[v2];
+ double s2= s*s + d2_epsilon;
+ double sd2= s2 / d2;
+ double cost_contrib= a1*a2 * (sd2 - 1) / (d2*d2);
+ if (cost_contrib < -1e-4) {
+ printf("layout %03x..%03x (a=%g,%g) s=%g s2=%g d2=%g sd2=%g"
+ " cost+=%g\n", v1,v2, a1,a2, s,s2,d2,sd2, cost_contrib);
+ abort();
+ }
+ total_cost += cost_contrib;