18 map_interclust_node(
node_t * n)
31 make_slots(
graph_t * root,
int r,
int pos,
int d)
37 for (i = pos - d + 1; i <
GD_rank(root)[r].n; i++) {
46 for (i =
GD_rank(root)[r].n - 1; i > pos; i--) {
51 for (i = pos + 1; i < pos + d; i++)
151 u = map_interclust_node(from);
152 v = map_interclust_node(to);
153 if ((u == from) && (v == to))
157 map_path(u, v, orig,
ED_to_virt(orig), newtype);
201 }
else if (e != fe) {
232 int i, d, r, pos, ipos;
242 make_slots(root, r, pos, d);
243 for (i = 0; i <
GD_rank(subg)[r].n; i++) {
262 remove_rankleaders(
graph_t * g)
272 while ((e =
ND_out(v).list[0]))
274 while ((e =
ND_in(v).list[0]))
294 remove_rankleaders(subg);
318 "%s was already in a rankset, deleted from cluster %s\n",
328 for (orig =
agfstout(clust, n); orig;
394 static void mark_lowcluster_basic(
Agraph_t * g);
414 mark_lowcluster_basic(root);
417 static void mark_lowcluster_basic(
Agraph_t * g)
426 mark_lowcluster_basic(clust);
void build_skeleton(graph_t *g, graph_t *subg)
void delete_fast_node(Agraph_t *, Agnode_t *)
Agedge_t * find_flat_edge(Agnode_t *, Agnode_t *)
Agedge_t * find_fast_edge(Agnode_t *, Agnode_t *)
Agnode_t * virtual_node(Agraph_t *)
void build_ranks(Agraph_t *, int)
CGRAPH_API Agedge_t * agfstedge(Agraph_t *g, Agnode_t *n)
CGRAPH_API int agdelete(Agraph_t *g, void *obj)
int agerr(agerrlevel_t level, const char *fmt,...)
void delete_fast_edge(Agedge_t *)
CGRAPH_API int agcontains(Agraph_t *, void *)
CGRAPH_API Agraph_t * agroot(void *obj)
CGRAPH_API Agedge_t * agfstout(Agraph_t *g, Agnode_t *n)
void allocate_ranks(Agraph_t *)
Agedge_t * virtual_edge(Agnode_t *, Agnode_t *, Agedge_t *)
void UF_setname(node_t *u, node_t *v)
CGRAPH_API Agnode_t * agtail(Agedge_t *e)
void safe_other_edge(Agedge_t *)
void fast_node(Agraph_t *, Agnode_t *)
CGRAPH_API Agnode_t * agnxtnode(Agraph_t *g, Agnode_t *n)
void other_edge(Agedge_t *)
CGRAPH_API Agnode_t * aghead(Agedge_t *e)
CGRAPH_API char * agnameof(void *)
void mark_lowclusters(Agraph_t *root)
void merge_oneway(Agedge_t *, Agedge_t *)
CGRAPH_API Agnode_t * agfstnode(Agraph_t *g)
void merge_chain(graph_t *g, edge_t *e, edge_t *f, int flag)
Agraph_t * dot_root(void *p)
void UF_singleton(node_t *u)
void flat_edge(Agraph_t *, Agedge_t *)
CGRAPH_API Agedge_t * agnxtedge(Agraph_t *g, Agedge_t *e, Agnode_t *n)
void install_in_rank(Agraph_t *, Agnode_t *)
void enqueue_neighbors(nodequeue *q, node_t *n0, int pass)
CGRAPH_API Agedge_t * agnxtout(Agraph_t *g, Agedge_t *e)
void interclexp(graph_t *subg)
void expand_cluster(graph_t *subg)
int mergeable(edge_t *e, edge_t *f)
int ports_eq(edge_t *, edge_t *)
void mark_clusters(graph_t *g)
void install_cluster(graph_t *g, node_t *n, int pass, nodequeue *q)