35 #define MARK(n) (((Agmarknodeinfo_t*)(n->base.data))->mark)
37 #define agrootof(n) ((n)->root)
47 for (e =
agfstin(g, n); e; e = f) {
60 "warning: %s has cycle(s), transitive reduction not unique\n",
62 fprintf(stderr,
"cycle involves edge %s -> %s\n",
81 warn = dfs(n,
NULL, warn);
85 fprintf(stderr,
"warning: %s is not a directed graph, not attempting tred\n",
CGRAPH_API void agclean(Agraph_t *g, int kind, char *rec_name)
CGRAPH_API Agedge_t * agfstin(Agraph_t *g, Agnode_t *n)
int gvToolTred(graph_t *g)
CGRAPH_API int agisdirected(Agraph_t *g)
CGRAPH_API int agdelete(Agraph_t *g, void *obj)
CGRAPH_API Agedge_t * agfstout(Agraph_t *g, Agnode_t *n)
CGRAPH_API Agnode_t * agtail(Agedge_t *e)
CGRAPH_API Agnode_t * agnxtnode(Agraph_t *g, Agnode_t *n)
CGRAPH_API Agnode_t * aghead(Agedge_t *e)
CGRAPH_API char * agnameof(void *)
CGRAPH_API Agnode_t * agfstnode(Agraph_t *g)
CGRAPH_API void aginit(Agraph_t *g, int kind, char *rec_name, int rec_size, int move_to_front)
CGRAPH_API Agedge_t * agnxtin(Agraph_t *g, Agedge_t *e)
CGRAPH_API Agedge_t * agnxtout(Agraph_t *g, Agedge_t *e)