1 /****************************************************************************/
3 /* Chaine de CAO & VLSI Alliance */
5 /* Produit : YAGLE v3.50 */
6 /* Fichier : yag_graph.h */
8 /* (c) copyright 1994 Laboratoire MASI equipe CAO & VLSI */
9 /* Tous droits reserves */
10 /* Support : e-mail alliance-support@asim.lip6.fr */
13 /****************************************************************************/
16 #define DELETED_NODE ((long) 0x00000001 )
17 #define EXT ((long) 0x00000004 )
18 #define CONE_TYPE ((long) 0x00000008 )
19 #define CONSTBIT ((long) 0x00000010 )
20 #define TN_NODE ((long) 0x00000020 )
21 #define TP_NODE ((long) 0x00000040 )
22 #define ROOT_NODE ((long) 0x00000080 )
23 #define CONSTRAINT_NODE ((long) 0x00000100 )
24 #define LOOP_NODE ((long) 0x00000200 )
25 #define FORCEPRIM_NODE ((long) 0x00000400 )
26 #define MEMSYM_NODE ((long) 0x00000800 )
27 #define PRIMNODE ((long) 0x08000000 )
28 #define HOLENODE ((long) 0x20000000 )
29 #define STOPNODE ((long) 0x40000000 )
30 #define TRAVERSED ((long) 0x80000000 )
32 /* standard graph functions */
34 graph
*yagBuildGraph(edge_list
*ptedgelist
, cone_list
*rootcone
, int force
);
35 gnode_list
*yagRootGraph(graph
*ptgraph
, cone_list
*ptcone
);
36 graph
*yagNewGraph(void);
37 void yagFreeGraph(graph
*ptgraph
);
38 void yagTraverseGraph(graph
*ptgraph
);
39 gnode_list
*yagGetNodeFather(gnode_list
*ptnode
, char *name
);
40 chain_list
*yagGetPrimVars(graph
*ptgraph
, gnode_list
*ptnode
);
41 chain_list
*yagGetJustPrimVars(graph
*ptgraph
, gnode_list
*ptnode
);
42 chain_list
*yagGetNonPrimaryUsedNodes(graph
*ptgraph
);
43 void yagAddExtraConstraints(graph
*ptgraph
);
45 /* support graph functions */
47 int yagExtendSupportRoot(graph
*ptgraph
, cone_list
*ptcone
, long roottype
);
48 void yagExtendSupportGraph(graph
*ptgraph
, gnode_list
*ptnode
, chain_list
*ptfatherlist
);
49 void yagReduceSupportGraph(graph
*ptgraph
);