31 void *pvTailAttr,
void *pvEdgeAttr,
dglInt32_t nFlags)
53 clock_t clk = clock();
65 pgraph->clkNodeTree += clock() - clk;
145 if (pEdgeset ==
NULL) {
157 if (pEdgeset ==
NULL) {
180 if (pinEdgeset ==
NULL) {
192 if (pinEdgeset ==
NULL) {
231 pEdge = pEdgeItem->
pv;
247 #if !defined(_DGL_V1)
264 #if !defined(_DGL_V1)
275 pvTailAttr, pvEdgeAttr,
301 findEdgeItem.
nKey = nEdge;
307 pEdge = pEdgeItem->
pv;
366 pos = top + (bot - top) / 2;
371 else if (nEdge <
id) {
374 else if (nEdge >
id) {
381 return &pref[pos * cwords];
384 findEdge.
nKey = nEdge;
386 if (ptreeEdge && ptreeEdge->
pv) {
387 return ptreeEdge->
pv;
int DGL_DEL_EDGE_FUNC(dglGraph_s *pgraph, dglInt32_t nEdge UNUSED)
int DGL_ADD_EDGE_FUNC(dglGraph_s *pgraph, dglInt32_t nHead, dglInt32_t nTail, dglInt32_t nCost, dglInt32_t nEdge, void *pvHeadAttr, void *pvTailAttr, void *pvEdgeAttr, dglInt32_t nFlags)
dglInt32_t * DGL_GET_EDGE_FUNC(dglGraph_s *pgraph, dglInt32_t nEdge UNUSED)
#define UNUSED
A macro for an attribute, if attached to a variable, indicating that the variable is not used.
#define DGL_GO_EdgePrioritize_COST
#define DGL_ERR_MemoryExhausted
#define DGL_ERR_BadOnFlatGraph
#define DGL_ERR_EdgeAlreadyExist
#define DGL_ERR_NotSupported
#define DGL_STRONGCONNECT
#define DGL_ERR_UnexpectedNullPointer
#define DGL_ERR_EdgeNotFound
int dgl_edge_prioritizer_del(dglGraph_s *pG, dglInt32_t nId, dglInt32_t nPriId)
int dgl_edge_prioritizer_add(dglGraph_s *pG, dglInt32_t nId, dglInt32_t nPriId)
int DGL_DEL_NODE_INEDGE_FUNC(dglGraph_s *pgraph, dglInt32_t nNode, dglInt32_t nEdge)
int DGL_DEL_NODE_OUTEDGE_FUNC(dglGraph_s *pgraph, dglInt32_t nNode, dglInt32_t nEdge)
dglTreeEdge_s * dglTreeEdgeAdd(void *pavl, dglInt32_t nKey)
void dglTreeEdgeCancel(void *pvEdge, void *pvParam UNUSED)
#define DGL_EDGESET_EDGE_PTR
#define DGL_T_NODEITEM_InEdgesetPTR(p)
#define DGL_T_NODEITEM_TYPE
#define DGL_T_NODEITEM_Add
#define DGL_EDGESET_ALLOC
#define DGL_NODE_EDGESET_OFFSET
#define DGL_T_NODEITEM_Set_InEdgesetPTR(p, ptr)
#define DGL_T_NODEITEM_OutEdgesetPTR(p)
#define DGL_T_NODEITEM_Set_NodePTR(p, ptr)
#define DGL_EDGE_TAILNODE_OFFSET
#define DGL_EDGESET_EDGECOUNT
#define DGL_EDGE_ATTR_PTR
#define DGL_T_NODEITEM_Set_OutEdgesetPTR(p, ptr)
#define DGL_EDGE_STATUS(p)
#define DGL_T_NODEITEM_NodePTR(p)
#define DGL_NODE_ATTR_PTR
#define DGL_EDGE_HEADNODE_OFFSET
#define DGL_EDGESET_REALLOC