X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=moebius2.git;a=blobdiff_plain;f=minimise.h;h=f4eddfb222bfe4bb165475bffcb4d7d95e7300e3;hp=f1da76f1103458e54f32af6107511f42d947956c;hb=18da2eccaac6795d7a241959a9f2ebaf35f597e9;hpb=13f94397661f67256a68849da13d2029880647c2 diff --git a/minimise.h b/minimise.h index f1da76f..f4eddfb 100644 --- a/minimise.h +++ b/minimise.h @@ -8,21 +8,33 @@ #include "mgraph.h" double compute_energy(const struct Vertices *vs); +void energy_init(void); -double graph_layout_cost(const Vertices v); +double graph_layout_cost(const Vertices v, int section); void graph_layout_prepare(); -void compute_vertex_areas(const Vertices vertices); -void compute_edge_lengths(const Vertices vertices); -extern double vertex_areas[N], vertex_mean_edge_lengths[N], edge_lengths[N][V6]; +void compute_vertex_areas(const Vertices vertices, int section); +void compute_edge_lengths(const Vertices vertices, int section); -double noncircular_rim_cost(const Vertices vertices); -double edgewise_vertex_displacement_cost(const Vertices vertices); -double edge_length_variation_cost(const Vertices vertices); -double rim_proximity_cost(const Vertices vertices); +extern double vertex_areas[N], vertex_mean_edge_lengths[N], edge_lengths[N][V6]; -extern const char *input_file, *output_file; -extern char *output_file_tmp; +extern const double edge_angle_cost_circcircrat; + +double vertex_displacement_cost(const Vertices vertices, int section); +double vertex_edgewise_displ_cost(const Vertices vertices, int section); +double line_bending_cost(const Vertices vertices, int section); +double noncircular_rim_cost(const Vertices vertices, int section); +double edge_length_variation_cost(const Vertices vertices, int section); +double prop_edge_length_variation_cost(const Vertices vertices, int section); +double rim_proximity_cost(const Vertices vertices, int section); +double edge_angle_cost(const Vertices vertices, int section); +double small_triangles_cost(const Vertices vertices, int section); +double nonequilateral_triangles_cost(const Vertices vertices, int section); + +extern const char *input_file, *best_file; +extern char *best_file_tmp; +extern long long evaluations; +extern double stop_epsilon; enum printing_instance { pr_cost, pr_size, pr__max }; int printing_check(enum printing_instance, int indent);