#include "mgraph.h"
#include "minimise.h"
+#include "parallel.h"
static int sqdistances[N][N];
int v,e, current, future, dfuture;
buf_push= buf_pop= buffer;
- FOR_VERTEX(v) d[v]= -1;
+ FOR_VERTEX(v,INNER) d[v]= -1;
d[start]= 0;
*buf_push++= start;
assert(buf_pop==buf_push);
assert(buf_push <= buffer+sizeof(buffer)/sizeof(buffer[0]));
- FOR_VERTEX(v) {
+ FOR_VERTEX(v,INNER) {
assert(d[v] >= 0);
sqdistances_r[v]= d[v] * d[v];
}
//
}
-void graph_layout_prepare() {
+void graph_layout_prepare(void) {
int v1;
- FOR_VERTEX(v1)
+ FOR_VERTEX(v1,INNER)
breadth_first_search(v1, sqdistances[v1]);
alpha= 2;
}
-double graph_layout_cost(const Vertices v) {
+double graph_layout_cost(const Vertices v, int section) {
/* For each (vi,vj) computes shortest path s_ij = |vi..vj|
* along edges, and actual distance d_ij = |vi-vj|.
*
int v1,v2,e, nedges=0;
double totaledgelength=0, meanedgelength, meanedgelength2;
- FOR_EDGE(v1,e,v2) {
+ FOR_EDGE(v1,e,v2,INNER) {
totaledgelength += hypotD(v[v1], v[v2]);
nedges++;
}
meanedgelength2= meanedgelength * meanedgelength;
// printf("mean=%g mean^2=%g\n", meanedgelength, meanedgelength2);
- FOR_VERTEX(v1) {
- FOR_VERTEX(v2) {
+ FOR_VERTEX(v1,OUTER) {
+ FOR_VERTEX(v2,INNER) {
if (v1 == v2) continue;
double d2= hypotD2(v[v1],v[v2]);