32#define MARK(n) (((Agmarknodeinfo_t*)(n->base.data))->mark)
34#define agrootof(n) ((n)->root)
44 for (e =
agfstin(g, n); e; e = f) {
57 "warning: %s has cycle(s), transitive reduction not unique\n",
59 fprintf(stderr,
"cycle involves edge %s -> %s\n",
82 fprintf(stderr,
"warning: %s is not a directed graph, not attempting tred\n",
abstract graph C library, Cgraph API
Agedge_t * agnxtin(Agraph_t *g, Agedge_t *e)
Agedge_t * agfstout(Agraph_t *g, Agnode_t *n)
Agedge_t * agnxtout(Agraph_t *g, Agedge_t *e)
Agedge_t * agfstin(Agraph_t *g, Agnode_t *n)
#define AGOUT2IN(outedge)
Agedgepair_s.out -> Agedgepair_s.in/*#end#*/.
int agisdirected(Agraph_t *g)
Agnode_t * agnxtnode(Agraph_t *g, Agnode_t *n)
Agnode_t * agfstnode(Agraph_t *g)
char * agnameof(void *)
returns a string descriptor for the object.
int agdelete(Agraph_t *g, void *obj)
deletes object. Equivalent to agclose, agdelnode, and agdeledge for obj being a graph,...
void aginit(Agraph_t *g, int kind, const char *rec_name, int rec_size, int move_to_front)
attach new records to objects of specified kind
void agclean(Agraph_t *g, int kind, char *rec_name)
calls agdelrec for all objects of the same class in an entire graph
int gvToolTred(Agraph_t *g)
Graphviz context library.
implementation of Agrec_t