1 #ifndef TM_SOLUION_H 2 #define TM_SOLUION_H 3 4 #include "treematch.h" 5 6 void tm_free_solution(tm_solution_t *sol); 7 int distance(tm_topology_t *topology,int i, int j); 8 double display_sol_sum_com(tm_topology_t *topology, tm_affinity_mat_t *aff_mat, int *sigma); 9 double display_sol(tm_topology_t *topology, tm_affinity_mat_t *aff_mat, int *sigma, tm_metric_t metric); 10 double tm_display_solution(tm_topology_t *topology, tm_affinity_mat_t *aff_mat, tm_solution_t *sol, 11 tm_metric_t metric); 12 void tm_display_other_heuristics(tm_topology_t *topology, tm_affinity_mat_t *aff_mat, tm_metric_t metric); 13 int in_tab(int *tab, int n, int val); 14 void map_Packed(tm_topology_t *topology, int N, int *sigma); 15 void map_RR(tm_topology_t *topology, int N, int *sigma); 16 int hash_asc(const void* x1,const void* x2); 17 int *generate_random_sol(tm_topology_t *topology,int N, int seed); 18 double eval_sol(int *sol,int N,double **comm, double **arch); 19 void exchange(int *sol,int i,int j); 20 double gain_exchange(int *sol,int l,int m,double eval1,int N,double **comm, double **arch); 21 void select_max(int *l,int *m,double **gain,int N,int *state); 22 void compute_gain(int *sol,int N,double **gain,double **comm, double **arch); 23 void map_MPIPP(tm_topology_t *topology,int nb_seed,int N,int *sigma,double **comm, double **arch); 24 25 26 #endif