From: bdemsky Date: Sat, 1 Jul 2017 22:23:25 +0000 (-0700) Subject: more code X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=f0dba6a31f70f7249dad6919ef51cd58c992e3e5;p=satune.git more code --- diff --git a/src/Backend/nodeedge.c b/src/Backend/nodeedge.c index 533a9f1..a1fd4c5 100644 --- a/src/Backend/nodeedge.c +++ b/src/Backend/nodeedge.c @@ -1,5 +1,6 @@ #include "nodeedge.h" #include +#include CNF * createCNF() { CNF * cnf=ourmalloc(sizeof(CNF)); @@ -117,20 +118,67 @@ Edge constraintOR2(CNF * cnf, Edge left, Edge right) { return constraintNegate(eand); } +int comparefunction(const Edge * e1, const Edge * e2) { + return ((uintptr_t)e1->node_ptr)-((uintptr_t)e2->node_ptr); +} + Edge constraintAND(CNF * cnf, uint numEdges, Edge * edges) { + qsort(edges, numEdges, sizeof(Edge), (int (*)(const void *, const void *)) comparefunction); + int initindex=0; + while(initindexflags.type; +} + +static inline uint getNodeSize(Edge e) { + Node * n=getNodePtrFromEdge(e); + return n->numEdges; +} + +static inline Edge * getEdgeArray(Edge e) { + Node * n=getNodePtrFromEdge(e); + return n->edges; +} + 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);