Graphviz 13.0.0~dev.20241220.2304
Loading...
Searching...
No Matches
fastgr.c File Reference
#include <dotgen/dot.h>
#include <stdbool.h>
#include <stddef.h>
#include <util/alloc.h>
#include <util/unused.h>
Include dependency graph for fastgr.c:

Go to the source code of this file.

Functions

static edge_tffe (node_t *u, elist uL, node_t *v, elist vL)
 
edge_tfind_fast_edge (node_t *u, node_t *v)
 
static UNUSED node_tfind_fast_node (graph_t *g, node_t *n)
 
edge_tfind_flat_edge (node_t *u, node_t *v)
 
static void safe_list_append (edge_t *e, elist *L)
 
edge_tfast_edge (edge_t *e)
 
void zapinlist (elist *L, edge_t *e)
 
void delete_fast_edge (edge_t *e)
 
void other_edge (edge_t *e)
 
void safe_other_edge (edge_t *e)
 
edge_tnew_virtual_edge (node_t *u, node_t *v, edge_t *orig)
 
edge_tvirtual_edge (node_t *u, node_t *v, edge_t *orig)
 
void fast_node (graph_t *g, Agnode_t *n)
 
void delete_fast_node (graph_t *g, node_t *n)
 
node_tvirtual_node (graph_t *g)
 
void flat_edge (graph_t *g, edge_t *e)
 
void delete_flat_edge (edge_t *e)
 
static void basic_merge (edge_t *e, edge_t *rep)
 
void merge_oneway (edge_t *e, edge_t *rep)
 

Function Documentation

◆ basic_merge()

static void basic_merge ( edge_t e,
edge_t rep 
)
static

Definition at line 278 of file fastgr.c.

References ED_count, ED_minlen, ED_to_virt, ED_weight, and ED_xpenalty.

Referenced by merge_oneway().

Here is the caller graph for this function:

◆ delete_fast_edge()

void delete_fast_edge ( edge_t e)

Definition at line 108 of file fastgr.c.

References aghead, agtail, ND_in, ND_out, NULL, and zapinlist().

Referenced by free_virtual_edge_list(), map_path(), mergevirtual(), remove_rankleaders(), and reverse_edge().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ delete_fast_node()

void delete_fast_node ( graph_t g,
node_t n 
)

Definition at line 191 of file fastgr.c.

References find_fast_node(), GD_nlist, ND_next, and ND_prev.

Referenced by merge_ranks(), mergevirtual(), remove_rankleaders(), and removeFill().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ delete_flat_edge()

void delete_flat_edge ( edge_t e)

Definition at line 224 of file fastgr.c.

References aghead, agtail, ED_to_orig, ED_to_virt, ND_flat_in, ND_flat_out, NULL, and zapinlist().

Referenced by cleanup2(), flat_reorder(), and flat_search().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ fast_edge()

edge_t * fast_edge ( edge_t e)

Definition at line 69 of file fastgr.c.

References aghead, agtail, elist_append, ND_in, and ND_out.

Referenced by expand_leaves(), make_aux_edge(), and virtual_edge().

Here is the caller graph for this function:

◆ fast_node()

void fast_node ( graph_t g,
Agnode_t n 
)

Definition at line 177 of file fastgr.c.

References find_fast_node(), GD_nlist, ND_next, ND_prev, and NULL.

Referenced by class2(), merge_ranks(), and virtual_node().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ffe()

static edge_t * ffe ( node_t u,
elist  uL,
node_t v,
elist  vL 
)
static

Definition at line 21 of file fastgr.c.

References aghead, agtail, elist::list, and elist::size.

Referenced by find_fast_edge(), and find_flat_edge().

Here is the caller graph for this function:

◆ find_fast_edge()

edge_t * find_fast_edge ( node_t u,
node_t v 
)

Definition at line 41 of file fastgr.c.

References ffe(), ND_in, and ND_out.

Referenced by class1(), contain_clustnodes(), interclrep(), make_LR_constraints(), map_path(), and reverse_edge().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ find_fast_node()

static UNUSED node_t * find_fast_node ( graph_t g,
node_t n 
)
static

Definition at line 46 of file fastgr.c.

References GD_nlist, and ND_next.

Referenced by delete_fast_node(), and fast_node().

Here is the caller graph for this function:

◆ find_flat_edge()

edge_t * find_flat_edge ( node_t u,
node_t v 
)

Definition at line 54 of file fastgr.c.

References ffe(), ND_flat_in, and ND_flat_out.

Referenced by do_ordering_node(), and interclexp().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ flat_edge()

void flat_edge ( graph_t g,
edge_t e 
)

Definition at line 217 of file fastgr.c.

References aghead, agtail, dot_root(), elist_append, GD_has_flat_edges, ND_flat_in, and ND_flat_out.

Referenced by class2(), do_ordering_node(), flat_rev(), and interclexp().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ merge_oneway()

void merge_oneway ( edge_t e,
edge_t rep 
)

Definition at line 291 of file fastgr.c.

References agwarningf(), basic_merge(), ED_to_virt, and NULL.

Referenced by class1(), class2(), flat_rev(), interclexp(), map_path(), mergevirtual(), and reverse_edge().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ new_virtual_edge()

edge_t * new_virtual_edge ( node_t u,
node_t v,
edge_t orig 
)

Definition at line 131 of file fastgr.c.

References aghead, AGINEDGE, AGOUTEDGE, AGSEQ, agtail, AGTYPE, Agedge_s::base, Agobj_s::data, ED_count, ED_edge_type, ED_head_port, ED_minlen, ED_tail_port, ED_to_orig, ED_to_virt, ED_weight, ED_xpenalty, gv_alloc(), Agedgepair_s::in, NULL, Agedgepair_s::out, and VIRTUAL.

Referenced by do_ordering_node(), flat_rev(), and virtual_edge().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ other_edge()

void other_edge ( edge_t e)

Definition at line 115 of file fastgr.c.

References agtail, elist_append, and ND_other.

Referenced by class2(), and map_path().

Here is the caller graph for this function:

◆ safe_list_append()

static void safe_list_append ( edge_t e,
elist L 
)
static

Definition at line 61 of file fastgr.c.

References elist_append, and L.

Referenced by safe_other_edge().

Here is the caller graph for this function:

◆ safe_other_edge()

void safe_other_edge ( edge_t e)

Definition at line 120 of file fastgr.c.

References agtail, ND_other, and safe_list_append().

Referenced by interclexp().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ virtual_edge()

edge_t * virtual_edge ( node_t u,
node_t v,
edge_t orig 
)

Definition at line 172 of file fastgr.c.

References fast_edge(), and new_virtual_edge().

Referenced by build_skeleton(), class1(), flat_node(), make_chain(), map_path(), mergevirtual(), minmax_edges2(), and reverse_edge().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ virtual_node()

node_t * virtual_node ( graph_t g)

Definition at line 202 of file fastgr.c.

References AGNODE, agroot(), AGTYPE, alloc_elist, Agnode_s::base, Agobj_s::data, fast_node(), gv_alloc(), ND_ht, ND_in, ND_lw, ND_node_type, ND_out, ND_rw, ND_UF_size, Agnode_s::root, and VIRTUAL.

Referenced by build_skeleton(), clone_vn(), connectGraph(), interclust1(), label_vnode(), make_edge_pairs(), make_lrvn(), make_vn_slot(), and plain_vnode().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ zapinlist()

void zapinlist ( elist L,
edge_t e 
)

Definition at line 95 of file fastgr.c.

References L, and NULL.

Referenced by delete_fast_edge(), delete_flat_edge(), and expand_leaves().

Here is the caller graph for this function: