switch (ctrl->method) {
case METHOD_SPRING_ELECTRICAL:
case METHOD_SPRING_MAXENT:
- multilevel_spring_electrical_embedding(Ndim, A, D, ctrl, NULL, sizes, pos, n_edge_label_nodes, edge_label_nodes, &flag);
+ multilevel_spring_electrical_embedding(Ndim, A, D, ctrl, sizes, pos, n_edge_label_nodes, edge_label_nodes, &flag);
break;
case METHOD_UNIFORM_STRESS:
uniform_stress(Ndim, A, pos, &flag);
}
-static void multilevel_spring_electrical_embedding_core(int dim, SparseMatrix A0, SparseMatrix D0, spring_electrical_control ctrl, double *node_weights, double *label_sizes,
+static void multilevel_spring_electrical_embedding_core(int dim, SparseMatrix A0, SparseMatrix D0, spring_electrical_control ctrl, double *label_sizes,
double *x, int n_edge_label_nodes, int *edge_label_nodes, int *flag){
double *x2 = MALLOC(sizeof(double)*(A->m)*dim);
A2 = shorting_edge_label_nodes(A, n_edge_label_nodes, edge_label_nodes);
- multilevel_spring_electrical_embedding(dim, A2, NULL, ctrl, NULL, NULL, x2, 0, NULL, flag);
+ multilevel_spring_electrical_embedding(dim, A2, NULL, ctrl, NULL, x2, 0, NULL, flag);
assert(!(*flag));
attach_edge_label_coordinates(dim, A, n_edge_label_nodes, edge_label_nodes, x, x2);
mctrl = Multilevel_control_new(ctrl->multilevel_coarsen_scheme, ctrl->multilevel_coarsen_mode);
mctrl->maxlevel = ctrl->multilevels;
- grid0 = Multilevel_new(A, D, node_weights, mctrl);
+ grid0 = Multilevel_new(A, D, NULL, mctrl);
grid = Multilevel_get_coarsest(grid0);
if (Multilevel_is_finest(grid)){
cpu = clock();
#endif
- post_process_smoothing(dim, A, ctrl, node_weights, x, flag);
+ post_process_smoothing(dim, A, ctrl, NULL, x, flag);
if (Verbose) fprintf(stderr, "ctrl->overlap=%d\n",ctrl->overlap);
Multilevel_delete(grid0);
}
-void multilevel_spring_electrical_embedding(int dim, SparseMatrix A, SparseMatrix D, spring_electrical_control ctrl, double *node_weights, double *label_sizes,
+void multilevel_spring_electrical_embedding(int dim, SparseMatrix A, SparseMatrix D, spring_electrical_control ctrl, double *label_sizes,
double *x, int n_edge_label_nodes, int *edge_label_nodes, int *flag){
- multilevel_spring_electrical_embedding_core(dim, A, D, ctrl, node_weights, label_sizes, x, n_edge_label_nodes, edge_label_nodes, flag);
+ multilevel_spring_electrical_embedding_core(dim, A, D, ctrl, label_sizes, x, n_edge_label_nodes, edge_label_nodes, flag);
}
void spring_electrical_embedding(int dim, SparseMatrix A0, spring_electrical_control ctrl, double *node_weights, double *x, int *flag);
void spring_electrical_embedding_fast(int dim, SparseMatrix A0, spring_electrical_control ctrl, double *node_weights, double *x, int *flag);
-void multilevel_spring_electrical_embedding(int dim, SparseMatrix A0, SparseMatrix D, spring_electrical_control ctrl, double *node_weights, double *label_sizes,
+void multilevel_spring_electrical_embedding(int dim, SparseMatrix A0, SparseMatrix D, spring_electrical_control ctrl, double *label_sizes,
double *x, int n_edge_label_nodes, int *edge_label_nodes, int *flag);
void export_embedding(FILE *fp, int dim, SparseMatrix A, double *x, double *width);