From: bdemsky Date: Sun, 2 Jul 2017 04:40:08 +0000 (-0700) Subject: finish normalization X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=7aaafc3e4f97dc498784d96324af1d55f4d0e604;p=satune.git finish normalization --- diff --git a/src/Backend/nodeedge.c b/src/Backend/nodeedge.c index a1fd4c5..deb63d3 100644 --- a/src/Backend/nodeedge.c +++ b/src/Backend/nodeedge.c @@ -95,7 +95,7 @@ bool compareNodes(Node * node, NodeType type, uint numEdges, Edge *edges) { return false; Edge *nodeedges=node->edges; for(uint i=0;iflags.type; } +static inline bool equalsEdge(Edge e1, Edge e2) { + return e1.node_ptr == e2.node_ptr; +} + +static inline bool ltEdge(Edge e1, Edge e2) { + return (uintptr_t) e1.node_ptr < (uintptr_t) e2.node_ptr; +} + static inline uint getNodeSize(Edge e) { Node * n=getNodePtrFromEdge(e); return n->numEdges; @@ -101,6 +109,15 @@ static inline Edge * getEdgeArray(Edge e) { return n->edges; } +static inline Edge getNonNeg(Edge e) { + Edge enew={(Node *)(((uintptr_t)e.node_ptr)&(~((uintptr_t)NEGATE_EDGE)))}; + return enew; +} + +static inline bool edgeIsConst(Edge e) { + return (((uintptr_t) e.node_ptr) & ~((uintptr_t)NEGATE_EDGE)) == EDGE_IS_VAR_CONSTANT; +} + uint hashNode(NodeType type, uint numEdges, Edge * edges); Node * allocNode(NodeType type, uint numEdges, Edge * edges, uint hashCode); bool compareNodes(Node * node, NodeType type, uint numEdges, Edge *edges);