Graphviz 13.0.0~dev.20241220.2304
Loading...
Searching...
No Matches
blocktree.c File Reference
#include <circogen/blocktree.h>
#include <stdbool.h>
#include <util/agxbuf.h>
#include <util/gv_math.h>
Include dependency graph for blocktree.c:

Go to the source code of this file.

Functions

static void addNode (block_t *bp, Agnode_t *n)
 
static Agraph_tmakeBlockGraph (Agraph_t *g, circ_state *state)
 
static block_tmakeBlock (Agraph_t *g, circ_state *state)
 
static void dfs (Agraph_t *g, Agnode_t *u, circ_state *state, bool isRoot, estack_t *stk)
 
static void find_blocks (Agraph_t *g, circ_state *state)
 
block_tcreateBlocktree (Agraph_t *g, circ_state *state)
 
void freeBlocktree (block_t *bp)
 

Function Documentation

◆ addNode()

static void addNode ( block_t bp,
Agnode_t n 
)
static

Definition at line 16 of file blocktree.c.

References agsubnode(), BLOCK, and block::sub_graph.

Referenced by dfs(), and getval().

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

◆ createBlocktree()

block_t * createBlocktree ( Agraph_t g,
circ_state state 
)

Definition at line 140 of file blocktree.c.

References agfstnode(), agnxtnode(), appendBlock(), circ_state::bl, BLOCK, CHILD, find_blocks(), blocklist_t::first, initBlocklist(), block::next, parent, PARENT, SET_PARENT, block::sub_graph, and VAL.

Referenced by circularLayout().

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

◆ dfs()

static void dfs ( Agraph_t g,
Agnode_t u,
circ_state state,
bool  isRoot,
estack_t *  stk 
)
static

Definition at line 55 of file blocktree.c.

References addNode(), agfstedge(), aghead, agnxtedge(), agtail, appendBlock(), BLOCK, blockSize(), dfs(), EDGEORDER, imin(), insertBlock(), LOWVAL, makeBlock(), NULL, PARENT, and VAL.

Referenced by dfs(), and find_blocks().

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

◆ find_blocks()

static void find_blocks ( Agraph_t g,
circ_state state 
)
static

Definition at line 109 of file blocktree.c.

References agfindnode, agfstnode(), agnameof(), agnxtnode(), dfs(), late_bool(), circ_state::N_root, NULL, ORIGN, circ_state::rootname, and Verbose.

Referenced by createBlocktree().

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

◆ freeBlocktree()

void freeBlocktree ( block_t bp)

Definition at line 178 of file blocktree.c.

References block::children, blocklist_t::first, freeBlock(), freeBlocktree(), and block::next.

Referenced by circularLayout(), and freeBlocktree().

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

◆ makeBlock()

static block_t * makeBlock ( Agraph_t g,
circ_state state 
)
static

Definition at line 33 of file blocktree.c.

References makeBlockGraph(), and mkBlock().

Referenced by dfs().

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

◆ makeBlockGraph()

static Agraph_t * makeBlockGraph ( Agraph_t g,
circ_state state 
)
static

Definition at line 22 of file blocktree.c.

References agbindrec(), agsubg(), agxbfree(), agxbprint(), agxbuse(), and circ_state::blockCount.

Referenced by makeBlock().

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