if (printing) printf("%15lld c>e |", evaluations);
-#if YBITS==3
- COST( 3e2, line_bending_cost(vs->a));
- COST( 1e3, edge_length_variation_cost(vs->a));
- COST( 0.2e3, rim_proximity_cost(vs->a));
- COST( 1e8, noncircular_rim_cost(vs->a));
-#else
- COST( 3e3, line_bending_cost(vs->a));
- COST( 1e4, edge_length_variation_cost(vs->a));
- COST( 0.2e3, rim_proximity_cost(vs->a));
- COST( 1e8, noncircular_rim_cost(vs->a));
-#endif
+ if (XBITS==3) {
+ COST( 3e2, line_bending_cost(vs->a));
+ COST( 1e3, edge_length_variation_cost(vs->a));
+ COST( 0.2e3, rim_proximity_cost(vs->a));
+ COST( 1e8, noncircular_rim_cost(vs->a));
+ stop_epsilon= 1e-6;
+ } else if (XBITS==4) {
+ COST( 3e2, line_bending_cost(vs->a));
+ COST( 3e3, edge_length_variation_cost(vs->a));
+ COST( 3.8e1, rim_proximity_cost(vs->a)); // 5e1 is too much
+ // 2.5e1 is too little
+ // 0.2e1 grows compared to previous ?
+ // 0.6e0 shrinks compared to previous ?
+ COST( 1e12, noncircular_rim_cost(vs->a));
+ stop_epsilon= 1e-5;
+ } else {
+ abort();
+ }
if (printing) printf("| total %# e |", energy);